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

UA_Check confidant person relationship

Мета

Цей алгоритм використовується для перевірки відносин між довіреною особою та пацієнтом на основі confidant_person_relationships (таблиця MPI DB).

Ключові положення

  1. Цей алгоритм використовує дані набору даних, щоб перевірити, чи існує зв’язок між двома пацієнтами з бази даних mpi у таблиці confidant_person_relationships і який має статус верифікації.

  2. Цей алгоритм можна використовувати в різних процесах і не обмежується конкретним процесом.

  3. Принаймні один з ids має бути вказаних у вхідних параметрах

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

{ "confidant_person_id": "70a9e15b-b71b-4caf-8f2e-ff247e8a5677", "person_id": "70a9e15b-b71b-4caf-8f2e-ff247e8a5678" }

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

  1. Отримати зв’язок між двома особами з таблиці confidant_person_relationships де:

    • person_id рівний $.person_id

    • ТА confidant_person_id рівний $.confidant_person_id (перевірити, чи $.confidant_person_id наявний в наборі даних)

    • ТА is_active=true (verification_status = “VERIFIED”
      АБО
      verification_status = “VERIFICATION_NEEDED” ТА verification_reason = “MANUAL_CREATED_BY_DOCTOR”)

  2. Повернути результат:

    • якщо запис знайдено та має verification_status = “VERIFIED”
      АБО
      verification_status = “VERIFICATION_NEEDED” AND verification_reason = “MANUAL_CREATED_BY_DOCTOR”)

      повернути {:ok, {:approved, "Relationship is approved"}}

    • В іншому випадку, якщо знайдено але має інший статус верифікації {:ok, {:not_approved, "Relationship is not approved yet"}}

    • В іншому випалку, якщо запис не знайдено - {:error, {:not_found, "Relationship is not found"}}

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