ediverse Explorer la plateforme

À la une PEPPOL BIS Billing 3.0 L’obligation européenne d’e-invoicing arrive : France sept 2026, Belgique janv 2026, Allemagne 2025.

FHIR R5 — Fast Healthcare Interoperability Resources

La couche REST/JSON moderne de HL7. Conçue en 2012 pour rendre la santé aussi accessible que les API web : ressources atomiques, schémas ouverts, profils nationaux.

Qu'est-ce que FHIR ?

FHIR — prononcé « fire » — est un standard d'interopérabilité publié par HL7 International qui remplace la philosophie messagerie de HL7 v2 et l'approche document de HL7 CDA par une philosophie ressources : chaque concept du domaine santé (Patient, Observation, Encounter, MedicationRequest…) est représenté par une structure typée, sérialisable en JSON ou XML, et exposée via une API REST standardisée.

L'objectif : rendre l'écriture d'un client santé aussi simple que celle d'un client GitHub ou Stripe. Un développeur qui connaît HTTP, JSON et OAuth 2 peut consommer un serveur FHIR sans formation HL7. Cette accessibilité explique l'adoption rapide : en 2026, Epic, Cerner / Oracle Health, Athenahealth, Allscripts, Apple Health, Google Cloud Healthcare API, AWS HealthLake et la quasi-totalité des EHR américains exposent une couche FHIR R4 ou R5.

FHIR cohabite avec HL7 v2 plutôt qu'il ne le remplace : les flux temps réel (ADT, ORU) continuent souvent en v2, tandis que les API patient, les portails interopérables et les apps mobiles consomment du FHIR.

Anatomie d'une ressource FHIR

Une ressource FHIR est un objet JSON (ou XML) avec un type explicite, un identifiant technique id, des champs typés selon la StructureDefinition publiée par HL7, et — optionnellement — des extensions. Voici l'exemple canonique Patient publié par HL7 sur la page de référence :

json patient-example.json
{
  "resourceType": "Patient",
  "id": "example",
  "identifier": [{
    "system": "urn:oid:1.2.36.146.595.217.0.1",
    "value": "12345"
  }],
  "active": true,
  "name": [{
    "use": "official",
    "family": "Chalmers",
    "given": ["Peter", "James"]
  }],
  "telecom": [{
    "system": "phone",
    "value": "(03) 5555 6473",
    "use": "work"
  }],
  "gender": "male",
  "birthDate": "1974-12-25",
  "address": [{
    "use": "home",
    "line": ["534 Erewhon St"],
    "city": "PleasantVille",
    "state": "Vic",
    "postalCode": "3999"
  }]
}

Trois principes structurants :

  • resourceType en première position — c'est le discriminateur qui permet à un client générique de dispatcher correctement.
  • Types de données — chaque champ obéit à un type FHIR (string, boolean, code, HumanName, Address, Identifier, Reference, Coding, CodeableConcept, Period…). Les codages sémantiques (LOINC, SNOMED CT, ICD-10, RxNorm) sont portés via Coding / CodeableConcept.
  • Extensions — pour les besoins locaux, FHIR permet d'ajouter des extension[] typées par URL. Les profils nationaux (US Core, FR Core, NL Core…) définissent leurs propres extensions.

Versions

HL7 International publie FHIR depuis 2012. Chaque release majeure remplace la précédente après une période d'overlap, et les serveurs production peuvent exposer plusieurs versions simultanément.

ReleaseDateStatutNotes
DSTU 1Février 2014HistoriquePremière Draft Standard for Trial Use, ~25 ressources publiées.
DSTU 2Octobre 2015HistoriqueStabilisation des concepts (Bundle, Search, Capability).
STU 3Avril 2017Historique~115 ressources, premier vrai usage en production.
R4Octobre 2019Encore très déployéPremière Normative Release sur le tronc commun. Référence US Core, IPS, EHDS.
R4BMai 2022StableErrata + ressources passées en Trial Use pour combler R4.
R526 mars 2023Courante~157 ressources, nouvelles structures (Citation, EvidenceReport), Subscription R5 redessiné.
R6 (CI build)En coursPréparationBranche de travail HL7, publication non datée.

Familles de ressources

FHIR R5 publie environ 157 ressources, regroupées par grandes thématiques cliniques et techniques. Les plus importantes :

