跳转至

eICU-tutorial

1060 个字 24 行代码 预计阅读时间 11 分钟

1 Introduction

eICU 协作研究数据库汇集了来自美国本土众多重症监护室的综合数据,该协作数据库收录了 2014 年至 2015 年期间入住重症监护室的患者的相关数据

获取 eICU 完整数据需要完成 CITI 课程,并在 PhysioNet 上提交结业报告,且需要在申请表单中填写推荐人(即导师的姓名和联系方式)

eicu-code/notebooks/
├── admissiondrug.ipynb
├── admissiondx.ipynb
├── allergy.ipynb
├── apache.ipynb
├── careplan.ipynb
├── cross-reference-apache-treatments.ipynb
├── demo
   ├── 01-explore-patient-table.ipynb
   ├── 02-demographics-and-severity-of-illness.ipynb
   ├── 03-plot-timeseries.ipynb
   └── README.md
├── diagnosis.ipynb
├── hospital.ipynb
├── infusiondrug.ipynb
├── intakeoutput.ipynb
├── lab.ipynb
├── medication.ipynb
├── nursecharting.ipynb
├── pasthistory.ipynb
├── patient.ipynb
├── treatment.ipynb
├── vitalaperiodic.ipynb
└── vitalperiodic.ipynb

notebooks/ 中包含使用 eicu 数据库的示例,示例中主要是通过 pandas, matplotlib, sqlite3, psycopg2 库对数据进行简单的处理和绘图展示

- `notebooks/demo` 中的几个 ipynb 作为简单的学习示例供使用者学习 eicu 数据库的表格及其处理,文件中还会列举出几个问题帮助思考。

使用前需要从 https://physionet.org/content/eicu-crd-demo/2.0.1/ 中下载一个 **eICU Database demo** (完整数据库中有超过 20 万例入院患者的数据,demo 中只有 2500 余例数据,包含所有表格的 .csv 文件以及对 csv 进行整理制作的 .sqlite3 文件)放在 `demo/` 下

- 其他部分的 ipynb 分别是对==完整数据库==中的不同表格的数据处理示例,需要获取完整的数据库(使用可以参考 https://eicu-crd.mit.edu/eicutables/vitalperiodic/)

2 Tables

2.1 Overview

Quote

eicu-schema-spy: https://lcp.mit.edu/eicu-schema-spy/

Table Children Parents Columns Rows
admissiondrug 1 14 874,920
admissiondx 1 6 626,858
allergy 1 13 251,949
apacheapsvar 1 26 171,177
apachepatientresult 1 23 297,064
apachepredvar 1 51 171,177
careplancareprovider 1 8 502,765
careplaneol 1 5 1,433
careplangeneral 1 6 3,115,018
careplangoal 1 7 504,139
careplaninfectiousdisease 1 8 8,056
customlab 1 7 1,082
diagnosis 1 7 2,710,672
hospital 4 208
infusiondrug 1 9 4,803,719
intakeoutput 1 12 12,030,289
lab 1 10 39,132,531
medication 1 15 7,301,853
microlab 1 7 16,996
note 1 8 2,254,179
nurseassessment 1 8 15,602,498
nursecare 1 8 8,311,132
nursecharting 1 8 151,604,232
pasthistory 1 8 1,149,180
patient 29 29 200,859
physicalexam 1 6 9,212,316
respiratorycare 1 34 865,381
respiratorycharting 1 7 20,168,176
treatment 1 5 3,688,745
vitalaperiodic 1 13 25,075,074
vitalperiodic 1 19 146,671,642
31 Tables 391 457,325,320

2.1 Identifiers

标识符在整个数据库中被用于识别独特的概念,如患者、医院、ICU 住院记录等。

  • hospitalid - 用于唯一标识数据库中的每家医院

  • uniquepid - 用于唯一标识患者(即同一人的该值始终不变)

  • patienthealthsystemsstayid - 用于唯一标识住院记录
  • patientunitstayid - 唯一标识单元住院记录(即指医院内的重症监护室)

事实上,patientunitstayid 是最关键的“标识符”,即 patient 表格的主键以及几乎所有其他表格的外键 ( https://lcp.mit.edu/eicu-schema-spy/relationships.html )

2.2 Key Tables

2.2.1 Patient Table

https://lcp.mit.edu/eicu-schema-spy/tables/patient.html

包含 patient 的个人信息,patientunitstayid 作为主键,连接其他几乎所有 table

2.2.2 Lab Table

https://eicu-crd.mit.edu/eicutables/lab/

主要是一些代谢和生化的数据,包含的项目包括:

  • 血气:pH、PCO₂、PO₂、Lactate
  • 电解质:Na、K、Cl、Mg
  • 肝功能:ALT、AST、TBili
  • 肾功能:Creatinine、BUN
  • 血糖:Glucose
  • 炎症标志物:WBC

示例:

labid patientunitstayid labresultoffset labtypeid labname labresult labresulttext labmeasurenamesystem labmeasurenameinterface labresultrevisedoffset
437880563 1754323 -647 3 Hct 38.3 38.3 % % -631
437880572 1754323 -647 3 platelets x 1000 181 181 K/mcL k/mm cu -631
437880560 1754323 -647 3 RBC 4.86 4.86 M/mcL m/mm cu -631

2.2.3 Diagnosis Table

https://eicu-crd.mit.edu/eicutables/diagnosis/

主要记录患者的诊断记录,表中包含有 corresponding International Classification of Diseases (ICD) ICD 编码

示例:

diagnosisid patientunitstayid activeupondischarge diagnosisoffset diagnosisstring icd9code diagnosispriority
7607199 346380 FALSE 5028 cardiovascular|ventricular disorders|hypertension 401.9, I10 Other
7570429 346380 FALSE 685 neurologic|altered mental status / pain|change in mental status 780.09, R41.82 Major
7705483 346380 TRUE 5035 cardiovascular|shock / hypotension|hypotension 458.9, I95.9 Major

2.2.4 VitalPeriodic / VitalAperidoic Table

https://eicu-crd.mit.edu/eicutables/vitalaperiodic/

https://eicu-crd.mit.edu/eicutables/vitalperiodic/

这些表格记录 ICU 患者时间序列生理状态,包含的项目包括:

  • 心率 HR
  • 血压 SBP/DBP/MAP
  • 呼吸率 RR
  • 血氧 SpO
  • 体温 Temp 等等

3 Usage Example

3.1 HyperEHR

HyperEHR: https://github.com/LZlab01/HyperEHR#

Code for "Hypergraph Convolutional Networks for Fine-grained ICU Patient Similarity Analysis and Risk Prediction". Paper: https://arxiv.org/abs/2308.12575

构建一个能够利用 ICU 患者电子病历(EHR)数据的患者超图(Hypergraph,并基于这个超图进行患者相似度学习与风险预测,主要用到以下表格:

  • patient.csv
  • diagnosis.csv (icd9Code)
  • vitalPeriodic.csv / vitalAperiodic.csv

数据流

原始数据(raw CSV) -> 清洗合并后的 pandas DataFrame -> 时间序列矩阵、诊断特征矩阵(numpy arrays) -> PyTorch Dataset / Tensor(模型输入)-> 模型输出(logit / 概率)

3.2 YAIB

YAIB: https://github.com/rvandewater/YAIB

🧪Yet Another ICU Benchmark: a holistic framework for the standardization of clinical prediction model experiments. Provide custom datasets, cohorts, prediction tasks, endpoints, preprocessing, and models. Paper: https://arxiv.org/abs/2306.05109

TBD