ЕСОЗ - публічна документація
AR_[NEW] (GraphQl) Update Program device_UA
Мета
Даний веб-сервів WS дозволяє оновити деталі по учаснику медичної програми з типом медичного виробу.
Ключові положення
Це метод graphQl який використовується тільки в адміністративній панелі.
Тільки автентифіковані та авторизовані співробітників NHS з відповідним скоупом можуть оновити медвиріб по програмі.
Даний метод використовується для оновлення деталей медичного виробу по програмі в тому числі і деактивувати запис по медвирібу по програмі (шляхом вказання is_active = false в запиті).
Специфікація
Авторизація
Перевірити валідність токену доступу
Повернути (401, 'Invalid access token') в разі неуспішних валідацій
Перевірити, що токен дійсний
в разі помилки - повернути (401, 'Invalid access token')
Перевірити скоупи користувача на можливість виконання даної дії (скоуп = 'program_device:write')
Повернути (403, 'Your scope does not allow to access this resource. Missing allowances: program_device:write') в разі невалідних скоупів
Перевірити юридичну особу
Отримати client_id з токену.
Перевірити статус юридичної особи (status = ACTIVE)
в разі помилки - повернути 409 ('client_id refers to legal entity that is not active')
Перевірити тип клієнта (type = NHS)
в разі помилки - повернути 403 ('You don't have permission to access this resource')
Перевірити запит
Перевірити медичний виріб по програмі за
$.id
, що існує в таблиці program_devices в PRM DBв разі помилки - повернути 404 ('Program device not found')
якщо
$.isActive = false
(медвиріб по програмі деактивований), перевірити, що device_request_allowed = true та care_plan_activity_allowed = true для медвиробу по програмів разі помилки - повернути 422 ('To deactivate device definition within the program firstly disable medication_request_allowed and care_plan_activity_allowed')
якщо
$.deviceRequestAllowed = true
, перевірити, що медвиріб по програмі активний (is_active = true)в разі помилки - повернути 422 ('To allow device request firstly enable program device')
якщо
$.carePlanActivityAllowed = true
, перевірити, що медвиріб по програмі активний (is_active = true)в разі помилки - повернути 422 ('To allow care plan activity firstly enable program device')
якщо
$.endDate
вказано, перевірити, що її значення більше за start_date медичного виробу по програмів разі помилки - повернути 422 ('Program device end date should be greater than start date')
Перевірити медичний виріб по програмі
Перевірити, що device_definition_id по медвиробу по програмі є активним в таблиці program_devices в PRM DB (is_active = true)
в разі помилки - повернути 409 ('Device definition is not active')
Перевірити, що medical_program_id медичного виробу по програмі активний в таблиці medical_programs в PRM DB (is_active = true)
в разі помилки - повернути 409 ('Medical program is not active')
Сервісна логіка
Оновити параметри, вказані у вхідних параметрах в сутності медвиробу програми. Також, встановити значення:
updated_by = user_id з токену
updated_at = now()
Відобразити відповідь у відповідності до специфікації.
ЕСОЗ - публічна документація