FamilleRessources clésDescription
Identité & administrationPatient, Practitioner, Organization, Location, Encounter, EpisodeOfCarePersonnes, structures, séjours et épisodes de soin.
CliniqueObservation, Condition, Procedure, AllergyIntolerance, FamilyMemberHistoryMesures, diagnostics, actes, antécédents.
MédicamentsMedication, MedicationRequest, MedicationAdministration, MedicationDispenseCycle complet de la prescription à l'administration.
DiagnosticDiagnosticReport, ServiceRequest, Specimen, ImagingStudyDemandes et résultats d'examens, imagerie médicale.
WorkflowTask, Appointment, Schedule, Slot, CarePlan, CareTeamOrchestration des soins, planification, plans de prise en charge.
Sécurité & auditingConsent, AuditEvent, ProvenanceConsentement patient, traçabilité, provenance.
ConformanceCapabilityStatement, StructureDefinition, ValueSet, CodeSystemAuto-description des serveurs, profilage des ressources.
InfrastructureBundle, OperationOutcome, Parameters, Subscription, MessageHeaderConteneurs et messages techniques.
Finance / facturationAccount, ChargeItem, Invoice, Claim, ClaimResponse, ExplanationOfBenefitCouche financière, surtout US (mappage X12 270/271/278/834/835/837).

L'API REST

Le cœur de FHIR est sa spécification d'API REST. Quelques exemples d'endpoints typiques sur un serveur conforme :

  • GET /Patient/{id} — lire une ressource Patient par son identifiant technique.
  • POST /Patient — créer une ressource Patient (l'id est attribué par le serveur).
  • PUT /Patient/{id} — mettre à jour une ressource Patient.
  • GET /Patient?identifier=urn:oid:1.2.3|MRN12345 — rechercher une ressource par identifiant métier.
  • GET /Patient/{id}/$everything — opération composite qui retourne toutes les ressources liées.
  • GET /metadata — exposer la CapabilityStatement du serveur (ce qu'il sait faire).

Les réponses sont systématiquement des ressources FHIR. Quand on cherche, le serveur retourne un Bundle typé searchset qui agrège les résultats. Quand on opère sur plusieurs ressources d'un coup (transaction, batch), on poste un Bundle typé transaction à la racine du serveur.

La sécurité passe quasi-systématiquement par OAuth 2 + OpenID Connect, encadrée par SMART on FHIR pour les apps tierces qui se branchent dans un EHR.

Implementation Guides

FHIR à l'état brut n'est pas immédiatement déployable : il faut le contraindre. Les Implementation Guides (IG) le font, en publiant des profils (un StructureDefinition qui restreint une ressource), des ValueSets et des extensions propres à un cas d'usage ou à un pays.

IGMainteneurPérimètre
US Core 6.x / 7.xHL7 US RealmProfil obligatoire pour la certification ONC EHR aux États-Unis (US Core Data for Interoperability).
International Patient Summary (IPS)HL7 + CEN/TC 251Dossier patient résumé interopérable transfrontalier (UE, US, monde).
European Health Data Space (EHDS)Commission européenneProfils 2025+ pour le futur espace européen de données de santé.
FR CoreANS (Agence du Numérique en Santé)Profils Patient, Practitioner, Organization adaptés au système de santé français.
SDOH-CC, mCODE, Da Vinci PDex…HL7 AcceleratorsIGs de domaine : déterminants sociaux, oncologie, données payeur.
HL7 IPS Au, NL Core, UK Core…Affiliés HL7 nationauxProfils nationaux pour l'Australie, les Pays-Bas, le Royaume-Uni, etc.

Comparaison avec HL7 v2

CritèreHL7 v2.xFHIR R5
ParadigmeMessagerie texteRessources REST
SérialisationPipe-delimitedJSON / XML / Turtle
ValidationConformance Profile (peu déployé)StructureDefinition + ValueSet (industrialisé)
RechercheQRY / RSP (peu utilisé)API search universelle (paramètres standards par ressource)
SécuritéTransport (MLLP, sFTP) — pas d'authent au niveau messageOAuth 2 + SMART on FHIR à toutes les couches
VolumeOptimisé pour les flux haute fréquenceOptimisé pour les API à la demande et les apps
Adoption 2026Pilier des SIHPilier des API patient et des apps tierces

Pour aller plus loin

Pages détaillées des ressources FHIR sur ediverse :

Standards apparentés :

Spécifications officielles à consulter :