Intégration des systèmes de santé-12 minutes de lecture

C-CDA vers FHIR : sections CCD, Composition, DocumentReference, MHD vs XDS

Un playbook pour projeter les documents de continuité des soins C-CDA américains sur FHIR Composition et DocumentReference, et pour choisir MHD plutôt que XDS, y compris Swiss EPR MHD.

Ala Ben Aicha

C-CDA vers FHIR : sections CCD, Composition, DocumentReference, MHD vs XDS

Réponse directe

Un CCD est un document CDA. Mappez les sections requises sur un FHIR Composition, puis choisissez un document Composition Bundle ou un DocumentReference en binaire. MHD est l'API FHIR sur XDS, y compris Swiss EPR.

Cartographie des messages et des ressources

Deux tâches différentes sont étiquetées « C-CDA vers FHIR » :

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

Fixez la version de C-CDA sur FHIR 1.2.0 (URL officielle http://hl7.org/fhir/us/ccda/ImplementationGuide/hl7.fhir.us.ccda, STU 1, basé sur FHIR R4). Il profile Composition pour les types de documents C-CDA et mappe les entrées vers US Core. C'est le cas pas exiger des entrées codées dans chaque section – un écart délibéré par rapport à C-CDA, qui utilisait nullFlavors lorsqu'une section était vide.

Le CCD (Continuity of Care Document) est un type de document C-CDA (modèle 2.16.840.1.113883.10.20.22.1.2, LOINC 34133-9 Résumé de la note de l'épisode). C-CDA R2.1 CCD DOIT contient les allergies, les médicaments, la liste des problèmes et les résultats. Les publications ultérieures du C-CDA mentionnent également les antécédents sociaux et les signes vitaux si nécessaire – épinglez la version du C-CDA que l'expéditeur utilise réellement.

Section CCD (LOINC) Rôle du C-CDA FHIR Composition.section.entry Remarques
Allergies 48765-2 DOIT AllergyIntolerance (US Core) Une section vide existe toujours ; ne laissez pas tomber le récit
Médicaments 10160-0 DOIT MedicationStatement / MedicationRequest Les cartes d'humeur/statut sont dans les ConceptMaps IG
Liste des problèmes 11450-4 DOIT Condition (US Core) L'état des préoccupations par rapport aux problèmes n'est pas 1:1 avec clinicalStatus
Résultats 30954-2 DOIT Observation / DiagnosticReport Récit dans section.text est authentique, pas un aperçu
Procédures 47519-4 DEVRAIT Procedure
Vaccinations 11369-6 PEUT Immunization

ADC section/text cartes à Composition.section.text. Le conseils cartographiques est explicite : le récit fait autorité dans le document et doit être préservé.

MHD versus XDS (document partage, pas le mappage de section) :

Emploi XDS.b (SOAP) MHD (FHIR)
Fournir / s'inscrire ITI-41 Fournir et enregistrer un ensemble de documents ITI-65 Fournir le document Bundle (transaction Bundle : Liste des jeux de soumission + DocumentReference + Binaire)
Trouver Requête stockée dans le registre ITI-18 ITI-67 Rechercher des références de documents (GET DocumentReference)
Récupérer ITI-43 Récupérer un ensemble de documents ITI-68 Récupérer le document (Binary ou URL de pièce jointe)
Objet de métadonnées Entrée de document XDS DocumentReference (masterIdentifier ← identifiant unique, identifier ← entréeUUID)

Les échanges américains (Direct, documents TEFCA, nombreux HIE) conservent souvent C-CDA XML comme charge utile et exposent FHIR DocumentReference + Binary. L'EPR suisse utilise la même couche MHD sur le XDS communautaire : CH EPR FHIR profils CH MHD DocumentReference Complet et CH MHD fournit le document Bundle complet pour ITI-65. L’identité nationale du patient est l’EPR-SPID en tant qu’identifiant logique – et non une ressource Patient adressable au niveau national. L'architecture communautaire est la Article DEP suisse. Les API de ressources REST FHIR en général sont les Guide d'intégration FHIR.

Pièges d'identification

Piège Symptôme Corriger
Document/identifiant clinique perdu Impossible de remplacer ou de rendre obsolète le document ultérieurement DocumentReference.masterIdentifier = CDA ClinicalDocument/id (URI, souvent urn:oid:…)
Identifiant Patient dans le sujet CDA ≠ MHD ITI-65 rejeté US : Patient.identifier aligné sur US Core. Suisse : référence logique avec EPR-SPID ; ne pas créer d'URL nationale Patient
Cartographie des sections et suppression section/text Contenu juridique/clinique manquant dans FHIR Copier le récit ; les entrées sont structurées soutien, pas une licence pour supprimer du texte
Document Composition vs binaire MHD mélangés Le consommateur demande Bundle, obtient un CDA, ou l'inverse Choisissez une charge utile par flux : document FHIR Bundle ou CDA binaire + DocumentReference. Les deux peuvent exister ; ce sont des contrats différents
XDS uniqueId sans urn:oid: sur MHD Inadéquation de domaine d'affinité Les métadonnées complètes MHD attendent un identifiant unique typé URI
Utilisation d'un serveur FHIR générique comme connexion EPD La communauté rejette les métadonnées Ensembles de valeurs suisses (classCode, typeCode, formatCode, confidentialitéCode) provenant d'eHealth Suisse, et non des métadonnées CCD américaines LOINC uniquement

Jeux de données de test

Désidentifié. Les OID ci-dessous sont des exemples, pas une véritable organisation.

Forme minimale de l'en-tête CCD (tronqué) :

<ClinicalDocument xmlns="urn:hl7-org:v3">
  <id root="2.16.840.1.113883.19.5" extension="CCD-EXAMPLE-0001"/>
  <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>

Projection 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 MHD DocumentReference (tronquées ; binaire contiendrait les octets CDA) :

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

Tests minimaux :

  1. Récit aller-retour : CDA section/text pour les allergies/médicaments/problèmes/résultats présents sur Composition.
  2. Section des allergies vide (aucune entrée, narration « non connu ») – toujours une section, pas de fausse AllergyIntolérance.
  3. ITI-65 Bundle : Liste (ensemble de soumission) + DocumentReference + Binaire ; la transaction réussit ou échoue en tant qu’unité.
  4. Chemin américain : profil Composition de C-CDA sur FHIR 1.2.0.
  5. Voie suisse : métadonnées complètes CH MHD + sujet logique EPR-SPID ; ne nécessitent pas d’URL Patient résoluble.

Ne mettez jamais de vrai XML C-CDA avec les noms des patients dans git.

Modes de défaillance et restauration

Échec Détection Restauration
Carte de coupe partielle Section SHALL manquante sur le Composition Rejeter le document ; ne pas enregistrer les métadonnées MHD pour un CCD à moitié projeté
La double écriture (ressources CDA + FHIR) diverge Liste de conditions ≠ récit de la section problème Un magasin faisant autorité. Préférez conserver le CDA comme document juridique et le FHIR comme projection
ITI-65 réussit, URL ITI-68 incorrecte Consommateur 404 sur binaire Source en points ITI-65 au niveau du binaire Bundle ; répondeur dans les points ITI-67 au point final ITI-68
Remplacement sans relatesTo Deux documents actuels pour un ClinicalDocument/id DocumentReference.relatesTo.code = replaces vers la référence précédente
Traiter MHD comme « l’EPD est désormais une ressource FHIR » La communauté attend toujours les métadonnées des documents La REP suisse reste centrée sur les documents ; MHD est l'API mobile sur XDS

Annulation en cas de mauvaise offre : désapprouvez 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 et non des suppressions SQL.

Service associé

Si vous avez besoin d'une projection C-CDA plus un câblage MHD ou XDS (CCD américain ou EPR FHIR suisse), c'est Intégration HL7 FHIR. Pour un pic d'échange de documents limité, utilisez formulaire de contact projet.

Cette page n'est pas un certificat de validation C-CDA, ni une intégration de la communauté eHealth Suisse, ni des conseils juridiques sur le document qui constitue le dossier de soins.

C-CDACCDFHIRCompositionDocumentReferenceMHDXDSIHEDEP Suisse

Lectures et services associés

Poursuivons la conversation

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