Table of Contents | ||||
---|---|---|---|---|
|
Required parameters are marked with "*"
...
Purpose
...
Наприклад: This method WS 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”
...
Allowed diagnoses for specified care plan category. Diagnoses should match with eHealth/ICD10_AM/condition_codes
dictionary, <category> - is a value from dictionary eHealth/care_plan_categories
in uppercase
(Example: CARE_PLAN_CLASS_1_ICD10_AM_CONDITIONS_ALLOWED)
Input parameters
Потрібно вказати вхідні параметри запиту. Наприклад, для GET /patients/composition/job/{{asyncJobId}} вхідний параметр:
generate Printout form by $contract_id. Printout form is generated only for contract requests in status 'PENDING_NHS_SIGN'. Also, it is available for contract requests s in statuses 'NHS_SIGNED' and 'SIGNED' through Get Contract request details
Specification
Page Properties | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Logic
This method is designed to get printout content by contract request id. In order to sign contract it's need to invoke Get Contract Request Details and Get Contract Request Printout Content and sign whole data.
Input parameters
Input parameter | Values | Type | Description | Example |
---|---|---|---|---|
asyncJobIdid | String | Async Job Object ID |
Filters
Потрібно вказати фільтри. Наприклад, для GET /api/medication_requests/{{id}}/dispenses?status=PROCESSED фільтр:
...
Filter
...
Values
...
Type
...
Description
...
Example
...
status
...
String
...
Optional
...
PROCESSED
Request structure*
See on Apiary
Example:
Expand | ||
---|---|---|
| ||
|
Authorize*
Вимоги до авторизації: яким чином надається доступ до використання методу
Request to process the request using a token in the headers
Headers*
Наприклад:
Content-Type:application/json
Authorization:Bearer c2778f3064753ea70de870a53795f5c9
api-key:uXhEczJ56adsfh3Ri9SUkc4en
Validate request*
Наприклад:
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), щоб отримати наведені нижче параметри
...
contract request identifier |
|
Authorize
Request to process the request using a token in the headers
Headers
Наприклад:
Content-Type:application/json
Authorization:Bearer c2778f3064753ea70de870a53795f5c9
Request data validation
Validate request
Request mapping:
Parameter | Source |
---|---|
id | CONTRACT_REQUEST |
|
Validate 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_request:read')
Return 403 in case invalid scope(s) -"Your scope does not allow to access this resource. Missing allowances: contract_requests: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 contract requests. NHS employee can see any contract request.
if TOKENS_TYPES_PERSONAL
Check client_id = contract_request.contractor_legal_entity_id
in case error return 403 "User is not allowed to perform this action"
Validate data
Validate contract request id. Check contract_requests.id = $.id
in case error return 404 ("Contract request with id=$id doesn't exist")
Processing
Generate Printout form
Validate contract request status
If contract_request in statuses 'PENDING_NHS_SIGN' - generate printout form.
set nhs_signed_date=now()::date
In case of error (status in 'NEW', 'IN_PROCESS', 'APPROVED', 'DECLINED', 'TERMINATED', 'NHS_SIGNED' ,'SIGNED') return 409 Error ('Incorrect status of contract_request to generate printout form')
In case status was changed either to 'NHS_SIGNED' or 'SIGNED', printout form could be taken through Get Contract request details
if contract_type=REIMBURSEMENT - Choose correct print out form, for different medical programs in contract request. Use config file to determine correct template form.
medical program name |
|
| |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
"Доступні ліки" | Dostupni_liky | Dostupni_liky appendix | |||||||||
"Інсуліни" | Insulin | Insulin appendix | |||||||||
"Нецукровий діабет" | Netsukrovyy_diabet | Netsukrovyy_diabet appendix |
Invoke MAN to render printout form.
Response structure
See on Apiary
Example:
Expand | ||
---|---|---|
| ||
|
...
Що має відбутися в ЦБД після опрацювання та відправлення відповіді, тощо
HTTP status codes
HTTP status code | Message | What caused the error |
---|---|---|
|
|
|
200 |
|
|
Backward compatibility
...