diff --git a/concepts/Adrenaline_dosage.yml b/concepts/Adrenaline_dosage.yml new file mode 100644 index 0000000..8838920 --- /dev/null +++ b/concepts/Adrenaline_dosage.yml @@ -0,0 +1,17 @@ +description: '' +identifiers: + loinc: '' + snomed: '' +lower_limit: '' +mapper: +- klass: MimicDosageMapper + params: + constraints: + itemid: '221289' + schema: mimiciv_icu + table: inputevents + source: mimiciv + unit: mg/time +name: Adrenaline_dosage +unit: ug/kg/min +upper_limit: '' diff --git a/concepts/Age.yml b/concepts/Age.yml new file mode 100644 index 0000000..42aa8c3 --- /dev/null +++ b/concepts/Age.yml @@ -0,0 +1,27 @@ +description: Patient's age +identifiers: + loinc: '30525-0' + snomed: '397669002' +lower_limit: '0' +mapper: +- klass: MimicObservationMapper + params: + fields: + value: age + timestamp: admittime + constraints: {} + schema: mimiciv_derived + table: age + source: mimiciv + unit: year +- klass: EICUPationObservationMapper + params: + fields: + value: age + schema: eicu_crd + table: patient + source: eicu + unit: year +name: Age +unit: year +upper_limit: '130' diff --git a/concepts/AirwayPlateauPressure.yml b/concepts/AirwayPlateauPressure.yml new file mode 100644 index 0000000..45dc0e9 --- /dev/null +++ b/concepts/AirwayPlateauPressure.yml @@ -0,0 +1,17 @@ +description: Airway Plateau Pressure of a patient +identifiers: + loinc: '' + snomed: '' +lower_limit: '0' +mapper: +- klass: MimicObservationMapper + params: + constraints: + itemid: '224696' + schema: mimiciv_icu + table: chartevents + source: mimiciv + unit: mmHg +name: AirwayPlateauPressure +unit: mmHg +upper_limit: '100' diff --git a/concepts/BodyHeight.yml b/concepts/BodyHeight.yml new file mode 100644 index 0000000..1ff260a --- /dev/null +++ b/concepts/BodyHeight.yml @@ -0,0 +1,25 @@ +description: Height of a patient's body +identifiers: + loinc: 8302-2 + snomed: '1153637007' +lower_limit: '0' +mapper: +- klass: MimicObservationMapper + params: + constraints: + itemid: '226730' + schema: mimiciv_icu + table: chartevents + source: mimiciv + unit: cm +- klass: EICUPationObservationMapper + params: + fields: + value: admissionheight + schema: eicu_crd + table: patient + source: eicu + unit: cm +name: BodyHeight +unit: cm +upper_limit: '300' diff --git a/concepts/BodyTemperature.yml b/concepts/BodyTemperature.yml new file mode 100644 index 0000000..053132e --- /dev/null +++ b/concepts/BodyTemperature.yml @@ -0,0 +1,25 @@ +description: Temperature of a patient's body, irrespective of site +identifiers: + loinc: '' + snomed: '' +lower_limit: '20' +mapper: +- klass: MimicObservationMapper + params: + constraints: + itemid: '223762' + schema: mimiciv_icu + table: chartevents + source: mimiciv + unit: °C +- klass: EICUObservationMapper + params: + fields: + value: temperature + schema: eicu_crd + table: vitalperiodic + source: eicu + unit: °C +name: BodyTemperature +unit: °C +upper_limit: '45' diff --git a/concepts/BodyWeight.yml b/concepts/BodyWeight.yml new file mode 100644 index 0000000..a933346 --- /dev/null +++ b/concepts/BodyWeight.yml @@ -0,0 +1,25 @@ +description: Weight of a patien's body +identifiers: + loinc: 29463-7 + snomed: '27113001' +lower_limit: '0' +mapper: +- klass: MimicObservationMapper + params: + constraints: + itemid: '224639' + schema: mimiciv_icu + table: chartevents + source: mimiciv + unit: kg +- klass: EICUPationObservationMapper + params: + fields: + value: admissionWeight + schema: eicu_crd + table: patient + source: eicu + unit: cm +name: BodyWeight +unit: kg +upper_limit: '500' diff --git a/concepts/BreathingRate.yml b/concepts/BreathingRate.yml new file mode 100644 index 0000000..da86c10 --- /dev/null +++ b/concepts/BreathingRate.yml @@ -0,0 +1,25 @@ +description: Actual breathing rate of patient +identifiers: + loinc: '' + snomed: '' +lower_limit: '0' +mapper: +- klass: MimicObservationMapper + params: + constraints: + itemid: '224690' + schema: mimiciv_icu + table: chartevents + source: mimiciv + unit: 1/min +- klass: EICUObservationMapper + params: + fields: + value: respiration + schema: eicu_crd + table: vitalperiodic + source: eicu + unit: 1/min +name: BreathingRate +unit: 1/min +upper_limit: '100' diff --git a/concepts/Creatinine_absolute_serum.yml b/concepts/Creatinine_absolute_serum.yml new file mode 100644 index 0000000..b017c79 --- /dev/null +++ b/concepts/Creatinine_absolute_serum.yml @@ -0,0 +1,17 @@ +description: '' +identifiers: + loinc: '' + snomed: '' +lower_limit: '0' +mapper: +- klass: MimicObservationMapper + params: + constraints: + itemid: '220615' + schema: mimiciv_icu + table: chartevents + source: mimiciv + unit: 'mg/dl' +name: Creatinine_absolute_serum +unit: mg/dl +upper_limit: '1000000' diff --git a/concepts/DiastolicBloodPressue_Arterial_Invasive.yml b/concepts/DiastolicBloodPressue_Arterial_Invasive.yml new file mode 100644 index 0000000..75f63a7 --- /dev/null +++ b/concepts/DiastolicBloodPressue_Arterial_Invasive.yml @@ -0,0 +1,25 @@ +description: Diastolic arterial pressure of a patient +identifiers: + loinc: 76213-8 + snomed: '251073000' +lower_limit: '0' +mapper: +- klass: MimicObservationMapper + params: + constraints: + itemid: '220051' + schema: mimiciv_icu + table: chartevents + source: mimiciv + unit: mmHg +- klass: EICUObservationMapper + params: + fields: + value: systemicdiastolic + schema: eicu_crd + table: vitalperiodic + source: eicu + unit: mmHg +name: DiastolicBloodPressue_Arterial_Invasive +unit: mmHg +upper_limit: '200' diff --git a/concepts/DiastolicBloodPressue_Arterial_noninvasive.yml b/concepts/DiastolicBloodPressue_Arterial_noninvasive.yml new file mode 100644 index 0000000..e89de0f --- /dev/null +++ b/concepts/DiastolicBloodPressue_Arterial_noninvasive.yml @@ -0,0 +1,25 @@ +description: Diastolic arterial pressure of a patient +identifiers: + loinc: '' + snomed: '251074006' +lower_limit: '0' +mapper: +- klass: MimicObservationMapper + params: + constraints: + itemid: '220180' + schema: mimiciv_icu + table: chartevents + source: mimiciv + unit: mmHg +- klass: EICUObservationMapper + params: + fields: + value: noninvasivediasystolic + schema: eicu_crd + table: vitalaperiodic + source: eicu + unit: mmHg +name: DiastolicBloodPressue_Arterial_noninvasive +unit: mmHg +upper_limit: '200' diff --git a/concepts/Dobutamine_dosage.yml b/concepts/Dobutamine_dosage.yml new file mode 100644 index 0000000..5db0a1c --- /dev/null +++ b/concepts/Dobutamine_dosage.yml @@ -0,0 +1,17 @@ +description: '' +identifiers: + loinc: '' + snomed: '' +lower_limit: '' +mapper: +- klass: MimicDosageMapper + params: + constraints: + itemid: '221653' + schema: mimiciv_icu + table: inputevents + source: mimiciv + unit: mg/time +name: Dobutamine_dosage +unit: ug/kg/min +upper_limit: '' diff --git a/concepts/FiO2.yml b/concepts/FiO2.yml new file mode 100644 index 0000000..1d96352 --- /dev/null +++ b/concepts/FiO2.yml @@ -0,0 +1,17 @@ +description: Inspired oxygen concentration of a patient +identifiers: + loinc: '' + snomed: '' +lower_limit: '0' +mapper: +- klass: MimicObservationMapper + params: + constraints: + itemid: '223835' + schema: mimiciv_icu + table: chartevents + source: mimiciv + unit: '%' +name: FiO2 +unit: '%' +upper_limit: '100' diff --git a/concepts/Gender.yml b/concepts/Gender.yml new file mode 100644 index 0000000..c292eac --- /dev/null +++ b/concepts/Gender.yml @@ -0,0 +1,27 @@ +description: Patient's gender +identifiers: + loinc: '' + snomed: '' +lower_limit: '' +mapper: +- klass: MimicObservationMapper + params: + fields: + value: gender + timestamp: anchor_year + constraints: {} + schema: mimiciv_hosp + table: patients + source: mimiciv + unit: '' +- klass: EICUPationObservationMapper + params: + fields: + value: gender + schema: eicu_crd + table: patient + source: eicu + unit: '' +name: Gender +unit: '' +upper_limit: '' diff --git a/concepts/HeartRate.yml b/concepts/HeartRate.yml index 4503621..60a7cf8 100644 --- a/concepts/HeartRate.yml +++ b/concepts/HeartRate.yml @@ -1,18 +1,25 @@ +description: heart rate of a patient, source agnostic +identifiers: + loinc: 8867-4 + snomed: '364075005' +lower_limit: '0' +mapper: +- klass: MimicObservationMapper + params: + constraints: + itemid: '220045' + schema: mimiciv_icu + table: chartevents + source: mimiciv + unit: bpm +- klass: EICUObservationMapper + params: + fields: + value: heartrate + schema: eicu_crd + table: vitalperiodic + source: eicu + unit: bpm name: HeartRate -description: Heart rate is the speed of the heartbeat measured by the number of contractions of the heart per minute (bpm). unit: bpm -upper_limit: 300 -lower_limit: 0 -identifiers: - snomed: "364075005" - loinc: "8867-4" -#schema: FHIRObservation -mapper: - - klass: MimicObservationMapper - source: mimic - unit: bpm - params: - schema: mimiciv_icu - table: chartevents - constraints: - itemid: "220045" \ No newline at end of file +upper_limit: '300' diff --git a/concepts/MeanBloodPressue_Arterial_Invasive.yml b/concepts/MeanBloodPressue_Arterial_Invasive.yml new file mode 100644 index 0000000..e5dfad6 --- /dev/null +++ b/concepts/MeanBloodPressue_Arterial_Invasive.yml @@ -0,0 +1,25 @@ +description: Mean arterial pressure of a patient +identifiers: + loinc: '' + snomed: '251075007' +lower_limit: '0' +mapper: +- klass: MimicObservationMapper + params: + constraints: + itemid: '220052' + schema: mimiciv_icu + table: chartevents + source: mimiciv + unit: mmHg +- klass: EICUObservationMapper + params: + fields: + value: systemicmean + schema: eicu_crd + table: vitalperiodic + source: eicu + unit: mmHg +name: MeanBloodPressue_Arterial_Invasive +unit: mmHg +upper_limit: '200' diff --git a/concepts/MeanBloodPressue_Arterial_Noninvasive.yml b/concepts/MeanBloodPressue_Arterial_Noninvasive.yml new file mode 100644 index 0000000..73ba465 --- /dev/null +++ b/concepts/MeanBloodPressue_Arterial_Noninvasive.yml @@ -0,0 +1,25 @@ +description: Diastolic arterial pressure of a patient +identifiers: + loinc: '' + snomed: '174255007' +lower_limit: '0' +mapper: +- klass: MimicObservationMapper + params: + constraints: + itemid: '220181' + schema: mimiciv_icu + table: chartevents + source: mimiciv + unit: mmHg +- klass: EICUObservationMapper + params: + fields: + value: noninvasivemean + schema: eicu_crd + table: vitalaperiodic + source: eicu + unit: mmHg +name: MeanBloodPressue_Arterial_Noninvasive +unit: mmHg +upper_limit: '200' diff --git a/concepts/Norepinephrine_dosage.yml b/concepts/Norepinephrine_dosage.yml new file mode 100644 index 0000000..59b0436 --- /dev/null +++ b/concepts/Norepinephrine_dosage.yml @@ -0,0 +1,17 @@ +description: '' +identifiers: + loinc: '' + snomed: '' +lower_limit: '' +mapper: +- klass: MimicDosageMapper + params: + constraints: + itemid: '221906' + schema: mimiciv_icu + table: inputevents + source: mimiciv + unit: mg/time +name: Norepinephrine_dosage +unit: ug/kg/min +upper_limit: '' diff --git a/concepts/OxygenSaturation_Peripheral.yml b/concepts/OxygenSaturation_Peripheral.yml new file mode 100644 index 0000000..e9361f6 --- /dev/null +++ b/concepts/OxygenSaturation_Peripheral.yml @@ -0,0 +1,25 @@ +description: Oxygen Saturation, irrespective of sample site +identifiers: + loinc: '' + snomed: '' +lower_limit: '0' +mapper: +- klass: MimicObservationMapper + params: + constraints: + itemid: '220227' + schema: mimiciv_icu + table: chartevents + source: mimiciv + unit: '%' +- klass: EICUObservationMapper + params: + fields: + value: sao2 + schema: eicu_crd + table: vitalperiodic + source: eicu + unit: '%' +name: OxygenSaturation_Peripheral +unit: '%' +upper_limit: '100' diff --git a/concepts/PEEP.yml b/concepts/PEEP.yml new file mode 100644 index 0000000..bfd30bb --- /dev/null +++ b/concepts/PEEP.yml @@ -0,0 +1,17 @@ +description: Positive end-expiratory pressure +identifiers: + loinc: '' + snomed: '' +lower_limit: '0' +mapper: +- klass: MimicObservationMapper + params: + constraints: + itemid: '224700' + schema: mimiciv_icu + table: chartevents + source: mimiciv + unit: cmH2O +name: PEEP +unit: cmH2O +upper_limit: '40' diff --git a/concepts/SystolicBloodPressure.yml b/concepts/SystolicBloodPressure.yml index 8b3709e..eb0a821 100644 --- a/concepts/SystolicBloodPressure.yml +++ b/concepts/SystolicBloodPressure.yml @@ -8,11 +8,27 @@ identifiers: loinc: "8480-6" schema: FHIRObservation mapper: - - klass: MimicObservationMapper - source: mimic - unit: mmHg - params: - schema: mimiciv_icu - table: chartevents - constraints: - itemid: ["220050", "220179"] \ No newline at end of file +- klass: MimicObservationMapper + source: mimiciv + unit: mmHg + params: + schema: mimiciv_icu + table: chartevents + constraints: + itemid: ["220050", "220179"] +- klass: EICUObservationMapper + params: + fields: + value: systemicsystolic + schema: eicu_crd + table: vitalperiodic + source: eicu + unit: mmHg +- klass: EICUObservationMapper + params: + fields: + value: noninvasivesystolic + schema: eicu_crd + table: vitalaperiodic + source: eicu + unit: mmHg \ No newline at end of file diff --git a/concepts/SystolicBloodPressure_Arterial_Invasive.yml b/concepts/SystolicBloodPressure_Arterial_Invasive.yml new file mode 100644 index 0000000..33ed4c9 --- /dev/null +++ b/concepts/SystolicBloodPressure_Arterial_Invasive.yml @@ -0,0 +1,25 @@ +description: Systolic arterial pressure of a patient +identifiers: + loinc: 76215-3 + snomed: '251071003' +lower_limit: '0' +mapper: +- klass: MimicObservationMapper + params: + constraints: + itemid: '220050' + schema: mimiciv_icu + table: chartevents + source: mimiciv + unit: mmHg +- klass: EICUObservationMapper + params: + fields: + value: systemicsystolic + schema: eicu_crd + table: vitalperiodic + source: eicu + unit: mmHg +name: SystolicBloodPressure_Arterial_Invasive +unit: mmHg +upper_limit: '300' diff --git a/concepts/SystolicBloodPressure_Arterial_noninvasive.yml b/concepts/SystolicBloodPressure_Arterial_noninvasive.yml new file mode 100644 index 0000000..7cd9339 --- /dev/null +++ b/concepts/SystolicBloodPressure_Arterial_noninvasive.yml @@ -0,0 +1,25 @@ +description: Systolic arterial pressure of a patient +identifiers: + loinc: '' + snomed: '251070002' +lower_limit: '0' +mapper: +- klass: MimicObservationMapper + params: + constraints: + itemid: '220179' + schema: mimiciv_icu + table: chartevents + source: mimiciv + unit: mmHg +- klass: EICUObservationMapper + params: + fields: + value: noninvasivesystolic + schema: eicu_crd + table: vitalaperiodic + source: eicu + unit: mmHg +name: SystolicBloodPressure_Arterial_noninvasive +unit: mmHg +upper_limit: '200' diff --git a/concepts/TidalVolume.yml b/concepts/TidalVolume.yml new file mode 100644 index 0000000..2583e96 --- /dev/null +++ b/concepts/TidalVolume.yml @@ -0,0 +1,17 @@ +description: Actual tidal volume of a patient +identifiers: + loinc: '' + snomed: '' +lower_limit: '0' +mapper: +- klass: MimicObservationMapper + params: + constraints: + itemid: '224685' + schema: mimiciv_icu + table: chartevents + source: mimiciv + unit: ml +name: TidalVolume +unit: ml +upper_limit: '10000' diff --git a/concepts/UrineVolume.yml b/concepts/UrineVolume.yml new file mode 100644 index 0000000..496041a --- /dev/null +++ b/concepts/UrineVolume.yml @@ -0,0 +1,21 @@ +description: Urine Volume measured at a certain point in time +identifiers: + loinc: '' + snomed: '' +lower_limit: '0' +mapper: +- klass: MimicObservationMapper + params: + constraints: {} + schema: mimiciv_derived + table: urine_output + fields: + value: urineoutput + joins: + mimiciv_icu.icustays: + mimiciv_icu.icustays.stay_id: mimiciv_derived.urine_output.stay_id + source: mimiciv + unit: ml +name: UrineVolume +unit: ml +upper_limit: '10000' diff --git a/concepts/Vancomycine_dosage.yml b/concepts/Vancomycine_dosage.yml new file mode 100644 index 0000000..4f57af2 --- /dev/null +++ b/concepts/Vancomycine_dosage.yml @@ -0,0 +1,17 @@ +description: '' +identifiers: + loinc: '' + snomed: '' +lower_limit: '' +mapper: +- klass: MimicDosageMapper + params: + constraints: + itemid: '225798' + schema: mimiciv_icu + table: inputevents + source: mimiciv + unit: mg +name: Vancomycine_dosage +unit: mg +upper_limit: '' diff --git a/concepts/Vasopressine_dosage.yml b/concepts/Vasopressine_dosage.yml new file mode 100644 index 0000000..84381d1 --- /dev/null +++ b/concepts/Vasopressine_dosage.yml @@ -0,0 +1,17 @@ +description: '' +identifiers: + loinc: '' + snomed: '' +lower_limit: '' +mapper: +- klass: MimicDosageMapper + params: + constraints: + itemid: '222315' + schema: mimiciv_icu + table: inputevents + source: mimiciv + unit: IE/time +name: Vasopressine_dosage +unit: IE/kg/min +upper_limit: '' diff --git a/example.yml b/example.yml index 0d9e724..4503621 100644 --- a/example.yml +++ b/example.yml @@ -1,18 +1,18 @@ -name: HeartRate # naming according to our naming convention -description: Heart rate is the speed of the heartbeat measured by the number of contractions of the heart per minute (bpm). # human understandable description of the item -unit: bpm # unit that should be used for this item -upper_limit: 300 # upper limit -lower_limit: 0 # lower limit -identifiers: # collection of identifiers, more can be added - snomed: "364075005" # snomed identifications ID - loinc: "8867-4" # loinc identifications CODE -#schema: FHIRObservation # available export schemas -mapper: # mapping on where and how to find the variable in public databases - - klass: MimicObservationMapper # class that is used for extraction +name: HeartRate +description: Heart rate is the speed of the heartbeat measured by the number of contractions of the heart per minute (bpm). +unit: bpm +upper_limit: 300 +lower_limit: 0 +identifiers: + snomed: "364075005" + loinc: "8867-4" +#schema: FHIRObservation +mapper: + - klass: MimicObservationMapper source: mimic - unit: bpm # unit used in the database + unit: bpm params: schema: mimiciv_icu table: chartevents constraints: - itemid: "220045" + itemid: "220045" \ No newline at end of file diff --git a/main_mapping.csv b/main_mapping.csv new file mode 100644 index 0000000..0d3a08e --- /dev/null +++ b/main_mapping.csv @@ -0,0 +1,58 @@ +Concept Name,Description,ready for conversion,Standard Unit,Absolute Upper,Absolute Lower,SCT CONEPT ID,SNOMED FSN,SCHEMA,LOINC ID,LOINC Code,MIMIC Mapper,MIMICIV schema,MIMICIV table,MIMICIV IDs,MIMIC Unit,AMDS table,AMDS IDs,eICU table,eICU column,eICU name +HeartRate,"heart rate of a patient, source agnostic",TRUE,bpm,300,0,364075005,364075005 |Heart rate (observable entity)|,FHIRObservation,Heart rate,8867-4,MimicObservationMapper,mimiciv_icu,chartevents,220045,bpm,,,,, +SystolicBloodPressure_Arterial_Invasive,Systolic arterial pressure of a patient,TRUE,mmHg,300,0,251071003,251071003 |Invasive systolic arterial pressure (observable entity)|,FHIRObservation,Invasive Systolic blood pressure,76215-3,MimicObservationMapper,mimiciv_icu,chartevents,220050,mmHg,,,,, +DiastolicBloodPressue_Arterial_Invasive,Diastolic arterial pressure of a patient,TRUE,mmHg,200,0,251073000,251073000 |Invasive diastolic arterial pressure (observable entity)|,FHIRObservation,Invasive Diastolic blood pressure,76213-8,MimicObservationMapper,mimiciv_icu,chartevents,220051,mmHg,,,,, +MeanBloodPressue_Arterial_Invasive,Mean arterial pressure of a patient,TRUE,mmHg,200,0,251075007,251075007 |Invasive mean arterial pressure (observable entity)|,FHIRObservation,,,MimicObservationMapper,mimiciv_icu,chartevents,220052,mmHg,,,,, +SystolicBloodPressure_Arterial_noninvasive,Systolic arterial pressure of a patient,TRUE,mmHg,200,0,251070002,251070002 |Non-invasive systolic arterial pressure (observable entity)|,FHIRObservation,,,MimicObservationMapper,mimiciv_icu,chartevents,220179,mmHg,,,,, +DiastolicBloodPressue_Arterial_noninvasive,Diastolic arterial pressure of a patient,TRUE,mmHg,200,0,251074006,251074006 |Non-invasive mean arterial pressure (observable entity)|,FHIRObservation,,,MimicObservationMapper,mimiciv_icu,chartevents,220180,mmHg,,,,, +MeanBloodPressue_Arterial_Noninvasive,Diastolic arterial pressure of a patient,TRUE,mmHg,200,0,174255007,174255007 |Non-invasive diastolic arterial pressure (observable entity)|,FHIRObservation,,,MimicObservationMapper,mimiciv_icu,chartevents,220181,mmHg,,,,, +BodyHeight,Height of a patient's body,TRUE,cm,300,0,1153637007,1153637007 |Body height (observable entity)|,FHIRObservation,Body height,8302-2,MimicObservationMapper,mimiciv_icu,chartevents,226730,cm,,,,, +BodyWeight,Weight of a patien's body,TRUE,kg,500,0,27113001,27113001 |Body weight (observable entity)|,FHIRObservation,Body weight,29463-7,MimicObservationMapper,mimiciv_icu,chartevents,224639,kg,,,,, +UrineVolume,Urine Volume measured at a certain point in time,TRUE,ml,10000,0,,,FHIRObservation,,,MimicObservationMapper,mimiciv_derived,urineoutput,,ml,,,,, +BodyTemperature,"Temperature of a patient's body, irrespective of site",TRUE,°C,45,20,,386725007 |Body temperature (observable entity)|,FHIRObservation,,,MimicObservationMapper,mimiciv_icu,chartevents,223762,°C,,,,, +OxygenSaturation_Peripheral,"Oxygen Saturation, irrespective of sample site",TRUE,%,100,0,,103228002 |Hemoglobin saturation with oxygen (observable entity)|,FHIRObservation,,,MimicObservationMapper,mimiciv_icu,chartevents,220227,%,,,,, +Gender,Patient's gender,TRUE,,,,,263495000 |Gender (observable entity)|,FHIRObservation,,,MimicObservationMapper,mimiciv_icu,chartevents,226228,,,,,, +Age,Patient's age,TRUE,year,130,0,,424144002 |Current chronological age (observable entity)|,FHIRObservation,,,MimicObservationMapper,mimiciv_derived,age,,year,,,,, +FiO2,Inspired oxygen concentration of a patient,TRUE,%,100,0,,250774007 |Inspired oxygen concentration (observable entity)|,FHIRObservation,,,MimicObservationMapper,mimiciv_icu,chartevents,223835,%,,,,, +PEEP,Positive end-expiratory pressure,TRUE,cmH2O,40,0,,250854009 |Positive end expiratory pressure (observable entity)|,FHIRObservation,,,MimicObservationMapper,mimiciv_icu,chartevents,224700,cmH2O,,,,, +BreathingRate,Actual breathing rate of patient,TRUE,1/min,100,0,,86290005 |Respiratory rate (observable entity)|,FHIRObservation,,,MimicObservationMapper,mimiciv_icu,chartevents,224690,1/min,,,,, +TidalVolume,Actual tidal volume of a patient,TRUE,ml,10000,0,,13621006 |Tidal volume (observable entity)|,FHIRObservation,,,MimicObservationMapper,mimiciv_icu,chartevents,224685,ml,,,,, +AirwayPlateauPressure,Airway Plateau Pressure of a patient,TRUE,mmHg,100,0,,698822002 |Airway plateau pressure (observable entity)|,FHIRObservation,,,MimicObservationMapper,mimiciv_icu,chartevents,224696,mmHg,,,,, +Norepinephrine_dosage,,TRUE,ug/kg/min,,,,,FHIRMedicationStatement,,,MimicMedicationMapper,mimiciv_icu,inputevents,221906,mg/time,,,,, +Adrenaline_dosage,,TRUE,ug/kg/min,,,,,FHIRMedicationStatement,,,MimicMedicationMapper,mimiciv_icu,inputevents,221289,mg/time,,,,, +Vasopressine_dosage,,TRUE,IE/kg/min,,,,,FHIRMedicationStatement,,,MimicMedicationMapper,mimiciv_icu,inputevents,222315,IE/time,,,,, +Dobutamine_dosage,,TRUE,ug/kg/min,,,,,FHIRMedicationStatement,,,MimicMedicationMapper,mimiciv_icu,inputevents,221653,mg/time,,,,, +Vancomycine_dosage,,TRUE,mg,,,,,FHIRMedicationStatement,,,MimicMedicationMapper,mimiciv_icu,inputevents,225798,mg,,,,, +NaCl_dosage,,,,,,,,,,,,,,,,,,,, +Norepinephrine_rate_Medication,,,mg/kg/min,,,,,,,,,,,,,,,,, +Adrenaline_rate_Medication,,,mg/kg/min,,,,,,,,,,,,,,,,, +Vasopressine_rate_Medication,,,?,,,,,,,,,,,,,,,,, +Dobutamine_rate_Medication,,,?,,,,,,,,,,,,,,,,, +Dextrose_rate_Medication,,,?,,,,,,,,,,,,,,,,, +NaCl_rate_Medication,,,ml/h,,,,,,,,,,,,,,,,, +Albumine_rate_Medication,,,?,,,,,,,,,,,,,,,,, +Vancomycine_level_medication,,,?,,,,,,,,,,,,,,,,, +LeukozyteCount_absolute_blood,,,Gpt/l,1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +PlateletCount_absolute_blood,,,Gpt/l,1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +CRP_absolute_blood,,,mg/l,1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +Glucose_absolute_blood,,,mmol/l,1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +Magnesium_absolute_blood,,,mmol/l,1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +Calcium_absolute_blood,,,mmol/l,1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +Phosphate_absolute_blood,,,mmol/l,1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +Creatinine_absolute_serum,,TRUE,mg/dl,1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,220615,,,,,, +Urea_absolute_blood,,,mol/l,1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +Haemoglobin_absolute_lood,,,mmol/l,1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +Lactate_absolute_arterial,,,mmol/l,1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +pO2_absolute_arterial,,,mmHg,1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +pH_absolute_arterial,,,-/-,1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +Bicarbonate_absolute_arterial,,,mmol/l,1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +Sodium_absolute_blood,,,mmol/l,1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +Potassium_absolute_blood,,,mmol/l,1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +Chloride_absolute_blood,,,mmol/l,1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +Bilirubine_absolute_blood,,,mmol/l,1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +GOT_absolute_blood,,,nmol/(s•L),1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +GPT_absolute_blood,,,nmol/(s•L),1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +GGT_absolute_blood,,,nmol/(s•L),1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +LDH_absolute_serum,,,nmol/(s•L),1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +INR_relative,,,-/-,1000000,0,,,FHIRObservation,,,MimicObservationMapper,mimic_hosp,labevents,,,,,,, +Dialysis_therapy,,,yes/no,,,,,FHIRDeviceUsage,,,MimicDeviceMapper,,,,,,,,, diff --git a/mapping_to_yaml.py b/mapping_to_yaml.py new file mode 100644 index 0000000..afb3802 --- /dev/null +++ b/mapping_to_yaml.py @@ -0,0 +1,48 @@ +import csv +import yaml +import os +from copy import deepcopy + +with open('example.yml', 'r') as file: + yaml_template = yaml.safe_load(file) + + +def create_yaml_from_template(data, template, output_dir): + # Use deepcopy to ensure the template is not modified + new_yaml = deepcopy(template) + print(data['Concept Name']) + # Directly update the necessary fields + new_yaml['name'] = data['Concept Name'] + new_yaml['description'] = data['Description'] + new_yaml['unit'] = data['Standard Unit'] + new_yaml['upper_limit'] = data['Absolute Upper'] + new_yaml['lower_limit'] = data['Absolute Lower'] + new_yaml['identifiers']['snomed'] = data['SCT CONEPT ID'] + new_yaml['identifiers']['loinc'] = data['LOINC Code'] + new_yaml['mapper'][0]['source'] = 'mimiciv' + new_yaml['mapper'][0]['unit'] = data['MIMIC Unit'] + new_yaml['mapper'][0]['params']['schema'] = data['MIMICIV schema'] + new_yaml['mapper'][0]['params']['table'] = data['MIMICIV table'] + new_yaml['mapper'][0]['params']['constraints']['itemid'] = data['MIMICIV IDs'] + + # Write the updated YAML to a new file + output_file = os.path.join(output_dir, f"{data['Concept Name']}.yml") + with open(output_file, 'w') as outfile: + yaml.dump(new_yaml, outfile, allow_unicode=True, + default_flow_style=False) + + +# Read the CSV file and process flagged rows +csv_file = 'main_mapping.csv' +output_directory = 'concepts' + +# Create the output directory if it doesn't exist +os.makedirs(output_directory, exist_ok=True) + +with open(csv_file, 'r') as csvfile: + reader = csv.DictReader(csvfile) + for row in reader: + if row.get('ready for conversion') == "TRUE": + create_yaml_from_template(row, yaml_template, output_directory) + +print("Conversion completed. YAML files are created in the 'converted_yamls' directory.")