ЕСОЗ - публічна документація

Технічний опис бізнес-процесу погашення рецепту в ЦБД ЕСОЗ

23.05.2023

 

Передумови

Передумови для процесу погашення рецепту в аптечному закладі (далі АЗ) в робочому місці фармацевта (РМФ):

  • рецепт виписаний за програмою;

  • АЗ, який має право відпускати ліки згідно чинного законодавства, зареєстровано в системі eHealth через будь-яку МІС, що надає такі можливості та яка підключена до ЦБД ЕСОЗ;

  • аптечний підрозділ, який має право відпускати ліки згідно чинного законодавства, зареєстровано через-будь яку МІС, що надає такі можливості та яка підключена до ЦБД ЕСОЗ;

  • співробітник аптеки, який має право відпускати ліки згідно чинного законодавства, зареєстрований в системі ЦБД ЕСОЗі через будь-яку МІС, що надає такі можливості та МІС підключена до ЦБД ЕСОЗ;

  • аптечний заклад має створені healthcare services з відповідною ліцензією.

Додаткові передумови до погашення рецептів за програмами реімбурсації:

  • АЗ уклав договір з НСЗУ на відповідні програми реімбурсації;

  • аптечний підрозділ наявний у активних зобов’язаннях за відповідною програмою, за якою здійснюється погашення ЕР.

Якщо МІС має намір реалізовувати функціонал РМФ без Адміністративного модуля або використовувати свій функціонал для аптечних закладів, які можуть також реєструватись в Адміністративному модулі в іншому МІС, то даний МІС повинен забезпечити реалізацію запиту оновлення даних про аптечний заклад Сreate/update legal entity.

В рамках запиту Сreate/update legal entity керівник АЗ повинен заповнити реєстраційну форму з таким же самим набором полів, як і при реєстрації АЗ в іншому МІС і підписати його своїм КЕП. МІС повинен збагатити запит параметрами, яких не вистачає в запиті згідно API системи.

На рівні ЦБД ЕСОЗ після успішного виконання запиту проводиться запис ще одного connections для АЗ, а користувачі АЗ отримують право працювати через даний МІС.

 Подробиці функціоналу описані в даній статті.

 

Загальні посилання на джерела даних  

Загальне API щодо погашення електронних рецептів представлено за посиланням:

GENERAL MIS API · Apiary

 

Процес погашення рецепту

 1 Отримання інформації щодо рецепту

Пацієнт, який бажає отримати ліки за рецептом, повинен назвати/показати співробітнику аптеки номер рецепта (request_number) у форматі:

0000-243P-1X53-EH38

або у вигляді штрих-коду для зчитування номеру рецепту сканером.

За  отриманим номером рецепта (request_number) МІС виконує запит:

Get Medication request by ID by Pharmacy User

 У відповідь МІС отримує інформацію згідно API системи щодо виписаного рецепту, в тому числі інформацію про залишок ліків до погашення та статус рецепту, які необхідно відобразити співробітнику аптеки:

  • ACTIVE- рецепт активний та може бути погашений частково або повністю;

  • COMPLETED – рецепт вже повністю погашено;

  • REJECTED – рецепт відізвано лікарем;

  • EXPIRED – сплив термін дії рецепту.

При отриманні статусу рецепта COMPLETED, REJECTED або EXPIRED, співробітник аптеки повинен проінформувати пацієнта про неможливість погасити рецепт та назвати причину згідно отриманого статусу рецепту.

У разі отримання статусу ACTIVE, слід візуалізувати отриману інформацію з рецепту  (який лікарський засіб виписано; де; ким; за якою програмою; кількість, що залишилась до погашення remaining_qty у одиницях виміру container.numerator_unit; загальну кількість, на яку виписано ЕР medication_qty у одиницях виміру container.numerator_unit тощо) та виконати наступний етап.

За тим же запитом можна отримати й унікальний ID рецепту для подальших дій з рецептом без використання  request_number.

При спробі отримати інформацію по відкликаному ЕР (статус REJECTED) за методом Get Medication request by ID by Pharmacy User МІС отримає наступну інформацію, яку необхідно візуалізувати користувачу з метою подальшої передачі пацієнту:

  • reject_reason_code (required) - відповідний код з довідника;

  • reject_reason (optional) - опційне текстове поле для введення користувачем додаткової інформації. 

