Table of Contents |
---|
Purpose
...
Any medication request in the ACTIVE status can be blocked by an NHS employee (parameter is_blocked = true) with indicating block_reason. NHS employee must have the appropriate scope medication_request: block for such action.
Specification
Apiary | |
Apiary |
Description
The medication request can be blocked or unlocked by the NHS employee at any time also with having the appropriate scope: medication_request: block.
Medication requests which are in the status is_blocked = true cannot be released in the PHARMACY.
On create/process medication dispense for the medication request with is_blocked = true status return an error 422 with msg "Medication request is blocked".
Information about blocking or unblocking medication request is displayed in Event Manager.
The person with the authentication_method = OTP can be notified by SMS about blocking or unlocking with the following appropriate messages:
Code Block |
---|
«Ваш рецепт №---- заблоковано НСЗУ. Зверніться до вашого лікаря» |
...
This WS is designed to block previously created Medication request with indicating block_reason_code and block_reason
Key points
Only authenticated and authorized user with an appropriate scope can block Medication request.
Medication request can be blocked only from the ‘ACTIVE' status.
Specification
Page Properties | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Logic
Update Medication request in OPS DB:
set is_blocked = true
set block_reason_code = $.block_reason_code
set block_reason = $.block_reason
set updated_by = user_id
set updated_at = now()
Send SMS for person
If Medication request has program with medical program setting medication_request_notification_disabled = true, then don't send SMS.
Else:
Get authentication_method of person from MPI
If authentication_method == OTP, then send SMS to a person from Medication request:
Generate SMS text
get template from block_template_sms parameter
enrich template with data from Medication request
Send SMS to a person with text from template (“Ваш рецепт <request_number> заблоковано. Зверніться до вашого лікаря”)
Add new record in Event manager:
field | value |
---|---|
|
|
|
|
| $.id |
| true |
| $.update_at |
| $.changed_by |
Input parameters
Input parameter | Values | Type | Description | Example |
---|---|---|---|---|
id | String | Medication Request identifier | d290f1ee-6c54-4b01-90e6-d701748f0851 |
Request structure
Example:
Expand | ||
---|---|---|
| ||
|
Authorize
Verify the validity of access token
in case of error - return 401 (“Invalid access token”) in case of validation fails.
Verify that token is not expired
in case of error - return 401 (“Invalid access token”).
Check user scopes in order to perform this action (scope = 'medication_request:block')
return 403 (“Your scope does not allow to access this resource. Missing allowances: medication_request:block”) in case of invalid scope(s).
Headers
Content-Type:application/json
Authorization:Bearer c2778f3064753ea70de870a53795f5c9
Validate request
Validate request using JSON schema
in case of error - return 422
Request data validation
Validate Medication request
Get Medication request identifier from the URL. Check Medication request exists in OPS DB
in case of error - return 404 ("Medication request does not exist").
Validate user
Medication Request blocking is allowed for user if he has one of the following active and approved employee that:
is an author of the Medication request (medication_request.employee_id);
has an approval on write Care plan if Medication request based on the Care plan (medication_request.based_on);
is Med_Admin from legal entity where Medication request is created;
in case of error - return 409 ("Only an author, employee with approval on care plan or med_admin from the same legal entity can block medication request").
Validation transition
Get Medication request by $.id in OPS DB. Check that Medication request status = ‘ACTIVE’
in case of error - return 409 ("Medication request must be in active status").
Get Medication request by $.id in OPS DB. Check that Medication request is not blocked, i.e. is_blocked = false
in case of error - return 409 ("Medication request is already blocked").
Validate block reason
Validate $.block_reason_code is a value from MEDICATION_REQUEST_BLOCK_REASON dictionary
in case of error - return 422 ("value is not allowed in enum").
Check that $.block_reason_code is present in <EMPLOYEE_TYPE>_MEDICATION_REQUEST_BLOCK_REASON_CODES chart parameter for validated user
in case of error - return 422 ("Block reason code is not allowed for <employee_type>").
Response structure
Example:
Expand | ||
---|---|---|
| ||
|
HTTP status codes
HTTP status code | Message | What caused the error |
---|---|---|
200 | Response |
|
401 | Invalid access token |
|
403 | Your scope does not allow to access this resource. Missing allowances: medication_request:block |
|
404 | Medication request does not exist |
|
409 |
|
|
422 |
| Request validation fails |