Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Purpose

This method allows to get Clinical impression list for a specified patient filtered by search params.

Specification

Page Properties
idAPI_Specification

Link

https://ehealthmedicaleventsapi.docs.apiary.io/#reference

Посилання на Apiary або Swagger

Resource

/api/patients/patient_id/clinical_impressions

Посилання на ресурс, наприклад: /api/persons/create

Scope

Scope для доступу

Components

Зазначається перелік бізнес компонентів, які використовують цей метод, наприклад: ePrescription

Microservices

Перелік мікросервісів, які використовує метод API, наприклад: Auth, ABAC

Protocol type

Тип протоколу, який використовується запитом, наприклад: SOAP | REST

Request type

Тип запиту API, наприклад: GET, POST, PATCH…

Sync/Async

Метод є синхронним чи асинхронним?

Public/Private/Internal

Потрібно зазначити тип методу за ступенем доступності

Logic

Service returns all Clinical impressions related to the patient filtered by submitted parameters:

  • Get all Clinical impressions by patient_id from clinical_impressions collection (MongoDB)

  • Filter list above by submitted search parameters

  • Render a response according to specification with found Clinical impression entities.

Filters

Filter

Values

Type

Description

Example

patient_id

String

MPI identifier of the patient

7c3da506-804d-4550-8993-bf17f9ee0402

encounter_id

String

identifier of the encounter in clinical impression

7c3da506-804d-4550-8993-bf17f9ee0400

episode_id

String

f48d1b6c-a021-4d6a-a5a4-aee93e152ecc

code

String

clinical impression's code

insulin_1

status

String

linical impression's status

completed

effective_date_from

String

date of clinical impression

2017-09-01

effective_date_to

String

date of clinical impression

2017-09-02

page

Number

Page number

2

page_size

Number

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

50

Request structure*

See on Apiary

...

Authorize

  • Verify the validity of access token

    • Return (401, 'unauthorized') in case of validation fails

  • Verify that token is not expired

    • in case of error - return (401, 'unauthorized')

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

    • Return (403, 'invalid scopes') in case of invalid scope(s)

Access to the resource is also managed by ABAC module

...

Headers*

Наприклад:

  • Content-Type:application/json

  • Authorization:Bearer mF_9.B5f-4.1JqM

Request data validation*

Validate Patient

  • Get Patient identifier from the URL

  • Check it exists in DB

    • Return 404 ('not found') in case of error

...

  • Extract user_id from token.

  • Check user has an active and approved employee from legal entity (token) that:

    • has an active declaration with the patient

    • has access to episode with the patient (created in current MSP or approval on Episode resource)

Service logic

Service returns all Clinical impressions related to the patient filtered by submitted parameters:

  • Get all Clinical impressions by patient_id from clinical_impressions collection (MongoDB)

  • Filter list above by submitted search parameters

  • Render a response according to specification with found Clinical impression entities.

Processing

Response structure

See on Apiary

Expand
titleResponse example
Code Block
{
  "meta": {
    "code": 200,
    "url": "http://example.com/resource",
    "type": "object",
    "request_id": "req-adasdoijasdojsda"
  },
  "data": [
    {
      "id": "90a9e15b-b71b-4caf-8f2e-ff247e8a5600",
      "status": "completed",
      "description": "Some description of the clinical impression",
      "code": {
        "coding": [
          {
            "system": "eHealth/clinical_impression_patient_categories",
            "code": "insulin_1"
          }
        ]
      },
      "encounter": {
        "identifier": {
          "type": {
            "coding": [
              {
                "system": "eHealth/resources",
                "code": "encounter"
              }
            ]
          },
          "value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
        }
      },
      "effective_date_time": "2018-08-02T10:45:16.000Z",
      "assessor": {
        "identifier": {
          "type": {
            "coding": [
              {
                "system": "eHealth/resources",
                "code": "employee"
              }
            ]
          },
          "value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
        },
        "display_value": "Петров Іван Іванович"
      },
      "previous": {
        "identifier": {
          "type": {
            "coding": [
              {
                "system": "eHealth/resources",
                "code": "clinical_impression"
              }
            ]
          },
          "value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
        }
      },
      "problems": [
        {
          "identifier": {
            "type": {
              "coding": [
                {
                  "system": "eHealth/resources",
                  "code": "condition"
                }
              ]
            },
            "value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
          }
        }
      ],
      "summary": "Some summary",
      "findings": [
        {
          "item_reference": {
            "identifier": {
              "type": {
                "coding": [
                  {
                    "system": "eHealth/resources",
                    "code": "condition"
                  }
                ]
              },
              "value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
            }
          },
          "basis": "Some basis"
        }
      ],
      "supporting_info": [
        {
          "identifier": {
            "type": {
              "coding": [
                {
                  "system": "eHealth/resources",
                  "code": "episode_of_care"
                }
              ]
            },
            "value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
          }
        }
      ],
      "note": "Some note",
      "inserted_at": "2018-08-02T10:55:00.000Z",
      "updated_at": "2018-08-02T10:55:00.000Z"
    }
  ],
  "paging": {
    "page": 2,
    "page_size": 50,
    "total_entries": 1000,
    "total_pages": 20
  }
}

Post-processing processes

HTTP status codes

Page Properties
idAPI_HTTP status codes

HTTP status code

Message

What caused the error

 200