ЕСОЗ - публічна документація

Create medical program_UA

Специфікація

 

""" Fields to filter medical programs in the system. """ input MedicalProgramFilter { "Checks for equality with the object’s `databaseId` field." databaseId: UUID "Checks for matching with the object’s `name` field." name: String "Checks for equality with the object’s `isActive` field." isActive: Boolean "Checks for equality with the object’s `type` field." type: String } """ Methods to use when ordering `MedicalProgram`. """ enum MedicalProgramOrderBy { "Orders by the object’s `insertedAt` field in the ascending order." INSERTED_AT_ASC "Orders by the object’s `insertedAt` field in the descending order." INSERTED_AT_DESC "Orders by the object’s `name` field in the ascending order." NAME_ASC "Orders by the object’s `name` field in the descending order." NAME_DESC } """ A connection to a list of `MedicalProgram` items. """ type MedicalProgramConnection { "Information to aid in pagination." pageInfo: PageInfo! "A list of nodes." nodes: [MedicalProgram] "A list of edges." edges: [MedicalProgramEdge] } """ An edge in a connection of `MedicalProgram`. """ type MedicalProgramEdge { "The item at the end of the edge." node: MedicalProgram! "A cursor for use in pagination." cursor: String! } """ MedicalProgram contains details about medical program for reimbursement and services. In order to obtain details user must have a scope **medical_program:read** """ type MedicalProgram implements Node { "The ID of an object." id: ID! "Primary key identifier from the database." databaseId: UUID! "The name of the `MedicalProgram`." name: String! "Type of the `MedicalProgram`." type: String! "Whether the `MediaclProgram` is active or not?" isActive: Boolean! "Date and time when record was inserted." insertedAt: DateTime! "Date and time when record was updated." updatedAt: DateTime! "Whether it is possible to create `Medication Request`" medicationRequestAllowed: Boolean! "Medication request allowed status description" medicationRequestAllowedText: String "Whether it is possible to create `Medication Dispense`" medicationDispenseAllowed: Boolean! "Medication dispense allowed status description" medicationDispenseAllowedText: String "Medical program settings" medicalProgramSettings: MedicalProgramSettings "Medical program settings description" medicalProgramSettingsText: String } """ Medical program settings """ type MedicalProgramSettings { "Skip MNN in treatment period requirement flag" skipMnnInTreatmentPeriod: Boolean "Care plan requirement flag" carePlanRequired: Boolean! "Skip employee validation requirement flag" skipEmployeeValidation: Boolean "Allowed employee types to create medication request" employeeTypesToCreateMedicationRequest: [String] "Speciality types allowed" specialityTypesAllowed: [String] "conditions ICD10_AM allowed" conditionsIcd10AmAllowed: [String] "Conditions ICPC2 allowed" conditionsIcpc2Allowed: [String] "Maximum length in days of treatment period for `Medication Request` created with the program" medicationRequestMaxPeriodDay: Int "Providing conditions allowed" providingConditionsAllowed: [String] } """ Input for `createMedicalProgram` mutation. User must have a scope **medical_program:write** """ input CreateMedicalProgramInput { "The name of the `MedicalProgram`." name: String! "Type of the `MedicalProgram`. The value should be present in the `MEDICAL_PROGRAM_TYPE` dictionary." type: String! } """ Return type for `createMedicalProgram` mutation. """ type CreateMedicalProgramPayload { "Created `MedicalProgram`." medicalProgram: MedicalProgram } """ Input for `updateMedicalProgram` mutation. User must have a scope **medical_program:write** """ input UpdateMedicalProgramInput { "The ID of an object." id: ID! "Whether it is possible to create `Medication Request`" medicationRequestAllowed: Boolean "Medication request allowed status description" medicationRequestAllowedText: String "Whether it is possible to create `Medication Dispense`" medicationDispenseAllowed: Boolean "Medication dispense allowed status description" medicationDispenseAllowedText: String "Medical program settings" medicalProgramSettings: MedicalProgramSettingsInput "Medical program settings description" medicalProgramSettingsText: String } """ Input for `MedicalProgramSettings` of `updateMedicalProgram` mutation. """ input MedicalProgramSettingsInput { "Skip MNN in treatment period requirement flag" skipMnnInTreatmentPeriod: Boolean "Care plan requirement flag" carePlanRequired: Boolean! "Skip employee validation requirement flag" skipEmployeeValidation: Boolean "Allowed employee types to create medication request" employeeTypesToCreateMedicationRequest: [String] "Speciality types allowed" specialityTypesAllowed: [String] "conditions ICD10_AM allowed" conditionsIcd10AmAllowed: [String] "Conditions ICPC2 allowed" conditionsIcpc2Allowed: [String] "Maximum length in days of treatment period for `Medication Request` created with the program" medicationRequestMaxPeriodDay: Int "Providing conditions allowed" providingConditionsAllowed: [String] } """ Return type for `updateMedicalProgram` mutation. """ type UpdateMedicalProgramPayload { "Updated `MedicalProgram`." medicalProgram: MedicalProgram } """ Input for `deactivateMedicalProgram` mutation. User must have a scope **medical_program:deactivate** """ input DeactivateMedicalProgramInput { "The ID of a `MedicalProgram` to deactivate." id: ID! } """ Return type for `deactivateMedicalProgram` mutation. """ type DeactivateMedicalProgramPayload { "Deactivated `MedicalProgram`." medicalProgram: MedicalProgram }

 

