def create_datasets(load_d: LoadData): """ loads already created important files :param load_d: query processor in case of a missing file :return: loaded objects """ try: wf_matching = pd.read_csv('matching.csv') except FileNotFoundError: create_matching('admissions.csv', "RECORDS-waveforms.csv") wf_matching = pd.read_csv('matching.csv') try: numeric_matching = pd.read_csv('matching_numerics.csv') except FileNotFoundError: create_matching('admissions.csv', "RECORDS-numerics.csv", numerics=True) numeric_matching = pd.read_csv('matching.csv') try: mortality = pd.read_csv("in_hospital_mortality.csv") except FileNotFoundError: mortality = load_d.query_db(queries.in_hospital_mortality()) mortality.to_csv("in_hospital_mortality.csv") try: clinical_features = pd.read_csv("features_clinical.csv") except FileNotFoundError as e: print(str(e)) print("please create clinical features file for all patients") return wf_matching, numeric_matching, mortality, clinical_features
def cardiac_patients(query_proccesor: LoadData, admissions: str, gender: str, path: str, cardiac=True): """ Extract patients using a filtering scheme :param query_proccesor: sql handler :param admissions: relevant admissions :param gender: desired gender for the patients :param path: path to already created file :param cardiac: cardiac or non-cardiac patients :return: patient dataframe with demographics """ try: patients = pd.read_csv(path) except FileNotFoundError: patients = query_proccesor.query_db(queries.patient_selection(admissions, gender, cardiac)) patients.to_csv(path) return patients
# /usr/bin/python from load_data import LoadData if __name__ == '__main__': query_mimic = """ select * from mimiciii.admissions as a join mimiciii.patients as p on a.subject_id = p.subject_id join mimiciii.icustays as i on a.hadm_id = i.hadm_id """ load_d = LoadData('config_template.ini', 'mimic') print(load_d.query_db(query_mimic)) load_d.query_and_save(query_mimic) query_mimic = """ select c.subject_id,c.hadm_id,c.itemid,c.value,c.charttime,p.label from mimiciii.chartevents as c join mimiciii.d_items as p on c.itemid = p.itemid where c.itemid in (211,615,676,772,773,781,789,811,812,821,769,770,3837,3835,1321,227429,851,834,828,223830,1531,198,227010,227443,226760,229759,226766,226765,189,2981,226998,4948,225312,225309,225310) """ load_d = LoadData('config_template.ini', 'mimic') print(load_d.query_db(query_mimic)) load_d.query_and_save(query_mimic, file_name='tests')
# /usr/bin/python from load_data import LoadData if __name__ == '__main__': query_mimic = """ select distinct i.label from mimiciii.outputevents as o join mimiciii.d_items as i on i.itemid = o.itemid limit 5; """ load_d = LoadData('config_template.ini', 'mimic') print(load_d.query_db(query_mimic)) load_d.query_and_save(query_mimic) query_eicu = """ SELECT DISTINCT t.patientunitstayid AS pid ,t.treatmentid AS tid ,t.treatmentoffset AS toffset FROM eicu_crd.treatment t WHERE t.treatmentstring LIKE %(treat_string)s ORDER BY t.patientunitstayid limit 5;""" load_d2 = LoadData('config_template.ini', 'eicu') params = { 'treat_string': 'pulmonary|ventilation and oxygenation|prone position'