Table of Contents |
---|
Специфікація
Перевірити запит
Перевірити запит на основі схеми JSON
Авторизація
Перевірити валідність токену доступу
Перевірити скоупи користувачів approval:create на можливість виконання даної операції
Логіка
Апрували виконуються в асинхронний спосіб
Користувач може сворити апрувал тільки для співробітника його юридичної особи
client_id з токену повинен бути поєднаним з employee_id від об'єкту granted_to.
granted_to.employee_id повинен бути активним.
Якщо блок service_request наявний в запиті
(тільки в статусі active)
використовуй Response.permitted_resources як ресурси для апрувал (може бути епізод (episode) або diagnostic_report).
Перевірити 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
Перевірити, що 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 в запиті апрувала |
Перевірити authorize_with
Пацієнт може передати id його auth_method з яким він має намір дати апрувал. Потрібний метод автентифікації (auth method) може бути знайдений за допомогою Get person's auth methods
...
Якщо апрувал не має даних полів, тоді вибрати той метод, який повертається з mpi як person's default method.
Додаткова логіка
Всі апрували в статусі "new" повинні бути видалені через 12 годин після створення - env. configuration parameter