Risposta breve: CDS Hooks è uno standard HL7 che consente a un sistema EHR di chiamare un servizio di supporto decisionale clinico esterno in momenti definiti (hook) del flusso di lavoro di un medico: apertura della cartella di un paziente (patient-view), scelta di un ordine (order-select), firma degli ordini (order-sign), avvio o conclusione di un incontro. L'EHR invia il contesto e, facoltativamente, dati FHIR precaricati; il servizio risponde entro pochi secondi con schede: brevi informazioni, avvisi o suggerimenti e link che possono avviare un'app SMART on FHIR. Il medico rimane all'interno dell'EHR; l'intelligenza risiede all'esterno.
I tre passaggi
CDS Hooks funziona in tre passaggi. Primo, discovery: l'EHR recupera GET /cds-services e apprende a quale hook risponde ciascun servizio e quali dati FHIR desidera precaricare. Secondo, la chiamata all'hook: a un evento del flusso di lavoro, come order-sign, l'EHR invia tramite POST il contesto e le risorse precaricate al servizio. Terzo, la risposta: il servizio restituisce delle schede (cards) che l'EHR visualizza.
1. Discovery. L'EHR recupera GET https://cds.example.org/cds-services e riceve l'elenco dei servizi, ognuno con l'hook a cui risponde e le query FHIR che desidererebbe precaricare:
{
"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. La chiamata all'hook. Quando il medico firma gli ordini, l'EHR invia una POST a /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"}}}]}
}
}
Se qualcosa di cui il servizio ha bisogno non è stato precaricato, può interrogare autonomamente il server FHIR dell'EHR con il token di breve durata in fhirAuthorization.
3. La risposta. Schede e, nella versione 2.0, anche azioni di sistema:
{
"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 è limitato a 140 caratteri; indicator può essere info, warning o critical; source è obbligatorio in modo che il medico sappia chi sta parlando. suggestions può proporre modifiche concrete (creare, aggiornare o eliminare una bozza di risorsa) che il medico accetta con un clic; i links di tipo smart aprono un'app SMART in contesto. L'EHR visualizza le schede nel proprio stile; il servizio non disegna mai la propria interfaccia utente all'interno dell'EHR.
Aggiunte alla versione 2.0
CDS Hooks versione 2.0, pubblicata nel 2022, ha aggiunto un endpoint di feedback tramite il quale l'EHR segnala se una scheda è stata accettata, ignorata o sovrascritta con motivazioni; systemActions, modifiche che l'EHR applica senza chiedere, per attività di routine a basso rischio; il campo fhirAuthorization.subject; e regole più chiare di selectionBehavior (at-most-one o any) per i suggerimenti.
Pubblicata nel 2022: un endpoint di feedback (POST /cds-services/{id}/feedback) attraverso il quale l'EHR segnala se una scheda è stata accettata, ignorata (con motivazioni) o rifiutata; systemActions, modifiche che l'EHR applica senza chiedere, destinate a operazioni di routine a basso rischio come l'aggiunta di una ragione codificata; fhirAuthorization.subject; e regole più chiare su selectionBehavior (at-most-one o any) per i suggerimenti.
Cos'è un servizio e cosa non è
Un servizio CDS Hooks è un software che legge il contesto del flusso di lavoro e restituisce informazioni sotto forma di schede (cards); non è automaticamente un dispositivo medico. Se le regole sui dispositivi medici si applicano nell'UE e negli Stati Uniti dipende dal contenuto: ricordare a un medico che esiste un valore di laboratorio è un'informazione, mentre una raccomandazione di dosaggio specifica per il paziente è un supporto decisionale regolamentato.
Un servizio CDS è un software che legge il contesto e restituisce informazioni. Se sia un dispositivo medico dipende da ciò che dicono le schede: un promemoria che esiste un valore di laboratorio è un'informazione; una raccomandazione di dosaggio per un paziente specifico è un supporto decisionale che rientra nelle normative sui dispositivi medici nell'UE e negli Stati Uniti. Vedere Un'app sanitaria è un dispositivo medico?. Lo standard è neutrale; il contenuto non lo è.
Hook definiti oggi: patient-view, order-select, order-sign, order-dispatch, encounter-start, encounter-discharge, appointment-book, con un catalogo pubblico dove vengono proposti nuovi hook.
Relazione con SMART on FHIR
CDS Hooks e SMART on FHIR sono complementari. SMART on FHIR avvia un'app che prende il controllo di una parte dello schermo e interroga il server FHIR con l'autorizzazione dell'utente; CDS Hooks funziona in background e restituisce schede (cards) nell'interfaccia dell'EHR. Una scheda può contenere un link di avvio SMART quando è necessaria più di una scheda.
SMART on FHIR avvia un'app che prende il controllo di una parte dello schermo e comunica con il server FHIR con l'autorizzazione dell'utente. CDS Hooks funziona in background e restituisce schede; una scheda può contenere un link di avvio SMART quando è necessario più di una scheda. La maggior parte dei prodotti di supporto decisionale utilizza entrambi: hook per la notifica, un'app SMART per i dettagli.
Dove si inserisce Anpheros
Anpheros non offre un servizio CDS Hooks e non produce raccomandazioni cliniche. Il suo record FHIR, con il consenso del paziente, può essere il dato che il servizio di supporto decisionale dell'ospedale legge (farmaci, allergie, risultati recenti), attraverso la stessa API FHIR che utilizzerebbe un servizio hook. Vedere Piattaforma di consenso del paziente.
Pagine correlate
- Spiegazione delle sottoscrizioni FHIR
- Un'app sanitaria è un dispositivo medico? Regola 11 MDR UE
- Piattaforma di consenso del paziente
- Spiegazione della ricerca FHIR
- Backend SMART on FHIR (sviluppatori)
- Standard di interoperabilità sanitaria: la mappa
- Spiegazione di SMART App Launch
Fonti
- Specifiche HL7 CDS Hooks 2.0
- CDS Hooks: catalogo degli hook
- HL7 SMART App Launch
- HL7 FHIR R4: MedicationRequest
Domande frequenti
CDS Hooks fa parte di FHIR?
È una specifica HL7 separata che utilizza FHIR per i suoi dati: il prefetch e il contesto trasportano risorse FHIR, e l'autorizzazione riutilizza i token SMART on FHIR. È pubblicata da HL7 insieme a FHIR, non all'interno della specifica FHIR.
Quanto velocemente deve rispondere un servizio CDS?
La specifica non fissa un numero, ma gli EHR applicano timeout di alcuni secondi e scartano le risposte tardive, poiché il medico sta aspettando. Il prefetch esiste proprio per evitare che il servizio impieghi quel tempo a interrogare.
Un servizio CDS può modificare l'ordine?
Solo proponendo un suggerimento che il medico accetta, o, nella versione 2.0, tramite systemActions che l'EHR ha accettato di applicare automaticamente per quel servizio. Il servizio non scrive mai autonomamente sul server FHIR dell'EHR durante un hook.
Un'app per pazienti utilizza CDS Hooks?
No. CDS Hooks è progettato per i flussi di lavoro dell'EHR rivolti ai medici. Le app per pazienti utilizzano direttamente l'API FHIR e SMART on FHIR per l'accesso.
Provalo gratis nella sandbox
La tua prima chiamata FHIR in 5 minuti. Un'API HL7 FHIR R4 con il consenso del paziente integrato: provala nella sandbox, poi collega la tua app o il sistema della tua clinica.
Gratis · 30 pazienti sintetici · senza carta

