ЕСОЗ - публічна документація
AR_[NEW] (GraphQl) Search Program devices_UA
Мета
Даний веб-сервіс WS дозволяє здійснити пошук учасників учасників медичних програм з типом медичного виробу.
Ключові положення
Це метод graphQl, який використовується тільки в адміністративній панелі.
Тільки автентифіковані та авторизовані співробітники NHS з відповідним скоупом можуть здійснити пошук медичних виробів по програмі.
Специфікація
Авторизація
Перевірити валідність токену доступу
Повернути (401, 'Invalid access token') в разі невалідних перевірок
Перевірити, що токен дійсний
в разі помилки - повернути (401, 'Invalid access token')
Перевірити скоупи користувача на можливість виконання даної дії (scope = 'program_device:read')
Повернути (403, 'Your scope does not allow to access this resource. Missing allowances: program_device:read') в разі невалідних скоупів
Перевірити юридичну особу
Отримати 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')
Сервісна логіка
Отримати всі записи з таблиці program_devices в базі даних PRM
Задіяти додаткові пошукові параметри (пов'язані логічним AND):
databaseId - пошук по program_devices.id (використовуючи точне співпадіння з оператором
=
)medicalProgram - задіяти фільтр медичної програми, потім здійснити пошук по program_devices.medical_program_id (використовуючи точне співпадіння з оператором
=
)isActive - пошук по program_devices.is_active (використовуючи точне співпадіння з оператором
=
)deviceRequestAllowed - пошук по program_devices.device_request_allowed (використовуючи точне співпадіння з оператором
=
)deviceDefinition - задіяти фільтр по медичним виробам, потім здійснити пошук по program_devices.device_definition_id (використовуючи точне співпадіння з оператором
=
)registryNumber - здійснити пошук по program_devices.registry_number (використовуючи правило співпадіння
like
, нечутливий до регістру)reimbursementType - здійснити пошук по program_devices.reimbursement_type (використовуючи точне співпадіння з оператором
=
)startDate - здійснити пошук по program_devices.start_date (використовуючи точне співпадіння з оператором
between
)endDate - здійснити пошук по program_devices.end_date (використовуючи точне співпадіння з оператором
between
)
Задіясти опційне сортування
якщо не передано
$.orderBy
- відсотрувати записи по полюinserted_at
в спадаючому порядку.
Відобразити відповідь у відповідності до специфікації.
ЕСОЗ - публічна документація