Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

...

Даний веб-сервіс (WS) дозволяє перевірии перевірити активність плану лікування на можливість визначення чи може медична програма бути використана в даному конкретному випадку чи ні.

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

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

  2. Активність повинан бути підписана цифровим підписом (DS)

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

Apiary

Авторизація

...

  • Перевірити, що значення є масивом з помиланням посиланням на типи condition, observation, diagnostic report, clinical impression.

    • в разі помилки - повернути 422 ('value is not allowed in enum')

  • Перевірити, що кожне посилання:

    • це валідне ME

    • належить пацієнту ($.subject)

      • в разі помилки - повернути 422 ('<medical event type> with such ID is not found')

  • Якщо $.detail.reason_reference=clinical_impression:

    • Перевірити, що клінічна оцінка це валідне посилання clinical_impression.code.coding.code та конфігураційні параметри CLINICAL_IMPRESSION_PATIENT_CATEGORIES_<CODE.CODING.CODE>_VALIDITY_PERIOD: різниця між now() та датою clinical_impression.inserted_at повинна бути менше ніж значення конфігураційного параметру (вказано в config для відповідної категорії плану лікування) для коду клінічної оцінки

      • в разі помилки - повернути 422 ("Clinical impression with patient category exceeds validity period")

5. Мета

Перевірити значення поля $.detail.goal, якщо вказано

...

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

    • якщо не знайдено або is_active==false повернути 200 з status = INVALID та rejection_reason "Program not found"

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

    • Якщо продуктом є medication - перевірити, що медикамент має бренд, який є активним учасником програми (program_medications table)

      • в разі, якщо не знайдено або is_active==false повернути 200 з status = INVALID та rejection_reason "Medication is not included in the program"

    • Якщо продуктом є service - перевірити, що сервіс є активним учасником програми

      • в разі, якщо не знайдено або is_active==false повернути 200 з status = INVALID та rejection_reason "Service is not included in the program"

    • Якшр продуктом є service_group - перевірити, що сервісна група є активним учасником програми

      • якщо не знайдено або is_active==false повернути 200 з status = INVALID та rejection_reason "Service group is not included in the program"

  • Перевірити налаштування медичної програми (prm.medical_programs table):

    • якщо вказано параметр speciality_types_allowed:

      • Перевірити спеціалізацію автора в speciality_types_allowed

        • в разі помилки - повернути 200 з status = INVALID та rejection_reason “Author’s specialty doesn't allow to create activity with medical program from request”

    • якщо вказано параметр conditions_icd10_am_allowed або/і conditions_icpc2_allowed:

      • Перевірити, що пов'язаний план лікування має коди станів в полі addresses, які відповідають кодам, вказаним в conditions_icd10_am_allowed або/і conditions_icpc2_allowed (в залежності від довідника - eHealth/ICD10_AM/condition_codes або eHealth/ICPC2/condition_codes)

        • в разі помилки - повернути 200 з status = INVALID та rejection_reason “Care plan diagnosis is not allowed for the medical program“

    • Якщо є параметр providing_conditions_allowed:

      • Перевірити пов'язані плани лікування мають значення в полі terms_of_service, що включено в перелік паметрів providing_conditions_allowed

        • в разі помилки - повернути 200 з status = INVALID та rejection_reason “Care plan’s terms of service are not allowed for the medical program“

    • якщо вказано параметр patient_categories_allowed:

      • перевірити, чи patient_categories_allowed не нуль, то $.detail.reason_reference повинен містити посилання на clinical_impression з категорією пацієнтів

      • перевірити, чи patient_categories_allowed має коди в $.detail.reason_reference.[].clinical_impression.code.[].value, що відповідають кодам, вказаним в pointed in patient_categories_allowed

        • в разі помилки повернути 200 з status = INVALID та rejection_reason ("Clinical impression with patient category should be present in request for this medical program")

Якщо програма відповідає вимогам, встановити статус "VALID" у відповідності до apiary.

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

  1. Відобразити відповідь з результатом перевірки у відповідності до визначення, що медична програма може бути застосована в даному випадку чи ні