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

Skip to end of metadata
Go to start of metadata

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

Compare with Current View Page History

« Previous Version 26 Next »

Purpose

This WS is designed to return records about Care plans filtered by submitted parameters withtin specified patient. List should be returned without activities.

https://e-health-ua.atlassian.net/wiki/spaces/EH/pages/2125038637/care+plan#%D0%9E%D1%82%D1%80%D0%B8%D0%BC%D0%B0%D0%BD%D0%BD%D1%8F-%D1%96%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D1%96%D1%97-%D0%BF%D0%BB%D0%B0%D0%BD%D1%83-%D0%BB%D1%96%D0%BA%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F

Specification

Link

https://medicaleventsmisapi.docs.apiary.io/#reference/care-plan/get-care-plans-by-search-params/get-care-plans-by-search-params

Resource

/api/patients/{{patient_id}}/care_plans

Scope

care_plan:read

Components

Care plan

Microservices

me/api-medical-events

me/event-consumer

me/kafka-consumer

il/api(rpc)

Protocol type

REST

Request type

GET

Sync/Async

Sync

Public/Private/Internal

Public

Logic

Returns care plan list filtered by submitted parameters within specified patient.

Input parameters

Input parameter

Values

Type

Description

Example

patient_id

String

MPI identifier of the patient

7c3da506-804d-4550-8993-bf17f9ee0402

Filters

Filter

Values

Type

Description

Example

period_date

Date

date within Care plan's period incleuding start and end dates

2018-08-02

encounter_id

String

identifier of the encounter in Care plan

7c3da506-804d-4550-8993-bf17f9ee0400

based_on

String

Care Plan identifier on which returned Care plans are based on

7c3da506-804d-4550-8993-bf17f9ee0401

part_of

String

parent Care Plan identifier which includes returned Care plans

7c3da506-804d-4550-8993-bf17f9ee0401

status

String

Care plan's status

active

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

Dictionaries

PROVIDING_CONDITION

Request structure

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 = 'care_plan:read')

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

Request to process the request using a token in the headers

Headers

Наприклад:

Content-Type:application/json
Authorization:Bearer {{access_token}}
API-key:{{mis_client_secret}}

Request data validation

Validate Patient

  • Get Patient identifier from the URL

  • Check it exists in DB

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

Processing

Service logic

Service returns all Care plans related to the patient filtered by submitted parameters:

  • Get all care plans by patient_id from care_plans collection (MongoDB)

  • Filter list above by submitted search parameters

  • Render a response according to specification with found Care plan entities. Care plans should be rendered without their activities.

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",
      "based_on": {
        "identifier": {
          "type": {
            "coding": [
              {
                "system": "eHealth/resources",
                "code": "care_plan"
              }
            ]
          },
          "value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
        }
      },
      "requisition": "0123-4567-89AB-CEIK",
      "part_of": {
        "identifier": {
          "type": {
            "coding": [
              {
                "system": "eHealth/resources",
                "code": "care_plan"
              }
            ]
          },
          "value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
        }
      },
      "period": {
        "start": "2018-08-02T10:45:16.000Z",
        "end": "2018-08-02T11:00:00.000Z"
      },
      "intent": "order",
      "encounter": {
        "identifier": {
          "type": {
            "coding": [
              {
                "system": "eHealth/resources",
                "code": "encounter"
              }
            ]
          },
          "value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
        }
      },
      "author": {
        "identifier": {
          "type": {
            "coding": [
              {
                "system": "eHealth/resources",
                "code": "employee"
              }
            ]
          },
          "value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
        }
      },
      "subject": {
        "identifier": {
          "type": {
            "coding": [
              {
                "system": "eHealth/resources",
                "code": "patient"
              }
            ]
          },
          "value": "7c3da506-804d-4550-8993-bf17f9ee0403"
        }
      },
      "status": "active",
      "terms_of_service": {
        "coding": [
          {
            "system": "PROVIDING_CONDITION",
            "code": "INPATIENT"
          }
        ]
      }
    }
  ]
}

Post-processing processes

No

HTTP status codes

HTTP status code

Message

What caused the error

200

 Response

 

401

  • unauthorized

 Invalid access token

403

  • invalid scopes

Invalid scope(s)

404

  • not found

  • No labels