Intégration des systèmes de santéMis à jour -13 minutes de lecture

Qu'est-ce que le C-CDA ? CCD, types de documents et passage du C-CDA à FHIR (Composition, DocumentReference, MHD)

Ce qu'est le C-CDA (CDA R2, C-CDA R2.1 à 5.0, CCD et autres types de documents, templateId, exigences ONC) et comment faire correspondre des documents C-CDA à FHIR Composition et DocumentReference, avec MHD face à XDS et le MHD du DEP suisse.

Ala Ben Aicha

Qu'est-ce que le C-CDA ? CCD, types de documents et passage du C-CDA à FHIR (Composition, DocumentReference, MHD)

Réponse directe

Le C-CDA (Consolidated Clinical Document Architecture) est la bibliothèque américaine de templates HL7 CDA R2 pour les documents cliniques, comme le Continuity of Care Document (CCD), la lettre de sortie (Discharge Summary) ou le courrier d'adressage (Referral Note). Un CCD est un document XML CDA composé d'un en-tête et de sections codées. Pour le passer en FHIR, on projette les sections sur une Composition FHIR et leurs entrées sur des ressources, ou on conserve les octets CDA en les indexant avec DocumentReference. MHD est l'API FHIR posée sur le partage de documents XDS, y compris pour le DEP suisse.

Qu'est-ce que le C-CDA ?

CDA R2 est le standard HL7 de base pour les documents cliniques, approuvé en 2005. Il définit un document XML avec un en-tête (qui est le patient, qui a rédigé le document, qui le conserve) et un corps fait de sections. Chaque section porte un texte lisible et, en option, des entrées codées. CDA seul reste générique : ce sont les guides d'implémentation qui le contraignent au moyen de templates.

Le C-CDA est le guide du domaine américain (US Realm) qui a regroupé ces templates dans une bibliothèque unique. Chaque template est identifié par un templateId composé d'un OID root et, depuis la R2, d'une extension qui en porte la version. L'émetteur déclare les templates auxquels il se conforme ; les validateurs contrôlent le document par rapport à eux.

Les versions du C-CDA en 2026

Version Publication Remarques
C-CDA R2.1 2015, errata depuis Templates en version 2015-08-01. Toujours la version citée par la certification ONC
Companion Guide R4.1 2023 Consignes pour transporter l'USCDI v3 dans le C-CDA R2.1
C-CDA 3.0 mai 2024 Première publication au format StructureDefinition de FHIR ; USCDI v4. Templates en version 2024-05-01
C-CDA 4.0 juin 2025 USCDI v5
C-CDA 5.0 juin 2026 STU actuel ; USCDI v6

Le format d'échange n'a pas changé avec la 3.0 : les documents restent du XML CDA. Ce qui a changé, c'est la manière dont HL7 publie les templates (sous forme de modèles logiques sur le site du C-CDA 5.0) et les éléments USCDI qu'ils peuvent porter. HL7 précise que le guide R2.1 n'a connu que des errata depuis 2015. Demandez à l'émetteur quelle version et quel companion guide il produit avant d'écrire un parseur.

Types de documents

Le C-CDA 5.0 définit les templates de documents suivants, tous bâtis sur l'en-tête US Realm Header (2.16.840.1.113883.10.20.22.1.1) :

Document templateId root Usage courant
Continuity of Care Document (CCD) 2.16.840.1.113883.10.20.22.1.2 Synthèse patient à un instant donné
Discharge Summary 2.16.840.1.113883.10.20.22.1.8 Fin d'un séjour hospitalier
Referral Note 2.16.840.1.113883.10.20.22.1.14 Demande adressée à un autre clinicien
Transfer Summary 2.16.840.1.113883.10.20.22.1.13 Transfert vers un autre lieu de prise en charge
Progress Note 2.16.840.1.113883.10.20.22.1.9 Suivi au fil d'une venue
Consultation Note 2.16.840.1.113883.10.20.22.1.4 Réponse à une demande d'avis
History and Physical 2.16.840.1.113883.10.20.22.1.3 Observation d'entrée ou bilan pré-intervention
Operative Note / Procedure Note 2.16.840.1.113883.10.20.22.1.7 / .1.6 Chirurgie et autres actes
Care Plan 2.16.840.1.113883.10.20.22.1.15 Objectifs, interventions, résultats
Unstructured Document 2.16.840.1.113883.10.20.22.1.10 PDF ou document numérisé dans une enveloppe CDA

