Versions Compared

Key

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

Table of Contents
minLevel1
maxLevel7

Purpose*

Returns declaration requests that were created through V2 and V3.

Specification*

...

Link

...

Apiary

...

Resource

...

/api/v3/declaration_requests/{id}

...

Scope

...

declaration_request:read

...

Components

...

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

...

Global and configure parameters

...

<Потрібно вказати глобальні та конфігураційні параметри>

...

Using Dictionaries

...

<Потрібно вказати словники, які використовує метод API>

...

Using Microservices

...

<Вкажіть перелік мікросервісів, які використовує метод API. Наприклад: Auth, ABAC>

...

Protocol type

...

REST API

...

Request type

...

GET

...

Sync/Async

...

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

Logic*

Fields person_id and data_to_be_signed will be empty if declaration request is created by V2.

  1. Only authenticated and authorized user can use declaration request

  2. The service returns only a declaration request that was created in the same legal entity as the user

Input parameters

...

Filter

...

Values

...

Type

...

Description

...

Example

...

 id

...

 

...

String

...

request identifier

...

d290f1ee-6c54-4b01-90e6-d701748f0851

Request structure*

See on Apiary

Authorize*

  1. Verify the validity of access token

    1. Return 401 in case validation fails

  2. Check scopes in order to perform this action (scope = 'declaration_request:read')

    1. Return 403 in case invalid scope(s)

Request to process the request using a token in the headers.

Headers*

  • Content-Type:application/json

  • Authorization:Bearer c2778f3064753ea70de870a53795f5c9

Validate request (JSON schema)*

<Наприклад:

  1. Validate request using JSON schema

    1. In case validation failed - generate 422 error

Expand
titleJSON schema
Code Block
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "verification_code": {
      "type": "string"
    }
  },
  "required": [
    "verification_code"
  ],
  "additionalProperties": false
}

Validation data request*

<Валідація даних>

Processing*

1. Using global parameters

<Потрібно викликати глобальні параметри (Global parameters), щоб отримати наведені нижче параметри>

2. Generate structure for response

<Наприклад:

  • Collect response array for all programs in payload with status for each (VALID or INVALID) and rejection_reason

  • For all VALID programs - Get linked medications (type = BRAND) with reimbursement info 

  • Show only active program medications based on start_date and end (start_date must be earlier or equal to the current date or empty, end_date must be greater or equal to the current date or empty)

...

Code Block
IF EXISTS
    (SELECT * FROM program_medications MP
        INNER JOIN medications M
            ON M.id = MP.medication_id
                AND M.type =  BRANDS
        INNER JOIN ingredients I
            ON I.parend_id = M.id
                AND I.is_primary = TRUE
                AND I.medication_child_id = _MR.medication_id
    WHERE MP.medical_program_id == $.id
        AND MP.is_active == TRUE
        AND M.is_active == TRUE)

>

...

Table of Contents
minLevel1
maxLevel7

Purpose

This WS is designed to get declaration requests details

Key features

  1. Only authenticated and authorized employee with appropriate scope can get declaration requests list.

  2. The service can return only declaration request that was created in the same legal entity as the user or assigned to legal entity and shared

Specification

Link

https://uaehealthapi.docs.apiary.io/#reference/public.-medical-service-provider-integration-layer/declaration-requests/get-declaration-request-by-id-v3

Resource

/api/v3/declaration_requests/{{id}}

Scope

declaration_request:read

Components

Declarations

Using Microservices

il/api

ops/api

Protocol type

REST

Request type

GET

Sync/Async

API paragraph not found

Public/Private/Internal

Public

Logic

  1. Get declaration request details from il.declaration_requests table by declaration request id from request

  2. Generate URL to get signed_content (optional)

    1. Generate URL only in case of:

      1. channel = PIS and status APPROVED

    2. Put url to urgent section

  3. Render response according to specification.

Use ael service

Parameter

Source

action

'GET'

bucket

'DECLARATION_REQUESTS'

resource_id

:DECLARATION_REQUEST_ID

resource_name

signed_content

Validate Declaration request

  • Check that declaration request:

    • exists in il DB

    • is_shareable = true or channel = MIS

    • belongs to legal entity (get user from token, find employee associated with this user and ensure that this employee has at least one role in the same legal entity as in declaration request)

      • in case of error - return 404 ('not found')

Input parameters

Filter

Values

Type

Description

Example

 id

 

String

request identifier

d290f1ee-6c54-4b01-90e6-d701748f0851

