ЕСОЗ - публічна документація

[DRAFT] Close Episode [API-007-006-001-0272]

Сторінка знаходиться в процесі розробки. Інформація на ній може бути застарілою.

https://e-health-ua.atlassian.net/wiki/spaces/EN/pages/17591304241 (remove the link block before publishing the document)

Properties of a REST API method document

Document type

Метод REST API

Document title

[DRAFT] Close Episode [API-007-006-001-0272]

Guideline ID

GUI-0011

Author

@

Document version

1

Document status

DRAFT

Date of creation

ХХ.ХХ.ХХХХ (дата фінальної версії документа – RC або PROD)

Date of update

ХХ.ХХ.ХХХХ (дата зміни версії)

Method API ID

API-007-006-001-0272

Microservices (namespace)

ME

Component

Episode

Component ID

COM-007-006

Link на API-специфікацію

https://medicaleventsmisapi.docs.apiary.io/#reference/medical-events/episode-of-care/close-episode

Resource

{{host}}/api/patients/{{patient_id}}/episodes/{{episode_id}}/actions/close

Scope

episode:write

Protocol type

REST

Request type

PATCH

Sync/Async

Async

Public/Private

Public

Purpose

This web service is designed to close an episode.

Logic

This web service is designed to close an episode of care.

Configuration parameters

N/A

Dictionaries

N/A

Input parameters

Input parameter

Mandatory

Type

Description

Example

Input parameter

Mandatory

Type

Description

Example

1

patient_id

 

String

Patient identifier

70a9e15b-b71b-4caf-8f2e-ff247e8a5677

2

episode_id

 

String

Episode identifier

a10aeafb-0df2-4091-bc83-f07e92a100ae

Request structure

See on API-specification

{ "period": { "end": "2018-08-02T10:45:16.000Z" }, "closing_summary": "Носові шляхи вільні, горло рожеве, температура в нормі", "status_reason": { "coding": [ { "system": "eHealth/episode_closing_reasons", "code": "cured" } ], "text": "" } }

Headers

Headers

Request data validation

Authorize

Request to process the request using a token in the headers

  • Verify the validity of access token

    • Return 401 in case validation fails

  • Verify token is not expired

    • in case of error return 401 

  • Check user scopes in order to perform this action (scope = 'episode:write')

    • Return 403 in case invalid scope(s)

Validate token

  • 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 legal entity

  1. 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 does not correspond to user`s legal_entity"

Validate request

  1. Validate episode.status!= "entered_in_error" or "closed"

    1. in case of error "Episode in {episode_status} can not be closed"

  2. Validate that "closing_reason" is a valid value from the corresponding dictionary 

    1. $.closing_reason.coding[*].system == "eHealth/episode_closing_reasons"

  3. Validate period as Period (consider period.start_date from the episode)

Processing

  1. Set the status of the episode in "closed"

  2. Set closing_reason in status_reason

  3. Set closing_summary

  4. Set period.end

  5. Create a record in episode.status_history

Response structure examples

See on API-specification

{ "data": { "status": "pending", "eta": "2018-08-02T10:45:16.000Z", "links": [ { "entity": "job", "href": "/Jobs/NBXk9EyErUZv1RhXgyvgg" } ] }, "meta": { "code": 202, "url": "http://example.com/resource", "type": "object", "request_id": "req-adasdoijasdojsda" } }
{ "meta": { "code": 404, "url": "http://example.com/resource", "type": "object", "request_id": "req-adasdoijasdojsda" }, "error": { "type": "NOT_FOUND", "message": "Patient not found" } }

HTTP status codes

Response code

HTTP Status code

Message

Internal name

Description

Response code

HTTP Status code

Message

Internal name

Description

1

Базові

2

 

 202

 

 

 

3

 

401

 

Access token validation failed

 

4

 

403

 

Invalid scope

 

5

 

404

 Patient not found

 

 

6

 

422

Managing_organization does not correspond to user`s legal_entity

 

 

7

 

422

 

Validation failed

 

8

 

422

User is not allowed to perform this action

 

 

9

Специфічні

10

 

 

 

 

 

Post-processing processes

N/A

Technical modules where the method is used

 

ЕСОЗ - публічна документація