/
REST API PRIVATE SPACE [AR] Private. Unblock Medication Request [API-005-008-002-0163]

ЕСОЗ - публічна документація

REST API PRIVATE SPACE [AR] Private. Unblock Medication Request [API-005-008-002-0163]

Properties of a REST API method document

Document type

Метод REST API

Document title

REST API PRIVATE SPACE [AR] Private. Unblock Medication Request [API-005-008-002-0163]

Guideline ID

GUI-0011

Author

@Iryna Lishtaba (SoE eHealth)

Document version

1

Document status

DRAFT

Date of creation

04.03.2025

Date of update

04.03.2025

Method API ID

API-005-008-002-0163

Microservices (namespace)

IL

Link на API-специфікацію

ESOZ · Apiary

Resource

{{host}}/api/admin/medication_requests/{{id}}/actions/unblock

Scope

medication_request_admin:unblock

Protocol type

REST

Request type

PATCH

Sync/Async

Sync

Public/Private

Private

Purpose

This WS is designed to unblock previously blocked Medication request with indicating block_reason_code and block_reason by NHS employee with appropriate scope.

Logic

  1. Only authenticated and authorized NHS admin-panel user with appropriate scope can unblock Medication request.

  2. In the response of these endpoint person_id is returned in hashed form.

  3. Medication request can be unblocked only from ‘ACTIVE' status.

 

"Unblock a `MedicationRequest` using its unique ID." unblockMedicationRequest( input: UnblockMedicationRequestInput! ): UnblockMedicationRequestPayload

 

""" Input for `unblockMedicationRequest` mutation. User must have a scope **medication_request_admin:unblock** """ input UnblockMedicationRequestInput { "Unique ID of the medication request which should be unblocked." id: ID! } """ Return type for `unblockMedicationRequest` mutation. """ type UnblockMedicationRequestPayload { "Medication request unblock reason" blockReason: String! "Medication request unblock reason code from `MEDICATION_REQUEST_UNBLOCK_REASON` dictionary" blockReasonCode: UnblockReasonCode! } """ List of unblock reason codes. According to `MEDICATION_REQUEST_UNBLOCK_REASON` dictionary """ enum UnblockReasonCode { "Reason code `DEFAULT` to unblock medication request" DEFAULT }

 

  1. Update Medication request in OPS DB:

    1. set is_blocked = false

    2. set block_reason_code = $.block_reason_code

    3. set block_reason = $.block_reason

    4. set updated_by = user_id

    5. set updated_at = now()

    6. set block_legal_entity_id = legal entity id out of token

  2. Send SMS for person

    1. If Medication request has program with medical program setting medication_request_notification_disabled = true, then don't send SMS.

      Else:

      1. Get authentication_method of person from MPI

      2. If authentication_method == OTP, then send SMS to a person from Medication request:

        1. Generate SMS text

          1. get template from unblock_template_sms_nhs parameter

          2. enrich template with data from Medication request

        2. Send SMS to a person

  3. Return Medication request data with hashed person_id

Configuration parameters

N/A

Dictionaries

MEDICATION_REQUEST_BLOCK_REASON

MEDICATION_REQUEST_INTENT

MEDICATION_REQUEST_CATEGORY

MEDICATION_REQUEST_PRIORITY

eHealth/SNOMED/additional_dosage_instructions

eHealth/SNOMED/anatomical_structure_administration_site_codes

eHealth/SNOMED/route_codes

eHealth/SNOMED/administration_methods

eHealth/SNOMED/dose_and_rate

eHealth/ICD10_AM/condition_codes

eHealth/ICPC2/condition_codes

ADDRESS_TYPE

SETTLEMENT_TYPE

STREET_TYPE

PHONE_TYPE

DIVISION_TYPE

POSITION

MEDICATION_FORM

MEDICATION_UNIT

eHealth/clinical_impression_patient_categories

LICENSE_TYPE

FUNDING_SOURCE

MR_BLANK_TYPES

MEDICATION_REQUEST_REJECT_REASON

Input parameters

Input parameter

Mandatory

Type

Description

Example

Input parameter

Mandatory

Type

Description

Example

id

M

String

Request id

d290f1ee-6c54-4b01-90e6-d701748f0851

Request structure

See on API-specification

Headers

Headers

Request data validation

Authorization

  1. Verify the validity of access token

    1. in case of error - return 401 (“Invalid access token”) in case of validation fails

  2. Verify that token is not expired

    1. in case of error - return 401 (“Invalid access token”)

  3. Check user scopes in order to perform this action (scope = 'medication_request_admin:unblock')

    1. return 403 (“Your scope does not allow to access this resource. Missing allowances: medication_request_admin:unblock”) in case of invalid scope(s)

Validations

Validate request

  1. Validate request using JSON schema

    1. in case of error - return 422

Validate Medication request

  1. Get Medication request identifier from the URL. Check Medication request exists in OPS DB

    1. in case of error - return 404

Validation transition

  1. Get Medication request by $.id in OPS DB. Check that Medication request status = ‘ACTIVE’

    1. in case of error - return 409 ("Medication request must be in active status")

  2. Get Medication request by $.id in OPS DB. Check that Medication request is blocked, i.e. is_blocked = true

    1. in case of error - return 409 ("Medication request is already unblocked")

Validate legal entity type

  1. Validate type of legal entity which is related to blocking = NHS. Using ops.medication_requests.(by $.id).block_legal_entity_id 

    1. in case of error - return 422 ("It is not allowed to unblock medication request, which is blocked not by NHS")

Processing

N/A

Response structure examples

See on API-specification

HTTP status codes

Response code

HTTP Status code

Message

Internal name

Description

Response code

HTTP Status code

Message

Internal name

Description

1

Базові

2

 

401

Invalid access token

 

Недійсний токен доступу

3

 

403

Your scope does not allow to access this resource. Missing allowances: medication_request_admin:unblock

 

Для вашої ролі відсутній доступ до цього ресурсу. Необхідний доступ на розблокування електронного рецепта адміністратором

4

 

404

Not Found. The requested resource doesn't exist.

 

Не знайдено. Запитаний ресурс не існує.

5

 

409

Medication request must be in active status

 

Електронний рецепт має бути в статусі "Активний"

6

 

409

Medication request is already unblocked

 

Електронний рецепт вже розблокований

7

Специфічні

8

 

422

422 Error

 

Помилка

9

 

422

It is not allowed to unblock medication request, which is blocked not by NHS

 

Не дозволено розблокувати електронний рецепт, який заблокований не Національною службою здоров'я України.

Post-processing processes

N/A

Technical modules where the method is used

 

Related content

ЕСОЗ - публічна документація