"Update a single `MedicalProgram`."
updateMedicalProgram(
input: UpdateMedicalProgramInput!
): UpdateMedicalProgramPayload
"""
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]
"Skip declaration verification for employee on create `Medication Request`"
skipMedicationRequestEmployeeDeclarationVerify: Boolean
"Skip declaration verification for legal entity on create `Medication Request`"
skipMedicationRequestLegalEntityDeclarationVerify: Boolean
"Allows multi dispense for `Medication Request`"
multiMedicationDispenseAllowed: Boolean
"Allows to process `Medication Dispense` without digital sign"
skipMedicationDispenseSign: Boolean
"Disables patient notification on operations with `Medication Request`"
medicationRequestNotificationDisabled: Boolean
"Specifies medication dispense period in days"
medicationDispensePeriodDay: Int
"Skip Contract and Medical Program Provision verification in medication dispense flow"
skipContractProvisionVerify: Boolean
"Allows to change medical program on create `Medication Dispense`"
medicalProgramChangeOnDispenseAllowed: Boolean
"Patient category requirement flag"
patientCategoryRequired: Boolean!
"Patient categories allowed. From `eHealth/clinical_impression_patient_categories` dictionary"
patientCategoriesAllowed: [String]
}
Авторизація
Перевірити валідність токену доступу
в разі помилки - повернути 401 (“Invalid access token”) в разі неуспішної валідації
Перевірити, що токен дійсний
в разі помилки - повернути 401 (“Invalid access token”)
Перевірити скоупи користувача на можливість виконання даної дії (scope = 'medical_program:write')
повернути 403 (“Your scope does not allow to access this resource. Missing allowances: program_medication:read”) в разі невалідних скоупів
Перевірити юридичну особу
Отримати client_id з токену.
Перевірити скоупи користувача на можливість виконання даної дії (scope = 'medical_program:write')
в разі помилки - повернути 403 (“Your scope does not allow to access this resource. Missing allowances: medical_program:write”)
Перевірити тип = NHS
в разі помилки - повернути 403 ('You don’t have permission to access this resource')
Перевірити програму по ID
Перевірити, що id існує в базі даних DB
в разі помилки - повернути 404 ('not_found')
Сервісна логіка
Оновити параметри, вказані у вхідних параметрах по сутності програми. Також, встановити:
updated_by = поточний користувач (з токену)
updated_at = поточні дата та часSpecificationAuthorization