FHIR to CDISC Joint Mapping Implementation Guide
0.1.0 - STU 1

This page is part of the CDISC Mapping FHIR IG (v0.1.0: STU 1 Ballot 1) based on FHIR R4. The current version which supercedes this version is 1.0.0. For a full list of available versions, see the Directory of published versions

Adverse Events

Adverse event data in FHIR is handled by the AdverseEvent resource. This resource is the focus of the mappings in this guide. However, when using it to map to CDISC, implementers should consider two things

  • AdverseEvent will sometimes capture events that are not of interest to a particular study or do not qualify as "adverse events" per the study's protocol
  • Not all situations that a study might deem to qualify as an adverse event will result in the creation of an AdverseEvent instance in typical clinical systems

In the latter circumstance, research systems may also need to consult some or all of the following resources:

These latter resources won't convey information on relatedness to the study drug, mitigating actions, etc. However, they could trigger an investigation that would allow gathering of that information.

AE Mappings

Guidance on interpreting the table can be found here.

CDISC FHIR map (or gap) Comment
Name CDASH SDTM Element FHIRPath
Study ID or Number STUDYID STUDYID AdverseEvent.researchSubject

AdverseEvent.study.resolve().partOf.resolve().identifier.value

ResearchSubject.where(subject=AdverseEvent.subject).study.resolve().partOf.resolve().identifier.value

Mapping is based on presumption that research subject will be tied to site-specific ResearchStudy, which will then be part of overall ResearchStudy.

The direct path using AdverseEvent.study will only exist if the system maintaining the AdverseEvent is aware of its relevance to the Study.
Study Site ID SITEID DM.SITEID ResearchStudy.site

AdverseEvent.study.resolve().identifier.value

ResearchSubject.where(subject=AdverseEvent.subject).study.resolve().identifier.value

Mapping is based on presumption that research subject will be tied to site-specific ResearchStudy, which will then be part of overall ResearchStudy.

The direct path using AdverseEvent.study will only exist if the system maintaining the AdverseEvent is aware of its relevance to the Study.
Subject ID for the Study SUBJID DM.SUBJID ResearchSubject.identifier

ResearchSubject.where(individual=AdverseEvent.subject).identifier.value

Study subject is found by finding the StudySubject that corresponds to the same Patient and ResearchStudy as the AdverseEvent.

No standard way to decide which subject identifier to use
Any AdverseEvent AEYN In FHIR, this would be determined by searching for AdverseEvents with a given subject (possibly also filtered by research study) and excluding those that were entered in error. If a flag were necessary, it would be an extension on Study, not sent on AdverseEvent. It might also be necessary to search for Condition instances, Observation instances, Encounters with particular reasons and other resources if the desire is to have the full set of potential adverse reactions.
Category for AdverseEvent AECAT AECAT AdverseEvent.category

AdverseEvent.category

This is typically sponsor-specific and we would not expect this to come from the site.

