initial
This commit is contained in:
215
sql/sepsis/antibiotic.sql
Normal file
215
sql/sepsis/antibiotic.sql
Normal file
@@ -0,0 +1,215 @@
|
||||
-- ------------------------------------------------------------------
|
||||
-- Title: Antibiotic prescriptions
|
||||
--
|
||||
-- Adapted from the MIMIC-IV upstream
|
||||
-- concepts/medication/antibiotic.sql
|
||||
-- and ported to MIMIC-III v1.3 vanilla PostgreSQL.
|
||||
--
|
||||
-- PORT NOTES:
|
||||
-- 1. MIMIC-III `prescriptions` has DATE-precision `startdate` /
|
||||
-- `enddate` instead of MIMIC-IV's TIMESTAMP `starttime` /
|
||||
-- `stoptime`. We carry these through unchanged; downstream
|
||||
-- consumers (suspicion_of_infection.sql) treat the antibiotic
|
||||
-- time as the start-of-day timestamp of `startdate`.
|
||||
-- 2. MIMIC-III `prescriptions` already has a populated `icustay_id`
|
||||
-- column on most rows, so we can pick the ICU stay directly
|
||||
-- rather than recomputing from `intime`/`outtime`. We still
|
||||
-- back-fill it from `icustays` where missing, the same way
|
||||
-- MIMIC-IV does.
|
||||
-- ------------------------------------------------------------------
|
||||
|
||||
DROP TABLE IF EXISTS antibiotic;
|
||||
CREATE TABLE antibiotic AS
|
||||
|
||||
WITH abx AS
|
||||
(
|
||||
SELECT DISTINCT
|
||||
drug
|
||||
, route
|
||||
, CASE
|
||||
WHEN LOWER(drug) LIKE '%adoxa%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%ala-tet%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%alodox%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%amikacin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%amikin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%amoxicill%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%amphotericin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%anidulafungin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%ancef%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%clavulanate%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%ampicillin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%augmentin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%avelox%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%avidoxy%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%azactam%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%azithromycin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%aztreonam%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%axetil%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%bactocill%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%bactrim%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%bactroban%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%bethkis%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%biaxin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%bicillin l-a%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cayston%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cefazolin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cedax%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cefoxitin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%ceftazidime%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cefaclor%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cefadroxil%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cefdinir%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cefditoren%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cefepime%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cefotan%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cefotetan%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cefotaxime%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%ceftaroline%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cefpodoxime%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cefpirome%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cefprozil%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%ceftibuten%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%ceftin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%ceftriaxone%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cefuroxime%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cephalexin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cephalothin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cephapririn%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%chloramphenicol%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cipro%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%ciprofloxacin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%claforan%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%clarithromycin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cleocin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%clindamycin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%cubicin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%dicloxacillin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%dirithromycin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%doryx%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%doxycy%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%duricef%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%dynacin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%ery-tab%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%eryped%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%eryc%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%erythrocin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%erythromycin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%factive%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%flagyl%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%fortaz%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%furadantin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%garamycin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%gentamicin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%kanamycin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%keflex%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%kefzol%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%ketek%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%levaquin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%levofloxacin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%lincocin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%linezolid%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%macrobid%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%macrodantin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%maxipime%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%mefoxin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%metronidazole%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%meropenem%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%methicillin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%minocin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%minocycline%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%monodox%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%monurol%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%morgidox%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%moxatag%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%moxifloxacin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%mupirocin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%myrac%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%nafcillin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%neomycin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%nicazel doxy 30%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%nitrofurantoin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%norfloxacin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%noroxin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%ocudox%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%ofloxacin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%omnicef%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%oracea%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%oraxyl%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%oxacillin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%pc pen vk%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%pce dispertab%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%panixine%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%pediazole%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%penicillin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%periostat%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%pfizerpen%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%piperacillin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%tazobactam%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%primsol%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%proquin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%raniclor%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%rifadin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%rifampin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%rocephin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%smz-tmp%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%septra%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%septra ds%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%solodyn%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%spectracef%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%streptomycin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%sulfadiazine%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%sulfamethoxazole%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%trimethoprim%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%sulfatrim%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%sulfisoxazole%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%suprax%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%synercid%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%tazicef%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%tetracycline%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%timentin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%tobramycin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%unasyn%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%vancocin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%vancomycin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%vantin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%vibativ%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%vibra-tabs%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%vibramycin%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%zinacef%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%zithromax%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%zosyn%' THEN 1
|
||||
WHEN LOWER(drug) LIKE '%zyvox%' THEN 1
|
||||
ELSE 0
|
||||
END AS antibiotic
|
||||
FROM prescriptions
|
||||
WHERE drug_type NOT IN ('BASE')
|
||||
-- match upstream: NULL routes are excluded by the NOT IN.
|
||||
AND route NOT IN ('OU','OS','OD','AU','AS','AD','TP')
|
||||
AND LOWER(route) NOT LIKE '%ear%'
|
||||
AND LOWER(route) NOT LIKE '%eye%'
|
||||
AND LOWER(drug) NOT LIKE '%cream%'
|
||||
AND LOWER(drug) NOT LIKE '%desensitization%'
|
||||
AND LOWER(drug) NOT LIKE '%ophth oint%'
|
||||
AND LOWER(drug) NOT LIKE '%gel%'
|
||||
)
|
||||
SELECT pr.subject_id
|
||||
, pr.hadm_id
|
||||
, COALESCE(pr.icustay_id, ie.icustay_id) AS icustay_id
|
||||
, pr.drug AS antibiotic
|
||||
, pr.route
|
||||
-- DATE-precision in MIMIC-III; downstream treats this as the
|
||||
-- start-of-day timestamp.
|
||||
, pr.startdate AS starttime
|
||||
, pr.enddate AS stoptime
|
||||
FROM prescriptions pr
|
||||
INNER JOIN abx
|
||||
ON pr.drug = abx.drug
|
||||
AND pr.route = abx.route
|
||||
LEFT JOIN icustays ie
|
||||
ON pr.hadm_id = ie.hadm_id
|
||||
AND pr.startdate >= CAST(ie.intime AS DATE)
|
||||
AND pr.startdate <= CAST(ie.outtime AS DATE)
|
||||
WHERE abx.antibiotic = 1;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS antibiotic_idx
|
||||
ON antibiotic (subject_id, hadm_id, starttime);
|
||||
Reference in New Issue
Block a user