Table of Contents |
---|
Авторизація
Перевірити валідність токену доступу
в разі помилки повернути 401
Перевірити скоупи користувача (declaration_request:write) на можливість виконання даної дії
в разі помилки повернути 403 - заборонено
Перевірити запит з використанням схеми JSON
...
Персона може передати id його auth_method, який потрібен для підтвердження при запиті на створення декларації. Потрібний метод автентифікації може бути отриманий при виклику Get person's auth methods
перевірити, що auth_method.id це UUID
в разі помилки повернути 422
знайти метод автентифікації в MPI.person_authentication_method
в разі помилки повернути 422, "such authentication method doesn't exist"
знайти метод автентифікації даної персони, де MPI.person_authentication_method.person_id = $.person.id
в разі помилки повернути 422, "such authentication method does not belong to this person"
Перевірити, що auth_method.type = NA
в разі помилки повернути 422, "Сannot be confirmed by a method with type= NA. Use a different method."
Перевірити, що даний метод активний ( 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 та обробка не виконуються, створений запит на декларацію буде оброблено без пацієнта.
Отримати глобальні параметри
...
Перевірити, що спеціальність лікаря відповідає вимогам стосовно віку пацієнта
Отримати speciality_officio лікаря (об'єкт спеціальність, де speciality_officio == true)
Перевірити вимоги у відповідності до глобальних параметрів
Спеціальність посадової особи | Вік |
---|---|
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 (запит опрацьовується без участі пацієнта).
Згенерувати код верифікації
...