Note |
---|
Сторінка знаходиться в процесі розробки. Інформація на ній може бути застарілою. |
...
Dictionaries
N/A
Input parameters
Input parameter | Mandatory | Type | Description | Example | |
---|---|---|---|---|---|
1 | |||||
2 |
Request structure
See on API-specification
...
Request data validation
Authorize
Request to process the request using a token in the headers
...
Extract user_id and client_id from token
Get list of APPROVED employees with this user_id in current Legal Entity
Check that for user one of the conditions is TRUE:
user has an employee that specified as author of the procedure ($.procedure.recorded_by.identifier.value is in the list of APPROVED employees)
OR check that user has an employee which has approval granted by the patient with access_level:write for this procedure resource ($.approvals.granted_resources.identifier.value==$.procedure._id AND $.approvals.granted_to.identifier.value==PRM.employees.id AND $.approvals.access_level='write')
OR user has an employee which has MED_ADMIN employee type
otherwise, return error 409 "Employee is not performer of procedure, don't has approval or required employee type"
If BLOCK_UNVERIFIED_PARTY_USERS is true, then check user's party data match following condition: verification_status != NOT_VERIFIED or (verification_status = NOT_VERIFIED and updated_at <= current_date - UNVERIFIED_PARTY_PERIOD_DAYS_ALLOWED):
in case not match - return 403 ("Access denied. Party is not verified")
Request validation
Validate digital signature
ds.drfo == PRM.parties.tax_id where (PRM.parties.id==PRM.employees.party_id
where (PRM.employees.id==$.performer.identifier.value))in case of error - return 409 ("Signer DRFO doesn't match with requester tax_id")
Compare signed_content to previously created content
select procedure, select * from procedures context.identifier.value=procedure_id and compare to signed_content (do not include status, status_reason and explanatory_letter )
in case of inconsistencies return "Submitted signed content does not correspond to previously created content"
Validate status_reason is in dictionary eHealth/procedure_status_reasons
in case error return 422, "status_reason not in a dictionary eHealth/procedure_status_reasons"
Validate user performs action with procedure that belong to his legal entity
ME.patient{patinet_id}.procedures{procedure_id}.managing_organization==token.client_id
in case of error return 422 "Managing_organization in the procedure does not correspond to user`s legal_entity"
...
Expand | |||||
---|---|---|---|---|---|
| |||||
|
HTTP status codes
Response code | HTTP Status code | Message | Internal name | Description | |
---|---|---|---|---|---|
1 | Базові | ||||
2 | 202 |
|
| ||
3 | 401 | Access denied |
| ||
4 | 403 | Access denied. Party is not verified | |||
5 | 403 | Invalid scopes |
| ||
6 | 404 | Patient not found |
| ||
7 | 409 | Employee is not performer of procedure, don't has approval or required employee type | |||
8 | 409 | Managing_organization in the procedure does not correspond to user`s legal_entity | |||
9 | 409 | Signer DRFO doesn't match with requester tax_id | |||
10 | 409 |
| Validation error | ||
11 | 422 |
| Validation error | ||
12 | 422 | Managing_organization in the procedure does not correspond to user`s legal_entity | |||
13 | 422 | status_reason not in a dictionary eHealth/procedure_status_reasons | |||
14 | Специфічні | ||||
15 |
Post-processing processes
...