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
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:
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.
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 |
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 |
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 |
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 |
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 |
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 |
See MIMIC patient. MIMIC-ED only captures subject_id and gender.
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 |