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 Problems FHIR → CDA. For guidance on how to read the table below, see Reading the C-CDA ↔ FHIR Mapping Pages.
This mapping demonstrates how problems in the C-CDA Problems Section would map to FHIR Conditions. Problems in other sections will map similarly, but may map to different profiles (e.g. US Core Encounter Diagnosis) or have different categories (e.g. health-concern).
Note that C-CDA includes a Concern wrapper act from which status may be read; most of the elements are within the dependent Observation entry.
C-CDA¹ Problem Concern Act |
FHIR Condition and Health Concern |
Transform Steps |
---|---|---|
From the parent section, use code@code | .category | CDA section → FHIR category Note: The section of a Problem Observation affects its FHIR category. |
/statusCode | .clinicalStatus | /statusCode → .clinicalStatus is to be used only if the C-CDA Problem Status Observation (see below) is missing. For more information on how status is managed in Problem Concern Act wrapper, refer to C-CDA guidance, see 5.2.6.1 Concern Status → Condition Clinical Status |
All of the following are a Problem observation nested inside the Problem Concern act. Each observation should become a distinct FHIR Condition resource. /entryRelationship[@typeCode="SUBJ"]/observation prefix to rows below² |
||
/@negationInd=true | set .verificationStatus="refuted" or adjust .code for negated concept | |
/id | .identifier | CDA id ↔ FHIR identifier |
/code | .category | CDA coding ↔ FHIR CodeableConcept |
/effectiveTime/low | .onsetDateTime | CDA ↔ FHIR Time/Dates |
/effectiveTime/high | .abatementDateTime | If present (or high/@nullFlavor=UNK ), the .clinicalStatus must be inactive , remission , or resolved . If C-CDA status fields map to .clinicalStatus of active, relapse, or recurrence, suggest setting .clinicalStatus to inactive for FHIR conformance.If high/@nullFlavor=UNK , populate ._abatementDateTime.extension with Data Absent Reason, since in C-CDA, the "UNK" high effectiveTime has been the recommended way to indicate "resolved problem but unknown resolution date."CDA ↔ FHIR Time/Dates |
/value | .code | Constraint: When CDA negation is absent or false CDA coding ↔ FHIR CodeableConcept |
/author | .recorder & Provenance |
.recorder should be authoritative (latest) author if there are multiple CDA ↔ FHIR Provenance |
/author/time | .recordedDate | Earliest, if more than one CDA ↔ FHIR Time/Dates |
Problem Status /entryRelationship/observation[code/@code="33999-4"]/value |
.clinicalStatus | CDA Problem Status Observation value → FHIR clinicalStatus |
Date of Diagnosis /entryRelationship/act[code/@code="77975-1"]/effectiveTime |
.extension:assertedDate | CDA ↔ FHIR Time/Dates See US CORE Condition for additional guidance |
Comment Activity /entryRelationship/act[code/@code="48767-8"]/text |
Annotation .note |
See Comment → Annotation |
Age Observation /entryRelationship[@typeCode="SUBJ" and @inversionInd="true"]/observation[code/@code="445518008"]/value |
.onsetAge | CAUTION: Only one of onsetAge or onsetDateTime may be present.CDA ↔ FHIR Quantity |
Supporting Observations (e.g. Assessment Scale Observation) /entryRelationship[@typeCode="SPRT"]/observation |
.evidence.detail | Create an Observation resource, mapping fields like id , code , effectiveTime , value similar to Results. If the CDA observation is an SDOH observation, use the US Core Observation Screening Assessment profile. |
1. XPath abbreviated for C-CDA Problem Concern act as:
ClinicalDocument/component/structuredBody/component/section[code/@code="11450-4"]/entry/act/
2. XPath abbreviated for C-CDA Problem Observation as:
ClinicalDocument/component/structuredBody/component/section[code/@code="11450-4"]/entry/act/entryRelationship[@typeCode="SUBJ"]/observation/
When authors or other provenance are recorded in the parent Problem Concern Act, it is recommended that those data be mapped to the FHIR Condition.
CDA Problem Example | FHIR Condition Resource |
---|---|
<act classCode="ACT" moodCode="EVN">
<templateId root="2.16.840.1.113883.10.20.22.4.3"
extension="2015-08-01" />
<templateId root="2.16.840.1.113883.10.20.22.4.3" />
<id extension="545069300001" root="1.3.6.1.4.1.22812.3.2009316.3.4.1" />
<code code="CONC" codeSystem="2.16.840.1.113883.5.6" />
<statusCode code="active" />
<effectiveTime >
<low value="20120806" />
</effectiveTime>
<entryRelationship typeCode="SUBJ">
<observation classCode="OBS" moodCode="EVN">
<templateId root="2.16.840.1.113883.10.20.22.4.4"
extension="2015-08-01" />
<templateId root="2.16.840.1.113883.10.20.22.4.4" />
<id root="1.3.6.1.4.1.22812.3.2009316.3.4.1.2.1"
extension="545069300001"/>
<code code="55607006" codeSystem="2.16.840.1.113883.6.96">
<translation nullFlavor="NI" />
</code>
<text>
<reference value="#_5011447a-e27f-471d-9e1f-541148c5282f" />
</text>
<statusCode code="completed" />
<effectiveTime >
<low value="20120806" />
</effectiveTime>
<value xsi:type="CD"
code="233604007"
codeSystem="2.16.840.1.113883.6.96"
displayName="Pneumonia">
<translation code="486" codeSystem="2.16.840.1.113883.6.103" />
<translation code="J18.9" codeSystem="2.16.840.1.113883.6.90" />
<translation code="87580" codeSystem="2.16.840.1.113883.3.247.1.1" />
</value>
<!-- Becomes recorder with reference: Practitioner/ProblemAuthor -->
<author>
<templateId root="2.16.840.1.113883.10.20.22.4.119"/>
<time value="20140104"/>
<assignedAuthor>
<id extension="99999999" root="2.16.840.1.113883.4.6"/>
<telecom use="WP" value="tel:555-555-1002"/>
<assignedPerson>
<name>
<given>Henry</given>
<family>SevenObs</family>
</name>
</assignedPerson>
</assignedAuthor>
</author>
<entryRelationship typeCode="REFR">
<observation classCode="OBS" moodCode="EVN">
<templateId root="2.16.840.1.113883.10.20.22.4.6"
extension="2019-06-20" />
<code code="33999-4" codeSystem="2.16.840.1.113883.6.1" />
<statusCode code="completed" />
<value xsi:type="CD"
code="246455001"
codeSystem="2.16.840.1.113883.6.96"
displayName="Recurrence" />
</observation>
</entryRelationship>
<entryRelationship typeCode="SUBJ" inversionInd="true">
<observation classCode="OBS" moodCode="EVN">
<templateId root="2.16.840.1.113883.10.20.22.4.31" />
<!-- Age observation -->
<code code="445518008"
codeSystem="2.16.840.1.113883.6.96"
displayName="Age At Onset" />
<statusCode code="completed" />
<value xsi:type="PQ" value="65" unit="a" />
</observation>
</entryRelationship>
</observation>
</entryRelationship>
</act>
|
{
"resourceType": "Condition",
"id": "6581e92f2d59f701ecc0f914",
"identifier": [{
"system": "urn:oid:1.3.6.1.4.1.22812.3.2009316.3.4.1.2.1",
"value": "545069300001"
}],
"clinicalStatus": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/condition-clinical",
"code": "recurrence",
"display": "recurrence"
}]
},
"category": [{
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/condition-category",
"code": "problem-list-item",
"display": "Problem List Item"
}]
}],
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "233604007",
"display": "Pneumonia"
},
{
"system": "http://hl7.org/fhir/sid/icd-9-cm",
"code": "486",
"display": "Pneumonia, organism unspecified"
},
{
"system": "http://hl7.org/fhir/sid/icd-10-cm",
"code": "J18.9",
"display": "Pneumonia, unspecified organism"
},
{
"system": "urn:oid:2.16.840.1.113883.3.247.1.1",
"code": "87580"
}
],
"text": "Pneumonia"
},
"subject": {
"reference": "Patient/6581e92eb6ff5dadc088eae5",
"display": "Myra Jones"
},
"onsetDate": "2012-08-06",
/* Note only one of onsetDate or onsetAge is allowed */
"onsetAge": {
"value": 65,
"unit": "year",
"code": "a",
"system": "http://unitsofmeasure.org"
},
"recordedDate": "2014-01-04",
"recorder": {
"reference": "Practitioner/ProblemAuthor"
}
}
|
CDA SDOH Problem | FHIR Condition Resource |
---|---|
<act classCode="ACT" moodCode="EVN">
<templateId root="2.16.840.1.113883.10.20.22.4.3" extension="2015-08-01" />
<templateId root="2.16.840.1.113883.10.20.22.4.3" />
<id root="b46f0fc0-986f-11ee-b9d1-0242ac120002"/>
<code code="CONC" codeSystem="2.16.840.1.113883.5.6"/>
<statusCode code="active"/>
<effectiveTime>
<low value="20130101"/>
</effectiveTime>
<entryRelationship typeCode="SUBJ">
<!-- SDOH Problem -->
<observation classCode="OBS" moodCode="EVN">
<templateId root="2.16.840.1.113883.10.20.22.4.4"/>
<templateId root="2.16.840.1.113883.10.20.22.4.4" extension="2015-08-01"/>
<templateId root="2.16.840.1.113883.10.20.22.4.4" extension="2022-06-01"/>
<id extension="68993" root="1.2.840.114350.1.13.6289.1.7.2.768076"/>
<id root="093A5380-00CE-11E6-B4C5-0050568B000B" extension="1.1"/>
<code code="55607006" codeSystem="2.16.840.1.113883.6.96"
codeSystemName="SNOMED CT" displayName="Problem">
<originalText>Problem</originalText>
<translation code="75326-9" codeSystem="2.16.840.1.113883.6.1"
codeSystemName="LOINC" displayName="Problem"/>
</code>
<statusCode code="completed"/>
<effectiveTime>
<low value="20100909"/>
</effectiveTime>
<value xsi:type="CD"
code="445281000124101"
displayName="Nutrition impaired due to limited access to healthful foods"
codeSystem="2.16.840.1.113883.6.96"
codeSystemName="SNOMED CT">
<translation code="Z59.48"
codeSystem="2.16.840.1.113883.6.90"
codeSystemName="ICD-10-CM"
displayName="Other specified lack of adequate food"/>
</value>
<!-- Assessment Scale Observation -->
<!-- Creates observation referenced by evidence.detail -->
<!-- This one: #sdoh1 -->
<entryRelationship typeCode="SPRT">
<observation classCode="OBS" moodCode="EVN">
<templateId root="2.16.840.1.113883.10.20.22.4.69"/>
<templateId root="2.16.840.1.113883.10.20.22.4.69"
extension="2022-06-01"/>
<id root="f4dce790-8328-11db-9fe1-0800200c9a44"/>
<code code="88122-7"
displayName="(I/We) worried whether (my/our) food would run out..."
codeSystem="2.16.840.1.113883.6.1"
codeSystemName="LOINC"/>
<statusCode code="completed"/>
<effectiveTime value="20100909"/>
<value xsi:type="CD"
code="LA28397-0"
displayName="Often true"
codeSystem="2.16.840.1.113883.6.1">
</value>
</observation>
</entryRelationship>
<!-- Creates observation referenced by evidence.detail -->
<!-- This one: #sdoh2 -->
<entryRelationship typeCode="SPRT">
<observation classCode="OBS" moodCode="EVN">
<templateId root="2.16.840.1.113883.10.20.22.4.69"/>
<templateId root="2.16.840.1.113883.10.20.22.4.69"
extension="2022-06-01"/>
<id root="0e9c5b7c-9def-11ee-8c90-0242ac120002"/>
<code code="88124-3"
displayName="Food insecurity risk [HVS]"
codeSystem="2.16.840.1.113883.6.1"
codeSystemName="LOINC"/>
<statusCode code="completed"/>
<effectiveTime value="20100909"/>
<value xsi:type="CD"
code="LA19952-3"
displayName="At risk"
codeSystem="2.16.840.1.113883.6.1"/>
</observation>
</entryRelationship>
<!-- Date of Diagnosis Act -->
<entryRelationship typeCode="COMP">
<act classCode="ACT" moodCode="EVN">
<templateId root="2.16.840.1.113883.10.20.22.4.502"
extension="2022-06-01"/>
<code code="77975-1"
codeSystem="2.16.840.1.113883.6.1"
codeSystemName="LOINC"
displayName="Earliest date of diagnosis"/>
<statusCode code="completed"/>
<!-- SHALL to the year (MAY be more specific) -->
<effectiveTime value="20100101"/>
</act>
</entryRelationship>
</observation>
</entryRelationship>
</act>
|
{
"resourceType": "Condition",
"language": "en-US",
"identifier": [{
"system": "urn:oid:1.2.840.114350.1.13.6289.1.7.2.768076",
"value": "68993"
}],
"clinicalStatus": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/condition-clinical",
"code": "active",
"display": "active"
}]
},
"category": [{
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/condition-category",
"code": "problem-list-item",
"display": "Problem List Item"
}]
}],
"code": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "445281000124101",
"display": "Nutrition impaired due to limited access to healthful foods"
},
{
"system": "http://hl7.org/fhir/sid/icd-10-cm",
"code": "Z59.48",
"display": "Other specified lack of adequate food"
}
]},
"subject": {
"reference": "Patient/6581e92eb6ff5dadc088eae5"
},
"onsetDateTime": "2010-09-09",
"extension": [{
"url": "http://hl7.org/fhir/StructureDefinition/condition-assertedDate",
"valueDateTime": "2010-01-01"
}],
"evidence": [{
"detail": [{
"reference": "#sdoh1"
}, {
"reference": "#sdoh2"
}]
}],
"contained": [{
"resourceType": "Observation",
"id": "sdoh1",
"status": "final",
"category": [{
"coding": [{
"code": "survey",
"system": "http://terminology.hl7.org/CodeSystem/observation-category"
}]
}],
"code": {
"coding": [{
"value": "88122-7",
"system": "http://loinc.org"
}]
},
"subject": { "reference": "Patient/6581e92eb6ff5dadc088eae5" },
"effectiveDateTime": "2010-09-09",
"valueCodeableConcept": {
"coding": [{
"code": "LA28397-0",
"system": "http://loinc.org",
"display": "Often true"
}]
}
}, {
"resourceType": "Observation",
"id": "sdoh2",
"status": "final",
"category": [{
"coding": [{
"code": "survey",
"system": "http://terminology.hl7.org/CodeSystem/observation-category"
}]
}],
"code": {
"coding": [{
"value": "88124-3",
"system": "http://loinc.org",
"display": "Food insecurity risk [HVS]"
}]
},
"subject": { "reference": "Patient/6581e92eb6ff5dadc088eae5" },
"effectiveDateTime": "2010-09-09",
"valueCodeableConcept": {
"coding": [{
"code": "LA19952-3",
"system": "http://loinc.org",
"display": "At risk"
}]
}
}]
}
|
The consensus mapping example developed through multiple vendors are available below: