Versions Compared

Key

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

Purpose

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

This WS allows to cancel existing procedure and change its status to entered_in_error in case of any mistake. The new correct procedure could be created instead. Method receives signed message (pkcs7) that consists of signed content, digital signature and signer public key. All signature fields will be validated (including signer certificate authority)

Important

...

.

...

...

status_reason and explanatory_letter (optional) must be added to signed content

Please see Cancel Procedure and [Dummy Cancel Procedure for more details

Specification

Page Properties
idAPI_Specification
GET

Link

https://ehealthmedicaleventsapi.docs.apiary.io/#reference/medical-events/procedures/get-procedure-contextsПосилання на Apiary або Swagger

Resource

/api/patients/{{patient_id}}/procedures/{{procedure_id}}/context

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

Scope

procedure:write

Scope для доступуmedical_event_context:read

Components

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

Microservices

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

Protocol type

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

Request type

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

Sync/Async

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

Public/Private/Internal

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

Logic

Service returns contexts (episode and origin_episode), procedure based on:

  • Get Procedure object byprocedure_id from procedures (MongoDB)

  • Get procedure.encounter.identifier from Procedure object

  • Call https://e-health-ua.atlassian.net/wiki/spaces/EH/pages/17049388285 Get Encounter context :

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

    • Get encounter.episode from Encounter object

  • Get procedure.origin_episode from Procedure object

  • Render a response according to specification

Input parameters

Input parameter

Values

Type

Description

Example

patient_id

String

Patient identifier

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

procedure_id

String

Procedure identifier

a10aeafb-0df2-4091-bc83-f07e92a100ae

Request structure

See on Apiary

Authorize

  • Verify the validity of access token

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

  • Verify that token is not expired

    • in case of error - return (401, 'Invalid access token')

  • Check user scopes in order to perform this action (scope = 'medical_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)

Headers

  • Content-Type:application/json

  • Authorization:Bearer mF_9.B5f-4.1JqM

Request data validation

Validate Person

  • Get Person identifier from the URL

  • Check it exists in DB

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

Validate Encounter

  • Get Procedure identifier from the URL

    • Check it exists in DB

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

    • Check Procedure belongs to patient

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

Processing

API paragraph not found

Response structure*

See on Apiary

Expand
titleResponse example
Code Block
{
  "data": {
    "episode": {
      "identifier": {
        "type": {
          "coding": [
            {
              "system": "eHealth/resources",
              "code": "episode"
            }
          ]
        },
        "value": "7c3da506-804d-4550-8993-bf17f9ee0403"
      },
      "display_value": "null"
    },
    "origin_episode": {
      "identifier": {
        "type": {
          "coding": [
            {
              "system": "eHealth/resources",
              "code": "episode"
            }
          ]
        },
        "value": "7c3da506-804d-4550-8993-bf17f9ee0403"
      },
      "display_value": "null"
    }
  },
  "meta": {
    "code": 200,
    "url": "http://example.com/resource",
    "type": "object",
    "request_id": "req-adasdoijasdojsda"
  }
}

Post-processing processes

API paragraph not found

HTTP status codes

Page Properties
idAPI_HTTP status codes

HTTP status code

Message

What caused the error

 200

 

 

...