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

[DRAFT] Get Observation contexts [API-007-007-001-0278]

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

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] Get Observation contexts [API-007-007-001-0278]

Guideline ID

GUI-0011

Author

@

Document version

1

Document status

DRAFT

Date of creation

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

Date of update

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

Method API ID

API-007-007-001-0278

Microservices (namespace)

ME

Component

Observation

Component ID

COM-007-007

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

https://ehealthmedicaleventsapi.docs.apiary.io/#reference/medical-events/device/get-observation-contexts

Resource

{{host}}/api/patients/{{patient_id}}/observations

Scope

observation:read

Protocol type

REST

Request type

GET

Sync/Async

Sync

Public/Private

Public

Purpose

This method allows to get contexts of Observation in order to create approval on episode and receive access to other medical events.

Logic

Service returns contexts (episode and diagnostic_report), observation based on:

  • Get Observation object by observation_id from conditions (MongoDB)

  • Get observation.context_episode_id from Observation object

  • Get observation.diagnostic_report from Observation object

  • Render a response according to specification

Configuration parameters

N/A

Dictionaries

N/A

Input parameters

Input parameter

Mandatory

Type

Description

Example

Input parameter

Mandatory

Type

Description

Example

1

 

 

 

 

 

2

 

 

 

 

 

Request structure

See on API-specification

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 error return 401 

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

    • Return 403 in case invalid scope(s)

Access to the resource is also managed by ABAC module.

Validate patient

  • Validate patient exists in MongoDB

    • In case of error return 404 not found

Processing

In case episode_id was submitted as a search param:

  1. Select all encounters.id where ME.patinents{patient_id}.encounters{*}.episode.identifier.value== episode_id

  2. Select all observations where ME.patients{patient_id}.observationd{*}.context.identifier.value == Select 1

Response structure examples

See on API-specification

{ "meta": { "code": 200, "url": "http://example.com/resource", "type": "object", "request_id": "req-adasdoijasdojsda" }, "data": [ { "id": "90a9e15b-b71b-4caf-8f2e-ff247e8a5600", "status": "valid", "diagnostic_report (Reference_response, optional)": { "identifier": { "type": { "coding": [ { "system": "eHealth/resources", "code": "diagnostic_report" } ] }, "value": "9183a36b-4d45-4244-9339-63d81cd08d9c" } }, "context": { "identifier": { "type": { "coding": [ { "system": "eHealth/resources", "code": "encounter" } ] }, "value": "9183a36b-4d45-4244-9339-63d81cd08d9c" }, "display_value": "null" }, "categories": [ { "coding": [ { "system": "eHealth/observation_categories", "code": "vital_signs" } ] } ], "code": { "coding": [ { "system": "eHealth/LOINC/observation_codes", "code": "10569-2" } ] }, "effective_date_time": "2018-10-08T09:46:37.694Z", "issued": "2018-08-02T10:45:16.000Z", "inserted_at": "2018-08-02T10:45:16.000Z", "updated_at": "2018-08-02T10:45:16.000Z", "primary_source": false, "performer": { "identifier": { "type": { "coding": [ { "system": "eHealth/resources", "code": "employee" } ] }, "value": "9183a36b-4d45-4244-9339-63d81cd08d9c" }, "display_value": "Шевченко Олесь Вікторович" }, "interpretation": { "coding": [ { "system": "eHealth/observation_interpretations", "code": "L" } ] }, "comment": "Some comment", "body_site": { "coding": [ { "system": "eHealth/body_sites", "code": "head" } ] }, "method": { "coding": [ { "system": "eHealth/observation_methods", "code": "anamnesis" } ] }, "value_quantity": { "value": 0, "comparator": ">", "unit": "kg", "system": "eHealth/ucum/units", "code": "kg" }, "reference_ranges": [ { "low": { "value": 0, "comparator": ">", "unit": "kg", "system": "eHealth/ucum/units", "code": "kg" }, "high": { "value": 0, "comparator": "<", "unit": "kg", "system": "eHealth/ucum/units", "code": "kg" }, "type": { "coding": [ { "system": "eHealth/reference_range_types", "code": "normal" } ] }, "applies_to": { "coding": [ { "system": "eHealth/reference_range_applications", "code": "male" } ] }, "age": { "low": { "value": 18, "comparator": ">", "unit": "years" }, "high": { "value": 35, "comparator": "<", "unit": "years" } }, "text": "Some text" } ] } ], "paging": { "page": 2, "page_size": 50, "total_entries": 1000, "total_pages": 20 } }

HTTP status codes

Response code

HTTP Status code

Message

Internal name

Description

Response code

HTTP Status code

Message

Internal name

Description

1

Базові

2

 

200

 

 

 

3

 

401

 

Access token validation failed

 

4

 

403

 

Invalid scope

 

5

 

403

Your scope does not allow to access this resource. Missing allowances: medical_event_context:read

 

 

6

 

404

not found

 

 

7

Специфічні

8

 

 

 

 

 

Post-processing processes

N/A

Technical modules where the method is used

N/A

 

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