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

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" для медичної програми.

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

Авторизація

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

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

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

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

Перевірити FKs

Ціль перевірки: Перевірити активні мед препарати програми. Тільки медична програма без активних мед препаратів може бути деактивова. В разі, якщо з програмою пов'язані активні медичні препарати відображається помилка.

  1. Перевірити наявність `program_medication` по $.medical_program_id=$.id & `is_active`= false 

    1. якщо неуспішно - повернути помилку 409 (повідомлення: "This program has active participants. Only medical programs without participants can be deactivated.")

Перевірити медичну програму PK

Ціль валідації: Перевірити наявність запису по медичній програмі

  1. Перевірити наявність `Medical_program` по $.id.

    1. якщо неуспішно - повернути помилку 404 (повідомлення: "Medical program with id={$.id} doesn't exist.")

Перевірити статус

Ціль валідації:  Медична програма повинна бути активна (is_active == TRUE) 

  1. Перевірити `is_active` == TRUE

  2. Якщо неуспішно  - повернути помилку 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

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