Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
Version 1
Current »
Специфікація
Click here to expand...
"""
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
}
Ціль
Даний веб-сервіс розроблений для створення нової медичної програми.
Логіка веб-сервісу
Авторизація
Перевірити валідність токену доступу
в разі помилки - згенерувати код відповіді 401
Перевірити скоупи користувача (scope = 'medical_program:write') на можливість виконання даної дії
в разі помилки - згенерувати код відповіді 403
Перевірити запит (JSON schema)
Перевірити запит, використовуючи схему JSON (TBD):
Повернути код списком помилок валідації в разі помилки валідації (422 EView)
Створення нової програми
Створити новий запис в Medical_programs
Назва | Джерело | Тип | По-замовчуванню | 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 |
|
|
| 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" |
| [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_to_create_medication_request. Тож, кожен користувач, який має скоупи, може створити рецепт |
| [varchar] | null | O | Масив кодів станів з довідника eHealth/ICD10_AM/condition_codes. Наприклад: ["M61.25", "L70.0"] Дозволяє створити: зі взаємодією при умові, що основний діагноз повинен відповідати коду в конфігурації. Первинне призначення.з полем адреси, пов'язані з планом лікуавання, що має коди станів у відповідності до конфігурації.
Якщо відсутня - будь-який ICD10_AM код стану допустимий. Може бути поєднано з кодами conditions_icpc2_allowed |
| [varchar] | null | O | Масив кодів станів з довідника eHealth/ICPC2/condition_codes. Наприклад: ["R25","R80","L09"] Дозволяє створити запит рецептуабо первинного призначення у відповідності до логіки, яка описана для conditions_icd10_am_allowed Якщо відсутній - будь-який ICPC2 код стану допустимий. Може бути поєднано з кодами conditions_icpc2_allowed |
| integer | null | O | Максимальна тривалість періоду (в днях) допустима для рецепту по програмі. Має більший пріорітет в порівнянні з таким же параметром в чарті |
| [varchar] | null | O | Допустимі умови обслуговування для плану лікування при ні первинного призначення по програмі. Заповнюється значеннями з довідника . Наприклад: ["INPATIENT", "OUTPATIENT"] |
|
| 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 | Отримати користувача з токену |