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

C-CDA to FHIR Allergies

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

Uncommon use case: Multiple C-CDA Allergy Intolerance observations inside a single Allergy Concern act should map to separate and distinct FHIR AllergyIntolerance resources. The C-CDA Companion Guide (see 5.2.7.1) actively discourages the practice of multiple observations inside a single act. It may occur, however, since Allergy Concern act allows for multiple Allergy Intolerance observations in C-CDA. Lossless transformations may not be possible without the use of extensions (see 3.1 of this guide).


C-CDA to FHIR

C-CDA¹
Allergy Concern act
FHIR
AllergyIntolerance
Transform Steps & Notes
/statusCode .clinicalStatus For more information on how status is managed in Allergy Concern Act wrapper, refer to C-CDA guidance, see 5.2.7.1
Also see Status entryRelationship mapping below
All of the following are a Allergy Intolerance observation nested inside the Allergy Concern act. Each observation should become a distinct FHIR AllergyIntolerance resource.
Include /entryRelationship[@typeCode="SUBJ"]/observation prefix to rows below²
   
/@negationInd   See constraints under /participant
/id .identifier CDA id ↔ FHIR identifier
/effectiveTime/low .onsetDateTime CDA ↔ FHIR Time/Dates
effectiveTime/high should not be mapped within onset (DateTime or Period)
/effectiveTime/high .extension:allergyintolerance-abatement  
/value .type
&
.category
CDA coding ↔ FHIR CodeableConcept
CDA value → FHIR type
CDA value → FHIR category
/author .recorder
&
Provenance
Constraint: Only map last CDA author to FHIR recorder
Guidance on CDA ↔ FHIR Provenance
/author/time .recordedDate Constraint: Only map earliest author/time
CDA ↔ FHIR Time/Dates
/participant/participantRole/playingEntity/code .code Constraint: When CDA negation is absent or false
CDA coding ↔ FHIR CodeableConcept
/participant/participantRole/playingEntity/code
&
/value
.code Constraint: When CDA negation is true and nullFlavor is used in playingEntity/code
CDA No known allergy → FHIR code
When negation is true and playingEntity/code is populated, use equivalent negated concept (e.g. map latex substance to no known latex allergy [1003774007, SNOMED CT]) if available. If not, use the substanceExposureRisk extension, placing the substance in the substance sub-extension and setting the exposureRisk sub-extension to no-known-reaction-risk. Note that when using this extension, the AllergyIntolerance resource will not be a conformant US Core AllergyIntolerance since the extension prohibits the required .code element.
Status
/entryRelationship/observation[code/@code="33999-4"]/value³
.clinicalStatus CDA Allergy Status Observation value → FHIR clinicalStatus
Reaction
/entryRelationship[@typeCode="MFST"]/observation/value³
.reaction.manifestation CDA coding ↔ FHIR CodeableConcept
Both use SNOMED clinical findings with minor valueSet definition differences
Severity (nested inside Reaction)
/entryRelationship[@typeCode="MFST"]/observation/…
   …entryRelationship/observation[code/@code="SEV"]/value³
.reaction.severity CDA Severity value → FHIR Severity
Note: CDA documents should not assign severity at the Allergy level.

In cases where CDA assigns severity only to the Allergy rather than the reaction, map the severity to FHIR reaction severity, even if there are more than one. This means assuming that the same severity applies to all child reactions.

If severity is assigned at both levels, the reaction level should be used.
Criticality
/entryRelationship/observation[code/@code="82606-5"]/value³
.criticality CDA Criticality value → FHIR Criticality
Comment Activity
/entryRelationship/act[code/@code="48767-8"]/text³
Annotation
.note
See Comment → Annotation

1. XPath abbreviated for C-CDA Allergy Concern act as:
ClinicalDocument/component/structuredBody/component/section[code/@code="48765-2"]/entry/act/

2. XPath abbreviated for C-CDA Allergy Intolerance observation as:
ClinicalDocument/component/structuredBody/component/section[code/@code="48765-2"]/entry/act/entryRelationship[@typeCode="SUBJ"]/observation

3. Note that these entryRelationships will also have inversionInd="true" in CDA

When authors or other provenance are recorded only in the parent Allergy Concern Act, it is recommended that those data be mapped to the FHIR AllergyIntolerance.

Example

