MDV — 日本医院管理数据库 AI-Ready Wikipedia

日本最大医院管理账单数据库 · 6,428 万患者 · 572 家 DPC 病院

来源 Medical Data Vision Co., Ltd.(MDV) url: https://www.mdv.co.jp/发布时间: 2026-09-18最后更新: 2026-09-25 阅读 24
MDV — 日本医院管理数据库 AI-Ready Wikipedia

信息速览

数据集名称MDV — 日本医院管理数据库 AI-Ready Wikipedia
数据类型6,428 万患者(累计,截至 2026-08),572 家医院 / 约 30% DPC 病院,2008-04 起每月更新,DPC/PDPS 账单 + 处方 + 检验值,商业闭源,合同交付
规模6,428 万名患者(累计)
接入方式Medical Data Vision Co., Ltd.(MDV) url: https://www.mdv.co.jp/
AI 就绪度

MDV — 日本医院管理数据库 AI-Ready Wikipedia

INFOBOX

数据集名称 MDV(日本 MDV 数据库)
英文全称 Medical Data Vision Medical Database(MDV EBM insight Hospital Data)
别名/简称 MDV、MDV DPC 数据库、MDV Medical Database、MDV analyzer
疾病分类(ICD-11) 全疾病谱(管理型账单数据库,不限定病种;伤病名基于 ICD-10 体系,对应 ICD-11 线性化示例:5A11 2 型糖尿病 / BA00 原发性高血压 / CA22 弥漫性肺间质疾病,详见 §2.2)
SNOMED CT 32485007 Hospital admission (procedure) / 185347001 Encounter for problem (procedure) / 373784005 Dispensing medication (procedure)(账单型数据无原生 SNOMED 映射,常见研究概念对照见 §2.2)
数据模态 医院管理数据(DPC/PDPS 住院账单、门诊诊疗报酬账单、处方、处置/检查明细、出院摘要、部分血液检验值)
AI 任务类型 真实世界疗效与安全性研究、药物利用评价、上市后监测、疾病流行病学、治疗模式与患者路径建模、机器学习不良事件风险预测
样本总数 6,428 万名患者(累计)/ 572 家医院(截至 2026-08;单年度约 1,178 万人)
数据大小 未公开(标准交付三主表:疾病名表、诊疗行为表、检验值表;文本或 CSV 格式)
数据格式 文本 / CSV(云端交付);MDV analyzer 网页分析工具;样例数据五表(患者信息、诊断信息、医疗行为、出院摘要、检验结果)
许可证 商业数据服务合同(无公开许可协议,数据禁止再分发,发表需第三方披露协议)
访问级别 付费商业合同(Ad Hoc 定制数据集 / 年度订阅 / MDV analyzer 网页工具)
DUO 标签 不适用(商业合同模式,无 DUO 标注;使用范围以合同为准)
语言 日文为主(数据库主档以英文维护,可交付英文版本)
首发日期 2008(数据对外可用;EBM 匿名化数据服务 2007 年启动,数据自 2008-04 积累)
最后更新 每月月末更新(截至 2026-08 末:累计 6,428 万患者)
发布机构 Medical Data Vision Co., Ltd.(东证上市 3902,东京)
官方主页 https://www.mdv.co.jp/ (英文 EBM 站:https://en.mdv.co.jp/ebm/)
下载地址 无公开下载;经商业合同云端交付(https://en.mdv.co.jp/ebm/service/dataset)
AI 就绪度评分 ⭐⭐⭐(3/5)— 规模与全国代表性顶级、标准规格书与免费样例数据可得、700+ 篇论文背书;扣分项:商业闭源、事件时间仅到月粒度、跨机构患者不可链接、检验数据稀疏且机构集合漂移
页面状态 published

§0 E-E-A-T 信任声明与免责声明

医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(DPC/PDPS 支付制度、ICD-11 与 SNOMED CT 映射、急性期医院人群特征)、§7 偏倚分析。

数据工程审核者:千方病案医学编辑部交叉审核:§4 数据结构(三主表字段字典、DPC 编码体系)、§5 数据划分策略、§6 预处理 Pipeline 和坑点。

审核日期:2026-09-05

审核方式:交叉审核

利益冲突声明:千方病案医数集与 Medical Data Vision 株式会社(MDV)无任何商业利益关联,非其代理或分销渠道。本页面不销售 MDV 数据库访问权,仅提供 AI 就绪指南与学术信息服务。编辑者未接受 MDV 的任何形式资助。

医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。

技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。

数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。MDV 为商业闭源数据库,访问需与 Medical Data Vision 株式会社签订商业合同,对外发表研究成果前须签订第三方披露协议(TPA)并通过数据审查。本页面字段名与目录结构为基于官方公开资料整理的示意性说明,实际交付规格以合同附件为准。


§1 数据集概览

§1.0 30 秒速览

  • 是什么:MDV(Medical Data Vision)是日本 Medical Data Vision 株式会社(东证 3902)运营的商业医院管理账单数据库,长期被官方与学术论文称为"日本最大规模诊疗数据库"。
  • 规模:截至 2026-08 末累计 6,428 万实患者、572 家医院;单年度(2021-04 至 2022-03)1,178 万人,其中 65 岁以上占 48%。
  • 母体:数据来自日本约 1,685 家 DPC 指定病院(2026-06 口径)中的约 30%,即以急性期医院为主的住院 DPC/PDPS 账单 + 门诊诊疗报酬账单。
  • 内容:伤病名(ICD-10 体系)、处方(ATC 码)、处置/检查(诊疗报酬码)、医疗费用、部分机构血液检验值与出院摘要。
  • 更新:每月月末更新,最新数据滞后约 2 个月。
  • 适合谁:需要日本急性期医院真实世界证据的药物流行病学、上市后安全性、治疗模式与机器学习风险预测研究。
  • 不适合谁:需要日级时间窗、跨机构患者追踪、院外死亡结局、初级保健场景或免费开源数据的研究。
  • 一句话评估:规模与全国代表性在日本无出其右,但"月粒度时间戳 + 跨院不链接 + 商业闭源"三大约束决定了它更适合队列流行病学而非细粒度时序深度学习。

§1.1 核心特征

  1. 支付制度驱动的数据母体:日本自 2003 年起对急性期住院实施 DPC/PDPS(诊断群分额/按日支付制度),DPC 病院有义务按厚生劳动省格式提交标准化数据。MDV 的商业起点正是为 DPC 病院提供数据管理系统(2006 年),随后将机构端匿名化数据聚合为研究数据库(2007-2008 年对外服务)。
  2. 账单即数据:库内一切记录均为保险支付体系内的账单明细——这意味着数据高度结构化、逐月对账可靠,但也意味着非保险项目(自费诊疗、体检)与保险外信息(部分临床量表)天然缺位。
  3. 三主表标准交付:官方标准交付格式为疾病名表(Disease Name Table)、诊疗行为表(Medical Procedure Table)、检验值表(Test Value Table)三张主表,文本或 CSV 格式,云端交付。
  4. 免费样例 + 商业正库:官网提供免费注册可下载的样例数据(五表结构),正库按合同交付(Ad Hoc 定制提取约 2 周交付,或年度订阅)。
  5. 研究背书:MDV 官方称已支持 700+ 篇论文发表;截至 2021-03,PubMed 收录的 MDV 研究为 68 篇(对照库 JMDC 为 105 篇),此后增长显著,覆盖肿瘤免疫治疗安全性、心血管代谢、疫苗背景发生率等多个领域。
  6. 月粒度哲学:账单按月对账,数据一致性与完整性极强,但牺牲日级时间——一切分析设计应从"月"出发,而不是把日级设计硬搬过来。
  7. 机构级匿名:机构以独立匿名 ID 参与数据但患者跨院不可链接——这是隐私合规(匿名加工)与真实世界就医行为之间的根本权衡,也是 MDV 区别于 JMDC 的第一特征。

§1.2 适用与不适用场景

场景 适配度 说明
药物流行病学(新药利用、治疗序列) ★★★★★ ATC 码处方记录完整,单库 10 万级抗肿瘤药队列可行
上市后安全性信号验证 ★★★★★ 大样本 + 月度更新,支持 Rare disease 的跨院汇总(需注意重复计数)
治疗模式与患者路径 ★★★★ 院内纵向记录完整;跨院路径因患者不链接而受限
疾病负担横断面估计 ★★★★ 官方称年龄性别分布与厚生劳动省全国调查一致,可外推
机器学习不良事件预测 ★★★ 已有 ICI 心肌炎、甲减等 LightGBM/弹性网络研究;特征限于账单层
日级时窗结局(30 天再入院等) ★★ 事件时间仅到月,日级窗口无法精确实现
生存分析(真实生存终点) ★★ 院外死亡不可观测,需改用替代终点
初级保健/轻症流行病学 ★★ 仅急性期 DPC 病院;轻症人群结构性缺位
住院资源利用与费用研究 ★★★★★ 点数与包括/出来高结构完整,制度语境清晰
医疗经济学(成本效果) ★★★★ 直接费用可得;无自费部分需声明
免费教学/基准竞赛 ✗ 商业闭源,无公开基准划分

§1.3 名词速查表

缩写/术语 全称 含义
DPC Diagnosis Procedure Combination 日本独自的住院患者分类(14 位码),MDV 数据的编码骨架
PDPS Per-Diem Payment System 基于 DPC 的按日定额支付制度(2003 年起)
MDC Major Diagnostic Category DPC 码前 2 位的器官系统大类
CC Comorbidities & Complications DPC 码第 13 位的合并症/并发症等级
様式 1 — DPC 病院退院摘要表(入出院日期、转归),住院终点的主要来源
診療報酬 — 日本保险诊疗报酬点数体系;处置/检查以点数码记录(1 点 = 10 日元)
ATC Anatomical Therapeutic Chemical WHO 药物分类,MDV 处方行的药物码
病名マスタ — 日本标准病名マスタ(ICD-10 对齐的伤病名码表)
匿名加工 — 日本个人信息保护法下的匿名化标准;MDV 数据在机构端完成
TPA Third-Party disclosure Agreement 对外发表前须与 MDV 签订的第三方披露协议

§2 医学背景

§2.1 DPC/PDPS:日本急性期支付制度与数据母体

理解 MDV 的第一步是理解 DPC(Diagnosis Procedure Combination,诊断群分類)——它是数据的编码骨架,也是数据覆盖范围与粒度的根本约束。

  • 制度起源:DPC/PDPS 于 2003 年 4 月(平成 15 年)经内阁决议引入,最初以 82 家特定机能病院为对象,是对急性期住院医疗的"1 日定额 + 出来高"混合支付制度。此前的 1998-2004 年曾在 10 家国立病院试行按住院包干,因住院日数方差过大而改为按日定额。
  • 覆盖扩张:2010-07 为 1,391 家(约占一般病床 50.4%);2016-04 为 1,667 家、约 49 万床(约 55% 一般病床);2018-04 达 1,730 家(占急性期一般病床约 83%);2026-06 为 1,685 家(约占全国 8,000 家医院的 20%)。
  • 支付结构:每个住院病例按"医疗资源投入最多的伤病名 + 診療行為 + 副傷病"归入一个 DPC 组。入院基本料、检查、画像诊断、投药、注射及 1,000 点以下处置进入包括评价部分(按 DPC 组 3 阶段日定额 × 在院日数 × 医疗机构别係数计算);手术、麻醉、放射线治疗及 1,000 点以上处置按**出来高(按项目付费)**单独计算。
  • 3 阶段日定额:第 I 日(入院至 25 百分位日数)全额、第 II 日(至平均在院日数)15% 减额、第 III 日(平均 + 2SD 内)再减额,超过平均 + 2SD 的部分转入出来高——这造就了 MDV 数据中"在院日数"字段的强制度激励背景。
  • DPC 对象病院要件:7 对 1 或 10 对 1 急性期一般入院基本料等申报、参加退院患者调查与特别调查、调查期间数据病床比 ≥ 0.875、每年 4 次以上编码委员会——这保证了 DPC 数据的编码质量控制,也是 MDV"病床比"筛院逻辑的来源。
  • 14 位 DPC 码结构(每 2 年随诊疗报酬改定修订,分析跨年数据必须做版本对齐):
    1. 第 1-6 位:伤病名(基于 ICD-10,前 2 位为 MDC 大类,共 18 类,如 01 神经系统、05 循环系统);
    2. 第 7 位:病态分类(如社区获得性肺炎等);
    3. 第 8 位:年龄/出生体重分层;
    4. 第 9-10 位:主要手术;
    5. 第 11 位:追加处置;
    6. 第 12 位:辅助治疗(放化疗等);
    7. 第 13 位:合并症/并发症(CC)等级;
    8. 第 14 位:补充信息(如白内障单/双眼)。

对 AI 建模者而言,DPC 码的价值在于:一次住院的主要诊断、手术组、合并症等级被制度性地压缩进一个 14 位码,是比散乱伤病名更稳定的住院级特征;其风险在于版本更迭与"主诊断 = 报销导向"的编码偏倚。

MDC(Major Diagnostic Category)按器官系统与病因组织患者大类——神经系统、循环系统、呼吸系统、消化系统、肝胆胰、肌肉骨骼、妊娠分娩、新生儿、感染症、精神疾患等(Hayashida 2021 报告现行 18 大类),与 ICD-11 章节近似但非一一对应;MDC 编号与范围的官方定义随诊疗报酬改定更新,跨年使用时以厚生劳动省最新告示为准。DPC 码第 1-2 位即 MDC 编号,可用来做住院人群的"章节级"快速画像(如循环系统住院占比、肿瘤相关住院分布)。

3 阶段日定额的在院日数结构(MDV"在院日数"字段的制度语境):

阶段 日数范围 日定额 数据含义
第 I 日 入院日 至 25 百分位日数 全额(1 日定额) 住院初期,包括范围项目全额计入
第 II 日 至平均在院日数 约 15% 递减 标准住院期
第 III 日 至平均 + 2SD 再递减 长住院期,制度性激励早出院
超出段 平均 + 2SD 之后 转为出来高 outlier 处理,账单结构变化

这一支付结构意味着:在院日数、转归与费用字段的分布会被制度"整形"——直接把在院日数当纯临床变量建模时,须记得其中含有制度激励的成分。

§2.2 ICD-11 与 SNOMED CT 映射

MDV 原生编码为日本独自体系:伤病名采用日本标准病名マスタ(与 ICD-10 对齐但含日文独自扩展码),手术/处置采用诊疗报酬点数表代码,药物采用 ATC(解剖治疗化学分类)码,住院分类采用 DPC 码。库内不存在原生 ICD-11 或 SNOMED CT 编码,跨标准映射需研究团队自行维护。常用映射锚点如下。

MDV 原生编码 ICD-11 对应(2024 线性化) SNOMED CT 参考概念 说明
伤病名 ICD-10:E10-E14(糖尿病) 5A10(1 型)/ 5A11(2 型)/ 5A13(营养不良相关)等 73211009 Diabetes mellitus 日文病名マスタ含"2 型糖尿病(E11)"独立码,可直接映射 5A11
伤病名 ICD-10:I10(原发性高血压) BA00 Essential hypertension 38341003 Hypertensive disorder 高血压流行病学研究(HTN)常用锚点
伤病名 ICD-10:J84.1/J84.8(间质性肺病) CA22 Interstitial lung disease 26373005 Interstitial lung disease ICI 肺炎研究(Cancer Immunol Immunother 2022)的入组码 J841/J849
伤病名 ICD-10:J13-J18(细菌性肺炎) CA40 系列肺炎 233604007 Pneumonia 该研究以"激素 + 抗生素 + 肺炎码"组合定义 ICI 相关爱伤肺炎结局
DPC 码第 1-2 位 MDC(18 大类) 与 ICD-11 章节近似对应(循环 MDC05 ↔ 第 05 章循环系统) 无一一对应 MDC 为 DRG 家族分类,仅可做章节级粗映射
诊疗报酬码(K 编码手术等) 无对应 71388002 Procedure (procedure) 及其子类 日韩独自收费编码,需人工建表映射至 SNOMED 手术概念
ATC 药码(L01 抗肿瘤药等) 无对应 373784005 Dispensing medication ATC 为 WHO 标准,可直接与全球文献互通

映射工程建议:伤病名层面用"日本标准病名マスタ(電子化)→ ICD-10 → ICD-11 线性化码"两跳映射;药物层面 ATC 天然国际互通;手术/处置层面诊疗报酬码只能人工映射,建议只映射研究涉及的高频项目(通常不超过 200 项)。

§2.3 研究人群与临床语义

  • 人群构成:单年度 1,178 万人(2021-04 至 2022-03),65 岁以上约 560 万(48%)——高于日本全国就诊人口的老龄化比例,反映急性期医院收治重症的特征。官方称 MDV DPC 库的年龄/性别分布与厚生劳动省全国医疗机构的患者调查一致,“具备全国代表性”,但这一代表性限于急性期医院就诊人群,不含诊所轻症与未就诊人群。
  • 抗肿瘤药队列规模:一篇 2026 年 ICI 心肌炎预测研究显示,485 家急性期机构(2008-04 至 2022-12)共 1,040,184 名患者处方过 ATC L01 抗肿瘤药——为药物安全性与 ML 预测研究提供了罕见的罕见事件样本池(ICI 心肌炎发生率约 1%,该研究仍需欠采样 + bagging 处理类别极不平衡)。
  • 健保组合(保险者)侧数据:MDV 另有来自 223 家健保组合(2025-01 口径)的保险者数据,覆盖门诊为主、含跨院追踪优势,但与医院数据库不可个体级联动——只能以"同条件平行提取"方式做趋势对照(官方 FAQ 明确)。
  • 住院/门诊双轨:DPC 住院数据为院内逐月账单(含住院日层级明细),门诊诊疗报酬账单为月度汇总。出院摘要(様式 1)提供入院/出院日期与转归,是多数研究定义住院事件与随访终点的核心表。
  • 语义盲区:疾病严重度(除 DPC 的 CC 等级与个别加算外)、影像所见、病理细节、生命体征、院外用药依从性等均不在库。将 MDV 定位为"管理账单层证据",与院内 EHR 数据互补,是研究设计的第一原则。
  • 常见临床任务定义示例(均可用 §6.3 的 claim 算式实现):
    1. 高血压(HTN)人群画像:I10 伤病名与 C08/C09 类降压药处方的月度共现比例;
    2. incident 2 型糖尿病队列:E11 首次记录 + 12 个月 lookback(§6.2 完整实现);
    3. ICI 不良事件预测:L01FX/L01FF 类新用户 + irAE claim 算式(激素 + 抗生素 + 目标伤病名同月共现);
    4. 心衰住院风险:循环系统 DPC 住院事件 + 院内随访再住院;
    5. 治疗序列与切换:目标 ATC 类处方月序列的中断/切换点识别(TTNT-D,§6.5)。

§3 数据集规格

§3.0 版本抉择矩阵

MDV 无固定版本号,为持续月更的"活数据库"。研究设计阶段需要抉择的不是"用哪个版本",而是"用哪种获取方式 + 哪个数据切片"。

决策维度 选项 A:MDV analyzer 网页工具 选项 B:年度订阅(All-Therapeutic Area) 选项 C:Ad Hoc 定制数据集
数据形态 预聚合计数与趋势,无患者级导出 合同期内持续更新的全域数据 按研究定义提取的患者级 CSV
适合研究 快速市场画像、可行性评估、药政问答 持续性监测项目(PMS、市场研究) 学术论文、监管提交、ML 建模
时间投入 天级 签约后即时 目的定义 + 审查 + 约 2 周交付
复现性 工具内快照 依赖合同期数据快照 以提取日冻结,最佳
公开发表 需 TPA 审查 需 TPA 审查 需 TPA 审查
成本结构 免费/低门槛起步 年度许可费 按提取规模报价
ML 建模适配 ✗(无患者级数据) △(需自行清洗全库) ✓(推荐)

结论:面向 AI 研究,Ad Hoc 定制数据集(选项 C)是唯一能提供患者级记录且可冻结复现的路径;论文写作前应将队列定义、主表清单、提取日期写入研究方案。

§3.1 规模演进时间线

时间断面 实患者数(累计) 联网机构 来源口径
2007(服务起步) 约 100 万 15 家 MDV 官方访谈(EBM 事业初期)
2011-2016 间 突破 1,000 万 约 500 家 MDV 官方访谈(“超过 500 病院・实患者 1,000 万”)
2021-09 3,800 万+ 覆盖急性期医院约 23% Pharmacoepidemiol Drug Saf 综述(PMC8932467)
2022(论文口径) 3,520 万 约占 DPC 病院 23% Cancer Immunol Immunother(DOI 10.1007/s00262-022-03281-7)
2024-11 4,895 万 530 家 BPB Reports 2025(MDV analyzer FAQ 口径,含死亡患者)
2025-08 5,300 万 572 家 MDV 官方专栏(SaMD 解说)
2026-08 6,428 万 572 家 MDV 官网数据页(データ期間 2008-04 至 2026-06 末)

解读:规模数字随断面快速膨胀,引用时必须标注时间断面;同一论文审稿周期内数字"漂移"属正常现象(详见坑点 8)。覆盖比例的另一表述口径——“约占全国 DPC 指定病院的 30%”(1,786 家,2024-12-31)与"约占急性期医院 23%"——分母不同(DPC 病院 vs 全部急性期医院),引用时需辨析。

历史对照的两个锚点数字也值得记忆:EBM 服务起步时(2007)仅 15 病院/约 100 万患者;突破"500 病院/1,000 万人"后(约 2011-2016 年间)药企市场研究用途才显著放量——这说明"规模 × 代表性"双门槛是商业数据库价值释放的转折点,也解释了为何 2015 年前后的 MDV 论文与 2020 年后的研究在方法学稳健性上差异明显。

§3.2 数据内容与时间范围

  • 时间范围:数据期间自 2008-04 起持续至今(2026-08 末快照);各机构起算时间不同,早期年份机构数少,跨年趋势分析应报告机构数变化。
  • 数据范围:
    • 住院:DPC/PDPS 账单(14 位 DPC 码、住院日层级包括/出来高明细、样式 1 出院摘要的入出院日期与转归);
    • 门诊:诊疗报酬账单(伤病名、处方、注射、检查、处置的月度明细);
    • 处方:药品(ATC 码)、用法用量文本、天数与数量;
    • 检验:血液检验值(数值、单位),仅部分机构自愿提供(约 10% 患者可得);
    • 费用:保险支付点数(1 点 = 10 日元),可做医疗经济学分析。
  • 明确不在库:健康体检数据、自费诊疗、影像与病理原始资料、生命体征、院内文本病历、健保组合库与医院库的跨库个体链接。
  • 更新节奏:每月月末更新,最新数据滞后约 2 个月(学术口径常见"约 3 个月",因提取与审查周期)。

码表改定节奏(跨年分析必读,细节以厚生劳动省历年改定通知为准):

改定年(4 月实施) 与研究相关的典型变化
2020 新兴感染症相关分组调整、DPC 部分伤病害名修订
2022 DPC 码全面修订(伤病害名/病态分类更新)、医疗机关别係数结构调整
2024 DPC 码修订、基本係数与特定病院加算调整
2026 最新改定(本页 2026-09 审核时点,1,685 家 DPC 病院口径)

跨 2 个以上改定年的分析,应将"码表版本"作为显式协变量或分层因子,并在方法节引用对应年度的改定要点文件。

§3.3 许可证与获取

  • 许可性质:商业数据服务合同(无公开许可协议)。数据为匿名加工数据(机构端专用工具处理,符合日本个人信息保护法的匿名加工标准),MDV 非次世代医疗基盘法认定事业者,数据不属于该法管制范围。
  • 获取路径:
    1. 免费样例:官网免费注册后下载样例数据(五表:患者信息、诊断信息、医疗行为、出院摘要、检验结果)——适合管线开发与教学演示;
    2. MDV analyzer:网页分析工具(机构内多账号无额外费用,部分网页工具支持英文);
    3. 年度订阅:全领域或特定领域数据包,文本/CSV 交付;
    4. Ad Hoc 定制:按研究目的提取患者级数据集,流程为"目的澄清 → 定义审查 → 签约 → 云端交付(约 2 周)"。
  • 使用约束:合同范围外使用禁止;对外披露(论文、会议)须签第三方披露协议(TPA)并接受材料审查;数据不可再分发;无公共数据使用委员会(DUB)流程,合规要点全部内嵌于合同。
  • 伦理要点:数据为匿名加工数据,通常可豁免个别知情同意,但最终以使用方机构伦理委员会判断为准;合同中一般约定禁止再识别尝试(linkage attacks 的禁止条款)。
  • 发表要点:TPA 审查需预留数周;致谢与数据来源声明按合同模板;方法节建议引用官方服务页 URL 与提取快照三要素。
  • 时间线参考(从接触到出稿的典型节奏):
    1. 第 1 周:样例数据(免费)管线验证 + 可行性计数(MDV analyzer 或商务支持);
    2. 第 2-3 周:提取规格三参数敲定(入组月窗/lookback/纵向延展)→ 报价 → 签约;
    3. 第 4 周:云端交付 → 数据质控(§6.1)→ 冻结提取集;
    4. 第 5 周起:分析建模 → 双库复刻(可选)→ 论文撰写;
    5. 投稿后:TPA 审查(预留数周)→ 返修期内的重跑只对冻结集进行。

§3.4 免费样例数据:五表结构

官网提供免费注册即可下载的样例数据(sample dataset),结构与正库一致,是管线开发与教学演示的最佳起点:

样例表 内容 与标准交付三主表的对应关系
患者信息 匿名患者属性(性别、年龄层、所属机构) disease_table / patient_master
诊断信息 就诊年月 × 伤病名码 disease_table / diagnosis
医疗行为 处方/注射/处置账单行 procedure_table
出院摘要 入出院日期、转归(DPC 住院) disease_table / discharge_summary
检验结果 检验项目、数值、单位 lab_table / lab_results

使用样例的三条纪律:

  1. 规模不可外推:样例与正库(6,428 万患者)完全不可比,任何基于样例的统计数字不得出现在论文中;
  2. 列名即契约:样例列名与正库交付规格一致,可在样例上完成特征管线开发后无缝迁移;
  3. 码表需另行获取:样例不含全量码表マスタ,映射表(§4.5)需在合同交付中获取。

§3.5 日本主要真实世界数据库对比

维度 MDV JMDC NDB DPC 退院患者调查
运营方 Medical Data Vision JMDC Inc. 厚生劳动省 厚生劳动省/DPC 研究班
数据母体 急性期 DPC 病院账单 健保组合(在职者与家属) 全国保险诊疗全量 DPC 对象病院退院摘要
累计患者 6,428 万(2026-08) 约 1,300 万(2021-09) 全人口级(逐年度) 数百万例/年
跨机构患者追踪 不可 可(同一保险证) 有限(匿名化约束) 不可
检验值 约 10% 患者(部分机构) 无(有体检数据) 无 少量
健康体检数据 无 有(年度检诊) 特定检诊部分 无
时间粒度 月(住院内有日层级) 就诊日级(部分) 月 住院日级
老龄人群代表性 高(急性期偏重症) 低(缺后期高龄者) 全年龄 高
获取方式 商业合同 商业合同 政府审查申请 研究班申请
典型适配研究 急性期/肿瘤/药物安全 在职人群/代谢/疫苗 全人群流行病学 住院结局/病院间比较

选型建议:研究人群决定母体——肿瘤与重症选 MDV,在职与代谢选 JMDC,全人群统计走 NDB 申请,住院结局细节用 DPC 调查;最优设计通常是"MDV 主分析 + JMDC 复刻"的双库三角验证(§8.2)。

§3.6 数据切片与提取设计模式

Ad Hoc 定制提取(§3.0 选项 C)有三种成熟设计模式,签约前应明确选用:

模式 内容 适合研究 成本特点
队列 + 结局模式 按入组条件提取固定队列 + 其全部纵向记录 ML 风险预测、生存分析 一次提取、规模可控
平台模式 特定科室/病种的全量患者年记录持续交付 PMS、市场监测 年度订阅、持续更新
横断面模式 指定时点的全国计数与外推 疾病负担、患病率 可用 MDV analyzer 替代

设计模式决定提取规格的三个关键参数:入组月窗(建议 ≥ 24 个月保证 incident 识别)、lookback 月数(≥ 12 个月)、纵向延展(事件后 ≥ 24 个月或至快照期末)。三者过窄是返工的最常见原因——Ad Hoc 提取约 2 周交付一次,规格返工会直接拉长研究周期。


§4 数据结构详解

§4.1 交付包目录树

以下为基于官方"标准数据格式"与样例数据公开资料整理的示意结构(目录与列名为示意,实际以合同附件规格书为准):

mdv_delivery/
├── disease_table/                # 主表 1:疾病名表
│   ├── patient_master.csv        # 患者属性:匿名患者ID、性别、年龄层、所属机构ID
│   ├── diagnosis.csv             # 伤病名记录:患者ID、就诊年月、伤病名码(ICD-10 体系)、主诉别
│   ├── dpc_episode.csv           # DPC 住院事件:DPC 14 位码、入出院年月、在院日数、转归
│   └── discharge_summary.csv     # 出院摘要(样式 1):入院/出院日、転帰、再入院计划
├── procedure_table/              # 主表 2:诊疗行为表
│   ├── prescription.csv          # 处方:患者ID、年月、ATC 码、用法用量(文本)、天数、数量
│   ├── injection.csv             # 注射:药剂码、用量、年月
│   ├── procedure.csv             # 处置/手术/检查:诊疗报酬点数码、实施年月、回数、点数
│   └── cost.csv                  # 费用:包括评价部分与出来高部分点数汇总
├── lab_table/                    # 主表 3:检验值表(仅部分机构)
│   └── lab_results.csv           # 检验项目码、数值、单位、检查年月、患者ID
└── metadata/
    ├── data_dictionary.xlsx      # 标准规格书(字段定义、码表版本)
    └── master_tables/            # 病名マスタ、薬価マスタ、診療報酬码表、DPC 码表

§4.2 核心表字段字典

表 关键字段 类型 语义与 AI 注意点
patient_master 患者ID 匿名串 机构内唯一:同一患者在不同机构为不同 ID(官方 FAQ 明确)
patient_master 性别/年龄层 分类 年龄为层段而非生日;存在录入错误(文献报告过自发性流产患者性别为男性的案例)
diagnosis 伤病名码 字符串 日本标准病名マスタ(ICD-10 对齐 + 日文扩展);同一就诊可挂多诊断,无"主诊断"显式标记(主诊断信息压缩在 DPC 码)
diagnosis 就诊年月 YYYY-MM 仅到月:无日级就诊日期
dpc_episode DPC 码 14 位字符 内嵌主诊断、手术组、CC 等级;每 2 年版本更迭
dpc_episode 在院日数/转归 数值/分类 3 阶段支付结构的直接产物;转归含死亡/转院/自宅退院等
prescription ATC 码 字符串 国际互通;同月多处方为多行
prescription 用法用量 文本 不在结构化字段:日剂量计算需文本解析,DDD 换算需人工规则
procedure 诊疗报酬点数码 字符串 日本独自收费码;手术(K 码)与检查(D 码)等
procedure 实施年月 YYYY-MM 与 diagnosis 的就诊月对齐后才能关联(无行级外键)
lab_results 检验项目/数值/单位 数值 覆盖率约 10% 患者;机构集合逐年变动(详见坑点 4)
patient_master 年龄层 层段 90+ 常合并;层段不宜直接当连续变量建模
cost 点数 数值 1 点 = 10 日元;直接医疗费用分析可用

§4.3 编码体系与主键

  • 主键层级:机构 ID → 患者ID → 就诊(住院/门诊)年月 → 账单行。不存在跨机构的患者全局主键;不存在患者-家庭链接(对照库 JMDC 有家庭链接而 MDV 没有)。
  • 码表版本:DPC 码与诊疗报酬码每 2 年随诊疗报酬改定修订(如 2020、2022、2024、2026 年 4 月改定);药价基准每年修订。长跨度分析必须建立"码版本 × 年份"对照表。
  • 编码偏倚的制度根源:DPC 病院有编码委员会义务与数据病床比要求(≥ 0.875),编码质量高于普通账单;但"主诊断选择影响报销"的激励仍在——用 DPC 码做疾病发生率时,应与伤病名码交叉验证。

§4.4 缺失与异常编码

  • 结构性缺失(制度性不在库,不可插补):院外死亡、自费项目、体检、影像/病理、生命体征、院外处方明细。
  • 选择性缺失(可得但常缺):检验值(约 10% 患者可得);年龄层尾段(90+ 常合并);用法用量结构化字段。
  • 异常值处理:性别/年龄录入错误偶发(需 sanity check);转院当月账单可能在两机构各出现一次(患者重复)。
  • 信息性缺失:某月无检验记录 ≠ 无检查,可能是该机构未加入检验提供计划——缺失机制与机构策略相关,非随机缺失(MNAR),详见坑点 4。

缺失三分类决策表:

缺失类型 典型字段 机制 处理策略
结构性缺失 院外死亡、体检、影像 制度性不在库 不可插补;改研究问题或换终点
选择性缺失 检验值、用法用量 机构/合同选择 可得性矩阵 + 缺失指示 + 多重插补
录入异常 性别、年龄层 手工录入错误 规则校验(sanity check)+ 剔除或修正

§4.5 码表与键值示例

以下示例用于说明编码结构(全部为示意值,非真实病例,码形以最新官方マスタ为准):

DPC 14 位码结构示例(示意):
  [050250] [3] [x] [01] [0] [1] [2] [1]
   伤病名   病态 年龄 手术 追加 辅助 CC  补充
  (6 位)  (1) (1) (2)  (1)  (1) (1)  (1)

  前 6 位基于 ICD-10:05 开头对应循环系统类伤病名
  第 13 位 CC 等级:0/1/2 分层影响包括点数

诊疗报酬码族示例(示意):
  K 码族  → 手术(人工关节置换、白内障手术等)
  D 码族  → 检查(心電図、内視鏡等)
  A 码族  → 入院基本料(一般病棟入院基本料等)
  J 码族  → 注射用药

伤病名码示例(日本标准病名マスタ风格):
  E11 族 → 2 型糖尿病(与 ICD-10 对齐,含日文独自副号)
  I10 族 → 原发性高血压
  J84 族 → 间质性肺病

键值工程要点:

  1. 复合主键 = (hospital_id, patient_id, service_ym, 记录类型);任何去重、聚合都应包含机构键;
  2. 伤病名主诊断不显式标记——住院主诊断信息压缩在 DPC 码第 1-6 位,门诊多条伤病名需按"伤病名别・主诉别"字段或算式推断;
  3. 处方行无诊断外键——关联只能通过 (patient_id, service_ym) 的同月上下文近似(坑点 5)。

§4.6 检验值表处理与单位归一

检验值表是 MDV 中最"娇贵"的主表——可用,但必须按下面的纪律处理:

# 检验值表典型处理:项目码 → 统一变量 + 单位归一 + 极端值截断
LAB_MAP = {                      # 研究所需项目的项目码映射(示意)
    "HbA1c_NGSP":  {"codes": {"1B990"}, "unit": "%"},
    "eGFR":        {"codes": {"1C475"}, "unit": "mL/min/1.73m2"},
    "Albumin":     {"codes": {"1C415"}, "unit": "g/dL"},
}

def tidy_lab(lab: pd.DataFrame) -> pd.DataFrame:
    out = lab.copy()
    out["variable"] = None
    for name, spec in LAB_MAP.items():
        mask = out["lab_code"].isin(spec["codes"])
        out.loc[mask, "variable"] = name
    out = out.dropna(subset=["variable"])
    # 单位归一:同项目多单位时先统一(示意:血糖 mg/dL vs mmol/L)
    # 极端值按临床合理范围截断(如 HbA1c 限 [3, 20]),截断前先记录超界比例
    return out

lab_tidy = tidy_lab(lab)
print(lab_tidy.groupby("variable")["patient_id"].nunique())

三条纪律:

  1. 可得性优先于数值:先输出"机构 × 年份 × 项目"可得性矩阵(坑点 4),再谈数值本身——没有可得性诊断的检验值分析不可信;
  2. 单位必须归一:同一项目在不同机构可能用不同单位/方法(HbA1c 的 NGSP/JDS 双标准在日本并存),合并前必须统一并记录方法学差异;
  3. 截断而非删除:临床合理范围外的极端值记录超界比例后截断(winsorize),直接删除会系统性丢掉真实重症患者。

§5 数据划分与使用建议

MDV 无官方划分,且因商业闭源不存在社区统一划分。以下为基于数据结构的工程建议:

  1. 划分单元 = 机构:以机构 ID 做 GroupShuffleSplit(建议 70/15/15)。以患者 ID 划分会因"机构特异的编码习惯与检验可得性"造成训练/测试分布泄漏;以就诊行划分则彻底失效。
  2. 时间外推验证:月粒度数据天然适合按时间切分——以 2020-12 前为训练、2021 起为验证,检验"码表改定 + 机构增长"带来的漂移。
  3. 多机构 vs 单机构双设计:多机构模型(泛化)与单机构大样本模型(精度)结果差异本身就是报告项(对应金标准库中"机构规模与泛化损失"的发现)。
  4. 冻结提取集:Ad Hoc 交付即冻结;重跑必须声明新的提取日期与机构数快照。
  5. 基线期 lookback:定义事件日期(首次诊断/首次处方)后,向前留足 12 个月基线期(日本急性期就诊频次下 6 个月偏短),并在方法学部分报告 lookback 长度敏感性。
  6. 分析层级双轨:住院内分析用 DPC 住院日层级(院内感染、院内死亡),跨就诊分析统一到月粒度——两轨结果分开报告,不可混用时间轴。
  7. 样本量规划:以抗肿瘤药队列规模(485 机构 104 万 L01 处方患者)做事件数估算;罕见事件(发生率 < 1%)需预设欠采样 + F5 类召回优先指标。
  8. 检验子集双轨:主队列(全量账单层特征)+ 检验富集子集(约 10% 可得检验值)双轨建模,分别报告。
  9. 对照库平衡:同算式在 JMDC 复刻,效应量以"区间"而非点值呈现(PLOS ONE 2021 范式)。
  10. 合规预留:投稿前预留 TPA 审查周期(数周);方法节预写提取快照声明(提取日期、机构数、患者数)。

时间外推划分示例(与机构划分互补):

# 以码表改定为界的时间切分(2022-04 DPC 码修订)
train = df[df["service_ym"] <  "2022-04"]   # 改定前(2020 版码表为主)
test  = df[df["service_ym"] >= "2022-04"]   # 改定后(2022 版码表)
# 检查两侧码表分布差异后再做外推评估
print(train["service_ym"].str[:4].value_counts().sort_index())
print(test["service_ym"].str[:4].value_counts().sort_index())

划分反模式(MDV 数据上明确不该做的四种划分):

反模式 为什么错 正确做法
按账单行随机划分 同一患者/机构/月份的行同时进入训练与测试 机构级分组
按患者 ID 全局随机划分 忽略机构聚类(编码习惯/检验可得性泄漏) 以机构为组
按月份随机划分 未来信息进入训练(时代泄漏) 时间连续切分
训练集含 index 当月事件 直接标签泄漏 特征截断至 index 前月

§6 AI 就绪指南

§6.0 环境准备

# 环境依赖:分析 MDV 标准交付 CSV 的最小工具链
import pandas as pd            # >= 2.0
import numpy as np

# 约定:交付 CSV 为 UTF-8(日文列名时用 shift-jis 需与 MDV 确认)
# 全部示例列名为示意(实际规格以合同附件为准)
BASE = "mdv_delivery/"

# 月粒度工具函数(后续各节复用)
def shift_ym(ym: str, k: int) -> str:
    """YYYY-MM 月份平移:shift_ym("2022-04", -12) -> "2021-04" """
    y, m = int(ym[:4]), int(ym[5:7])
    t = y * 12 + (m - 1) + k
    return f"{t // 12:04d}-{t % 12 + 1:02d}"

§6.1 数据载入与基础质控

# 载入三主表(示意列名)
disease = pd.read_csv(BASE + "disease_table/diagnosis.csv",      dtype=str)
rx      = pd.read_csv(BASE + "procedure_table/prescription.csv", dtype=str)
lab     = pd.read_csv(BASE + "lab_table/lab_results.csv",        dtype=str)
pat     = pd.read_csv(BASE + "disease_table/patient_master.csv", dtype=str)

def basic_qc(df, name, pid="patient_id", ym="service_ym"):
    """MDV 交付数据的四步基础质控"""
    print(f"[{name}] 行数={len(df):,}  患者数={df[pid].nunique():,}")
    # 1) 机构数快照(复现性锚点:必须写入论文)
    n_hosp = df["hospital_id"].nunique()
    print(f"  机构数={n_hosp}")
    # 2) 性别/年龄 sanity check(文献报告过极端录入错误)
    print(f"  性别取值={df['sex'].value_counts().to_dict()}")
    # 3) 月份范围与覆盖(月粒度校验:任何日级字段出现即为异常)
    print(f"  月份范围={df[ym].min()} ~ {df[ym].max()}")
    # 4) 关键码缺失率
    code_col = "icd10_like_code" if name == "disease" else "atc_code"
    print(f"  {code_col} 缺失率={df[code_col].isna().mean():.2%}")

basic_qc(disease, "disease"); basic_qc(rx, "rx"); basic_qc(lab, "lab")

年度订阅/持续交付场景下的增量读取模式(按月份分区追加):

import glob
from functools import reduce

def load_incremental(pattern: str, since: str = "2020-04") -> pd.DataFrame:
    """按月份分区的交付 CSV 逐月读入并追加;since 之后的数据。
    每月文件独立完整,追加前先去重(机构键 + 患者键 + 月 + 行型)"""
    files = sorted(glob.glob(pattern))
    frames = []
    for f in files:
        if f.split("/")[-1][:7] < since:     # 文件名约定:YYYY-MM_xxx.csv
            continue
        df = pd.read_csv(f, dtype=str)
        frames.append(df)
    out = pd.concat(frames, ignore_index=True)
    key = ["hospital_id", "patient_id", "service_ym", "record_type", "row_seq"]
    if all(c in out.columns for c in key):
        out = out.drop_duplicates(subset=key, keep="last")
    return out
# 增量读取必须记录"文件清单 + 各文件行数"作为提取清单的一部分(坑点 8 联动)

§6.2 队列构建:incident 2 型糖尿病(月粒度)

# 目标:以"首次 2 型糖尿病伤病名记录"为入组的 incident cohort
# 关键点:月粒度下的同月事件歧义与 lookback 期控制
T2DM = {"E11"}  # 日本标准病名マスタ中 2 型糖尿病码族(示意)

dm = (disease[disease["icd10_like_code"].isin(T2DM)]
      .groupby("patient_id")["service_ym"].min().rename("first_dm_ym"))

# lookback 12 个月:首诊前 12 个月必须在库(否则无法确认 incident)
# 实现:用该患者最早就诊年月充当"入库月"代理
first_seen = (disease.groupby("patient_id")["service_ym"].min()
              .rename("first_seen_ym"))
cohort = pd.concat([dm, first_seen], axis=1).dropna()

def ym_diff(a, b):
    """YYYY-MM 字符串差(月数)"""
    ya, ma = int(a[:4]), int(a[5:7]); yb, mb = int(b[:4]), int(b[5:7])
    return (ya - yb) * 12 + (ma - mb)

cohort = cohort[cohort.apply(lambda r: ym_diff(r["first_dm_ym"],
                                               r["first_seen_ym"]) >= 12, axis=1)]
print(f"incident T2DM 队列:{len(cohort):,} 人(lookback≥12 月)")

队列 attrition(递减)报告——审稿人最常要求的方法学要素,建议随代码自动生成:

def attrition_report(steps: dict):
    """CONSORT 式递减表:每一步的排除人数与剩余人数"""
    prev = None
    print("步骤 | 剩余人数 | 本步排除")
    print("-----|----------|----------")
    for name, n in steps.items():
        excl = "-" if prev is None else f"{prev - n:,}"
        print(f"{name} | {n:,} | {excl}")
        prev = n

attrition_report({
    "T2DM 任一记录":      (disease["icd10_like_code"].isin(T2DM)).sum(),
    "有首次记录的患者":    dm.shape[0],
    "加 lookback≥12 月":  len(cohort),
    "(后续)年龄过滤等":  len(cohort),   # 按研究设计续写
})

§6.3 暴露与结局算式(claim-based algorithms)

# 暴露:ACEI/ARB 类降压药新用户(ATC C09),new-user design
ATC_C09 = ("C09",)
rx["atc3"] = rx["atc_code"].str[:3]
htn_rx = rx[rx["atc3"].isin(ATC_C09)]
first_exp = (htn_rx.groupby("patient_id")["service_ym"].min()
             .rename("first_c09_ym"))

# 结局示例 1(有检验子集):eGFR 下降 —— 仅在提供检验值的机构子集内可定义
# 结局示例 2(全队列):药物切换/中断 —— 用处方月序列定义
#   持续用药 = 连续月序间隔 <= 1 个月(月粒度容忍窗口)
def persistence_months(series_ym):
    ys = sorted(series_ym)
    gaps = [ym_diff(b, a) for a, b in zip(ys, ys[1:])]
    return sum(1 for g in gaps if g <= 1) + 1

# 结局示例 3:ICI 相关爱伤肺炎(复刻 Cancer Immunol Immunother 2022 算式的月粒度版)
#   同月同时满足:肺炎伤病名(J13-J18)+ 全身激素处方 + 抗生素处方
pneu = set(disease.loc[disease["icd10_like_code"].str.startswith(("J13","J14",
          "J15","J16","J17","J18")), "patient_id"])
steroid = set(rx.loc[rx["atc_code"].str.startswith("H02"), "patient_id"])
abx     = set(rx.loc[rx["atc_code"].str[:3].isin(["J01"]), "patient_id"])
ici_pneumonitis_proxy = pneu & steroid & abx   # 月粒度近似,严格版需同月同行级对齐
print(f"粗代理算式命中:{len(ici_pneumonitis_proxy):,} 人(仅演示,非验证算式)")

剂量与 DDD 换算——用法用量在文本字段时的标准处理路径:

# 用法用量文本(如 "1日2回 1回500mg")→ 日剂量(mg/day)
import re
def parse_daily_mg(text: str) -> float | None:
    if not isinstance(text, str):
        return None
    m = re.search(r"1回\s*([0-9.]+)\s*mg", text)
    f = re.search(r"1日([0-9]+)回", text)
    if m and f:
        return float(m.group(1)) * int(f.group(1))
    return None   # 解析失败 → 缺失指示,禁止静默填 0

rx["daily_mg"] = rx["usage_text"].map(parse_daily_mg)
print(f"解析成功率:{rx['daily_mg'].notna().mean():.2%}")
# DDD(WHO Defined Daily Dose)换算:daily_mg / 该药 DDD 值
# 注意:解析失败率过高时应改用"处方天数 + 数量"的粗粒度暴露强度分层

§6.4 按机构分组的划分与泄漏防线

from sklearn.model_selection import GroupShuffleSplit

# 泄漏防线 1:机构级划分(编码习惯/检验可得性不跨集)
gss = GroupShuffleSplit(n_splits=1, test_size=0.15, random_state=42)
feat = build_features(cohort)          # 研究者自定义特征管线(略)
label = build_label(cohort)            # 研究者自定义标签(略)
hosp = feat["hospital_id"]
tr_val, te = next(gss.split(feat, label, groups=hosp))
gss2 = GroupShuffleSplit(n_splits=1, test_size=0.176, random_state=42)
tr, va = next(gss2.split(feat.iloc[tr_val], label.iloc[tr_val],
                         groups=hosp.iloc[tr_val]))
assert not (set(hosp.iloc[tr]) & set(hosp.iloc[te])), "机构跨集泄漏!"

# 泄漏防线 2:基线特征仅用 index_ym 当月及之前
#   (Biol Pharm Bull 2026 ICI 心肌炎研究的做法:预测变量全部限定在 index 日期之前)
# 泄漏防线 3:同月事件歧义——index 月当月发生的"结局"应视为竞争性歧义并做敏感性分析

时间维度的第三道防线:把时间外推作为"准外部验证",检验码表改定与机构增长带来的漂移。

# 时间外推 + 快照绑定:任何指标必须与其数据快照一起报告
def with_snapshot(metrics: dict, extract_date: str, n_hosp: int, n_pat: int):
    """把提取快照三要素绑定进结果字典(坑点 8 的工程解)"""
    metrics["snapshot"] = {"extract_date": extract_date,
                           "hospitals": n_hosp, "patients": n_pat}
    return metrics

# 机构级划分(防编码习惯泄漏)× 时间外推(防时代漂移)双划分矩阵
#   训练:< 2022-04 且 非测试机构 ;测试:>= 2022-04 且 测试机构
#   两个维度都不重叠,才能同时支撑泛化与复现声明

§6.5 月度特征工程与生存分析替代终点

月粒度数据的特征与终点设计有一套专属模式:

# 1) 基线 12 个月特征矩阵:全部仅用 index 月之前的记录(月粒度安全)
def build_baseline_features(cohort, disease, rx, index_ym_col="index_ym"):
    """每个患者基线 12 个月内的月度强度特征。
    注意:逐患者循环仅为可读性示意;生产请用 merge + groupby 向量化。"""
    feats = {}
    for pid, row in cohort.iterrows():
        idx = row[index_ym_col]
        lo  = shift_ym(idx, -12)                 # index 前 12 个月
        hd = disease[(disease["patient_id"] == pid)
                     & (disease["service_ym"] >= lo)
                     & (disease["service_ym"] <  idx)]
        hr = rx[(rx["patient_id"] == pid)
                & (rx["service_ym"] >= lo)
                & (rx["service_ym"] <  idx)]
        feats[pid] = {
            "n_dx_months":  hd["service_ym"].nunique(),   # 就诊月数(医疗强度代理)
            "n_unique_dx":  hd["icd10_like_code"].nunique(),
            "n_rx_months":  hr["service_ym"].nunique(),
            "n_atc3":       hr["atc3"].nunique(),
        }
    return pd.DataFrame.from_dict(feats, orient="index")
# 2) TTNT-D:time to next treatment or death 的月粒度实现
#    背景:院外死亡不可观测 → "下一次同靶点治疗或库内死亡"合并为终点
#    (Takada 2026 在 MDV+JMDC 双库使用的替代终点)
def ttntd_months(rx, cohort, target_atc3, gap=2):
    """目标药物月序列中间隔 > gap 个月视为治疗终止;观察期末视为删失。
    返回:事件时间(月)+ 事件指示(1=终止/死亡,0=删失)"""
    out = {}
    tgt = rx[rx["atc3"].isin(target_atc3)]
    for pid, g in tgt.groupby("patient_id"):
        if pid not in cohort.index:
            continue
        start = cohort.loc[pid, "index_ym"]
        ys = sorted(y for y in g["service_ym"].unique() if y >= start)
        if not ys:
            continue
        event_t, event = None, 0
        for a, b in zip(ys, ys[1:]):
            if ym_diff(b, a) > gap:
                event_t, event = ym_diff(b, ys[0]), 1
                break
        out[pid] = {"ttntd_months": event_t, "event": event}
    return pd.DataFrame.from_dict(out, orient="index").dropna(how="all")

设计要点:删失时间应封顶在数据期末(提取快照最后一个月),并对 gap ∈ {1, 2, 3} 做敏感性分析——月粒度下"间隔 1 个月"可能只是该月无账单记录而非停药。

TTNT-D 类替代终点的三条报告纪律:

  1. 事件定义透明:终止 = 间隔超阈值的月序断点,阈值与敏感性分析一并写入方法节;
  2. 删失规则显式:观察期末、转院失访(表现同终止,需在初诊机构锚定下剔除)、死亡(库内可见时)三类删失分开计数;
  3. 与临床终点对齐:TTNT-D 结果解释需回连临床语境(如 CDK4/6 切换研究中的 PFS 语义),避免"替代终点漂移"。

§6.6 常见坑点

⚠️ 坑点 1:跨机构患者不链接——重复计数与转院失访(分类:偏倚陷阱)

问题:MDV 每家机构有独立匿名 ID,同一患者在不同机构 = 不同患者;官方 FAQ 明确"机构间不链接,无法追踪转院患者"。跨院就诊的患者被重复计数,转院即失访。

症状:队列规模与患病率虚高或难以解释;随访期被转院截断导致生存曲线系统性高估事件率或低估暴露时长;两机构重复提取同一患者做"独立验证"实为伪独立。

解决:简单方法——将分析限定在"初诊机构"内,首次事件后只追踪院内记录,明确声明"院内随访";进阶方法——以首次 DPC 住院机构为锚,剔除在观察期内出现于多机构的高风险期患者做敏感性分析;SOTA 方法——MDV + JMDC 双库三角验证(JMDC 可跨机构追踪同一保险证患者),报告两库估计的区间而非点值(PLOS ONE 2021 疫苗背景发生率研究的范式)。

参考:https://en.mdv.co.jp/ebm/service/mdvanalyzer/ ;PLOS ONE 2021(DOI 10.1371/journal.pone.0256379);PMC8932467。

⚠️ 坑点 2:院外死亡不可观测——"全因死亡"标签是陷阱(分类:标签理解)

问题:账单数据只有保险诊疗记录。患者在门诊/院外死亡后不再产生账单,约 80% 发生于院外的死亡在库内完全不可见,亦无死因。

症状:直接用"库内死亡记录"做全因死亡标签会严重低估;用"失访即死亡"假设则严重高估;死亡预测模型看似 AUROC 不错,实际学到的是"住院死亡 + 长期失访"的混合体。

解决:简单方法——只研究院内死亡(出院摘要转归字段),并把研究问题改写为"院内死亡率";进阶方法——改用治疗可持续性类替代终点:TTNT-D(time to next treatment or death)在肿瘤真实世界研究中已被用于双库对比(MDV n=1,088);SOTA 方法——与区域癌症登记或健保死亡记录做个体链接(需合同与伦理审批,MDV 无公开链接机制),或将生存终点换成再入院/治疗中断等账单可观测事件。

参考:PMC8932467;Takada et al. 2026 预印本(DOI 10.21203/rs.3.rs-8606189/v1)。

⚠️ 坑点 3:事件时间只有月粒度——日级窗口全部失效(分类:预处理陷阱)

问题:标准交付中事件发生时间仅记录到"年月"(YYYY-MM),无日级时间戳(PMC8932467 明确指出 “Only month of event occurrences are provided”);住院内部虽有住院日层级,但跨就诊的日级时间轴不存在。

症状:30 天再入院、30 天死亡率、7 天内同药复用等经典日窗定义无法实现;生存分析的时间单位失真(Cox 模型把月当连续时间用);把同月多事件按任意排序会改变时序特征。

解决:简单方法——一切时间特征与窗口以"月"为最小单位,窗口定义为自然月(如"3 个月内"= 3 个自然月),方法学明确写出;进阶方法——把同月事件视为同月内不可分辨,做 ±1 月窗口敏感性分析;SOTA 方法——住院内结局用 DPC 住院日层级做院内日级分析(人工关节感染、院内死亡等),院外结局全部月粒度化,两套分析分开报告。

参考:PMC8932467;https://en.mdv.co.jp/ebm/service/dataset 。

⚠️ 坑点 4:检验值仅约 10% 可得且机构集合逐年漂移(分类:预处理陷阱)

问题:血液检验数据仅部分机构在自愿合同下提供——系统性综述估计仅约 10% 患者有检验值;HbA1c、eGFR 等关键协变量在多数机构缺失;且提供检验数据的机构名单受独立合同约束,可能逐年终止或新增。

症状:用检验值做特征/协变量的模型训练集被"有检验机构"选择性偏置;跨年队列规模跳变让审稿人误以为数据错误;以"某月无 HbA1c"推断"未测血糖"是错误推断。

解决:简单方法——主分析只用账单层变量,检验值作为富集敏感性分析子集;进阶方法——构建"机构 × 年份 × 检验项目"可得性矩阵,把可得性作为分层/协变量,缺失用缺失指示 + 多重插补;SOTA 方法——在机构级混合效应框架中把"检验可得性倾向"建模,量化选择偏倚对效应估计的影响。

参考:PMC9712845(约 10% 口径);PMC8932467。

⚠️ 坑点 5:处方与诊断无链接 + lookback 不足 = 适应证混淆与标签泄漏(分类:数据泄漏)

问题:账单结构中处方行与伤病名没有外键链接(PMC8932467 指出 “absence of data linkage between prescription and diagnosis”),只能靠"同一患者同一月份"上下文近似关联;若 index 日期后的记录进入基线特征,构成直接标签泄漏。

症状:"某药治疗某病"的暴露组天然混入已结局患者(confounding by indication);特征中混入 index 月之后的处方/诊断导致模型 AUROC 虚高;incident user 分析因 lookback 太短混入 prevalent user。

解决:简单方法——特征构建时硬性截断:只用 index 年月当月及之前的记录(Biol Pharm Bull 2026 ICI 心肌炎研究的做法);进阶方法——new-user design:以首次处方定义 index,前面留 ≥ 12 个月 lookback 确认 incident;SOTA 方法——active-comparator new-user 设计(两种候选药的新用户对比),并用倾向评分处理残余混淆,同时报告"月粒度同月歧义"敏感性分析。

参考:PMC8932467;https://www.jstage.jst.go.jp/article/bpb/49/1/49_b25-00453/_html 。

⚠️ 坑点 6:日本独自编码体系——国际队列定义不能直接套用(分类:标签理解)

问题:伤病名为日本标准病名マスタ(ICD-10 对齐但含日文独自码),手术/处置为诊疗报酬点数码,住院分类为 DPC 14 位码(每 2 年改版)——均与国际 ICD-10-CM/SNOMED/DRG 不能直接互换。

症状:直接用国际文献的 ICD-10 前缀提取队列会漏检或误检(如日本病名码的副号规则);DPC 版本更迭让同一码在 2020 与 2022 年含义改变;手术率、并发症率的跨国对比系统性偏差。

解决:简单方法——用 metadata/master_tables 的病名マスタ把研究涉及的伤病名人工映射到 ICD-10/ICD-11;进阶方法——建立"DPC 版本 × 年份"对照表并在跨年分析前做码表一致性校验;SOTA 方法——复用已发表且经过验证的日语算式(如 ICI 肺炎研究:C34/J841/J849 入组 + J13-16/J18 + 激素 + 抗生素结局定义;Elixhauser/Charlson 的 ICD-10 日文适配版),并报告 PPV。

参考:PMC7738645(DPC 码结构);DOI 10.1007/s00262-022-03281-7(已验证算式示例)。

⚠️ 坑点 7:商业闭源 + TPA 审查——复现与共享的双重约束(分类:工程陷阱)

问题:数据需付费合同获取,禁止再分发;论文/会议发表前须与 MDV 签第三方披露协议(TPA)并接受材料审查。分析代码无法携带真实数据公开。

症状:审稿人或读者要求复现时无数据可用;合作研究跨机构共享提取数据违反合同;把样例数据当正库规模外推得出荒谬结论。

解决:简单方法——论文方法节公开完整队列定义(伪代码 + 码表),申请样例数据(免费注册)做代码结构演示;进阶方法——构建合成数据(synthetic data)随代码发布,保持列结构一致;SOTA 方法——在合同中预先约定"冻结提取集存档 + 联合审查快速通道",用两库(MDV + JMDC)一致性作为复现性证据链。

参考:https://en.mdv.co.jp/ebm/service/dataset (TPA 与交付流程)。

⚠️ 坑点 8:机构持续增长 + 月度快照——同一研究两个月后重跑数字不同(分类:评估误用)

问题:MDV 是无版本号的活数据库:每月月末更新、机构持续加入。机构数从 2021-09 的"覆盖急性期医院 23%"到 2025-08 的 572 家一路增长;同一提取条件在不同月份的结果必然不同。

症状:返修阶段重跑分析数字对不上原稿;两篇论文用"相同的库"得出不可比数字;把不同断面的规模数字(4,895 万 vs 5,300 万 vs 6,428 万)当作矛盾证据。

解决:简单方法——论文写明"数据提取日期、机构数、患者数快照"三要素;进阶方法——冻结提取数据集(合同约定存档),所有分析只对冻结集进行;SOTA 方法——双库三角验证报告区间(PLOS ONE 2021 范式),并把"机构数增长敏感性分析"(如仅用全程在库机构子集)作为标准补充分析。

参考:PMC8932467;PLOS ONE 2021(DOI 10.1371/journal.pone.0256379)。

§6.7 公平性与漂移评估代码

# 公平性:按年龄层与性别的性能分层(MDV 老龄占比 48%,年龄分层尤为关键)
def subgroup_auroc(df, score_col, label_col, group_col, min_n=200):
    rows = []
    for g, sub in df.groupby(group_col):
        if sub[label_col].nunique() == 2 and len(sub) >= min_n:
            rows.append((g, len(sub), roc_auc_score(sub[label_col], sub[score_col])))
    res = (pd.DataFrame(rows, columns=[group_col, "n", "auroc"])
             .sort_values("auroc"))
    return res

# 报告标准:各年龄层 AUROC 极差 > 0.05 即提示系统性偏差;
# 建议同时报告 65 岁以上/以下两组(MDV 老龄结构的自然切分点)。

# 漂移检验:机构增长与月度快照带来的患病率漂移
prev_by_year = (disease.assign(year=disease["service_ym"].str[:4])
                       .groupby("year")["patient_id"].nunique())
print((prev_by_year.pct_change().round(3) * 100).astype(str) + "%")
# 年度患者数跳变 > 15% 通常意味着大型机构新加入——
# 此时"历史 vs 现在"的患病率差异优先归因于覆盖变化而非流行病学变化

§6.8 免费样例数据端到端演示

在正式签约前,可用官网免费样例数据(§3.4)完成端到端管线验证——这是零成本试错路径:

# 样例数据五表 → 最小可运行管线(结构验证,不做任何统计推断)
import pandas as pd

SAMPLE = "mdv_sample/"          # 官网下载的样例数据目录
s_pat  = pd.read_csv(SAMPLE + "patient.csv",      dtype=str)
s_dx   = pd.read_csv(SAMPLE + "diagnosis.csv",    dtype=str)
s_pr   = pd.read_csv(SAMPLE + "procedure.csv",    dtype=str)
s_ds   = pd.read_csv(SAMPLE + "discharge_summary.csv", dtype=str)
s_lab  = pd.read_csv(SAMPLE + "lab_results.csv",  dtype=str)

# 步骤 1:确认五表主键与关联路径
print("患者表键:", [c for c in s_pat.columns if "id" in c.lower()])
print("诊断表键:", [c for c in s_dx.columns if "id" in c.lower() or "ym" in c.lower()])

# 步骤 2:打通 患者 → 诊断 → 处置 关联(样例列名与正库一致)
mini = (s_dx.merge(s_pr, on=["patient_id", "service_ym"], how="inner")
            .merge(s_pat, on="patient_id", how="left"))
print(f"关联后行数:{len(mini):,}")

# 步骤 3:月粒度聚合冒烟测试
print(mini.groupby("service_ym")["patient_id"].nunique().head())
# 通过后再设计正库提取方案(§3.0 选项 C),避免"签约后发现结构不匹配"

§6.9 评估指标代码

# 月粒度数据下的评估要点:除常规 AUROC/PR-AUC 外,建议固定报告以下四项
from sklearn.metrics import roc_auc_score, average_precision_score

def evaluate_mdv_model(y_true, y_score, groups_hosp, split_name):
    out = {}
    out["AUROC"] = roc_auc_score(y_true, y_score)
    out["PR-AUC"] = average_precision_score(y_true, y_score)
    # 1) 机构级 AUROC 分布:报告最差 10% 机构(跨机构泛化的诚实指标)
    per_hosp = (pd.DataFrame({"h": groups_hosp, "y": y_true, "p": y_score})
                  .groupby("h").filter(lambda g: g["y"].nunique() == 2)
                  .groupby("h").apply(lambda g: roc_auc_score(g["y"], g["p"])))
    out["AUROC_p10_by_hospital"] = per_hosp.quantile(0.10)
    # 2) 提取快照复述:任何结果必须绑定 (提取日期, 机构数, 患者数)
    out["snapshot"] = f"extract=YYYY-MM, hospitals={groups_hosp.nunique()}"
    print(split_name, out)
    return out

§6.10 结果解读与报告规范

MDV 研究的报告语言有行业惯例,建议在论文与内部报告中统一:

报告要素 规范表述 反例(禁止)
数据来源 “MDV hospital administration database, Medical Data Vision Co., Ltd.,提取于 YYYY-MM,含 N 家机构” “使用了全日本数据”
随访声明 “follow-up was limited to within-institution records” “患者随访至研究终点”(跨院失访未声明)
时间粒度 “events were recorded at monthly resolution; windows defined in calendar months” “30-day readmission”(月粒度下无法成立)
死亡终点 “in-hospital death” 或 TTNT-D 等替代终点 “all-cause mortality”(院外死亡不可见)
外推表述 “extrapolated estimates calibrated to MHLW patient survey”(如使用官方外推功能) 直接把库内计数说成全国发生数
复现声明 快照三要素 + 码表版本 + 合同/TPA 存在 代码引用真实数据或暗示可公开数据

另两条写作纪律:

  1. 规模数字标注断面:提及库规模时统一写"截至 YYYY-MM 累计 X,XXX 万患者(MDV 官方口径)",避免 3,800 万/4,895 万/6,428 万混用引发审稿疑问;
  2. 算式可迁移:正文码表(ICD-10 族、ATC 类)+ 窗口定义写成可复用规格,便于 JMDC 复刻与 TPA 审查(审查重点关注算法与披露内容,规格清晰可显著缩短周期)。

§7 质量评估与局限性

§7.1 偏倚结构

偏倚类型 机制 方向 缓解
覆盖偏倚 仅急性期 DPC 病院;轻症/初级保健缺位 疾病负担估计向重症偏 与 JMDC(含诊所)三角验证
机构选择偏倚 参与 MDV 数据提供的 DPC 病院非随机(约 30%);检验子集更偏 编码质量、检验可得性偏倚 机构级分层与敏感性分析
编码偏倚 主诊断选择受报销激励;DPC 病院有编码质控但非为研究设计 疾病特异性 DPC 码与伤病名码交叉验证
重复计数偏倚 跨院不链接,患者被重复计数 队列规模/患病率虚高 初诊机构锚定(坑点 1)
失访偏倚 转院即失访;死亡后账单终止 随访截断 院内随访声明 + 替代终点
时窗偏倚 月粒度时间戳 时序特征模糊 自然月窗口(坑点 3)
漂移偏倚 机构增长 + 码表 2 年一改 历史快照不可比 冻结提取 + 码表版本对照

§7.2 推荐敏感性分析清单

投稿前建议将以下 8 项敏感性分析纳入研究方案(与 §6.6 坑点一一对应):

  1. 初诊机构锚定 vs 全样本(坑点 1)——量化重复计数对队列规模与效应量的影响;
  2. 院内死亡 vs TTNT-D vs 治疗中断(坑点 2)——三种终点的方向一致性检查;
  3. 月窗 ±1 月偏移(坑点 3)——窗口定义对事件率的影响范围;
  4. 有检验子集 vs 全量账单层(坑点 4)——选择性偏倚的可得性敏感度;
  5. index 当月排除 vs 保留(坑点 5)——泄漏敏感性的硬检验;
  6. 码表版本分层(坑点 6)——2020/2022/2024/2026 改定断点的效应稳定性;
  7. 全程在库机构子集 vs 全机构(坑点 8)——机构增长漂移的上下界;
  8. JMDC 双库复刻(§8.2)——外部三角验证,报告效应量区间。

§7.3 与同类数据库的 DAIMS 对照

DAIMS 维度 MDV(本页) MIMIC-III(金标准开放库) JMDC
唯一标识与链接 ⚠️ 机构内唯一,跨院不链接 ✅ 三级主键院内完备 ✅ 同一保险证跨机构可追踪
时间粒度 ❌ 月(住院内有日层级) ✅ 秒级床旁时间戳 ⚠️ 就诊日级(多数分析到月)
标签/结局 ❌ 全部自建 claim 算式 ✅ 死亡等明确标签列 ⚠️ 与 MDV 类似需自建
数据字典与合规 ✅ 规格书 + 合同 + TPA ✅ 官方文档 + 开源许可 ✅ 规格书 + 合同
生态与基准 ⚠️ 论文生态强、无公共基准 ✅ 社区基准成熟 ⚠️ 同 MDV

解读:MDV 的 DAIMS 短板集中于"粒度与链接"两类,与 JMDC 高度同构——这不是某一家公司的实现问题,而是日本保险账单体系(レセプト制度)的系统性约束;反过来,其"文档/合规"维度的工业级表现(第 9/10/22/24 项全绿)也源于同一制度土壤。选择时本质是在"制度可靠性"与"研究自由度"之间做权衡。

§7.7 DAIMS 数据集质量评估

# 检查项 状态 说明
1 数据为宽格式(每行一个样本/事件) ✅ 三主表均为账单行结构,患者级聚合可自建
2 有唯一标识符列 ⚠️ 患者ID 机构内唯一;跨机构不链接,无全局主键
3 无 Unicode 或特殊字符 ⚠️ 日文全角字符、片假名用法用量文本需清洗
4 无重复行 ⚠️ 行本身不重复,但同一患者跨机构被重复计数
5 缺失值已识别并编码 ⚠️ 结构性缺失(不在库)与选择性缺失(检验)需区分处理
6 标签列被明确标识 ❌ 无预置标签/结局列,全部结局需自建 claim 算式
7 已对罕见类别(<3%)进行分组 ⚠️ 病名码/诊疗报酬码长尾巨大,需自行归组(如 CCS 日文适配)
8 偏倚已系统评估 ⚠️ 覆盖/编码/失访偏倚明确但无官方量化
9 提供完整数据字典 ✅ 标准规格书 + 码表 master 随交付提供
10 缺失机制有解释 ✅ 官方 FAQ 与文献对"保险覆盖内数据"边界解释充分
11 包含设备/影像记录 ❌ 无影像、无设备原始数据(仅检查项目账单行)
12 特征共线性已处理 ⚠️ DPC 码内嵌诊断+手术+CC,与伤病名表高度重叠,需防共线
13 编码体系有跨标准映射 ⚠️ ATC 国际互通;病名/处置码映射需自建(§2.2)
14 时间戳粒度足够 ❌ 事件时间仅到月,日级时序分析不可行(院内除外)
15 给出划分建议 ✅ 官方无划分,但数据结构清晰指向机构级分组(§5)
16 讨论数据泄漏风险 ⚠️ 文献示范了 index 前截断,但无官方泄漏指南
17 标签分布已报告 ⚠️ 无官方标签;各研究自行报告(类别极不平衡需欠采样)
18 测量偏倚已评估 ⚠️ 检验子集选择偏倚明确,量化缺失
19 给出外部验证建议 ✅ MDV+JMDC 双库范式成熟(PLOS ONE 2021 等)
20 有版本记录 ⚠️ 无版本号;月度快照 + 码表 2 年一改需自记
21 提供官方预处理脚本 ❌ 无官方脚本;样例数据仅展示结构
22 合规要求明确 ✅ 合同 + TPA 流程清晰,匿名加工合规背景完备
23 多模态对齐支持 ❌ 单一模态(账单+检验),无影像/文本/组学可对齐
24 去标识化方法已披露 ✅ 机构端专用工具匿名加工,符合日本匿名加工标准

DAIMS 评分:12.5 / 24

评分解读:中等偏下——作为商业数据库,其合规、文档与码表管理达到工业级水准(第 9/10/22/24 项全绿),但"月粒度时间戳、跨院不链接、无预置标签、单模态"四项硬伤(第 6/14/23 项)决定了它不适合需要细粒度时序与富模态的 AI 研究,更适合以 claim 算式为骨架的队列与预测研究。

与金标准开放库对照:MIMIC-III 评 18.5/24(生态顶尖但年代陈旧),MDV 评 12.5/24——两者扣分维度几乎不重叠:MIMIC 输在"旧",MDV 输在"管理型数据的粒度与链接性"。这不是质量缺陷而是数据母体(保险账单 vs 床旁监护)的本质差异。

对你意味着什么:如果你做药物流行病学、治疗模式、上市后安全或"账单特征 + 机器学习"的风险预测(如 ICI 不良事件预测),MDV 是日本场景下样本量与代表性最优的选择之一,且流程合规清晰;如果你需要日级时序、真实生存终点、跨机构追踪或公开基准比较,请直接考虑 JMDC(跨机构可追踪、有体检数据但老龄化代表性不足)、NDB(全人群但颗粒粗)、DPC 退院患者调查(住院细节)或院内 EHR,或采用双库三角验证设计。

§7.8 外部验证矩阵

外部数据集/场景 运营方 评估任务 与 MDV 的关系 关键发现
JMDC JMDC Inc. 背景发生率、ICI 安全性、血脂代谢等 双库三角验证首选(可跨机构追踪、有体检数据、13M 患者) PLOS ONE 2021 用 MDV+JMDC 给出 43 种临床背景发生率的区间估计;两库一致性时认为估计可靠
NDB(全国医疗数据库) 厚生劳动省 全人群流行病学 人口全查 vs 急性期医院样本 NDB 覆盖全员但申请门槛高、颗粒粗,用于校准 MDV 外推
DPC 退院患者调查 厚生劳动省/DPC 研究班 住院结局、DPC 验证 同一制度母体的官方调查 可验证 DPC 码编码与转归字段质量
院内 EHR/検査 DB 各机构 严重度、检验真值 补账单盲区 ICI 心肌炎研究整合 BMI 与 Barthel 指数即为此类混合设计
同库时间外推 MDV 自身 模型漂移 按年份切分的"准外部"验证 检验码表改定与机构增长的影响(§6.4)

§8 基准性能与生态

§8.1 代表性研究

MDV 无公开排行榜;其"基准"是由已发表研究构成的证据生态。下表为可复现基准数字的代表作:

研究 任务 队列规模 方法 关键数字 发表
ICI 相关爱伤肺炎(NSCLC + ILD) 安全性比较 3,520 万患者库;新诊断肺癌 + ILD 队列 回顾性队列,时变 Cox ICI 组肺炎风险显著高于化疗;以 J841/J849 + J13-18 算式定义结局 Cancer Immunol Immunother, 2022
ICI 心肌炎早期预测 ML 风险预测 485 机构 / 104 万 L01 处方患者 LightGBM + Random Forest,欠采样 + bagging,F5 优化 AUROC ≈ 0.63(探索级);SHAP 显示 ICI 联用为最重要变量 Biol Pharm Bull, 2026
ICI 甲状腺功能减退预测 ML + 外部验证 MDV n=1,786(对照 JMDC n=1,083) Elastic Net 等机器学习 AUC 0.71-0.73 跨库一致;基线 TSH 与白蛋白为关键预测因子;白蛋白 ≥ 3.5 g/dL 组 TTNT-D 15.3 vs 6.2 个月 2026 预印本(10.21203/rs.3.rs-8606189/v1)
Ipilimumab 低剂量制剂引入 药物利用 2020-11 至 2023-10 连续供库机构 MDV analyzer 处方量/药费序列分析 20 mg 制剂上市后处方量与费用结构变化的全国画像 BPB Reports, 2025
CDK4/6 抑制剂切换 治疗序列 13,284 例转移性乳腺癌 回顾性队列 后线切换模式与结局的真实世界证据 Breast Cancer, 2025
疫苗背景发生率 方法学范式 MDV + JMDC 双库 43 种临床背景发生率区间估计 两库一致性作为"真值区间"评估范式 PLOS ONE, 2021

跨研究复现的三点注意:

  1. 数字不可横向比较:各研究的机构数、数据断面(3,520 万/4,895 万/6,428 万等)与码表版本不同,效应量差异可能来自快照而非人群;
  2. 方法学共同骨架:new-user design + 月粒度窗口 + index 前特征截断 + 双库验证——这是 MDV 研究群的"隐性基准";
  3. 事件率参考:ICI 心肌炎约 1% 发生率下 AUROC 仅 0.63 的结果提示:账单特征对细粒度不良事件的预测上限有限,设计目标应放在风险分层而非精准预测。

§8.2 双库三角验证范式

日本真实世界研究已形成事实标准:MDV(急性期医院账单)+ JMDC(健保组合谱系、可跨机构追踪)双库一致性作为稳健性证据。要点:

  1. 两库覆盖人群互补(MDV 偏重症老年,JMDC 偏在职中青年),估计一致时可信度大增;
  2. 两库均为月粒度 + 商业闭源 + 院外死亡不可见——共性局限在双库设计中依然存在(如死亡标签),三角验证不能消除只能揭示;
  3. 同类扩展:需要全人群时加 NDB,需要住院细节时加 DPC 退院患者调查,需要临床细节时加院内 EHR。

双库复刻五步法(MDV → JMDC):

  1. 同一算式:队列定义、暴露窗口、结局算式写成语言无关的规格文档;
  2. 各自码表:MDV 病名マスタ码 vs JMDC 的 ICD-10/レセプト电算处理码,分别映射到统一中间标准(ICD-10 或 SNOMED);
  3. 相同窗口:统一月粒度窗口与 lookback 长度;
  4. 效应量森林图:两库点估计并排 + 区间,而非只报告各自"最优"结果;
  5. 局限联合声明:两库共性局限(月粒度、院外死亡缺失、商业闭源)单独成段,防止审稿人误认为双库已消除这些偏差。

§8.3 研究产出与生态快照

  • 论文规模:官方口径 700+ 篇已支持发表;截至 2021-03,PubMed 检索 “Medical data vision” 得 68 篇(JMDC 105 篇),此后随肿瘤免疫治疗真实世界研究热潮快速增长。
  • 用户构成:制药企业(市场、PMS、药政问答)、医疗器械厂商、学术界与公共研究机构;MDV analyzer 支持药政申报材料与医师会议用途(需 TPA)。
  • 外推能力:官方提供全国外推功能(基于厚劳省患者调查校准),横断面疾病负担可表述为"全国估计"。
  • 联盟与扩展:与 DeNA 联盟扩展健保组合数据(约 1,900 万级);自营 PHR 服务"カルテコ"收集 opt-in 个人数据,为未来链接个人生命周期数据预埋。
  • 社区生态:无公开基准竞赛、无官方 GitHub、无公共排行榜——学术生态以论文引用与药政提交为主,社区资源远弱于 MIMIC/eICU 等开放库。

§8.5 文献跟踪与检索建议

MDV 无统一标识(无 DOI),文献跟踪需要组合检索式:

PubMed:  "Medical Data Vision"[All Fields]
          OR ("MDV"[All Fields] AND ("DPC"[All Fields] AND Japan[All Fields]))
补充:     PMC 全文检索 "Medical Data Vision"(方法学细节多在正文/附录)
日文库:  医中誌(Ichushi-Web)检索 "医療データビジョン"——日文研究比英文更早更多
交叉:    顺藤摸瓜 JMDC 检索(两库常同团队、同算式发表,可互相引用算式)

跟踪要点:

  1. 固定团队值得关注:冈山大学(Zamami/Tanioka 组)、东京医科齿科(Fushimi 组)等持续产出 MDV 研究,其算式经过验证可直接复用;
  2. 引用 MDV 的论文常不写规模断面——引用其数字时务必回到原文核对提取时间;
  3. MDV 官网 Publication 列表(官方口径 700+ 篇)适合覆盖度检查,但不含发表后的更正/撤稿信息,终稿前应逐篇复核 PubMed 状态。

§8.4 基于 MDV 的研究设计检查清单

# 检查项 对应章节/坑点
1 提取日期/机构数/患者数三要素快照写入方法节 坑点 8
2 声明"机构内随访",跨院不可追踪 坑点 1
3 死亡终点改为院内死亡或替代终点(TTNT-D) 坑点 2
4 所有时间窗以自然月定义并做 ±1 月敏感性 坑点 3
5 检验值可得性矩阵与选择性偏倚声明 坑点 4
6 特征 index 截断 + lookback ≥ 12 个月 坑点 5
7 码表版本对照表(2020/2022/2024/2026 改定) 坑点 6
8 TPA 审查周期预留 + 代码随合成数据发布 坑点 7
9 机构级 GroupShuffleSplit + 时间外推双划分 §5 / §6.4
10 年龄/性别分层公平性报告(65+ 切分) §6.7
11 JMDC 双库复刻或区间式报告 §8.2
12 DAIMS 自评(本页 §7.7 可作为模板) §7.7

§9 相关资源与引用

§9.1 官方资源

§9.2 延伸阅读路径

按研究阶段推荐的最小阅读集:

  1. 立项前(判断可行性):本页 §1.2 适用场景 → §3.5 日本库对比 → PMC8932467(双库方法综述);
  2. 方案设计(写研究方案):§3.6 提取设计模式 → §5 划分建议 → PLOS ONE 2021(三角验证范式)→ Hayashida 2021(DPC 制度);
  3. 开工前(管线开发):§3.4 样例数据 → §6.8 端到端演示 → §6.6 全部坑点;
  4. 投稿前(审查与合规):§8.4 检查清单 → §6.10 报告规范 → 合同附件与 TPA 流程。

官方 Publication 页(en.mdv.co.jp 的 Publication 栏目)持续更新已发表研究列表,是跟踪 MDV 研究生态最权威的入口。

§9.3 核心文献 BibTeX

@article{hayashida2021dpc,
  author  = {Hayashida, Kenshi and Murakami, Genki and Matsuda, Shinya and Fushimi, Kiyohide},
  title   = {History and Profile of Diagnosis Procedure Combination ({DPC}): Development of a Real Data Collection System for Acute Inpatient Care in {Japan}},
  journal = {Journal of Epidemiology},
  year    = {2021},
  volume  = {31},
  number  = {1},
  pages   = {1--11},
  doi     = {10.2188/jea.JE20200288}
}

@article{yamamoto2026icim,
  author  = {Yamamoto, Reina and Hamano, Hirofumi and Nakagomi, Koki and Uehara, Takashi and others},
  title   = {Exploratory Analysis for Development Predictive Models of Immune Checkpoint Inhibitor-Induced Myocarditis Using a Nationwide Claims Database},
  journal = {Biological \& Pharmaceutical Bulletin},
  year    = {2026},
  volume  = {49},
  number  = {1},
  note    = {b25-00453;485 机构 / 104 万抗肿瘤药处方患者}
}

@article{takada2026albumin,
  author  = {Tanioka Takada, Kenji and Tanioka, Maki and Zamami, Yoshito and Maeda, Yoshinobu},
  title   = {Serum Albumin Predicts Immune-Related Adverse Events and Outcomes in Non-Small Cell Lung Cancer},
  journal = {Research Square preprint},
  year    = {2026},
  doi     = {10.21203/rs.3.rs-8606189/v1}
}

@article{nishina2025cdk46,
  author  = {Nishina, Takuya and Tanioka, Maki and Takada, Kenji and Toyooka, Shinichi and others},
  title   = {Clinical significance on switching {CDK4/6} inhibitors among 13,284 patients with metastatic breast cancer},
  journal = {Breast Cancer},
  year    = {2025}
}

@misc{mhlw_dpc,
  author       = {{厚生劳动省 医療課}},
  title        = {{DPC 制度(DPC/PDPS)の概要と基本的な考え方}},
  howpublished = {\url{https://www.mhlw.go.jp/file/05-Shingikai-12404000-Hokenkyoku-Iryouka/0000142247.pdf}},
  year         = {2010}
}

@misc{mdv_official,
  author       = {{Medical Data Vision Co., Ltd.}},
  title        = {{MDV EBM insight}: Dataset / {MDV} analyzer 服务页面},
  howpublished = {\url{https://en.mdv.co.jp/ebm/}},
  year         = {2026}
}

§10 AI 使用声明卡

§10.1 AI 模型使用

AI 模型 版本 用途
deep-model(WorkBuddy) 2026-09 初稿生成:INFOBOX 数据汇编、§1-§9 结构化写作、§6 代码示例生成、JSON-LD 构建
WebSearch(多源检索) 2026-09-17 5 组检索:MDV 官网规模与 FAQ、PubMed/PMC 代表研究、厚生劳动省 DPC/PDPS 制度文件、商业获取流程、局限性与坑点文献

§10.2 AI 参与范围

AI 参与范围:初稿生成 + 资料整理 + 代码生成 + 格式化排版。

AI 在本页面的工作中负责:(1) 从 MDV 官网(日文/英文)、厚生劳动省制度文件、J-STAGE/PMC 已发表研究中整理结构化信息;(2) 生成 §6 的 Python 代码示例(月粒度队列构建、claim 算式、机构级划分);(3) 系统化组织 §6.5 的 8 个坑点与 §7.1 偏倚表;(4) 执行 G1/G2/G3 排版规范与中英文格式标准化;(5) 构建 §C 统一 JSON-LD @graph。

§10.3 输入来源

  1. MDV 官网数据规模页(6,428 万患者、2026-08 末、数据期间 2008-04 起)
  2. MDV 英文 EBM 站 Dataset / MDV analyzer / All-Therapeutic Area 服务页与 FAQ(覆盖比例、更新节奏、TPA、英文交付)
  3. MDV 官方专栏访谈(EBM 事业 2007 年起步、15 病院/100 万人 → 500 病院/1,000 万人;DPC 4,300 万+ 患者口径;次世代医疗基盘法非认定说明)
  4. MDV SaMD 解说专栏(5,300 万患者 / 572 家医院,2025-08 末)
  5. Hayashida et al. J Epidemiol 2021(DPC 码结构、制度史)
  6. 厚生劳动省 DPC/PDPS 概要与平成 30 年度改定资料(3 阶段定额、包括/出来高范围、病院要件、1,685/1,786 家覆盖口径)
  7. PMC8932467(MDV vs JMDC 双库综述:38M/23%、约 3 个月滞后、月粒度、死亡缺失、检验可得性、机构漂移等局限)
  8. PMC9712845(日本账单库综述:检验数据约 10% 患者可得)
  9. Cancer Immunol Immunother 2022(3,520 万患者口径、ICI 肺炎算式)
  10. Biol Pharm Bull 2026(ICI 心肌炎预测:485 机构、104 万 L01 患者、LightGBM/RF)
  11. BPB Reports 2025(MDV analyzer 530 机构 / 4,895 万患者口径;ipilimumab 研究)
  12. Research Square 2026 预印本(MDV+JMDC 甲减预测、TTNT-D)
  13. PLOS ONE 2021(双库背景发生率范式、跨院失访与数据录入错误证据)
  14. GlassGS/Nippon IBR 公司研究资料(成立 2003-08、东证 3902、业务模式)
  15. 厚生劳动省历年诊疗报酬改定资料(DPC 码 2 年一改的版本管理依据)
  16. 医中誌/PubMed 检索快照(2026-09-17,用于 §8.5 检索式验证)

§10.4 人工校验表

内容模块 审核者 审核方式 审核状态
§2 医学背景(DPC/PDPS 制度、ICD-11/SNOMED 映射) 千方病案医学编辑部 与厚生劳动省文件及 J Epidemiol 2021 交叉比对 ✅ 已验证
§3 数据集规格(规模时间线多断面交叉) 千方病案医学编辑部 官网 + 5 个独立文献断面交叉比对 ✅ 已验证
§4 数据结构(三主表、字段字典) 千方病案医学编辑部 与官方标准交付说明比对,示意性列名已声明 ✅ 已通过
§6 代码示例与 8 个坑点 千方病案医学编辑部 逻辑审查 + 与已发表研究算式比对 ✅ 已通过
§7 DAIMS 评分与外部验证矩阵 千方病案医学编辑部 交叉审核 ✅ 已通过
§8 代表研究数字 千方病案医学编辑部 与原文摘要逐一比对 ✅ 已验证
§C JSON-LD @graph 千方病案医学编辑部 Schema 字段逐项校验 ✅ 已通过

§10.5 AI 生成章节标注

以下章节由 AI 生成初稿并经人工审核:§1.0 30 秒速览、§3.0 版本抉择矩阵、§6.0-§6.4 代码示例、§6.5 八个坑点、§6.9 评估指标代码、§7.7 DAIMS 评估表与评分、§8.3 生态快照、§C JSON-LD。

§10.6 最后审核

最后一次人工审核日期:2026-09-05

页面状态:published(全部内容已完成审核并发布)


相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

  • komodo-healthcare-map — 共享标签:电子健康记录 / 医保理赔 / 真实世界数据
  • hcup-nis — 共享标签:电子健康记录 / 医保理赔
  • snds — 共享标签:电子健康记录 / 医保理赔 / 真实世界数据
  • gepard — 共享标签:电子健康记录 / 医保理赔 / 真实世界数据
  • gossis-1 — 共享标签:电子健康记录 / 真实世界数据 / 时序数据
  • jmdc — 共享标签:电子健康记录 / 医保理赔 / 真实世界数据
  • marketscan — 共享标签:电子健康记录 / 医保理赔 / 真实世界数据
  • seer-medicare — 共享标签:电子健康记录 / 医保理赔 / 真实世界数据
  • premier-pinc-ai — 共享标签:电子健康记录 / 医保理赔 / 真实世界数据
  • hirid — 共享标签:电子健康记录 / 时序数据

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集