MIMIC Implementation Guide
1.3.0 - Draft

MIMIC Implementation Guide - Local Development build (v1.3.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Mimic Ed Fhir Mappings

MIMIC-ED to FHIR Mappings

The MIMIC-ED database was converted into FHIR. The tables from MIMIC-ED were each mapped to a one or more resources. The diagram below depicts these mappings:

Overall mappings MIMIC-ED to FHIR
mimic-ed-fhir-mappings.png

Custom profiles were created to house the tables coming into FHIR. This was necessary to handle the unique terminology coming from MIMIC-ED. In the following sections you will see tables detailing the mapping from each MIMIC-ED table to these MIMIC-FHIR profiles.

Condition

One Condition resource per diagnosis (row in diagnosis table).

MIMIC-ED Table MIMIC-ED Data Element FHIR Data Element FHIR Profile Notes
diagnosis stay_id, seq_num, icd_code Condition.id MimicCondition Id made up of concatenation of stay_id, seq_num, and icd_code, converted to UUID5
diagnosis icd_version Condition.code.CodeableConcept.system MimicCondition If ‘9’ URI of ICD9 if ‘10’ URI of ICD10 (MIMIC code systems)
diagnosis icd_code Condition.code.CodeableConcept.code MimicCondition  
diagnosis subject_id Condition.subject MimicCondition Links to a MimicPatient with corresponding identifier
diagnosis stay_id Condition.encounter MimicCondition Links to a MimicEncounter with corresponding identifier
  • Condition.category is fixed to ‘encounter-diagnosis’ (Encounter Diagnosis) for all MIMIC conditions

Encounter

One Encounter resource per stay_id (i.e., per ED visit / per row in the edstays table).

MIMIC-ED Table MIMIC-ED Data Element FHIR Data Element FHIR Profile Notes
edstays stay_id Encounter.identifier:ED_ID MimicEncounter This is a sliced element, ED identifier is captured in the ED_ID slice.
edstays subject_id Encounter.subject MimicEncounter Links to a MimicPatient with corresponding identifier
edstays intime Encounter.period.start MimicEncounter  
edstays outtime Encounter.period.end MimicEncounter  
edstays arrival_transport Encounter.hospitalization.admitSource MimicEncounter MIMIC code system
edstays disposition Encounter.hospitalization.dischargeDisposition MimicEncounter MIMIC code system
  • Encounter.status is fixed to ‘finished’ (Finished) for all MIMIC encounters
  • Encounter.class should be ‘EMER’ (Emergency) for all MIMIC-ED encounters

MedicationDispense ED

One MedicationDispense resource per dispense in the pyxis table (ED medication dispensation). A dispense can consist of multiple rows with the same subject_id, stay_id, and charttime but multiple medication codes.

MIMIC-ED Table MIMIC-ED Data Element FHIR Data Element FHIR Profile Notes
pyxis stay_id, med_rn, gsn_rn MedicationDispense.id MimicMedicationDispenseED Concat MIMIC columns and convert to UUID5
pyxis subject_id MedicationDispense.subject MimicMedicationDispenseED Convert to UUID5
pyxis stay_id MedicationDispense.context MimicMedicationDispenseED Convert to UUID5
pyxis gsn MedicationDispense.medicationCodeableConcept.coding MimicMedicationDispenseED MIMIC code system
pyxis name MedicationDispense.medicationCodeableConcept.text MimicMedicationDispenseED  
pyxis charttime MedicationDispense.whenHandedOver MimicMedicationDispenseED  
  • MedicationDispense.status is fixed to ‘unknown’ (Unknown)

MedicationStatement ED

One MedicationStatement resource per medication that was taken by a patient. A drug can have multiple etccode values (one per row, multiple rows) and are delineated by etc_rn.

MIMIC-ED Table MIMIC-ED Data Element FHIR Data Element FHIR Profile Notes
medrecon stay_id, charttime, name, gsn, ndc MedicationStatement.id MimicMedicationStatementED Concat elements to make unique id and convert to UUID5
medrecon gsn MedicationStatement.medicationCodeableConcept.coding:gsnCode MimicMedicationStatementED MIMIC code system. This is a sliced element, gsn codes are captured in the gsnCode slice.
medrecon ndc MedicationStatement.medicationCodeableConcept.coding:ndcCode MimicMedicationStatementED This is a sliced element, ndc codes are captured in the ndcCode slice.
medrecon etccode MedicationStatement.medicationCodeableConcept.coding:etccodeCode MimicMedicationStatementED MIMIC code system. This is a sliced element, etc codes are captured in the etccodeCode slice.
medrecon name MedicationStatement.medicationCodeableConcept.text MimicMedicationStatementED  
medrecon subject_id MedicationStatement.subject MimicMedicationStatementED Links to a MimicPatient with corresponding identifier
medrecon stay_id MedicationStatement.context MimicMedicationStatementED Links to a MimicEncounter with corresponding identifier
medrecon charttime MedicationStatement.dateAsserted MimicMedicationStatementED  
  • MedicationStatement.status is fixed to ‘unknown’ (Unknown)
  • MedicationStatement.medicationCodeableConcept.coding:etccodeCode has cardinality 0..*; allows multiple etc codes to be stored.

Observation ED

One Observation resource per single measurement from a row of the triage and vitalsign tables of MIMIC-ED. Only acuity, chiefcomplaint, rhythm, and pain.

MIMIC-ED Table MIMIC-ED Data Element FHIR Data Element FHIR Profile Notes
vitalsign stay_id, charttime, key Observation.id MimicObservationED Concat elements and convert to UUID5
vitalsign rhythm Observation.value[x] MimicObservationED If Observation captures rhythm
vitalsign pain Observation.value[x] MimicObservationED If Observation captures pain
vitalsign subject_id Observation.subject MimicObservationED Convert to UUID5
vitalsign stay_id Observation.encounter MimicObservationED Convert to UUID5
vitalsign value Observation.valueString MimicObservationED  
vitalsign stay_id, charttime Observation.partOf MimicObservationED Concat elements and convert to UUID5
triage stay_id, intime, key Observation.id MimicObservationED Concat elements and convert to UUID5
triage acuity Observation.value[x] MimicObservationED If Observation captures acuity
triage chiefcomplaint Observation.value[x] MimicObservationED If Observation captures chiefcomplaint
triage pain Observation.value[x] MimicObservationED If Observation captures pain
triage subject_id Observation.subject MimicObservationED Convert to UUID5
triage stay_id Observation.encounter MimicObservationED Convert to UUID5
triage value Observation.valueString MimicObservationED  
triage stay_id, charttime Observation.partOf MimicObservationED Concat elements and convert to UUID5
  • Observation.status is fixed to ‘final’ (Final) for all MIMIC observations.
  • Only for rhytm: Observation.category is fixed to ‘exam’ (Exam). In all other cases a category is absent.
  • Observation.code corresponds to a LOINC code (from MIMIC-ED value set) for either an acuity, chiefcomplaint, or rhythm observation.
  • Observation.value[x] has a 0..1 cardinality, hence only one measurement (acuity, rhythm, or chiefcomplaint) is captured in an Observation resource. When a value is missing, an Observation.dataAbsentReason is given (always ‘unknown’ (Unknown)).

Observation Vital Signs

One Observation resource per single measurement from a row of the triage and vitalsign tables of MIMIC-ED. Only temperature, heartrate, resprate, blood pressure sbp dbp, and o2sat.

MIMIC-ED Table MIMIC-ED Data Element FHIR Data Element FHIR Profile Notes
triage stay_id Observation.id MimicObservationVitalSigns Concat the stay_id with the vital sign name captured
triage temperature Observation.value[x] MimicObservationVitalSigns If observation is a temperature reading
triage resprate Observation.value[x] MimicObservationVitalSigns If observation is a respiratory rate
triage heartrate Observation.value[x] MimicObservationVitalSigns If observation is a heart rate reading
triage o2sat Observation.value[x] MimicObservationVitalSigns If observation is a oxygen saturation reading
triage dbp Observation.value[x] MimicObservationVitalSigns If observation is a blood pressure reading
triage sbp, dbp Observation.component.value[x] MimicObservationVitalSigns If Observation captures blood pressure (component for sbp and dbp).
triage subject_id Observation.subject MimicObservationVitalSigns Convert to UUID5
triage stay_id Observation.encounter MimicObservationVitalSigns Convert to UUID5
triage stay_id Observation.procedure MimicObservationVitalSigns Convert to UUID5
edstays intime Observation.effectiveDateTime MimicObservationVitalSigns  
vitalsign stay_id, charttime Observation.id MimicObservationVitalSigns Concat the stay_ida and charttime with the vital sign name captured, then convert to UUID5
vitalsign temperature Observation.value[x] MimicObservationVitalSigns If observation is a temperature reading
vitalsign resprate Observation.value[x] MimicObservationVitalSigns If observation is a respiratory rate
vitalsign heartrate Observation.value[x] MimicObservationVitalSigns If observation is a heart rate reading
vitalsign o2sat Observation.value[x] MimicObservationVitalSigns If observation is a oxygen saturation reading
vitalsign dbp Observation.value[x] MimicObservationVitalSigns If observation is a blood pressure reading
vitalsign sbp, dbp Observation.component.value[x] MimicObservationVitalSigns If Observation captures blood pressure (component for sbp and dbp).
vitalsign subject_id Observation.subject MimicObservationVitalSigns Convert to UUID5
vitalsign stay_id Observation.encounter MimicObservationVitalSigns Convert to UUID5
vitalsign stay_id, charttime Observation.procedure MimicObservationVitalSigns Concat elements and convert to UUID5
  • Observation.status is fixed to ‘final’ (Final) for all MIMIC observations.
  • Observation.category is fixed to ‘vital-signs’ (Vital Signs).
  • Observation.code corresponds to a LOINC code (from MIMIC-ED value set) for either temperateure, respiratory rate, heart rate, oxygen saturation, or blood pressure.
  • Observation.value[x] has a 0..1 cardinality, hence only one measurement (or sbp and dbp in the case of blood pressure) is captured in an Observation resource. When a value is missing, an Observation.dataAbsentReason is given (always ‘unknown’ (Unknown)).

Patient

See MIMIC patient. MIMIC-ED only captures subject_id and gender.

Procedure ED

One Procedure resource per row in the triage / vitalsign tables (= collection of Observations for a patient).

MIMIC-ED Table MIMIC-ED Data Element FHIR Data Element FHIR Profile Notes
triage stay_id Procedure.id MimicProcedureED Each stay_id has one triage associated with it
triage subject_id Procedure.subject MimicProcedureED Convert to UUID5
triage stay_id Procedure.encounter MimicProcedureED Convert to UUID5
triage intime Procedure.performedDateTime MimicProcedureED  
vitalsign stay_id, charttime Procedure.id MimicProcedureED Concat elements and convert to UUID5
vitalsign subject_id Procedure.subject MimicProcedureED Convert to UUID5
vitalsign stay_id Procedure.encounter MimicProcedureED Convert to UUID5
vitalsign charttime Procedure.performedDateTime MimicProcedureED  
  • Procedure.status is fixed to ‘completed’ (Completed) for all MIMIC-ED procedures.
  • Procedure.code is either SNOMED CT 386478007 (Triage: emergency center (procedure)) when the Procedure describes observations from the triage table, or SNOMED CT 410188000 (Taking patient vital signs assessment (procedure)) when describing observations from the vitalsign table.