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

## FHIR to C-CDA Immunizations

FHIR US Core → C-CDA Mapping

While multiple vendors participated in CDA → FHIR mappings at a connectathon, only a single vendor (Cerner/Oracle) has participated in the FHIR → CDA mapping. We welcome feedback on these mappings which represent less than a multi-vendor consensus at this time.

This page provides a mapping from FHIR to CDA. For the CDA to FHIR mapping, please refer to Immunizations CDA → FHIR. For guidance on how to read the table below, see Reading the C-CDA ↔ FHIR Mapping Pages

### FHIR to C-CDA

FHIR Immunization | C-CDA¹ Immunization Activity substanceAdministration | Transform Steps
--- | --- | ---
| /@moodCode="EVN" | All FHIR Immunizations should be set to "EVN" moodCode
.identifier | /id | CDA id ↔ FHIR identifier
.status | /statusCode | Constraint when .status.value="not-done" Set negationInd to true in CDA observation
.status | /statusCode | Constraint all other values of .status FHIR status → CDA statusCode
.statusReason | Immunization Not Given Reason (FKA "Refusal Reason") /entryRelationship[@typeCode="RSON"]/observation/code | FHIR statusReason → CDA refusal
.vaccineCode | /consumable/manufacturedProduct/manufacturedMaterial/code | CDA coding ↔ FHIR CodeableConcept
.primarySource |  | This element has no target in CDA
.occurrenceDateTime | /effectiveTime/@value | CDA ↔ FHIR Time/Dates
.manufacturer | /consumable/manufacturedProduct/manufacturerOrganization |
.lotNumber | /consumable/manufacturedMaterial/lotNumberText |
.site | /approachSiteCode | FHIR site → CDA approachSiteCode
.route | /routeCode | CDA coding ↔ FHIR CodeableConcept
.doseQuantity | /doseQuantity | CDA ↔ FHIR Quantity
.performer.actor | /performer | Constraint when .performer.function="AP" CDA ↔ FHIR Provenance
Annotation .note | Comment Activity /entryRelationship/act[code/@code="48767-8"]/text |
.reasonCode | Indication /entryRelationship[@typeCode="RSON"]/observation/value |
.education.documentType | reference/ExternalDocument/code |
.education.reference | /reference/ExternalDocument/id |
.reaction.id | Reaction /entryRelationship[@typeCode="MFST"]/observation/id | CDA id ↔ FHIR identifier
.reaction.date | /Reaction /entryRelationship[@typeCode="MFST"]/observation/effectiveTime | CDA ↔ FHIR Time/Dates
.reaction.detail.valueCodeableConcept | Reaction /entryRelationship[@typeCode="MFST"]/observation/value | CDA coding ↔ FHIR CodeableConcept
.doseNumber[x].doseNumberPositiveInt | /repeatNumber |

1. XPath abbrievated for C-CDA Immunization Activity as:
ClinicalDocument/component/structuredBody/component/section[code/@code="11369-6"]/entry/substanceAdministration

### Illustrative example

#### Links to example content

Note that these mappings have only been implemented by a single vendor to date.

- Immuniztion FHIR example
- Immuniztion CDA example

### Prior work and Expanded Spreadsheets

As reviewed in the methodology, a more comprehensive review was performed via spreadsheets. These spreadsheets have been consolidated and further revised in the tables above but are provided for reference here