Перевірити запит
Перевірити запит з використанням схеми JSON
В разі неуспішної перевірки - згенерувати помилку 422
Схема JSON
Перевірити користувача
Перевірити валідність токену доступу
Перевірити скоупи користувача declaration_request:write на можливість виконання даної дії
в разі помилки - згенерувати відповідь 401
Перевірити статус верифікації персони
перевірити, що verification_status персони не дорівнює NOT_VERIFIED.
в разі помилки повернути 409, "Patient is not verified"
Отримати деталі запиту на декларацію
Отримати запит на декларацію з IL_DB.declaration_request
Визначити метод авторизації
Отримати authorization_method з IL_DB.declaration_request
SELECT IL_DB.declaration_request.authentication_method FROM IL_DB.declaration_request WHERE IL_DB.declaration_request.id = :id |
Якщо authentication_method_current = NULL - повернути помилку
Якщо authentication_method_current == OFFLINE - перевірити завантажені документи
Якщо 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 для генерування друкованої форми.
Мапінг запиту:
Переметр | Джерело |
---|---|
id | DECLARATION REQUEST |
Приклад cURL
Встановити IL.declaration_request.printout_content:
Змінити значення для 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 (Отримати користувача з токену)