Коротка відповідь: CDS Hooks — це стандарт HL7, який дозволяє медичній інформаційній системі (EHR) викликати зовнішню службу підтримки клінічних рішень у визначені моменти (хуки) робочого процесу лікаря: відкриття картки пацієнта (patient-view), вибір призначення (order-select), підписання призначень (order-sign), початок або завершення прийому. EHR надсилає контекст і, за бажанням, попередньо завантажені дані FHIR; служба відповідає за кілька секунд картками: короткими повідомленнями, попередженнями чи пропозиціями, а також посиланнями, які можуть запустити SMART on FHIR додаток. Лікар залишається в EHR; інтелект знаходиться поза нею.
Три кроки
CDS Hooks працює у три кроки. Перший – виявлення: медична інформаційна система (МІС) отримує GET /cds-services та дізнається, на який хук відповідає кожна служба та які FHIR-дані їй потрібні попередньо завантажити. Другий – виклик хука: під час події робочого процесу, як-от підписання замовлення, МІС надсилає POST-запит із контекстом та попередньо завантаженими ресурсами до служби. Третій – відповідь: служба повертає картки, які відображає МІС.
1. Виявлення. EHR отримує GET https://cds.example.org/cds-services і список служб, кожна з яких вказує хук, на який вона реагує, та FHIR-запити, які вона хотіла б попередньо завантажити:
{
"services": [{
"id": "renal-dosing",
"hook": "order-sign",
"title": "Renal dosing check",
"description": "Flags drug orders whose dose needs review against the latest eGFR.",
"prefetch": {
"patient": "Patient/{{context.patientId}}",
"egfr": "Observation?patient={{context.patientId}}&code=http://loinc.org|98979-8&_sort=-date&_count=1"
}
}]
}
2. Виклик хука. Коли лікар підписує призначення, EHR надсилає POST-запит на /cds-services/renal-dosing:
{
"hookInstance": "d1577c69-dfbe-44ad-ba6d-3e05e953b2ea",
"hook": "order-sign",
"fhirServer": "https://ehr.example.org/fhir",
"fhirAuthorization": {"access_token": "…", "token_type": "Bearer", "expires_in": 300, "scope": "patient/*.read", "subject": "renal-dosing"},
"context": {
"userId": "Practitioner/42",
"patientId": "123",
"draftOrders": {"resourceType": "Bundle", "entry": [{"resource": {"resourceType": "MedicationRequest", "id": "draft-1", "status": "draft"}}]}
},
"prefetch": {
"patient": {"resourceType": "Patient", "id": "123"},
"egfr": {"resourceType": "Bundle", "type": "searchset", "entry": [{"resource": {"resourceType": "Observation", "id": "obs-9", "status": "final", "code": {"coding": [{"system": "http://loinc.org", "code": "98979-8"}]}, "valueQuantity": {"value": 38, "unit": "mL/min/1.73m2"}}}]}
}
}
Якщо чогось, що потрібне службі, не було попередньо завантажено, вона може самостійно запитати FHIR-сервер EHR за допомогою короткострокового токена в fhirAuthorization.
3. Відповідь. Картки, а у версії 2.0 також системні дії:
{
"cards": [{
"uuid": "9a1d2f3e-…",
"summary": "eGFR 38: dose review suggested",
"indicator": "warning",
"detail": "The most recent eGFR (38 mL/min/1.73m², 2026-03-10) is below the threshold in the local renal dosing guidance for this drug.",
"source": {"label": "Hospital renal dosing guidance", "url": "https://intranet.example.org/renal"},
"suggestions": [{"label": "Open renal dosing table", "uuid": "…", "actions": []}],
"links": [{"label": "Dosing calculator", "url": "https://apps.example.org/renal/launch", "type": "smart"}]
}]
}
summary обмежений 140 символами; indicator має значення info, warning або critical; source є обов'язковим, щоб лікар знав, хто говорить. suggestions можуть пропонувати конкретні зміни (створити, оновити або видалити чернетку ресурсу), які лікар приймає одним кліком; links типу smart відкривають SMART-додаток у контексті. EHR відображає картки у власному стилі; служба ніколи не малює власний інтерфейс користувача всередині EHR.
Доповнення версії 2.0
CDS Hooks версії 2.0, опублікованої у 2022 році, було додано кінцеву точку зворотного зв'язку, через яку МІС повідомляє, чи була картка прийнята, перекрита з причинами або проігнорована; systemActions – зміни, які МІС застосовує без запиту для низькоризикового обслуговування; поле fhirAuthorization.subject; та чіткіші правила selectionBehavior (at-most-one або any) для пропозицій.
Опубліковано у 2022 році: кінцева точка зворотного зв'язку (POST /cds-services/{id}/feedback), через яку EHR повідомляє, чи була картка прийнята, проігнорована (з причинами) або відхилена; systemActions, зміни, які EHR застосовує без запиту, призначені для низькоризикових завдань, таких як додавання кодованої причини; fhirAuthorization.subject; та чіткіші правила щодо selectionBehavior (at-most-one або any) для пропозицій.
Що таке служба та чим вона не є
Служба CDS Hooks – це програмне забезпечення, яке читає контекст робочого процесу та повертає інформацію у вигляді карток; це не обов'язково медичний пристрій. Чи застосовуються правила щодо медичних пристроїв в ЄС та США, залежить від вмісту: нагадування лікарю про існування лабораторного показника є інформацією, тоді як рекомендація дози для конкретного пацієнта є регульованою підтримкою прийняття рішень.
Служба CDS — це програмне забезпечення, яке читає контекст і повертає інформацію. Чи є вона медичним виробом, залежить від того, що містять картки: нагадування про наявність лабораторного показника — це інформація; рекомендація дози для конкретного пацієнта — це підтримка прийняття рішень, яка підпадає під правила щодо медичних виробів в ЄС та США. Див. Чи є медичний додаток медичним виробом?. Стандарт є нейтральним; вміст — ні.
Визначені сьогодні хуки: patient-view, order-select, order-sign, order-dispatch, encounter-start, encounter-discharge, appointment-book, з публічним каталогом, де пропонуються нові хуки.
Зв'язок із SMART on FHIR
CDS Hooks та SMART on FHIR доповнюють один одного. SMART on FHIR запускає додаток, який бере на себе частину екрана та запитує FHIR-сервер з дозволу користувача; CDS Hooks працює у фоновому режимі та повертає картки в інтерфейс самої МІС. Картка може містити посилання на запуск SMART, коли потрібно більше, ніж просто картка.
SMART on FHIR запускає додаток, який бере на себе частину екрана та взаємодіє з FHIR-сервером за авторизацією користувача. CDS Hooks працює у фоновому режимі та повертає картки; картка може містити посилання на запуск SMART, коли потрібне більше, ніж просто картка. Більшість продуктів підтримки рішень використовують обидва: хуки для спонукання, SMART-додаток для деталей.
Де Anpheros
Anpheros не пропонує службу CDS Hooks і не надає клінічних рекомендацій. Його FHIR-запис, за згодою пацієнта, може бути даними, які читає власна служба підтримки рішень лікарні (ліки, алергії, останні результати) через той самий FHIR API, який використовує служба хуків. Див. Платформа згоди пацієнта.
Пов'язані сторінки
- Пояснення FHIR Subscriptions
- Чи є медичний додаток медичним виробом? EU MDR Rule 11
- Платформа згоди пацієнта
- Пояснення пошуку FHIR
- SMART on FHIR backend (для розробників)
- Стандарти медичної інтероперабельності: карта
- Пояснення SMART App Launch
Джерела
- Специфікація HL7 CDS Hooks 2.0
- CDS Hooks: каталог хуків
- HL7 SMART App Launch
- HL7 FHIR R4: MedicationRequest
Поширені запитання
Чи є CDS Hooks частиною FHIR?
Це окрема специфікація HL7, яка використовує FHIR для своїх даних: попереднє завантаження та контекст містять ресурси FHIR, а авторизація повторно використовує токени SMART on FHIR. Вона опублікована HL7 поряд з FHIR, а не всередині специфікації FHIR.
Наскільки швидко має відповідати служба CDS?
Специфікація не встановлює конкретного числа, але EHR застосовують тайм-аути в кілька секунд і відкидають пізні відповіді, оскільки лікар чекає. Попереднє завантаження існує саме для того, щоб служба не витрачала цей час на запити.
Чи може служба CDS змінити призначення?
Тільки пропонуючи пропозицію, яку приймає лікар, або, у версії 2.0, через systemActions, які EHR погодилася застосовувати автоматично для цієї служби. Служба ніколи не записує дані на FHIR-сервер EHR самостійно під час хука.
Чи використовує додаток для пацієнта CDS Hooks?
Ні. CDS Hooks розроблений для робочих процесів EHR, орієнтованих на лікаря. Додатки для пацієнтів використовують FHIR API безпосередньо та SMART on FHIR для входу.
Спробуйте безкоштовно в пісочниці
Перший запит FHIR за 5 хвилин. API стандарту HL7 FHIR R4 з вбудованою згодою пацієнта: спробуйте в пісочниці, а потім підключіть власну програму чи клінічну систему.
Безкоштовно · 30 синтетичних пацієнтів · без картки

