<aside> <img src="/icons/info-alternate_gray.svg" alt="/icons/info-alternate_gray.svg" width="40px" />
Ендпоінти сервісу requistions-service, які використовуються для роботи з заявкою з розрахунком потреби за методологією (введення даних пацієнтів, їх кількості або когорти).
</aside>
<aside> <img src="/icons/list-indent_gray.svg" alt="/icons/list-indent_gray.svg" width="40px" />
Зміст
</aside>
<aside> <img src="/icons/report_gray.svg" alt="/icons/report_gray.svg" width="40px" /> Відображення параметрів реєстру пацієнтів та даних по пацієнтам здійснюється за допомогою JSON-схем, що генеруються на стороні BE та містять в собі конфігураційні атрибути, по яким здійснюється збір інформації по пацієнтам.
Важливо! Залежно від напрямку лікування одна і та сама схема може містити різний набір параметрів:
<aside> <img src="/icons/dependency_gray.svg" alt="/icons/dependency_gray.svg" width="40px" />
Підхід до використання JSON-схем наступний:
sequenceDiagram
actor U as User
participant S as e-Stock BE
participant MIS as MIS
activate S
Note over S: Configure JSON-schemas for each direction
deactivate S
U ->> MIS: Create requisition
MIS ->> S: **POST** **/v1/requisitions**
activate S
S -->> MIS: {id}
deactivate S
MIS ->> S: **GET /v1/requisitions/{id}**
activate S
****S -->> MIS: {full_requisition_info}
deactivate S
MIS -->> U: Open requisition page
U ->> MIS: Click on patients page
MIS ->> S: **GET** **/v1/requisitions/{requisitionId}/patients/schemaConfigurations**
activate S
****S -->> MIS: {JSON-schemas}
deactivate S
MIS ->> S: **GET /v1/requisitions/{requisitionId}/patients/{patientId}, GET /v1/requisitions/{requisitionId}/patients/treatmentGroups**
activate S
****S -->> MIS: {full_patients_data}
deactivate S
alt "schemaGroup": "PATIENTS_DATA_BASED"
MIS -->> U: Open patients page (full or empty), according to the JSON-schemas
else "schemaGroup": "PATIENTS_QUANTITY_BASED"
MIS -->> U: Open patient_quantity page (full or empty), according to the JSON-schemas
else "schemaGroup": "PATIENTS_QUANTITY_COHORT_BASED"
MIS -->> U: Open cohort page (full or empty), according to the JSON-schemas
end
Тобто:
</aside>
<aside> <img src="/icons/link_gray.svg" alt="/icons/link_gray.svg" width="40px" />
Загальну інформацію щодо застосування JSON-схем можна переглянути за посиланням.
</aside>
<aside>
<img src="/icons/swap-horizontally_gray.svg" alt="/icons/swap-horizontally_gray.svg" width="40px" /> Щоб отримати JSON-схеми по заявці на потребу, необхідно надіслати GET
запит на /v1/requisitions/{requisitionId}/patients/schemaConfigurations.
<aside> <img src="/icons/arrow-right_gray.svg" alt="/icons/arrow-right_gray.svg" width="40px" /> Параметри запиту
Параметр | Тип | Обов’язково | Приклад значення | Опис |
---|---|---|---|---|
requisitionId | int | Так | 588 | Ідентифікатор заявки на потребу. Передається в заголовку. |
<aside> <img src="/icons/forward_gray.svg" alt="/icons/forward_gray.svg" width="40px" /> Приклад запиту
<https://requisitions-service-stage.es.meddata.com.ua/v1/requisitions/588/patients/schemaConfigurations>
</aside>
</aside>
<aside> <img src="/icons/arrow-left_gray.svg" alt="/icons/arrow-left_gray.svg" width="40px" /> Параметри відповіді
Параметр | Тип | Опис |
---|---|---|
requisitionId | int | Ідентифікатор заявки на потребу. |
schemaGroup | string | Група JSON-схем, яка використовується в поточній заявці. |
Всього є три групи:
Залежно від групи застосовується різний набір JSON-схем, та різне відображення сторінки / вкладки додавання даних пацієнтів. Нижче додано опис та приклад відповіді для кожної окремої групи та схеми. |
<aside> <img src="/icons/gears_gray.svg" alt="/icons/gears_gray.svg" width="40px" />
PATIENTS_DATA_BASED
Передбачає додавання таких сутностей, як: пацієнт, до пацієнта додаються піднапрямки лікування, до піднапрямку додаються призначені лікарські засоби. Відповідно до цього, використовуються наступні схеми:
Приклад відповіді:
{
"requisitionId": 1028,
"schemaGroup": "PATIENTS_DATA_BASED",
"patientSchema": {
"$id": "<https://example.com/product.schema.json>",
"type": "object",
"title": "Patient",
"$schema": "<http://json-schema.org/draft-07/schema>",
"required": ["city", "initials", "dateOfBirth", "attributes"],
"properties": {
"id": {
"type": "integer",
"order": 1, // порядок відображення параметра
"readOnly": true,
"description": "Номер пацієнта"
},
"city": {
"type": "string",
"order": 3,
"maxLength": 30,
"minLength": 2,
"description": "Назва територіальної одиниці"
},
"initials": {
"type": "string",
"order": 2,
"pattern": "^[А-ЩЬЮЯЄІЇҐ]{1}\\\\.[А-ЩЬЮЯЄІЇҐ]{1}\\\\.[А-ЩЬЮЯЄІЇҐ]{1}\\\\.$",
"description": "Ініціали пацієнта (ПІБ)",
"patternExample": "П.I.Б."
},
"createdAt": {
"type": "string",
"order": 6,
"format": "date-year",
"readOnly": true,
"description": "Рік додавання пацієнта"
},
"attributes": {
"type": "object",
"required": ["weight"],
"properties": {
"weight": {
"type": "integer",
"order": 5,
"maximum": 300,
"minimum": 1,
"description": "Вага пацієнта, кг"
}
},
"additionalProperties": false
},
"dateOfBirth": {
"type": "string",
"order": 4,
"format": "past-date",
"description": "Дата народження"
}
},
"description": "Інформація про пацієнта",
"additionalProperties": false
},
"patientTreatmentSchema": {
"title": "PatientTreatment",
"$schema": "<http://json-schema.org/draft-07/schema>",
"required": ["attributes"],
"properties": {
"diagnosis": {
"type": "string",
"order": 7,
"nullable": true,
"maxLength": 1000,
"minLength": 3,
"description": "Піднапрям лікування"
},
"attributes": {
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}
},
"additionalProperties": false
},
"prescribedMedicineSchema": {
"title": "PrescribedMedicine",
"$schema": "<http://json-schema.org/draft-07/schema>",
"required": [
"nomenclatureId",
"quantityOfUsagesPerDay",
"isCalculationIncludedInRequisition",
"daysOfUsagePerYear",
"attributes"
],
"properties": {
"id": {
"type": "integer",
"order": 8,
"readOnly": true,
"description": "ID призначених лікарських засобів"
},
"attributes": {
"type": "object",
"required": [],
"properties": {
"note": {
"type": "string",
"order": 17,
"nullable": true,
"maxLength": 1000,
"description": "Нотатки"
}
},
"additionalProperties": false
},
"releaseForm": {
"type": "string",
"order": 10,
"readOnly": true,
"description": "Форма випуску"
},
"nomenclatureId": {
"type": "integer",
"minimum": 1,
"writeOnly": true
},
"nomenclatureName": {
"type": "string",
"order": 9,
"readOnly": true,
"description": "Призначені лікарські засоби та медичні вироби"
},
"nomenclatureUnit": {
"type": "string",
"order": 12,
"readOnly": true,
"description": "Одиниця виміру"
},
"dosageDescription": {
"type": "string",
"order": 11,
"readOnly": true,
"description": "Дозування"
},
"daysOfUsagePerYear": {
"type": "integer",
"order": 14,
"maximum": 365,
"minimum": 1,
"description": "Кількість днів застосувань на рік"
},
"quantityOfUsagesPerDay": {
"type": "number",
"order": 13,
"minimum": 1,
"description": "Кількість одиниць на добу"
},
"totalRequiredQuantityPerYear": {
"type": "integer",
"order": 15,
"readOnly": true,
"description": "Кількість одиниць лікарського засобу на рік застосування"
},
"isCalculationIncludedInRequisition": {
"type": "boolean",
"order": 16,
"default": true,
"writeOnly": true
}
},
"additionalProperties": false
}
}
<aside> <img src="/icons/gears_gray.svg" alt="/icons/gears_gray.svg" width="40px" />
PATIENTS_QUANTITY_BASED
Передбачає додавання таких сутностей, як кількість пацієнтів для конкретного лікарського засобу. Відповідно до цього, використовуються наступні схеми:
*В даних схемах використовується параметр createEntitiesByDefault
, який визначає, чи створюється сутність автоматично (на стороні BE) при створені заявки, чи користувач має додавати їх вручну. Важливо: ***сутність PATIENTS_QUANTITY залежна від сутності PATIENT_TREATMENT_GROUP, отже якщо для схеми PATIENT_TREATMENT_GROUP значення цього параметра = false, значення параметра для PATIENTS_QUANTITY ігнорується (за замовчуванням також вважається false).
Приклад відповіді:
{
"requisitionId": 1031,
"schemaGroup": "PATIENTS_QUANTITY_BASED",
"patientQuantitySchema": {
"title": "PatientsQuantity",
"$schema": "<http://json-schema.org/draft-07/schema>",
"required": ["attributes", "quantity"],
"properties": {
"quantity": {
"type": "integer",
"order": 6,
"minimum": 0,
"description": "К-сть дітей, яким планується ботулінотерапія протягом року"
},
"attributes": {
"type": "object",
"required": [],
"properties": {
"note": {
"type": "string",
"order": 7,
"nullable": true,
"maxLength": 1000,
"description": "Нотатки"
}
},
"additionalProperties": false
},
"releaseForm": {
"type": "string",
"order": 3,
"readOnly": true,
"description": "Форма випуску"
},
"nomenclatureId": {
"type": "integer",
"minimum": 1,
"writeOnly": true
},
"nomenclatureName": {
"type": "string",
"order": 2,
"readOnly": true,
"description": "Призначені лікарські засоби"
},
"nomenclatureUnit": {
"type": "string",
"order": 5,
"readOnly": true,
"description": "Одиниця виміру"
},
"dosageDescription": {
"type": "string",
"order": 4,
"readOnly": true,
"description": "Дозування"
}
},
"additionalProperties": false,
"createEntitiesByDefault": true
},
"patientTreatmentGroupSchema": {
"title": "PatientTreatmentGroup",
"$schema": "<http://json-schema.org/draft-07/schema>",
"required": ["attributes"],
"properties": {
"attributes": {
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
},
"nomenclatureSubtype": {
"type": "string",
"nullable": true,
"maxLength": 1000,
"minLength": 3,
"writeOnly": true,
"description": "Піднапрям лікування"
}
},
"additionalProperties": false,
"createEntitiesByDefault": true
}
}
<aside> <img src="/icons/gears_gray.svg" alt="/icons/gears_gray.svg" width="40px" />
PATIENTS_QUANTITY_COHORT_BASED
Передбачає додавання таких сутностей, як когорта (група пацієнтів) та кількість лікарського засобу для когорти. Відповідно до цього, використовуються ті самі схеми:
*В даних схемах використовується параметр createEntitiesByDefault
, який визначає, чи створюється сутність автоматично (на стороні BE) при створені заявки, чи користувач має додавати їх вручну. Важливо: ***сутність PATIENTS_QUANTITY залежна від сутності PATIENT_TREATMENT_GROUP, отже якщо для схеми PATIENT_TREATMENT_GROUP значення цього параметра = false, значення параметра для PATIENTS_QUANTITY ігнорується (за замовчуванням також вважається false).
Приклад відповіді:
{
"requisitionId": 1026,
"schemaGroup": "PATIENTS_QUANTITY_COHORT_BASED",
"patientQuantitySchema": {
"title": "PatientsQuantity",
"$schema": "<http://json-schema.org/draft-07/schema>",
"required": ["quantity", "attributes"],
"properties": {
"quantity": {
"type": "integer",
"order": 9,
"minimum": 1,
"description": "Кількість одиниць препарату на рік застосування"
},
"attributes": {
"additionalProperties": false
},
"releaseForm": {
"type": "string",
"order": 8,
"readOnly": true,
"description": "Форма випуску"
},
"nomenclatureId": {
"type": "integer",
"minimum": 1,
"writeOnly": true
},
"nomenclatureName": {
"type": "string",
"order": 7,
"readOnly": true,
"description": "Назва (МНН)"
}
},
"additionalProperties": false,
"createEntitiesByDefault": false
},
"patientTreatmentGroupSchema": {
"title": "PatientTreatmentGroup",
"$schema": "<http://json-schema.org/draft-07/schema>",
"required": ["attributes", "nomenclatureSubtype"],
"properties": {
"id": {
"type": "integer",
"order": 1,
"parent": "",
"readOnly": true,
"description": "№"
},
"attributes": {
"type": "object",
"required": [
"cohort",
"cohortNumberOfPatients",
"patientsProvidedOmnitrop5",
"patientsProvidedOmnitrop10"
],
"properties": {
"cohort": {
"enum": [
"Діти з дефіцитом гормону росту",
"Дівчата з синдромом Тернера",
"Діти з синдромом Рассела-Сільвера",
"Діти з синдромом Прадера-Віллі",
"Діти з делеціями в гені SHOX (який є причиною низькорослості за синдрому Тернера, синдрому Лері-Вейла, мезомелічної дисплазії Лангера)",
"Діти з хронічною нирковою недостатністю, у яких розвивається низькорослість",
"Діти, що народились малими для свого гестаційного віку (SGA) у разі збереження низькорослості понад 2 SD після двох років життя"
],
"order": 3,
"description": "Когорта"
},
"cohortNumberOfPatients": {
"type": "integer",
"order": 4,
"minimum": 1,
"writeOnly": true,
"description": "Кількість пацієнтів у когорті"
},
"patientsProvidedOmnitrop5": {
"type": "integer",
"order": 5,
"minimum": 0,
"writeOnly": true,
"description": "Скільки пацієнтів забезпечені засобом для введення препарату Омнітроп картридж 5 мг/1,5 мл"
},
"patientsProvidedOmnitrop10": {
"type": "integer",
"order": 6,
"minimum": 0,
"writeOnly": true,
"description": "Скільки пацієнтів забезпечені засобом для введення препарату Омнітроп картридж 10 мг/1,5 мл"
}
},
"additionalProperties": false
},
"nomenclatureSubtype": {
"type": "string",
"order": 2,
"nullable": true,
"maxLength": 1000,
"minLength": 2,
"writeOnly": true,
"description": "Вік"
}
},
"additionalProperties": false,
"createEntitiesByDefault": false
}
}
</aside>
<aside> <img src="/icons/no_gray.svg" alt="/icons/no_gray.svg" width="40px" /> Помилки
Параметр | Опис |
---|---|
status | Статус відповіді. |
detail | Деталі відповіді. |
code | Код помилки. Можливі коди помилок можна переглянути за посиланням. |
localizedMessage | Локалізований текст помилки. |
<aside> <img src="/icons/backward_gray.svg" alt="/icons/backward_gray.svg" width="40px" /> Приклад відповіді
</aside>
</aside>
</aside>
<aside> <img src="/icons/info-alternate_gray.svg" alt="/icons/info-alternate_gray.svg" width="40px" /> В наступних блоках описані ендпоінти, які використовуються для роботи з заявкою по напрямкам лікування для яких застосовується методологія з вводом даних пацієнтів (PATIENTS_DATA_BASED).
</aside>
<aside> <img src="/icons/move-document_gray.svg" alt="/icons/move-document_gray.svg" width="40px" /> Функціональні вимоги до заявки на збір потреби по напрямкам лікування для яких застосовується методологія з вводом даних пацієнтів описані в розділі 5.2.1.4. Заявка на потребу ЗОЗ по напрямкам лікування для яких застосовується методологія з вводом даних пацієнтів документу e-Stock | Технічні вимоги.
</aside>
<aside> <img src="/icons/move-document_gray.svg" alt="/icons/move-document_gray.svg" width="40px" /> Функціональні вимоги до реєстру пацієнтів в заявці на потребу описані в розділі 5.2.1.4.5. Реєстр пацієнтів документу e-Stock | Технічні вимоги.
</aside>
<aside>
<img src="/icons/swap-horizontally_gray.svg" alt="/icons/swap-horizontally_gray.svg" width="40px" /> Щоб отримати весь перелік пацієнтів в заявці на потребу необхідно надіслати GET
запит на /v1/requisitions/{requisitionId}/patients.
</aside>
<aside> <img src="/icons/move-document_gray.svg" alt="/icons/move-document_gray.svg" width="40px" /> Функціональні вимоги до картки пацієнта описані в розділі 5.2.1.4.5. Картка пацієнта документу e-Stock | Технічні вимоги.
</aside>
<aside> <img src="/icons/move-document_gray.svg" alt="/icons/move-document_gray.svg" width="40px" /> Функціональні вимоги валідації даних пацієнта описані у розділі **5.2.1.4.5. Валідація даних пацієнта** документу e-Stock | Технічні вимоги.
</aside>