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

FHIR to C-CDA Medications

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 Medications CDA → FHIR. For guidance on how to read the table below, see Reading the C-CDA ↔ FHIR Mapping Pages.

See guidance on timing mappings on Medications CDA → FHIR.

FHIR to C-CDA

FHIR
MedicationRequest
C-CDA¹
Medication Activity substanceAdministration
Transform Steps
.identifier /id CDA id ↔ FHIR identifier
.status /status FHIR status → CDA statusCode
.category /code CDA coding ↔ FHIR CodeableConcept
code is not generally used in CDA
.doNotPerform /@negationInd  
.medicationCodeableConcept /consumable/manufacturedProduct/manufacturedMaterial/code CDA coding ↔ FHIR CodeableConcept
.medicationReference (see above) CDA embeds medication codes directly inside medication activity
.authoredOn /author/time CDA ↔ FHIR Time/Dates
.requester /assignedAuthor CDA ↔ FHIR Provenance
.performer /performer CDA ↔ FHIR Provenance
.reasonCode Indication
/entryRelationship[@typeCode="RSON"]/observation/value
CDA coding ↔ FHIR CodeableConcept
Annotation
.note
Comment Activity
/entryRelationship/act[code/@code="48767-8"]/text
 
.dosageInstruction.text
&
.dosageInstruction.patientInstruction
Free text sig
/entryRelationship/substanceAdministration[code/@code="76662-6"]/text
 
.dosageInstruction.additionalInstruction Instruction
/entryRelationship[@typeCode="SUBJ"]/act/code
CDA coding ↔ FHIR CodeableConcept
.dosageInstruction.timing.repeat.boundsPeriod.start effectiveTime[1]/low CDA ↔ FHIR Time/Dates
Note: in XPath, [1] is the first instance; there is no [0] in XPath.
.dosageInstruction.timing.repeat.boundsPeriod.end effectiveTime[1]/high CDA ↔ FHIR Time/Dates
.dosageInstruction.timing.repeat.frequency
&
.dosageInstruction.timing.repeat.period
&
.dosageInstruction.timing.repeat.periodUnit
/effectiveTime[2]/…
/@operator='A'
/@xsi:type='PIVL_TS'
/@institutionSpecified
/period
Compare:
C-CDA Common Medication Frequencies and
FHIR Timing Data Type
.dosageInstruction.timing.repeat.when
&
.dosageInstruction.timing.repeat.offset
/effectiveTime[2]/…
/@operator='A'
/@xsi:type='EIVL_TS'
/event/@code
/offset
FHIR when matches event/@code vocabulary
CDA Offset is a PhysicalQuantity, while FHIR is an integer representing minutes.
.dosageInstruction.site /approachSiteCode CDA coding ↔ FHIR CodeableConcept
.dosageInstruction.route /routeCode CDA coding ↔ FHIR CodeableConcept
.dosageInstruction.doseAndRate.doseQuantity /doseQuantity CDA ↔ FHIR Quantity
.dosageInstruction.doseAndRate.rateQuantity /rateQuantity CDA ↔ FHIR Quantity
.dosageInstruction.maxDosePerPeriod /maxDoseQuantity CDA ↔ FHIR Quantity

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

Illustrative example

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

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