C-CDA on FHIR
2.0.0-ballot - STU 2 Ballot

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 Encounters

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.

### C-CDA Encounter to FHIR

(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: status is also mapped from effectiveTime below. The Concept Map should only be used for statusCode values other than `completed` and `active`, or in the event that the effectiveTime is missing or ambiguous.
/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`.

### Example: Encounter

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" } }] }

### Example: EncompassingEncounter

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" } }