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 guidance on how to read the table below, see Reading the C-CDA ↔ FHIR Mapping Pages.
Encounter Activities in the Encounters Section (or elsewhere in the document, such as <entryReference>
on Clinical Notes) correspond FHIR Encounter resources. If the document itself contains a componentOf/encompassingEncounter
, this should also be converted to a FHIR Encounter resource. In all cases, when the same encounter is referenced multiple times (such as the encompassingEncounter
and an Encounter Activity in the Encounters Section containing the same <id>
), it should be converted to a single FHIR resource.
(b) - indicates element is only present in Encounter Activity in the body of the document
(h) - indicates element is only present in EncompassingEncounter in the header of the document
C-CDA¹ Encounter Activity or EncompassingEncounter |
FHIR Encounter |
Transform Steps |
---|---|---|
/id | .identifier | CDA id ↔ FHIR identifier |
/code | .class | Only the V3 ActCode system, which may be present in the root element or any <translation> .Other code systems may map to V3 ActCode (for example CPT codes 99211-99215 map to AMB , 99221-99223 to IMP , 99281-99285 to EMER , etc), but if this mapping is not possible, use the Data Absent Reason extension. |
/code | .type | The remaining codes besides V3 ActCode CDA coding ↔ FHIR CodeableConcept |
/statusCode (b) | .status | CDA → FHIR encounter status Note: statusCode is optional in C-CDA. If missing, fallback to effectiveTime mapping. |
/effectiveTime | .status | If effectiveTime is a single timestamp or contains a high, status = "finished" .If low is present and high is missing, the status may be "in-progress" but implementers may choose to evaluate historical values as "finished" or "unknown" if appropriate. |
/effectiveTime/@value /effectiveTime/low/@value |
.period.start | CDA ↔ FHIR Time/Dates |
/effectiveTime/high/@value | .period.end | CDA ↔ FHIR Time/Dates |
/sdtc:dischargeDispositionCode (b) /dischargeDispositionCode (h) |
.hospialization.dischargeDisposition | CDA coding ↔ FHIR CodeableConcept |
/performer (b) /encounterParticipant (h) |
.participant | C-CDA → FHIR Participation |
/performer/sdtc:functionCode (b) | .participant.type | CDA coding ↔ FHIR CodeableConcept |
/participant[@typeCode="LOC"] (b) /location (h) |
.location | C-CDA → FHIR Participation |
Indication (b) /entryRelationship[@typeCode="RSON"]/observation |
.reasonCode or .reasonReference |
If the id of the indication references a problem in the document that has been converted to a FHIR resource, populate .reasonReference with a reference to that resource. Otherwise, map observation/value to .reasonCode. CDA coding ↔ FHIR CodeableConcept |
Encounter Diagnosis (b) /entryRelationship/act[code/@code="29308-4"]/observation |
Encounter Diagnosis & .diagnosis.condition |
The observation maps identically to CDA → FHIR Problems. Since this is an encounter diagnosis, the Observation.category should be set to encounter-diagnosis . |
CDA Encounter | FHIR Encounter Resource |
---|---|
<encounter classCode="ENC" moodCode="EVN">
<templateId root="2.16.840.1.113883.10.20.22.4.49" extension="2015-08-01"/>
<templateId root="2.16.840.1.113883.10.20.22.4.49"/>
<id root="2a620155-9d11-439e-92b3-5d9815ff4de8"/>
<code code="99213" displayName="Office outpatient visit 15 minutes"
codeSystemName="CPT" codeSystem="2.16.840.1.113883.6.12"
codeSystemVersion="4">
<originalText>
<reference value="#Encounter1_type"/>
</originalText>
</code>
<text>
<reference value="#Encounter1"/>
</text>
<effectiveTime value="201208151000-0800"/>
<!-- Maps to reference: Practitioner/62f17e2ae0231200076884d4 -->
<performer>
<assignedEntity>
...
</assignedEntity>
</performer>
<entryRelationship typeCode="REFR">
<act classCode="ACT" moodCode="EVN">
<!-- Encounter Diagnosis -->
<!-- Creates reference: Condition/62f17e2aa2392d0008fbb232 -->
<templateId root="2.16.840.1.113883.10.20.22.4.80" extension="2015-08-01" />
<templateId root="2.16.840.1.113883.10.20.22.4.80"/>
<code code="29308-4" displayName="Diagnosis"
codeSystem="2.16.840.1.113883.6.1"
codeSystemName="LOINC"/>
<entryRelationship typeCode="SUBJ">
...
</entryRelationship>
</act>
</entryRelationship>
</encounter>
|
{
"resourceType": "Encounter",
"id": "62f17e2aa2392d0008fbb224",
"identifier": [{
"value": "urn:uuid:2a620155-9d11-439e-92b3-5d9815ff4de8",
"system": "urn:ietf:rfc:3986"
}],
"status": "finished",
"class": {
"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
"code": "AMB",
"display": "ambulatory"
},
"type": [{
"coding": [{
"system": "http://www.ama-assn.org/go/cpt",
"code": "99213",
"display": "Office outpatient visit 15 minutes"
}],
"text": "Office outpatient visit"
}],
"subject": { "reference": "Patient/62f17e29b7532c0009e217b7" },
"participant": [{
"individual": {
"reference": "Practitioner/62f17e2ae0231200076884d4"
}
}],
"period": {
"start": "2012-08-15T10:00:00-08:00"
},
"diagnosis": [{
"condition": {
"reference": "Condition/62f17e2aa2392d0008fbb232"
}
}]
}
|
CDA EncompassingEncounter Example | FHIR Encounter Resource |
---|---|
<encompassingEncounter>
<id root="2a620155-9d11-439e-92b3-5d9815ff4de8"/>
<code code="99213" displayName="Office outpatient visit 15 minutes"
codeSystemName="CPT" codeSystem="2.16.840.1.113883.6.12"
codeSystemVersion="4" />
<effectiveTime>
<low value="20120815100000-0800" />
<high value="20120815101500-0800" />
</effectiveTime>
<!-- Maps to reference: Practitioner/62f17e2ae0231200076884d4 -->
<participant>
...
</participant>
<!-- Maps to reference: Location/sdLoc -->
<location>
...
</location>
</encompassingEncounter>
|
{
"resourceType": "Encounter",
"id": "62f17e2aa2392d0008fbb224",
"identifier": [{
"value": "urn:uuid:2a620155-9d11-439e-92b3-5d9815ff4de8",
"system": "urn:ietf:rfc:3986"
}],
"status": "finished",
"class": {
"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
"code": "AMB",
"display": "ambulatory"
},
"type": [{
"coding": [{
"system": "http://www.ama-assn.org/go/cpt",
"code": "99213",
"display": "Office outpatient visit 15 minutes"
}]
}],
"subject": { "reference": "Patient/62f17e29b7532c0009e217b7" },
"location": [{
"location": { "reference": "Location/sdLoc" }
}],
"participant": [{
"individual": { "reference": "Practitioner/62f17e2ae0231200076884d4" }
}],
"period": {
"start": "2012-08-15T10:00:00-08:00",
"end": "2012-08-15T10:15:00-08:00"
}
}
|