Table of Contents | ||||
---|---|---|---|---|
|
...
...
Purpose
...
Необхідно зазначити призначення методу.
Наприклад: This method allows to receive active person declarations issued by the current legal entity (based on access_token)
Specification*
...
Project Name
...
COVID-certificate
...
Project abreviation
...
SVC
...
Developer
...
Розробник методу API. Наприклад, Edenlab
...
Project Manager
...
@Єлизавета Гессен-Дармштадська
...
Tech Lead
...
@Іоанн Воїнов
...
Product Owner
...
@Нікодім Святогорцев
...
Вusiness analyst
...
@Пантелеймон Нікомедійський
...
Status
Status | ||||
---|---|---|---|---|
|
...
Version
...
1.0
...
Date of release
...
...
Link
...
Посилання на Apiary або Swagger
...
Resource
...
Наприклад: /api/persons/create
...
Scope
...
Зазначається потрібний scope
...
Components
...
Зазначається перелік бізнес компонентів, які використовують цей метод, наприклад: ePrescription
...
Microservices
...
Перелік мікросервісів, які використовує метод API. Наприклад: Auth, ABAC
...
Protocol type
...
Тип протоколу, який використовується запитом, наприклад: SOAP | REST
...
Request type
...
Тип HTTP методу, який використовується запитом, наприклад: POST | GET…
...
Sync/Async
...
Метод є синхронним чи асинхронним?
Logic*
Потрібно по пунктах описати логіку методу API або додати діаграму
Preconditions
Які передумови мають бути виконані системою/користувачем. Наприклад:
створений запис в MedicationRequest;
рецепт відпущений (COMPLETED)
Global and configurable parameters
Потрібно вказати глобальні та конфігураційні параметри.
Наприклад:
...
Variable
...
Values
...
Description
...
CARE_PLAN_<category>_ICD10_AM_CONDITIONS_ALLOWED
...
Values that matches with dictionaryeHealth/ICD10_AM/condition_codes
Example: “E10.32, E11.92”
...
(Example: CARE_PLAN_CLASS_1_ICD10_AM_CONDITIONS_ALLOWED)
Input parameters
Потрібно вказати вхідні параметри запиту. Наприклад, для GET /patients/composition/job/{{asyncJobId}} вхідний параметр: This WS allows to extract Printout form by $contract_id from media storage
Specification
Page Properties | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
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 | asyncJobId | String | Async Job Object ID
---|
Filters
...
id |
...
Filter
Values
Type
Description
status
String |
Optional
PROCESSED
Request structure*
See on Apiary
Example:
Expand | ||
---|---|---|
| ||
|
Authorize*
...
contract identifier |
|
Authorize
Request to process the request using a token in the headers
Headers
...
Наприклад:
Content-Type:application/json
Authorization:Bearer c2778f3064753ea70de870a53795f5c9api-key:uXhEczJ56adsfh3Ri9SUkc4en
Validation
Validate
...
Наприклад:
Validate request using JSON schema
In case validation failed - generate 422 error
Expand | ||
---|---|---|
| ||
|
Request data validation*
Валідація даних
Parameters that are used when processing the request
Configuration parameters
Наприклад: Доступ до методу визначається скоупом covid_certificate:get . Дозвіл на даний скоуп визначається адміністратором Системи шляхом конфігурування скоупів в контексті клієнтів і ролей.
Dictionaries
Потрібно вказати довідники, які використовує метод API
Processing*
Потрібно описати процеси, які відбуваються з даними
1. Using global parameters
Потрібно викликати глобальні параметри (Global parameters), щоб отримати наведені нижче параметри
...
token
Verify the validity of access token
Return 401 in case validation fails
token is not expired
in case error return 401
Validate scopes
Check user scopes in order to perform this action (scope = 'contract:read')
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 | ||
---|---|---|
| ||
|
Post-processing processes*
Що має відбутися в ЦБД після опрацювання та відправлення відповіді, тощо
HTTP status codes
...
HTTP status code | Message | What caused the error |
---|---|---|
|
|
|
200 |
|
|
Backward compatibility
...