Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Виправлення некоректних посилань.
Table of Contents

...

  1. З одним запитом може бути додана тільки одна активність до Плану лікування

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

  3. Активності додаються в асинхронний спосіб. Результатом додаткої задачі активності повинне бути посилання на створену активність (див. Get Care plan activity by ID).

  4. Активність повинна бути підписана Електронним підписом. Підписаний контент зберігається в файловому сховищі.

...

  • Отримати ідентифікатор Плану лікування з URL

  • Первірити План лікування:

    • належить пацієнту (з url)

      • в разі помилки - повернути код 422 ('Care plan with such id is not found')

    • не в final status

      • в разі помилки - повернути код 422 ('Invalid care plan status')

    • Для Плану лікування period.end >= current date.

      • в разі помилки - повернути код 422 ('Care Plan end date is expired')

...

  • Отримати person_id з URL

  • Перевірити, що статус пацієнта активний

    • в разі помилки - повернути код 409 ('Person is not active')

  • Перевірити, що verification_status не рівний NOT_VERIFIED.

    • в разі помилки повернути код 409, "Patient is not verified"

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

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

  • Перевірити, що користувач належить активному та погодженому співробітнику для даної юридичної особи (token), що:

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

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

...

  • Перевірити значення на відповідність схеми типу Period

    • в разі помилки валідації - повернути код 422

  • Перевірити значення для $.CarePlan.Period

    • для помилки валідації period.end - повернути код 422 ('Period end time must be within care plan period range, after period start date')

    • для помилки валідації period.start - повернути код 422 ('Period start time must be within care plan period range')

...

Expand
titleЯк перевіряти мед препарат в програмі. Приклад

SELECT *

FROM medications MI -- 2nd level: Medication - type = INNM_DOSAGE

INNER JOIN ingredients I

ON I.medication_child_id = MI.id

AND I.is_primary =TRUE

INNER JOIN medications MED -- 3rd level: Medication - type = BRAND

ON MED.type == BRAND

AND I.parent_id = MED.id

AND MED.is_active == TRUE

INNER JOIN program_medications MP

ON MP.medical_program_id == `$.product.identifier.value`

MED.id = MP.medication_id

AND MP.is_active == TRUE

AND MP.medication_request_allowed == TRUE

WHERE MI.id == $.medication_id

AND MI.type == INNM_DOSAGE

AND MI.is_active == TRUE

...

  1. Зберегти підписаний контент до файлового сховища

  2. Зберегти дату до колекції care_plan_activities в БД у відповідності до https://e-health-ua.atlassian.net/wiki/spaces/EH/pages/2125038856/2125038889/Care+plan+data+model+UA

  3. Зберегти посилання з файлового сховища до $.signed_content_links field в колекції активностей плану лікування

  4. Якщо план лікування має статус = new:

    • Встановити = active

    • Перевірити, якщо пацієнт має інший активний та/або новий План лікування з таким же кодо станів в полі addresses:

      • Якщо такий План лікування знайдено - встановити для таких Планів лікування статус TERMINATED

  5. Створити задачу та повернути його id.