This page is part of the Common Data Models Harmonization FHIR IG (v0.1.0: Release 4 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
Mappings and Profiles for the IG
Mappings
This section contains the mappings between the various CDMs, BRIDG and the FHIR Resources/profiles. In each mapping the CDM data element is mapped to the appropriate BRIDG data element and the FHIR Data Element. The column FHIR Resource/Profile/Extension identifies the specific profile and/or extension if one exists. If the profiles do not exist then they are mapped to the resource. New profiles and extensions will be added where necessary as the pilot implementations provide feedback through the ballot process.
Mapping Conventions Used
The mappings use the US Core profiles leverages US Core profiles where they exist.
- For the data elements required for the CDMH project which are not marked as “MUST SUPPORT” in the US core profile but present in the base resource, the CDMH project will still leverage the US Core profile and add the needed data elements.
- For the data elements required for the CDMH project, but are not present in the base resource, extensions will be added to the corresponding US Core profiles. In the mapping tables below there are proposed names to be used for these extensions.
- For the data elements where multiple resources/profiles will/can be used, the list of the resources and profiles will be listed separated by comma.
We ask for feedback on these extensions before we proliferate the extensions.
Mapping Semantics
The CDMH project analysis has identified many areas where semantics of the data elements have to be considered to perform the mappings. The following are specific areas where translators written to map between the source and target formats have to apply proper semantic transformation to achieve the desired results.
- Date and Time Representations.
- Vocabulary Mappings from source vocabulary (CDMs represtation) to target vocabularies (BRIDG and FHIR representation) has to be considered to minimize or prevent data loss. The following are codes that need to be translated between the CDM models and FHIR code systems and value sets.
- Diagnosis codes from source vocabulary to ICD10-CM
- Procedure codes from source vocabulary to CPT-4
- Sex codes
- Sexual Orientation codes
- Gender Identity codes
- Race codes
- Ethnicity codes
- Encounter codes
- Encounter class codes
- Drug codes
- Medication Route codes
- Medication Dosage form codes
- Specimen types
- Observation codes
- Observation value units
CDMs to BRIDG Mappings
The mappings of the various CDMs to BRIDG data model which was used as the intermediary model in the CDMH project are documented in the following spreadsheet.
**Feedback Required**
In future versions of the IG, we may consider adding a BRIDG column to the below tables to have the BRIDG mapping side by side to the FHIR mappings. Another option is to add separate sections for each CDM to BRIDG similar to what has been done for FHIR. Please provide feedback on whether any of the above options would help or if it would confuse the readers since the IG's primary intent is to provide mappings from CDMs to FHIR.
PCORnet CDM version 4 to FHIR Mappings
The table below outlines the mappings between PCORnet CDM version 4 and FHIR Resources/profiles and extensions.
PCORnet Data Element | FHIR Data Element | FHIR Resource/Profile/Extension | ||
Table : DEMOGRAPHICS | ||||
patid | Patient.identifier | us-core-patient | ||
birth_date | Patient.birthDate | us-core-patient | ||
birth_time | Patient.birthDate | us-core-patient | ||
sex | Patient.extension: us-core-birthsex | us-core-patient | ||
sexual_orientation | Observation.code, Observation.value[x] | us-core-observationresults | ||
gender_identity | Observation.code, Observation.value[x] | us-core-observationresults | ||
hispanic | Patient.extension: us-core-ethnicity | us-core-patient | ||
race | Patient.extension: us-core-race | us-core-patient | ||
biobank_flag | Not Mapped for CDMH. | Not Mapped for CDMH | ||
pat_pref_language_spoken | Patient.communication.language | us-core-patient | ||
Table : ENCOUNTER | ||||
encounterid | Encounter.id | us-core-encounter | ||
patid | Encounter.subject | us-core-encounter | ||
admit_date | Encounter.period | us-core-encounter | ||
admit_time | Encounter.period | us-core-encounter | ||
discharge_date | Encounter.period | us-core-encounter | ||
discharge_time | Encounter.period | us-core-encounter | ||
providerid | Encounter.participant.individual.id | us-core-encounter, us-core-practitioner | ||
facility_location | Encounter.location.location.address | us-core-encounter, us-core-location | ||
enc_type | Encounter.class | us-core-encounter | ||
facilityid | Encounter.location.location.identifier | us-core-encounter, us-core-location | ||
discharge_disposition | Encounter.extension (Proposed Name: discharge-disposition: CodeableConcept) : or Observation.code, Observation.value[x] | us-core-encounter or us-core-observationresults | ||
discharge_status | Encounter.location.location.type | us-core-encounter,us-core-location | ||
drg | Encounter.extension (Proposed Name: drg : CodeableConcept) | us-core-encounter | ||
drg_type | Encounter.extension (Proposed Name: drg-type : CodeableConcept) | us-core-encounter | ||
admitting_source | Encounter.hospitalization.admitSource or Encounter.hospitalization.origin(location).type | us-core-encounter, us-core-location | ||
payer_type_primary | Encounter.extension (Proposed Name: payer-type-primary : Coding) | us-core-encounter | ||
payer_type_secondary | Encounter.extension (Proposed Name: payer-type-secondary : Coding) | us-core-encounter | ||
facility_type | Encounter.location.location.type | us-core-encounter, us-core-location | ||
Table : ENROLLMENT | ||||
patid | ResearchStudy.enrollment.member.entity.id | ResearchStudy | ||
enr_start_date | ResearchStudy.enrollment.member.period | ResearchStudy | ||
enr_end_date | ResearchStudy.enrollment.member.period | ResearchStudy | ||
chart | ResearchStudy:Extension (Proposed Name: chart-availability - Boolean) | ResearchStudy | ||
enr_basis | ResearchStudy.enrollment.member.period (Differnt Group for different time periods for same patient) | ResearchStudy | ||
Table : DIAGNOSIS | ||||
diagnosisid | Condition.id | us-core-condition | ||
patid | Condition.subject | us-core-condition | ||
encounterid | Condition.encounter | us-core-condition | ||
enc_type | Condition.encounter.class | us-core-condition,us-core-encounter | ||
admit_date | Condition.encounter.period | us-core-condition,us-core-encounter | ||
providerid | Condition.encounter.participant.individual.id | us-core-condition,us-core-encounter, us-core-practitioner | ||
dx | Condition.code | us-core-condition | ||
dx_type | Condition.code | us-core-condition | ||
dx_source | Condition.encounter.diagnosis.use | us-core-condition,us-core-encounter | ||
dx_origin | Condition.Extension (Proposed Name: data-source-type : CodeableConcept) | us-core-condition | ||
pdx | Condition.encounter.diagnosis.rank | us-core-condition,us-core-encounter | ||
dx_poa | Condition.encounter.diagnosis.use | us-core-condition,us-core-encounter | ||
Table : PROCEDURES | ||||
proceduresid | Procedure.id | us-core-procedure | ||
patid | Procedure.subject | us-core-procedure | ||
encounterid | Procedure.encounter | us-core-procedure | ||
enc_type | Procedure.encounter.class | us-core-procedure,us-core-encounter | ||
admit_date | Procedure.encounter.period | us-core-procedure,us-core-encounter | ||
providerid | Procedure.encounter.participant.individual.id | us-core-procedure,us-core-encounter,us-core-practitioner | ||
px_date | Procedure.performedDateTime | us-core-procedure | ||
px | Procedure.code | us-core-procedure | ||
px_type | Procedure.code | us-core-procedure | ||
px_source | Procedure.Extension (Proposed Name: data-source-type : CodeableConcept) | us-core-procedure | ||
ppx | Procedure.Extension (Proposed Name: principal-flag : Boolean) | us-core-procedure | ||
Table : VITAL | ||||
vitalid | Observation.id | observation-vitalsigns | ||
patid | Observation.subject | observation-vitalsigns | ||
encounterid | Observation.encounter | observation-vitalsigns | ||
measure_date | Observation.effectiveDateTime | observation-vitalsigns | ||
measure_time | Observation.effectiveDateTime | observation-vitalsigns | ||
vital_source | Observation.Extension (Proposed Name: data-source-type : CodeableConcept) | observation-vitalsigns | ||
ht | Observation.code,Observation.value[x] | observation-vitalsigns | ||
wt | Observation.code,Observation.value[x] | observation-vitalsigns | ||
systolic | Observation.code,Observation.value[x] | observation-vitalsigns | ||
original_bmi | Observation.code,Observation.value[x] | observation-vitalsigns | ||
bp_position | Observation.bodySite | observation-vitalsigns | ||
smoking | Observation.code,Observation.value[x] | us-core-smokingstatus | ||
tobacco | Observation.code,Observation.value[x] | us-core-observationresults | ||
tobacco_type | Observation.code,Observation.value[x] | us-core-observationresults | ||
Table : DISPENSING | ||||
dispensingid | MedicationDispense.id | MedicationDispense | ||
patid | MedicationDispense.subject | MedicationDispense | ||
prescribingid | MedicationDispense.authorizingPrescription.requester | MedicationDispense,us-core-medicationrequest,us-core-practitioner | ||
dispense_date | MedicationDispense.whenHandedOver | MedicationDispense | ||
ndc | MedicationDispense.medicationCodeableConcept | MedicationDispense | ||
dispense_sup | MedicationDispense.daysSupply | MedicationDispense | ||
dispense_amt | MedicationDispense.quantity | MedicationDispense | ||
dispense_dose_disp | MedicationDispense.dosageInstruction.dose[x] | MedicationDispense | ||
dispense_dose_disp_unit | MedicationDispense.dosageInstruction.doseAndRate | MedicationDispense | ||
dispense_route | MedicationDispense.dosageInstruction.route | MedicationDispense | ||
Table : LAB_RESULT_CM | ||||
lab_result_cm_id | Observation.id | us-core-observationresults | ||
patid | Observation.subject | us-core-observationresults | ||
encounterid | Observation.encountr | us-core-observationresults | ||
lab_name | Observation.performer(organization).name | us-core-observationresults, us-core-organization | ||
specimen_source | Observation.specimen.bodySite | us-core-observationresults,Specimen | ||
lab_loinc | Observation.code | us-core-observationresults | ||
priority | Observation.Extension (Proposed Name: priority : Coding) | us-core-observationresults | ||
result_loc | Observation.performer(organization).type | us-core-observationresults, us-core-organization | ||
lab_px | Observation.partOf (Procedure) | us-core-observationresults, us-core-procedure | ||
lab_px_type | Observation.partOf (Procedure) | us-core-observationresults, us-core-procedure | ||
lab_order_date | Observation.basedOn(ServiceRequest).occurenceDateTime | us-core-observationresults, ServiceRequest | ||
specimen_date | Observation.specimen.collection.collectedDateTime | us-core-observationresults,Specimen | ||
specimen_time | Observation.specimen.collection.collectedDateTime | us-core-observationresults,Specimen | ||
result_date | Observation.issued | us-core-observationresults | ||
result_time | Observation.issued | us-core-observationresults | ||
result_qual | Observation.value[x] | us-core-observationresults | ||
result_num | Observation.value[x] | us-core-observationresults | ||
result_modifier | Observation.value[x] | us-core-observationresults | ||
result_unit | Observation.value[x] | us-core-observationresults | ||
norm_range_low | Observation.referenceRange.low | us-core-observationresults | ||
norm_modifier_low | Observation.referenceRange.modifierExtension | us-core-observationresults | ||
norm_range_high | Observation.referenceRange.high | us-core-observationresults | ||
norm_modifier_high | Observation.referenceRange.modifierExtension | us-core-observationresults | ||
abn_ind | Observation.interpretation | us-core-observationresults | ||
result_snomed | Observation.value[x](CodeableConcept) | us-core-observationresults | ||
raw_lab_name | Observation.code | us-core-observationresults | ||
raw_result | Observation.value[x] | us-core-observationresults | ||
Table : CONDITION | ||||
conditionid | Condition.id | us-core-condition | ||
patid | Condition.subject | us-core-condition | ||
encounterid | Condition.encounter | us-core-condition | ||
report_date | Condition.recordedDate | us-core-condition | ||
resolve_date | Condition.abatementDateTime | us-core-condition | ||
onset_date | Condition.onsetDateTime | us-core-condition | ||
condition_status | Condition.clinicalStatus | us-core-condition | ||
condition | Condition.code | us-core-condition | ||
condition_type | Condition.code | us-core-condition | ||
condition_source | Condition.Extension (Proposed Name: data-source-type : CodeableConcept) | us-core-condition | ||
Table : PRO_CM | ||||
pro_cm_id | QuestionnaireResponse.id | QuestionnaireResponse | ||
patid | QuestionnaireResponse.subject | QuestionnaireResponse | ||
encounterid | QuestionnaireResponse.encounter | QuestionnaireResponse | ||
pro_type | QuestionnaireResponse.questionnaire | QuestionnaireResponse,Questionnaire | ||
pro_item_name | QuestionnaireResponse.questionnaire.item | QuestionnaireResponse,Questionnaire | ||
pro_item_loinc | QuestionnaireResponse.questionnaire.item.code | QuestionnaireResponse, Questionnaire | ||
pro_date | QuestionnaireResponse.authored | QuestionnaireResponse | ||
pro_time | QuestionnaireResponse.authored | QuestionnaireResponse | ||
pro_response | QuestionnaireResponse | QuestionnaireResponse | ||
pro_response_text | QuestionnaireResponse.item.answer | QuestionnaireResponse | ||
pro_response_num | QuestionnaireResponse.item.answer | QuestionnaireResponse | ||
pro_method | QuestionnaireResponse.Extension (Proposed Name: administration-method : CodeableConcept) | QuestionnaireResponse | ||
pro_mode | QuestionnaireResponse.source | QuestionnaireResponse | ||
pro_cat | QuestionnaireResponse.Extension (Proposed Name: administration-method : CodeableConcept) | QuestionnaireResponse | ||
pro_item_version | QuestionnaireResponse.quesionnaire.item | QuestionnaireResponse, Questionnaire | ||
pro_measure_name | QuestionnaireResponse.questionnaire.name | QuestionnaireResponse, Questionnaire | ||
pro_measure_seq | QuestionnaireResponse.questionnaire.item.linkId | QuestionnaireResponse, Questionnaire | ||
pro_measure_score | QuestionnaireResponse.item (Score is also represented as an item) | QuestionnaireResponse | ||
pro_measure_theta | QuestionnaireResponse.item (Score is also represented as an item) | QuestionnaireResponse | ||
pro_measure_scaled_tscore | QuestionnaireResponse.item (Score is also represented as an item) | QuestionnaireResponse | ||
pro_measure_standard_error | QuestionnaireResponse.item (Standard Error is also represented as an item) | QuestionnaireResponse | ||
pro_measure_count_error | QuestionnaireResponse.item (Count Error is also represented as an item) | QuestionnaireResponse | ||
pro_measure_loinc | QuestionnaireResponse.questionnaire.code | QuestionnaireResponse, Questionnaire | ||
pro_measure_version | QuestionnaireResponse.questionnaire.version | QuestionnaireResponse, Questionnaire | ||
pro_item_fullname | QuestionnaireResponse.questionnaire.name | QuestionnaireResponse, Questionnaire | ||
pro_item_text | QuestionnaireResponse.questionnaire.item.text | QuestionnaireResponse, Questionnaire | ||
pro_measure_fullname | QuestionnaireResponse.questionnaire.name | QuestionnaireResponse, Questionnaire | ||
Table : PRESCRIBING | ||||
prescribingid | MedicationRequestion.id | us-core-medicationrequest | ||
patid | MedicationRequest.subject | us-core-medicationrequest | ||
encounterid | MedicationRequest.encounter | us-core-medicationrequest | ||
rx_providerid | MedicationRequest.requester | us-core-medicationrequest, us-core-practitioner | ||
rx_order_date | MedicationRequest.authoredOn | us-core-medicationrequest | ||
rx_order_time | MedicationRequest.authoredOn | us-core-medicationrequest | ||
rx_start_date | MedicationRequest.dispenseRequest.validityPeriod | us-core-medicationrequest | ||
rx_end_date | MedicationRequest.dispenseRequest.validityPeriod | us-core-medicationrequest | ||
rx_quantity | MedicationRequest.dispenseRequest.quantity | us-core-medicationrequest | ||
rx_dose_form | MedicationRequest.dosageInstruction.doseAndRate.dose[x] | us-core-medicationrequest | ||
rx_refills | MedicationRequest.dispenseRequest.numberOfRepeatsAllowed | us-core-medicationrequest | ||
rx_days_supply | MedicationRequest.dispenseRequest.expectedSupplyDuration | us-core-medicationrequest | ||
rx_frequency | MedicationRequest.dosageInstruction.timing | us-core-medicationrequest | ||
rx_basis | MedicationRequest.intent | us-core-medicationrequest | ||
rxnorm_cui | MedicationRequest.medicationCodeableConcept | us-core-medicationrequest | ||
rx_dose_ordered | MedicationRequest.dosageInstruction.doseAndRate.dose[x] | us-core-medicationrequest | ||
rx_dose_ordered_unit | MedicationRequest.dosageInstruction.doseAndRate.dose[x] | us-core-medicationrequest | ||
rx_route | MedicationRequest.dosageInstruction.route | us-core-medicationrequest | ||
Table : DEATH | ||||
patid | AdverseEvent.subject | AdverseEvent | ||
death_date | AdverseEvent.date | AdverseEvent | ||
death_date_impute | AdverseEvent.recordedDate | AdverseEvent | ||
death_source | AdverseEvent.contributor | AdverseEvent | ||
death_match_confidence | AdverseEvent.Extension (Proposed Name: uncertainity-code: CodeableConcept) | AdverseEvent | ||
Table : DEATH_CAUSE | ||||
patid | AdverseEvent.subject | AdverseEvent | ||
death_cause | AdverseEvent.suspectedEntity.causality.Extension (Proposed Name: cause-code : CodeableConcept) | AdverseEvent | ||
death_cause_code | AdverseEvent.suspectedEntity.causality.Extension (Proposed Name: cause-code : CodeableConcept) | AdverseEvent | ||
death_cause_type | AdverseEvent.suspectedEntity.causality.method | AdverseEvent | ||
death_cause_source | AdverseEvent.contributor | AdverseEvent | ||
death_cause_confidence | AdverseEvent.Extension (Proposed Name: uncertainity-code: CodeableConcept) | AdverseEvent |
OMOP to FHIR Mappings
The table below outlines the mappings between OMOP and FHIR Resources/profiles and extensions.
OMOP Data Element | FHIR Data Element | FHIR Resource/Profile/Extension | ||
Table : Person | ||||
person_id | Patient.identifier | us-core-patient | ||
provider_id | Patient.generalPractitioner | Patient | ||
care_site_id | BodySite.patient | BodySite | ||
gender_concept_id | Patient.gender | us-core-patient | ||
year_of_birth | Patient.birthDate | us-core-patient | ||
month_of_birth | Patient.birthDate | us-core-patient | ||
day_of_birth | Patient.birthDate | us-core-patient | ||
birth_datetime | Patient.birthDate | us-core-patient | ||
race_concept_id | Patient.extension: us-core-race | us-core-patient | ||
ethnicity_concept_id | Patient.extension: us-core-ethnicity | us-core-patient | ||
location_id | Patient.address | Patient | ||
Table : VISIT_OCCURRENCE | ||||
visit_occurence_id | Encounter.id | us-core-encounter | ||
care_site_id | Encounter.location.location.identifier | us-core-encounter, us-core-location | ||
admitting_source_concept_id | Encounter.hospitalization.admitSource or Encounter.hospitalization.origin(location).type | us-core-encounter, us-core-location | ||
discharge_to_concept_id | Encounter.location.location.type | us-core-encounter,us-core-location | ||
preceding_visit_occurence | Encounter.partOf | us-core-encounter | ||
person_id | Encounter.subject | us-core-encounter | ||
visit_concept_id | Encounter.type | us-core-encounter | ||
visit_start_date | Encounter.period | us-core-encounter | ||
visit_start_datetime | Encounter.period | us-core-encounter | ||
visit_end_date | Encounter.period | us-core-encounter | ||
visit_end_datetime | Encounter.period | us-core-encounter | ||
visit_type_concept_id | Encounter.extension (Proposed Name: source-data-type : CodeableConcept) | us-core-encounter | ||
Table : CARE_SITE | ||||
care_site_id | Location.id | us-core-location | ||
care_site_name | Location.name | us-core-location | ||
place_of_service_concept_id | Location.type | us-core-location | ||
location_id | Location.address | us-core-location | ||
Table : CONDITION_OCCURRENCE | ||||
condition_occurrence_id | Condition.id | us-core-condition | ||
provider_id | Condition.asserter | us-core-condition | ||
visit_occurrence_id | Condition.encounter | us-core-condition | ||
condition_status_concept_id | Condition.clinicalStatus | us-core-condition | ||
person_id | Condition.subject | us-core-condition | ||
condition_concept_id | Condition.code | us-core-condition | ||
condition_start_date | Condition.onset[x] | us-core-condition | ||
condition_start_datetime | Condtion.onset[x] | us-core-condition | ||
condition_end_date | Condition.abatement[x] | us-core-condition | ||
condition_end_datetime | Condition.abatement[x] | us-core-condition | ||
condition_type_concept_id | Condition.Extension (Proposed Name: raw-value : CodeableConcept) | us-core-condition | ||
stop_reason | Condition.Extension (Proposed Name: abatement-reason : CodeableConcept) | us-core-condition | ||
Table : DEATH | ||||
person_id | AdverseEvent.subject | AdverseEvent | ||
death_date | AdverseEvent.date | AdverseEvent | ||
death_datetime | AdverseEvent.recordedDate | AdverseEvent | ||
death_type_concept_id | AdverseEvent.suspectedEntity.causality.Extension (Proposed Name: cause-code : CodeableConcept) | AdverseEvent | ||
cause_concept_id | AdverseEvent.suspectedEntity.causality.Extension (Proposed Name: cause-code : CodeableConcept) | AdverseEvent | ||
Table : DEVICE_EXPOSURE | ||||
device_exposure_id | Procedure.id | us-core-procedure | ||
quantity | Procedure.focalDevice,Procedure.usedReference,Procedure.usedCode | us-core-procedure | ||
provider_id | Procedure.performer.actor | us-core-procedure, us-core-practitioner | ||
visit_occurrence_id | Procedure.encounter | us-core-procedure | ||
person_id | Procedure.subject | us-core-procedure | ||
device_concept_id | Procedure.focalDevice,Procedure.usedReference,Procedure.usedCode | us-core-procedure | ||
device_exposure_start_date | Procedure.performedPeriod | us-core-procedure | ||
device_exposure_start_datetime | Procedure.performedPeriod | us-core-procedure | ||
device_exposure_end_date | Procedure.performedPeriod | us-core-procedure | ||
device_exposure_end_datetime | Procedure.performedPeriod | us-core-procedure | ||
device_type_concept_id | Procedure.Extension (Proposed Name: raw-value : CodeableConcept) | us-core-procedure | ||
unique_device_id | Procedure.focalDevice,Procedure.usedReference | us-core-procedure | ||
Table :DRUG_EXPOSURE | ||||
drug_exposure_id | MedicationStatement.id | us-core-medicationstatement | ||
stop_reason | MedicationStatement.statusReason | us-core-medicationstatement | ||
refills | MedicationStatement.basedOn(MedicationRequest).dispenseRequest.numberOfRepeatsAllowed | us-core-medicationstatement, us-core-medicationrequest | ||
quantity | MedicationStatement.basedOn(MedicationRequest).dispenseRequest.quantity | us-core-medicationstatement, us-core-medicationrequest | ||
days_supply | MedicationStatement.basedOn(MedicationRequest).dispenseRequest.expectedSupplyDuration | us-core-medicationstatement, us-core-medicationrequest | ||
lot_number | MedicationStatement.medication.batch.lotNumber | us-core-medicationstatement, us-core-medication | ||
sig | MedicationStatement.basedOn(MedicationRequest).dosageInstruction.text | us-core-medicationstatement, us-core-medicationrequest | ||
route_concept_id | MedicationStatement.basedOn(MedicationRequest).dosageInstruction.route | us-core-medicationstatement, us-core-medicationrequest | ||
provider_id | MedicationStatement.basedOn(MedicationRequest).requester | us-core-medicationstatement, us-core-medicationrequest | ||
visit_occurrence_id | MedicationStatement.context | us-core-medicationstatement, us-core-encounter | ||
drug_source_value | MedicationStatement.Extension (Proposed Name: raw-value : CodeableConcept) | us-core-medicationstatement | ||
person_id | MedicationStatement.subject | us-core-medicationstatement | ||
drug_concept_id | MedicationStatement.medicationCodeableConcept | us-core-medicationstatement | ||
drug_exposure_start_date | MedicationStatement.effectivePeriod | us-core-medicationstatement | ||
drug_exposure_start_datetime | MedicationStatement.effectivePeriod | us-core-medicationstatement | ||
drug_exposure_end_date | MedicationStatement.effectivePeriod | us-core-medicationstatement | ||
drug_exposure_end_datetime | MedicationStatement.effectivePeriod | us-core-medicationstatement | ||
verbatim_end_date | MedicationStatement.basedOn(MedicationRequest).validityPeriod | us-core-medicationstatement, us-core-medicationrequest | ||
drug_type_concept_id | MedicationStatement.medicationCodeableConcept | us-core-medicationstatement | ||
Table : LOCATION | ||||
location_id | Location.id | us-core-location | ||
address_1 | Location.address.line | us-core-location | ||
address_2 | Location.address.line | us-core-location | ||
city | Location.address.city | us-core-location | ||
state | Location.address.state | us-core-location | ||
zip | Location.address.postalCode | us-core-location | ||
country | Location.address.country | us-core-location | ||
Table :MEASUREMENT | ||||
measurement_id | Observation.id | us-core-observationresults | ||
unit_concept_id | Observation.value[x] | us-core-observationresults | ||
range_low | Observation.referenceRange.low | us-core-observationresults | ||
range_high | Observation.referenceRange.high | us-core-observationresults | ||
provider_id | Observation.performer (Practitioner) | us-core-observationresults | ||
visit_occurrence_id | Observation.encounter | us-core-observationresults | ||
measurement_source_value | Observation.Extension (Proposed Name: raw-value : CodeableConcept) | us-core-observationresults | ||
person_id | Observation.subject | us-core-observationresults | ||
measurement_concept_id | Observation.code | us-core-observationresults | ||
measurement_date | Observation.effectiveDateTime | us-core-observationresults | ||
measurement_datetime | Observation.effectiveDateTime | us-core-observationresults | ||
measurement_type_concept_id | Observation.meta.source | us-core-observationresults | ||
operator_concept_id | Not sure why this is required | None | ||
value_as_number | Observation.value[x] | us-core-observationresults | ||
value_as_concept_id | Observation.valueCodeableConcept | us-core-observationresults | ||
Table :OBSERVATION_PERIOD (Not Required to be mapped) | ||||
Table : OBSERVATION | ||||
observation_id | Observation.id | us-core-observationresults | ||
qualifier_concept_id | Observation.Extension (Proposed Name: decision-aid-alert : CodeableConcept) | us-core-observationresults | ||
unit_concept_id | Observation.value[x] | us-core-observationresults | ||
provider_id | Observation.performer (Practitioner) | us-core-observationresults | ||
visit_occurrence_id | Observation.encounter | us-core-observationresults | ||
person_id | Observation.subject | us-core-observationresults | ||
observation_concept_id | Observation.code | us-core-observationresults | ||
observation_date | Observation.effectiveDateTime | us-core-observationresults | ||
observation_datetime | Observation.effectiveDateTime | us-core-observationresults | ||
observation_type_concept_id | Observation.category | us-core-observationresults | ||
value_as_number | Observation.value[x] | us-core-observationresults | ||
value_as_string | Observation.valueString | us-core-observationresults | ||
value_as_concept_id | Observation.valueCodeableConcept | us-core-observationresults | ||
Table : PROCEDURE_OCCURRENCE | ||||
procedure_occurrence_id | Procedure.id | us-core-procedure | ||
visit_occurrence_id | Procedure.encounter | us-core-procedure | ||
person_id | Procedure.subject | us-core-procedure | ||
procedure_concept_id | Procedure.code | us-core-procedure | ||
procedure_date | Procedure.performedDateTime | us-core-procedure | ||
procedure_datetime | Procedure.performedDateTime | us-core-procedure | ||
procedure_type_concept_id | Procedure.Extension (Proposed Name: source-data-type : CodeableConcept) | us-core-procedure | ||
modifier_concept_id | Not Mapped currently | |||
quantity | Procedure.Extension (Proposed Name: num-of-procedures : CodeableConcept) | us-core-procedure | ||
provider_id | Procedure.performer.actor | us-core-procedure | ||
Table : PROVIDER | ||||
provider_id | Practitioner.id | us-core-practitioner | ||
provider_name | Practitioner.name | us-core-practitioner | ||
npi | Practitioner.identifier | us-core-practitioner | ||
dea | Practitioner.qualification | us-core-practitioner | ||
specialty_concept_id | PractitionerRole.specialty | us-core-practitionerrole | ||
care_site_id | PractitionerRole.location | us-core-practitionerrole | ||
year_of_birth | Practitioner.birthDate | us-core-practitioner | ||
gender_concept_id | Practitioner.gender | us-core-practitioner | ||
Table : SPECIMEN | ||||
specimen_id | Specimen.id | Specimen | ||
disease_status_concept_id | Specimen.Extension (Proposed Name: disease-status-code : CodeableConcept) | Specimen | ||
person_id | Specimen.subject | Specimen | ||
specimen_concept_id | Specimen.type | Specimen | ||
specimen_type_concept_id | Specimen.Extension (Proposed Name: source-data-type : CodeableConcept) | Specimen | ||
specimen_date | Specimen.collection.collectedDateTime | Specimen | ||
specimen_datetime | Specimen.collection.collectedDateTime | Specimen | ||
quantity | Specimen.collection.quantity | Specimen | ||
unit_concept_id | Specimen.collection.quantity | Specimen | ||
anatomic_site_concept_id | Specimen.bodySite | Specimen |
Sentinel to FHIR Mappings
The table below outlines the mappings between Sentinel and FHIR Resources/profiles and extensions.
Sentinel Data Element | FHIR Data Element | FHIR Resource/Profile/Extension | ||
Table : DEMOGRAPHIC | ||||
PatID | Patient.identifier | us-core-patient | ||
Birth-Date | Patient.birthDate | us-core-patient | ||
Sex | Patient.extension: us-core-birthsex | us-core-patient | ||
Hispanic | Patient.extension: us-core-ethnicity | us-core-patient | ||
Race | Patient.extension: us-core-race | us-core-patient | ||
Zip | Patient.address | Patient | ||
Zip_Date | Patient.address.period | Patient | ||
Table : ENCOUNTER | ||||
EncounterID | Encounter.id | us-core-encounter | ||
PatID | Encounter.subject | us-core-encounter | ||
ADATE | Encounter.period | us-core-encounter | ||
DDATE | Encounter.period | us-core-encounter | ||
Provider | Encounter.participant.individual.id | us-core-encounter, us-core-practitioner | ||
Facility_Location | Encounter.location.location.address | us-core-encounter, us-core-location | ||
EncType | Encounter.class | us-core-encounter | ||
Facility_Code | Encounter.location.location.identifier | us-core-encounter, us-core-location | ||
Discharge_Disposition | Encounter.extension (Proposed Name: discharge-disposition: CodeableConcept) : or Observation.code, Observation.value[x] | us-core-encounter or us-core-observationresults | ||
Discharge_Status | Encounter.location.location.type | us-core-encounter,us-core-location | ||
DRG | Encounter.extension (Proposed Name: drg : CodeableConcept) | us-core-encounter | ||
DRG_Type | Encounter.extension (Proposed Name: drg-type : CodeableConcept) | us-core-encounter | ||
Admitting_Source | Encounter.hospitalization.admitSource or Encounter.hospitalization.origin(location).type | us-core-encounter, us-core-location |
i2b2 to FHIR Mappings
The table below outlines the mappings between i2b2 and FHIR Resources/profiles and extensions.
i2b2 Data Element | FHIR Data Element | FHIR Resource/Profile/Extension | ||
Table : Demographics | ||||
birth_date | Patient.birthDate | us-core-patient | ||
Death_date | Patient.deceasedDateTime | Patient | ||
sex | Patient.extension: us-core-birthsex | us-core-patient | ||
Hispanic | Patient.extension: us-core-ethnicity | us-core-patient | ||
Race | Patient.extension: us-core-race | us-core-patient | ||
Vital_status | Patient.deceasedBoolean | Patient | ||
Table : DIAGNOSIS | ||||
DIAGNOSIS_CODE | Condition.code | us-core-condition | ||
DIAGNOSIS_CODING_SYSTEM | Condition.code | us-core-condition | ||
DIAGNOSIS_CODING_SYSTEM_VERSION | Condition.code | us-core-condition | ||
DIAGNOSIS_DATE | Condition.onsetDateTime | us-core-condition | ||
DIAGNOSIS_PRIORITY | Condition.encounter.diagnosis.rank | us-core-condition, us-core-encounter | ||
DIAGNOSIS_SOURCE | Condition.category | us-core-condition | ||
Table : LABORATORY TEST | ||||
ABNORMAL_RESULT_INDICATOR | Observation.interpretation | us-core-observationresults | ||
RAW_MODIFIER_LOW | Observation.referenceRange.modifierExtension | us-core-observationresults | ||
RAW_NORMAL_RANGE_HIGH | Observation.referenceRange.high | us-core-observationresults | ||
RAW_NORMAL_RANGE_LOW | Observation.referenceRange.low | us-core-observationresults | ||
RAW_ORDER_DEPT | Location.id | us-core-location | ||
RAW_PANEL | Observation.code | us-core-observationresults | ||
RAW_RESULT | Observation.value[x] | us-core-observationresults | ||
RAW_UNIT | Observation.value[x] | us-core-observationresults | ||
RESULT_LOCATION | Location | us-core-location | ||
RESULT_MODIFIER | Observation.value[x] | us-core-observationresults | ||
RESULT_NUMERICAL | Observation.value[x] | us-core-observationresults | ||
LAB_ CLASSIFICATION _SYSTEM_VERSION | Observation.code | us-core-observationresults | ||
RESULT_QUALITATIVE | Observation.valueCodeableConcept | us-core-observationresults | ||
RESULT_UNIT | Observation.value[x] | us-core-observationresults | ||
SPECIMEN_DATE | Observation.specimen.collection.collectedDateTime | us-core-observationresults,Specimen | ||
LAB_ CLASSIFICATION_SYSTEM | Observation.code | us-core-observationresults | ||
LAB_ CODING_SYSTEM | Observation.code | us-core-observationresults | ||
LAB_CODE | Observation.code | us-core-observationresults | ||
LAB_CODING_SYSTEM_VERSION | Observation.code | us-core-observationresults | ||
RAW_FACILITY_CODE | Encounter.location.location.identifier | us-core-encounter, us-core-location | ||
RAW_LAB_CODE | Observation.code | us-core-observationresults | ||
RAW_MODIFIER_HIGH | Observation.referenceRange.modifierExtension | us-core-observationresults | ||
Table : MEDICATION | ||||
MEDICATION_ CLASSIFICATION_SYSTEM | MedicationStatement.medicationCodeableConcept | us-core-medicationstatement | ||
RAW_ MEDICATION_NAME | MedicationStatement.Extension (Proposed Name: raw-value : CodeableConcept) | us-core-medicationstatement | ||
RAW_ MEDICATION_STRENGTH | MedicationStatement.basedOn(MedicationRequest).dosageInstruction.dose[x] | us-core-medicationstatement, us-core-medicationrequest | ||
RAW_MEDICATION_ROUTE | MedicationStatement.basedOn(MedicationRequest).dosageInstruction.route | us-core-medicationstatement, us-core-medicationrequest | ||
MEDICATION_ CODING_SYSTEM | MedicationStatement.medicationCodeableConcept | us-core-medicationstatement | ||
MEDICATION_ CLASSIFICATION_SYSTEM_VERSION | MedicationStatement.medicationCodeableConcept | us-core-medicationstatement, | ||
MEDICATION_ CLASSIFICATION_SYSTEM | MedicationStatement.medicationCodeableConcept | us-core-medicationstatement | ||
MEDICATION_CODE | MedicationStatement.medicationCodeableConcept | us-core-medicationstatement | ||
MEDICATION_CODING_SYSTEM_VERSION | MedicationStatement.medicationCodeableConcept | us-core-medicationstatement | ||
ORDER_DATE | MedicationStatement.basedOn(MedicationRequest).authoredOn | us-core-medicationstatement, us-core-medicationrequest | ||
ORDER_TYPE | MedicationStatement.basedOn(MedicationRequest).requester | us-core-medicationstatement, us-core-medicationrequest | ||
RAW_ MEDICATION_CODE | MedicationStatement.medicationCodeableConcept | us-core-medicationstatement | ||
RAW_ MEDICATION_FORM | MedicationStatement.basedOn(MedicationRequest).dosageInstruction.doseAndRate.dose[x] | us-core-medicationstatement | ||
Table :PROCEDURE | ||||
PROCEDURE_ CODING_SYSTEM | Procedure.code | us-core-procedure | ||
PROCEDURE_CODE | Procedure.code | us-core-procedure | ||
PROCEDURE_CODING_SYSTEM_VERSION | Procedure.code | us-core-procedure | ||
PROCEDURE_DATE | Procedure.performedDateTime | us-core-procedure | ||
Table : VISIT | ||||
ADMIT_DATE | Encounter.period | us-core-encounter | ||
DISCHARGE_DATE | Encounter.period | us-core-encounter | ||
VISIT_TYPE | Encounter.class | us-core-encounter |
Profiles
The CDMH IG uses the US Core profiles, along with the data elements present in the base resources and proposed extensions to map Sentinel, i2b2, PCORnet CDM and OMOP to FHIR.