Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Page Properties
idpage_properties_method_REST API

Document type

Метод REST API

Document title

[DRAFT] Get Device context [API-007-002-001-0232]

Guideline ID

GUI-0011

Author

@

Document version

1

Document status

DRAFT

Date of creation

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

Date of update

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

Method API ID

API-007-002-001-0232

Microservices (namespace)

ME

Component

Devices and equipment

Component ID

COM-007-002

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

https://medicaleventsmisapi.docs.apiary.io/#reference/medical-events/medication-statement/get-device-context

Resource

{{host}}/api/patients/{{patient_id}}/devices/{{device_id}}/context

Scope

medical_event_context:read

Protocol type

REST

Request type

GET

Sync/Async

Async

Public/Private

Public

Purpose

This web service is designed to return records about patient's devices by patient_id or search_params.

Logic

N/A

method allows to get an ID of the episode that is a context of the Device, in order to create an approval on the episode, and receive access to the medical events related to that episode, including the Device.

This method allows to get the context of Device in order to create approval on episode and receive access to other medical events.

Logic

Service returns context_episode_id of the device:

  • Get device.context_episode_id from Device object

  • Enrich response with context_episode_id and render the response according to JSON Schema

Service returns context (episode), device based on:

  • Get Device object bydevice_id from devices (MongoDB)

  • Get device.context.identifier from Device object

  • Call Get Encounter context :

    • Get Encounter objectby device.context.identifier (device.context.identifier = encounter._id)
      AFTER

    • Get encounter.episode from Encounter object

  • Render a response according to specification

Configuration parameters

N/A

...

Input parameter

Mandatory

Type

Description

Example

1

patient_id

 

String

Patient identifier

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

2

device_id

 

String

Device identifier

a10aeafb-0df2-4091-bc83-f07e92a100ae

Request structure

See on API-specification

...

Request data validation

Authorize

Request to process the request using a token in the headers

Validate token

  • Verify the validity of access token

    • Return 401 Return (401, 'Invalid access token') in case of validation fails

  • Verify that token is not expired

    • in case of error return 401 

Validate scopes

    • - return (401, 'Invalid access token')

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

    • Return (403, 'Your scope does not allow to access this resource. Missing allowances: medical_event_context:read') in case of invalid scope(s)

...

Validate Person

  • Get Person identifier from the URL

  • Check it exists in DB

    • Return 404 ('not_found') in case of error

Validate Encounter

  • Get Device identifier from the URL

    • Check it exists in DB

      • Return 404 ('not_found') in case of error

    • Check Device belongs to patient

      • Return 404 ('not_found') in case of error

Validate Device

  • Get Device identifier from the URL

    • Check it exists in DB

      • Return 404 ('not_found') in case of error

    • Check Device belongs to the patient

      • Return 404 ('not_found') in case of error

Processing

N/A

Response structure examples

...

Expand
titleExample
Code Block
languagejson
{
  "meta": {
    "code": 200,
    "url": "http://example.com/resource",
    "type": "object",
    "request_id": "req-adasdoijasdojsda"
  },
  "data": [
    {
      "id": "90a9e15b-b71b-4caf-8f2e-ff247e8a5600",
      "status": "inactive",
      "asserted_date": "2018-08-02T10:45:00.000Z",
      "usage_period": {
        "start": "2000-01-01T00:00:00.000Z",
        "end": "2018-08-02T11:00:00.000Z"
      },
      "context"episode": {
 
      "identifier": {
          "type": {
            "coding": [
              {
                "system": "eHealth/resources",
                "code": "encounterepisode"

             }
            ]
 
        },
 
        "value": "9183a36b7c3da506-4d45804d-42444550-93398993-63d81cd08d9c"
        }bf17f9ee0403"
      },
      "primary_source": true,
      "asserter": {
        "identifier": {
          "type": {
            "coding": [
              {
                "system": "eHealth/resources",
                "code": "employee"
              }
            ],
            "text": ""
          },
          "display_value": "97d57238-ffbe-4335-92ea-28d4de117ea2null"
        }

     },
      "typemeta": {
   
    "coding": [
          {
            "system": "eHealth/device_types",
            "code": "Spine_board"
          }
        ]
      }code": 200,
      "lot_numberurl": "RZ12345678",
      "manufacturer": "GlobalMed, Inc",
      "manufacture_date": "1999-01-01T00:00:00.000Z",
 http://example.com/resource",
    "expiration_datetype": "2020-01-01T00:00:00.000Zobject",
      "model": "NSPX30",
      "version": "v1.0.1",
      "note": "Імплант був вилучений по причині заміни на новий",
      "inserted_at"request_id": "2018-08-02T10:55:00.000Z",
      "updated_at": "2018-08-02T10:55:00.000Zreq-adasdoijasdojsda"
    }
  ],
  "paging": {

   "page": 2,
    "page_size": 50,
    "total_entries": 1000,
    "total_pages": 20
  }
}

HTTP status codes

200

Response code

HTTP Status code

Message

Internal name

Description

1

Базові

2

3

Специфічні

4

Post-processing processes

...