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 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." Additionally, the Act and Observation variants have been removed as of C-CDA 3.0. 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 is a CDA Observation class, and it can best be represented the FHIR Observation resource (see, e.g., maps specified in Results). If necessary, a Procedure can also be instantiated, related by Observation.partOf, but this resource will contain only redundant information. Procedure cannot represent the observation value, so with or without Procedure, Observation will always be necessary, unless the evaluation procedure was not completed, in which case modeling it as a procedure will make it diverge from the pattern used when it has been completed.

### 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 Example | FHIR 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" }

#### Links to example content

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

- Procedure CDA example
- Procedure FHIR example