C-CDA on FHIR, published by HL7 International / Cross-Group Projects. This guide is not an authorized publication; it is the continuous build for version 2.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/ccda-on-fhir/ and changes regularly. See the Directory of published versions
This page provides a mapping from CDA to FHIR. For the FHIR to CDA mapping, please refer to Patient FHIR → CDA. For guidance on how to read the table below, see Reading the C-CDA ↔ FHIR Mapping Pages
| C-CDA¹ US Realm Header recordTarget | FHIR Patient | Transform Steps | 
|---|---|---|
| /id | .identifier | CDA id ↔ FHIR identifier | 
| /addr | .address | CDA addr ↔ FHIR address | 
| /telecom | .telecom | CDA telecom ↔ FHIR telecom | 
| /patient/name | .name | CDA name ↔ FHIR name | 
| /patient/administrativeGenderCode | .gender | CDA coding ↔ FHIR CodeableConcept CDA administrativeGender → FHIR gender | 
| /patient/birthTime | .birthDate | CDA ↔ FHIR Time/Dates Note: the FHIR birthDate element is less precise than the CDA birthtime element. Precision can be preserved by also using the extension patient-birthTime. | 
| /patient/sdtc:deceasedInd | .deceasedBoolean | Note: Only one of deceasedBooleanordeceasedDateTimemay exist. If both are present in CDA, use deceasedDateTime. | 
| /patient/sdtc:deceasedTime | .deceasedDateTime | CDA ↔ FHIR Time/Dates | 
| /patient/maritalStatusCode | .maritalStatus | CDA coding ↔ FHIR CodeableConcept | 
| /patient/religiousAffiliationCode | .extension:patient-religion.valueCodeableConcept | CDA coding ↔ FHIR CodeableConcept | 
| /patient/raceCode | .extension:us-core-race: ombCategory | CDA coding ↔ FHIR CodeableConcept This should be a category and map to the ombCategory sub-extension. But if it is a detailed race, then it should go in the detailed sub-extension. | 
| /patient/sdtc:raceCode | .extension:us-core-race | CDA coding ↔ FHIR CodeableConcept If code is in OMB category, use us-core-race: ombCategory; else use us-core-race: detailed. If the detailed race is under a different OMB category that the non-sdtc:raceCode element, then an additional OMB category sub-extension should be included as well. | 
| /patient/raceCode/originalText and /patient/sdtc:raceCode/originalText | .extension:us-core-race: text | The race extension's text sub-extension is required but may only exist once. Recommendation is to comma-delimit all originalText / displayNames available, taking care to not duplicate values. | 
| /patient/ethnicGroupCode | .extension:us-core-ethnicity | CDA coding ↔ FHIR CodeableConcept This should be a category and map to the ombCategory sub-extension. But if it is a detailed race, then it should go in the detailed sub-extension. | 
| /patient/sdtc:ethnicGroupCode | .extension:us-core-ethnicity : detailed | CDA coding ↔ FHIR CodeableConcept Used for detailed ethnicity | 
| /patient/guardian/code and /patient/guardian/guardianPerson/sdtc:asPatientRelationship/code | .contact.relationship | First, add a fixed relationship code of GUARDfrom v3 RoleCode (http://terminology.hl7.org/CodeSystem/v3-RoleCode) to preserve the CDA guardian relationship. Then map the two fields to additional relationship entries using CDA coding ↔ FHIR CodeableConcept | 
| /patient/guardian/addr | .contact.address | CDA addr ↔ FHIR address | 
| /patient/guardian/telecom | .contact.telecom | CDA telecom ↔ FHIR telecom | 
| /patient/guardian/guardianPerson/name | .contact.name | CDA name ↔ FHIR name | 
| /patient/birthPlace/place/addr | .extension:patient-birthPlace.valueAddress | CDA addr ↔ FHIR address | 
| /patient/languageCommunication/languageCode | .communication.language | |
| /patient/languageCommunication/preferenceInd | .communication.preferred | |
| /patient/languageCommunication/modeCode | .communication.extension:patient-proficiency:type | CDA coding ↔ FHIR CodeableConcept If both modeCode and proficiencyLevelCode are set for a language, only one patient-proficiencyextension is needed. | 
| /patient/languageCommunication/proficiencyLevelCode | .communication.extension:patient-proficiency:level | CDA coding ↔ FHIR CodeableConcept If both modeCode and proficiencyLevelCode are set for a language, only one patient-proficiencyextension is needed. | 
| /providerOrganization | .managingOrganization | 
1. XPath abbrievated for C-CDA US Realm recordTarget as: 
 ClinicalDocument/recordTarget/patientRole
| CDA RecordTarget Example | FHIR Patient Resource | 
|---|---|
| <recordTarget>
  <patientRole>
    <id root="068F3166-5721-4D69-94ED-8278FF035B8A" />
    <addr use="H">
      <streetAddressLine>1357 Amber Drive</streetAddressLine>
      <city>Beaverton</city>
      <state>OR</state>
      <postalCode>97006</postalCode>
    </addr>
    <telecom value="tel:+1(565)867-5309" use="MC"/>
    <patient>
      <name use="L">
        <given>Myra</given>
        <family>Jones</family>
      </name>
      <administrativeGenderCode 
        code="F" 
        codeSystem="2.16.840.1.113883.5.1" />
      <birthTime value="19470501" />
      <sdtc:deceasedInd value="false" />
      <maritalStatusCode 
        code="M" 
        displayName="Married" 
        codeSystem="2.16.840.1.113883.5.2" 
        codeSystemName="MaritalStatus"/>
      <religiousAffiliationCode 
        code="1013" 
        displayName="Christian (non-Catholic, non-specific)" 
        codeSystem="2.16.840.1.113883.5.1076" 
        codeSystemName="HL7 Religious Affiliation"/>
      <raceCode 
        code="2106-3" 
        codeSystem="2.16.840.1.113883.6.238" 
        displayName="White" />
      <sdtc:raceCode 
        code="2108-9" 
        displayName="European" 
        codeSystem="2.16.840.1.113883.6.238" />
      <ethnicGroupCode 
        code="2135-2" 
        codeSystem="2.16.840.1.113883.6.238" 
        displayName="Hispanic or Latino" />
      <sdtc:ethnicGroupCode 
        code="20146-9" 
        displayName="Spanish Basque" 
        codeSystem="2.16.840.1.113883.6.238" />
      <guardian>
        <code 
          code="FTH" 
          displayName="father" 
          codeSystem="2.16.840.1.113883.5.111" 
          codeSystemName="RoleCode" />
        <addr use="H">
          <streetAddressLine>123 main street</streetAddressLine>
          <city>Beaverton</city>
          <state>OR</state>
          <postalCode>97867</postalCode>
        </addr>
        <telecom value="tel:+1(555)555-2008" use="MC" />
        <guardianPerson>
          <name>
            <given>Boris</given>
            <given qualifier="CL">Bo</given>
            <family>Betterhalf</family>
          </name>
        </guardianPerson>
      </guardian>
      <birthplace>
        <place>
          <addr>
            <streetAddressLine>4444 Birth Street</streetAddressLine>
            <city>Beaverton</city>
            <state>OR</state>
            <postalCode>97867</postalCode>
          </addr>
        </place>
      </birthplace>
      <languageCommunication>
        <languageCode code="en" />
        <modeCode 
          code="ESP" 
          displayName="Expressed spoken" 
          codeSystem="2.16.840.1.113883.5.60" 
          codeSystemName="LanguageAbilityMode"/>
        <proficiencyLevelCode 
          code="G" 
          displayName="Good" 
          codeSystem="2.16.840.1.113883.5.61" 
          codeSystemName="LanguageAbilityProficiency"/>
        <preferenceInd value="true" />
      </languageCommunication>
    </patient>
    <!-- Creates reference: Organization/PCPartnersTest -->
    <providerOrganization>
      <id extension="3" root="1.3.6.1.4.1.22812.3.2009316.3" />
      <name>Primary Care's Partners Test</name>
      <telecom use="WP" value="tel:+1-(676)857-6769" />
    </providerOrganization>
  </patientRole>
</recordTarget> | {
  "resourceType": "Patient",
  "id": "6581e92eb6ff5dadc088eae5",
  "identifier": [{
    "system": "urn:uuid:068f3166-5721-4d69-94ed-8278ff035b8a",
    "value": "urn:ietf:rfc:3986"
  }],
  "language": "en-US",
  "extension": [{
    "url": "http://hl7.org/fhir/StructureDefinition/patient-religion",
    "valueCodeableConcept": {
      "coding": [{
        "system": "http://terminology.hl7.org/CodeSystem/v3-ReligiousAffiliation",
        "code": "1013",
        "display": "Christian (non-Catholic, non-specific)"
      }]
    }
  }, {
    "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity",
    "extension": [{
      "url": "ombCategory",
      "valueCoding": {
        "system": "urn:oid:2.16.840.1.113883.6.238",
        "code": "2135-2",
        "display": "Hispanic or Latino"
      }
    }, {
      "url": "text",
      "valueString": "Hispanic or Latino, Spanish Basque"
    }, {
      "url": "detailed",
      "valueCoding": {
        "system": "urn:oid:2.16.840.1.113883.6.238",
        "code": "20146-9",
        "display": "Spanish Basque"
      }
    }]
  }, {
    "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race",
    "extension": [{
      "url": "ombCategory",
      "valueCoding": {
        "system": "urn:oid:2.16.840.1.113883.6.238",
        "code": "2106-3",
        "display": "White"
      }
    }, {
      "url": "text",
      "valueString": "White, European"
    }, {
      "url": "detailed",
      "valueCoding": {
        "system": "urn:oid:2.16.840.1.113883.6.238",
        "code": "2108-9",
        "display": "European"
      }
    }]
  },
  {
    "url": "http://hl7.org/fhir/StructureDefinition/patient-birthPlace",
    "valueAddress": {
      "line": ["4444 Birth Street"],
      "city": "Beaverton",
      "state": "OR",
      "postalCode": "97867"
    }
  }],
  "name": [{
    "text": "Myra Jones",
    "use": "usual",
    "family": "Jones",
    "given": ["Myra"]
  }],
  "telecom": [{
      "system": "phone",
    "value": "+1(565)867-5309",
    "use": "mobile"
  }],
  "gender": "female",
  "birthDate": "1947-05-01",
  "deceasedBoolean": false,
  "address": [{
    "use": "home",
    "text": "1357 Amber Drive Beaverton OR 97006",
    "line": ["1357 Amber Drive"],
    "city": "Beaverton",
    "state": "OR",
    "postalCode": "97006"
  }],
  "maritalStatus": {
    "coding": [{
      "system": "http://terminology.hl7.org/CodeSystem/v3-MaritalStatus",
      "code": "M",
      "display": "Married"
    }]
  },
  "contact": [{
    "relationship": [{
      "coding": [{
        "system": "http://terminology.hl7.org/CodeSystem/v3-RoleCode",
        "code": "GUARD",
        "display": "Guardian"
      }]
    }, {
      "coding": [{
        "system": "http://terminology.hl7.org/CodeSystem/v3-RoleCode",
        "code": "FTH",
        "display": "father"
      }]
    }],
    "name": {
      "family": "Betterhalf",
      "given": [
        "Boris",
        "Bo"
      ]
    },
    "telecom": [{
      "system": "phone",
      "value": "+1(555)555-2008",
      "use": "mobile"
    }],
    "address": {
      "use": "home",
      "line": ["123 main street"],
      "city": "Beaverton",
      "state": "OR",
      "postalCode": "97867"
    }
  }],
  "communication": [{
    "language": {
      "coding": [{
        "system": "urn:ietf:bcp:47",
        "code": "en",
        "display": "English"
      }]
    },
    "preferred": true,
    "extension": [{
      "url": "http://hl7.org/fhir/StructureDefinition/patient-proficiency",
      "extension": [{
        "url": "level",
        "valueCoding": {
          "system": "http://terminology.hl7.org/CodeSystem/v3-LanguageAbilityProficiency",
          "code": "G",
          "display": "Good"
        }
      }, {
        "url": "type",
        "valueCoding": {
          "system": "http://terminology.hl7.org/CodeSystem/v3-LanguageAbilityMode",
          "code": "ESP",
          "display": "Expressed spoken"
        }
      }]
    }]
  }],
  "managingOrganization": {
    "reference": "Organization/PCPartnersTest"
  }
} | 
The consensus mapping example developed through multiple vendors are available below: