ЕСОЗ - публічна документація
REST API PRIVATE SPACE [AR] Private. Unblock Medication Request [API-005-008-002-0163]
- 1 Properties of a REST API method document
- 2 Purpose
- 3 Logic
- 4 Configuration parameters
- 5 Dictionaries
- 6 Input parameters
- 7 Request structure
- 8 Headers
- 9 Request data validation
- 9.1 Authorization
- 9.2 Validations
- 9.2.1 Validate request
- 9.2.2 Validate Medication request
- 9.2.3 Validation transition
- 9.2.4 Validate legal entity type
- 10 Processing
- 11 Response structure examples
- 12 HTTP status codes
- 13 Post-processing processes
- 14 Technical modules where the method is used
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-специфікацію | |
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
Only authenticated and authorized NHS admin-panel user with appropriate scope can unblock Medication request.
In the response of these endpoint person_id is returned in hashed form.
Medication request can be unblocked only from ‘ACTIVE' status.
Update Medication request in OPS DB:
set is_blocked = false
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 unblock_template_sms_nhs parameter
enrich template with data from Medication request
Send SMS to a person
Return Medication request data with hashed person_id
Configuration parameters
N/A
Dictionaries
MEDICATION_REQUEST_BLOCK_REASON
eHealth/SNOMED/additional_dosage_instructions
eHealth/SNOMED/anatomical_structure_administration_site_codes
eHealth/SNOMED/administration_methods
eHealth/ICD10_AM/condition_codes
eHealth/clinical_impression_patient_categories
MEDICATION_REQUEST_REJECT_REASON
Input parameters
Input parameter | Mandatory | Type | Description | Example |
---|---|---|---|---|
id | M | String | Request id | d290f1ee-6c54-4b01-90e6-d701748f0851 |
Request structure
See on API-specification
Headers
Request data validation
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:unblock')
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
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 blocked, i.e. is_blocked = true
in case of error - return 409 ("Medication request is already unblocked")
Validate legal entity type
Validate type of legal entity which is related to blocking = NHS. Using ops.medication_requests.(by $.id).block_legal_entity_id
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 | |
---|---|---|---|---|---|
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
ЕСОЗ - публічна документація