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

API. Complete Care plan_UA

Ціль

Даний веб-сервіс дозволяє завершити План лікування

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

  1. Статус може мінятися автором плану лікування, у якого є дозвіл наданий пацієнтом на план лікування

  2. Завершення виконується без електронного підпису. 

  3. Статус плану лікування міняється в асинхронний спосіб. Результом задачі має бути посилання на деталі плану лікування.

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

Apiary

Авторизація

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

    • Повернути (401, 'unauthorized'), якщо валідація неуспішна

  • Перевірити, що по токену не закінчився строк дії

    • у випадку помилки - повернути код (401, 'unauthorized')

  • Перевірити список скоупів користувача на можливість виконання даної дії (scope = 'care_plan:read')

    • Повернути (403, 'invalid scopes') в разі невалідних скоупів/scope(s)

Перевірити юридичну особу

  • Отримати client_id з токену

  • Перевірити статус юридичної особи на відповідність ACTIVE

    • В разі помилки - повернути код 409 ('Legal entity must be ACTIVE')

  • Перевірити тип юридичної особи в конфігураційних параметрах me_allowed_transactions_le_types

    • В разі помилки - повернути код 409 ('Action is not allowed for the legal entity type')

Перевірити користувача

  • Отримати ідентифікатор user_id з токену.

  • Перевірити, що користувач є активним співробітником та має погодження, яке:

    • визначений як автор плану лікування та має активний дозвіл від пацієнта на редагування плану лікування (ідентифікатор плану лікування з URL)

    • повернути 403 ('Access denied') у випадку, коли співробітник не є автором плану лікування, або не має права на редагування

Перевірити консистентність даних

  • Впевнитись, що наданий план лікування пов'язаний з пацієнтом (з URL)

    • Повернути 404 (not found) у випадку помилки

Перевірити зміну статусу

  • Отримати план лікування по id

  • Перевірити статус: статус плану лікування повинен змінюватися у відповідності до Care plan status model.

    • Повернути 409 ('Care plan in status <cancelled/completed> cannot be completed') у випадку помилки

Перевірити причини статусу

Перевірити заповненість даних в полі $.status_reason

  • Перевірити, що тип поля відповідає концепції кодування

  • Перевірити, що концепція кодування відповідає значенням довідника eHealth/care_plan_cancel_reasons 

  • Перевірити значення на належність у довіднику, вказаному вище

Перевірити активності

  • Отримати активності плану лікування

  • Перевірити, що всі активності в final status

    • Повернути 409 (Care plan has scheduled or in-progress activities), якщо були знайдені активності не в фінальному статусі

  • Перевірити, що хоча б одна активність має status=completed

    • Повернути 409 ('Care plan has no one completed activity') в разі, якщо завершені активності не знайдено

Логіка сервісу

  1. Оновити статус плану лікування (також оновити updated_at, updated_by)

  2. Встановити $.status_history

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