En-tête, sections et entrées

  • En-tête : recordTarget (le patient), author, custodian, documentationOf (l'acte ou la prestation documentés) et, pour les documents liés à une venue, componentOf. C'est à partir de l'en-tête que l'on construit les métadonnées de partage.
  • Sections : chacune possède un templateId, un code LOINC, un title et un bloc narratif text. Le texte narratif constitue le contenu clinique attesté.
  • Entrées : énoncés codés à l'intérieur d'une section, par exemple l'Allergy Concern Act (2.16.840.1.113883.10.20.22.4.30) qui encapsule une Allergy - Intolerance Observation. Les entrées viennent à l'appui du texte et ne doivent pas le contredire.

Où le C-CDA est exigé

Aux États-Unis, le critère de certification ONC § 170.315(b)(1) Transitions of care impose depuis le 1er janvier 2026 de produire des documents C-CDA R2.1 conformes au Companion Guide Release 4.1 (USCDI v3), et d'accepter en réception les versions R1.1 et R2.1. La proposition de règle HTI-5 (décembre 2025) prévoit de supprimer plusieurs critères propres au CDA au profit de FHIR. Aucune règle définitive n'avait été identifiée lors de cette mise à jour : vérifiez son statut avant de modifier un produit certifié. Hors des États-Unis, des documents CDA circulent dans des programmes nationaux européens avec leurs propres templates ; le C-CDA reste un guide du domaine américain. Pour situer les documents parmi les autres modes d'échange, voir Interopérabilité en santé numérique : les bases.

Correspondance entre messages et ressources

Deux travaux différents se cachent derrière l'expression « C-CDA vers FHIR » :

  1. Projeter le contenu clinique dans des ressources FHIR (Condition, AllergyIntolerance, MedicationStatement, Observation) rattachées à une Composition.
  2. Partager le document en tant que document : conserver les octets CDA (ou un Bundle document FHIR) et les indexer avec DocumentReference pour XDS ou MHD.

Figez la version de C-CDA on FHIR que vous utilisez (URL officielle http://hl7.org/fhir/us/ccda/ImplementationGuide/hl7.fhir.us.ccda). La version actuelle est la 2.0.0 (STU 2, juin 2026, FHIR R4). Elle se concentre sur les correspondances au niveau des entrées, dans les deux sens, pour les allergies, venues, vaccinations, médicaments, problèmes, actes, résultats, mode de vie et signes vitaux, avec US Core 6.1.0 comme cible. Les profils Composition des types de documents C-CDA n'ont pas été repris dans la STU 2 : le guide renvoie à la STU 1.1 pour ces profils et à l'IG FHIR Clinical Documents pour les Bundles documents, et annonce que la prochaine version vise à réintroduire des profils de documents.

Le CCD (template 2.16.840.1.113883.10.20.22.1.2, LOINC 34133-9 Summarization of Episode Note) DOIT contenir six sections, en C-CDA R2.1 comme en C-CDA 5.0 : allergies, médicaments, problèmes, résultats, mode de vie (Social History) et signes vitaux. Figez la version du C-CDA réellement utilisée par l'émetteur, car les templates d'entrées et les jeux de valeurs varient d'une version à l'autre.

Section CCD (LOINC) Exigence C-CDA FHIR Composition.section.entry Remarques
Allergies 48765-2 DOIT AllergyIntolerance (US Core) Une section vide existe quand même ; ne supprimez pas le texte
Médicaments 10160-0 DOIT MedicationStatement / MedicationRequest Les correspondances de mode et de statut figurent dans les ConceptMaps de l'IG
Liste des problèmes 11450-4 DOIT Condition (US Core) Le statut concern/problème ne correspond pas un pour un à clinicalStatus
Résultats 30954-2 DOIT Observation / DiagnosticReport Le texte dans section.text fait foi, ce n'est pas un aperçu
Mode de vie 29762-2 DOIT Observation (statut tabagique US Core et autres) Vérifiez quelles observations l'émetteur code réellement
Signes vitaux 8716-3 DOIT Observation (signes vitaux US Core) Contrôlez les unités et les codes LOINC de panel
Actes 47519-4 DEVRAIT Procedure
Vaccinations 11369-6 PEUT Immunization

Le section/text CDA correspond à Composition.section.text. Les consignes de correspondance définissent aussi la conversion des identifiants CDA en identifiants FHIR : un OID connu est traduit en son URI ; un identifiant réduit à un root utilise urn:ietf:rfc:3986 comme system et l'OID préfixé par urn:oid: comme value. Le texte narratif fait partie intégrante du document et doit être conservé.

MHD face à XDS (partage de documents, pas correspondance des sections) :

Opération XDS.b (SOAP) MHD (FHIR)
Fournir / enregistrer ITI-41 Provide and Register Document Set ITI-65 Provide Document Bundle (Bundle transaction : List du lot de soumission + DocumentReference + Binary)
Rechercher ITI-18 Registry Stored Query ITI-67 Find Document References (GET DocumentReference)
Récupérer ITI-43 Retrieve Document Set ITI-68 Retrieve Document (Binary ou URL de la pièce jointe)
Objet de métadonnées XDS DocumentEntry DocumentReference (masterIdentifier ← uniqueId, identifier ← entryUUID)

Les échanges américains (Direct, documents TEFCA, nombreux HIE) gardent souvent le XML C-CDA comme contenu et exposent DocumentReference + Binary en FHIR. Lorsqu'un DPI propose les deux, le guide des API d'intégration DPI aide à choisir entre API documents et API ressources. Le DEP suisse utilise la même couche MHD au-dessus du XDS des communautés : CH EPR FHIR profile CH MHD DocumentReference Comprehensive et CH MHD Provide Document Bundle Comprehensive pour ITI-65. L'identité nationale du patient est l'EPR-SPID, utilisé comme identifiant logique et non comme ressource Patient adressable au niveau national. L'architecture des communautés est décrite dans l'article sur le DEP suisse. Les API REST de ressources FHIR en général sont traitées dans le guide d'intégration FHIR.

Pièges liés aux identifiants

Piège Symptôme Correction
ClinicalDocument/id perdu Impossible de remplacer ou de rendre obsolète le document plus tard DocumentReference.masterIdentifier issu du ClinicalDocument/id CDA. Root seul : urn:oid: + root. Avec une extension, MHD le sérialise sous la forme oid^extension
Identifiant patient du CDA ≠ sujet MHD ITI-65 rejeté États-Unis : Patient.identifier aligné sur US Core. Suisse : référence logique avec l'EPR-SPID ; ne créez pas d'URL Patient nationale
Sections mappées en jetant section/text Contenu clinique ou juridique absent côté FHIR Copiez le texte ; les entrées sont un appui structuré, pas une autorisation de supprimer le texte
Document Composition et Binary MHD confondus Le consommateur demande un Bundle et reçoit un CDA, ou l'inverse Un seul contenu par flux : Bundle document FHIR ou Binary CDA + DocumentReference. Les deux peuvent coexister ; ce sont deux contrats distincts
uniqueId XDS sans urn:oid: côté MHD Incohérence avec le domaine d'affinité MHD encode OID et UUID comme URI avec le system urn:ietf:rfc:3986
Extensions de templateId ignorées Templates R2.1 et 3.0+ traités comme identiques Aiguillez sur le root et l'extension ; 2015-08-01 et 2024-05-01 portent des règles différentes
Serveur FHIR générique utilisé comme connexion DEP La communauté rejette les métadonnées Jeux de valeurs suisses (classCode, typeCode, formatCode, confidentialityCode) d'eHealth Suisse, pas les métadonnées CCD américaines limitées à LOINC

Jeux de test

Données désidentifiées. Les OID ci-dessous sont des exemples, pas une organisation réelle.

Forme minimale d'un en-tête CCD (tronqué) :

<ClinicalDocument xmlns="urn:hl7-org:v3">
  <templateId root="2.16.840.1.113883.10.20.22.1.1" extension="2015-08-01"/>
  <templateId root="2.16.840.1.113883.10.20.22.1.2" extension="2015-08-01"/>
  <id root="2.16.840.1.113883.19.5.99999.1"/>
  <code code="34133-9" codeSystem="2.16.840.1.113883.6.1"
        displayName="Summarization of Episode Note"/>
  <title>Example Continuity of Care Document</title>
  <recordTarget>
    <patientRole>
      <id root="2.16.840.1.113883.19.5" extension="MRN-EXAMPLE-0001"/>
      <patient>
        <name><given>JANE</given><family>EXAMPLE</family></name>
        <birthTime value="19770412"/>
      </patient>
    </patientRole>
  </recordTarget>
</ClinicalDocument>

Section allergies avec texte narratif et sans allergie codée (tronquée) :

<section>
  <templateId root="2.16.840.1.113883.10.20.22.2.6.1" extension="2015-08-01"/>
  <code code="48765-2" codeSystem="2.16.840.1.113883.6.1"/>
  <title>Allergies</title>
  <text>No known allergies (example).</text>
</section>

Projection en Composition (tronquée) :

{
  "resourceType": "Composition",
  "status": "final",
  "type": {
    "coding": [
      {
        "system": "http://loinc.org",
        "code": "34133-9",
        "display": "Summarization of Episode Note"
      }
    ]
  },
  "subject": {
    "identifier": {
      "system": "https://hospital.example.org/mrn",
      "value": "MRN-EXAMPLE-0001"
    }
  },
  "date": "2026-09-17T10:30:00+01:00",
  "title": "Example Continuity of Care Document",
  "section": [
    {
      "title": "Allergies",
      "code": {
        "coding": [{ "system": "http://loinc.org", "code": "48765-2" }]
      },
      "text": { "status": "generated", "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">No known allergies (example).</div>" }
    }
  ]
}

Métadonnées DocumentReference MHD (tronquées ; le Binary contiendrait les octets CDA) :

{
  "resourceType": "DocumentReference",
  "masterIdentifier": {
    "system": "urn:ietf:rfc:3986",
    "value": "urn:oid:2.16.840.1.113883.19.5.99999.1"
  },
  "status": "current",
  "type": {
    "coding": [{ "system": "http://loinc.org", "code": "34133-9" }]
  },
  "content": [
    {
      "attachment": {
        "contentType": "application/xml",
        "url": "Binary/example-ccd"
      }
    }
  ]
}

Tests minimaux :

  1. Aller-retour du texte : le section/text CDA des allergies, médicaments, problèmes et résultats est présent dans la Composition.
  2. Section allergies vide (aucune entrée, texte « aucune allergie connue ») : la section existe toujours, sans AllergyIntolerance fictive.
  3. Bundle ITI-65 : List (lot de soumission) + DocumentReference + Binary ; la transaction réussit ou échoue d'un bloc.
  4. Parcours américain : correspondances d'entrées vérifiées par rapport à C-CDA on FHIR 2.0.0 et aux profils US Core ; profil de document figé explicitement.
  5. Aiguillage par version : un même CCD avec des extensions de template R2.1 et 3.0+ est traité par la bonne correspondance.
  6. Parcours suisse : métadonnées CH MHD Comprehensive + sujet logique EPR-SPID ; n'exigez pas d'URL Patient résolvable.

Ne versionnez jamais dans git du XML C-CDA réel contenant des noms de patients.

Modes de défaillance et retour arrière

Défaillance Détection Retour arrière
Correspondance partielle des sections Section obligatoire absente de la Composition Rejetez le document ; n'enregistrez pas de métadonnées MHD pour un CCD à moitié projeté
Double écriture (CDA + ressources FHIR) divergente Liste des Condition ≠ texte de la section problèmes Une seule source qui fait foi. De préférence le CDA comme document juridique et FHIR comme projection
ITI-65 réussit, URL ITI-68 erronée Le consommateur reçoit un 404 sur le Binary Dans ITI-65, la source pointe vers le Binary du Bundle ; dans ITI-67, le répondeur pointe vers le point d'accès ITI-68
Remplacement sans relatesTo Deux documents courants pour un même ClinicalDocument/id DocumentReference.relatesTo.code = replaces vers la référence précédente
Considérer MHD comme « le DEP est désormais fait de ressources FHIR » La communauté attend toujours des métadonnées de documents Le DEP suisse reste centré sur les documents ; MHD est l'API mobile au-dessus de XDS

Retour arrière après un dépôt erroné : rendez obsolète ou remplacez le DocumentReference (availabilityStatus / status), ne supprimez pas l'identité Patient et conservez le CDA d'origine dans le système source. Les remplacements XDS/MHD sont des associations, pas des suppressions SQL.

Service associé

Si vous avez besoin d'une projection C-CDA et du câblage MHD ou XDS (CCD américain ou EPR FHIR suisse), cela relève de l'intégration HL7 FHIR. Pour un prototype d'échange de documents bien délimité, passez par le formulaire de contact projet.

Cette page n'est ni un certificat de validation C-CDA, ni une procédure d'affiliation à une communauté eHealth Suisse, ni un avis juridique sur le document qui constitue le dossier de soins.

C-CDACDACCDFHIRCompositionDocumentReferenceMHDXDSIHEDEP Suisse

Lectures et services associés

Poursuivons la conversation

Vous avez des questions sur ce sujet ? J'aimerais avoir de vos nouvelles.