Versions Compared

Key

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

...

...

Purpose

...

Get printout content by contract id.

Specification*

...

Project Name

...

COVID-certificate

...

Project abreviation

...

SVC

...

Developer

...

Розробник методу API. Наприклад, Edenlab

...

Project Manager

...

@Єлизавета Гессен-Дармштадська

...

Tech Lead

...

@Іоанн Воїнов

...

Product Owner

...

@Нікодім Святогорцев

...

Вusiness analyst

...

@Пантелеймон Нікомедійський

...

Status

Status
colourGreen
titleAPPROVED

...

Version

...

1.0

...

Date of release

...

This WS allows to extract Printout form by $contract_id from media storage

Specification

Page Properties

Link

https://ehealthmisapi1.docs.apiary.io/#reference/public.-contracts/contracts/private.-get-contract-printout-form

Resource

/api/contracts/{{contract_type}}/{{id}}/printout_content

Scope

contract:read

Components

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

Microservices

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

Protocol type

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

Request type

GET

Sync/Async

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

...

Sync

Public/Private/Internal

Private

Logic

This method is designed to get printout content by contract id. After contract request was signed by both sides signed contract request with printout content was saved to the storage. This WS extract printout content from the storage.

Input parameters

...

Input parameter

Values

Type

Description

Example

id

String

contract identifier

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

...

See on Apiary

API paragraph not found

Authorize

...

Request to process the request using a token in the headers

Headers

...

Наприклад:

  • Content-Type:application/json

  • Authorization:Bearer c2778f3064753ea70de870a53795f5c9

Validation

Validate token

  • Verify the validity of access token

    • Return 401 in case validation fails

  • token is not expired

Validate request*

API paragraph not found

Request data validation*

API paragraph not found

Processing*

API paragraph not found

...

    • in case error return 401 

Validate scopes

  • Check user scopes in order to perform this action (scope = 'contract:read')

    1. Return 403 in case invalid scope(s) -"Your scope does not allow to access this resource. Missing allowances: contract:read"

Validate employee

extract user_id from token

extract client_id from token

  • Check if user is active

    • in case error return 403 - "user is not active"

  • Check nhs_legal_entity is active

    • in case error return 403 - "Client is not active"

Validate context

extract client_id from token. LE employee can see only this legal entities contracts. NHS employee can see any contracts. 

  • if TOKENS_TYPES_PERSONAL

    • Check client_id = contracts.contractor_legal_entity_id

      • in case error return 403 "User is not allowed to perform this action"

Validate data

  • Validate contract id. Check contracts.id = $.id

    • in case error return 404 ("Contract with id=$id doesn't exist")

Extract Printout form 

  • search contracts in media storage by contract_request_id

  • decode base64

  • return "printout_content"

Response structure

See on Apiary

Example:

Expand
titleResponse example
Code Block
{
  "meta": {
    "code": 200,
    "url": "https://example.com/resource",
    "type": "object",
    "request_id": "req-adasdoijasdojsda"
  },
  "data": {
    "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
    "printout_content": "Contract content"
  }
}

Post-processing processes*

Що має відбутися в ЦБД після опрацювання та відправлення відповіді, тощо

HTTP status codes

...

HTTP status code

Message

What caused the error

 200

 

 

...