C-CDA on FHIR
2.0.0-ballot - STU 2 Ballot United States of America flag

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

C-CDA to FHIR Problems

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 to FHIR

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.

Example: Standard Problem

CDA Problem ExampleFHIR 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" } }

Example: SDOH Problem

CDA SDOH ProblemFHIR 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: