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

This page is part of the C-CDA on FHIR Implementation Guide (v2.0.0-ballot: STU 2 Ballot 1) based on FHIR (HL7® FHIR® Standard) R4. The current version which supersedes this version is 1.2.0. For a full list of available versions, see the Directory of published versions

C-CDA to FHIR Procedures

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

Note on template selection

C-CDA 2.1 describes three templates for Procedures: Procedure Activity Act, Procedure Activity Observation, and Procedure Activity Procedure. Procedure Activity Procedure is the most complete, containing everything the other two contain except Observation.value, and several properties not contained by the others. The C-CDA 2.1 Companion Guide points out that "most vendors successfully and exclusively use the . . . Procedure Activity Procedure," and it then specifies this template for "all interventional, non-interventional, surgical, diagnostic, or therapeutic procedures or treatments pertinent to the patient historically at the time the document is generated." For this reason, we have only provided a mapping from Procedure Activity Procedure. Procedure Activity Act can use the same mapping to a FHIR Procedure resource because it contains a subset of the fields available in Procedure Activity Procedure. Procedure Activity Observation can be mapped to either a Procedure resource or to an Observation resource using the results mapping (or a combination of the two).



C-CDA to FHIR

C-CDA¹
Procedure Activity procedure
FHIR
Procedure
Transform Steps
/@negationInd="true" set status="not-done"  
/id .identifier CDA id ↔ FHIR identifier
/code .code CDA coding ↔ FHIR CodeableConcept
/statusCode .status CDA statusCode → FHIR status
/effectiveTime .performedDateTime Constraint: Use this when effectiveTime@value is populated
CDA ↔ FHIR Time/Dates
If no effectiveTime content is provided, put the FHIR [data-absent-reason] (https://hl7.org/fhir/R4/extension-data-absent-reason.html) extension on the performedDateTime element.
/effectiveTime/low .performedPeriod.start Constraint: Use this when effectiveTime@value is not populated
CDA ↔ FHIR Time/Dates
/effectiveTime/high .performedPeriod.end Constraint: Use this when effectiveTime@value is not populated
CDA ↔ FHIR Time/Dates
/targetSiteCode .bodySite CDA coding ↔ FHIR CodeableConcept
/author .recorder
&
Provenance

CDA ↔ FHIR Provenance
If a latest author can be identified, map to .recorder.
Any author with a time can be put in Provenance.
/performer/assignedEntity .performer.actor May map to Practitioner, PractitionerRole, or Organization
onBehalfOf should not be used when actor is a Practitioner or PractitionerRole
Service Delivery Location
/participant[@typeCode="LOC"]/participantRole
.location  
Indication
/entryRelationship[@typeCode="RSON"]/observation/value
.reasonCode CDA coding ↔ FHIR CodeableConcept
Comment Activity
/entryRelationship/act[code/@code="48767-8"]/text
Annotation
.note
See Comment → Annotation

1. XPath abbrievated for C-CDA Procedure as:
ClinicalDocument/component/structuredBody/component/section[code/@code="47519-4"]/entry/procedure

Example

CDA Procedure ExampleFHIR Procedure Resource
<procedure classCode="PROC" moodCode="EVN"> <templateId root="2.16.840.1.113883.10.20.22.4.14" extension="2014-06-09" /> <templateId root="2.16.840.1.113883.10.20.22.4.14" /> <id root="1.3.6.1.4.1.22812.3.2009316.3.4.7" extension="545069400001" /> <id root="1.3.6.1.4.1.22812.3.2009316.3.4.7" extension="545069400003" /> <code code="80146002" codeSystem="2.16.840.1.113883.6.96" displayName="Excision of appendix"> <originalText> <reference value="#_dfcf353c-538f-498a-9a53-80dda209e456" /> </originalText> <translation code="0DBJ4ZZ" codeSystem="2.16.840.1.113883.6.90" displayName="Excision of appendix, Percutaneous Endoscopic Approach"/> </code> <statusCode code="completed" /> <effectiveTime value="20120806"/> </procedure>
{ "resourceType" : "Procedure", "identifier" : [{ "system" : "urn:oid:1.3.6.1.4.1.22812.3.2009316.3.4.7", "value" : "545069400001" }, { "system" : "urn:oid:1.3.6.1.4.1.22812.3.2009316.3.4.7", "value" : "545069400003" }], "status" : "completed", "code" : { "coding" : [{ "system" : "http://snomed.info/sct", "code" : "80146002", "display" : "Excision of appendix" }, { "system" : "http://www.cms.gov/Medicare/Coding/ICD10", "code" : "0DBJ4ZZ", "display" : "Excision of appendix, Percutaneous Endoscopic Approach" }], "text" : "Excision of appendix" }, "subject" : { "reference" : "Patient/CF-patient" }, "performedDateTime" : "2012-08-06" }

The consensus mapping example developed through multiple vendors are available below: