이 장에서는 투약기록으로 분석대상을 정해보자.

MIMIC-III의 prescriptions 테이블은 환자에게 처방된 약물과 용량, 처방 시간에 대한 테이블로 아래와 같이 구성되어 있다.

mimic=> \\d prescriptions;
                           Table "mimiciii.prescriptions"
      Column       |              Type              | Collation | Nullable | Default 
-------------------+--------------------------------+-----------+----------+---------
 row_id            | integer                        |           | not null | 
 subject_id        | integer                        |           | not null | 
 hadm_id           | integer                        |           | not null | 
 icustay_id        | integer                        |           |          | 
 startdate         | timestamp(0) without time zone |           |          | 
 enddate           | timestamp(0) without time zone |           |          | 
 drug_type         | character varying(100)         |           | not null | 
 drug              | character varying(100)         |           | not null | 
 drug_name_poe     | character varying(100)         |           |          | 
 drug_name_generic | character varying(100)         |           |          | 
 formulary_drug_cd | character varying(120)         |           |          | 
 gsn               | character varying(200)         |           |          | 
 ndc               | character varying(120)         |           |          | 
 prod_strength     | character varying(120)         |           |          | 
 dose_val_rx       | character varying(120)         |           |          | 
 dose_unit_rx      | character varying(120)         |           |          | 
 form_val_disp     | character varying(120)         |           |          | 
 form_unit_disp    | character varying(120)         |           |          | 
 route             | character varying(120)         |           |          | 
Indexes:
    "prescription_rowid_pk" PRIMARY KEY, btree (row_id)
    "prescriptions_idx01" btree (subject_id)
    "prescriptions_idx02" btree (icustay_id)
    "prescriptions_idx03" btree (drug_type)
    "prescriptions_idx04" btree (drug)
    "prescriptions_idx05" btree (hadm_id)

패혈증에 처방되는 항생제 약물 찾기

약물의 성분명으로 항생제를 구분할 수 있다. 다만, 피하 주사와 같이 투여되는 경로에 따라 패혈증과 크게 관련이 없는 경우가 있으므로, 이를 제외한다.

대표적인 항생제 Vancomycin을 예로 들어 보자. 이 약물은 1.3 장에 소개된 그람 양성균에 의한 심각한 감염을 치료하기 위해 사용되는 항생제이다. [1]

-- SQL 3.10
SELECT drug
  FROM prescriptions
 WHERE drug ILIKE '%vancomycin%'  -- 해석 1번
    -- we exclude routes via the eye, ears, or topically
   AND route NOT IN ('OU','OS','OD','AU','AS','AD', 'TP')  -- 해석 2번
GROUP BY drug
LIMIT 10;
              drug               
---------------------------------
 NEO*IV*Vancomycin
 Vancomycin
 Vancomycin 
 Vancomycin 25mg/mL Ophth Soln
 Vancomycin Antibiotic Lock
 Vancomycin Desensitization
 Vancomycin Enema
 vancoMYCIN for inhalation
 vancoMYCIN for nasal inhalation
 Vancomycin HCl
(10 rows)

SQL 해석

  1. Vancomycin 문자열이 포함되어 있는 항생제 약물을 찾는다. psql의 ILIKE는 대소문자 구분 없이 입력값과 일치하는 데이터를 찾아 준다.
  2. 투여 경로가 눈이나 귀 등 패혈증과 크게 관련 없는 경우를 제외한다. [2]

Vancomycin 이외에도 패혈증과 관련된 항생제에는 adoxa[3], ala-tet[4], alodox[5] 등이 존재한다. 자세한 내용은 sepsis3-mimic에 공개된 abx-poe-list.sql를 참고하자.

항생제를 처방받은 환자 찾기

앞서 사용한 쿼리를 활용하여 Vancomycin을 처방받은 환자를 찾아보자. 먼저 subject_id(환자 식별자) 컬럼을 추가하자. 결과에서 보듯이 13번, 4번 환자가 Vancomycin을 정맥주사(IV, Intravenous Injection)로 투여받은 기록을 볼 수 있다.

-- SQL 3.11
SELECT subject_id, drug, route -- 해석 1번
  FROM prescriptions
WHERE drug ILIKE '%vancomycin%'
   -- we exclude routes via the eye, ears, or topically
   AND route NOT IN ('OU','OS','OD','AU','AS','AD', 'TP')
LIMIT 5;
 subject_id |      drug      | route 
------------+----------------+-------
         13 | Vancomycin HCl | IV
          4 | Vancomycin HCl | IV
          4 | Vancomycin HCl | IV
          4 | Vancomycin HCl | IV
          4 | Vancomycin HCl | IV
(5 rows)