|
| 1 | +import pickle |
| 2 | +import psycopg2 as py |
| 3 | + |
| 4 | +# Replace this with your mimic iii database details |
| 5 | +conn = py.connect( |
| 6 | + "dbname = 'mimic' user = 'snshukla' host = 'localhost' port='5432' password = ''") |
| 7 | + |
| 8 | +cur = conn.cursor() |
| 9 | +cur.execute("""select hadm_id from admissions""") |
| 10 | +list_adm_id = cur.fetchall() |
| 11 | + |
| 12 | +cur.execute("select hadm_id, admission_type, trunc(extract(epoch from " + |
| 13 | + "dischtime- admittime)/3600), hospital_expire_flag from admissions") |
| 14 | +length_of_stay = cur.fetchall() |
| 15 | +pickle.dump(length_of_stay, open('adm_type_los_mortality.p', 'wb')) |
| 16 | + |
| 17 | +# SpO2 - 646, 220277 |
| 18 | +# HR - 211, 220045 |
| 19 | +# RR - 618, 615, 220210, 224690 |
| 20 | +# SBP - 51,442,455,6701,220179,220050 |
| 21 | +# DBP - 8368,8440,8441,8555,220180,220051 |
| 22 | +# EtCO2 - 1817, 228640 |
| 23 | +# Temp(F) - 223761,678 |
| 24 | +# Temp(C) - 223762,676 |
| 25 | +# TGCS - 198, 226755, 227013 |
| 26 | +# CRR - 3348 |
| 27 | +# Urine Output - 43647, 43053, 43171, 43173, 43333, 43347, |
| 28 | +# 43348, 43355, 43365, 43373, 43374, 43379, 43380, 43431, |
| 29 | +# 43519, 43522, 43537, 43576, 43583, 43589, 43638, 43654, |
| 30 | +# 43811, 43812, 43856, 44706, 45304, 227519, |
| 31 | +# FiO2 - 2981, 3420, 3422, 223835, |
| 32 | +# Glucose - 807,811,1529,3745,3744,225664,220621,226537 |
| 33 | +# pH - 780, 860, 1126, 1673, 3839, 4202, 4753, 6003, 220274, 220734, 223830, 228243, |
| 34 | + |
| 35 | +data = [] |
| 36 | +for id in range(len(list_adm_id)): |
| 37 | + print id, list_adm_id[id][0] |
| 38 | + vitals = [] |
| 39 | + |
| 40 | + # print("Sp02") |
| 41 | + cur.execute("select charttime, valuenum from chartevents where hadm_id =" |
| 42 | + + str(list_adm_id[id][0]) + "and (itemid =" + str(646) + |
| 43 | + "or itemid =" + str(220277) + ")order by charttime") |
| 44 | + vitals.append(cur.fetchall()) |
| 45 | + |
| 46 | + # Heart Rate |
| 47 | + # print("HR") |
| 48 | + cur.execute("select charttime, valuenum from chartevents where hadm_id =" |
| 49 | + + str(list_adm_id[id][0]) + "and (itemid =" + str(211) + |
| 50 | + "or itemid =" + str(220045) + ")order by charttime") |
| 51 | + vitals.append(cur.fetchall()) |
| 52 | + |
| 53 | + # Respiratory Rate |
| 54 | + # print("RR") |
| 55 | + cur.execute("select charttime, valuenum from chartevents where hadm_id =" |
| 56 | + + str(list_adm_id[id][0]) + "and (itemid =" + str(618) + |
| 57 | + "or itemid =" + str(615) + "or itemid =" + str(220210) + |
| 58 | + "or itemid =" + str(224690) + ")order by charttime") |
| 59 | + vitals.append(cur.fetchall()) |
| 60 | + |
| 61 | + # Systolic Blood Pressure |
| 62 | + # print("SBP") |
| 63 | + cur.execute("select charttime, valuenum from chartevents where hadm_id =" |
| 64 | + + str(list_adm_id[id][0]) + "and (itemid =" + str(51) + |
| 65 | + "or itemid =" + str(442) + "or itemid =" + str(455) + |
| 66 | + "or itemid =" + str(6701) + "or itemid =" + str(220179) + |
| 67 | + "or itemid =" + str(220050) + ")order by charttime") |
| 68 | + vitals.append(cur.fetchall()) |
| 69 | + |
| 70 | + # Diastolic Blood Pressure |
| 71 | + # print("DBP") |
| 72 | + cur.execute("select charttime, valuenum from chartevents where hadm_id =" |
| 73 | + + str(list_adm_id[id][0]) + "and (itemid =" + str(8368) + |
| 74 | + "or itemid =" + str(8440) + "or itemid =" + str(8441) + |
| 75 | + "or itemid =" + str(8555) + "or itemid =" + str(220180) + |
| 76 | + "or itemid =" + str(220051) + ")order by charttime") |
| 77 | + vitals.append(cur.fetchall()) |
| 78 | + |
| 79 | + # End-tidal carbon dioxide |
| 80 | + # print("EtC02") |
| 81 | + cur.execute("select charttime, valuenum from chartevents where hadm_id =" |
| 82 | + + str(list_adm_id[id][0]) + "and (itemid =" + str(1817) + |
| 83 | + "or itemid =" + str(228640) + ")order by charttime") |
| 84 | + vitals.append(cur.fetchall()) |
| 85 | + |
| 86 | + # Temperature |
| 87 | + # print("Temp") |
| 88 | + cur.execute("select charttime, valuenum from chartevents where hadm_id =" |
| 89 | + + str(list_adm_id[id][0]) + "and (itemid =" + str(678) + |
| 90 | + "or itemid =" + str(223761) + ")order by charttime") |
| 91 | + vitals.append(cur.fetchall()) |
| 92 | + cur.execute("select charttime, valuenum from chartevents where hadm_id =" |
| 93 | + + str(list_adm_id[id][0]) + "and (itemid =" + str(676) + |
| 94 | + "or itemid =" + str(223762) + ")order by charttime") |
| 95 | + vitals.append(cur.fetchall()) |
| 96 | + |
| 97 | + # Total Glasgow coma score |
| 98 | + # print("TGCS") |
| 99 | + cur.execute("select charttime, valuenum from chartevents where hadm_id =" |
| 100 | + + str(list_adm_id[id][0]) + "and (itemid =" + str(198) + |
| 101 | + "or itemid =" + str(226755) + "or itemid =" + str(227013) |
| 102 | + + ")order by charttime") |
| 103 | + vitals.append(cur.fetchall()) |
| 104 | + |
| 105 | + # Peripheral capillary refill rate |
| 106 | + # print("CRR") |
| 107 | + cur.execute("select charttime, value from chartevents where hadm_id =" |
| 108 | + + str(list_adm_id[id][0]) + "and itemid =" + str(3348) + |
| 109 | + "order by charttime") |
| 110 | + vitals.append(cur.fetchall()) |
| 111 | + cur.execute("select charttime, value from chartevents where hadm_id =" |
| 112 | + + str(list_adm_id[id][0]) + "and (itemid =" + str(115) + |
| 113 | + "or itemid = 223951) order by charttime") |
| 114 | + vitals.append(cur.fetchall()) |
| 115 | + cur.execute("select charttime, value from chartevents where hadm_id =" |
| 116 | + + str(list_adm_id[id][0]) + "and (itemid =" + str(8377) + |
| 117 | + "or itemid = 224308) order by charttime") |
| 118 | + vitals.append(cur.fetchall()) |
| 119 | + |
| 120 | + # Urine output 43647, 43053, 43171, 43173, 43333, 43347, 43348, 43355, 43365, 43373, 43374, 43379 |
| 121 | + # print("UO") |
| 122 | + cur.execute("select charttime, VALUE from outputevents where hadm_id =" |
| 123 | + + str(list_adm_id[id][0]) + " and ( itemid = 40405 or itemid =" + |
| 124 | + " 40428 or itemid = 41857 or itemid = 42001 or itemid = 42362 or itemid =" + |
| 125 | + " 42676 or itemid = 43171 or itemid = 43173 or itemid = 42042 or itemid =" + |
| 126 | + " 42068 or itemid = 42111 or itemid = 42119 or itemid = 40715 or itemid =" + |
| 127 | + " 40056 or itemid = 40061 or itemid = 40085 or itemid = 40094 or itemid =" + |
| 128 | + " 40096 or itemid = 43897 or itemid = 43931 or itemid = 43966 or itemid =" + |
| 129 | + " 44080 or itemid = 44103 or itemid = 44132 or itemid = 44237 or itemid =" + |
| 130 | + " 43348 or itemid =" + |
| 131 | + " 43355 or itemid = 43365 or itemid = 43372 or itemid = 43373 or itemid =" + |
| 132 | + " 43374 or itemid = 43379 or itemid = 43380 or itemid = 43431 or itemid =" + |
| 133 | + " 43462 or itemid = 43522 or itemid = 44706 or itemid = 44911 or itemid =" + |
| 134 | + " 44925 or itemid = 42810 or itemid = 42859 or itemid = 43093 or itemid =" + |
| 135 | + " 44325 or itemid = 44506 or itemid = 43856 or itemid = 45304 or itemid =" + |
| 136 | + " 46532 or itemid = 46578 or itemid = 46658 or itemid = 46748 or itemid =" + |
| 137 | + " 40651 or itemid = 40055 or itemid = 40057 or itemid = 40065 or itemid =" + |
| 138 | + " 40069 or itemid = 44752 or itemid = 44824 or itemid = 44837 or itemid =" + |
| 139 | + " 43576 or itemid = 43589 or itemid = 43633 or itemid = 43811 or itemid =" + |
| 140 | + " 43812 or itemid = 46177 or itemid = 46727 or itemid = 46804 or itemid =" + |
| 141 | + " 43987 or itemid = 44051 or itemid = 44253 or itemid = 44278 or itemid =" + |
| 142 | + " 46180 or itemid = 45804 or itemid = 45841 or itemid = 45927 or itemid =" + |
| 143 | + " 42592 or itemid = 42666 or itemid = 42765 or itemid = 42892 or itemid =" + |
| 144 | + " 43053 or itemid = 43057 or itemid = 42130 or itemid = 41922 or itemid =" + |
| 145 | + " 40473 or itemid = 43333 or itemid = 43347 or itemid = 44684 or itemid =" + |
| 146 | + " 44834 or itemid = 43638 or itemid = 43654 or itemid = 43519 or itemid =" + |
| 147 | + " 43537 or itemid = 42366 or itemid = 45991 or itemid = 43583 or itemid =" + |
| 148 | + " 43647) order by charttime ") |
| 149 | + vitals.append(cur.fetchall()) |
| 150 | + |
| 151 | + # Fraction inspired oxygen |
| 152 | + # print("Fi02") |
| 153 | + cur.execute("select charttime, valuenum from chartevents where hadm_id =" |
| 154 | + + str(list_adm_id[id][0]) + "and (itemid =" + str(2981) + |
| 155 | + "or itemid =" + str(3420) + "or itemid =" + str(3422) + |
| 156 | + "or itemid =" + str(223835) + ")order by charttime") |
| 157 | + vitals.append(cur.fetchall()) |
| 158 | + |
| 159 | + # Glucose 807,811,1529,3745,3744,225664,220621,226537 |
| 160 | + # print("Glucose") |
| 161 | + cur.execute("select charttime, valuenum from chartevents where hadm_id =" |
| 162 | + + str(list_adm_id[id][0]) + "and (itemid =" + str(807) + |
| 163 | + "or itemid =" + str(811) + "or itemid =" + str(1529) + |
| 164 | + "or itemid =" + str(3745) + "or itemid =" + str(3744) + |
| 165 | + "or itemid =" + str(225664) + "or itemid =" + str(220621) + |
| 166 | + "or itemid =" + str(226537) + ")order by charttime") |
| 167 | + vitals.append(cur.fetchall()) |
| 168 | + |
| 169 | + # pH 780, 860, 1126, 1673, 3839, 4202, 4753, 6003, 220274, 220734, 223830, 228243, |
| 170 | + # print("pH") |
| 171 | + cur.execute("select charttime, valuenum from chartevents where hadm_id =" |
| 172 | + + str(list_adm_id[id][0]) + "and (itemid =" + str(780) + |
| 173 | + "or itemid =" + str(860) + "or itemid =" + str(1126) + |
| 174 | + "or itemid =" + str(1673) + "or itemid =" + str(3839) + |
| 175 | + "or itemid =" + str(4202) + "or itemid =" + str(4753) + |
| 176 | + "or itemid =" + str(6003) + "and itemid =" + str(220274) + |
| 177 | + "or itemid =" + str(220734) + "or itemid =" + str(223830) + |
| 178 | + "or itemid =" + str(228243) + ") order by charttime") |
| 179 | + vitals.append(cur.fetchall()) |
| 180 | + data.append(vitals) |
| 181 | +pickle.dump(data, open('vitals_records.p', 'wb')) |
0 commit comments