Purpose*
This web service is designed to update existing episode of care for the patient.
Specification*
Logic*
Read more about business logic and validations.
Input parameters
Input parameter | Values | Type | Description | Example |
---|---|---|---|---|
patient_id | String | Patient identifier |
| |
episode_id | String | Episode identifier |
|
Request structure*
See on Apiary
Example:
Authorize*
Request to process the request using a token in the headers
Headers*
Наприклад:
Content-Type:application/json
Authorization:Bearer mF_9.B5f-4.1JqM
Request data validation*
Validate token
Verify the validity of access token
Return 401 in case validation fails
Verify token is not expired
in case of error return 401
check value of ALLOW_OTHER_LE_EMPLOYEES_TO_MANAGE_EPISODE variable in charts configuration
if its value is equal to false, verify that user’s employees from care_manager belongs to one of the user_id from token
in case of error - return 422 ('User is not allowed to perform this action')
otherwise, verify that user’s employees from care_manager belongs to the same Legal Entity as author of the episode
in case of error - return 422 ('User is not allowed to perfom this action')
Validate scopes
Check user scopes in order to perform this action (scope = 'episode:write')
Return 403 in case invalid scope(s)
Validate legal entity
Validate episode belongs to the legal entity where the current user works
ME.episode.managing_organization==token.client_id
in case of error return 422 "Managing_organization in the episode does not correspond to user`s legal_entity"
Validate request
ME.episode.status == "active"
in case of error "Episode in status {episode_status} can not be updated"
Validate care_manager
$.care_manager.identifier.type.coding.[0].code = "employee"
in case of error return 422 "Submitted code is not allowed for this field"
$.care_manager.identifier.type.coding.[0].system = "eHealth/resources"
in case of error return 422 "Submitted system is not allowed for this field"
$.care_manager.identifier.value must meet the following requirements
PRM.employee.type = "DOCTOR" or "SPECIALIST" OR "ASSISTANT"
in case of error return 409 "Employee submitted as a care_manager is not a not in the list of allowed employee types"
PRM.employee.status= "active"
in case of error return 409 "Employee submitted as a care_manager is not active "
PRM.employee.legal_entity = token.client_id=ME.episode.care_manager.identifier.value
in case of error return 409 "User doesn`t have permitions to set the employee as a care_manager of the episode"
Processing*
Set patients.episodes.#{id}.care_manager.display_value= ((PRM.parties.first_name + PRM.parties.second_name + PRM.parties.last_name) where PRM.parties.id == PRM.employees.party_id) where PRM.employees.id== $.care_manager.identifier.value
Set episodes.managing_organization.display_value = PRM.legal_entities.public_name where ( PRM.legal_entities.id == $.managing_organization.identifier.value)
Response structure*
See on Apiary
Example:
Post-processing processes*
API paragraph not found
HTTP status codes*
HTTP status code | Message | What caused the error |
---|---|---|
202 |
|
|
404 |
|
|