Ціль

Даний веб-сервіс розроблений для створення нової медичної програми.

Логіка веб-сервісу

Авторизація

  1. Перевірити валідність токену доступу

    1. в разі помилки - згенерувати код відповіді 401

  2. Перевірити скоупи користувача (scope = 'medical_program:write') на можливість виконання даної дії

    1. в разі помилки - згенерувати код відповіді 403

Перевірити запит (JSON schema)

  1. Перевірити запит, використовуючи схему JSON (TBD):

    1. Повернути код 422 зі списком помилок валідації в разі помилки валідації (422 EView)

Створення нової програми

  1. Створити новий запис в Medical_programs 

Назва

Джерело

Тип

По-замовчуванню

M/O

Опис

Назва

Джерело

Тип

По-замовчуванню

M/O

Опис

id



uuid



M

Автогенерація

name



varchar



M



is_active



boolean



M



type



varchar



M

Довідник: MEDICAL_PROGRAM_TYPE

medication_request_allowed



boolean



M



medication_dispense_allowed



boolean



M



medication_request_allowed_text



varchar



O



medication_dispense_allowed_text



varchar



O



medical_program_settings



jsonb

null

O





skip_mnn_in_treatment_period

boolean

false

M

Дозволяє створити рецепт з тим же innm за один період лікування

employee_types_to_create_medication_request

[varchar]

null

O

Дозволяє створити рецепт для відповідного типу співробітників (якщо пусто - всі типи співробітників, які мають скоупи на створення без обмежень). Заповнюється значеннями з довідника EMPLOYEE_TYPE.

Приклад: "DOCTOR, SPECIALIST"

speciality_types_allowed

[varchar]

null

O

Дозволяє створити:

  • рецепт для визначених співробітників $.employees.speciality.speciality(speciality_officio == true) для співробітників з типом SPECIALIST (якщо пусто - всі спеціальності, які мають скоупи на створення рецептів без обмежень). Заповнюється значеннями з довідника SPECIALITY_TYPE (якщо пусто - всі спеціалісти, у яких є скоупи, можуть створити рецепт без обмежень). 

  • первинні призначення плану лікування для вілповідних спеціальностей $.employees.speciality.speciality(speciality_officio == true) працівників. Якщо пусто - всі співробітники, у кого є скоупи, може створити первинне призначення без будь-яких обмежень.

Заповнюється значенням з довідника SPECIALITY_TYPE. Наприклад: ["ENDOCRINOLOGY", "FAMILY_DOCTOR"]

care_plan_required

boolean

false

M

Дозволяє створення рецепту з посиланням на план лікування

skip_employee_validation

boolean

false

M

Дозволяє пропустити всі перевірки співробітників, включаючи обмеження для параметрів employee_types_to_create_medication_request та speciality_types_allowed. Тож, кожен користувач, який має скоупи, може створити рецепт

conditions_icd10_am_allowed

[varchar]

null

O

Масив кодів станів з довідника eHealth/ICD10_AM/condition_codes. Наприклад: ["M61.25", "L70.0"]

Дозволяє створити:

  • Запит рецепту зі взаємодією при умові, що основний діагноз повинен відповідати коду в конфігурації. 

  • Первинне призначення.з полем адреси, пов'язані з планом лікуавання, що має коди станів у відповідності до конфігурації.

Якщо відсутня - будь-який ICD10_AM код стану допустимий.

Може бути поєднано з кодами conditions_icpc2_allowed

conditions_icpc2_allowed

[varchar]

null

O

 Масив кодів станів з довідника eHealth/ICPC2/condition_codes. Наприклад: ["R25","R80","L09"]

Дозволяє створити запит рецепту або первинного призначення у відповідності до логіки, яка описана для conditions_icd10_am_allowed

Якщо відсутній - будь-який ICPC2 код стану допустимий.

Може бути поєднано з кодами conditions_icpc2_allowed

medication_request_max_period_day

integer

null

O

Максимальна тривалість періоду (в днях) допустима для рецепту по програмі. Має більший пріорітет в порівнянні з таким же параметром в чарті

providing_conditions_allowed

[varchar]

null

O

Допустимі умови обслуговування для плану лікування при створенні первинного призначення по програмі. Заповнюється значеннями з довідника PROVIDING_CONDITION. Наприклад: ["INPATIENT", "OUTPATIENT"]

medical_program_settings_text



varchar



O

 Коментар при оновленні medical_program_settings

inserted_at



Timestamp: now()



M

Отримати поточну дату-час

inserted_by



Token: user_id



M

Отримати користувача з токену

updated_at



Timestamp: now()



M

Отримати поточну дату-час

updated_by



Token: user_id



M

Отримати користувача з токену





 

ЕСОЗ - публічна документація