在 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, descriptionFROM `physionet-data.eicu_crd_metadata.dictionary`WHERE LOWER(description) LIKE '%sepsis%'--替换目标关键词方法2:精准表内搜索(推荐)
SELECT column_nameFROM `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 MAPFROM `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_countFROM `lab`实战案例:快速定位「血清白蛋白」
数据字典检索:
-
在 eICU_Data_Dictionary.csv 中搜索 "albumin",锁定表名 lab,变量名 albumin
SQL 验证:
--检查数据分布SELECT MIN(albumin) AS min_val,MAX(albumin) AS max_val,COUNT(DISTINCT patientunitstayid) AS patientsFROM `physionet-data.eicu_crd.lab`WHERE albumin IS NOT NULL掌握上述方法,90% 的变量可在 5 分钟内定位。
复杂指标(如 SOFA 评分)需组合多表变量计算,建议参考 eICU 代码库中的预构建 SQL 脚本。eICU 不仅是一个数据库,更是一个理解现代重症医学实践的窗口。掌握其数据结构,准确检索数据,是开展高质量临床研究的第一步。





评论列表