ЕСОЗ - публічна документація

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

Purpose*

This WS allows to deactivate division that provide a medical program within user’s legal entity

Specification*

Link

https://ehealthmisapi1.docs.apiary.io/#reference/public.-contracts/medical-program-provision/deactivate-medical-program-provision

Resource

/api/medical_program_provision/{{id}}/actions/deactivate

Scope

medical_program_provision:write

Components

Medical program provision

Microservices

API paragraph not found

Protocol type

REST

Request type

PATCH

Sync/Async

Sync

Public/Private/Internal

Public

Logic*

This method allows to deactivate division that provide a medical program within user's legal entity.

Key points

  1. This is a REST method.

  2. Only authenticated and authorized pharmacy owner with appropriate scope can create a Medical program provision.

  3. Method does not use DS.

  4. At once User can deactivate only one active Medical program provision with Divisions which belongs to it’s own Legal entity.

Input parameters

Filter

Values

Type

Description

Example

id

String

Medical program provision identifier

2060b523-b469-4fc5-89af-ddb5899d8efe

Request structure*

API paragraph not found

Authorize*

  • Verify the validity of access token

    • in case of error - 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_program_provision:write')

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

Request to process the request using a token in the headers

Headers*

Наприклад:

  • Content-Type:application/json

  • Authorization:Bearer F3GF124Df565FDS234SDF34

  • api-key:aDGFDFGT46S5gFGD

Request data validation*

Validate legal entity

  • Extract client_id from token.

  • Check client scopes in order to perform this action (scope = 'medical_program_provision:write')

    • in case of error - return 403 “Your scope does not allow to access this resource. Missing allowances: medical_program_provision:write”

  • Check legal entity status (status = ACTIVE, SUSPENDED)

    • In case of error - return 422 “Legal entity is not active”

Validate medical program provision

  1. Get medical_program_provision_id from URL:

    1. Check it exists:

      1. in case of error - return 404 “Medical program provision not found”

    2. Check it belongs to division of user’s legal entity:

      1. in case of error - return 409 “Medical program provision does not belong to user’s legal entity”

    3. Check it is active (is_active=true):

      1. in case of error - return 409 “Medical program provision is inactive”

Processing*

Service logic

  1. Update record with medical_program_provision_id according to Data model

    1. set is_active = false

    2. set deactivate_reason = MANUAL_DEACTIVATION (according to PROVISON_DEACTIVATE_REASON dictionary)

    3. set updated_at, updated_by

Response structure*

See on Apiary

Example:

 Response example
{
  "meta": {
    "code": 200,
    "url": "https://example.com/resource",
    "type": "object",
    "request_id": "req-adasdoijasdojsda"
  },
  "data": {
    "id": "3e34da3d-9b8c-4aaf-be8e-24a161279b6a",
    "contract_number": "0000-PAP5-M000",
    "medical_program_id": "04d5ea65-d6e7-44f8-9eef-f0d3c1121d2b",
    "division_id": "15caea3f-cac3-483c-a3da-5875eba96430",
    "is_active": false,
    "deactivate_reason": "MANUAL_DEACTIVATION",
    "inserted_at": "2017-04-20T19:14:13Z",
    "inserted_by": "e1453f4c-1077-4e85-8c98-c13ffca0063e",
    "updated_at": "2017-04-20T19:14:13Z",
    "updated_by": "2922a240-63db-404e-b730-09222bfeb2dd"
  }
}

Post-processing processes*

API paragraph not found

HTTP status codes*

HTTP status code

Message

What caused the error

 200

 

 

  • No labels