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 could include information from a wide range of FHIR resources. However, the most typical resources are:
Mappings are provided for all of these.
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 |