In FHIR, an AdverseEvent can be categorized in as many ways as desired with whatever granularity is desired. When converting from FHIR to CDASH, systems will need to look at the FHIR categories (and potentially other information) to determine how best to populate AECAT and AESCAT based on the study-designed categories (unless they've pre-arranged with the EHR to ensure it captures the same codes)
Subcategory for AdverseEvent AESCAT AESCAT AdverseEvent.category

AdverseEvent.category

This is typically sponsor-specific and we would not expect this to come from the site.

In FHIR, an AdverseEvent can be categorized in as many ways as desired with whatever granularity is desired. When converting from FHIR to CDASH, systems will need to look at the FHIR categories (and potentially other information) to determine how best to populate AECAT and AESCAT based on the study-designed categories (unless they've pre-arranged with the EHR to ensure it captures the same codes)
A sponsor defined identifier AESPID AESPID AdverseEvent.identifier

AdverseEvent.identifier.where(assigner=sponsor).value

AdverseEvent.refID

The assigner of the identifier can be explicit or inferred by the Identifier.system.
Reported Term for the Adverse Event AETERM AETERM Condition.code

AdverseEvent.resultingCondition.resolve().code

AdverseEvent Occurrence AEOCCUR FAORRES FHIR only captures AdverseEvents that have actually occurred. A flag about whether a particular potential adverse reaction has been detected or not could be captured using Questionnaire Response
Prespecified AdverseEvent AEPRESP AEPRESP If captured within an EHR, this would be an extension on the existing extension that references the ResearchStudy. (An AdverseEvent might be pre-specified for one study and not for another.)
Adverse Event Start Date AESTDAT AESTDTC AdverseEvent.date

AdverseEvent.date(date portion)

Adverse Event Start Time AESTTIM AESTDTC AdverseEvent.date

AdverseEvent.date(time portion)

AE Location of Event AELOC AELOC AdverseEvent.resultingCondition.bodySite

AdverseEvent.resultingCondition.bodySite

Requires knowledge or review of data to ensure location, laterality and directionality are included in the code and can be parsed.
Adverse Event Laterality AELAT AELAT AdverseEvent.resultingCondition.bodySite

AdverseEvent.resultingCondition.bodySite

Requires knowledge or review of data to ensure location, laterality and directionality are included in the code and can be parsed.
Adverse Event Directionality AEDIR AEDIR AdverseEvent.resultingCondition.bodySite

AdverseEvent.resultingCondition.bodySite

Requires knowledge or review of data to ensure location, laterality and directionality are included in the code and can be parsed.
AE Location Portion or Totality AEPORTOT AEPORTOT AdverseEvent.resultingCondition.bodySite

AdverseEvent.resultingCondition.bodySite

Review of data to ensure location, laterality and directionality are included in the code and can be parsed.
Ongoing AdverseEvent AEONGO AEENRTPT; AEENRF The concept of ongoing for an AE in the context of CDASH/SDTM is non-existent as it is based on a Y or N flag and an NULL end date indicates the AdverseEvent is ongoing.
Adverse Event End Date AEENDAT AEENDTC AdverseEvent.extension

AdverseEvent.extension(AdverseEvent.occurrence).valuePeriod.end

Need to use a standard extension to pre-adopt the type allowed in R5. Element contains both date and time (if specified).
Adverse Event End Time AEENTIM AEENDTC AdverseEvent.extension

AdverseEvent.extension(AdverseEvent.occurrence).valuePeriod.end

Need to use a standard extension to pre-adopt the type allowed in R5. Element contains both date and time (if specified).
Adverse Event Severity Intensity AESEV AESEV AdverseEvent.severity

AdverseEvent.severity

AE Standard Toxicity Grade AETOXGR AETOXGR Recommendation is to add extension for oncology or other studies requiring toxicity grades.
AE Serious Event AESER AESER AdverseEvent.seriousness

AdverseEvent.seriousness

Results in Death AESDTH AESDTH AdverseEvent.outcome

AdverseEvent.outcome='fatal'

Death Date DTHDAT DM.DTHDTC Patient.deceasedDateTime

Patient.deceasedDateTime

Is Life Threatening AESLIFE AESLIFE AdverseEvent.seriousness

AdverseEvent.seriousness

These would typically be flagged by seriousness or outcome codes. Will need to propose change request to support capturing more than one
Requires or Prolongs Hospitalization AESHOSP AESHOP Note: there is Encounter.hospitalization.[x], but its relevance to AESHOSP may not be explicit and would require additional analysis.
Persist or Signify Disability Incapacity AESDISAB AESDISAB AdverseEvent.outcome

AdverseEvent.outcome

These would typically be flagged by seriousness or outcome codes. Will need to propose change request to support capturing more than one
Congenital Anomaly or Birth Defect AESCONG AESCONG AdverseEvent.outcome

AdverseEvent.outcome

These would typically be flagged by seriousness or outcome codes. Will need to propose change request to support capturing more than one
Needs Intervention to Prevent Impairment AESINTV SUPPAE.QVAL AdverseEvent.outcome

AdverseEvent.outcome

These would typically be flagged by seriousness or outcome codes. Will need to propose change request to support capturing more than one
Other Medically Important Serious Event AESMIE AESMIE AdverseEvent.outcome

AdverseEvent.outcome

Additional outcomes or seriousness codes would be specified
Involves Cancer AESCAN AESCAN AdverseEvent.outcome

AdverseEvent.outcome

Additional outcomes or seriousness codes would be specified
Occurred with Overdose AESOD AESOD AdverseEvent.causality.productRelatedness

AdverseEvent.causality.productRelatedness

Product Relatedness implies that the product is involved in the AE, but it doesn't indicate overdose.   After looking through other fields, it does not look like there is a field that would cover this situation.   In studies, OD  would be a reason why the AE was marked as an SAE.
AE Causality AEREL AEREL AdverseEvent.suspectEntity.causality.productRelatedness

AdverseEvent.suspectEntity.causality.productRelatedness

Action Taken with study Treatment AEACN AEACN AdverseEvent.extension

AdverseEvent.extension(AdverseEvent.mitigatingAction).extension(item).valueCodeableConcept

Pre-adopting R5 capability via a standard extension. Note that the extension captures all actions taken, so filtration would be needed to select only those related to study treatment
Actions Taken with Device AEACNDEV SUPPAE.QVAL AdverseEvent.extension

AdverseEvent.extension(AdverseEvent.mitigatingAction).extension(item).valueCodeableConcept

Pre-adopting R5 capability via a standard extension. Note that the extension captures all actions taken, so filtration would be needed to select only those related to devices
Other Action Taken AEACNOTH AEACNOTH AdverseEvent.extension

AdverseEvent.extension(AdverseEvent.mitigatingAction).extension(item).valueCodeableConcept

Pre-adopting R5 capability via a standard extension. Note that the extension captures all actions taken, so filtration would be needed to exclude actions related to study treatment or device
Outcome of Adverse Event AEOUT AEOUT AdverseEvent.outcome

AdverseEvent.outcome

The coded equivalents matching up the CDISC controlled terminology. Meaning, in the EHR we may not have value-based coordination from FHIR-to-CDISC
AE Caused Study Discontinuation AEDIS SUPPAE.QVAL Add an extension - would need to be specific to study as relationship might vary by study.
AE Related to Non-Study Treatment AERLYSYN Add an extension - would need to be specific to study as relationship might vary by study.
AE Relationship to Non-Study Treatment AERELNST AERELNST Add an extension - would need to be specific to study as relationship might vary by study.
AdverseEvent of Special Interest AESI Add extension, probably on a study-specific link. (Adverse events of interst to one study wouldn't necessarily be of interest to others.)
Pattern of AdverseEvent AEPATT AEPATT Add extension
Concomitant or Additional Treatment Given AECONTRT AECONTRT AdverseEvent.extension

AdverseEvent.extension(AdverseEvent.mitigatingAction).extension(item).valueCodeableConcept

R5 pre-adoption extension. Note that mitigatingActions aren't necessarily treatments, so codes would need to be examined to only map those that were treatments
AE Modified Reported Term AEMODIFY AEMODIFY The fact one of the codings was modified would be captured as an extension
AE Dictionary-Derived Term AEDECOD AEDECOD AdverseEvent.resultingCondition.code

AdverseEvent.resultingCondition.code

Sponsors will populate this through the coding process and is applicable to items using MedDRA coding.
AE Lowest Level Term AELLT AELLT AdverseEvent.resultingCondition.code

AdverseEvent.resultingCondition.code

Sponsors will populate this through the coding process and is applicable to items using MedDRA coding.
AE Lowest Level Term Code AELLTCD AELLTCD AdverseEvent.resultingCondition.code

AdverseEvent.resultingCondition.code

Sponsors will populate this through the coding process and is applicable to items using MedDRA coding.
AE Preferred Term Code AEPTCD AEPTCD AdverseEvent.resultingCondition.code

AdverseEvent.resultingCondition.code

Sponsors will populate this through the coding process and is applicable to items using MedDRA coding.
AE High Level Term AEHLT AEHLT AdverseEvent.resultingCondition.code

AdverseEvent.resultingCondition.code

Sponsors will populate this through the coding process and is applicable to items using MedDRA coding.
AE High Level Term Code AEHLTCD AEHLTCD AdverseEvent.resultingCondition.code

AdverseEvent.resultingCondition.code

Sponsors will populate this through the coding process and is applicable to items using MedDRA coding.
AE High Level Group Term AEHLGT AEHLGT AdverseEvent.resultingCondition.code

AdverseEvent.resultingCondition.code

Sponsors will populate this through the coding process and is applicable to items using MedDRA coding.
AE High Level Group Term Code AEHLGTCD AEHLGTCD AdverseEvent.resultingCondition.code

AdverseEvent.resultingCondition.code

Sponsors will populate this through the coding process and is applicable to items using MedDRA coding.
AE Primary System Organ Class AESOC AESOC AdverseEvent.resultingCondition.code

AdverseEvent.resultingCondition.code

Sponsors will populate this through the coding process and is applicable to items using MedDRA coding.
AE Primary System Organ Class Code AESOCCD AESOCCD AdverseEvent.resultingCondition.code

AdverseEvent.resultingCondition.code

Sponsors will populate this through the coding process and is applicable to items using MedDRA coding.
Any Other Actions Taken AEACNOYN AdverseEvent.extension

AdverseEvent.extension(AdverseEvent.mitigatingAction).extension(item).valueCodeableConcept

R5 pre-adoption extension. Note that mitigatingActions also include treatments, so codes would need to be examined to only map those that were NOT treatments