У випадку, якщо рецепти знаходяться в статусі is_blocked=true, МІС у відповідь на запити щодо рецепту за його id (Get Medication request by ID by Pharmacy User) та щодо переліку рецептів (Get Medication Requests List) за кожним рецептом буде отримувати параметри:

is_blocked: true

block_reasosan: "…"

Таке блокування рецептів доступне користувачам, які є працівниками НСЗУ та (іі) працівниками аптеки в рамках фармацевтичної опіки.

Рецепти зі статусом is_blocked: true не можуть бути відпущені в АЗ. В свою чергу МІС при запиті користувачем (фармацевтом) інформації щодо ЕР повинен відобразити інформацію, що рецепт заблоковано НСЗУ з вказанням причини блокування з параметру block_reason.

2 Проведення фармопіки та відміна рецепта

2.1 Фармацевт перевіряє електронний рецепт в розрізі фармопіки.

У випадку, якщо рецепт не відповідає нормативними, медичними або іншим стандартам, фармацевт має можливість відмінити рецепт, використовуючи метод Reject Medication request by Pharmacy User, вказуючи reject_reason_code - одну з причин словника MEDICATION_REQUEST_REJECT_REASON (обовя'язково):

  1. NO_REQUEST_NEEDED - прохання пацієнта виписати новий електронний рецепт за тією ж МНН через відсутність достатньої кількості виписаного лікарського засобу в аптечному закладі

  2. NO_SMS - пацієнту не надходить СМС-повідомлення з інформацією про призначення

  3. PATIENT_REJECT - відмова пацієнта приймати виписаний лікарський засіб

  4. WRONG_DOSAGE - виписана невірна кількість доз лікарського засобу

  5. WRONG_QTY - виписана невірна лікарська форма лікарського засобу

  6. WRONG_PERIOD - виписана невірна кількість днів курсу лікування

  7. WRONG_SIGNATURE - невірно заповнена сигнатура

а також reject reason опційно.

2.2 Фармацевт підписує запит КЕП

2.3 Якщо передані дані валідні та електронний рецепт знаходиться у статусі, який допускає скасування (відповідно до статусної моделі), - система змінює статус запису на “REJECTED” - “Відмінено”

3 Отримання інформації щодо торгових назв, які можна відпустити за рецептом

Лікар виписує лікарській засіб на МНН у визначеній формі, що визначається в системі як medication_id, та у визначеній кількості  medication_qty у одиницях виміру container.numerator_unit. В окремих випадках, лікар може визначити кількість лікарського засобу в первинній упаковці (наприклад, для парантеральних лікарських форм: об'єм ампули, флакону, небули, тощо).

Для отримання можливих торгових назв для відпуску за даним рецептом слід виконати запит з доступною в АЗ для відпуску кількістю medication_qty, що дорівнює або менше  remaining_qty за рецептом:

Get Medication request by ID by Pharmacy User за унікальним ID отриманого рецепту

Qualify Medication request by ID.

Відповідь буде мати наступні параметри:

program_id: ID програми, в рамках якої було виписано рецепт;

program_name: назва програми;

participants: масив учасників програми, що можуть бути запропоновані пацієнту:

participants.medication_id: унікальний id (аналог SKU ID);    

participants.medication_name:  торговельна назва, наприклад: "Амлодипін-КВ";

participants.form: форма випуску у значеннях довідника MEDICATION FORM;

participants.manufacturer

            "name": назва виробника , наприклад: "ПАТ Київський вітамінний завод";

            "country": країна виробника, наприклад: "Україна";

participants.package_qty: кількість в упаковці у одиницях виміру container.numerator_unit;

participants.package_min_qty: мінімальна неподільна кратність в упаковці у одиницях виміру container.numerator_unit;

participants.daily_dosage: добова доза лікарського засобу, рекомендована ВООЗ у одиницях виміру container.numerator_unit.

ВАЖЛИВО!

  1. Додатково для програм реімбурсації до перелічених вище параметрів відповіді на Qualify Medication Request by ID за унікальним ID  зазначатимуться також ціни учасників медичних програм, а саме:

participants.wholesale_price: оптово-відпускна ціна за упаковку, грн;

participants.consumer_price: роздрібна ціна за упаковку, грн;

participants.reimbursement_daily_dosage: розмір відшкодування добової дози лікарського засобу, грн;

participants.reimbursement_amount: розмір відшкодування за упаковку лікарського засобу, грн;

participants.estimated_payment_amount: сума доплати за упаковку, грн.

Для програм за межами реімбурсації значення ціни не вказуються. 

2. Для лікарських засобів, для яких лікарем визначено кількість лікарського засобу в первинній упаковці додатково буде відображатися інформація щодо цієї кількості у параметрах:

container_dosage.numerator_value: зі значенням зі словника Medication Unit, наприклад PIECE, MG, ML;

container_dosage.numerator_unit: зі значенням об'єму необхідної для пацієнта первинної упаковки.

Наприклад, якщо без вказання цих значень в реєстрі присутні ампули з 1 мл, 2 мл, 5 мл, а пацієнту необхідно ЛЗ у ампулах 5 мл, то в цьому випадку параметри:

container_dosage.numerator_value: 10

container_dosage.numerator_unit: ML

В даному випадку у відповіді методу будуть присутні тільки ті торгові назви, які задовольняють умові об'єму первинної упаковки, а саме, ампули, об'ємом 5 мл.

4 Процес вибору торгової назви та кількості препарату

Процес вибору торгової назви з можливого переліку до погашення повинен проходити за рамками процесів ЦБД ЕСОЗ та може залежати від декількох додаткових факторів, наприклад:

  • наявності торгових найменувань в аптеці;

  • обрання конкретного торгового найменування пацієнтом, надання пацієнтом переваги конкретному виробнику або обрання найдешевшого/найдорожчого торгового найменування;

  • наявності необхідної кількості торгового найменування в АЗ.

Результатом даного етапу є попередня згода між співробітником аптеки та пацієнтом на відпуск конкретної торгової назви у кількості, що залежить від встановленого на програмі параметру multi_medication_dispense_allowed, який дозволяє або забороняє часткове погашення, та за наступними правилами:

  • якщо параметр multi_medication_dispense_allowed = True, то відпуск ЛЗ за рецептом можливий у будь-якій кількості, що менше або дорівнює remaining_qty;

  • якщо параметр multi_medication_dispense_allowed = False, то відпуск ЛЗ в АЗ можливий у кількості, визначеній в електронному рецепті.

Таким чином, в МІС на даному етапі повинно бути визначено:

  1. Medication ID - ID обраного торгового найменування зі списку, що було отримано на запит Qualify Medication Request by ID.

 

ВАЖЛИВО! У випадку, коли лікарем буде визначено кількість лікарського засобу в первинній упаковці, при відпуску ліків в аптеці перелік ліків повинен бути відфільтрованим за даним параметром.

 

2. Medication_qty – кількість одиниць (таблетка/ампула/контейнер тощо), що буде відпущено за рецептом. Кількість повинна бути рівною кількості, що доступна до погашення за рецептом (параметр “remaining_qty”).

 

ВАЖЛИВО! Для програм, де налаштуваннями програми заборонено часткове погашення (параметр multi_medication_dispense_allowed = False), кількість лікарського засобу, що відпускається в АЗ, обов’язково повинна дорівнювати medication_qty, зазначеній у рецепті, та бути кратною кількості одиниць лікарського засобу package_min_qty до відпуску. У деяких програмах реімбурсації package_min_qty може дорівнювати package_qty, що свідчить про неподільність упаковки в рамках даної програми для відпуску за рецептом. 

Щоб співробітник аптеки не вводив з клавіатури обрану кількість таблеток, не рахував, скільки потрібно там вказати і т.п., на стороні МІС слід зробити розкривний список торгових найменувань з кількістю наявних в АЗ упаковок до видачі, в якому значення кількості упаковок:

з однієї сторони, кратні кількості одиниць в упаковці package_min_qty кожної торгової назви у переліку найменувань, що отримано з методу Qualify,

а з другої - загальна кількість лікарського засобу для відпуску повинна дорівнювати значенню кількості лікарського засобу, яка залишилася до погашення request.remaining_qty.

3. Sell_price – ціна за 1 мінімальну неподільну одиницю  (в рамках реімбурсації – за 1 упаковку).

4. Sell_amount – загальна вартість ліків за рецептом.

У випадку, якщо рецепт відпускається за певною програмою реімбурсації, то визначеними мають бути також значення параметрів Discount_amount та Reimbursement_amount.

5. Discount_amount - загальна вартість відшкодування в рамках реїмбурсації даного рецепту. Це кількість упаковок в рецепті помножена на Reimbursement_amount, що було отримано на запит Qualify Medication Request by ID.

6. Reimbursement_amount – вартість на відшкодування однієї упаковки, що було отримано на запит Qualify Medication Request by ID.

У випадку, якщо рецепт відпускається поза межами програм реімбурсації, то параметр Discount_amount=0 та Reimbursement_amount=0.

Якщо в результаті даного етапу не має згоди між співробітником аптеки та пацієнтом, то пацієнт може звернутися в іншу аптеку з тим же номером рецепту.

Якщо в результаті даного етапу є згода, то співробітник через МІС повинен створити заявку на погашення рецепту.

 

5 Погашення електронного рецепту

Заявка на погашення рецепту може бути в наступних статусах:

У разі, якщо на програмі, за якою було виписано ЕР встановлено параметр 

skip_medication_dispense_sign = True, то створена заявка за методом Create Medication Dispense одразу переходить у статус PROCESSED і погашає даний ЕР (частково або повністю). 

У разі, якщо на програмі, за якою було виписано ЕР встановлено параметр 

skip_medication_dispense_sign = False, то створена заявка за методом Create Medication Dispense переходить у статус NEW та повинна бути підписана КЕП для успішного погашення ЕР (частково або повністю) за методом Process medication dispense.

 

5.1    Погашення електронного рецепту з КЕП

За умови якщо параметром налаштування програми, за якою виписано рецепт, накладення КЕП є обов’язковим (параметр skip_medication_dispense_sign = False), процесс погашення рецепту проходить за наступними кроками.

5.1.1 Створення заявки

Для створення заявки на погашення рецепту співробітнику необхідно запитати у пацієнта код погашення рецепту, що складається з 4 цифр та виконати запит з необхідними параметрами згідно API:

Create Medication Dispense by Pharmacy User.

При успішному виконанні запиту МІС отримає збагачену інформацією відповідь з ID запиту (Medication Dispense Response Identifier) та статусом заявки Status= NEW.

Рецепт закріплюється за поточним АЗ на 10 хвилин і не може бути погашений в іншій аптеці протягом зазначеного часу. 

При спробі виконання нового запиту Create Medication Dispense by Pharmacy User та за умови, що кількість ЛЗ  в цьому новому запиті дорівнює або менше кількості, що вказана в ЕР, та в системі існують інші незавершені запити Create Medication Dispense by Pharmacy User на кількість ЛЗ, яка в сумі з новим запитом перевищує кількість ЛЗ в ЕР, то на такий запит користувач отримує помилку: "message": "dispensed medication quantity must be equal to medication quantity in Medication Request", що означає знаходження ще незавершених запитів Create Medication Dispense by Pharmacy User і користувача необхідно повернути до завершення виконання погашення незавершених запитів. 

Строк життя незавершених запитів Create Medication Dispense by Pharmacy User  - 10 хвилин, та у разі, якщо даний запит не буде завершений, наприклад, якщо пацієнт відмовився на даному етапі від ліків, то  заявка на погашення перейде у Status = EXPIRED, а рецепт буде автоматично розблоковано.

Також фармацевт може здійснити відхилення заявки на погашення рецепту вручну за допомогою запиту не чекаючи 10 хвилин:

Reject Medication Dispense by Pharmacy User.

При цьому рецепт буде переведено у Status=ACTIVE, а заявка на погашення  - у Status=Rejected.

 

5.1.2 Оформлення оплати

Оформлення оплати є внутрішніми процесами АЗ.

В результаті даного етапу в МІС повинні бути сформовані 2 параметри:

  1. payment_amount – сума в чеку, яку заплатив пацієнт;

  2. payment_id – номер фіскального чеку (опціонально).

 

5.1.3 Завершення погашення рецепту

Для завершення погашення рецепту МІС повинна:

  1. Мати сформований json, який можна:

 2. Збагатити отриманий json параметрами:

  • payment_id – номер фіскального чеку (опціонально);

  • payment_amount – сума в чеку, яку заплатив пацієнт.

3. Підписати отриманий json за допомогою КЕП співробітника аптечного закладу та перекодувати підписаний json у base64 формат.

4. Виконати запит:

Process medication dispense by Pharmacy User.

5. У разі успішного виконання запиту заявка переходить у статус: Status= PROCESSED, рецепт переходить у статус: Status=COMPLETED та в системі ЦБД ЕСОЗ відбувається запис про рецепт за даним АЗ.

 

 5.2    Погашення електронного рецепту без КЕП

4.2.1 Оформлення оплати

Оформлення оплати є внутрішніми процесами АЗ.

В результаті даного етапу в МІС повинні бути сформовані 2 параметри:

  • payment_amount – сума в чеку, яку заплатив пацієнт (обов'язково для рецептів за програмами за власні кошти пацієнта);

  • payment_id – номер фіскального чеку (опціонально).

 

5.2.2. Створення заявки на погашення з одночасним погашенням рецепту

Для створення заявки на погашення рецепту співробітнику необхідно запитати у пацієнта код погашення рецепту, що складається з 4 цифр та виконати запит з необхідними параметрами згідно API, включаючи сформовані параметри payment_amount (обов'язково для рецептів за програмами за власні кошти пацієнта) та  payment_id (опційно) на етапі проведення оплати:

Create Medication Dispense by Pharmacy User.

При успішному виконанні запиту МІС отримає збагачену інформацією відповідь з ID запиту (Medication Dispense Response Identifier) та статусом заявки Status= PROCCESSED.

Рецепт є погашеним даним АЗ. 

6 Відпуск ліків пацієнту

Виконати відпуск ліків пацієнту за процедурою в аптечному закладі.

 

7 Отримання переліку заявок на погашення рецептів та інформації про відпущені ліки

Для зручності користування  можна отримати перелік заявок на погашення рецептів про відпущені рецепт доступне з використанням наступних методів за запитами:

  1. Get Medication Dispenses by search params by Pharmacy User

(Старі методи eHealth API · Apiary , Will be DEPRECATED_Get Medication Dispensesarchived ).

2. Get Medication dispense details by Pharmacy User.

 

  1. Get Medication Dispenses List Get Medication Dispenses by search params by Pharmacy User

Запит можна налаштовувати в залежності від потреб за фільтром з одним або кількома параметрами:

Medication dispense ID – ID заявки на погашення рецепту;

Medication request ID – ID заявки на створення рецепту;

Legal entity ID – ID аптечного закладу;

Division ID – ID підрозділу аптечного закладу;

Status   - Статус заявки на погашення;

dispensed_from – Дата, з якої проводилось погашення;

dispensed_to – Дата, до якої проводиться погашення.

 

2. Get Medication dispense details by Pharmacy User

Для виконання запиту Get Medication dispense details by Pharmacy User необхідно знати ID погашення рецепту. На запит у відповіді буде інформація щодо даного погашеного рецепту.

8 Блокування рецептів

В рамках фармацевтичної опіки працівник аптеки має можливість заблокувати рецепт вказавши причину такого блокування.

При цьому, перед тим, як дозволити фармацевту заблокувати рецепт, МІС повинна попередити користувача наступним повідомленням

Ви намагаєтеся заблокувати рецепт в рамках фармацевтичної опіки. Після завершення блокування, відпуск ліків за цим рецептом буде забороненим. Підтвердіть свою дію.

Підтверджую

Для блокування рецептів працівник аптеки використовує метод

Block Medication Request by Pharmacy User

8 Інші допоміжні запити

Для реалізації свого унікального інтерфейсу, додаткових можливостей для погашення рецептів, МІС може скористатися всіма іншими доступними запитами, які не були описані або описані часткового в даному документі, але присутні в Апіарі: http://ehealthmisapi1.docs.apiary.io та в базі знань: E-Health

Електронний рецепт (етап 2-3_наркотики, програми)archived.

 Наприклад, для отримання звітів можна використовувати запит:

Get Reimbursement report.

 

ЕСОЗ - публічна документація