Info |
---|
/wiki/spaces/EN/pages/17591304241 (remove the link block before publishing the document) |
Table of Contents |
---|
Properties of a REST API method document
...
id | page_properties_method_REST API |
---|
...
Document type
...
Метод REST API
...
Guideline ID
...
GUI-0011
...
Author
...
@
...
Document version
...
1
...
Document status
...
DRAFT
...
Date of creation
...
ХХ.ХХ.ХХХХ (дата фінальної версії документа – RC або PROD)
...
Date of update
...
ХХ.ХХ.ХХХХ (дата зміни версії)
...
Method API ID
...
API-001-001-001-0001
...
Microservices (namespace)
...
MPI
...
Component
...
Auth
...
Component ID
...
COM-001-001
...
Link на API-специфікацію
...
...
Resource
...
{{host}}//api.ehealth.gov.ua/api/patients/id/encounter_package
...
Scope
...
Protocol type
...
Request type
...
Sync/Async
...
Public/Private
Purpose
Describe the purpose of the API method, add Key points (if necessary)
Logic
Description of the working algorithm of the API method and the interaction of services with each other add Service logic (if necessary)
Configuration parameters
Description of the configuration parameters that are used when processing a request in the system
Dictionaries
Provides a list of links to dictionaries that are available in Confluence
Input parameters
Description of input parameters
...
Input parameter
...
Mandatory
...
Type
...
Description
...
Example
...
composition_id
...
M
...
String ($uuid) (path)
...
Composition object ID
...
89678f60-4cdc-4fe3-ae83-e8b3ebd35c59
...
Request structure
See on API-specification (посилання на сторінку з API-специфікацією)
Description of the REST API request structure, example
...
title | Example |
---|
...
Headers
...
Key
...
Value
...
Mandatory
...
Description
...
Example
...
Content-Type
...
application/json
...
M
...
Тип контенту
...
Content-Type:application/json
...
Authorization
...
Bearer c2778f3064753ea70de870a53795f5c9
...
M
...
Перевірка користувача
...
Authorization:Bearer c2778f3064753ea70de870a53795f5c9
...
Request data validation
Describe the process of checking the input data transmitted in the request for compliance with the given rules and restrictions set in the API
Processing
A list of processes related to receiving, changing or transmitting data according to the logic defined in the REST API
Response structure examples
Description of the REST API response structure, example
...
title | Example |
---|
...
HTTP status codes
...
Response code
...
HTTP Status code
...
Message
...
Internal name
...
Description
...
Базові
...
1000
...
404
...
Composition not found
...
COMPOSITION_NOT_FOUND_404
...
Не знайдено медичний висновок
...
401
...
Unauthorized
...
Помилка підтвердження
...
Специфічні
...
422
...
Only for active MPI record can be created medication request!
Post-processing processes
...
Note |
---|
Сторінка знаходиться в процесі розробки. Інформація на ній може бути застарілою. |
Info |
---|
/wiki/spaces/EN/pages/17591304241 (remove the link block before publishing the document) |
Table of Contents |
---|
Properties of a REST API method document
Page Properties | ||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||
|
Purpose
This WS is designed to use Service request after providing services.
Logic
Service logic
Update program_processing_status to "completed" if it was not null
Update status to "completed"
Depending on changes update a status history and program_processing_status history
Save status_reason to service_request, including status_history
Save completed_with, program_service to service_request
If the service request is based on activity with quantity:
Recalculate and set remaining_quantity for the activity as described at PreQualify Service Request | Validate service request
Configuration parameters
N/A
Dictionaries
N/A
Input parameters
Input parameter | Mandatory | Type | Description | Example | |
---|---|---|---|---|---|
1 | service_request_id |
| String | Unique service request identifier |
|
2 |
Request structure
See on API-specification
Expand | |||||
---|---|---|---|---|---|
| |||||
|
Headers
Request data validation
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 = 'service_request:complete')
return 403 (“Your scope does not allow to access this resource. Missing allowances: service_request:complete”) in case of invalid scope(s)
Validate legal entity
Check legal entity type: it has to be in me_allowed_transactions_le_types config parameter, has status = active
in case of error return 409 "Action is not allowed for the legal entity"
Validate request using JSON Schema
Return 422 with the list of validation errors in case validation fails
Validations
Validate used_by_legal_entity
ME.service_request.used_by_legal_enity.identifier.value=token.client_id
in case of error return 409 "Service request is used by another legal entity"
Validate program_processing_status
ME.service_request.program_processing_status == "in_progress"
in case of error return 409 "Invalid program processing status status"
Validate completed_with if exist:
$.completed_with as a Reference(encounter| diagnostic_report| procedure)
if ME.service_request.category and resource according to config file
$.completed_with.managing_organization== token.client_id
Could not complete service request with an entity, created by another legal entity
SR could be completed only with resource that referenced this SR
in case error return 422, msg "$completed_with.code is not connected with this SR"
If SR.category in ('hospitalization', 'transfer_of_care') validate resource is encounter.type = discharge
in case error, return 422, "Service request with category $category could not be completed with current resource"
if $.completed_with.identifier.code == “encounter”:
check that episode from encounters.episode has status “active”
in case of error return 422 “Encounter refers to episode that is not active"
Check resource status:
If resource is procedure, check that procedure.status not in (entered_in_error, not_done)
Else check that resource.status != entered_in_error
in case error, return 422, "<Resource> in <status> status can not be referenced"
Validate program_service
$.program_service is an existing record from PRM.program_services where is_active=true
in case of error return 422 "Program service does not exist"
$.program_service should be only as a service (check that PRM.program_service.service_id IS NOT NULL)
in case of error return 422 "Program service with service group is not allowed for completing current resource"
Validate that service code from completed with and from program service (if both exist) matches (except service requests where category in ('hospitalization', 'transfer_of_care')):
if completed_with.identifier.type.coding[].code="diagnostic_report" or "procedure" than
completed_with.code.identifier.value==program_service.service_id (enrich from ME and PRM)
else if completed_with.identifier.type.coding[].code="encounter"
if ME.service_request.code.identifier.type.coding[].code="service"
ME.service_request.code.identifier.value==program_service.service_id (enrich from ME and PRM)
if service_request.code.identifier.type.coding[].code="service_group"
there is a record in status active in PRM.service_inclusions where PRM.service_inclusions.service_group_id=ME.service_request.code.identifier.value and PRM.service_inclusions.service_id=program_service.service_id
in case of error return 409 "Services from program service and completed with does not match"
Else, if service request has no program:Validate the service request has been referenced by at least one not entered_in_error procedure/encounter/diagnostic_report.
in case of error - return 409 error ('Service request must be referenced by at least one procedure, encounter or diagnostic_report that is not entered_in_error ')
Validate status_reason filled according to eHealth/service_request_complete_reasons dictionary
in case system is another dictionary - return 422 error ('not allowed in enum')
in case code value is not active in corresponding dictionary - return 422 error ("Value is not active")
Validate transition
If service request has a program:
Check status is active and program_processing_status is, in_progress.
in case of error - return 409 error ('Service request only in status 'active' and program_processing_status 'in_progress' can be completed')
else, if service request has no program:
Check status is ‘active’
in case of error - return 409 error ('Service request only in status 'active' can be completed')
Processing
N/A
Response structure examples
See on API-specification
Expand | |||||
---|---|---|---|---|---|
| |||||
|
Expand | |||||
---|---|---|---|---|---|
| |||||
|
HTTP status codes
Response code | HTTP Status code | Message | Internal name | Description | |
---|---|---|---|---|---|
1 | Базові | ||||
2 | 201 | use payload from response | sync | ||
3 | 202 | use Get job details to get processing result. Response payload will be returned in the job details | async: default method | ||
4 | 401 | Invalid access token | |||
5 | 401 | Unauthorized | Помилка підтвердження | ||
6 | 403 | Invalid scopes | |||
7 | 403 | Your scope does not allow to access this resource. Missing allowances: service_request:complete | |||
8 | 409 | Action is not allowed for the legal entity | |||
9 | 409 | Services from program service and completed with does not match | |||
10 | 409 | Invalid program processing status statu | |||
11 | 409 | Service request is used by another legal entity | |||
12 | 409 | Service request must be referenced by at least one procedure, encounter or diagnostic_report that is not entered_in_error | |||
13 | 409 | Service request only in status 'active' and program_processing_status 'in_progress' can be completed | |||
14 | 409 | Service request only in status 'active' can be completed | |||
15 | 422 | $completed_with.code is not connected with this SR | |||
16 | 422 | <Resource> in <status> status can not be referenced | |||
17 | 422 | Encounter refers to episode that is not active | |||
18 | 422 | 'not allowed in enum' | |||
19 | 422 | Program service does not exist | |||
20 | 422 | Program service with service group is not allowed for completing current resource | |||
21 | 422 | Service request with category $category could not be completed with current resource | |||
22 | 422 | Value is not active | |||
23 | Специфічні | ||||
24 |
Post-processing processes
N/A
Technical modules where the method is used
List of pages describing technical modules where the method is used
Page Properties Report | ||||
---|---|---|---|---|
|
...