CDA Allergy ActFHIR AllergyIntolerance Resource
<act classCode="ACT" moodCode="EVN"> <templateId root="2.16.840.1.113883.10.20.22.4.30" extension="2015-08-01" /> <templateId root="2.16.840.1.113883.10.20.22.4.30" /> <id root="1.3.6.1.4.1.22812.3.2009316.3.4.10" extension="545077400001" /> <id root="1.3.6.1.4.1.22812.3.2009316.3.4.10" extension="545077400003" /> <code code="CONC" codeSystem="2.16.840.1.113883.5.6" /> <statusCode code="active" /> <effectiveTime xsi:type="IVL_TS"> <low nullFlavor="NI" /> </effectiveTime> <entryRelationship typeCode="SUBJ"> <observation classCode="OBS" moodCode="EVN"> <templateId root="2.16.840.1.113883.10.20.22.4.7" extension="2014-06-09" /> <templateId root="2.16.840.1.113883.10.20.22.4.7" /> <id root="1.3.6.1.4.1.22812.3.2009316.3.4.10.2" extension="545077400001" /> <id root="1.3.6.1.4.1.22812.3.2009316.3.4.10.2" extension="545077400003" /> <code code="ASSERTION" codeSystem="2.16.840.1.113883.5.4" /> <statusCode code="completed" /> <effectiveTime xsi:type="IVL_TS"> <low value="20080501" /> </effectiveTime> <value xsi:type="CD" code="419511003" codeSystem="2.16.840.1.113883.6.96"> <originalText> <reference value="#_6db75b62-deb2-4bab-b597-00c8ae86f6b4" /> </originalText> </value> <participant typeCode="CSM"> <participantRole classCode="MANU"> <playingEntity classCode="MMAT"> <code code="1191" codeSystem="2.16.840.1.113883.6.88" displayName="Aspirin"> <translation code="293586001" codeSystem="2.16.840.1.113883.6.96" displayName="Allergy to Aspirin"/> </code> </playingEntity> </participantRole> </participant> <entryRelationship typeCode="MFST" inversionInd="true"> <observation classCode="OBS" moodCode="EVN"> <templateId root="2.16.840.1.113883.10.20.22.4.9" extension="2014-06-09" /> <templateId root="2.16.840.1.113883.10.20.22.4.9" /> <id nullFlavor="NI" /> <code code="ASSERTION" codeSystem="2.16.840.1.113883.5.4" /> <text> <reference value="#_8a7ed342-967a-400e-88d5-2f8c2b7cdda0" /> </text> <statusCode code="completed" /> <value xsi:type="CD" code="247472004" codeSystem="2.16.840.1.113883.6.96" displayName="Wheal"> <originalText> <reference value="#_8a7ed342-967a-400e-88d5-2f8c2b7cdda0" /> </originalText> </value> <entryRelationship typeCode="SUBJ" inversionInd="true"> <observation classCode="OBS" moodCode="EVN"> <templateId root="2.16.840.1.113883.10.20.22.4.8" extension="2014-06-09" /> <templateId root="2.16.840.1.113883.10.20.22.4.8" /> <code code="SEV" codeSystem="2.16.840.1.113883.5.4" /> <text>Severe</text> <statusCode code="completed" /> <value xsi:type="CD" code="24484000" codeSystem="2.16.840.1.113883.6.96" displayName="Severe" /> </observation> </entryRelationship> </observation> </entryRelationship> </observation> </entryRelationship> </act>
{ "resourceType": "AllergyIntolerance", "identifier": [ { "system": "urn:oid:1.3.6.1.4.1.22812.3.2009316.3.4.10.2", "value": "545077400001" }, { "system": "urn:oid:1.3.6.1.4.1.22812.3.2009316.3.4.10.2", "value": "545077400003" } ], "clinicalStatus": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical", "code": "active" } ] }, "category": [ "medication" ], "code": { "coding": [ { "system": "http://www.nlm.nih.gov/research/umls/rxnorm", "code": "1191", "display": "Aspirin" }, { "system": "http://snomed.info/sct", "code": "293586001", "display": "Allergy to Aspirin" } ], "text": "Aspirin" }, "patient": { "reference": "Patient/CF-patient" }, "onsetDateTime": "2008-05-01", "reaction": [ { "manifestation": [ { "coding": [ { "system": "http://snomed.info/sct", "code": "247472004", "display": "Wheal" } ], "text": "Wheal" } ], "severity": "severe" } ] }

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