Мета
Даний веб-сервіс WS розроблено, щоб дозволити співрбітникуз відповідним скоупом деактивувати медичний виріб в eHealth.
Ключові положення
Це квері метод GraphQL який використовується тільки в адміністративній панелі.
Тільки автентифіковані та авторизовані співробітники з відповідними скоупами можуть деактивувати медині вироби.
Специфікація
Авторизація
Перевірити валідність токену доступу
Повернути (401, 'Invalid access token') в разі неуспішних валідацій
Перевірити, що токен дійсний
в разі помилки - повернути (401, 'Invalid access token')
Перевірити скоупи користувача на можливість виконання даної дії (скоуп = 'device_definition:write')
Повернути (403, 'Your scope does not allow to access this resource. Missing allowances: device_definition: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')
Перевірити запит
Перевірити, що вказані потрібні поля у відповідності до специфікації
в разі помилки - повернути 422 ('required property <field_name> was not present') де field_name - назва відсутнього поля
Перевірити, що додаткові поля відповідають вказаній схемі
в разі помилки - повернути 422 ('Unknown field')
Перевірити, що медичний виріб існує по
$.id
в таблиці device_definitions в PRM DBв разі помилки - повернути 404 ('Device definition is not found')
Перевірити, що медичний виріб активний (is_active = true)
в разі помилки - повернути 409 ('Device definition should be active')
Перевірити, що активна програма для девайсів існує в таблиці program_devices в PRM DB з device_definition_id =
$.id
в разі помилки - повернути 422 ('Device definition has active Program devices')
Сервісна логіка
Оновити запис в таблиці device_definitions в PRM DB, встановити значення:
is_active = false
updated_at = now()
updated_by = user_id from token
Відобразити відповідь у відповідності до специфікації.