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

Medical History

Medical history could include information from a wide range of FHIR resources. However, the most typical resources are:

  • AdverseEvent - These would be filtered to only extract issues that would not qualify as 'adverse events', but were still potentially study-relevant (perhaps having occurred prior to the study).
  • AllergyIntolerance - captures both the propensity to reaction as well as specific reaction occurrences
  • Condition - used to capture healthcare problems as well as other conditions (e.g. pregnancy)
  • Observation - captures symptoms, assessments, non-study pertinent lab results (e.g. blood type), etc.

Mappings are provided for all of these.

MH 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 ResearchStudy.identifier

ResearchSubject.where(individual=(AdverseEvent.subject|Condition.subject|AllergyIntolerance.patient|Observation.subject).study.resolve().partOf.resolve().identifier.value

AdverseEvent.extension(workflow-researchstudy).valueReference.resolve().partOf.resolve().identifier.value

Condition.extension(workflow-researchstudy).valueReference.resolve().partOf.resolve().identifier.value

AllergyIntolerance.extension(workflow-researchstudy).valueReference.resolve().partOf.resolve().identifier.value

Observation.extension(workflow-researchstudy).valueReference.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 path using the extension will only exist if the system maintaining the AdverseEvent/Condition/AllergyIntolerance/Observation is aware of its relevance to the Study.
Study Site ID SITEID DM.SITEID ResearchStudy.site

ResearchSubject.where(individual=(AdverseEvent.subject|Condition.subject|AllergyIntolerance.patient|Observation.subject).study.resolve().identifier.value

AdverseEvent.extension(workflow-researchstudy).valueReference.resolve().identifier.value

Condition.extension(workflow-researchstudy).valueReference.resolve().identifier.value

AllergyIntolerance.extension(workflow-researchstudy).valueReference.resolve().identifier.value

Observation.extension(workflow-researchstudy).valueReference.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 path using the extension will only exist if the system maintaining the AdverseEvent/Condition/AllergyIntolerance/Observation is aware of its relevance to the Study.
Subject ID for the Study SUBJID DM.SUBJID ResearchSubject.identifier

ResearchSubject.where(individual=(AdverseEvent.subject|Condition.subject|AllergyIntolerance.patient|Observation.subject)).identifer.value

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

No standard way to decide which subject identifier to use
Any Medical History Event MHYN If captured, this would be a Questionnaire question. FHIR almost always has some type of history information. Will require review to determine if the history is relevant.
Category for Medical History MHCAT MHCAT Condition.category

Condition.category

The sponsors does not typically require this information from the sites.

If needed there are several options to categorize this based on whether something is a Condition/AllergyIntolerance/Observation/etc. This could also include sub-categorize by diagnosis vs. problem, Allergy vs. intolerance or use Observation.category. But in general, the mapping to both CAT and SCAT is going to be driven by what types of categories the study requires or needs.
AdverseEvent.category

AdverseEvent.category

AllergyIntolerance.category

AllergyIntolerance.category

Observation.category

Observation.category

Subcategory for Medical History MHSCAT MHSCAT Condition.category

Condition.category

The sponsors does not typically require this information from the sites.

If needed there are several options to categorize this based on whether something is a Condition/AllergyIntolerance/Observation/etc. This could also include sub-categorize by diagnosis vs. problem, Allergy vs. intolerance or use Observation.category. But in general, the mapping to both CAT and SCAT is going to be driven by what types of categories the study requires or needs.
AdverseEvent.category

AdverseEvent.category

AllergyIntolerance.category

AllergyIntolerance.category

Observation.category

Observation.category

Medical History Collection Date MHDAT MHDAT Condition.recordedDate

Condition.recordedDate

AdverseEvent.recordedDate

AdverseEvent.recordedDate

AllergyIntolerance.recordedDate

AllergyIntolerance.recordedDate

Observation.effectiveDteTime

Observaton.effectiveDateTime

MH Sponsor Defined Identifier MHSPID MHSPID Condition.identifier

Condition.identifier

If FHIR IDs are used for RELREC, then the sponsor should evaluate its use case as necessary prior to mapping.
AdverseEvent.identifier

AdverseEvent.identifier

AllergyIntolerance.identifier

AlergyIntolerance.identifier

Observation.identifier

Observation.identifier

Medical History Event Date Type MHEVDTYP SUPPMH.QVAL Condition.onset

Condition.onset

AdverseEvent.date

AdverseEvent.date

AllergyIntolerance.onsetDateTime

AllergyIntolerance.onsetDateTime

AllergyIntolerance.onsetRange

AllergyIntolerance.onsetRange

AllergyIntolerance.onsetString

AllergyIntolerance.onsetString

Observation.effectiveDateTime

Observation.effectiveDateTime

Observation.effectivePeriod

Observation.effectivePeriod

Observation.effectiveTiming

Observation.effectiveTiming

Observation.effectiveInstant

Observaton.effectiveInstant

Reported Term for Medical History MHTERM MHTERM Condition.code

Condition.code

AdverseEvent.event

AdverseEvent.event

AllergyIntolerance.code

AllergyIntolerance.code

Observation.code

Observation.code

Medical History Occurrence MHOCCUR MHOCCUR Condition.verificationStatus

Condition.verificationStatus.where(%this IN {'refuted'|'entered-in-error'})

In general in FHIR, records of the absence of Conditions are not normally captured. If the information revolves around "has the patient had X", that would be accomplished through a Questionnaire.Response
AllergyIntolerance.verificationStatus

(AllergyIntolerance.verificationStatus in {'unconfirmed'|'confirmed'|'refuted'|'entered-in-error'}).not()

Observation.effectiveDateTime

Observation.effectiveDateTime

Medical History Event Prespecified MHPRESP MHPRESP Not expect to receive these from the site. How this is populated in the sponsor's database would be up to the sponsor. If available, this would need to be an extension. The notion of pre-specified is part of the questionnaire
Prior Medical History Event MHPRIOR MHSTRTPT; MHSTRF This can be determined from either the onsetDateTime and/or the abatementDateTime. If it were to be flagged on the record, it would need to be an extension on the extension that links to the study.

The sponsor may determine this, based on an anchor point in the protocol.
Ongoing Medical History Event MHONGO MHENRF; MHENRTPT Condition.clinicalStatus

Condition.clinicalStatus

AdverseEvent.outcome

AdverseEvent.outcome

Medical History Event Start Date MHSTDAT MHSTDTC Condition.onsetDateTime

Condition.onset.onsetDateTime

AdverseEvent.date

AdverseEvent.date

AllergyIntolerance.onsetDateTime

AllergyIntolerance.onsetDateTime

Observation.effectiveDateTime

Observation.effectiveDateTime

Medical History Event End Date MHENDAT MHENDTC Condition.abatementDateTime

Condition.abatementDateTime

Medical History Event Location MHLOC MHLOC Condition.bodySite

Condition.bodysite

Condition.bodySite

AdverseEvent.resultingCondition.resolve().bodySite

Observation.bodySite

Observation.bodySite

Observation.specimen.resolve().bodySite

Specimen.bodySite

Observation.bodySite

Observation.specimen.resolve().bodySite

Medical History Event Laterality MHLAT MHLAT There should be a standard extension defined that allows Condition, AdverseEvent, Observation and Specimen to point to a BodyStructure.
Medical History Directionality MHDIR MHDIR There should be a standard extension defined that allows Condition, AdverseEvent, Observation and Specimen to point to a BodyStructure.
MH Event Location Portion or Totality MHPORTOT MHPORTOT This would likely be an extension on Condition
MH Modified Reported Term MHMODIFY MHMODIFY Condition.code

Condition.code

Condition.code can have numerous coding all with varying levels of granularity. The type of granularity is conveyed either by the code system or knowledge of the code
AdverseEvent.code

AdverseEvent.code

AllergyIntolerance.code

AllergyIntolerance.code

Observation.code

Observation.code

MH Dictionary-Derived Term MHDECOD MHDECOD Condition.code

Condition.code

Condition.code can have numerous coding all with varying levels of granularity. The type of granularity is conveyed either by the code system or knowledge of the code
AdverseEvent.code

AdverseEvent.code

AllergyIntolerance.code

AllergyIntolerance.code

Observation.code

Observation.code

Medical History Event Lowest Level Term MHLLT MHLLT Condition.code

Condition.code

Condition.code can have numerous coding all with varying levels of granularity. The type of granularity is conveyed either by the code system or knowledge of the code
AdverseEvent.code

AdverseEvent.code

AllergyIntolerance.code

AllergyIntolerance.code

Observation.code

Observation.code

MH Event Lowest Level Term Code MHLLTCD MHLLTCD Condition.code

Condition.code

Condition.code can have numerous coding all with varying levels of granularity. The type of granularity is conveyed either by the code system or knowledge of the code
AdverseEvent.code

AdverseEvent.code

AllergyIntolerance.code

AllergyIntolerance.code

Observation.code

Observation.code

MH Event Preferred Term Code MHPTCD MHPTCD Condition.code

Condition.code

Condition.code can have numerous coding all with varying levels of granularity. The type of granularity is conveyed either by the code system or knowledge of the code
AdverseEvent.code

AdverseEvent.code

AllergyIntolerance.code

AllergyIntolerance.code

Observation.code

Observation.code

Medical History High Level Term MHHLT MHHLT Condition.code

Condition.code

Condition.code can have numerous coding all with varying levels of granularity. The type of granularity is conveyed either by the code system or knowledge of the code
AdverseEvent.code

AdverseEvent.code

AllergyIntolerance.code

AllergyIntolerance.code

Observation.code

Observation.code

MH Event High Level Term Code MHHLTCD MHHLTCD Condition.code

Condition.code

Condition.code can have numerous coding all with varying levels of granularity. The type of granularity is conveyed either by the code system or knowledge of the code
AdverseEvent.code

AdverseEvent.code

AllergyIntolerance.code

AllergyIntolerance.code

Observation.code

Observation.code

MH Event High Level Group Term MHHLGT MHHLGT Condition.code

Condition.code

Condition.code can have numerous coding all with varying levels of granularity. The type of granularity is conveyed either by the code system or knowledge of the code
AdverseEvent.code

AdverseEvent.code

AllergyIntolerance.code

AllergyIntolerance.code

Observation.code

Observation.code

MH Event High Level Group Term Code MHHLGTCD MHHLGTCD Condition.code

Condition.code

Condition.code can have numerous coding all with varying levels of granularity. The type of granularity is conveyed either by the code system or knowledge of the code
AdverseEvent.code

AdverseEvent.code

AllergyIntolerance.code

AllergyIntolerance.code

Observation.code

Observation.code

MH Event Primary System Organ Class MHSOCCD MHSCOC Condition.code

Condition.code

Condition.code can have numerous coding all with varying levels of granularity. The type of granularity is conveyed either by the code system or knowledge of the code
AdverseEvent.code

AdverseEvent.code

AllergyIntolerance.code

AllergyIntolerance.code

Observation.code

Observation.code

MH Event Primary System Organ Class Code MHSOCCD MHSOCCD Condition.code

Condition.code

Condition.code can have numerous coding all with varying levels of granularity. The type of granularity is conveyed either by the code system or knowledge of the code
AdverseEvent.code

AdverseEvent.code

AllergyIntolerance.code

AllergyIntolerance.code

Observation.code

Observation.code