ЕСОЗ - публічна документація

RC_Approve declaration request v3 (modified - UA)

Перевірити запит

  1. Перевірити запит з використанням схеми JSON

    1. В разі неуспішної перевірки - згенерувати помилку 422

Схема JSON  

{   "$schema": "http://json-schema.org/draft-04/schema#",   "type": "object",   "properties": {     "verification_code": {       "type": "string"     }   },   "required": [     "verification_code"   ],   "additionalProperties": false }


Перевірити користувача

  1. Перевірити валідність токену доступу

  2. Перевірити скоупи користувача declaration_request:write на можливість виконання даної дії

    1. в разі помилки - згенерувати відповідь 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

OTP Verification

Перевірити завантажені документи

Викликати сховище даних для перевірки наявності документів

Media Content Storage

Перевірити первинну декларацію

Отримати 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

curl --request POST \      --header 'Accept: text/html' \      --header 'Content-Type: application/json' \      {:host}/templates/{:declaration_request_printout_id}/actions/render

 

Встановити 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 - Захешувати попередній блок в лянцюжку декларацій або інший рандомно компонент, який повинен бути підписаний з декларацією.

Змінити запит пацієнта

  1. Змінити статус сутності в IL_DB.declaration_request на APPROVED

  2. Встановити updated_at - now() (Отримати поточні дату та час)

  3. Встановити updated_by - user_id (Отримати користувача з токену)

ЕСОЗ - публічна документація