Table of Contents |
---|
Специфікація
...
Апрували виконуються в асинхронний спосіб
Користувач може сворити апрувал тільки для співробітника його юридичної особи
client_id з токену повинен бути поєднаним з employee_id від об'єкту granted_to.
granted_to.employee_id повинен бути активним.
Тільки користувачі з типами працівника "DOCTOR", "SPECIALIST", "ASSISTANT" можуть створювати апрувал
Перевірити granted_to.identifier.value: employee_type = "DOCTOR"/"SPECIALIST"/"ASSISTANT" і працівник у статусі APPROVED у базі даних
у разі помилки повернути - 422 з повідомленням “Invalid employee type“
Якщо блок service_request наявний в запиті
(тільки в статусі active)
використовуй Response.permitted_resources як ресурси для апрувал (може бути епізод (episode) або diagnostic_report).
якщо блок forbidden_group вказано в запиті
Перевірити, що заборона група з запиту існує та is_active в БД
в разі помилки повернути - 404 (not found)
Перевірити patient_id:
якщо належить person, тоді отримати/GET auth_method з MPI використовуючи {patient_id}
якщо це OTP:
надіслати SMS до auth_phone за допомогою сервісу otp_verification POST /verifications
зберегти апрувал в БД
зберегти authentication_method_current.type та номер в БД
повернути authentication_method_current.type = OTP
якщо це офлайн
зберегти апрувал в БД
зберегти authentication_method_current.type та номер в БД
повернути authentication_method_current.type = offline
якщо це null:
повернути помилку error 409 (Person hasn’t active authentication methods. It is necessary to add)
якщо належить до preperson:
зберегти апрувал до БД
встановити статус апрувал status = active
встановити по апрувал urgent = null
...
Перевірити, що access_level відповідає granted_resources:
в разі помилки повернути код 422 ("Resource types [\"$.granted_resources[].code\"] not allowed to use write access_level")
granted_resources | access_level | access to | |
---|---|---|---|
resources | episode_of_care | read | Читання всіх даних, вказаних в епізоді на апрувал |
diagnostic_report | read | Читання всіх даних, вказаних в діагностичному звіті на апрувал | |
care_plan | read | Читання всіх даних, вказаних в плані лікування на апрувал | |
care_plan | write | Створення активностей для плану лікування | |
service_request | episode_of_care diagnostic_report | read | Читання данних з permitted_resources в запиті апрувала |
forbidden_group | forbidden_group | read | Читання всіх медичних даних з елементами (codes/services/service_groups) вказаних в апрувалі на заборонені групи |
Перевірити authorize_with
...
Всі апрували в статусі "new" повинні бути видалені через 12 годин після створення - env. configuration parameter
Всі апрувалз на forbidden_group має власний expires_at конфігуруємий параметр (не довше, ніж для інших апрувалів) - env. configuration parameter