ЕСОЗ - публічна документація
Deactivate medical program_UA
"""
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
}
Ціль
Даний веб-сервіс розроблений для оновлення прапорця "is_active" для медичної програми.
Логіка веб-сервісу
Авторизація
Перевірити валідність токену доступу
В разі помилки - сгенерувати відповідь 401
Перевірити скоупи користувача (scope = 'medical_program:deactivate') на можливість виконанння даної дії
В разі помилки - сгенерувати відповідь 403
Перевірити FKs
Ціль перевірки: Перевірити активні мед препарати програми. Тільки медична програма без активних мед препаратів може бути деактивова. В разі, якщо з програмою пов'язані активні медичні препарати відображається помилка.
Перевірити наявність `program_medication` по $.medical_program_id=$.id & `is_active`= false
якщо неуспішно - повернути помилку 409 (повідомлення: "This program has active participants. Only medical programs without participants can be deactivated.")
Перевірити медичну програму PK
Ціль валідації: Перевірити наявність запису по медичній програмі
Перевірити наявність `Medical_program` по $.id.
якщо неуспішно - повернути помилку 404 (повідомлення: "Medical program with id={$.id} doesn't exist.")
Перевірити статус
Ціль валідації: Медична програма повинна бути активна (is_active == TRUE)
Перевірити `is_active` == TRUE
Якщо неуспішно - повернути помилку 409 (повідомлення: "Medical program is not active and can't be deactivated")
Деактивувати медичну програму
Оновити запис по медичній програмі по $.id шляхом встановлення значення:
Шлях | Джерело |
---|---|
is_active | FALSE |
updated_at | :timestamp |
updated_by | user_id |
Деактивувати забезпечення відділень по медичній програмі
Для типу медичної програми MEDICATION (відповідно до link).
Деактивувати всі пов'язані активні відділення по медичній програмі:
встановити is_active = false
встановити deactivate_reason =
AUTO_MEDICAL_PROGRAM_DEACTIVATION
встановити updated_at, updated by
ЕСОЗ - публічна документація