ЕСОЗ - публічна документація
Private. Block Medication request
Purpose
This WS is designed to block previously created Medication request with indicating block_reason_code and block_reason by NHS employee with appropriate scope.
Key points
Only authenticated and authorized NHS admin-panel user with appropriate scope can block Medication request.
In the response of these endpoint person_id is returned in hashed form.
Medication request can be blocked only from ‘ACTIVE' status.
Specification
Authorization
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_admin:block')
return 403 (“Your scope does not allow to access this resource. Missing allowances: medication_request_admin:block”) in case of invalid scope(s)
Validations
Validate request
Validate request using JSON schema
in case of error - return 422
Validate Medication request
Get Medication request identifier from the URL. Check Medication request exists in OPS DB
in case of error - return 404
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")
Service 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()
set block_legal_entity_id = legal entity id out of token
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_nhs parameter
enrich template with data from Medication request
Send SMS to a person
Return Medication request data with hashed person_id
ЕСОЗ - публічна документація