Purpose
This WS is designed to block previously created Medication request with indicating block_reason_code and block_reason
Specification
Logic
API paragraph not found
Preconditions
No
Input parameters
Input parameter | Values | Type | Description | Example |
---|---|---|---|---|
id | String | Medication Request identifier. Required. | d290f1ee-6c54-4b01-90e6-d701748f0851 |
Filters
No
Request structure
Example:
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_pharm')
return 403 (“Your scope does not allow to access this resource. Missing allowances: medication_request:block_pharm”) 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 active and approved employee with employee_type = ‘PHARMACIST’
in case of error - return 409 ("Only pharmacist 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 code
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 PHARMACIST_MEDICATION_REQUEST_BLOCK_REASON_CODES chart parameter for validated user
in case of error - return 422 ("Block reason code is not allowed for PHARMACIST").
Processing
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
Return Medication request data with trimmed information about legal entity, division and employee.
Add new record in Event manager:
field | value |
---|---|
|
|
|
|
| $.id |
| true |
| $.update_at |
| $.changed_by |
Response structure
Example:
Post-processing processes
No
HTTP status codes
Backward compatibility
API paragraph not found