AnpherosAnpheros PlatformDevelopers

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Provenance des données médicales expliquée

Ce que la provenance enregistre à chaque écriture dans un dossier FHIR R4 — type d'auteur, personne, organisation, système source, versions — comment la définir avec des en-têtes, comment la lire, et comment elle étiquette les données fournies aux modèles d'IA.

La provenance est l'enregistrement de l'origine d'une donnée médicale : qui l'a écrite, au nom de quelle organisation, depuis quel système, quand, et ce qui a changé dans chaque version. Dans un enregistrement qui collecte des données de patients, d'appareils, de cliniques, de laboratoires et d'IA, la provenance est ce qui rend une valeur digne de confiance : une mesure de tension artérielle saisie à domicile et une mesurée en clinique semblent identiques sans elle. Dans Anpheros, chaque écriture sur un enregistrement HL7 FHIR R4 produit automatiquement une ressource FHIR Provenance. Cette page explique ce qu'elle contient, comment la remplir correctement et comment la lire.

Pourquoi la provenance est importante

Ce qu'Anpheros enregistre à chaque écriture

Question Où c'est enregistré Comment le définir
Quel type d'auteur ? agent.who.identifier (type d'auteur) author_type dans /v1, ou en-tête X-Anpheros-Author-Type : patient, practitioner, device, import, ai
Quelle personne ? agent.who.reference X-Anpheros-Author-Ref: Practitioner/<id>, ou X-Anpheros-Acting-As
Pour quelle organisation ? agent.onBehalfOf l'organisation du PractitionerRole, ou X-Anpheros-On-Behalf-Of: Organization/<id>
De quel système ? entity avec le rôle source X-Anpheros-Source-System: <name>
Quel enregistrement dans ce système ? id d'origine X-Anpheros-Origin-Id: <id>
Quand, et que s'est-il passé ? recorded, activity (CREATE, UPDATE, DELETE) automatique
Quelle version ? target pointe vers <Resource>/<id>/_history/<version> automatique

Si vous ne précisez pas qui est l'auteur, la plateforme enregistre import. Elle n'assume jamais patient, car une valeur attribuée à tort au patient est pire qu'une valeur honnêtement étiquetée comme importée.

Une écriture avec une provenance complète

Un cardiologue dans une clinique enregistre une fréquence cardiaque lors d'une visite, via le logiciel de la clinique :

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 que la plateforme écrit :

{"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"}}}]}

Le rôle du médecin, sa clinique, le type d'auteur et le système source sont tous présents, en FHIR standard. Le PractitionerRole doit exister dans le répertoire de votre projet et être actif. Une requête nommant le praticien de quelqu'un d'autre est refusée :

{"resourceType": "OperationOutcome", "issue": [{"severity": "error", "code": "invalid",
  "diagnostics": "Unknown or inactive Practitioner in X-Anpheros-Acting-As."}]}

La configuration du répertoire est abordée dans Comment intégrer les systèmes de clinique avec un backend FHIR.

Versions : rien n'est écrasé silencieusement

Chaque mise à jour crée une nouvelle version de la ressource et une nouvelle Provenance pour celle-ci. Après la correction du rythme cardiaque de 92 à 88 ci-dessus :

curl https://platform.anpheros.com/fhir/R4/Observation/$OBS/_history -H "Authorization: Bearer $KEY"

renvoie la version 2 (88) et la version 1 (92). La vue REST résume la Provenance de chaque version :

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}

Les suppressions sont logicielles : une ressource supprimée disparaît des recherches, mais son historique et sa Provenance subsistent.

Lecture de la provenance

# 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}

Provenance dans les contextes d'IA

L'API de contexte transporte la provenance dans chaque élément qu'elle fournit à un modèle, comme author_type et source. En forme textuelle :

- 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]

Les mesures écrites avec author_type: ai n'apparaissent jamais parmi ces faits. Elles sont listées séparément sous ai_notes et marquées comme non vérifiées, de sorte qu'un modèle ne puisse pas confondre une supposition d'un modèle précédent avec une mesure. Indiquez au modèle ce que signifient les étiquettes et demandez-lui de les citer ; Comment créer une application de santé IA avec un backend FHIR montre une invite qui le fait.

Ce que le patient voit

La provenance est également ce que le patient voit. Son dossier indique qui a ajouté chaque élément, et sa liste de connexions indique, pour chaque application, qui a accédé à quoi, par nom lorsqu'un praticien agissait ("Dr. Ana Popescu · Clinica Cardio Nord a lu vos résultats de laboratoire"). Voir Modèle de consentement et d'accès.

Règles qui rendent la provenance utile

  1. Définissez toujours le type d'auteur. Cela ne coûte qu'un champ et constitue l'étiquette la plus importante dans l'enregistrement.
  2. Nommez la personne lorsqu'une personne l'a écrit. Utilisez X-Anpheros-Acting-As pour le personnel clinique.
  3. Nommez le système source, et transmettez l'identifiant propre à la source comme identifiant d'origine lorsqu'il y en a un.
  4. Corrigez en mettant à jour, jamais en supprimant et recréant. Une mise à jour conserve le lien entre l'ancienne et la nouvelle valeur.
  5. Étiquetez la sortie de l'IA comme ai, y compris les valeurs qu'un modèle a extraites d'un document. Les valeurs dérivées d'un document peuvent également y pointer avec derived_from.

Questions fréquemment posées

Qu'est-ce que la provenance des données dans le domaine de la santé ?

L'origine et l'historique documentés d'un élément de données de santé : qui l'a créé ou modifié, pour le compte de qui, à partir de quel système et quand. Dans HL7 FHIR, il est représenté par la ressource Provenance, qui pointe vers la version exacte de la ressource qu'elle décrit.

La provenance est-elle la même chose qu'un journal d'audit ?

Non. La provenance décrit les données : qui a écrit chaque version. Un journal d'audit décrit l'accès : qui a lu ou écrit quoi, quand, sous quel consentement. Anpheros conserve les deux ; le patient voit le journal d'accès pour chaque application connectée à son dossier.

Puis-je écrire mes propres ressources de provenance ?

Anpheros en écrit une pour chaque création, mise à jour et suppression, vous n'avez donc normalement pas à le faire. Utilisez les en-têtes ci-dessus pour le préciser. Une provenance fournie par le client doit cibler des ressources d'un seul patient.

Liens connexes

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Product updates by email

New features, guides and the end of the beta. One email a month at most.

Send me occasional Anpheros Platform updates by email (new features, API changes, guides). I'll confirm by email and can unsubscribe in one click from any email. Privacy