Table of Contents | ||||
---|---|---|---|---|
|
Purpose
...
API paragraph not found
Specification
...
Page Properties | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Logic
...
...
Input parameters
Input parameter | Values | Type | Description | Example |
---|---|---|---|---|
service_request_id | String | Unique service request identifier |
|
Request structure
...
See on Apiary
Example:
Expand | ||
---|---|---|
| ||
|
Authorize
...
Verify the validity of access token
Return (401, 'unauthorized') in case of validation fails
Verify that token is not expired
in case of error - return (401, 'unauthorized')
Check user scopes in order to perform this action (scope = 'service_request:use')
Return (403, 'invalid scopes') in case of invalid scope(s)
Request to process the request using a token in the headers
Headers
...
Наприклад:
Content-Type:application/json
Authorization:Bearer mF_9.B5f-4.1JqM
api-key:aFBLVTZ6Z2dON1V
Request data validation
...
Validate request using JSON Schema
...
Get token metadata
Extract user_id, client_id, client_type
Ensure that employee belongs to client
$.used_by_employee.identifier.type.coding[*].system == "eHealth/resources"
$.used_by_employee.identifier.type.coding[*].code == "employee"
$.used_by_employee.identifier.value must belong to client_id (prm.employees.legal_entity_id == :client_id)
in case of error return 422 "You can assign service request only to employee within your legal entity"
Check employee_type - only DOCTOR or SPECIALIST can use service request
employee_type == DOCTOR OR SPECIALIST OR ASSISTANT if service_request.category="laboratory_procedure",
OR"diagnostic_procedure" OR "procedure"else employee_type == DOCTOR OR SPECIALIST
in case of error, return 422 "Invalid employee type"
Validate used_by_legal_entity is a current legal_entity
$.used_by_legal_entity.identifier.value==token.client_id
in case of error return 409 "You can assign service request only to your legal entity"
Validate used_by_division
if SR.category = hospitalization
validate used_by_division is sent, in case error return 422, "Division is mandatory for $category category"
validate used_by_division.legal_entity_id = used_by_legal_entity_id
Is SR.category = transfer_of_care
validate used_by_division is sent, in case error return 422, "Division is mandatory for $category category"
Validate $division.legal_entity_id = SR.Performer, in case error return 422, "Patient is transferred to another legal entity"
Processing
...
Service logic
Update service request attributes
Set Medical Events DB:
If used_by_employee exists in requests set service_requests[<id>].used_by_employee = Request: $.used_by_employee
set service_requests[<id>].used_by_legal_entity = Request: $.used_by_legal_entity
if medical program exists in request
Set Medical Events DB: service_requests[<id>].medical_program = Request: $.medical_program.identifier.value
Change program_processing_status to `in_queue`
Response structure
...
See on Apiary
Example:
Expand | ||
---|---|---|
| ||
|
Post-processing processes
...
API paragraph not found
HTTP status codes
...
Page Properties | ||||||
---|---|---|---|---|---|---|
|
...