ЕСОЗ - публічна документація
API. Complete Care plan_UA
Ціль
Даний веб-сервіс дозволяє завершити План лікування
Основні положення
Статус може мінятися автором плану лікування, у якого є дозвіл наданий пацієнтом на план лікування
Завершення виконується без електронного підпису.
Статус плану лікування міняється в асинхронний спосіб. Результом задачі має бути посилання на деталі плану лікування.
Специфікація
Авторизація
Перевірити валідність токену доступу
Повернути (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') в разі, якщо завершені активності не знайдено
Логіка сервісу
Оновити статус плану лікування (також оновити updated_at, updated_by)
Встановити $.status_history
ЕСОЗ - публічна документація