Мета
Даний веб-сервіс (WS) розроблено для відмови запиту на персону, який був перед цим створений персоною.
Основні положення
Тільки автентифіковані та авторизовані користувачі з відповідними скоупами можуть відмінити запит на персону.
Специфікація
Авторизація
Перевірити валідність токену доступу
Повернути (401, 'Invalid access token') в разі неуспішних перевірок
Перевірити, що токен дійсний
в разі помилки - повернути (401, 'Invalid access token')
Перевірити скоупи користувача на можливість виконання даної дії (scope = 'person_request:reject_pis')
Повернути (403, 'Your scope does not allow to access this resource. Missing allowances: person_request:reject_pis') в разі невалідних скоупів
Перевірити, що токен містисть person_id
в разі помилки - повернути (401, 'Invalid access token')
Перевірити персону
Отримати person_id з токену (x-person-id хедер)
Перевірити, що статус персони активна (status = ‘active' & is_active = 'true’)
в разі помилки - повернути 404 ('not found')
Перевірити довірену особу та взаємозв'язок (опційно)
Якщо персона юридично не дієздатна - система має переконатись, що її дані оновлюються довіреною особою та є зареєстрований та верифікований взаємозв'язок.
Отримати applicant_person_id
з токену, порівняти цого до person_id
з токену:
якщо рівний - перевірити, що персона має бути не авторизована як довірена особа, що вона не відповідає наступним правилам:
вік персони < no_self_registration_age глобальному параметру;
що вік персони між значенням no_self_registration_age та person_full_legal_capacity_age глобальних параметрів та персона не має документу з типом з конфігураційного параметру PIS_PERSON_LEGAL_CAPACITY_DOCUMENT_TYPES;
вік персони > person_full_legal_capacity_age глобального параметру та існує хоча б один взаємозв'язок активний та погоджений з довіреною особою з персоною (викорисовуючи наступний процес Check confidant person relationship з person_id = person з запиту - очікується відповідь
:ok, :approved
)в разі помилки - повернути 409 (‘Request must be authorized by confidant person’)
Якщо не рівний - перевірити взаємозв'язок по наступним крокам:
Перевірити, що зареєстрований взаємозв'язок між
person_id
таapplicant_person_id
(MPI.confidant_person_relationships)Перевірити, що взаємозв'язок є VERIFIED
в разі помилки - повернути 409 (‘Can’t confirm relationship’)
Перевірити, що існує
applicant_person_id
(status = 'active' & is_active = 'true') та має будь-який verification_status але неNOT_VERIFIED
в разі помилки - повернути 409 (‘Confidant person not found or is not verified’)
Перевірити запит на персону
Перевірити, що запит на персону:
існує в il DB
належить пацієнту
в разі помилки - повернути 404 ('not found')
Перевірити, що статус запиту на персону = NEW, APPROVED
в разі помилки - повернути 403 (' Only person request with NEW or APPROVED statuses can be rejected')
Сервісна логіка
Оновити запит на персону в таблиці il.person_requests:
встановити статус = 'REJECTED'
Додати новий статус до івент менеджера
Поле | Значення |
---|---|
|
|
|
|
| $.id |
| $.status |
| $.updated_at |
| $.changed_by |