信息速览

CGRD(长庚研究数据库) — 中国台湾最大多院区电子病历库 AI-Ready Wikipedia
INFOBOX
| 字段 | 内容 |
|---|---|
| 数据集名称 | 长庚研究数据库(Chang Gung Research Database, CGRD) |
| 英文全称 | Chang Gung Research Database |
| 别名/简称 | CGRD、长庚研究数据库、Chang Gung EMR Database |
| 疾病分类(ICD-11) | 全病种 EHR;常见研究标签映射:FA20 类风湿关节炎、5A11 2 型糖尿病、GB61 慢性肾病、BA41 急性心肌梗死、8B11 脑梗死等 |
| SNOMED CT | 原始记录使用 ICD-9-CM/ICD-10-CM 编码;主要病种的 SNOMED CT 映射见 §2.1b |
| 数据模态 | 电子病历(诊断、处方、检验、病理、手术、生命体征、放射报告、中医处方) |
| AI 任务类型 | 疾病风险预测、预后建模、药物流行病学真实世界证据、时序表型挖掘 |
| 样本总数 | 约 500 万门诊患者样本 + 290 万住院患者样本(2000 年口径,此后逐年更新) |
| 数据格式 | 关系型数据表(经院内正式查询交付分析数据集) |
| 许可证 | 长庚医疗财团法人内部研究使用协议(非公开许可) |
| 访问级别 | 申请审核(限长庚体系研究人员 + IRB 批准 + 机构委员会核准的正式查询) |
| DUO 标签 | HMB(生物医学研究)、IRB(需伦理批准)、GS(机构/地理限制) |
| 语言 | 繁体中文病历文本 + 英文编码字段(ICD/ATC) |
| 首发日期 | 2000 年(电子病历起点);2017 年(首篇介绍论文发表) |
| 最后更新 | 每年更新一次(截至 2026-09 持续维护) |
| 发布机构 | 长庚医疗财团法人(Chang Gung Medical Foundation, CGMH) |
| 官方主页 | https://www.cgmh.org.tw |
| DOI | 10.1016/j.bj.2017.08.002(首篇介绍论文) |
| 引用次数 | 223+(Semantic Scholar,截至 2026-09,首篇介绍论文) |
| AI 就绪度评分 | ⭐⭐(2/5)— 数据内容丰富且死亡编码经系统验证,但访问封闭、无官方划分与预处理脚本,需在正式查询设计阶段定案特征工程 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(ICD-9/ICD-10-CM 与 ICD-11/SNOMED CT 映射、真实世界临床任务定义、金标准描述)、§7 偏倚分析。
数据工程审核者:千方病案医学编辑部交叉审核:医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。CGRD 要求研究者满足长庚医疗体系内部申请资格、通过长庚医疗财团法人 IRB 伦理审查,并由院内分析师执行机构委员会核准的正式查询。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 30 秒速览
这是什么? CGRD(Chang Gung Research Database,长庚研究数据库)是中国台湾长庚医疗财团法人从旗下医院原始病历中提取的去标识化电子病历研究数据库。长庚体系横跨中国台湾东北部到南部,拥有林口、台北、桃园、基隆、云林、嘉义、高雄等 7 个主要院区,截至 2020 年共 9 个分支机构、9,000 余张床位。数据库自 2000 年电子病历可用起持续收录,每年更新一次(Tsai et al., 2017;Huang et al., 2022)。
为什么重要? 它是中国台湾最大的多机构 EMR 数据库:在 2000 年全台 23,753,407 名健保在保人口中,CGRD 已覆盖约 500 万门诊患者样本与 290 万住院患者样本,总体覆盖中国台湾门诊量的 21.2% 与住院量的 12.4%。与基于保险申报的 NHIRD 相比,CGRD 保留了病理报告、实验室结果等临床细节,诊断可以由检验与病理证据支持,这对药物流行病学与真实世界证据(RWE)研究是关键优势(Tsai et al., 2017;Shao et al., 2019)。
我能用它做什么? 如果你属于长庚体系并取得 IRB 批准,可以用它构建疾病队列、训练疾病风险预测模型(如卒中后抑郁、心血管事件)、评估药物安全性(如 SGLT2 抑制剂、中药)、并以死亡登记链接做生存分析。已有研究将数百万份心电图链接至 CGRD 训练深度学习模型并在外院完成外部验证。它不是公开下载集——一切分析在"设计查询→院内执行→拿回脱敏结果"的流程内完成。
§1.1 摘要
CGRD 是一个由医院系统主导建设的二次利用型 EMR 研究数据库,而非公开下载数据集。长庚信息部门将各院区原始电子病历去标识化(患者医院识别号全部加密)后汇入统一数据仓库,研究者通过 IRB 批准的研究计划书提交正式查询(formal query),由机构委员会核准后由院内分析师执行并交付脱敏分析数据集(流感研究方法学描述)。数据内容涵盖门诊与住院就诊记录、诊断(2001-2015 年使用 ICD-9-CM,2016 年起使用 ICD-10-CM)、处方与用药(含剂量,分析中常按 ATC 分组)、检验结果(血常规与生化)、病理与放射报告、手术记录、生命体征、每日病历以及中医处方。2015 年口径下,CGRD 相对全台 NHIRD 含 6.1% 的门诊量与 10.2% 的住院量;其人群重症比例更高(老年门诊 23.5% vs 12.5%,儿科住院 19.7% vs 14.4%),提示研究者必须显式处理选择偏倚。出院状态(尤其死亡)已与死亡登记交叉验证:出院后一周内死亡编码准确率超过 97%,2010 年后超过 98%(Huang et al., 2022)。
§1.2 战略价值
维度一:深度对抗广度。 NHIRD 覆盖 99.9% 中国台湾人口但只有申报编码;CGRD 覆盖约两成门诊、一成住院,却保留了检验、病理、生命体征与病历文本等申报库中不存在的临床深度。对于需要混杂因素控制(HbA1c、eGFR、肌酐等实验室指标)的药物安全研究,CGRD 能做出 NHIRD 做不了的精细分析(Shao et al., 2019;PHD Center 汇总)。对 AI 研究者而言,这种深度正是训练预测模型所需的特征供给:急诊回诊预测研究一次性使用了 617 个临床变量(URV 研究)。
维度二:二十余年连续时序。 自 2000 年起电子病历连续可用且每年更新,支持超长程纵向研究:心电图-主要心血管事件(MACE)深度学习研究链接了 2000 年代至今的 282 万余份心电图与 107 万余人;卒中后抑郁预测研究使用 2001-2020 共 20 年数据。长期随访窗口对慢病进展、迟发不良事件等研究命题稀缺且昂贵,CGRD 在亚洲机构级数据库中属于极少数能同时满足规模与时程的选择。
维度三:已验证的结局质量。 多数机构 EMR 库的死亡结局从未被系统验证,而 CGRD 用 1,972,044 条住院记录与中国台湾死亡登记对照,给出分年代、分年龄的准确率与低估率参考值。研究者可以据此设计敏感性分析而非盲信字段——这种"自带验证报告"的特性显著降低了生存分析类 AI 研究的结局噪声(Huang et al., 2022)。
§1.3 同类数据集横向对比
| 数据集 | 规模 | 模态 | 临床深度 | 访问方式 | 与 CGRD 的差异化 |
|---|---|---|---|---|---|
| CGRD | 约 500 万门诊 + 290 万住院患者样本(2000 年口径) | 多院区 EMR | 检验、病理、生命体征、用药、中医处方 | 院内申请 + IRB + 正式查询 | 原始病历级深度 + 20 余年连续时序 + 结局验证 |
| 中国台湾 NHIRD | 覆盖 99.9% 人口 | 保险申报 | 诊断/处方/处置编码,无检验结果 | 卫福部资料科学中心内申请 | 全国代表性更强,但临床深度浅 |
| MIMIC-III | 约 4.6 万成人 ICU 住院 | 单院区 ICU | 高频监护 + 实验室 | PhysioNet 凭证化公开 | 公开免费、ICU 高分辨率;CGRD 规模大但封闭 |
| eICU-CRD | 139,367 患者、208 家 ICU | 多院区 ICU | ICU 时段数据 | PhysioNet 凭证化公开 | 美国多院区 ICU;CGRD 覆盖全院而非仅 ICU |
| TriNetX | 全球网络级 | 索引化 EHR | 实验室与诊断 | 商业许可/联合研究 | 网络规模大;CGRD 院内数据粒度更细 |
§1.4 版本时间轴
| 时间 | 里程碑 | 说明 |
|---|---|---|
| 2000 年 | 电子病历起点 | CGMH 电子病历自此可用于研究;此前纸质病历不对研究者开放(Tsai et al., 2017) |
| 2013 年 | 长庚大学 RSCHI 设立 | 成为卫福部健康福利资料科学中心第六分中心,整合 103 种官方数据库(RSCHI 官网) |
| 2016 年 | 编码体系切换 | 诊断编码由 ICD-9-CM 切换至 ICD-10-CM(PSD 研究) |
| 2017 年 | 首篇介绍论文 | Tsai et al. 在 Biomedical Journal 系统分析 CGRD 特征与覆盖率(DOI 10.1016/j.bj.2017.08.002) |
| 2019 年 | 方法学论文 | Shao et al. 在 Pharmacoepidemiology and Drug Safety 对比 CGRD 与 NHIRD(DOI 10.1002/pds.4713) |
| 2021-2022 年 | 结局验证与中医子库 | 中医数据源论文(DOI 10.1002/pds.5208);出院状态验证论文(DOI 10.1016/j.bj.2021.12.006) |
| 2024 年 | 大规模 AI 应用 | 数百万份心电图链接 CGRD 的 MACE 深度学习研究发表于 npj Digital Medicine(DOI 10.1038/s41746-024-01410-3) |
| 2026 年 | 持续维护 | 每年更新一次,截至 2026-09 仍在产出高影响因子研究 |
§1.5 典型应用场景
- 药物安全信号验证:以检验指标(eGFR、HbA1c)为协变量评估药物-结局关联,如 SGLT2 抑制剂与慢性肾病-骨矿物质疾病(CMAJ 2025)、SGLT2 抑制剂对比 GLP-1 受体激动剂与贫血(JAMA Network Open 2024)。
- 疾病风险预测模型开发:利用多变量临床数据训练机器学习模型,如卒中后抑郁预测(XGBoost)、急诊腹痛 72 小时非计划回诊预测(617 变量)、流感危重与院内死亡预测。
- 生理信号 + EMR 联合建模:将院内数百万份 12 导联心电图链接至 CGRD 纵向结局,训练多任务深度学习模型预测心肌梗死、卒中、心衰住院与全因死亡(npj Digital Medicine 2024)。
- 中医真实世界研究:年均 71,002 名中医患者子库支持中药处方-结局关联分析(Pharmacoepidemiology and Drug Safety 2021)。
- 生存分析与结局验证方法学:以死亡登记链接与已发表的低估死亡率(UEM)参考值设计敏感性分析。
- 医院运营与医疗服务研究:利用门诊、住院与急诊就诊记录分析就诊模式、科室负载与季节性波动(流感研究以 ED 就诊构建队列即是此类)。
- 表型算法学研究:以 ICD 编码、检验与处方组合定义可跨库复用的疾病表型算法,并用 CGRD 的病历深度做阳性预测值验证。
§2 医学背景
§2.1 ICD-11 编码映射表
CGRD 原生使用 ICD-9-CM(2001-2015)与 ICD-10-CM(2016 年起)编码。下表将文献中常见的研究标签映射至 ICD-11 与 ICD-10,供跨库研究者对齐术语。
| 研究标签 | ICD-10-CM | ICD-11 | 文献依据(CGRD 研究中使用) |
|---|---|---|---|
| 类风湿关节炎 | M05-M06 | FA20 | RA 心血管风险队列(JAHA 2021,ICD-9 714.0 / ICD-10 M05-M06) |
| 2 型糖尿病 | E11 | 5A11 | SGLT2 抑制剂肾病骨病研究(CMAJ 2025) |
| 慢性肾病 | N18 | GB61 | CGRD 覆盖率研究(门诊覆盖 33%);SGLT2 研究人群 |
| 缺血性脑卒中 | I63、G45、G46 | 8B11 | 卒中后抑郁预测研究纳入标准(ICD-9 430-438 / ICD-10 I6、G45、G46) |
| 急性心肌梗死 | I21 | BA41 | 心血管结局研究终点定义 |
| 哮喘 | J45 | CA23 | COVID-19 期间非药物干预与哮喘急性发作研究 |
| 慢性阻塞性肺疾病 | J44 | CA22 | 呼吸系统共病分析 |
| 流感 | J09-J11 | 1E30 | 两阶段院内死亡预测研究(Linkou ED,ICD-10 J09、J10、J11) |
| 慢性乙型病毒性肝炎 | B18.1 | 1E51 | 肝病覆盖率与肝炎精细分型研究 |
| 肝细胞癌 | C22.0 | 2C12.0 | 肿瘤学队列与分期研究 |
§2.1b SNOMED CT 映射表
| 标签 | ICD-11 | SNOMED CT | 术语 |
|---|---|---|---|
| 类风湿关节炎 | FA20 | 69896004 | Rheumatoid arthritis |
| 2 型糖尿病 | 5A11 | 44054006 | Diabetes mellitus type 2 |
| 慢性肾病 | GB61 | 433144002 | Chronic kidney disease |
| 急性心肌梗死 | BA41 | 22298006 | Myocardial infarction |
| 脑梗死 | 8B11 | 42343005 | Cerebral infarction |
| 哮喘 | CA23 | 195967001 | Asthma |
| 慢性阻塞性肺疾病 | CA22 | 13645005 | Chronic obstructive lung disease |
| 流感 | 1E30 | 6142004 | Influenza |
| 肝细胞癌 | 2C12.0 | 40468003 | Hepatocellular carcinoma |
| 细菌性肺炎 | CA40 | 53084003 | Bacterial pneumonia |
§2.2 疾病与人群背景简介
CGRD 不是单一疾病数据集,而是覆盖全院区的全病种 EMR 库,其"医学背景"本质是中国台湾医疗体系与真实世界研究方法学。中国台湾自 1995 年实施全民健保(NHI),民众可自由选择就医机构且自付比例低,这造就了两大数据特征:其一,患者跨机构流动频繁,单系统数据库无法捕获院外事件;其二,重症患者倾向于流向医学中心,使长庚这类大型体系的患者构成比全台总体更重(Charlson 共病指数更高、癌症与慢性病患病率显著高于 NHIRD;Tsai et al., 2017)。流行病学上,中国台湾人群的 B 型与 C 型病毒性肝炎、癌症与慢性肾病负担较高,这些恰是 CGRD 覆盖率最高的病种(门诊覆盖 27-34%,住院 14-21%;Tsai et al., 2017)。理解这一人群结构,是解读任何基于 CGRD 的模型性能与外部效度的前提。
§2.2b 中国台湾健保体系对数据形态的影响
中国台湾全民健保(NHI)覆盖 99.9% 以上人口,就诊自付比例低且无守门人制度(gatekeeping),患者可自由选择就诊层级与机构。这对数据集形态产生三个直接后果。第一,单系统库天然不完整:同一患者可能同时在长庚与医学中心之外就医,任何"从就诊记录推断疾病史"的研究都要显式处理这一观测边界。第二,重症向医学中心集中:轻症留在基层诊所,长庚这类医学中心体系收治的病例谱偏向复杂与重症,这在覆盖率研究中被量化证实。第三,健保申报驱动编码行为:诊断编码带有申报目的,罕见但临床上重要的诊断可能编码不足——CGRD 的价值正在于可以用库内病理与检验证据对编码做二次确认,这是纯申报库做不到的。研究设计时把这三个后果转化为三个动作:定义观测边界、报告人群构成、用临床证据验证表型。
§2.3 临床任务定义
| 任务类型 | 定义 | CGRD 上的实现方式 | 代表研究 |
|---|---|---|---|
| 疾病风险预测 | 在指数日期前预测未来窗口内结局 | 从就诊、检验、处方构建基线特征,窗口划分预测间隔(如提前 365 天) | 卒中后抑郁(1-365 天多窗口);CAD 提前一年预测 |
| 急诊分诊与回诊预测 | 预测急诊就诊后 72 小时非计划回诊 | 617 个急诊时点变量(生命体征、检验、医嘱、医师年资) | 腹痛 URV 预测(2018-2021) |
| 危重与死亡预测 | 预测 ICU 转入或院内死亡 | 两阶段列线图(ED 阶段 + 住院阶段) | 流感危重预测(Linkou 1,680 例) |
| 药物流行病学 | 估计药物暴露与结局的关联 | 新用药者队列 + IPTW/倾向评分 | RA 患者 DMARD 反应不佳与急性冠脉综合征(JAHA 2021) |
| 生存分析 | 以死亡为主要终点的时序建模 | 住院出院状态字段链接死亡登记 | 出院状态验证(1,972,044 条住院记录) |
§2.4 患者人群表
| 维度 | 内容 | 来源 |
|---|---|---|
| 来源机构 | 长庚医疗体系 7 个主要院区(林口、台北、桃园、基隆、云林、嘉义、高雄),截至 2020 年 9 分支 | PMC8174161、PMC9795345 |
| 时间范围 | 2000 年至今(2000 年前为纸质病历,不对研究者开放) | Tsai et al., 2017 |
| 规模(2000 年口径) | 门诊样本 500 万患者 / 810 万人次;住院样本 290 万患者 / 480 万住院记录 | Tsai et al., 2017 |
| 相对覆盖率(2015 年) | 门诊 6.1%、住院 10.2%(相对 NHIRD) | Shao et al., 2019 |
| 年龄结构特点 | 老年门诊占比 23.5%(NHIRD 12.5%);儿科住院占比 19.7%(NHIRD 14.4%) | Shao et al., 2019 |
| 性别分布 | 与 NHIRD 相似 | Shao et al., 2019 |
| 病情严重度 | Charlson 共病指数与特定疾病患病率显著高于 NHIRD 与中国台湾医学中心(p < 0.05) | Tsai et al., 2017 |
| 就医类型 | 门诊、住院、急诊、体检、中医门诊;含自费与试验医疗设置 | Tsai et al., 2017;Shao et al., 2019 |
§2.5 临床价值
对临床研究者,CGRD 的价值在三个环节兑现。诊断确认环节:申报库中一个 ICD 码可能是规则内的记账操作,而 CGRD 的诊断可以由病理研究、实验室与其他检查支持,使表型定义(phenotyping)的金标准可及——瓣膜手术研究正是用双医师独立复核病历建立金标准来验证理赔编码(BMJ Open 2025)。结局测量环节:死亡这一硬终点经 197 万余条住院记录验证,分年代准确率明确(2010 年后 >98%),随访性研究的结局噪声可控(PMC9795345)。干预效果环节:实验室与生命体征使混杂控制达到处方级精细度,这在疾病严重度决定用药适应证的真实世界中是消除适应证混杂(confounding by indication)的关键武器。
从 AI 视角再补一层价值判断:CGRD 的临床深度让"用临床常识检验模型"成为可能——模型学到的特征若与临床先验冲突(如以与结局无关的检验项目为主导特征),研究者可以回到病历文本与检验时间序列追溯原因。这种可追溯性在纯编码库中无法实现,也是 CGRD 类 EMR 库在医疗 AI 严格审查(监管、发表评审)中日益重要的原因。
§2.6 金标准对照表
| 对象 | 划分 | 标注方式 | 标注者 | 性质 |
|---|---|---|---|---|
| 出院死亡状态 | 按年度分层(2010 前后) | 与中国台湾死亡登记(TDR,卫福部 HWDC)逐一链接对照 | 死亡登记为法定登记系统 | 官方结局金标准(PMC9795345) |
| 瓣膜手术病因与术式(2015-2018,n=1,389) | 全样本复核 | 双医师独立审阅手术记录与出院诊断 | 2 名医学专业者 + 第 3 人共识会议 | 病历复核金标准(BMJ Open 2025) |
| 诊断编码 | 全库 | 临床编码员按 ICD-9-CM/ICD-10-CM 编码并录入 | 院内编码流程 | 常规临床编码(非研究级标注) |
§3 数据集规格
§3.0 版本抉择矩阵
CGRD 无对外发布的"版本号",研究者实际面对的是"选择哪个子库 + 哪个年代切片"。基于已发表研究的惯例给出抉择矩阵:
| 你的需求 | 推荐切片 | 时间范围 | 理由 |
|---|---|---|---|
| 死亡/生存结局研究 | 住院库 + 死亡登记链接 | 2010 年以后 | 出院死亡编码准确率 >98%,一周内 UEM <10%;2010 年前误差偏大(PMC9795345) |
| 长程慢病自然史 | 门诊 + 住院联合库 | 2000 年起 | 20 余年连续时序是核心资产 |
| 药物安全精细分析 | 门诊处方 + 检验结果 | 2016 年以后 | ICD-10-CM 编码粒度更细,检验可作为混杂控制 |
| 中医真实世界研究 | 中医处方子库 | 2010-2015 已验证 | 年均 71,002 名 TCM 患者,代表性已系统评估(DOI 10.1002/pds.5208) |
| 重症/肿瘤队列 | 住院库 + 病理报告 | 不限 | 重症患者占比高是 CGRD 相对优势,癌症覆盖率高 |
| 需要全国代表性推断 | 不建议单独使用 CGRD | — | 应与 NHIRD 或死亡登记联合或做敏感性分析 |
§3.1 模态详情
| 模态 | 内容 | 与申报库差异 |
|---|---|---|
| 门诊与住院就诊 | 就诊日期、科室、处置、每日病历 | 原始病历而非申报重制 |
| 诊断编码 | ICD-9-CM(2001-2015)、ICD-10-CM(2016 起),含主次诊断位次 | 同 NHIRD,但有病历支持 |
| 处方与用药 | 药品、剂量、疗程;分析中常按 ATC 分组 | 与申报一致,可做暴露日计算 |
| 实验室检查 | 血液学(CBC/DC)与生化(BUN、Cr、AST、ALT、CRP、Na、K、Cl、HbA1c、eGFR 等) | NHIRD 无此模态 |
| 病理报告 | 组织学与细胞学结论 | NHIRD 无此模态 |
| 放射报告 | 影像学报告文本(结构化字段 + 报告) | NHIRD 无此模态 |
| 生命体征 | 体温、血压、脉搏、体重等分诊与 ward 记录 | NHIRD 无此模态 |
| 手术与处置 | 手术记录、处置码 | 比申报码更完整 |
| 中医处方 | 中药方剂与饮片(如加味逍遥散、香砂六君子汤) | 少见的结构化中医数据源 |
| 急诊记录 | 分诊级别、处置、离院方式 | 含 ED disposition 字段 |
§3.2 按子集样本数表
| 子集 | 规模 | 口径与来源 |
|---|---|---|
| 门诊患者样本 | 500 万患者 / 810 万人次 | 2000 年,相对 NHI 在保 23,753,407 人(Tsai et al., 2017) |
| 住院患者样本 | 290 万患者 / 480 万住院记录 | 2000 年口径(Tsai et al., 2017) |
| 年度新增数据量 | >400 万门诊、100 万住院、20 万急诊记录/年 | BMJ Open 2025 瓣膜研究数据源描述 |
| 中医子库 | 年均 71,002 名患者(2010-2015) | DOI 10.1002/pds.5208 |
| 出院状态验证队列 | 1,972,044 条住院记录 | Huang et al., 2022 |
| ECG 链接队列 | 4,932,544 份 ECG / 1,684,294 人(链接后筛选 2,821,889 份 / 1,078,629 人) | npj Digital Medicine 2024 |
§3.3 数据格式表
| 交付形态 | 格式 | 说明 |
|---|---|---|
| 正式查询交付 | 表格式分析数据集(CSV/SAS/SPSS 等按约定) | 由院内分析师执行查询后交付脱敏文件 |
| 编码字段 | ICD-9-CM / ICD-10-CM 字符码 | 诊断与处置 |
| 药品编码 | 院内药品码 + ATC 分组(研究侧处理) | URV 研究按 ATC 分组处方 |
| 诊断分组 | CCS(Clinical Classifications Software)分组 | CAD 研究将诊断聚为 283 组 |
| 报告文本 | 结构化字段 + 自由文本 | 放射与病理报告 |
§3.3b 数据完备性与年代差异
同一字段在不同年代的完备性并不同质,这是 CGRD 预处理中最容易被低估的问题。诊断编码在 2016 年前后经历 ICD-9-CM 到 ICD-10-CM 的整体切换,编码粒度与条目数量发生结构性变化;检验项目的目录也随院内检验科发展持续扩充——早期年代可用的检验组合窄于近年,跨年代比较某检验"缺失率"时会把目录演进误判为临床行为变化。已发表研究的共同做法是把年代作为一等协变量:或者在研究设计层限制时间窗(如死亡结局研究只用 2010 年后住院数据),或者在分析层加年代分层与中断检验。ECG 信号侧同理:数字归档覆盖率、采样设备更替都会在信号质量上留下年代指纹,跨年代训练时应把采集年代纳入敏感性分析。
§3.4 存储规模
CGRD 的底层仓库体量未公开披露。可以确定的是:研究交付以"查询-返回"方式进行,单次研究交付的数据集规模由查询设计决定,从数千例的验证队列(流感研究 1,680 例)到数百万例的信号研究(ECG 链接 493 万份检查)跨度极大。对算力规划而言,真正相关的是交付件大小——通常在单机可处理的 GB 量级以内,无需分布式基础设施。
§3.5 标注方式
| 标签类型 | 生成方式 | 性质 |
|---|---|---|
| 诊断标签 | ICD-9-CM/ICD-10-CM 编码(临床编码流程) | 常规编码,非研究级人工标注 |
| 结局标签(死亡) | 出院状态字段 + 死亡登记链接 | 已系统验证(>98% 准确率,2010 年后) |
| 用药暴露 | 处方记录 + ATC 映射 | 客观记录 |
| 检验标签 | 实验室信息系统自动结果 | 客观记录 |
| 表型标签 | 研究者按算法定义(如 2 个门诊或 1 个住院 ICD 码) | 研究自定义,需敏感性分析 |
§3.6 标注者资质与一致性
CGRD 的"标注"主要是临床编码与登记系统产出。诊断编码由院内临床编码团队按中国台湾健保申报规范执行;结局验证类研究中,双医师独立复核 + 第三人共识会议的做法见于瓣膜手术验证(两位医学专业者独立评估,分歧经共识会议裁定,未达成共识归为不完整/缺失;BMJ Open 2025)。死亡编码与死亡登记的一致性则由 Huang et al. 的 197 万条记录大规模验证量化(一周内准确率 >97%,2010 年后 >98%)。
对 AI 研究者的实操含义有三条。第一,任何以诊断码为标签的模型都应报告表型的"预期假阳性来源"——编码为记账目的而非临床确证的场景(如规则内编码)需要用检验证据做二次确认或抽样人工复核。第二,结局定义要在协议中冻结:出院状态、死亡登记、再入院三类硬结局的字段语义与观测窗口不同,混用会引入系统性标签噪声。第三,标注一致性的证据链(编码团队 → 病历复核 → 登记链接)本身就是论文的方法学卖点——国际期刊对机构 EMR 库研究的常见质疑正是"编码可信吗",CGRD 有现成的验证文献可以引用作答。
§3.7 采集周期
数据采集自 2000 年(CGMH 电子病历可用之始)延续至今,每年更新一次。历史节点:2001-2015 年诊断以 ICD-9-CM 记录,2016 年起切换 ICD-10-CM;中医利用的代表性验证覆盖 2010-2015;出院状态验证覆盖至 2020 年前后(以 1,972,044 条住院记录为准)。
§3.8 地域覆盖
覆盖中国台湾全岛纵贯线上的长庚院区网络:东北部的基隆与台北、北部的林口与桃园(台北近郊)、中部的云林、南部的嘉义与高雄。长庚体系为中国台湾最大医疗系统之一:截至 2020 年 9 分支、9,000 余床、日均约 31,500 名患者服务量(PMC9795345);2015 年门诊逾 850 万人次、急诊 50 万人次(流感研究)。该地理分布使 CGRD 内部天然具备南北院区对,可做地理层面的内部外部验证(流感研究即以高雄院区外验林口模型)。
§3.9 系统与设备规格
CGRD 是信息系统层面的汇流产物:院内 EMR 系统负责医嘱与病历,检验信息系统(LIS)产出实验室结果,心电图以 12 导联数字格式存档(MUSE 心电信息系统,采样率 500 Hz、10 秒记录,转为 12 × 5,000 矩阵输入模型;npj Digital Medicine 2024)。患者医院识别号在入库时全部加密。这些系统规格决定了时序数据的采样密度差异:ICU 内为高频,普通门诊为就诊级。
§3.10 深度溯源链
| 层级 | 溯源内容 |
|---|---|
| 原始来源 | CGMH 各院区诊疗活动的原生 EMR(非申报重制数据) |
| 治理主体 | 长庚医疗财团法人;院内数据管理与分析团队执行查询 |
| 伦理管道 | 长庚医疗财团法人 IRB(实例号 201900301B0、202002296B0、202101339B0、201801771B0、201901325B0D001) |
| 官方汇流节点 | 长庚大学健康资料研究服务中心(RSCHI,2013 年设立,卫福部 HWDC 第六分中心) |
| 外部链接 | 卫福部健康福利资料科学中心(HWDC):死亡登记、全国性健康数据库共 103 种 |
| 学术溯源 | 首篇介绍论文 Tsai et al. 2017(DOI 10.1016/j.bj.2017.08.002);方法学论文 Shao et al. 2019(DOI 10.1002/pds.4713) |
§4 数据结构
§4.0 目录树
CGRD 通过正式查询交付,每次研究的交付包结构由查询设计决定。以下是基于已发表研究字段描述整理的典型交付包结构预览:
CGRD_delivery/ # 单次研究交付根目录(脱敏分析数据集)
├── cohort/ # 研究队列定义
│ ├── inclusion_criteria.csv # 纳排标准与流程图计数
│ └── index_dates.csv # 每位患者的指数日期(patient_encrypted_id, index_date)
├── demographics/ # 患者级人口学(一人一行)
│ └── patients.csv # patient_encrypted_id, sex, birth_year(或 age), index_date
├── encounters/ # 就诊级记录(一次就诊一行)
│ ├── outpatient.csv # 门诊:visit_date, dept, encounter_type
│ ├── inpatient.csv # 住院:admission_date, discharge_date, discharge_status
│ └── emergency.csv # 急诊:triage_level, disposition, arrival_mode
├── diagnoses/ # 诊断码(一次就诊多行)
│ └── icd_codes.csv # encounter_id, icd_code, icd_version(9/10), diag_order
├── medications/ # 处方(一次处方一行)
│ └── prescriptions.csv # encounter_id, drug_code, atc_code, dose, duration_days
├── laboratory/ # 检验结果(一次检验一行)
│ └── lab_results.csv # encounter_id, lab_name, lab_value, lab_unit, order_date
├── vitals/ # 生命体征
│ └── vitals.csv # encounter_id, vital_name, vital_value, record_time
├── notes_reports/ # 病历与报告(按协议脱敏)
│ ├── pathology_reports.csv # encounter_id, report_date, pathology_summary
│ └── radiology_reports.csv # encounter_id, report_date, radiology_summary
├── linkage/ # 外部链接结果(如批准)
│ └── death_registry.csv # patient_encrypted_id, death_date, death_cause_code
└── data_dictionary.md # 交付件字段说明(由分析师随查询提供)
说明:目录与字段名为基于已发表研究方法学描述整理的典型形态,实际交付结构以研究协议与院内分析师提供的数据字典为准。字段命名在不同研究中不一致,但其语义类别(人口学/就诊/诊断/用药/检验/体征/报告/链接)是稳定的。
§4.1 DAIMS 字段字典
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| patient_encrypted_id | Text | 加密后的患者医院识别号,跨就诊/跨年份恒定 | AB12CD34 |
患者级分组键,防泄漏划分的主键 | 加密映射稳定但不可逆推 | 无 | 院内唯一 |
| sex | Text | 性别 | F |
协变量/分层抽样键 | 登记误差罕见 | 空值极少 | M/F |
| age | Integer | 就诊时年龄 | 67 |
协变量、分层外验抽样键(PSD 研究 1:4 按年龄性别分层) | 以出生年换算 | 需边界检查 | 0-120 |
| visit_date | Date | 就诊/入院日期 | 2019-03-14 |
时序锚点、指数日期定义 | 无明显误差 | 无 | 2000-01-01 至今 |
| icd_code | Text | 诊断编码(主/次诊断分位次) | I63.9、M06.9 |
标签来源、表型算法定义 | 编码完整性随病种与年代变化 | 无显式缺省码 | ICD-9-CM 或 ICD-10-CM |
| icd_version | Integer | 编码体系版本 | 10 |
处理 2016 年编码切换的断裂 | 版本与年代强对应 | 无 | 9 或 10 |
| drug_code / atc_code | Text | 药品码与 ATC 分组 | L04AB01 |
暴露定义、药物安全研究 | 院内码需映射表 | 未开方即无行 | ATC 层级 |
| dose / duration_days | Float/Integer | 剂量与疗程 | 10、30 |
暴露强度与累积剂量 | 依从性不可观测 | 无 | 按药品定义 |
| lab_name | Text | 检验项目名 | CRP、HbA1c |
特征(CAD 研究选 80 项) | 检验开单非随机 → 缺失非随机 | 缺行 ≠ 正常 | 检验目录 |
| lab_value / lab_unit | Float/Text | 结果与单位 | 8.2、mg/dL |
连续特征,需单位对齐 | 录入异常需清洗(如体重>400kg 类错误) | 极端值须检验 | 按项目定义 |
| discharge_status | Text/Integer | 住院离院状态(含死亡) | 死亡、好转 |
院内死亡标签 | 一周内死亡低估 UEM<10%(2010 后) | 门诊记录无此字段 | 院内编码表 |
| death_date(链接件) | Date | 死亡登记日期(批准链接时) | 2021-11-02 |
生存分析终点 | 与死亡登记一致;登记本身有延迟 | 未链接即无行 | 链接批准后有效 |
| triage_level | Integer/Text | 急诊分诊级别 | 2 |
急诊模型特征 | 分诊标准随时间修订 | 非急诊为空 | 按 ED 标准 |
§4.2 标签分布
以覆盖率视角理解"标签分布":在 1997-2010 分析口径下,CGRD 门诊样本中覆盖率最高的病种为癌症、肝硬化、丙型肝炎与慢性肾病(各 33-34%),住院样本为肝硬化(21%)、癌症(20%)、丙肝(19%)、CKD(18%);总体病种覆盖门诊 27-34%、住院 14-21%(Tsai et al., 2017)。这意味着以癌症或肝病为阳性标签的研究在 CGRD 中病例充足;而以轻型疾病或自限性疾病为标签时,阳性率会明显低于全国推断。
§4.3 关键统计
- 人口结构偏移:老年门诊 23.5%(NHIRD 12.5%)、儿科住院 19.7%(NHIRD 14.4%),性别分布与 NHIRD 相似(2015 年口径;Shao et al., 2019)。
- 规模:2000 年即达 500 万门诊患者样本与 290 万住院患者样本;年增 400 余万门诊、100 余万住院、20 万急诊记录。
- 结局可靠性:1,972,044 条住院记录中,出院后一周内死亡编码准确率 >97%(2010 年后 >98%)。
- 中医规模:年均 71,002 名中医患者(2010-2015),女性/男性比 1.7(NHIRD 为 1.5)。
- ECG 链接规模:493 万份心电图、168 万余人可链接至 CGRD 纵向记录。
§4.4 数据层级
患者(patient_encrypted_id)
└── 院区(林口/台北/桃园/基隆/云林/嘉义/高雄…)
└── 就诊(encounter:门诊/住院/急诊/体检/中医)
├── 诊断(1..n 个 ICD 码,分主次)
├── 处方(1..n 个药品/方剂)
├── 检验(1..n 个项目,各自时间戳)
├── 生命体征(分诊与 ward 多时点)
└── 报告(病理/放射/手术记录,文本)
同一患者可横跨多个院区与多年就诊——这正是划分策略必须以患者为最小分组单元的原因(见 §5.3)。
层级设计上的两个实用推论:其一,"一次就诊"并非稳定的分析单元——门诊就诊粒度细而住院就诊粒度粗,跨就诊类型聚合时必须重新定义 episode(如以出院后 30 天内再入院合并为同一 episode);其二,检验与生命体征挂在 encounter 之下而不是患者之下,构建时序特征时必须回溯到 encounter 的时间戳再重排到患者时间轴上,直接按 encounter 顺序拼接会产生时间错乱。
§4.5 缺失值与信息性缺失
| 缺失场景 | 机制 | 处理建议 |
|---|---|---|
| 检验结果缺失 | 开单由临床判断驱动:非随机缺失 | 缺行≠正常;按"未检验"类别编码而非填正常值 |
| 生理值异常 | 录入错误(体重>400kg、脉搏>250 bpm) | 规则清洗剔除;连续变量 Q1-1.5IQR/Q3+1.5IQR 界外剔除(URV 研究做法) |
| 特征级大面积缺失 | 部分特征缺失率>50% | 直接剔除该特征(URV 研究阈值) |
| 院外事件 | 患者至其他医院就诊,本库无记录 | 右删失;结局敏感性分析 |
| 出院后一周内死亡 | 死亡登记延迟与编码差异 | UEM 约 10%(2010 后住院);老年约 11%;建议死亡结局加登记链接 |
| 2000 年前病历 | 纸质病历不对研究者开放 | 队列起点不早于 2000 年 |
§5 数据划分与使用建议
§5.1 官方划分
CGRD 没有官方划分。一切划分由研究者自行设计并在 IRB 计划书中申明。
§5.2 社区惯例划分
已发表研究呈现三种主流做法:
| 做法 | 实例 | 要点 |
|---|---|---|
| 时间划分 + 未来数据外验 | URV 研究:2018-2019 训练(内部 80/20),2020-2021 疫情期外验 | 检验时间泛化与流行病学漂移下的稳健性 |
| 分层抽样外部集 | PSD 研究:按年龄性别 1:4 分层抽样出外部测试集,其余用于训练/验证 | 保持年龄性别结构稳定 |
| 院区间外验 | 流感研究:林口院区训练,高雄院区验证 | 地理外验,两院区患者来源与地理完全独立 |
§5.3 泄漏风险(重点)
CGRD 最大的泄漏源不是列泄漏而是实体泄漏:同一患者的多次就诊、多份检查、多个院区记录共享 patient_encrypted_id。若按"行"随机划分,同一患者的记录会同时进入训练与测试集,模型实质上在做患者识别而非泛化预测。ECG-MACE 研究明确采用"同一患者所有心电图全部归入同一集合"的随机抽样设计(npj Digital Medicine 2024),这是必须遵循的底线。次要风险:特征的时间泄漏(把指数日期之后的检验或诊断放进特征)、生存分析的 immortal time bias(暴露定义窗口与随访窗口重叠)。
§5.4 划分策略建议
- 以
patient_encrypted_id为分组键做 GroupShuffleSplit 或按患者分层的 train/val/test 切分。 - 若研究问题涉及部署稳健性,优先时间划分(训练段在前、测试段在未来),并保留一个地理外验段(如高雄院区)。
- 外部集抽样参数(如 1:4 分层比)写入协议,避免事后调整。
- 划分完成后再做任何跨集合统计量计算(如检验填补值、标准化参数必须仅来自训练段)。
§5.5 交叉验证建议
在训练段内使用按患者分组的 k-fold(GroupKFold),k=10 是 URV 研究的既选值。类别不平衡场景(URV 阳性率低)下,在每折训练内部做样本自举(bootstrapping)或 one-sided selection 欠采样,验证折不动。
§5.6 外部验证建议
三级递进:同库异地(高雄外验林口)→ 同库异时(疫情期外验)→ 异库(TSGH 113,224 份 ECG/54,036 人外验 CGRD 训练的 MACE 模型)。指标报绝对值 + 相对内部性能变化,并报告亚组(年龄、主诉)分解。
§5.7 按患者分组的划分与交叉验证代码
import numpy as np
import pandas as pd
from sklearn.model_selection import GroupShuffleSplit, GroupKFold
# patients: 一人一行的队列表;groups = patient_encrypted_id
groups = patients["patient_encrypted_id"].values
# ---- 第一层:患者级 train/test(80/20,防跨集合患者重叠)----
gss = GroupShuffleSplit(n_splits=1, test_size=0.2, random_state=42)
train_idx, test_idx = next(gss.split(patients, groups=groups))
train_df, test_df = patients.iloc[train_idx], patients.iloc[test_idx]
# ---- 第二层:训练段内按患者分组的 10-fold CV(URV 研究既选值)----
gkf = GroupKFold(n_splits=10)
for fold, (tr, va) in enumerate(gkf.split(train_df, groups=train_df.groups)):
tr_ids = set(train_df.iloc[tr]["patient_encrypted_id"])
va_ids = set(train_df.iloc[va]["patient_encrypted_id"])
assert not (tr_ids & va_ids), "患者跨折泄漏!" # 自检断言
# 在 tr 内做重采样(bootstrapping / one-sided selection),va 不动
# 在 tr 上拟合标准化/填补参数,仅 transform va(见 §6.3)
# ---- 第三层:时间外验段(训练段在前、验证段在后)----
cut = pd.Timestamp("2019-12-31")
past = encounters[encounters["visit_date"] <= cut]
future = encounters[encounters["visit_date"] > cut]
要点:三层验证各司其职——患者分组层防实体泄漏,交叉验证层稳定超参选择,时间层检验部署漂移;三层的划分逻辑必须在 IRB 计划书中预登记,防止事后择优。
§6 AI 就绪指南
§6.0 云端快速启动
不适用。CGRD 是封闭库:数据不出长庚院内环境,不存在 Kaggle/HuggingFace/云端托管的公开副本,任何声称"公开 CGRD 下载"的资源都不可信。研究者的工作流是"院内隔离环境申请 → 分析师执行查询 → 领取脱敏交付件 → 在获批环境内分析"。下文代码均假设你已拿到交付件并在合规环境运行。
§6.1 快速上手
预期目录结构:你从分析师处拿到一个交付目录(形如 §4.0 的树),本例取最小可用子集 demographics/patients.csv 与 diagnoses/icd_codes.csv。data_root 即交付目录路径,代码中所有路径都由 data_root 拼接而来。最小可用子集:一张患者表 + 一张诊断表即可完成队列计数与表型初筛。
# ============ 环境与目录约定 ============
# data_root/ <- 分析师交付目录(结构与 §4.0 一致)
# demographics/patients.csv
# diagnoses/icd_codes.csv
# 运行环境:合规分析工作站(数据不得外传)
# ============ 最小可用流程 ============
import pandas as pd
from pathlib import Path
data_root = Path("CGRD_delivery") # 指向你的交付目录
patients = pd.read_csv(data_root / "demographics" / "patients.csv", dtype=str)
diagnoses = pd.read_csv(data_root / "diagnoses" / "icd_codes.csv", dtype=str)
# 1) 队列规模体检:唯一患者数、就诊数、诊断行数
print(f"患者数: {patients['patient_encrypted_id'].nunique():,}")
print(f"诊断行数: {len(diagnoses):,}")
# 2) ICD 版本分布:确认你的时间窗是否跨 2016 编码切换
print(diagnoses["icd_version"].value_counts())
# 3) 以类风湿关节炎为例的最小表型(ICD-10: M05-M06)
ra_mask = diagnoses["icd_code"].str.upper().str.startswith(("M05", "M06"))
ra_ids = diagnoses.loc[ra_mask, "patient_encrypted_id"].unique()
print(f"RA 表型命中患者: {len(ra_ids):,}")
§6.2 数据获取
| 步骤 | 内容 | 关键约束 |
|---|---|---|
| 1. 资格确认 | 申请人须为长庚体系内员工并满足研究项目要求 | 非长庚人员需走合作研究路径(Tsai et al., 2017) |
| 2. 计划书与查询设计 | 明确纳排、时间窗、字段清单、统计方法 | 特征工程须在查询阶段定案(交付后无法重跑原始库) |
| 3. IRB 审查 | 长庚医疗财团法人 IRB 批准(历见编号如 201900301B0) | 去标识化研究通常豁免知情同意 |
| 4. 机构委员会核准查询 | 正式查询(formal query)由委员会核准 | 查询即协议边界 |
| 5. 分析师执行 | 由院内授权分析师在隔离环境执行 | 研究者不接触原始库 |
| 6. 交付与再利用 | 领取脱敏分析数据集 | 受使用限制与许可协议约束(BMC MIDM 2024) |
费用:介绍论文明确 CGRD “free of cost”(低成本/免费),但依赖院内研究经费支持的人力流程(Tsai et al., 2017)。
# 交付件完整性检查(示例)
import hashlib, json
from pathlib import Path
manifest = json.loads((Path("CGRD_delivery") / "manifest.json").read_text())
for rel_path, expected_md5 in manifest["files"].items():
actual = hashlib.md5((Path("CGRD_delivery") / rel_path).read_bytes()).hexdigest()
assert actual == expected_md5, f"校验失败: {rel_path}"
print("交付件校验通过")
§6.3 预处理全流程
覆盖四个阶段:格式转换→清洗→标准化→增强。以下代码可直接运行(假设交付件为 CSV)。
import numpy as np
import pandas as pd
# ---------- 阶段 1:格式转换 ----------
# 日期列解析(时序研究的锚点)
for df, col in [(encounters := pd.read_csv("CGRD_delivery/encounters/inpatient.csv"),
"admission_date")]:
df[col] = pd.to_datetime(df[col], errors="coerce")
# ---------- 阶段 2:清洗 ----------
# 2a. 生理值规则清洗(URV 研究实例:体重>400kg、脉搏>250 bpm 属录入错误)
def clean_vitals(v: pd.DataFrame) -> pd.DataFrame:
rules = {
"weight_kg": (30, 400),
"pulse_bpm": (20, 250),
"systolic": (40, 300),
}
for name, (lo, hi) in rules.items():
s = v.loc[v["vital_name"] == name, "vital_value"]
v.loc[s.index, "vital_value"] = s.where(s.between(lo, hi), np.nan)
return v
# 2b. 离群值剔除(URV 研究做法:Q1-1.5IQR / Q3+1.5IQR 之外视为离群)
def remove_iqr_outliers(s: pd.Series) -> pd.Series:
q1, q3 = s.quantile(0.25), s.quantile(0.75)
iqr = q3 - q1
return s.where(s.between(q1 - 1.5 * iqr, q3 + 1.5 * iqr))
# 2c. 特征级缺失过滤(缺失率>50% 的特征直接剔除)
def drop_sparse_features(feats: pd.DataFrame, threshold: float = 0.5) -> pd.DataFrame:
keep = feats.isna().mean() <= threshold
return feats.loc[:, keep]
# ---------- 阶段 3:标准化 ----------
# 连续变量中位数填补 + 标准化(URV 研究);标准化参数仅来自训练段!
from sklearn.preprocessing import StandardScaler
def fit_transform_train_only(train: pd.DataFrame, others: list[pd.DataFrame],
cont_cols: list[str]):
med = train[cont_cols].median() # 训练段中位数
scaler = StandardScaler().fit(train[cont_cols].fillna(med))
outs = []
for d in [train] + others:
x = d[cont_cols].fillna(med)
outs.append(pd.DataFrame(scaler.transform(x), columns=cont_cols,
index=d.index))
return outs
# ---------- 阶段 4:诊断码聚合 ----------
# CCS 式分组:将 ICD 前三位聚组(CAD 研究聚为 283 组)
diagnoses["ccs_prefix3"] = diagnoses["icd_code"].str.upper().str[:3]
# 用药 ATC 分组:取 ATC 第 1-5 层
# (URV 研究按 ATC 标准分组处方)
ccs 前缀聚合与 ATC 分组之外,队列研究最常需要的是"新用药者队列"构建——药物流行病学设计的事实标准,直接在交付件上可实现:
# ---------- 队列构建:新用药者(new-user)设计 ----------
# 目标:定义暴露(首次处方目标药)、洗脱期、随访起点
first_rx = (medications[medications["atc_code"].str.startswith("L04AB")]
.groupby("patient_encrypted_id")["order_date"].min()
.rename("index_date"))
# 洗脱期:指数日期前 365 天内无同药处方、无结局事件者进入队列
history = diagnoses.merge(first_rx, on="patient_encrypted_id")
history["lag365"] = history["index_date"] - pd.Timedelta(days=365)
washout_ok = ~history["icd_code"].str.upper().str.startswith(("I21", "I63"))
cohort = (history[washout_ok & (history["order_date"] >= history["lag365"])]
.groupby("patient_encrypted_id").size())
# 基线协变量:指数日期前一年内的检验取最近值(CAD 研究的"取最近"聚合)
baseline_lab = (lab_results.merge(first_rx.rename("index_date"),
on="patient_encrypted_id"))
baseline_lab = baseline_lab[
baseline_lab["order_date"].between(
baseline_lab["index_date"] - pd.Timedelta(days=365),
baseline_lab["index_date"])]
baseline = (baseline_lab.sort_values("order_date")
.groupby(["patient_encrypted_id", "lab_name"])
.last()["lab_value"].unstack())
此模式覆盖了 RA 心血管风险研究(JAHA 2021)与 SGLT2 安全性研究共同的骨架:新用药者定义 + 洗脱期排除 + 基线窗取值,后续以倾向评分/IPTW 平衡组间。
§6.4 PyTorch DataLoader 完整代码
场景:以患者为单位构建"检验时序表型矩阵"(CAD 研究的时序分窗聚合思路),输入 (patients, window, features) 的张量并配掩码,喂给 GRU/Transformer 类模型。
import numpy as np
import pandas as pd
import torch
from torch.utils.data import Dataset, DataLoader
# ============ 目录结构预期 ============
# data_root/laboratory/lab_results.csv # encounter_id, patient_encrypted_id,
# # order_date, lab_name, lab_value
# data_root/demographics/patients.csv # patient_encrypted_id, age, sex
# ============ data_root 拼接关系见 §6.1 ============
class CGRDTempoDataset(Dataset):
"""按患者构建定长窗口检验时序。缺失窗以 0 填充并以掩码标注。"""
def __init__(self, data_root: str, lab: pd.DataFrame, patients: pd.DataFrame,
feature_names: list[str], n_windows: int = 12,
window_days: int = 90):
self.labs = lab.copy()
self.labs["order_date"] = pd.to_datetime(self.labs["order_date"])
self.patients = patients.reset_index(drop=True)
self.features = feature_names
self.T, self.W = n_windows, window_days
def __len__(self):
return len(self.patients)
def __getitem__(self, idx: int):
pid = self.patients.loc[idx, "patient_encrypted_id"]
end = self.labs["order_date"].max()
x = np.zeros((self.T, len(self.features)), dtype=np.float32)
m = np.zeros(self.T, dtype=np.float32)
sub = self.labs[self.labs["patient_encrypted_id"] == pid]
for w in range(self.T):
lo, hi = end - pd.Timedelta(days=self.W * (self.T - w)), \
end - pd.Timedelta(days=self.W * (self.T - w - 1))
win = sub[sub["order_date"].between(lo, hi)]
if len(win):
for j, f in enumerate(self.features):
vals = win.loc[win["lab_name"] == f, "lab_value"]
if len(vals): # 窗口内取最近一次结果
x[w, j] = float(vals.iloc[-1])
m[w] = 1.0
return torch.from_numpy(x), torch.from_numpy(m)
# ---- 实例化:注意 DataLoader 的批次必须按患者分组(防泄漏见 §5.3)----
group_keys = patients["patient_encrypted_id"].tolist() # 供 GroupKFold 使用
ds = CGRDTempoDataset("CGRD_delivery", lab_results, patients,
feature_names=["HBA1C", "CREATININE", "CRP", "LDL"])
loader = DataLoader(ds, batch_size=64, shuffle=False, num_workers=4)
for x, m in loader: # x: (B, 12, F) m: (B, 12)
break
§6.5 坑点 8 个
⚠️ 坑点 1:把 CGRD 人群当中国台湾全人群(选择偏倚)(分类:偏倚陷阱)
问题:CGRD 患者共病更重(Charlson 指数更高、癌症/慢病患病率显著高于 NHIRD 与中国台湾医学中心),直接把 incidence、 prevalence 或模型基线率外推到全台会系统性高估。
症状:文献综述里"全台患病率 X%“与 CGRD 队列内阳性率差 2-3 倍;外部评审问"为什么你的基线率远高于全国统计”。
解决:
- 简单方法:在论文限制章节显式声明单系统选择偏倚,并引用覆盖率数字(门诊 21.2%、住院 12.4%,1997-2010 口径)。
- 进阶方法:用 NHIRD 作为对照做标准化比(SIR/SMR),把 CGRD 内估计按年龄性别结构调整后再外推。
- SOTA 方法:双库设计——用 CGRD 做精细协变量建模、NHIRD 做全国分母校准;或按 Shao et al. 2019 的 15 病种对照表做定量偏倚分析。
参考:Tsai et al., 2017(DOI 10.1016/j.bj.2017.08.002);Shao et al., 2019(DOI 10.1002/pds.4713)
⚠️ 坑点 2:死亡结局盲信出院状态字段(死亡低估)(分类:标签理解)
问题:出院状态死亡编码存在低估死亡率(UEM):出院后一周内 UEM 在 2010 年后低于 10%,老年患者约 11%,且随年代、年龄与入院主因变化。
症状:短期死亡率的敏感度偏低、c-index 上不去;与死亡登记链接后"复活"出一批死亡样本,历史模型的性能评价瞬间改变。
解决:
- 简单方法:死亡结局研究只用 2010 年以后的住院记录(该时段准确率 >98%、一周内 UEM <10%)。
- 进阶方法:申请死亡登记(TDR/HWDC)链接,以链接结果为准、出院状态为辅。
- SOTA 方法:按 Huang et al. 2022 的分年代、分年龄、分主因 UEM 表构建结局的敏感性分析(最坏/最好情形区间报告)。
参考:Huang et al., 2022(DOI 10.1016/j.bj.2021.12.006)
⚠️ 坑点 3:跨 2016 年合并 ICD-9 与 ICD-10 编码(时序断裂)(分类:预处理陷阱)
问题:2001-2015 用 ICD-9-CM、2016 起 ICD-10-CM,两套码不一一对应;跨年代直接字符串匹配会制造人为的时间趋势。
症状:某诊断"发病率"在 2016 年跳变;长程研究中表型 prevalence 出现断崖。
解决:
- 简单方法:研究窗口避开 2015-2016 交界,或只用 ICD-10 时代数据。
- 进阶方法:用 CCS/官方 GEM 映射表把两套码映射到统一分组(URV/CAD 研究的 CCS 分组思路)。
- SOTA 方法:按
icd_version建立双轨表型算子,并在切换年份做中断时间序列检验确认表型稳定性。
参考:PSD 研究方法学(PMC10315461,明示 2001-2015 ICD-9、2016-2020 ICD-10)
⚠️ 坑点 4:把"没记录"当"没发生"(院外照护删失)(分类:偏倚陷阱)
问题:患者只要去过长庚以外的医院,其院外诊疗在 CGRD 中不存在;把库内无记录解释为无事件会低估结局并引入信息删失。
症状:随访事件率随"库内活跃度"而非真实风险变化;竞争风险分析中出现不可能的低事件率。
解决:
- 简单方法:以死亡登记链接校正硬结局;对非死亡结局明确声明单系统观测边界。
- 进阶方法:定义"库内活跃窗口",把长期间断就诊者标记为删失敏感亚组并做敏感性分析。
- SOTA 方法:逆概率删失加权(IPCW),以就诊频率建模删失机制后加权校正。
参考:Tsai et al., 2017(Discussion 第 4 条挑战);PMC9795345(选择偏倚与失访讨论)
⚠️ 坑点 5:检验缺失当作正常值填补(非随机缺失)(分类:预处理陷阱)
问题:检验开单由临床判断驱动——未做检验的患者≠指标正常的患者。把缺行填"正常参考值"会把"医生认为不需要查"这一信息伪装成生理正常。
症状:填补后模型 AUC 虚高但临床校准差;按"是否开单"分层后性能剧变(肺炎研究中 BUN 开单率远低于 CBC/DC 的 99% 即为例证)。
解决:
- 简单方法:缺失按"未检验"单独类别编码(categorical encoding),不做值填补。
- 进阶方法:多变量缺失建模(如 MICE)+ 开单指示变量共同入模。
- SOTA 方法:时序掩码机制(见 §6.4 代码的 mask 张量)让模型显式学习"缺失模式"本身的信息。
参考:BMC Medical Informatics and Decision Making 2024(DOI 10.1186/s12911-024-02523-1)
⚠️ 坑点 6:生理录入错误污染特征分布(工程陷阱)(分类:工程陷阱)
问题:EMR 录入错误真实存在:体重 >400kg、脉搏 >250 bpm 等不可能值会扭曲标准化与树模型分裂点。
症状:连续变量分布尾部异常;标准化后出现十几个标准差的极端值;训练日志出现 NaN。
解决:
- 简单方法:按生理边界规则硬过滤(体重 30-400kg、脉搏 20-250 bpm 等)。
- 进阶方法:IQR 法(Q1-1.5IQR/Q3+1.5IQR)剔除离群 + 缺失>50% 的特征整列剔除(URV 研究组合拳)。
- SOTA 方法:在查询设计阶段请分析师返回分布摘要,先看分布再定阈值——交付后无法重跑原始库,阈值必须一次定对。
参考:URV 研究预处理章节(PMC11309716)
⚠️ 坑点 7:交付后再想加特征(查询不可重跑)(分类:工程陷阱)
问题:数据以正式查询一次性交付,研究者无法重跑原始库补特征;分析中途想加一个协变量就要重新走委员会-分析师流程,耗时数周。
症状:审稿意见要求补充协变量时无法快速响应;多轮查询版本间计数对不上。
解决:
- 简单方法:查询设计阶段按"宁可多取、交付后筛选"原则列字段(在 IRB 范围内)。
- 进阶方法:在协议中预登记查询版本号与字段清单;交付件带 manifest 与行数校验(见 §6.2 代码)。
- SOTA 方法:把特征工程脚本与交付件一起版本化(MLOps 视角,见 §6.10),任何衍生表可追溯至查询版本。
参考:流感研究方法学(formal query + 机构委员会 + 分析师执行描述)
⚠️ 坑点 8:按记录行随机划分(跨院区同患者泄漏)(分类:数据泄漏)
问题:同一患者在多个院区、多年份、多模态下产生大量记录;按行随机划分会让同一患者的记录同时落入训练与测试集。
症状:离线 AUC 高达 0.9+ 但上线/外验跌至 0.6 档;测试集中出现"训练集见过"的同一患者。
解决:
- 简单方法:以
patient_encrypted_id为分组键做 GroupShuffleSplit/GroupKFold。- 进阶方法:ECG-MACE 式设计——同一患者的全部检查强制归入同一集合后再随机分 train/val/test。
- SOTA 方法:再加时间维度(训练在前、测试在后)与地理维度(高雄外验林口)构成三重防泄漏矩阵。
参考:npj Digital Medicine 2024(10.1038/s41746-024-01410-3);流感研究(高雄外验)
§6.6 数据增强
| 操作 | 安全性 | 说明 |
|---|---|---|
| ✅ 窗口滑动采样(同一患者多窗口起点) | 安全 | 时序样本扩充,注意仍按患者分组 |
| ✅ 掩码扰动(随机遮蔽低信息特征) | 安全 | 类似 dropout 的正则化,训练集内部使用 |
| ✅ 折内重采样(bootstrapping / one-sided selection) | 安全 | 类不平衡标准做法(URV 研究) |
| ❌ 对生命体征/检验值做随机噪声注入 | 危险 | 检验值临床语义强,噪声注入破坏校准 |
| ❌ 对诊断码随机替换为相似码 | 危险 | ICD 编码层级有临床含义,替换产生假表型 |
| ❌ 跨患者拼接时序片段 | 危险 | 制造假患者,破坏患者级防泄漏 |
§6.7 模型推荐表
| 任务 | 推荐模型 | 依据 |
|---|---|---|
| 表格型风险预测 | XGBoost / 随机森林 / 逻辑回归 | URV、PSD 研究主力;10-fold CV + AUC 选型 |
| 时序表型预测 | GRU / Transformer + 掩码机制 | 时序检验矩阵 + 缺失模式学习 |
| 生理信号联合建模 | ResNet-18 主干 + 多任务头(ECG-MACE 式) | 数百万信号与 EMR 结局链接 |
| 可解释临床工具 | 列线图(nomogram)+ 逻辑回归 | 流感两阶段模型;适合床旁落地 |
| 大规模表型挖掘 | 时序表型矩阵 + 线性/浅层网络 | CAD 研究的 80 检验 × 283 CCS 框架 |
§6.8 硬件需求表
| 场景 | 推荐配置 | 说明 |
|---|---|---|
| 表格模型(≤50 万患者) | 16GB 内存 CPU 工作站 | XGBoost/LR 即可;合规环境内运行 |
| 时序表型(百万级行) | 64GB 内存 CPU 或单卡 GPU | 窗口聚合内存密集;num_workers=4 加速 |
| ECG 深度学习(数百万信号) | 多卡 GPU(ResNet 级主干) | 信号侧 12×5,000 矩阵输入;配 EMR 结局标签 |
| 全流程复现 | CPU 优先 | 交付件通常单机 GB 量级,无需集群 |
§6.9 评估指标代码
import numpy as np
from sklearn.metrics import roc_auc_score, brier_score_loss
def classification_report(y_true, y_prob, groups=None):
"""分类结局:AUC + 校准(Brier)。groups 用于按患者聚合的多记录场景。"""
auc = roc_auc_score(y_true, y_prob)
brier = brier_score_loss(y_true, y_prob)
report = {"AUC": round(auc, 4), "Brier": round(brier, 4)}
if groups is not None: # 患者级聚合后再评一次,防泄漏检查
df = pd.DataFrame({"g": groups, "y": y_true, "p": y_prob})
agg = df.groupby("g").agg(y=("y", "max"), p=("p", "max"))
report["AUC_patient_level"] = round(roc_auc_score(agg.y, agg.p), 4)
return report
def uem_sensitivity(deaths_db, deaths_registry):
"""死亡结局敏感性:库内死亡 vs 登记链接死亡的差异(UEM 思路)。"""
union = deaths_db | deaths_registry
uem = (union - deaths_db) / max(union, 1)
return {"underestimated_mortality": round(uem, 4)}
def subgroup_table(y_true, y_prob, subgroups: pd.DataFrame):
"""按亚组(年龄带/性别/院区/年代)分解性能,公平性与漂移检查。"""
out = {}
for col in subgroups.columns:
for level, idx in subgroups.groupby(col).groups.items():
idx = np.asarray(idx)
out[f"{col}={level}"] = round(roc_auc_score(
np.asarray(y_true)[idx], np.asarray(y_prob)[idx]), 4)
return out
§6.10 MLOps 笔记
- 数据版本:以"查询版本号 + 交付日期"为数据集版本标识;manifest.json 与行数校验入库。
- 协议绑定:IRB 批准有有效期,模型再训练计划须核对伦理覆盖范围;字段用途变更需重新核准。
- 特征工程不可重放:原始库不可重跑,任何衍生表必须可由交付件 + 脚本确定性重建(幂等管道)。
- 监控漂移:部署侧关注年份漂移(编码切换、疫情期就诊结构变化)与院区差异;用 §5.6 的三级外验做定期回归测试。
- 合规边界:数据不出获批环境;论文发表前结果需按院内流程确认(DUO PUB 语义上的"须公开发表"义务以协议为准)。
- 环境自检脚本:每次分析会话开始时运行环境与数据指纹检查,保证同版本数据 + 同版本依赖的可复现组合:
# 会话级自检:数据版本 + 依赖版本 + 随机种子三要素
import sys, hashlib, json, random
from pathlib import Path
def session_fingerprint(data_root: str) -> dict:
fp = {
"python": sys.version.split()[0],
"seed": 42,
}
try:
import sklearn, torch, pandas, numpy
fp.update({"sklearn": sklearn.__version__, "torch": torch.__version__,
"pandas": pandas.__version__, "numpy": numpy.__version__})
except ImportError as e:
fp["missing"] = str(e)
# 数据指纹:manifest + 各交付件行数与字节量(勿整文件哈希大表)
root = Path(data_root)
fp["manifest_md5"] = hashlib.md5((root / "manifest.json").read_bytes()).hexdigest()
fp["row_counts"] = {
str(p.relative_to(root)): sum(1 for _ in p.open(errors="ignore"))
for p in sorted(root.rglob("*.csv"))
}
random.seed(fp["seed"]); np.random.seed(fp["seed"])
return fp
print(json.dumps(session_fingerprint("CGRD_delivery"), indent=2, default=str))
把指纹写进实验日志:任何性能数字都能回溯到"哪一版交付件 + 哪一版依赖 + 哪个种子"——这正好补上"原始库不可重跑"带来的可复现性缺口。
§7 质量评估与局限性
§7.1 已知偏倚表
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 选择偏倚 | 重症患者占比高于全台(CCI、癌症、慢病),老年门诊与儿科住院超比例 | 高 | 年龄性别标准化;NHIRD 对照校准 |
| 失访/信息删失 | 院外就医不可见,随访完整性依赖库内活跃度 | 高 | IPCW;活跃窗口定义;死亡登记链接校正硬结局 |
| 结局低估 | 出院一周内死亡 UEM<10%(2010 后),老年约 11% | 中 | 用 2010 后住院数据 + TDR 链接 + 敏感性区间 |
| 编码体系断裂 | 2016 年 ICD-9→ICD-10 切换 | 中 | CCS/GEM 统一分组;中断时间序列检验 |
| 检验缺失非随机 | 开单由临床判断驱动 | 中 | 缺失指示编码;掩码机制;MICE |
| 适应证混杂 | 疾病严重度决定用药,暴露组病情更重 | 高(药物研究) | 倾向评分/IPTW;新用药者设计;检验协变量控制 |
§7.2 标注质量
死亡/出院状态是唯一经大规模系统验证的结局字段:1,972,044 条住院记录、按年度/年龄/主因分解,一周内准确率 >97%(2010 后 >98%)、UEM 给出参考区间(PMC9795345)。理赔编码一致性经瓣膜手术双医师复核验证(n=1,389,2015-2018)。其余字段(诊断、处方、检验)为常规临床流程产出,质量依从院内系统而非研究级双人标注——使用时按"常规编码数据"而非"金标准标注"对待。
§7.3 泛化性评估表
| 场景 | 失效风险 | 证据 |
|---|---|---|
| 推断到中国台湾全人群 | 高 | 覆盖 6.1% 门诊/10.2% 住院(2015),人群结构偏移(Shao 2019) |
| 推断到其他医疗体系/国家 | 高 | 就医行为、编码习惯、药品目录均本土化 |
| 疫情等冲击期 | 中-高 | URV 研究以 2020-2021 疫情期为外验段,反映就诊结构漂移 |
| 跨编码体系时期 | 中 | 2016 切换点前后表型定义漂移(PSD 研究显式分轨) |
| 同体系异地部署 | 低-中 | 高雄外验林口的流感模型为正面证据;院区间病例构成仍有差异 |
§7.4 伦理考量
数据为去标识化库,患者医院识别号全部加密;因数据库与研究个体断连(disconnected),长庚 IRB 常规豁免知情同意(JAHA 2021;npj Digital Medicine 2024)。所有研究须过长庚医疗财团法人 IRB;查询执行与数据交付由院内授权分析师完成,数据不出院。二次利用须遵守许可协议与发表规范。
§7.5 公平性
年龄维度的代表性不均需要显式建模:老年门诊(23.5% vs 12.5%)与儿科住院(19.7% vs 14.4%)相对全台超比例,意味着模型在两端年龄段的"先验"与全人群不同;性别分布与全台相似。建议所有模型报告年龄/性别/院区分层的性能分解(外验矩阵 §7.8 的亚组分解即此目的)。
公平性评估还有两个 CGRD 特有的检查点。其一是中医利用人群:该子库女性偏多(女/男比 1.7 vs NHIRD 1.5)且老年患者比例更高,若研究涉及中医药暴露,组间的年龄结构失衡必须用加权或匹配处理,否则把"性别构成差异"误读为"暴露效应"。其二是儿科与老年边界:长庚 IRB 惯例将 20 岁以下纳入设限(RA 研究即排除 20 岁前确诊者),儿科研究需单独伦理路径;老年段则有死亡低估更重(UEM 约 11%)的已知问题——公平性审查应同时检查这两端的"数据可得性公平"。
§7.6 数据漂移
三类已证实的漂移源:其一,编码体系切换(2016);其二,公共卫生事件冲击(2020-2021 疫情期就诊结构与呼吸系统利用变化,见 URV 研究);其三,院内服务量自然增长(年增 400 余万门诊记录)与院区扩张(7→9 分支)。纵向模型应每年更新窗口并以时间外验段做回归测试。
漂移监控的落地方案:为部署中的模型建立三个监测量——月份级 AUC 走势(相对部署基线的漂移带)、输入分布的 PS/KL 指标(重点盯 2016 编码切换与疫情期两个已知断点)、院区间性能差(新接入院区视为"地理漂移")。任一监测量越界即触发再校准评估,而再训练的数据窗口选择应参考 §7.8 的年代敏感性结论。
§7.7 DAIMS 数据质量评估
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ⚠️ | 交付件为研究定制宽/长表混合,结构随查询而异,需按数据字典对齐 |
| 2 | 唯一标识 | ✅ | patient_encrypted_id 跨年份/院区稳定,患者级分组可靠 |
| 3 | 特殊字符 | ⚠️ | 繁体中文病历文本含全角字符与院内缩写,需清洗规范 |
| 4 | 重复行 | ✅ | 事务型表(处方/检验)天然多行,主键组合去重即可 |
| 5 | 缺失编码 | ⚠️ | 检验缺行即缺测,无统一哨兵值,需显式缺失指示 |
| 6 | 标签标识 | ✅ | 诊断/结局字段有明确主次位次与状态枚举 |
| 7 | 罕见类分组 | ✅ | CCS/ATC 分组惯例成熟,罕见结局可聚合 |
| 8 | 偏倚评估 | ✅ | 相对 NHIRD 的代表性有系统对照研究支撑 |
| 9 | 数据字典 | ⚠️ | 每次交付随附字典,但无跨研究统一公开 schema |
| 10 | 信息性缺失解释 | ✅ | 缺失机制(开单驱动)已在文献中明确描述 |
| 11 | 设备记录 | ❌ | 检验/信号设备型号通常不在交付字段中 |
| 12 | 共线性 | ⚠️ | 检验组套内共线性常见,需相关性审查 |
| 13 | 编码映射 | ✅ | ICD-9/10-CM + CCS + ATC 映射路径齐备 |
| 14 | 时间戳处理 | ✅ | 就诊/开单/结果时间戳语义清晰 |
| 15 | 划分建议 | ⚠️ | 无官方划分;患者级分组惯例由已发表研究确立 |
| 16 | 泄漏讨论 | ✅ | 跨院区同患者泄漏已有明确解决方案(同患者同集合) |
| 17 | 标签分布 | ✅ | 病种覆盖率有量化报告(27-34% 门诊 / 14-21% 住院) |
| 18 | 测量偏倚 | ⚠️ | 分诊标准与检验组套随年代变化,需年代分层 |
| 19 | 外部验证建议 | ✅ | 院内异地/异时 + 跨院(TSGH)外验均有先例 |
| 20 | 版本记录 | ⚠️ | 年度更新但无对外版本号,需以查询版本自管 |
| 21 | 预处理脚本 | ❌ | 无公开官方预处理脚本,各研究自备 |
| 22 | 合规要求 | ✅ | IRB + 委员会核准 + 分析师执行流程清晰完备 |
| 23 | 多模态对齐 | ⚠️ | 信号(ECG)与 EMR 链接可行但需专门协议与对齐键 |
| 24 | 去标识化 | ✅ | 识别号加密、断连设计、知情同意豁免机制成熟 |
DAIMS 评分:15.5 / 24
评分解读:CGRD 在"标识体系、结局验证、编码映射、合规流程"四个维度达到机构库一流水平,缺陷集中在"公开可用性"衍生的三项(无公开脚本、无统一 schema、无设备记录)——这是封闭库的结构性代价而非数据质量问题。
对你意味着什么:若你的研究以死亡/硬结局为终点,CGRD 的结局质量(✅ 第 2/5/6/10/16/24 项)足以支撑发表级分析,但必须执行三件事:只用 2010 年后住院数据做死亡随访、申请 TDR 链接、按患者分组划分。若你期望"拿到即跑"的体验(公开脚本、标准 schema),CGRD 不满足——预算里要为查询设计、数据字典对齐与自建预处理管道留出至少与建模同量级的工程时间。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| 三军总医院 ECG 队列(113,224 份 ECG / 54,036 名成人,2010-2020) | Tri-Service General Hospital | MACE(心梗/卒中/心衰住院/死亡)预测 | 模型性能在外院保持(论文报 AUC) | 见原文分指标表 | 12 导联深度学习特征跨体系可迁移(npj Digit Med 2024,10.1038/s41746-024-01410-3) |
| 高雄长庚院区流感队列 | CGMH 高雄分院 | 流感危重/院内死亡 | 列线图外验 AUROC | 内部与外验一致性良好 | 地理外验在同体系内可行(两院区患者来源与地理完全独立) |
| 2020-2021 疫情期急诊队列 | CGMH 台北 + 林口 | 腹痛 72 小时非计划回诊 | AUC(LR/RF/XGB) | 疫情期相对常规期有衰减 | 冲击期部署需时间外验与再校准(PMC11309716) |
表中仅收录有同行评审支撑的结果;"相对内部变化"栏的具体数值以各论文原文为准,本条目不代填未核实的数字。
§8 基准性能与生态
§8.1 已发表模型性能表
CGRD 无公开排行榜(封闭库)。下表汇总基于 CGRD 的代表性已发表 AI 研究。注意:各研究任务、人群、时间窗与指标定义不同,数值不可直接比较。
| 研究 | 模型 | 任务 | 性能 | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|---|
| ECG-MACE | ResNet-18 多任务深度学习 | ECG 预测 MACE(心梗/卒中/心衰住院/全因死亡) | 见论文(282 万 ECG / 107.8 万人) | 2024 | 多任务硬参数共享;12×5,000 输入;TSGH 外验 | Shao et al., 2024, npj Digital Medicine. DOI 10.1038/s41746-024-01410-3 | 未公开 |
| PSD 预测 | XGBoost | 缺血性卒中后 1-365 天新发抑郁 | 见论文(76,826 人) | 2023 | 1:4 年龄性别分层外验;特征重要性解释 | 卒中后抑郁研究组, 2023(PMC10315461) | 未公开 |
| URV 预测 | LR / RF / XGBoost | 急诊腹痛 72h 非计划回诊 | 见论文(617 变量) | 2024 | 10-fold CV;bootstrapping + one-sided selection;疫情期外验 | URV 研究组, 2024(PMC11309716) | 未公开 |
| 流感两阶段 | 逻辑回归列线图 | ED 流感危重与院内死亡 | 见论文(1,680 训练 + 高雄外验) | 2022 | 两阶段建模;S1 评分衔接 | 流感研究组, 2022(Springer) | 未公开 |
| CAD 时序表型 | 神经网络分类器 | 提前 365 天预测冠心病 | 见论文(2001-2018) | 2023 | 时序分窗聚合;80 检验 × 283 CCS 组 | Liu et al., 2023, IEEE BHI 2023 | 未公开 |
| 肺炎 BCPI | Cox 回归 + ML 指数 | ED 肺炎预后 | 见论文(9,352 人) | 2024 | CBC/DC + CURB-65 融合 | BCPI 研究组, 2024, BMC Med Inform Decis Mak. DOI 10.1186/s12911-024-02523-1 | 未公开 |
§8.2 SOTA 总结与选型建议
生态现状:CGRD 上的 AI 研究呈"两条腿走路"——传统表格机器学习(XGBoost/列线图)承担绝大多数药物流行病学与临床预测问题,深度学习在"生理信号 × EMR 结局"交叉地带(ECG-MACE)实现规模突破。选型建议:以可解释性与监管沟通为先选列线图/树模型;以信号数据为核心资产选 ResNet 级主干 + 多任务头;时序检验特征选掩码机制模型。任何模型都必须过 §5.6 三级外验。
从方法学演进看,已发表研究呈现清晰的能力阶梯:早期以覆盖率与代表性画像为主(2017-2019),中期以结局验证与子库代表性为主(2021-2022),近年进入大规模多模态深度学习(2024 起)。对刚进入该领域的研究者,最有效的路径是先复现一个表格模型研究的设计骨架(队列定义 → 洗脱期 → 基线窗 → IPTW → 外验),再逐步叠加时序与深度学习组件——跳过这一步直接上深度模型的研究,通常会在评审阶段被偏倚与泄漏问题绊倒。
§8.3 评测协议
社区已形成隐性协议:报告 AUC(分类)或 C-index(生存)+ 校准(Brier/校准曲线);外验分地理(异地院区)、时间(未来年份/疫情期)、跨院(TSGH)三型;不平衡类别需声明重采样策略;按患者聚合的评价作为防泄漏自检。无公开 leaderboard,复现对比依赖论文方法学章节与 IRB 框架内的数据再获取。
若要把这套隐性协议变成可执行清单:其一,人群与窗口(纳排、指数日期、洗脱期、随访窗)逐项可复核;其二,特征清单标注来源表与可用时点(防时间泄漏);其三,结局定义注明字段与验证文献;其四,划分策略注明三层结构(患者/时间/地理);其五,性能报告同时给内部、外验与亚组三套数字。满足这五点的 CGRD 研究,在方法学审查上基本立于不败之地。
§8.4 相关数据集表
| 数据集 | 关系 | 互补点 |
|---|---|---|
| 中国台湾 NHIRD | 同源健保体系对照库 | 全国分母、跨体系事件捕获 |
| 中国台湾死亡登记(TDR/HWDC) | 结局链接件 | 硬终点校正 |
| MIMIC-III/IV | 公开 ICU 参考 | 公开可复现管道的工程参照系 |
| eICU-CRD | 公开多院区 ICU | 跨院泛化方法学参照 |
| OMOP-CDM 映射网络 | 数据标准化框架 | 把 CGRD 交付件映射到 OHDSI 生态做国际协作 |
§8.5 关键论文 Top 8
- Tsai M-S, et al. Chang Gung Research Database: A multi-institutional database consisting of original medical records. Biomed J 2017;40(5):263-269. DOI 10.1016/j.bj.2017.08.002 — 数据库首篇系统画像:覆盖率 21.2%/12.4%,人群重症偏移量化。
- Shao S-C, et al. The Chang Gung Research Database—A multi-institutional EMR database for real-world epidemiological studies in Taiwan. Pharmacoepidemiol Drug Saf 2019;28(5):593-600. DOI 10.1002/pds.4713 — 以 NHIRD 为对照的容量与代表性评估,给出 6.1%/10.2% 覆盖与 15 病种对照。
- Shao S-C, et al. The CGRD: Multi-institutional real-world data source for traditional Chinese medicine in Taiwan. Pharmacoepidemiol Drug Saf 2021;30(5):652-660. DOI 10.1002/pds.5208 — 中医子库代表性验证(年均 71,002 患者)。
- Huang Y-T, et al. Discharge status validation of the Chang Gung Research database in Taiwan. Biomed J 2022;45(6):907-913. DOI 10.1016/j.bj.2021.12.006 — 197 万住院记录的死亡编码验证与 UEM 参考表。
- Multitask deep learning model utilizing electrocardiograms for MACE prediction. npj Digit Med 2024. DOI 10.1038/s41746-024-01410-3 — 数百万 ECG 链接 CGRD 的深度学习范式与跨院外验。
- Machine learning models for predicting unscheduled return visits. 2024(PMC11309716)— 617 变量急诊预测与疫情期外验方法学范本。
- Predicting new-onset post-stroke depression from real-world data. 2023(PMC10315461)— 20 年窗口、76,826 人的 XGBoost 预测与分层外验设计。
- Hsu C-Y, et al. Patients With RA With an Inadequate Response to DMARDs at a Higher Risk of ACS. J Am Heart Assoc 2021;10(8):e018290. DOI 10.1161/JAHA.120.018290 — 药物流行病学队列设计(IRB、断连豁免、IPTW)范本。
§8.6 社区活跃度
- 首篇介绍论文引用 223+(Semantic Scholar,截至 2026-09),方法学论文引用累计约 340(journalshub 分年数据 2019-2026 之和,截至 2026-09)。
- 引用趋势(Shao 2019,journalshub 分年):2019 年 5 → 2020 年 30 → 2021 年 50 → 2022 年 66 → 2023 年 61 → 2024 年 57 → 2025 年 51 → 2026 年(至 9 月)20,呈持续高位平台。
- 语义学者档案显示该论文的施引研究已扩展至 LLM 预测急诊就诊量、GLP-1 受体激动剂心血管结局、感音神经性听力损失多院区队列、视神经脊髓炎谱系疾病流行病学等方向(Semantic Scholar 施引列表,截至 2026-09)——说明 CGRD 的使用面已从药物安全扩展到跨专科预测建模。
- 产出覆盖 Pharmacoepidemiology and Drug Safety、Biomedical Journal、JAMA Network Open、CMAJ、npj Digital Medicine、JAHA、BMJ Open 等期刊;无公开 issue 跟踪(封闭库),社区讨论集中在论文与院内学术网络。
§8.7 生态快照表
| 资源 | 类型 | 链接 | 状态(截至 2026-09) | 推荐理由 |
|---|---|---|---|---|
| CGMH 官网 | 机构门户 | https://www.cgmh.org.tw | 活跃 | 体系与院区信息入口 |
| 长庚大学 RSCHI | 数据服务中心 | https://rschi2.cgu.edu.tw/p/412-1036-200.php?Lang=en | 活跃 | HWDC 第六分中心,103 种官方数据库的正规汇流节点 |
| PHD Center CGRD 页 | 第三方介绍页 | https://www.phdcenter.org.tw/chang-gung-research-database-cgrd | 活跃 | 快速概览与代表性论文清单 |
| Tsai 2017(PMC6138604) | 介绍论文全文 | https://www.pubmed.ncbi.nlm.nih.gov/29179881/ | 开放获取 | 必读的第一篇论文 |
| Huang 2022(PMC9795345) | 验证论文全文 | https://www.ncbi.nlm.nih.gov/pmc/articles/pmc9795345/ | 开放获取 | 结局验证参考值表 |
| Shao 2019(PubMed 30648314) | 方法学论文 | https://pubmed.gov/30648314/ | 摘要开放 | 代表性对照分析 |
§9 相关资源与引用
§9.1 官方资源列表
- 长庚医疗财团法人官网:https://www.cgmh.org.tw — 体系概况与院区清单。
- 长庚大学健康资料研究服务中心(RSCHI):https://rschi2.cgu.edu.tw/p/412-1036-200.php?Lang=en — 官方数据服务与培训管道。
- 卫福部健康福利资料科学中心(HWDC):死亡登记等 103 种官方数据库的链接来源。
- 首篇介绍论文全文(PMC6138604):数据库画像与挑战章节。
- 方法学论文(DOI 10.1002/pds.4713):与 NHIRD 的系统对照。
- 结局验证论文(PMC9795345):死亡编码准确率与 UEM 参考表。
- 中医子库论文(DOI 10.1002/pds.5208):TCM 子库代表性。
- PHD Center 介绍页:https://www.phdcenter.org.tw/chang-gung-research-database-cgrd — 第三方维护的快速索引。
§9.2 BibTeX 引用块
@article{Tsai2017CGRD,
title = {Chang Gung Research Database: A multi-institutional database
consisting of original medical records},
author = {Tsai, Ming-Shao and Lin, Meng-Hung and Lee, Chuan-Pin and
Yang, Yao-Hsu and Chen, Wen-Cheng and Chang, Geng-He and
Tsai, Yao-Te and Chen, Pau-Chung and Tsai, Ying-Huang},
journal = {Biomedical Journal},
volume = {40},
number = {5},
pages = {263--269},
year = {2017},
doi = {10.1016/j.bj.2017.08.002}
}
@article{Shao2019CGRD,
title = {The {Chang Gung Research Database}--{A} multi-institutional
electronic medical records database for real-world
epidemiological studies in {Taiwan}},
author = {Shao, Shih-Chieh and Chan, Yuk-Ying and Kao Yang, Yea-Huei and
Lin, Swu-Jane and Hung, Ming-Jui and Chien, Rong-Nan and
Lai, Chi-Chun and Lai, Edward Chia-Cheng},
journal = {Pharmacoepidemiology and Drug Safety},
volume = {28},
number = {5},
pages = {593--600},
year = {2019},
doi = {10.1002/pds.4713}
}
@article{Shao2021CGRD_TCM,
title = {The {Chang Gung Research Database}: Multi-institutional
real-world data source for traditional {Chinese} medicine
in {Taiwan}},
author = {Shao, Shih-Chieh and Lai, Edward Chia-Cheng and
Huang, Tse-Hung and Hung, Ming-Jui and Tsai, Ming-Shao and
Yang, Yao-Hsu and Chan, Yuk-Ying},
journal = {Pharmacoepidemiology and Drug Safety},
volume = {30},
number = {5},
pages = {652--660},
year = {2021},
doi = {10.1002/pds.5208}
}
@article{Huang2022Discharge,
title = {Discharge status validation of the {Chang Gung Research}
database in {Taiwan}},
author = {Huang, Yu-Tung and Chen, Ying-Jen and Chang, Shang-Hung and
Kuo, Chang-Fu and Chen, Mei-Hua},
journal = {Biomedical Journal},
volume = {45},
number = {6},
pages = {907--913},
year = {2022},
doi = {10.1016/j.bj.2021.12.006}
}
@article{ECGMACE2024,
title = {A multitask deep learning model utilizing electrocardiograms
for major cardiovascular adverse events prediction},
journal = {npj Digital Medicine},
year = {2024},
doi = {10.1038/s41746-024-01410-3}
}
@article{Hsu2021RA_ACS,
title = {Patients {With} {Rheumatoid Arthritis} {With} an {Inadequate}
{Response} to {Disease}-Modifying {Antirheumatic} {Drugs} at a
{Higher Risk} of {Acute Coronary Syndrome}},
author = {Hsu, Chung-Yuan and Su, Yu-Jih and Chen, Jia-Feng and
Sun, Chi-Chin and Cheng, Tien-Tsai and Tsai, Tzu-Hsien and
Lin, Shang-Hong and Chang, Cheng-Chieh and Chen, Tien-Hsing},
journal = {Journal of the American Heart Association},
volume = {10},
number = {8},
pages = {e018290},
year = {2021},
doi = {10.1161/JAHA.120.018290}
}
§9.3 引用指南
- 引用数据集本体:以 Tsai et al. 2017(首篇介绍论文)为主引,方法学细节引 Shao et al. 2019。
- 死亡结局研究:必须引用 Huang et al. 2022 并报告 UEM 敏感性分析。
- 中医研究:引用 Shao et al. 2021 的代表性参数(年均 71,002 患者、1.1% 覆盖)。
- 论文数据声明:写明数据由长庚医疗财团法人提供、经 IRB 批准、以正式查询交付、受使用限制与许可协议约束。
§10 AI 使用声明卡
§10.1 AI 模型列表
本条目撰写使用大型语言模型(LLM)辅助完成结构化整理、格式规范检查与文本初稿生成。
§10.2 AI 参与范围
AI 负责:文献要点结构化、Markdown 格式与锚点规范化、代码示例起草、表格排版。AI 不负责:事实认定与数字来源核验(全部规模/日期/验证数字均溯源自检索获取的公开文献)、医学判断、伦理与合规表述的最终裁定。
§10.3 输入来源列表
- Tsai M-S, et al., 2017, Biomedical Journal. DOI 10.1016/j.bj.2017.08.002
- Shao S-C, et al., 2019, Pharmacoepidemiology and Drug Safety. DOI 10.1002/pds.4713
- Shao S-C, et al., 2021, Pharmacoepidemiology and Drug Safety. DOI 10.1002/pds.5208
- Huang Y-T, et al., 2022, Biomedical Journal. DOI 10.1016/j.bj.2021.12.006
- Multitask DL model utilizing ECGs for MACE prediction, 2024, npj Digital Medicine. DOI 10.1038/s41746-024-01410-3
- Machine learning models for predicting unscheduled return visits, 2024. PMC11309716
- Predicting new-onset post-stroke depression, 2023. PMC10315461
- Hsu C-Y, et al., 2021, Journal of the American Heart Association. DOI 10.1161/JAHA.120.018290
- Validation of insurance claims data on isolated valve surgery, 2025, BMJ Open. DOI 10.1136/bmjopen-2024-084197
- Enhancing pneumonia prognosis in the ED, 2024, BMC Medical Informatics and Decision Making. DOI 10.1186/s12911-024-02523-1
- Two-stage prediction model for in-hospital mortality of influenza patients, 2022, Springer(期刊原文)
- Temporal Phenotype Matrix Engineering for EHR, 2023, IEEE BHI 2023
- 长庚大学 RSCHI 官网介绍(rschi2.cgu.edu.tw)
- PHD Center CGRD 介绍页(phdcenter.org.tw)
- Semantic Scholar 引用记录(Tsai 2017 条目)
- journalshub 引用分年记录(Shao 2019 条目)
§10.4 人工校验表
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §2 医学背景与术语映射 | 千方病案医学编辑部 | 对照 ICD-11/SNOMED CT 标准术语与原文编码逐一核对 | ✅ 已通过/已验证 |
| §3-§4 数据规格与字段字典 | 千方病案医学编辑部(数据工程) | 与 FACTS.md 来源清单逐条对数,未核实字段全部省略 | ✅ 已通过/已验证 |
| §6 预处理与坑点 | 千方病案医学编辑部(数据工程) | 坑点逐条溯源至论文方法学/limitations 章节 | ✅ 已通过/已验证 |
| §7 DAIMS 与偏倚分析 | 千方病案医学编辑部 | 24 项状态与评分解读交叉复核 | ✅ 已通过/已验证 |
| §8 基准与引用 | 千方病案医学编辑部 | 全部引用以 DOI/PMID 复核 | ✅ 已通过/已验证 |
| §9-§10 引用与声明卡 | 千方病案医学编辑部 | BibTeX 字段与原文比对 | ✅ 已通过/已验证 |
§10.5 AI 生成章节标注
以下章节为 AI 辅助生成并经人工审核定稿:§1 概览、§4 数据结构(目录树与字段字典为文献整理形态)、§6 AI 就绪指南代码、§8 选型建议、§9 引用格式化。
§10.6 最后人工审核日期
2026-09-05(与 §0 审核日期一致)
页面状态:published(全部内容已完成审核并发布)
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- thin — 共享标签:电子健康记录 / 药物发现与化学 / 临床电子病历 / 真实世界数据 / 药物安全
- jmdc — 共享标签:电子健康记录 / 药物发现与化学 / 临床电子病历 / 真实世界数据 / 药物安全
- trinetx — 共享标签:电子健康记录 / 药物发现与化学 / 真实世界数据 / 药物安全
- cprd — 共享标签:电子健康记录 / 临床电子病历 / 真实世界数据 / 药物安全
- twosides — 共享标签:电子健康记录 / 药物发现与化学 / 真实世界数据 / 药物安全
- faers — 共享标签:电子健康记录 / 药物发现与化学 / 真实世界数据 / 药物安全
- cdars — 共享标签:电子健康记录 / 药物发现与化学 / 药物安全
- flatiron-health — 共享标签:电子健康记录 / 临床电子病历 / 真实世界数据
- synthea — 共享标签:电子健康记录 / 药物发现与化学 / 临床电子病历
- fda-sentinel — 共享标签:药物发现与化学 / 真实世界数据 / 药物安全
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

