Якщо інформації по відповідному параметру немає, потрібно зазначити: “ API paragraph not found ”.
Purpose* Необхідно зазначити призначення методу.
Наприклад: This method allows to receive active person declarations issued by the current legal entity (based on access_token) Get printout content by contract id.
Specification* Page PropertiesProject Name
COVID-certificate
Project abreviation
SVC
Developer
Розробник методу API. Наприклад, Edenlab
Project Manager
@Єлизавета Гессен-Дармштадська
Tech Lead
@Іоанн Воїнов
Product Owner
@Нікодім Святогорцев
Вusiness analyst
@Пантелеймон Нікомедійський
Status
Version
1.0
Date of release
22 Jun 2022
Link
Посилання на Apiary або Swagger https://ehealthmisapi1.docs.apiary.io/#reference/public.-contracts/contracts/private.-get-contract-printout-form
Resource
Наприклад: /api /persons/create
Scope
Зазначається потрібний scope /contracts/{{contract_type}}/{{id}}/printout_content
Scope
contract:read
Components
Зазначається перелік бізнес компонентів, які використовують цей метод, наприклад: ePrescription
Microservices
Перелік мікросервісів, які використовує метод API. Наприклад: Auth, ABAC
Protocol type
Тип протоколу, який використовується запитом, наприклад: SOAP | REST
Request type
Тип HTTP методу, який використовується запитом, наприклад: POST | GET… 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 dictionary eHealth/ICD10_AM/condition_codes
Example: “E10.32, E11.92”
...
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 Потрібно вказати вхідні параметри запиту. Наприклад, для GET /patients/composition/job/{{asyncJobId}} вхідний параметр:
Input parameter
Values
Type
Description
Example
asyncJobId
String
Async Job Object ID
...
...
...
Filter
Values
Type
Description
Example
status Optional
PROCESSED contract identifier
d290f1ee-6c54-4b01-90e6-d701748f0851
Request structure* See on Apiary
Example:
Expand Code Block{
"category": {
"coding": [
{
"system": "eHealth/composition_categories",
"code": "LIVE_BIRTH"
}
]
},
"type": {
"coding": [
{
"system": "eHealth/composition_types",
"code": "NEWBORN"
}
]
},
"event": [
{
"code": {
"coding": [
{
"system": "eHealth/composition_events",
"code": "COMPOSITION_VALIDITY_PERIOD"
}
]
},
"period": {
"start": "2020-06-26T15:22:53.403Z",
"end": "2020-07-26T15:22:53.403Z"
}
}
],
"subject": {
"type": {
"coding": [
{
"system": "eHealth/composition",
"code": "string"
}
],
"text": "string"
},
"value": "e49abc30-6d17-11ea-b83c-673680173afa"
},
"encounter": {
"type": {
"coding": [
{
"system": "eHealth/composition",
"code": "string"
}
],
"text": "string"
},
"value": "e49abc30-6d17-11ea-b83c-673680173afa"
},
"author": {
"type": {
"coding": [
{
"system": "eHealth/composition",
"code": "string"
}
],
"text": "string"
},
"value": "e49abc30-6d17-11ea-b83c-673680173afa"
},
"section": {
"focus": {
"type": {
"coding": [
{
"system": "eHealth/composition",
"code": "string"
}
],
"text": "string"
},
"value": "e49abc30-6d17-11ea-b83c-673680173afa"
}
},
"extension": [
{
"valueCode": "AUTHORIZE_WITH",
"valueUuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
{
"valueCode": "IS_ACCIDENT",
"valueBoolean": true
},
{
"valueCode": "TREATMENT_VIOLATION",
"valueString": "late_arrival"
},
{
"valueCode": "TREATMENT_VIOLATION_DATE",
"valueDate": "2020-12-12"
},
{
"valueCode": "IS_INTOXICATED",
"valueBoolean": true
},
{
"valueCode": "IS_FOREIGN_TREATMENT",
"valueBoolean": true
},
{
"valueCode": "IS_FORCE_RENEW",
"valueBoolean": true
}
]
}
Authorize* Вимоги до авторизації: яким чином надається доступ до використання методу API paragraph not found
Authorize* Request to process the request using a token in the 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 Code Block{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"verification_code": {
"type": "string"
}
},
"required": [
"verification_code"
],
"additionalProperties": false
}
Request data validation* Валідація даних
Parameters that are used when processing the request Configuration parameters Наприклад: Доступ до методу визначається скоупом covid_certificate:get . Дозвіл на даний скоуп визначається адміністратором Системи шляхом конфігурування скоупів в контексті клієнтів і ролей.
Dictionaries Потрібно вказати довідники, які використовує метод API
Processing* Потрібно описати процеси, які відбуваються з даними
1 . Using global parameters ...
Validate request* API paragraph not found
Request data validation* API paragraph not found
Processing* API paragraph not found
Response structure* See on Apiary
Example:
Expand Code Block{
"data meta ": {
"id code ": "3fa85f64-5717-4562-b3fc-2c963f66afa6" 200 ,
"status url ": "PENDING https://example.com/resource ",
"eta type ": "string object ",
"doneAt request_id ": "string req-adasdoijasdojsda ",
},
"links data ": [
{
"entity id ": "eHealth/composition",
"href": "composition/0daaad78-6cfb-11ea-9cd6-afab698838bc",
d290f1ee-6c54-4b01-90e6-d701748f0851",
"error printout_content ": "string Contract content "
}
]
}
}
Post-processing processes* Що має відбутися в ЦБД після опрацювання та відправлення відповіді, тощо
HTTP status codes* HTTP status code
Message
What caused the error
200
Backward compatibility ...