Table of Contents |
---|
Перевірити запит
Перевірити запит з використанням схеми JSON
В разі неуспішної перевірки - згенерувати помилку 422
Схема JSON
Expand | ||
---|---|---|
|
Перевірити користувача
Перевірити валідність токену доступу
Перевірити скоупи користувача declaration_request:write на можливість виконання даної дії
в разі помилки - згенерувати відповідь 401
Перевірити статус верифікації персони
перевірити, що verification_status персони не дорівнює NOT_VERIFIED.
в разі помилки повернути 409, "Patient is not verified"
Отримати деталі запиту на декларацію
Отримати запит на декларацію з IL_DB.declaration_request
Визначити метод авторизації
Отримати authorization_method з IL_DB.declaration_request
...
Якщо authentication_method_current = OTP - перевірити код SMS
Якщо authentication_method_current = NA - перевірити первинну декларацію
Перевірити код
Викликати модуль верифікації для перевірки OTP
Перевірити завантажені документи
Викликати сховище даних для перевірки наявності документів
Перевірити первинну декларацію
Отримати parent_declaration_id з IL_DB.declaration_requests.parent_declaration_id:
Якщо parent_declaration_id не вказано, перевірити запит на декларацію в частині authentication_method_current = NA logic
Якщо parent_declaration_id вказано, перевірити, що первинна декларація існує та в статусі 'active'
в разі помилки - повернути 404 (‘Active parent declaration was not found’)
Обробка
Згенерувати друковану форму
Викликати MAN для генерування друкованої форми.
...
Expand | ||
---|---|---|
|
Змінити значення для patient_signed та process_disclosure_data_consent
Якщо parent_declaration_id вказано та authentication_method_current = NA,оновити поточні поля значеннями з поля data_to_be_signed:
patient_signed = null
process_disclosure_data_consent = null
Згенерувати зашешований ‘seed’
Згенерувати хеш seed
- Захешувати попередній блок в лянцюжку декларацій або інший рандомно компонент, який повинен бути підписаний з декларацією.
Змінити запит пацієнта
Змінити статус сутності в IL_DB.declaration_request на APPROVED
Встановити updated_at - now() (Отримати поточні дату та час)
Встановити updated_by - user_id (Отримати користувача з токену)