Common Data Models Harmonization Implementation Guide (Release 0.1.0 )

Common Data Models Harmonization, published by HL7 International - Biomedical Research and Regulation Work Group. This is not an authorized publication; it is the continuous build for version 0.1.0). This version is based on the current content of https://github.com/HL7/cdmh/ and changes regularly. 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.

CDMs to BRIDG Mappings

**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.

</tr> </tr> </tr>
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.

</tr>
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.