Versions Compared

Key

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

...

This WS is designed to qualify Device Request: check the ability of dispense Device Request within the Medical program.

This method is used to qualify (possibility to use device definition for the program) Device request by Id . Fields descriptions are listed in request Example view.

Key points

  1. Only authenticated and authorized users with appropriate scope can invoke Qualify Device Request

  2. This method returns for existing Device Request the result of data validation within each submitted medical program, but not creates any entities in the system.

  3. Each Medical program may have its unique conditions for the Device Dispense. They can be based on analysis of personal info, device definition list, terms, locations and combinations of them.

  4. Any Medical program can have separate block of branching logic configured at /wiki/spaces/CSI/pages/17467605147 by NHS administrator.

  5. Сompatibility is checked only for programs which are available in payload (array).

  6. Successful invocation of the method returns decision for each program if it is valid or not to create Device dispense with submitted combination of parameters in the payload. If program is invalid, the reason must be returned in the response.

  7. Allowed for existing and active Device Requests

  8. Also medical program provision is checked for the division of the pharmacy.

Specification

Apiary

Page Properties
idAPI_Specification

Link

https://ehealthmedicaleventsapi.docs.apiary.io/#reference/device-requests/qualify-device-request-by-id/qualify-device-request-by-id

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

Resource

/api/device_requests/{{device_request_id}}/actions/qualify

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

Scope

Scope для доступу

Components

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

Microservices

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

Protocol type

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

Request type

POST

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

Sync/Async

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

Public/Private/Internal

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

Logic

Generate structure for response

  1. If general error found at Validate division section, that doesn’t depend on medical program, then return corresponding error code with error message

  2. If general validation passed, then collect array for all programs in payload with status for each (VALID or INVALID) and rejection_reason

  3. For each program return a list of appropriate Device Definitions found at Validate Device Definitions step

  4. Generate response according to specification

Input parameters

Input parameter

Values

Type

Description

Example

device_request_id

String

Device request identifier

2848a935-5fd7-48ba-b235-a9b5d475c647

Request structure

See on Apiary

Example:

Expand
titleRequest example
Code Block
{
  "location": {
    "identifier": {
      "type": {
        "coding": [
          {
            "system": "eHealth/resources",
            "code": "division"
          }
        ]
      },
      "value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
    }
  },
  "programs": [
    {
      "identifier": {
        "type": {
          "coding": [
            {
              "system": "eHealth/resources",
              "code": "medical_program"
            }
          ]
        },
        "value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
      }
    }
  ]
}

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 and client scopes in order to perform this action (scope = 'device_request:read')

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

Headers

  • Content-Type:application/json

  • Authorization:Bearer c2778f3064753ea70de870a53795f5c9

  • api-key:aFBLVTZ6Z2dON1V

Request data validation

Validate Device request

...

API paragraph not found

Response structure

See on Apiary

Example:

Expand
titleResponse example
Code Block
{
  "meta": {
    "code": 200,
    "url": "http://example.com/resource",
    "type": "object",
    "request_id": "req-adasdoijasdojsda"
  },
  "data": [
    {
      "program_id": "59781de0-2e64-4359-b716-bcc05a32c10f",
      "program_name": "Доступні медичні вироби",
      "status": "INVALID",
      "rejection_reason": "No appropriate participants found for this medical program",
      "participants": [
        {
          "id": "0f2fbf93-3041-4c0d-a3cf-ff558c861df8",
          "device_definition": {
            "id": "3e34da3d-9b8c-4aaf-be8e-24a161279b6a",
            "device_names": [
              {
                "name": "Тест-смужки Accu-Chek Active для глюкометра",
                "type": "user_friendly"
              }
            ],
            "classification_type": "30221",
            "manufacturer": {
              "name": "ПАТ \"Київський вітамінний завод\"",
              "country": "UA"
            },
            "model_number": "M23N76",
            "packaging": {
              "packaging_type": "undefined",
              "packaging_count": 50,
              "packaging_unit": "pcs"
            }
          },
          "reimbursement": {
            "type": "FIXED",
            "percentage_discount": 12.45,
            "reimbursement_amount": 50.98
          },
          "wholesale_price": 25.14,
          "consumer_price": 34.03,
          "reimbursement_daily_count": 5,
          "estimated_payment_amount": 5.15,
          "max_daily_count": 10,
          "registry_number": "REG-1111",
          "start_date": "2019-01-01",
          "end_date": "2019-06-30"
        }
      ]
    }
  ]
}
Expand
titleResponse example
Code Block
{
  "meta": {
    "code": "422",
    "url": "http://example.com/resource",
    "type": "object",
    "request_id": "req-adasdoijasdojsda"
  },
  "error": {
    "type": "unverified",
    "message": "Division is not active"
  }
}

Post-processing processes

...

Page Properties
idAPI_HTTP status codes

HTTP status code

Message

What caused the error

  200

 

  

 422