ЕСОЗ - публічна документація
AR_[NEW] (GraphQl) Update Device definition_UA
Мета
Даний веб-сервіс WS розроблений, щоб дозволити співробітнику з відповідними скоупами оновлювати поля медичних виробів в eHealth.
Ключові положення
Це квері метод GraphQL, який використовуюється тільки в адміністративній панелі.
Тільки автентифіковані та авторизовані співробітники з відповідними скоупами можуть оновити медичні вироби.
Специфікація
Авторизація
Перевірити валідність токену доступу
Повернути (401, 'Invalid access token') в разі неуспішних валідацій
Перевірити, що токен дійсний
в разі помилки - повернути (401, 'Invalid access token')
Перевірити скоупи користувача на можливість виконання даної дії (scope = '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 ('In field <<field_name>>: Expected type <<field_type>>, found null.') де field_name - назва відсутнього поля, field_type - тип відсутнього поля
Перевірити, що не вказані додаткові поля, які не відповідають вказаній схемі
в разі помилки - повернути 422 ('In field <<field_name>>: Unknown field.') де field_name - назва додаткового поля, яке не відповідає схемі
Перевірити, що кожне поле з запиті відповідає його типу в специфікації
в разі помилки - повернути 422 ('In field <<field_name>>: Expected type <<field_type>>, found <<actual_value>>.') де field_name - назва поля з помилкою, field_type - очікуваний тип поля, actual_value - значення, що було вказано в полі
Перевірити медичний виріб
Перевірити, що медичний виріб по
$.id
існує в таблиці device_definitions в PRM DBв разі помилки - повернути 404 ('Device definition is not found')
Перевірити, що медичний виріб активний (is_active = true)
в разі помилки - повернути 409 ('Device definition should be active')
Перевірити назви виробів
Перевірити, що відсутні дублі типів по
$.deviceNames
($.deviceNames.type
має бути унікальним по$.deviceNames
)в разі помилки - повернути 422 ('Values are not unique by 'type'.)
Сервісна логіка
Оновити записи в таблиці device_definition_names в PRM DB для device_definition_id =
$.id
, встановити значення:type =
$.deviceName.type
name =
$.deviceName.name
inserted_at = now() (тільки для нових записів)
updated_by = user_id з токену (тільки для нових записів)
updated_at = now()
updated_by = user_id з токену
Оновити записи в таблиці device_definitions в PRM DB
updated_at = now()
updated_by = user_id з токену
Відобразити відповідь у відповідності до специфікації.
ЕСОЗ - публічна документація