Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

Table of Contents

...

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

Apiary

Ціль

Даний веб-сервіс розроблений для створення запиту на рецепт

...

  1. Отримати Get patient by ID

  2. Перевірити, що person_id - mpi_id існують

    • в разі помилки повернути код 422 (422 Person not found)

  3. Зберегти перемінні параметри з: $.data.authentication_methods

  4. Перевірити відповідь $.data.is_active==TRUE 

    1. якщо не знайдено - повернути помилку з кодом 422 (повідомлення: "Only for active MPI record can be created medication request!")

  5. Первірити статус верифікації персони:

    1. Якщо MRR має based_on з валідною активністю, пропустити перевірку.

    2. В іншому випадку перевірити, що verification_status не рівний NOT_VERIFIED.

      1. в разі NOT_VERIFIED - повернути помилку 409, "Patient is not verified"

Перевірити дати

  1. created_at - схожа з датою погодженя FHIR -> Актуальній даті створення запиту на рецепт

  2. inserted_at - дата, коли запит на рецепт був створений в E-Health

  3. started_at/ended_at - Період лікування. Не може бути меньше ніж дата закінчення MR. Визначається лікарем.

  4. dispence_valid_from - Використовується для перевірки відпуску. Аналогічно для дат створення.

  5. dispense_valid_to - Відпуск валідний з + medication_dispense_period значення параметру. Вказує на дату закінчення строку відпуску.

...

  1. Отримати Get INNM Dosage by ID

  2. Перевірити, що medication_id - medication_id існує

    1. в разі помилки повернути код 422 ("Medication not found")

  3. Перевірити код відповіді == 200

    1. в разі помилки - повернути код 422 (повідомлення: "Only medication with type `INNM_DOSAGE` can be use for created medication request!")\

  4. Перевірити відповідь $.is_active==TRUE

    1. якщо не знайдено - повернути код 422 (повідомлення: "Only active innm_dosage can be use for created medication request!")

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

  1. Перевірити наявність "context"

    1. у разу помилки повернути код 422 “required property context was not present“

  2. Перевірити "context" це активна сутність (не entered-in-error) з відповідного довідника, який належить поточному пацієнту

    1. Перевірити на наявність в колекції сутності $.data.context.identifier.type.coding[0].code з id == $.data.context.identifier.value , який належить поточному пацієнту

      1. в разі помилки повернути код 409 "{$.data.context.identifier.type.coding[*].code} not found"

    2. Перевірити, що сутність не в статусі "entered-in-error"

      1. в разі помилки повернути код 409 "Entity in status "entered-in-error" can not be referenced"

...

Перевірити медичну програму

  1. Перевірити наявність medical_program_id

    1. у разі помилки повернути код 422 (“required property medical_program_id was not present“)

  2. Перевірити, що medical_program_id - medical_program_id існує

    1. в разі помилки повернути код 422 ("Medical program not found")

  3. Перевірити контекст на наявність взаємодії в запиті

    1. в разі помилки повернути 422 ("Context with encounter is required as medical program is present in the request")

  4. Перевірити параметри medical_programs.medical_program_setting

    1. перевірити, що care_plan_required == true тоді запит повинен містити based_on на план лікування і активність, що містять ту ж програму

      1. в разі помилки повернути код 422 з повідомленням ("Care plan and activity with the same medical program should be present in request")

    2. Якщо вказано параметр CONDITIONS_ICD10_AM_ALLOWED, то:

      1. Перевірити що первинні діагнози зі взаємодії в контексті має код з довідника eHealth/ICD10_AM/condition_codes 

        1. Перевірити, що код діагнозу з CONDITIONS_ICD10_AM_ALLOWED

          1. в разі помилки - повернути 422 “Encounter in context has no primary diagnosis allowed for the medical program“

    3. Якщо вказано параметр CONDITIONS_ICPC2_ALLOWED, то:

      1. Перевірити що первинні діагнози зі взаємодії в контексті має код з довідника eHealth/ICPC2/condition_codes 

        1. Перевірити, що код діагнозу з CONDITIONS_ICPC2_ALLOWED

          1. в разі помилки - повернути 422 “Encounter in context has no primary diagnosis allowed for the medical program“

...

  • Згенерувати номер для рецепту (See specs)

    Code Block
    Structure number XXXX-1234-5678-9012-345-C , where:
    - XXXX - series: numbers + only some letters (A, E, H, K, M, P, T, X)
    - 1234-5678-9012-345 - randomly generated numbers
    - C - checksum: Should be calculated using the Damn algorithm or Verhoeff algorithm
    After new Request number was generated we should check that it is unique in the DB (entity: medication_request + medication_request_request
    
    • Згенерувати verification_code для MPI.person_authentication_methods == OTP або OFFLINE

      Code Block
      Structure code 1234, where:
      - 1234 - randomly generated numbers 
      

...