...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Table of Contents |
---|
...
Специфікація
Ціль
Даний веб-сервіс розроблений для створення запиту на рецепт
...
Отримати Get patient by ID
Перевірити, що person_id - mpi_id існують
в разі помилки повернути код 422 (422 Person not found)
Зберегти перемінні параметри з: $.data.authentication_methods
Перевірити відповідь $.data.is_active==TRUE
якщо не знайдено - повернути помилку з кодом 422 (повідомлення: "Only for active MPI record can be created medication request!")
Первірити статус верифікації персони:
Якщо MRR має based_on з валідною активністю, пропустити перевірку.
В іншому випадку перевірити, що verification_status не рівний NOT_VERIFIED.
в разі NOT_VERIFIED - повернути помилку 409, "Patient is not verified"
Перевірити дати
created_at - схожа з датою погодженя FHIR -> Актуальній даті створення запиту на рецепт
inserted_at - дата, коли запит на рецепт був створений в E-Health
started_at/ended_at - Період лікування. Не може бути меньше ніж дата закінчення MR. Визначається лікарем.
dispence_valid_from - Використовується для перевірки відпуску. Аналогічно для дат створення.
dispense_valid_to - Відпуск валідний з + medication_dispense_period значення параметру. Вказує на дату закінчення строку відпуску.
...
Отримати Get INNM Dosage by ID
Перевірити, що medication_id - medication_id існує
в разі помилки повернути код 422 ("Medication not found")
Перевірити код відповіді == 200
в разі помилки - повернути код 422 (повідомлення: "Only medication with type `INNM_DOSAGE` can be use for created medication request!")\
Перевірити відповідь $.is_active==TRUE
якщо не знайдено - повернути код 422 (повідомлення: "Only active innm_dosage can be use for created medication request!")
Перевірити контекст
Перевірити наявність "context"
у разу помилки повернути код 422 “required property context was not present“
Перевірити "context" це активна сутність (не entered-in-error) з відповідного довідника, який належить поточному пацієнту
Перевірити на наявність в колекції сутності $.data.context.identifier.type.coding[0].code з id == $.data.context.identifier.value , який належить поточному пацієнту
в разі помилки повернути код 409 "{$.data.context.identifier.type.coding[*].code} not found"
Перевірити, що сутність не в статусі "entered-in-error"
в разі помилки повернути код 409 "Entity in status "entered-in-error" can not be referenced"
...
Перевірити медичну програму
Перевірити наявність medical_program_id
у разі помилки повернути код 422 (“required property medical_program_id was not present“)
Перевірити, що medical_program_id - medical_program_id існує
в разі помилки повернути код 422 ("Medical program not found")
Перевірити контекст на наявність взаємодії в запиті
в разі помилки повернути 422 ("Context with encounter is required as medical program is present in the request")
Перевірити параметри medical_programs.medical_program_setting
перевірити, що care_plan_required == true тоді запит повинен містити based_on на план лікування і активність, що містять ту ж програму
в разі помилки повернути код 422 з повідомленням ("Care plan and activity with the same medical program should be present in request")
Якщо вказано параметр CONDITIONS_ICD10_AM_ALLOWED, то:
Перевірити що первинні діагнози зі взаємодії в контексті має код з довідника eHealth/ICD10_AM/condition_codes
Перевірити, що код діагнозу з CONDITIONS_ICD10_AM_ALLOWED
в разі помилки - повернути 422 “Encounter in context has no primary diagnosis allowed for the medical program“
Якщо вказано параметр CONDITIONS_ICPC2_ALLOWED, то:
Перевірити що первинні діагнози зі взаємодії в контексті має код з довідника eHealth/ICPC2/condition_codes
Перевірити, що код діагнозу з CONDITIONS_ICPC2_ALLOWED
в разі помилки - повернути 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
...