如何在eICU数据库找到感兴趣的数据,含步骤详解

官方
阅读 99 0 收藏 0 2025-10-07 10:00:00

在 eICU 协作研究数据库(eICU-CRD)中高效定位目标变量,需结合数据库结构化特征和实用查询技巧。以下是分步操作指南:

Step 1:理解数据库模块化结构

eICU-CRD 数据按临床场景分表存储,优先确定变量所属模块: 

  • Patient:人口学信息(年龄、性别、入院类型)

  • apachePatientResult:APACHE 评分系统相关(疾病诊断、急性生理参数) 

  • Lab:实验室指标(血常规、生化、血气) 

  • vitalPeriodic :周期性生命体征(血压、心率、呼吸频率) 

  • medication :药物使用(药品名、剂量、途径) 

  • diagnosis :ICD 诊断代码 

  • nurseAssessment :护理评估(GCS 评分、疼痛评分)

Step 2:利用官方变量检索工具

访问官方元数据:

  • 下载 eICU-CRD 数据字典 的 CSV 文件(如 eICU_Data_Dictionary.csv)

Excel 筛选:

# 按变量名关键词搜索(支持通配符 *)
筛选 [Column Name] 或 [Description] 字段:
-查找"白蛋白"→ 输入 *albumin*
-查找"氧合"→ 输入 *o2*OR *oxygen*

Step 3:SQL 快速定位法

在 BigQuery 或 PostgreSQL 中执行智能查询:sql

方法1:扫描全库变量描述(耗时约 20 秒)

SELECT table_name, column_name, description
FROM `physionet-data.eicu_crd_metadata.dictionary`
WHERE LOWER(description) LIKE '%sepsis%'--替换目标关键词

方法2:精准表内搜索(推荐)

SELECT column_name
FROM `physionet-data.eicu_crd_metadata.columns`
WHERE LOWER(column_name) LIKE '%lactate%'--变量名关键词
OR table_name ='lab'--限定表范围加速查询

Step 4:临床逻辑映射表

常见需求与变量对应关系(部分示例):

高级技巧:跨表关联提示

若变量未直接找到,需考虑关联衍生。

血压衍生变量:

原始表:vitalPeriodic 中的 systemicsystolic(收缩压), systemicdiastolic(舒张压)

需计算 MAP(平均动脉压):sql

SELECT (systemicsystolic +2*systemicdiastolic)/3AS MAP
FROM `vitalPeriodic`

药物总剂量计算:

medication 表中的 drugdosage 需结合 frequency 字段计算日剂量

如结合疾病和生命体征:

with AMI as (SELECT distinct patientunitstayid,icd9code as AMI fromeicuii.diagnosis where icd9code similar to '(410|I21|I22)%'
andpatientunitstayid in(select  distinct patientunitstayid fromeicuii.patient where unitvisitnumber=1)
),
 aa as (select v.patientunitstayid,v.heartrate,v.respiration,row_number()over(partition by v.patientunitstayid order by v.observationoffset)as bb fromeicuii.vitalperiodic v
 join AMI on v.patientunitstayid =AMI.patientunitstayid)
 
select distinct patientunitstayid,heartrate,respiration fromaa where bb =1

注意事项:

版本差异:

eICU v2.0 新增了 microLab(微生物培养)表,旧版研究需注意兼容性。

单位统一:

实验室指标单位可能混杂(如肌酐:μmol/L 与 mg/dL),用 lab.labresultoffset 字段转换。

空值处理:

关键变量(如 albumin)需筛查缺失率:sql

SELECT COUNT(*) AS total,
SUM(CASE WHEN albumin IS NULL THEN 1ELSE 0END) AS null_count
FROM `lab`

实战案例:快速定位「血清白蛋白」

数据字典检索:

  • 在 eICU_Data_Dictionary.csv 中搜索 "albumin",锁定表名 lab,变量名 albumin

SQL 验证:

--检查数据分布
SELECT MIN(albumin) AS min_val,
MAX(albumin) AS max_val,
COUNT(DISTINCT patientunitstayid) AS patients
FROM `physionet-data.eicu_crd.lab`
WHERE albumin IS NOT NULL

掌握上述方法,90% 的变量可在 5 分钟内定位。

复杂指标(如 SOFA 评分)需组合多表变量计算,建议参考 eICU 代码库中的预构建 SQL 脚本。eICU 不仅是一个数据库,更是一个理解现代重症医学实践的窗口。掌握其数据结构,准确检索数据,是开展高质量临床研究的第一步。


评论列表

发表评论