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
Specification
Schema
"""
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
}
Purpose
This WS is designed to create new medical program.
WS logic
Authorize
Verify the validity of access token
In case error - generate 401 response
Check user scope (scope = 'medical_program:write') in order to perform this action
In case error - generate 403 response
Validate request (JSON schema)
Validate request using JSON schemas (TBD):
Return 422 with list of validation errors in case validation fails (422 EView)
Create new Medical Program
Create new record in Medical_programs
Destination | Source | Type | Default | M/O | Description |
---|
id | | uuid | | M | Autogenerated |
name | | varchar | | M | |
is_active | | boolean | | M | |
type | | varchar | | M | Dictionary: 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 | Allow to create medication request with the same innm in one treatment period |
employee_types_to_create_medication_request | [varchar] | null | O | Allow to create medication request for particular types of employees (if empty - all employee types, which have scopes can create medication request without limitations). Fills with values from EMPLOYEE_TYPE dictionary. Example: ["DOCTOR", "SPECIALIST"] |
speciality_types_allowed | [varchar] | null | O | Allows to create: Medication Request for particular specialities $.employees.speciality.speciality(speciality_officio == true) of employees with SPECIALIST type (if empty - all specialists who have scopes can create medication request w/o limitations). care plan's Activity for particular specialities $.employees.speciality.speciality(speciality_officio == true) of employees. If empty - all employees who have scopes can create Activity w/o any limitations.
Fills with values from SPECIALITY_TYPE dictionary. For example: ["ENDOCRINOLOGY", "FAMILY_DOCTOR"] |
care_plan_required | boolean | false | M | Allow to create medication request for with reference on care plan |
skip_employee_validation | boolean | false | M | Allows to skip all employee validations, including restrictions in the employee_types_to_create_medication_request and speciality_types_to_create_medication_request parameters. So, any user who has a scope can create medication request |
conditions_icd10_am_allowed | [varchar] | null | O | Array of condition codes from eHealth/ICD10_AM/condition_codes dictionary. For example: ["M61.25", "L70.0"] Allows to create: Medication Request Request with encounter in context that should have primary diagnosis with code that correspond to config. Activity with addresses field of related Care plan that should have condition codes that correspond to config.
If absent - any ICD10_AM condition codes allowed. Can be combined with codes in conditions_icpc2_allowed |
conditions_icpc2_allowed | [varchar] | null | O | Array of condition codes from eHealth/ICPC2/actions dictionary. For example: ["R25","R80","L09"] Allows to create Medication Request Request or Activity according to the logic as described for conditions_icd10_am_allowed If absent - any ICPC2 condition codes allowed. Can be combined with codes in conditions_icpc2_allowed |
medication_request_max_period_day | integer | null | O | Maximum period length (in days) allowed for the Medication request with the medical program. Has a precedence over the same chart parameter |
providing_conditions_allowed | [varchar] | null | O | Allowed terms of service for a Care plan to create activity with the medical program. Fills with values from PROVIDING_CONDITION dictionary. For example: ["INPATIENT", "OUTPATIENT"] |
medical_program_settings_text | | varchar | | O | Comment on update medical_program_settings |
inserted_at | | Timestamp: now() | | M | Get current date-time |
inserted_by | | Token: user_id | | M | Extract user from token |
updated_at | | Timestamp: now() | | M | Get current date-time |
updated_by | | Token: user_id | | M | Extract user from token |