Authorize

  1. Verify the validity of access token

    • in case of error - return 401 (“Invalid access token”) in case of validation fails

  2. Verify that token is not expired

    • in case of error - return 401 (“Invalid access token”)

  3. Check user scopes in order to perform this action (scope = 'declaration_request:read')

    • return 403 (“Your scope does not allow to access this resource. Missing allowances: declaration_request:read”) in case of invalid scope(s)

Headers

  • Content-Type:application/json

  • Authorization:Bearer {{access_token}}

  • X-Custom-PSK:{{secret}}

Response structure

Print form is generated after approve declaration request, so in response on Get decl declaration request by id show fields contextand data_to_be_signed if DR approved.

See on Apiary

Expand
titleJSON schemaRequest example
Code Block
{
  "meta": {
    "code": 201,
    "url": "https://example.com/resource",
    "type": "object",
    "request_id": "req-adasdoijasdojsda6617aeec-15e2-4d6f-b9bd-53559c358f97#17810"
  },
  "data": {
    "id": "b075f148-7f93-4fc2-b2ec-2d81b19a9b7b",
    "start_date": "2017-03-02",
    "end_date": "2017-03-02",
    "person_id": "4d0d790c-cbf1-44f5-ab21-ba8db67da161",
    "employee_id": "1a8b10ea-ba09-40f2-8f9e-55608e9208c6",
    "division_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
    "legal_entity_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
    "declaration_number": "0000-12H4-245D",
    "declaration_numberid": "8311ab82-e341-4da0-8a95-235ec9885e23",
    "parent_declaration_id": "8c7753fc-a647-435f-8e43-4ff4546431f6",
    "status": "0000-12H4-245DSIGNED",
    "declarationstatus_idreason": "8311ab82-e341-4da0-8a95-235ec9885e23not relevant",
    "parentsystem_declaration_idlimit": "8c7753fc-a647-435f-8e43-4ff4546431f6"900,
    "statuscurrent_declaration_count": "SIGNED"675,
    "channel": "MIS",
    "authorize_with": "cc949559-5dfe-420f-ac05-065e443b2cc6",
    "data_to_be_signed": {
      "id": "b099f148-7f93-4fc2-b2ec-2d81b19a9b7b",
      "declaration_number": "0000-12H4-245D",
      "declaration_id": "8311ab82-e341-4da0-8a95-235ec9885e23",
      "start_date": "2017-03-02",
      "end_date": "2017-03-02",
      "content": "Declaration content",
      "channel": "MIS",
      "person": {
        "id": "5fb57a5d-1457-430e-9678-c81cec72779f",
        "first_name": "Петро",
        "last_name": "Іванов",
        "second_name": "Миколайович",
        "birth_date": "2009-07-05",
        "birth_country": "Україна",
        "birth_settlement": "Вінниця",
        "gender": "MALE",
        "email": "email@example.com",
        "no_tax_id": false,
        "tax_id": "3999869394",
        "secret": "secret",
        "documents": [
          {
            "type": "BIRTH_CERTIFICATE",
            "number": "АА120518",
            "issued_by": "Рокитнянським РВ ГУ МВС Київської області",
            "issued_at": "2017-02-28",
            "expiration_date": "2027-02-28"
          }
        ],
        "addresses": [
          {
            "type": "RESIDENCE",
            "country": "UA",
            "area": "Житомирська",
            "region": "Бердичівський",
            "settlement": "Київ",
            "settlement_type": "CITY",
            "settlement_id": "b075f148-7f93-4fc2-b2ec-2d81b19a9b7b",
            "street_type": "STREET",
            "street": "вул. Ніжинська",
            "building": "15",
            "apartment": "23",
            "zip": "02090"
          }
        ],
        "phones": [
          {
            "type": "MOBILE",
            "number": "+380503410870"
          }
        ],
        "authentication_methods": [
          {
            "type": "OTP",
            "phone_number": "+38093*****85"
          }
        ],
        "unzr": "20090705-00011",
        "emergency_contact": {
          "first_name": "Петро",
          "last_name": "Іванов",
          "second_name": "Миколайович",
          "phones": [
            {
              "type": "MOBILE",
              "number": "+380503410870"
            }
          ]
        },
        "confidant_person": [
          {
            "relation_type": "PRIMARY",
            "first_name": "Петро",
            "last_name": "Іванов",
            "second_name": "Миколайович",
            "birth_date": "1972-10-26",
            "birth_country": "Україна",
            "birth_settlement": "Вінниця",
            "gender": "MALE",
            "tax_id": "2659719350",
            "secret": "secret",
            "unzr": "19900101-00099",
            "preferred_way_communication": "email",
            "documents_person": [
              {
                "type": "PASSPORT",
                "number": "АА120518",
                "expiration_date": "2021-02-28",
                "issued_by": "Рокитнянським РВ ГУ МВС Київської області",
                "issued_at": "2017-02-28"
              }
            ],
            "documents_relationship": [
              {
                "type": "BIRTH_CERTIFICATE",
                "number": "АА120518",
                "issued_by": "Рокитнянським РВ ГУ МВС Київської області Київської області",
                "issued_at": "2017-02-28",
                "issuedactive_atto": "20172025-0208-2819"
              }
            ],
            "phones": [
              {
                "type": "MOBILE",
                "number": "+380503410870"
              }
            ],
            "email": "emaill@example.com"
          }
        ],
        "preferred_way_communication": "email",
        "patient_signed": false,
        "process_disclosure_data_consent": true
      },
      "employee": {
        "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
        "position": "P6",
        "party": {
          "id": "b075f148-7f93-4fc2-b2ec-2d81b19a9b7b",
          "no_tax_id": true,
          "first_name": "Петро",
          "last_name": "Іванов",
          "second_name": "Миколайович",
          "email": "email@example.com",
          "phones": [
            {
              "type": "MOBILE",
              "number": "+380503410870"
            }
          ]
        }
      },
      "legal_entity": {
        "name": "Клініка Ноунейм",
        "short_name": "Ноунейм",
        "legal_form": "140",
        "public_name": "ЦПМСД №1",
        "edrpou": "5432345432",
        "licenses": [
          {
            "license_number": "fd123443",
            "issued_by": "Кваліфікацйна комісія",
            "issued_date": "2017-02-28",
            "expiry_date": "2017-02-28",
            "active_from_date": "2017-02-28",
            "what_licensed": "реалізація наркотичних засобів",
            "order_no": "ВА43234"
          }
        ],
        "accreditation": {
          "category": "SECOND",
          "issued_date": "2017-02-28",
          "expiry_date": "2017-02-28",
          "order_no": "fd123443",
          "order_date": "2017-02-28"
        },
        "addresses": [
          {
            "type": "RESIDENCE",
            "country": "UA",
            "area": "Житомирська",
            "region": "Бердичівський",
            "settlement": "Київ",
            "settlement_type": "CITY",
            "settlement_id": "b075f148-7f93-4fc2-b2ec-2d81b19a9b7b",
            "street_type": "STREET",
            "street": "вул. Ніжинська",
            "building": "15",
            "apartment": "23",
            "zip": "02090"
          }
        ],
        "phones": [
          {
            "type": "MOBILE",
            "number": "+380503410870"
          }
        ],
        "email": "email@example.com",
        "id": "b075f148-7f93-4fc2-b2ec-2d81b19a9b7b"
      },
      "division": {
        "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
        "legal_entity_id": "c8aadb87-ecb9-41ca-9ad4-ffdfe1dd89c9",
        "name": "Бориспільське відділення Клініки Ноунейм",
        "addresses": [
          {
            "type": "RESIDENCE",
            "country": "UA",
            "area": "Житомирська",
            "region": "Бердичівський",
            "settlement": "Київ",
            "settlement_type": "CITY",
            "settlement_id": "b075f148-7f93-4fc2-b2ec-2d81b19a9b7b",
            "street_type": "STREET",
            "street": "вул. Ніжинська",
            "building": "15",
            "apartment": "23",
            "zip": "02090"
          }
        ],
        "phones": [
          {
            "type": "MOBILE",
            "number": "+380503410870"
          }
        ],
        "email": "email@example.com",
        "type": "clinic",
        "external_id": "3213213",
        "dls_id": "2872985",
        "dls_verified": true
      },
      "seed": "hash",
      "authorize_with": "cc949559-5dfe-420f-ac05-065e443b2cc6"
    }
  },
  "urgent": {
    "authentication_method_current": {
      "type": "OTP",
      "number": "+38093*****85"
    },
    "documents": [
      {
        "type": "PASSPORT",
        "url": "https://storage.ehealth.world"
      }
    ]
  }
}

Post-processing processes*

<Що має відбутися в ЦБД після опрацювання запиту>

HTTP status codes

HTTP status code

Message

What caused the error

 200

200

 Response

 

 

401

Access token validation failed

403

Invalid scope

Backward compatibility

This endpoint shows the declaration requests which are created by V2 and V3. Due to the fact that structure of declaration request V2 is different from the structure of decl declaration request V3 , so not all fields od decl of declaration request v2 can be displayed.