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

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 19 Next »

Purpose

This web service is designed to return observations by patient_id, episode_id, diagnostic_report_id or encouner_id.

Specification

Link

https://medicaleventsmisapi.docs.apiary.io/#reference/medical-events/observation/get-observations-by-searh-params

Resource

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

Scope

observation:read

Components

Episode of Care

Microservices

API paragraph not found

Protocol type

REST

Request type

GET

Sync/Async

Async

Public/Private/Internal

Public

Filters

Filter

Values

Type

Description

Example

page

Number

Page number

1

page_size

Number

A limit on the number of objects to be returned, between 1 and 100. Default: 50

50

code

String

10569-2

encounter_id

String

09dc3ed7-2169-45d8-8fa3-d918c6839bf9

diagnostic_report_id

String

09dc3ed7-2169-45d8-8fa3-d918c6839bf9

episode_id

String

f48d1b6c-a021-4d6a-a5a4-aee93e152ecc

issued_from

String

1990-01-01

issued_to

String

2000-01-01

Request structure

See on Apiary

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)

Headers

Наприклад:

  • Content-Type:application/json

  • Authorization:Bearer {{access_token}}

  • API-key:{{secret}}

Request data validation

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

See on Apiary

Example:

 Response example
{
  "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
  }
}

Post-processing processes

API paragraph not found

HTTP status codes

HTTP status code

Message

What caused the error

 200

 

 

401

 

Access token validation failed

403

 

Invalid scope

  • No labels