Răspuns scurt: CDS Hooks este un standard HL7 care permite unui sistem EHR (Electronic Health Record) să apeleze un serviciu extern de suport decizional clinic în momente definite (hook-uri) din fluxul de lucru al unui clinician: deschiderea fișei unui pacient (patient-view), alegerea unei comenzi (order-select), semnarea comenzilor (order-sign), începerea sau încheierea unei vizite. Sistemul EHR trimite contextul și, opțional, date FHIR pre-încărcate; serviciul răspunde în câteva secunde cu carduri: scurte informații, avertismente sau sugestii și linkuri care pot lansa o aplicație SMART on FHIR. Clinicianul rămâne în EHR; inteligența locuiește în afara acestuia.
Cei trei pași
CDS Hooks funcționează în trei pași. Primul, descoperirea: sistemul EHR (Electronic Health Record) preia GET /cds-services și află la ce hook răspunde fiecare serviciu și ce date FHIR dorește să fie pre-încărcate. Al doilea, apelul hook: la un eveniment de flux de lucru, cum ar fi ordonarea-semnare, sistemul EHR trimite contextul și resursele pre-încărcate către serviciu. Al treilea, răspunsul: serviciul returnează carduri pe care sistemul EHR le afișează.
1. Descoperire. Sistemul EHR preia GET https://cds.example.org/cds-services și primește lista serviciilor, fiecare cu hook-ul la care răspunde și interogările FHIR pe care ar dori să le pre-încarce:
{
"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. Apelul hook-ului. Când clinicianul semnează comenzile, sistemul EHR face un POST către /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"}}}]}
}
}
Dacă ceva de ce are nevoie serviciul nu a fost pre-încărcat, acesta poate interoga serverul FHIR al EHR-ului cu token-ul de scurtă durată din fhirAuthorization.
3. Răspunsul. Carduri și, în versiunea 2.0, acțiuni de sistem:
{
"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 este limitat la 140 de caractere; indicator este info, warning sau critical; source este obligatoriu, astfel încât clinicianul să știe cine vorbește. suggestions pot propune modificări concrete (creare, actualizare sau ștergere a unui draft de resursă) pe care clinicianul le acceptă printr-un singur clic; linkurile de tip smart deschid o aplicație SMART în context. Sistemul EHR redă cardurile în propriul stil; serviciul nu desenează niciodată propria interfață grafică în interiorul EHR-ului.
Adăugări la versiunea 2.0
CDS Hooks versiunea 2.0, publicată în 2022, a adăugat un punct final de feedback prin care sistemul EHR raportează dacă un card a fost acceptat, suprascris cu motive sau ignorat; systemActions, modificări pe care sistemul EHR le aplică fără a cere permisiunea, pentru sarcini de întreținere cu risc scăzut; câmpul fhirAuthorization.subject; și reguli mai clare de selectionBehavior (at-most-one sau any) pentru sugestii.
Publicată în 2022: un punct final de feedback (POST /cds-services/{id}/feedback) prin care EHR-ul raportează dacă un card a fost acceptat, suprascris (cu motive) sau ignorat; systemActions, modificări pe care EHR-ul le aplică fără a cere permisiunea, destinate operațiunilor de întreținere cu risc scăzut, cum ar fi adăugarea unui motiv codificat; fhirAuthorization.subject; și reguli mai clare privind selectionBehavior (at-most-one sau any) pentru sugestii.
Ce este și ce nu este un serviciu
Un serviciu CDS Hooks este un software care citește contextul fluxului de lucru și returnează informații sub formă de carduri; nu este automat un dispozitiv medical. Dacă regulile pentru dispozitive medicale se aplică în UE și SUA depinde de conținut: amintirea unui clinician că o valoare de laborator există este informație, în timp ce o recomandare de dozaj specifică pacientului este un suport decizional reglementat.
Un serviciu CDS este un software care citește contextul și returnează informații. Dacă este un dispozitiv medical depinde de ceea ce spun cardurile: un memento că o valoare de laborator există este o informație; o recomandare de dozaj pentru un pacient specific este un suport decizional care intră sub incidența regulilor pentru dispozitive medicale în UE și SUA. Vezi Este o aplicație de sănătate un dispozitiv medical?. Standardul este neutru; conținutul nu este.
Hook-uri definite astăzi: patient-view, order-select, order-sign, order-dispatch, encounter-start, encounter-discharge, appointment-book, cu un catalog public unde sunt propuse noi hook-uri.
Relația cu SMART on FHIR
CDS Hooks și SMART on FHIR sunt complementare. SMART on FHIR lansează o aplicație care preia o parte din ecran și interoghează serverul FHIR cu autorizația utilizatorului; CDS Hooks rulează în fundal și returnează carduri în interfața proprie a sistemului EHR. Un card poate conține un link de lansare SMART atunci când este necesar mai mult decât un card.
SMART on FHIR lansează o aplicație care preia o parte din ecran și comunică cu serverul FHIR cu autorizarea utilizatorului. CDS Hooks rulează în fundal și returnează carduri; un card poate conține un link de lansare SMART atunci când este necesar mai mult decât un card. Majoritatea produselor de suport decizional folosesc ambele: hook-uri pentru notificarea rapidă, o aplicație SMART pentru detalii.
Unde se încadrează Anpheros
Anpheros nu oferă un serviciu CDS Hooks și nu produce recomandări clinice. Fișa sa FHIR, cu consimțământul pacientului, poate fi datele pe care serviciul de suport decizional al unui spital le citește (medicamente, alergii, rezultate recente), prin același API FHIR pe care l-ar folosi un serviciu hook. Vezi Platforma de consimțământ al pacientului.
Pagini conexe
- Subscripțiile FHIR explicate
- Este o aplicație de sănătate un dispozitiv medical? Regulamentul UE MDR 11
- Platforma de consimțământ al pacientului
- Căutarea FHIR explicată
- Backend SMART on FHIR (dezvoltatori)
- Standarde de interoperabilitate în sănătate: harta
- SMART App Launch explicat
Surse
- Specificația HL7 CDS Hooks 2.0
- CDS Hooks: catalogul hook-urilor
- HL7 SMART App Launch
- HL7 FHIR R4: MedicationRequest
Întrebări frecvente
Este CDS Hooks parte din FHIR?
Este o specificație HL7 separată care folosește FHIR pentru datele sale: prefetch și contextul transportă resurse FHIR, iar autorizarea reutilizează token-uri SMART on FHIR. Este publicată de HL7 alături de FHIR, nu în interiorul specificației FHIR.
Cât de repede trebuie să răspundă un serviciu CDS?
Specificația nu stabilește un număr, dar sistemele EHR aplică timeout-uri de câteva secunde și resping răspunsurile întârziate, deoarece clinicianul așteaptă. Prefetch există tocmai pentru ca serviciul să nu petreacă acel timp interogând.
Poate un serviciu CDS să modifice comanda?
Doar prin propunerea unei sugestii pe care clinicianul o acceptă sau, în versiunea 2.0, prin systemActions pe care EHR-ul a fost de acord să le aplice automat pentru acel serviciu. Serviciul nu scrie niciodată în serverul FHIR al EHR-ului pe cont propriu în timpul unui hook.
Folosește o aplicație pentru pacienți CDS Hooks?
Nu. CDS Hooks este conceput pentru fluxurile de lucru ale EHR-ului orientate către clinician. Aplicațiile pentru pacienți folosesc API-ul FHIR direct și SMART on FHIR pentru autentificare.
Încearcă gratuit în sandbox
Primul apel FHIR în 5 minute. Un API HL7 FHIR R4 cu consimțământul pacientului integrat: încearcă-l în sandbox, apoi conectează-ți propria aplicație sau sistemul clinicii.
Gratuit · 30 de pacienți sintetici · fără card

