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 |