Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Provenienza dati sanitari spiegata
Cosa registra la provenienza su ogni scrittura in un fascicolo FHIR R4 — tipo autore, persona, organizzazione, sistema sorgente, versioni — come impostarla con gli header, come leggerla e come etichetta i dati forniti ai modelli AI.
La provenienza è il registro di dove proviene un dato medico: chi lo ha scritto, per conto di quale organizzazione, da quale sistema, quando e cosa è cambiato in ogni versione. In un record che raccoglie dati da pazienti, dispositivi, cliniche, laboratori e AI, la provenienza è ciò che rende un valore attendibile: una lettura della pressione sanguigna digitata a casa e una misurata in clinica appaiono identiche senza di essa. In Anpheros ogni scrittura su un record HL7 FHIR R4 produce automaticamente una risorsa FHIR Provenance. Questa pagina spiega cosa contiene, come compilarla correttamente e come leggerla.
Perché la provenienza è importante
- Fiducia clinica. Un medico valuta un risultato di laboratorio in modo diverso da un valore inserito dal paziente o da un numero estratto da un'IA da una foto.
- Sicurezza dell'IA. Un modello a cui viene fornito un record deve sapere quali elementi sono fatti e quali sono note scritte da un altro modello. Senza etichette li tratta allo stesso modo.
- Correzioni e contestazioni. Quando un valore cambia, tutti devono sapere quale era prima, chi lo ha cambiato e perché.
- Responsabilità. Ai sensi del GDPR e dell'European Health Data Space, un'organizzazione deve essere in grado di dimostrare cosa ha fatto con i dati sanitari di una persona.
- Condivisione. Quando un paziente consente a una seconda clinica di leggere il proprio record, tale clinica deve sapere quali dati ha scritto la prima clinica.
Cosa registra Anpheros ad ogni scrittura
| Domanda | Dove viene registrato | Come lo imposti |
|---|---|---|
| Che tipo di autore? | agent.who.identifier (tipo di autore) |
author_type in /v1, o intestazione X-Anpheros-Author-Type: patient, practitioner, device, import, ai |
| Quale persona? | agent.who.reference |
X-Anpheros-Author-Ref: Practitioner/<id>, o X-Anpheros-Acting-As |
| Per quale organizzazione? | agent.onBehalfOf |
l'organizzazione del PractitionerRole, o X-Anpheros-On-Behalf-Of: Organization/<id> |
| Da quale sistema? | entity con ruolo source |
X-Anpheros-Source-System: <name> |
| Quale record in quel sistema? | id origine | X-Anpheros-Origin-Id: <id> |
| Quando e cosa è successo? | recorded, activity (CREATE, UPDATE, DELETE) |
automatico |
| Quale versione? | target punta a <Resource>/<id>/_history/<version> |
automatico |
Se non specifichi chi è l'autore, la piattaforma registra import. Non assume mai patient, perché un valore attribuito erroneamente al paziente è peggio di uno etichettato onestamente come importato.
Scrittura con provenienza completa
Un cardiologo in una clinica registra una frequenza cardiaca durante una visita, tramite il software della clinica:
curl -X POST https://platform.anpheros.com/fhir/R4/Observation -H "Authorization: Bearer $KEY" \
-H "Content-Type: application/fhir+json" \
-H "X-Anpheros-Author-Type: practitioner" \
-H "X-Anpheros-Acting-As: PractitionerRole/$ROLE" \
-H "X-Anpheros-Source-System: ccn-emr" \
-d '{ "resourceType": "Observation", "status": "final", "code": {"coding": [{"system": "http://loinc.org", "code": "8867-4"}]}, … }'
La Provenance che la piattaforma scrive:
{"resourceType": "Provenance",
"target": [{"reference": "Observation/8660eb7c-…/_history/1"}],
"recorded": "2026-10-12T20:41:47.469000Z",
"activity": {"coding": [{"system": "http://terminology.hl7.org/CodeSystem/v3-DataOperation", "code": "CREATE"}]},
"agent": [{"type": {"coding": [{"system": "http://terminology.hl7.org/CodeSystem/provenance-participant-type", "code": "author"}]},
"who": {"reference": "PractitionerRole/e6d8c227-…",
"identifier": {"system": "https://anpheros.com/fhir/CodeSystem/author-type", "value": "practitioner"}},
"onBehalfOf": {"reference": "Organization/c3a56a4b-…", "display": "Clinica Cardio Nord"}}],
"entity": [{"role": "source", "what": {"identifier": {"system": "ccn-emr"}}}]}
Il ruolo del medico, la sua clinica, il tipo di autore e il sistema sorgente sono tutti presenti, in FHIR standard. Il PractitionerRole deve esistere nella directory del tuo progetto ed essere attivo. Una richiesta che nomina il practitioner di qualcun altro viene rifiutata:
{"resourceType": "OperationOutcome", "issue": [{"severity": "error", "code": "invalid",
"diagnostics": "Unknown or inactive Practitioner in X-Anpheros-Acting-As."}]}
La configurazione della directory è trattata in Come integrare i sistemi clinici con un backend FHIR.
Versioni: nulla viene sovrascritto silenziosamente
Ogni aggiornamento crea una nuova versione della risorsa e una nuova Provenance per essa. Dopo che la frequenza cardiaca sopra indicata viene corretta da 92 a 88:
curl https://platform.anpheros.com/fhir/R4/Observation/$OBS/_history -H "Authorization: Bearer $KEY"
restituisce la versione 2 (88) e la versione 1 (92). La vista REST riassume la Provenance di ogni versione:
curl https://platform.anpheros.com/v1/patients/$PID/provenance/Observation/$OBS -H "Authorization: Bearer $KEY"
{"data": [
{"version": 1, "activity": "CREATE", "recorded": "2026-10-12T20:41:47.469000Z", "author_type": "practitioner", "author": "PractitionerRole/e6d8c227-…", "source_system": "ccn-emr", "fhir": "Provenance/6ed91529-…"},
{"version": 2, "activity": "UPDATE", "recorded": "2026-10-12T20:41:47.500000Z", "author_type": "practitioner", "fhir": "Provenance/3fbf270f-…"}],
"total": 2}
Le eliminazioni sono "soft": una risorsa eliminata scompare dalle ricerche, ma la sua cronologia e la sua Provenance rimangono.
Lettura della provenienza
# who wrote this resource (all versions)
GET /fhir/R4/Provenance?target=Observation/{id}
# everything a practitioner recorded
GET /fhir/R4/Provenance?agent=PractitionerRole/{id}
# the same, summarised, per resource
GET /v1/patients/{pid}/provenance/Observation/{id}
Provenienza in contesti AI
La API di contesto porta la provenienza in ogni elemento che fornisce a un modello, come author_type e source. In forma testuale:
- Type 2 diabetes mellitus (E11), active, onset 2024-10-15 [import/anpheros-sandbox]
- Metformin 1000 mg 1 tablet twice daily with meals, active [patient/anpheros-sandbox]
- Glucose [Mass/volume] in Blood: 2026-09-16: 140.0 mg/dL [device/anpheros-sandbox]
Le misurazioni scritte con author_type: ai non compaiono mai tra questi fatti. Sono elencate separatamente sotto ai_notes e contrassegnate come non verificate, in modo che un modello non possa scambiare l'ipotesi di un modello precedente per una misurazione. Indicare al modello cosa significano le etichette e chiedere di citarle; Come creare un'app sanitaria AI con un backend FHIR mostra un prompt che lo fa.
Cosa vede il paziente
La Provenance è anche ciò che vede il paziente. Il suo record mostra chi ha aggiunto ogni elemento e il suo elenco di connessioni mostra, per ogni applicazione, chi ha avuto accesso a cosa, per nome quando un professionista stava agendo ("Dr. Ana Popescu · Clinica Cardio Nord ha letto i tuoi risultati di laboratorio"). Vedi Modello di consenso e accesso.
Regole che rendono utile la provenienza
- Imposta sempre il tipo di autore. Costa un campo ed è l'etichetta più importante nel record.
- Indica il nome della persona quando è stata scritta da una persona. Usa
X-Anpheros-Acting-Asper il personale clinico. - Indica il nome del sistema sorgente e passa l'ID del sistema sorgente come ID di origine quando presente.
- Correggi aggiornando, mai eliminando e ricreando. Un aggiornamento mantiene il collegamento tra il valore vecchio e quello nuovo.
- Etichetta l'output dell'IA come
ai, inclusi i valori estratti da un modello da un documento. I valori derivati da un documento possono anche puntare ad esso conderived_from.
Domande frequenti
Cos'è la provenienza dei dati in ambito sanitario?
L'origine e la storia documentata di un dato sanitario: chi l'ha creato o modificato, per conto di chi, da quale sistema e quando. In HL7 FHIR è rappresentato dalla risorsa Provenance, che punta alla versione esatta della risorsa che descrive.
La provenienza è la stessa di un log di audit?
No. La provenienza descrive i dati: chi ha scritto ogni versione. Un log di audit descrive l'accesso: chi ha letto o scritto cosa, quando, con quale consenso. Anpheros conserva entrambi; il paziente vede il log di accesso per ogni applicazione collegata al proprio record.
Posso scrivere le mie risorse di Provenienza?
Anpheros ne scrive una per ogni creazione, aggiornamento ed eliminazione, quindi normalmente non è necessario. Utilizzare gli header sopra per renderla precisa. Una Provenienza fornita dal client deve essere mirata a risorse di un singolo paziente.
Correlati
- Modello di consenso e accesso
- Come integrare sistemi clinici con un backend FHIR
- Come normalizzare i dati medici
- Interoperabilità dei dati sanitari
- Sicurezza, privacy e residenza dei dati
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card