Versions Compared

Key

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

...

Page Properties
idAPI_Specification

Link

https://ehealthmisapi1.docs.apiary.io/#reference/public.-medical-service-provider-integration-layer/divisions/update-division

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

Resource

/api/divisions/{{id}}

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

Scope

division:write

Scope для доступу

Components

Divisions

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

Microservices

il/api

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

Protocol type

REST

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

Request type

PATCH

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

Sync/Async

Sync

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

Public/Private/Internal

Public

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

Logic

  1. Only authenticated and authorized user of this legal entity with appropriate scope can update division.

  2. Division can be updated for RESIDENCE, REGISTRATION addresses types.

  3. Division can be updated for legal entities in ACTIVE or SUSPENDED statuses.

  4. Editable information on division:

    • name

    • addresses

    • phones

    • email

    •  add the gps-coordinates attributed to the division (location)

    • working hours

...

Expand
titleRequest example
Code Block
{
  "name": "Бориспільське відділення Клініки Ноунейм",
  "addresses": [
    {
      "type": "RESIDENCE",
      "country": "UA",
      "area": "Житомирська",
      "region": "Бердичівський",
      "settlement": "Київ",
      "settlement_type": "CITY",
      "settlement_id": "b075f148",
      "street_type": "STREET",
      "street": "вул. Ніжинська",
      "building": "15",
      "apartment": "23",
      "zip": "02090"
    }
  ],
  "phones": [
    {
      "type": "MOBILE",
      "number": "+380503410870"
    }
  ],
  "email": "email@example.com",
  "working_hours": {
    "mon": [
      [
        "08.00",
        "12.00"
      ],
      [
        "14.00",
        "18.00"
      ]
    ],
    "tue": [
      [
        "08.00",
        "12.00"
      ]
    ],
    "wed": [
      [
        "08.00",
        "12.00"
      ]
    ],
    "thu": [
      [
        "08.00",
        "12.00"
      ]
    ],
    "fri": [
      [
        "08.00",
        "12.00"
      ]
    ]
  },
  "type": "CLINIC",
  "legal_entity_id": "c8aadb87-ecb9-41ca-9ad4-ffdfe1dd89c9",
  "external_id": "3213213",
  "location": {
    "latitude": 30.1233,
    "longitude": 50.32423
  }
}

Authorize

Request to process the request using a token in the headers

Headers

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

Request data validation

Validate location

...

  1. Verify the validity of access token

  2. Check user scope (scope = 'division:write') in order to perform this action

    1. In case error generate 401 response

  3. If BLOCK_UNVERIFIED_PARTY_USERS is true, then check party's data match following condition: verification_status != NOT_VERIFIED or (verification_status = NOT_VERIFIED and updated_at > current_date - UNVERIFIED_PARTY_PERIOD_DAYS_ALLOWED):

    1. in case not match - return 403 ("Access denied. Party is not verified")

Headers

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

Request data validation

Validate location

Location is required for divisions related to legal entity with type PHARMACY

...

  1. Check that type exists in dictionaries. Type required  (DRUGSTORE,DRUGSTORE2,CLINIC,AMBULANT_CLINIC,FAP)

    1. in case error generate 422 response

  2. Check mapping of legal_entity_type and division type. 

    1. in case error generate 422 response

Processing

  1. Verify the validity of access token

  2. Check user scope (scope = 'division:write') in order to perform this action

    1. In case error generate 401 response

  3. If BLOCK_UNVERIFIED_PARTY_USERS is true, then check party's data match following condition: verification_status != NOT_VERIFIED or (verification_status = NOT_VERIFIED and updated_at > current_date - UNVERIFIED_PARTY_PERIOD_DAYS_ALLOWED):

    in case not match - return 403 ("Access denied. Party is not verified")

    ,DRUGSTORE2,CLINIC,AMBULANT_CLINIC,FAP)

    1. in case error generate 422 response

  4. Check mapping of legal_entity_type and division type. 

    1. in case error generate 422 response

Processing

Response structure

Example:

...