Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Авторизація

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

    1. в разі помилки повернути 401 

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

    1. в разі помилки повернути 403 - заборонено

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

...

Персона може передати id його auth_method, який потрібен для підтвердження при запиті на створення декларації. Потрібний метод автентифікації може бути отриманий при виклику Get person's auth methods

  1. перевірити, що auth_method.id це UUID

    1. в разі помилки повернути 422

  2. знайти метод автентифікації в MPI.person_authentication_method

    1. в разі помилки повернути 422, "such authentication method doesn't exist"

  3. знайти метод автентифікації даної персони, де  MPI.person_authentication_method.person_id = $.person.id

    1. в разі помилки повернути 422, "such authentication method does not belong to this person"

  4. Перевірити, що auth_method.type = NA

    1. в разі помилки повернути 422, "Сannot be confirmed by a method with type= NA. Use a different method."

  5. Перевірити, що даний метод активний ( authentication_method.ended_at > now() and is_active = true)

Дане поле опційне та встановити для il.declaration_reques.authentication_method_current.

Якщо запит на персону не містить дане поле, то вибрати той метод, який повертається з mpi як person's default method

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

  • перевірити, що первинна декларація існує та в статусі ‘active’

    • в разі помилки - повернути 404 (‘Active parent declaration was not found’)

  • перевірити, що первинна декларація належить вказаній персоні (person_id первинної декларації та person_id з запиту однакові)

    • в разі помилки - повернути 422 (‘Parent declaration does not belong to this person’)

  • перевірити, що юридична особа первинної декларації та поточна юридична особа знаходяться в процесі реорганізації Приєднання, Злиття, Виділ, Поділ (запит: select * from related_legal_entities where is_active=true and merged_from_id=parent_declaration_id.legal_entity_id and merged_to_id=employee_id.legal_entity_id and type in (‘ACCESSION’, ‘MERGING’, ‘DIVIDING’, ‘SEPARATING’); повертає хоча б один запис)

    • в разі помилки - повернути 422 (‘Legal entities of parent declaration and current are not in reorganization process’)    

  • перевірити, що party_id співробітника з первинної декларації та party_id поточного співробітника однакові

    • в разі помилки - повернути 422 (‘Employee of parent declaration and current employee are not the same’)

Дане поле опційне та встановлюється для il.declaration_reques.parent_declaration_id.

Якщо parent_declaration_id передано в запиті, перевірка authorize_with та обробка не виконуються, створений запит на декларацію буде оброблено без пацієнта.

Отримати глобальні параметри

...

Перевірити, що спеціальність лікаря відповідає вимогам стосовно віку пацієнта

  1. Отримати speciality_officio лікаря (об'єкт спеціальність, де speciality_officio == true)

  2. Перевірити вимоги у відповідності до глобальних параметрів

Спеціальність посадової особи

Вік

FAMILY DOCTOR

Обмеження по віку відсутні

THERAPIST

Більше або дорівнює $.data.adult_age

PEDIATRICIAN

Меньше ніж $.data.adult_age

...

Встановити auth_method_current

Отримати parent_declaration_id з il.declaration_requests.parent_declaration_id.

Якщо parent_declaration_id не вказано, встановити за-замовчуванням метод автентифікації персони на IL.auth_method_request.auth_method_current - використовувати function в mpi, що повертає метод автентифікації за-замовчуванням.

Якщо auth_method_current = NA - повернути помилку "person authentication method is undefined".

Якщо parent_declaration_id вказано, встановити auth_method_current = NA (запит опрацьовується без участі пацієнта).

Згенерувати код верифікації

...