Ключові положення
Користувач PATCH /api/patients/{id}/approvals/{id} з кодом верифікації, який отриманий від пацієнта.
Специфікація
Перевірити запит
Авторизація
Перевірити валідність токену доступу
Перевірити скоуп користувача approval:create на можливість виконання даної дії
Логіка
Якщо authentication_method_current.type = OTP
система перевіряє код верифікації по сервісу otp_verification тип PATCH /verifications/:phone_number/actions/complete
якщо код верифікації відповідає - перевірити статус на active
якщо ні - повернути помилку
Перевірити, чи наявні коди Medical Events filtration by Forbidden groups#Medical-events-to-filter для сутностей з granted_resource та\або з reason, що включені до заборонених груп
якщо наявні активні сутності з заборонених груп
створити доступ на кожний блок forbidden_group, чиї елементи наявні в сутностях granted_resource та\або з reason
встановити статус = active
встановити причину = id доступу, що наявний
встановити created_by - той же користувач, що і для доступу, що верифікується
встановити granted_to - той же співробітник, що і для доступу, що верифікується
встановити granted_by - той же пацієнт, що і для доступу, що верифікується
Якщо authentication_method_current.type = offline or null
змінити статус на active