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

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Мета

Даний веб-сервіс (WS) розроблено для відмови запиту на персону, який був перед цим створений персоною.

Основні положення

  1. Тільки автентифіковані та авторизовані користувачі з відповідними скоупами можуть відмінити запит на персону.

Специфікація

Apiary

Авторизація

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

    • Повернути (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 глобального параметру та існує хоча б один взаємозв'язок активний та погоджений з довіреною особою з персоною (викорисовуючи наступний процес /wiki/spaces/PCAB/pages/17415995422 з 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')

Сервісна логіка

  1. Оновити запит на персону в таблиці il.person_requests:

    1. встановити статус = 'REJECTED'

  2. Додати новий статус до івент менеджера

Поле

Значення

event_type

StatusChangeEvent

entity_type

PersonRequest

entity_id

$.id

properties.status.new_value

$.status

event_time

$.updated_at

changed_by

$.changed_by

  • No labels