信息速览

SNDS — 法国国家健康数据系统 AI-Ready Wikipedia
INFOBOX
| 数据集名称 | SNDS(Système National des Données de Santé) |
| 英文全称 | French National Health Data System |
| 别名/简称 | SNDS、ex-SNIIRAM、SNIIRAM-DCIR、PMSI、CépiDC(三大组成部分名称) |
| 疾病分类 | 全疾病谱(代表锚定:ICD-11 5A11 2 型糖尿病 / BA00 高血压 / BA41 急性心肌梗死 / 8B11 脑梗死 / 2C60 乳腺癌,详见 §2.1) |
| SNOMED CT | 44054006 Diabetes mellitus type 2 / 38341003 Hypertensive disorder / 57054005 Acute myocardial infarction / 42343007 Cerebral infarction / 254837009 Malignant tumor of breast(详见 §2.1b) |
| 数据模态 | 结构化行政理赔(门诊报销单)、住院出院摘要(ICD-10/CCAM 编码)、死因登记、残障行政认定数据 |
| AI 任务类型 | 表型识别算法开发、疾病发生与死亡预测、药物警戒与信号检测、健康经济学建模、医疗资源利用分析、目标试验模拟、队列链接富集 |
| 样本总数 | 约 6,700 万居民个体级记录(超过法国人口 99%)/ 年均约 12 亿理赔单 / 1,100 万住院 / 5 亿操作 |
| 数据大小 | 总存储量未公布;年增约 12 亿理赔单、1,100 万住院、5 亿操作 官方口径 |
| 数据格式 | 结构化关系表(经 HDH 平台或 CASD 认证环境远程访问,不可下载原始数据) |
| 许可证 | 依据《公共卫生法典》L.1461-1 条与 CNIL 授权研究使用(HDH 平台条款;禁止再分发与出售) |
| 访问级别 | 申请审核(HDH 申请 → CESREES 公共利益与科学性审查 → CNIL 授权 → 认证安全环境远程处理) |
| DUO 标签 | HMB, IRB, PUB, GS(仅供参考,以官方协议为准) |
| 语言 | 法语(原始编码与官方文档),研究文档含英语 |
| 首发日期 | 2016-01-26(法律 2016-41 创立)/ 2017 年 4 月初始运行阶段完成 |
| 最后更新 | 持续滚动更新(年度快照,前一年数据于次年 7 月可得;截至 2026-09 持续运营) |
| 发布机构 | Cnam(国家医疗保险基金)/ ATIH(医院信息局)/ Inserm(CépiDC 死因库),Health Data Hub 平台运营访问 |
| 官方主页 | https://health-data-hub.fr |
| 下载地址 | 无公开下载(经 HDH 平台申请后于认证安全环境内远程处理) |
| AI 就绪度评分 | ⭐⭐⭐(3/5)— 全民覆盖与多源联动全球顶尖、官方编码体系文档完备;扣分项:无公开下载、需审批+认证环境、无现成标签与官方预处理脚本、编码体系学习曲线陡峭 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
医学审核者:[千方病案医学编辑部] 交叉审核:§2 医学背景(ICD-11/SNOMED CT 疾病锚定与法国流行病学背景)、§7 已知偏倚与公平性分析。
数据工程审核者:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。SNDS 要求研究项目经 Health Data Hub 申请、通过 CESREES 与法国国家信息与自由委员会(CNIL)审批,并在认证安全环境(HDH 平台或 CASD)内处理数据。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 30 秒速览
这是什么? SNDS(Système National des Données de Santé,法国国家健康数据系统)是法国的全民健康行政数据库。它在个体层面把三大来源链接在一起:全民医保的门诊报销记录、所有公立与私立医院的住院出院摘要、以及全国死因登记,覆盖约 6,700 万法国居民——超过总人口的 99%。所有数据都以伪匿名形式存储:没有姓名、地址或社保号。
为什么重要? 它是世界上覆盖最完整的国家级健康数据库之一。因为医保报销是"被动全采集"的,研究者不需要患者自愿参加,就能回溯每个居民跨越数十年的完整就医轨迹——从社区开药、检验,到住院、手术,直到死亡原因。这种"全民+全病程+可链接"的特性,让药物安全性、疾病负担、医疗费用等研究可以从数万人级跃升到数百万人级。
我能用它做什么? 你可以做药物警戒(某药上市后是否增加住院风险)、疾病流行病学(某种病的全国发病率与费用)、真实世界疗效评估(真实患者用药效果 vs 临床试验)、以及医疗 AI 研究(用全国级数据训练疾病预测与表型识别模型)。注意:数据必须经审批后在法国认证的安全环境中远程处理,不能下载到本地——这与下载一个 MIMIC-III 压缩包的工作流完全不同,§6.2 的六步流程是每个项目的必经之路。
§1.1 摘要
SNDS 由 2016 年 1 月 26 日《卫生系统现代化法》(法律 2016-41)创立,写入《公共卫生法典》L.1461-1 条,2017 年完成初始运行阶段 1。它在个体层面链接三个互补来源:SNIIRAM/DCIR(各医保制度的门诊报销数据,覆盖约 98% 人口)、PMSI(公立与私立医院出院摘要,ICD-10 与 CCAM 编码,分 MCO/HAD/SSR/PSY 四类)与 Inserm 管理的 CépiDC 死因登记;2019 年法律 2019-774 之后又逐步纳入 MDPH 残障认定数据 2。链接的技术基础是可信第三方(Cnam/CNAVTS)对社保号 NIR 的不可逆两级哈希(FOIN 算法),研究者全程不接触 NIR,只使用伪匿名标识符在认证环境(Health Data Hub 平台或 CASD)中工作 3。年数据量约 12 亿理赔单、1,100 万住院与 5 亿操作 1。对 AI 团队而言,SNDS 的价值在于全国级样本量下的疾病轨迹建模、表型算法开发与真实世界证据生成;其代价是严格的访问治理、纯行政数据(无检验值/生命体征)与陡峭的法国编码体系学习曲线。
阅读本条目的建议路径:首次接触者按 §1.0 → §3.0 → §6.2 的顺序快速建立"是什么、用哪层、怎么申请"的决策框架;准备立项者直接精读 §3.0 抉择矩阵、§6.5 坑点与 §7.7 DAIMS 表,它们浓缩了本条目 80% 的实操结论;数据工程角色则从 §4.0 目录树与 §6.3 预处理流水线入手,对照官方 DIB 数据字典落地字段映射。
§1.2 战略价值分析
维度一:全民覆盖与选择偏倚免疫。 绝大多数临床数据库(如 MIMIC-III 的 4.6 万重症患者)从"就医人群"中采样,天然携带就医选择偏倚;而 SNDS 以行政登记方式被动覆盖超过 99% 的居民,包括从未就医的人群——研究者可以构建真正的"全人群对照"。这使发病率、患病率与医疗费用类研究具备全国代表性,也让罕见病研究获得足够统计功效。Constances 队列甚至利用 SNDS 与 Cnav 数据构建了 44 万非参与者"参照队列",用于量化自身队列的选择偏倚并计算权重校正 4。
维度二:纵向个体级链接产生的真实世界证据能力。 单库数据只能回答"发生了什么",多源链接才能回答"因果链上发生了什么"。SNDS 将门诊处方(ATC 药品码)、住院结局(ICD-10 诊断)、生命终点(死因)串在同一伪匿名标识符下,使暴露-结局设计(如新药上市后安全性)、目标试验模拟与终身病程建模成为可能。EPI-MERES 全国母婴登记即依赖 SNDS 实现 97% 出生案例的母子链接,用于先天畸形监测 5。这种能力在全球行政理赔库中位居第一梯队,被系统综述评价为世界上规模最大、连续性与同质性最好的理赔数据库之一 2。
维度三:治理成熟度是一项"活"的工程优势。 多数国家健康数据库的访问治理是静态文件,而 SNDS 的治理在持续工程化演进:2018 年引入 CNIL 简化程序 8,2019-2020 年 HDH 平台建成并标准化六步流程 14,2021-2023 年完成主权云迁移 9,2024 年 CNIL 更新 NIR 处理链实务单 10。对 AI 团队,这意味着两点:申请流程有清晰的官方文档与辅导通道可依循;同时治理规则会演进,跨年度项目每年应复核一次合规要求是否有更新——治理成熟度应作为长周期数据资产选择的关键评估维度,这一点 SNDS 在全球同类库中处于第一梯队。
§1.3 同类数据集横向对比
选择对比对象的原则:只比"能对研究设计产生实质影响"的维度(覆盖人群、模态、链接能力、访问方式),不罗列无关属性。四个对象分别代表全民行政库、单院 ICU、志愿队列与他国全科库四种范式:
| 数据集 | 覆盖范围 | 数据类型 | 链接能力 | 访问方式 | 与 SNDS 的差异化 |
|---|---|---|---|---|---|
| SNDS(法国) | 约 6,700 万居民(>99% 人口) | 门诊理赔 + 住院 + 死因 + 残障 | 个体级多源强制链接 | HDH/CESREES/CNIL 审批,安全环境远程处理 | 全民覆盖 + 全病程轨迹 + 死因终点三合一 |
| MIMIC-III(美国) | 46,520 名患者 / 61,532 次 ICU 入住 | ICU 高频时序监护 + 临床笔记 | 单院 EHR,无理赔/死因链接 | PhysioNet 凭证化申请,可下载 | 有波形与检验细节,但仅限单院重症人群 |
| UK Biobank(英国) | 约 50 万志愿者队列 | 问卷 + 体检 + 组学 + 链接 NHS 记录 | 志愿者同意制链接 | 注册申请 | 有深度表型与组学,但为自愿队列(存在健康志愿者偏倚) |
| CPRD(英国) | 英国基层诊疗代表样本 | 全科电子病历(处方/诊断) | 可链接住院与死因 | 独立科研审批,付费 | 以全科诊断自由文本与处方见长,覆盖比例小于 SNDS |
读这张对比表的正确姿势:SNDS 的优势维度是"覆盖广度 × 链接深度 × 死亡终点",劣势维度是"临床细节密度"——库内没有检验值、生命体征与影像。因此两者不是替代关系:需要机制级临床细节时用 EHR 型数据集(MIMIC-III 或 HDH 平台第二层医院 EHR 项目 9),需要人群级外推与结局确证时用 SNDS,理想设计是"SNDS 定位人群与结局 + EHR 补充细节"的混合研究。
§1.4 版本演进时间轴
| 时间 | 事件 | 说明 |
|---|---|---|
| 2006-01-01 | 穷尽级数据起点 | 当前 SNDS 穷尽提取的数据自 2006 年起完整可得;EGB 永久样本自 2004 年起 2 6 |
| 2016-01-26 | 法律创立 | 《卫生系统现代化法》(法律 2016-41)确立 SNDS,写入《公共卫生法典》L.1461-1 1 |
| 2016(背景) | 链接审批简化沿革 | SNDS 之前调查数据与理赔库链接需 CNIL 批准外加国务院特定呈批,2016 年法律后仅需 CNIL 授权 3 |
| 2017-04 | 初始运行阶段完成 | 三大来源完成初始整合 7 |
| 2018-07 | CNIL 简化程序 | 引入"référentiels"简化通道,符合条件项目免逐案审批 8 |
| 2019-07-24 | 法律扩展 | 法律 2019-774 纳入 MDPH 残障数据等新来源,Health Data Hub 获法律设立 1 |
| 2020-03 | HDH 平台运行 | Health Data Hub(公共利益集团 GIP)正式运营数据访问 7 |
| 2021 | 主权云争议 | 国务院裁决 Azure 托管合法但要求加速欧洲云迁移 9 |
| 2023 | 主权云迁移完成 | 主存储迁至 OVHcloud 与 Scaleway 9 |
| 2024-06 | CNIL 实务单更新 | 发布多中心 NIR 处理链实务单(h(NIR-DDN-S) 哈希规范) 10 |
这条时间轴的主线可以概括为三次跃迁:2016-2017 年"从 SNIIRAM 到 SNDS"的法律整合(把分散的理赔、住院与死亡库纳入统一法律框架);2019-2020 年"从数据库到平台"的访问基础设施化(HDH 把审批、交付与公开标准化);2021 年至今"从可用到可信主权"的治理深化(主权云与 NIR 规范持续演进)。给跨年度项目的启示是:把治理演进当作模型的运行环境变量,每年立项续期时复查一次时间轴末端是否有新事件。
§1.5 典型 AI 应用场景
- 全国级表型识别算法:组合 ICD-10 住院码、ALD 长期病登记与 ATC 药物码自动识别疾病队列(如多囊卵巢综合征识别算法验证,BMC Medical Research Methodology 2025 11)。
- 药物上市后安全性监测:以门诊处方暴露 + 住院结局构建发生率比较研究,支撑法国药监体系(EPI-PHARE 即为 SNDS 上的永久药物警戒研究组 12)。
- 疾病负担与医疗资源利用建模:如 2 型糖尿病人群卒中发生率与后续医疗资源消耗的全国估计(INSIST 研究)13。
- 队列外部富集与终点补全:为 Constances、CKD-REIN、HEPATHER 等队列链接理赔与死亡数据,替代昂贵主动随访 4。
- 终身病程与代际研究:母子链接(97% 出生案例关联)支持妊娠暴露与先天结局研究(EPI-MERES)5。
- 健康经济学与政策评估:以报销金额与 DRG 分组直接建模疾病全程费用,评估医保支付政策改革前后的利用与成本变化(全国统一结算口径使跨机构比较具备同一量纲)3。
- 选择偏倚量化方法学:利用全人群框架构建"非参与者参照队列",把队列研究的自选择偏倚从假设检验变为可测量的权重校正问题(Constances 的 44 万参照队列设计)4。
七个场景的共同点是把 SNDS 当作"结局确证引擎"使用:无论暴露来自处方、问卷还是登记,全国级的发生、再发与死亡终点都由 SNDS 补齐——这是它区别于一切单点数据集的生态位。
§2 医学背景
§2.1 ICD-11 疾病分类锚定
SNDS 覆盖全疾病谱,以下锚定 AI 研究中最常以 SNDS 为数据源的代表性疾病(SNDS 内部实际使用法国版 ICD-10(FR-ICD-10)编码,此处按本百科规范提供 ICD-11 对照锚点):
| 疾病标签 | ICD-11 编码 | 中文名称 | 英文术语 |
|---|---|---|---|
| 2 型糖尿病 | 5A11 | 2 型糖尿病 | Type 2 diabetes mellitus |
| 高血压 | BA00 | 原发性高血压 | Essential hypertension |
| 急性心肌梗死 | BA41 | 急性心肌梗死 | Acute myocardial infarction |
| 脑梗死 | 8B11 | 脑梗死 | Cerebral infarction |
| 乳腺癌 | 2C60 | 乳腺恶性肿瘤 | Malignant neoplasm of breast |
| 阿尔茨海默病 | 8A80 | 阿尔茨海默病 | Alzheimer disease |
§2.1b SNOMED CT 映射
| 疾病标签 | ICD-11 | SNOMED CT 码 | SNOMED 术语 |
|---|---|---|---|
| 2 型糖尿病 | 5A11 | 44054006 | Diabetes mellitus type 2 (disorder) |
| 高血压 | BA00 | 38341003 | Hypertensive disorder, systemic arterial (disorder) |
| 急性心肌梗死 | BA41 | 57054005 | Acute myocardial infarction (disorder) |
| 脑梗死 | 8B11 | 42343007 | Cerebral infarction (disorder) |
| 乳腺癌 | 2C60 | 254837009 | Malignant tumor of breast (disorder) |
| 阿尔茨海默病 | 8A80 | 26929004 | Alzheimer’s disease (disorder) |
§2.2 数据库中的疾病表示与法国流行病学背景
SNDS 不是疾病特异性数据集:它记录的是"报销了什么"与"住院因为什么"。疾病在库中有四种呈现方式:其一,住院出院摘要中的主诊断与合并症诊断(FR-ICD-10 编码,全部住院事件必有);其二,ALD(长期病,affection de longue durée)登记——经批准的慢性病享受 100% 报销,其诊断码进入门诊理赔记录,是门诊侧唯一系统性的疾病标识 3;其三,药物暴露(ATC 分类 + CIP 包装码),常作为疾病代理变量(如以降糖药报销识别糖尿病);其四,死因登记(CépiDC,ICD-10 编码根本死因)。需要强调:未经住院且不在 ALD 之列的门诊就诊不携带 ICD-10 诊断码,这是门诊侧疾病识别必须用"ALD+药物+住院"三角验证的根本原因 8。在法国流行病学背景上,约 6,700 万居民的全部报销照护、住院与死亡都沉淀于此库,年度流量约 12 亿理赔单、1,100 万住院、5 亿操作 1。
四种呈现方式落到具体疾病时,识别路径各有侧重。以 AI 研究最常见的四类疾病为例:
| 疾病 | 住院侧 | ALD 侧 | 药物/其他侧 |
|---|---|---|---|
| 2 型糖尿病 | E11(FR-ICD-10) | ALD 第 8 组(糖尿病) | ATC A10B 前缀(降糖药)报销记录 |
| 卒中 | I60-I64 主诊断 | — | 死因 I6x 作终点 |
| 急性心肌梗死 | I21 主诊断 | — | 死因 I21-I22 作终点 |
| 乳腺癌 | C50 诊断 | ALD 第 30 组(肿瘤) | CCAM 肿瘤手术/化疗操作码 |
表中所用 ALD 分组(第 8 组糖尿病、第 30 组肿瘤)为法国 ALD 官方 30 组分类中的固定分组;任何算法都应把三源命中情况与各自贡献比例写进方法学,作为可审计的表型定义(参见 §2.6 与 §7.8 的验证要求)。
另需注意编码体系的"双轨"现实:SNDS 库内使用法国版 ICD-10(FR-ICD-10),而本百科 §2.1 提供 ICD-11 锚点是为了跨数据集对齐与国际化发表。把库内码映射到 ICD-11 时,应经"FR-ICD-10 → WHO ICD-10 → ICD-11"的官方映射链,而不是直接用码面相似度匹配——法国本土扩展码(如产科与精神科的局部细化)在通用映射表中可能没有一一对音的条目,映射后要做码覆盖率的完整性核查,并把无法映射的码单列而不是丢弃。映射脚本本身应作为研究资产版本化保存,使任何一篇论文的疾病定义都能被精确复现。
§2.3 临床任务定义
| 任务类型 | 定义 | SNDS 中的实现方式 |
|---|---|---|
| 疾病筛查/表型识别 | 在理赔流中自动识别特定疾病患者 | ALD 码 + 住院 ICD-10 码 + ATC 药物码的算法组合,灵敏度/特异度用病历抽样验证 |
| 结局预测 | 预测首次事件(卒中、心梗、死亡) | 以首次住院码或死因定义事件,用既往理赔历史构造特征 |
| 药物暴露-结局关联 | 真实世界药物安全性/有效性 | 新用药者队列(new-user design)+ 目标试验模拟 |
| 医疗资源利用与成本 | 就诊次数、住院天数、报销总额 | 直接从理赔金额与 PMSI DRG 分组统计 |
| 生存分析 | 从确诊/用药到死亡的时长建模 | CépiDC 死因与死亡日期提供全人群终点 |
五个任务的落地顺序建议:先定义结局(表 1、2 行),再定义暴露(3 行),然后才是特征工程与模型(4、5 行)。大量失败项目的顺序恰好相反——先搭模型再回头补标签定义,结果发现标签定义决定的人群与建模窗口根本不匹配。把表内"实现方式"列直接转写为预注册协议,是这个表的最大用途。
§2.4 患者人群特征
SNDS 的人群维度首先是一个"全民框架"而非"患者队列"——下表的每一行都按"全人口口径"描述:
| 维度 | 描述 |
|---|---|
| 来源 | 全部法定医保参保居民的行政登记(被动全采集,无自愿报名) |
| 时间跨度 | 穷尽级数据自 2006 年起;EGB 永久样本自 2004 年起;逐年滚动更新 2 |
| 年龄 | 全年龄(含新生儿与百岁老人;新生儿与未成年人纳入受益人体系) |
| 性别 | 男女全谱(性别是 NIR 三元组的组成部分之一) |
| 种族 | 不采集——法国法律禁止采集民族/种族统计数据,库中无此类变量 |
| 就医类型 | 门诊(全科/专科/药学/检验)、住院(MCO 常规、HAD 居家、SSR 康复、PSY 精神)、死亡登记全覆盖 |
| 医保制度 | 综合制度(CNAMTS 主制度)、农业(MSA)、自雇(RSI,2011 年并入 EGB 抽样)等全部制度 6 |
对 AI 建模者,这种"被动全采集"的人群构成有三点方法学含义。第一,不存在志愿者健康偏倚:连从未就医的居民也在挂号库中,构成天然的对照池。第二,人群是动态的:新生儿不断进入(通过出生申报与母子链接,关联率 97% 5),死亡者退出(由 CépiDC 记录终点),移民与离境者进出,建模时应把"受益人活跃状态"当作随时间变化的量。第三,家庭结构可见:家属挂靠在主受益人下的共享标识符机制意味着库内存在家庭聚类的天然单位(参见坑点 6),在做聚类稳健标准误或家庭级分析时反而是一个可利用的结构。
§2.5 临床价值
对临床与公共卫生决策者,SNDS 的价值链是"全人群计数 → 疾病负担 → 干预效果 → 政策评估":国家层面的患病率与费用估计直接来源于此库;药品上市后的风险信号可在数百万暴露者中检出;医保支付政策(如 100% Santé 改革)的效果可经前后对照量化。对 AI 研究,其价值在于以全国样本量训练的疾病轨迹模型天然携带人群代表性,而 MIMIC-III 等单院数据集学到的模式在跨院部署时需要此级别数据校准。
值得强调的边界:上述价值全部建立在"结局与暴露都发生在官方报销通道内"这一前提上。凡研究对象的行为大量游离于报销体系之外(如完全自费的美容与辅助生殖项目、非处方补充剂使用),SNDS 的观测就退化为冰山一角。立项前先画出"研究变量 × 报销可见性"的对照清单,是判断该项目适不适合 SNDS 的最快方法——这也是 §6.2 申请材料中"数据必要性论证"环节真正想考察的东西。
§2.6 金标准/参考标准
SNDS 是行政数据库,无"人工金标准标注";其"金标准"由两类机制替代:其一,编码产生规则——医院编码由病案科(DIM)编码员按 ATIH 统一规则从病历编码,门诊理赔由结算流程产生;其二,算法验证研究——表型算法须与病历抽样人工复审比对,报告阳性预测值(PPV)与灵敏度。参考金标准结构如下:
| 属性 | 内容 |
|---|---|
| 划分 | 无官方划分;研究以时间窗(训练/验证/测试)或地理区域自行划分 |
| 标注方式 | 无统一人工标签;疾病标签 = 编码算法(ALD/ICD-10/ATC 组合规则)回顾性派生 |
| 标注者 | 医院病案编码员(DIM,按 ATIH 编码规则);理赔数据由结算系统自动产生 |
| 性质 | 回顾性行政理赔数据;标签质量以 PPV/灵敏度验证研究衡量(如 PCOS 识别算法验证 11) |
这张表的最后一行值得展开:与影像或 EHR 数据集不同,SNDS 的"标签质量"没有单一报告点——它随疾病(住院可见性差异)、年份(编码规则演进)与机构(编码习惯)三维变化。因此成熟的做法是在表型协议中为标签标注三维坐标(码表组合 + 适用年份窗 + 机构类型范围),让下游使用者在引用你的队列时能准确判断适用边界。这也是法国表型研究形成"算法即协议"传统的原因。
§3 数据集规格
§3.0 数据层级抉择矩阵
SNDS 无版本号概念,取而代之的是四种"数据层级/访问路径"抉择。项目立项前先按下表选路径:
| 你的需求 | 推荐层级 | 规模 | 理由 |
|---|---|---|---|
| 全国发病率/患病率、药物警戒、昂贵结局(死亡)研究 | 穷尽 SNDS(经 HDH 平台 + CNIL 授权) | 约 6,700 万居民 | 需要全人群计数与全部事件,样本量是唯一选项 |
| 方法学预研、算法原型、成本敏感的初步研究 | EGB 永久 1/97 随机样本 | 约 70-83 万人 | 变量结构与穷尽库一致,审批更快、成本更低;注意 EGB 不含 PMSI SSR/PSY 2 |
| 问卷/临床检查与理赔记录联合分析 | 调查链接(Constances、EHIS、Esteban) | 队列 21 万人级(Constances 另含 44 万参照) | 需要自报/体检变量与理赔轨迹互补 4 |
| 药物安全性信号的政策级监测 | EPI-PHARE 等永久机构访问 | 全库 | 法定机构经 CNIL-2016-316 决定持有永久监管访问权 5 |
选路径前先自问三个问题:我的结局变量在门诊可见吗(不可见 → 必须含 PMSI 或 CépiDC)?我的效应量需要多小的置信区间(效应微弱 → 穷尽库是唯一选项)?我的算法需要迭代多少轮(多轮 → EGB 开发再上穷尽库,成本差一个量级)。三问的答案组合基本唯一地确定了路径;把这三个问题的回答写进申请材料,也正好回应 CESREES 对"数据必要性"的审查关注(§6.2)。
§3.1 模态详细说明
| 模态 | 来源系统 | 内容 | 管理机构 |
|---|---|---|---|
| 门诊理赔(DCIR/SNIIRAM) | 各医保制度结算流 | 诊次、药品交付、检验、医疗器械、报销金额;覆盖约 98% 人口 7 | Cnam |
| 住院出院摘要(PMSI) | 公立与私立医院病案系统 | 主/次诊断(FR-ICD-10)、操作(CCAM)、住院时长、DRG;分 MCO/HAD/SSR/PSY 四类 2 | ATIH |
| 死因登记(CépiDC) | 全国死亡证明 | 根本死因(ICD-10)、死亡日期 | Inserm |
| 残障认定(MDPH) | 省残障之家 | 残障认定与补助行政数据(2019 年法律后逐步纳入) 1 | MDPH 各省 |
| 医保归属与 ALD | 挂号与长期病登记 | 制度归属、CMU/补充保险状态、ALD 100% 报销病种码 7 | Cnam |
两个实践要点补充这一表格。其一,DCIR 是"事件流"而非"病历":一次门诊就诊可能散布为多行理赔(诊费、检验、药品各自一行),研究者必须先按受益人 + 日期聚合成"就诊实例"才能讨论"那次就诊"。其二,PMSI 的四类住院在编码粒度上不对等:MCO(常规住院)按 stay 级编码最完整,SSR 与 PSY 的摘要结构不同——这也是 EGB 样本长期只供应 MCO 类住院数据的原因 2。跨四类聚合住院历史时,应按 stay 类型分层建模而非混合计数。
§3.2 样本量拆分(各来源年度规模)
| 子库 | 规模口径 | 数字 |
|---|---|---|
| DCIR 门诊理赔 | 年理赔单数 | 约 12 亿 1 |
| DCIR 门诊理赔 | 年操作/服务数 | 约 5 亿 1 |
| PMSI 住院 | 年住院次数 | 约 1,100 万 1 |
| 全库人口覆盖 | 个体数 | 约 6,700 万(>99% 人口;一说 98.8%) 5 13 |
| EGB 永久样本 | 个体数 | 约 70 万(2017)/ 约 83 万(2021) 6 2 |
| CépiDC 死因 | 覆盖 | 全国死亡登记全覆盖(死因经 ICD-10 编码) 7 |
| 母子链接 | 出生案例关联率 | 97% 5 |
| Constances 队列 | 链接 SNDS 的参与者 | 约 21 万人级队列,链接率约 96%;另设 44 万非参与者参照队列 4 |
| FCCSS 队列(示例) | 概率匹配链接 | 5,583/6,818(81.9%),无 NIR 历史队列的上限参考 2 |
口径对照警示:不同来源对"年流量"的表述略有差异——官方合规声明口径为"约 12 亿理赔单/年" 1,第三方分析亦有"13 亿诊次"的表述 9。差异来自计数单位(理赔单 vs 就诊/服务事件)与统计年份。引用流量数字时务必锁定"来源 + 口径 + 年份"三元组;本条目统一采用官方合规声明的口径。
§3.3 数据格式详情(编码体系)
交付物为结构化关系表。字段值依赖六套官方编码体系,理解它们是使用 SNDS 的先决条件 3:
| 编码体系 | 适用对象 | 说明 |
|---|---|---|
| ICD-10(FR-ICD-10) | 住院诊断、死因 | 法国版第 10 版国际疾病分类 |
| CCAM | 医疗操作/手术 | 法国常见操作分类 |
| NGAP | 门诊诊疗操作 | 一般专业操作名录 |
| ATC + CIP | 药品 | ATC 解剖-治疗-化学分类 + CIP 包装码 |
| NABM | 生物学检验 | 医学生物学操作名录 |
| LPP | 器械与产品 | 产品与服务名录(含医疗器械) |
六套体系的工程含义各不相同:ICD-10 与 ATC 是"层级树",适合前缀截断与逐级聚合;CCAM 与 NABM 是"平面码表",聚合粒度需要自行定义;CIP 是"包装级"的,同一分子有多个 CIP 码,暴露统计必须先经 ATC 归并;LPP 覆盖器械与特殊服务,码表随名录更新频繁。为每套体系建立"码表版本 + 快照年份"的绑定关系(见 §5.3 码表版本泄漏行),可以避免绝大多数映射类错误。
§3.4 存储大小
官方未公布全库总存储量,禁止在此虚构。可参考的量级代理:年流量约 12 亿理赔单、1,100 万住院记录、5 亿操作 1;实践中的项目级提取(单病种、数年窗口)通常为数 GB 至数百 GB 量级,实际大小取决于批准协议的数据范围。研究者在申请时应按协议范围预留平台项目空间配额,而非按本地经验估计。
另一个实用换算:以"受益人 × 年"为粒度审视自己的中间产物——约 6,700 万人 × 19 年(2006-2024)≈ 12.7 亿人年,即使每行只留十几个特征列,受益人级宽表也在百 GB 量级。这解释了为什么 §6.8 强调在项目空间内物化中间结果(列裁剪 Parquet 缓存),以及为什么把特征集控制在"批准的最小必要范围"既是合规要求也是工程必然。
§3.5 标注方式
SNDS 无监督学习意义上的"标注"。所有疾病信息属于三类自动/半自动产生的过程性记录:结算驱动编码(门诊理赔由刷卡与结算流程产生);病案编码(住院出院摘要由编码员按病历编码,服务于 DRG 定价);登记记录(死因由医生填写死亡证明、CépiDC 统一编码)。研究用的"标签"(如某病队列成员身份)由研究者以编码规则算法派生,并以病历抽样验证其 PPV 与灵敏度 11。
§3.6 标注者资质与一致性
住院编码由各医院病案信息科(DIM)编码员执行,统一遵循 ATIH 发布的编码规则与定期更新指南;门诊理赔数据由医保结算系统按全国统一的处理与质量控制计划产生——该计划覆盖所有医保制度,在刷卡数据采集、处理中心录入与编码后入库三个层面执行质量控制 3。跨机构编码一致性受结算激励影响,是 §7.1 偏倚分析的主题。
§3.7 数据采集时间范围
- 穷尽级 SNDS:2006-01-01 起完整可得(理赔与住院);当前以年度快照滚动更新,前一年的数据在次年 7 月可获取 2 5。
- EGB 永久样本:自 2004 年起;数据自 2006-01-01 起保存 20 年 6 2。
- 扩展时间线:2011 年 EGB 纳入 MSA/RSI 制度,2015-2016 年纳入地方医保(SLM/LMDE)6。
- 申请时间规划含义:因数据约一年滞后 5,研究窗口的"数据可得终点"应在立项时按"最近完整年份 - 1"计算,而不是按日历日计算。
- 2006 年前的数据使用:穷尽级完整性以 2006 年为界,2006 年前的理赔记录在覆盖与结构上不可与之后直接混用;跨 2006 年的长期轨迹研究应把 2006 年作为基线起点(EGB 例外,可至 2004 年 6)。
- 快照边界声明:每个项目的数据终止时点(如 2024-12-31)应写入协议与论文方法节,与 §5.2 的快照冻结日概念对应——终止时点不同是跨研究比较时最常见的隐性口径差异。
§3.8 地理覆盖
法国全境(本土与科西嘉,含海外省医保制度)。理赔数据按受益人居住地归属地方医保机构;住院数据覆盖全国公立与私立医院。EGB 样本代表约 95.6% 强制医保覆盖人口(截至 2017 年口径)6。
地域变量在建模中的典型用途有三层:最粗粒度的大区(région)适合做泛化划分(§5.2 地理划分);省级(département)是供应可及性与医疗密度的常用代理;最细的行政区(commune,经匿名化的地理单元)可用作 SES 的空间代理,但粒度越细再识别风险越高,输出聚合规则也越严格。三者都属于"批准协议中逐项申请"的数据范围,不要假设默认交付。
§3.9 采集设备规格
不适用。SNDS 是行政理赔与登记数据库,不含传感器、监护仪或影像设备产生的原始测量数据;医院内的监护与检验原始数据不进入 SNDS(进入的只是编码后的结算与摘要信息)。需要生命体征、检验数值或影像的研究应考虑 EHR 类数据集(如 MIMIC-III、HDH 平台第二层的医院 EHR 项目 9)。
反过来,"不适用"也有正面用法:当你的研究不需要临床细节、只需要事件发生与频次时,行政数据反而比 EHR 数据更干净——没有设备校准漂移、没有补录噪声,事件的"存在性"由结算事实背书。模态匹配的关键是让问题配数据,而不是让数据迁就问题。
§3.10 深度溯源链
- 门诊理赔链:患者出示 Carte Vitale 卡 → 医疗机构/药房产生结算单 → 地方医保机构关联患者身份 → FOIN 不可逆两级算法伪匿名化 NIR → 汇入国家 DCIR 仓库(NIR-ANO 标识符贯穿个体全部数据)3。
- 住院链:医院病历 → 病案科(DIM)编码员按 ATIH 规则编码 → PMSI 匿名化摘要(RSA)上报 ATIH → 与理赔标识符链接 3。
- 死因链:医生填写死亡证明 → CépiDC(Inserm)统一编码根本死因 → 按 SNDS 伪匿名标识符并入 7。
- 调查链接链:队列方提供姓名/性别/出生地等识别要素 → CNAVTS 重建 NIR(可信第三方)→ CNAMTS 将 NIR 转为 SNDS 伪匿名号并提取数据 → 研究者仅收到以队列匿名 ID 挂接的提取结果,全程不接触 NIR 2。
链接质量的三个已发表参考数字可作为溯源链健全性的基准:有 NIR 支持的确定性链接可达约 96%(Constances)4;无 NIR 的历史队列概率匹配降至约 82%(FCCSS)2;依赖出生申报的母子链接为 97%(EPI-MERES)5。项目自查时应把自己的链接率与同类口径对照:明显低于同类时优先排查标识符版本与受益人结构变更,而不是先怀疑方法本身。
§4 数据结构详解
§4.0 目录结构预览
SNDS 无公开下载包;经审批后在 HDH 平台或 CASD 项目空间内交付。目录组织随批准协议而异,以下是项目空间内按来源组织的典型逻辑结构预览(表名以逻辑名呈现,实际物理表名以项目交付为准):
project_space/
├── dcir/ # 门诊理赔(DCIR)
│ ├── claims_main/ # 理赔主记录:一行一次报销事件
│ ├── drug_deliveries/ # 药品交付:ATC/CIP 码 + 数量 + 报销额
│ ├── lab_tests/ # 生物学检验:NABM 码
│ ├── devices_services/ # 器械与操作:LPP / NGAP / CCAM 门诊码
│ └── beneficiary_register/ # 受益人挂号与制度归属、ALD 登记
├── pmsi/
│ ├── mco_stays/ # 常规住院(MCO):诊断/操作/时长/DRG
│ ├── ssr_stays/ # 康复住院(穷尽库含,EGB 除外)
│ ├── psy_stays/ # 精神住院(穷尽库含,EGB 除外)
│ └── had_stays/ # 居家住院
├── cepidc/
│ └── deaths/ # 死因登记:根本死因 ICD-10 + 死亡日期
├── mdph/ # 残障认定(按协议范围)
└── linkage/ # 项目自有调查数据的挂接表(如有)
树中的三层信息各有一个核对动作:dcir/ 与 pmsi/ 的覆盖年份要与批准协议逐季核对(年度快照的边界以交付说明为准);pmsi/ 四类子目录的存在性取决于协议范围(仅 MCO 是最常见配置);linkage/ 只在申请了调查数据链接的项目中出现,其挂接键遵循 CNIL 实务单的"挂接标识符"规范 10。
§4.1 DAIMS 标准化字段描述表
核心逻辑字段字典(8 列 DAIMS 规范)。注意:SNDS 交付表的物理字段名为法文缩写且随表而异,下表以逻辑名给出,落地时按项目空间的官方数据字典(DIB 培训材料提供全表说明)映射 2:
字段映射推荐按四步工作流执行:①从官方数据字典抄录目标表的物理字段清单(不要凭记忆或论坛帖子);②建立"物理名 → 本条目逻辑名"的映射文件并与团队共享(一份 CSV 即可);③映射文件随项目代码入版本库,快照更新时只改映射不改代码;④任何字段级疑问回到官方字典与 ATIH 规则,而不是猜测——法文缩写字段的语义陷阱(如结算日期与服务日期之别)几乎全部记录在官方字典的注释里。这套工作流的隐含目标是:让"数据理解"沉淀为可交接的文件,而不是留在某个成员的脑子里。
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| pseudonymised_beneficiary_id | Text | 受益人伪匿名标识符(FOIN 派生) | AN0开头匿名串 |
个体轨迹聚合主键 | 家属与受益人标识符关系需核查(§6.5 坑点 6) | 无缺失 | 库内唯一 |
| care_date | Date | 照护/报销发生日期 | 2023-06-14 |
时序特征轴、随访起点 | 结算日期可能晚于服务日期 | 无缺失 | 2006 起有效 |
| primary_diagnosis_icd10 | Text | 住院主诊断(FR-ICD-10) | I21.0 |
标签定义/结局事件 | 编码受结算激励影响 | 无住院 → 行不存在(结构性缺失) | ICD-10 码表 |
| secondary_diagnoses_icd10 | Text(list) | 次诊断与合并症 | E11.9;N18.3 |
合并症指数 | 编码完整度随医院而异 | 未编码 ≠ 无病 | ICD-10 码表 |
| procedure_ccam | Text | 医疗操作(CCAM) | DEA003 |
手术暴露/干预识别 | 门诊操作分散在 NGAP | 无操作 → 行不存在 | CCAM 码表 |
| atc_drug_code | Text | 药品 ATC 分类码 | A10BA02 |
暴露定义、疾病代理 | 仅报销药品可见 | 自费/院外赠药不可见 | ATC 码表 |
| ald_code | Text | 长期病登记码 | 12(精神分裂症组) |
门诊侧慢性病标识 | 仅 ALD 门诊有诊断性质记录 | 非 ALD → 缺失 | ALD 30 组 |
| reimbursement_amount | Float | 报销金额(欧元) | 45.20 |
成本建模 | 不等于全部费用(含自付) | 无缺失 | ≥ 0 |
| stay_length_days | Integer | 住院时长(天) | 6 |
资源利用结局 | 日间住院计 0 天 | 无缺失 | ≥ 0 |
| underlying_cause_icd10 | Text | 根本死因(CépiDC) | C34.1 |
生存分析终点 | 死因编码存在不确定性 | 未死亡 → 无行 | ICD-10 码表 |
| family_head_link_flag | Text | 家庭主受益人挂靠关系标识 | 新生儿子挂靠母亲 |
家庭聚类单位、母子研究 | 挂靠关系随成年/独立开户变更 | 独立参保者无挂靠行 | 挂号库口径 |
| provider_specialty_code | Text | 服务提供者专业分类码 | 01(全科) |
就诊层级特征、守门人建模 | 门诊与住院的提供者编码体系不同 | 部分机构事件缺失 | 官方专业分类表 |
| beneficiary_birth_year / sex | Integer / Text | 出生年与性别(派生自挂号库) | 1954 / F |
年龄性别分层、队列描述 | 只有粗粒度时间(保护隐私) | 无缺失 | 挂号库口径 |
| insured_scheme | Text | 医保制度归属 | 综合制度 / MSA / RSI | 制度分层、公平性分析 | 制度整合(如 RSI 并入)导致历史变更 | 无缺失 | 制度枚举表 |
| supplementary_coverage_flag | Text | 补充保险状态 | CMU-C / 补充保险 / 无 | 经济可及性代理变量 | 状态随时间变动,取快照口径 | 无缺失 | 挂号库口径 |
§4.2 标签分布统计
SNDS 不发布统一的"标签分布"——标签由各研究项目按算法派生。可给出的官方口径分布锚点:人口覆盖约 6,700 万个体;年度事件分布约 12 亿理赔单(门诊为主)、1,100 万住院、5 亿操作 1;出生案例中 97% 完成母子链接(EPI-MERES 可用口径)5。任何具体疾病的队列规模取决于研究者的码表定义,引用他人数字时须注明其算法版本。
这一"标签即算法"的特性带来一个报告惯例上的差异:在标准 ML 数据集里,标签分布是数据集的属性;在 SNDS 里,标签分布是"数据集 × 算法"二元组的属性。因此本条目正文中所有疾病相关数字都同时携带其识别算法的出处;你自己的项目也应在结果表的每一行标注算法版本号,否则同一疾病在不同研究中的"患病率"可能相差数倍而两者都无错。
§4.3 关键字段描述性统计
| 统计口径 | 数值 | 来源与说明 |
|---|---|---|
| 年理赔单数 | 约 12 亿 | 官方口径(Certara SNDS 合规声明引述)1 |
| 年住院数 | 约 1,100 万 | 同上 |
| 年操作数 | 约 5 亿 | 同上 |
| 人口覆盖 | 约 6,700 万 / >99% | EPI-MERES 与 INSIST 研究口径 5 13 |
| 数据更新延迟 | 约 1 年 | 前一年数据次年 7 月可得 5 |
| Constances-SNDS 链接率 | 约 96% | 确定性 NIR 链接 4 |
| FCCSS 概率匹配链接率 | 81.9%(5,583/6,818) | 无 NIR 的历史队列概率匹配 2 |
| EGB 样本量 | 约 70 万(2017)/ 约 83 万(2021) | 1/97 随机永久抽样 6 2 |
| SNIIRAM 人口覆盖 | 约 98% | 门诊理赔侧口径 7 |
表中数字的引用纪律:链接率类数字(96%/81.9%/97%)是"方法 × 数据"的联合属性,换链接方法即失效;流量类数字(12 亿/1,100 万/5 亿)随统计年份漂移;样本量类数字(70 万/83 万)是时点值。三者都应带年份与来源引用,本条目正文已逐项执行这一纪律,供写作时模仿。
§4.4 数据层级关系(个体轨迹的三级主键体系)
居民(人口口径,约 6,700 万)
└── 受益人(pseudonymised_beneficiary_id,唯一伪匿名标识符)
├── 门诊事件(DCIR):理赔单 → 药品/检验/操作行项
│ └── 每行携带:care_date + 编码 + 金额
├── 住院事件(PMSI):stay(pseudonymised_stay_id)
│ └── 每 stay 携带:主诊断 + 次诊断[] + 操作[] + DRG
├── 残障认定(MDPH):行政事件流
└── 死亡记录(CépiDC):至多一条(根本死因 + 死亡日期)
三层级关键约束:受益人层是全库链接的枢纽;住院 stay 级主键独立于理赔单号;死亡记录与住院通过同一受益人标识符汇合。家族成员(如新生儿挂靠母亲受益人)的标识符关系在受益人层处理,研究者必须区分"受益人 NIR"与"个人 NIR"(详见坑点 6)3。
键关系的工程约束总结如下:
| 关系 | 键 | 基数 | 建模含义 |
|---|---|---|---|
| 受益人 → 门诊理赔 | pseudonymised_beneficiary_id | 1 : N(人均数十至数千行/年) | 任何聚合前先按受益人分组 |
| 受益人 → 住院 stay | pseudonymised_beneficiary_id | 1 : N | stay 级窗口特征的主单位 |
| 受益人 → 死亡记录 | pseudonymised_beneficiary_id | 1 : 0-1 | 生存分析的终点表 |
| stay → 诊断/操作 | pseudonymised_stay_id | 1 : N | 主诊断唯一、次诊断/操作多条 |
| 受益人 → 家庭 | 主受益人结构 | N : 1(家属挂靠) | 聚类稳健标准误的单位 |
层级选择最常见的三个错误:在理赔行级做"患者数"统计(把同一人多行当多人);在 stay 级做门诊事件聚合(把住院拆散成行后无法回溯 stay 上下文);把死亡记录当作独立事件表而忘记它同时截断其他轨迹。规避方法是在特征工程前先画出本项目的"实体关系草稿"——受盖人、stay、理赔行、死亡记录各自的粒度与时间边界,让团队对"一行是什么"达成一致后再写第一行聚合代码。
§4.5 缺失值情况与信息性缺失编码
| 缺失类型 | 机制 | 对 AI 建模的含义 | 处理建议 |
|---|---|---|---|
| 无住院 → 无诊断码 | 结构性:诊断只随住院摘要产生 | “未住院者全疾病谱不可见”,非随机缺失 | 以 ALD + 药物代理补足门诊侧疾病信息 8 |
| 非 ALD 门诊 → 无诊断码 | 结构性:门诊理赔只携带操作/药品/金额 | 门诊疾病识别必须走代理变量 | 三角验证(见坑点 2) |
| 自付/未报销照护 → 完全无记录 | 覆盖性:仅报销通道内的照护可见 | 特定专科(如部分口腔、光学)低估 | 在论文 limitations 明示 |
| 社会经济地位变量 | 库内几乎不存在 | 无法直接做 SES 分层 | 以居住地行政区划作粗代理并声明局限 4 |
| EGB 内 SSR/PSY 住院 | 样本级未供应 | 样本库低估康复与精神住院 | 精神/康复研究走穷尽库 2 |
| 药品自付/非报销渠道 | 覆盖性:仅报销交付可见 | 暴露时长估计偏短( Stop 疑似中断实为自费) | 以"末次交付 + 库存时长估计"窗口化,敏感性分析放宽窗口 |
对每类缺失做三层检验再决定处理策略:第一层,判断缺失是"行不存在"(结构性)还是"字段为空"(值级);第二层,对结构性缺失追问"没有记录是可能还是没有发生";第三层,把处理策略写进敏感性分析(如药品窗口宽窄、诊断代理有无),而不是只报一个主分析。行政数据的缺失处理几乎没有"标准答案",审稿人期待看到的是你对缺失机制的推理过程,而非某个填充算法的名称。
§5 数据划分与使用建议
§5.1 官方数据划分
无。SNDS 是持续滚动的行政数据库,不存在机器学习意义上的官方 train/val/test 划分。官方交付按"批准协议的时间窗与人群范围"切片,不预设任何建模划分。
这不意味着"划分随意"——恰恰相反:没有官方划分兜底时,划分方案本身就是审稿人检验你方法学严谨性的第一站。以下社区惯例按使用频率排列,建议在论文方法节明确写出你选了哪种、为什么。
§5.2 推荐划分策略
- 时间划分(首选):以数据快照年份为界——例如训练用 2006-2016、验证 2017-2018、测试 2019-2021,模拟"模型上线后面对未来数据"的真实场景;同时天然处理编码体系随时间的演进。
- 地理划分(补充):按行政区(省/大区)划分训练与测试区,检验跨地区编码差异下的泛化(法国各地区医院编码习惯存在差异,见 §7.1)。
- 人群划分(对照):如 EGB 样本上开发、穷尽库上验证,利用 1/97 样本与全库的嵌套关系做"廉价开发 → 全量验证"两级流程;外推时必须使用抽样权重(见坑点 3)。
- 制度划分(稳健性):以医保制度归属(综合/MSA/RSI)构造额外分层,检验跨制度人群结构差异下的结论稳定性 6。
- 划分时点卫生:任何划分都必须在"受益人"级别切分(同一受益人的事件绝不可跨集),防止个体轨迹泄漏。
- 快照冻结日概念:由于数据按年度快照交付(次年 7 月可得前一年数据 5),应给每个实验显式记录"快照冻结日"(snapshot cutoff),所有时间划分以冻结日为界倒推;跨冻结日比较模型性能时,先确认两次实验用的是同一快照(见 §6.10)。
无论选哪种划分,结果表的最小报告集为:划分方式的文字定义(时间边界/区域名单/样本量)、训练-验证-测试的受益人数与事件数(不只是行数)、以及划分单元粒度的声明(受益人级)。这三项齐全的划分描述,足以让审稿人复现你的数据切分逻辑。
§5.3 数据泄漏风险防御
| 泄漏源 | 机制 | 防御 |
|---|---|---|
| 标签泄漏(结局前置码) | 用包含结局本身住院的理赔历史构造特征(如以心梗住院预测心梗) | 特征窗口与结局窗口硬隔离:先定 index date,特征仅用其之前的理赔 |
| ALD 时点泄漏 | ALD 认定常发生在诊断确立后,认定日期晚于临床起点 | 区分"ALD 登记日期"与"临床诊断日期",事件定义优先用住院/死因码 |
| immortal time bias | 从"进入数据库"而非"进入队列"起算随访,把必然存活时间算入暴露组 | 目标试验模拟:定义明确的零时点(index date),暴露者按处方日期对齐 13 |
| 同一受益人跨集 | 随机按行划分导致同一患者轨迹同时出现在训练与测试 | 受益人级 group split(GroupShuffleSplit) |
| 年度快照边界 | 快照拼接处(每年重建)事件重复或丢失 | 去重键用"受益人 + 事件编码 + 日期",跨年拼接后做一致性检查(见坑点 1) |
| 码表版本泄漏 | 用"现在"的码表版本回填历史记录(码当时尚不存在) | 码表版本与记录年份绑定,映射表随快照版本固定 |
泄漏防御的最后一道工序是自查清单:交付前逐项确认"划分在受益人级、特征窗终点严格早于结局窗起点、index date 定义在协议与代码中一致、快照版本全程统一、事件键去重已执行"。五项中有任何一项存疑,先补检查再跑实验——在亿级事件库上返工的成本远高于多一次检查。
§5.4 交叉验证建议
- 以受益人为单位的分层 Group K-Fold(K=5),分层变量用结局发生率或年龄带。
- 时间敏感任务用"前推验证"(forward chaining):训练窗逐步右移,报告逐年性能漂移,检验编码规则更新带来的概念漂移。
- 外推验证优先级高于库内 CV:先在 EGB 上交叉开发,再在穷尽库抽样的独立省区上验证,最后(如可行)在调查链接子集(Constances)上做外部效度检验 4。
- CV 的随机种子要固定并记录:SNDS 的建模表动辄百万受益人,不同划分的指标波动虽小但非零,跨论文比较时固定种子能让差异解释为模型而非划分。
§5.5 外部验证
SNDS 的外部验证传统做法是"码表算法 vs 病历金标准":从算法识别的队列中抽样人工复审病历,报告 PPV/灵敏度/特异度(如 PCOS 算法验证 11)。跨库外部验证可用结构最接近的 EGB(同编码体系)或与队列链接数据(Constances 自报 + 体检变量)对照理赔派生变量的一致性。详细的已发表验证矩阵见 §7.8。
计划外部验证时的一个务实建议:把验证数据源的获取写进与主数据同期的申请(病历复审的伦理与流程、Constances 等队列的对接申请都有各自周期),而不是主数据分析完成后再启动——外部验证是 SNDS 论文最常见的审稿补强要求,提前布局能把一轮审稿周期省下来。
§6 AI 就绪指南
§6.0 云端快速启动(HDH 平台 / CASD 沙盒)
SNDS 不能下载到本地——所有处理都在认证安全环境中完成。两种主流环境:
| 环境 | 运营方 | 特点 | 适用 |
|---|---|---|---|
| Health Data Hub 平台 | HDH(GIP) | 为获 CNIL 授权的项目准备仅含必要数据的"项目空间",远程处理、结果可带走(须为聚合结果),原始数据不可下载 14 | 经 CESREES + CNIL 全流程审批的新项目 |
| CASD(Secure Data Access Center) | CASD(HDS 认证数据中心) | 认证健康数据托管方,安全"气泡"内做质控后释放给授权项目 4 | 传统 CNIL 审批项目与官方机构(如 EPI-PHARE) |
两种环境共享同一条工作哲学:代码进、结果出,数据不动。你把分析脚本带入环境,在数据旁边运行,只把聚合结果、图表与代码本身带出。因此本地开发习惯要做三处迁移:其一,交互式 notebook 换成可重跑的脚本(环境会话不持久保留依赖安装);其二,任何"导出 CSV 回本地分析"的步骤改为环境内完成全部分析;其三,依赖与环境信息写进项目文档,因为环境栈由平台统一管理。
快速验证环境可用性的最小操作(在项目空间内运行):
# 目标:确认会话环境、Python 栈与项目数据可见性
# 预期目录结构:项目空间根目录下挂载分配给你的数据提取(见 §4.0)
# data_root = 平台分配的挂载路径(登录后查看项目空间首页说明)
import os, pandas as pd
data_root = os.environ["PROJECT_DATA_ROOT"] # 平台注入的环境变量
tables = os.listdir(data_root)
print(tables) # 列出批准协议范围内的表
# 最小可用子集:优先读一张小表(如 beneficiary_register)验证 schema
head = pd.read_parquet(f"{data_root}/beneficiary_register", columns=[])
print("schema 可读,列:", head.columns.tolist() if len(head) else "(空读验证通过)")
环境验证的目标不是跑通计算,而是跑通"合规边界":确认你能看到哪些表(= 协议批准范围)、字段映射是否需要修正、以及输出目录(结果发布用)是否可写。这三件事在第一天确认,比在第三周发现"申请的表没交付"要省一个审批往返。
§6.1 快速上手(受益人轨迹构建)
代码块前置说明:
- 目录结构预期:
data_root/下为 §4.0 所示的dcir/、pmsi/、cepidc/组织(Parquet 格式假设;若项目交付为 SAS/CSV,将read_parquet换成对应读取函数)。data_root拼接关系:所有路径相对平台分配的项目空间根目录,不存在本地下载步骤。- 最小可用子集:
dcir/drug_deliveries+pmsi/mco_stays+cepidc/deaths三张表即可完成一个"药物暴露 → 住院结局 → 死亡终点"的最小轨迹建模。- 错误排查顺序:路径不存在 → 先核对协议批准的表清单(
os.listdir(data_root));列名不存在 → 查官方数据字典的逻辑名映射;日期解析异常 → 确认快照年份与日历年的对应关系(坑点 4)。
import pandas as pd
# 步骤 1:读取三个最小子集(列名按项目空间官方数据字典映射到逻辑名)
dcir = pd.read_parquet(f"{data_root}/dcir/drug_deliveries",
columns=["pseudonymised_beneficiary_id", "care_date",
"atc_drug_code", "reimbursement_amount"])
pmsi = pd.read_parquet(f"{data_root}/pmsi/mco_stays",
columns=["pseudonymised_beneficiary_id", "pseudonymised_stay_id",
"care_date", "primary_diagnosis_icd10", "stay_length_days"])
deaths = pd.read_parquet(f"{data_root}/cepidc/deaths",
columns=["pseudonymised_beneficiary_id", "date_of_death",
"underlying_cause_icd10"])
# 步骤 2:定义暴露与结局(示例:新型口服抗凝药使用者 vs 卒中住院)
expo_atc_prefix = ("B01AF", "B01AE") # NOAC 类 ATC 前缀
dcir["expo"] = dcir["atc_drug_code"].str.startswith(expo_atc_prefix)
stroke_prefix = ("I61", "I63", "I64") # 卒中 ICD-10 前缀
# 步骤 3:受益人级聚合(绝不按行划分!见 §5.2)
first_expo = (dcir[dcir["expo"]]
.groupby("pseudonymised_beneficiary_id")["care_date"].min()
.rename("index_date"))
first_stroke = (pmsi[pmsi["primary_diagnosis_icd10"].str.startswith(stroke_prefix)]
.groupby("pseudonymised_beneficiary_id")["care_date"].min()
.rename("stroke_date"))
death_date = deaths.groupby("pseudonymised_beneficiary_id")["date_of_death"].min()
# 步骤 4:拼接为建模级宽表(一人一行),并生成事件标志与随访天数
cohort = first_expo.to_frame().join(first_stroke).join(death_date)
cohort["had_stroke"] = cohort["stroke_date"].notna()
cohort["followup_days"] = (cohort["stroke_date"].fillna(cohort["date_of_death"])
.sub(cohort["index_date"]).dt.days)
cohort = cohort[cohort["followup_days"].isna() | (cohort["followup_days"] >= 0)]
# 步骤 5:基线特征矩阵 + 最小监督基线(验证管线端到端跑通)
# 基线窗 = index_date 前 365 天的暴露次数与总金额(特征窗与结局窗隔离,见 §5.3)
base = dcir[dcir["expo"]].merge(first_expo, on="pseudonymised_beneficiary_id")
base = base[base["care_date"] < base["index_date"]]
base = base[base["care_date"] >= base["index_date"] - pd.Timedelta(days=365)]
feat = base.groupby("pseudonymised_beneficiary_id").agg(
n_expo=("atc_drug_code", "size"), total_cost=("reimbursement_amount", "sum"))
X = cohort.join(feat).fillna({"n_expo": 0, "total_cost": 0.0})[["n_expo", "total_cost"]]
y = (cohort["stroke_date"].notna()
& (cohort["stroke_date"] - cohort["index_date"] <= pd.Timedelta(days=365)))
from sklearn.ensemble import HistGradientBoostingClassifier
from sklearn.model_selection import GroupShuffleSplit
tr, te = next(GroupShuffleSplit(n_splits=1, test_size=0.25, random_state=0)
.split(X, groups=X.index)) # 受益人级划分
model = HistGradientBoostingClassifier(random_state=0).fit(X.iloc[tr], y.iloc[tr])
from sklearn.metrics import roc_auc_score
print("快速基线 AUROC:", roc_auc_score(y.iloc[te], model.predict_proba(X.iloc[te])[:, 1]))
# 该基线仅含 2 个特征,目的在验证管线而非追求性能;正式建模按 §6.3 扩展特征
print(cohort["had_stroke"].mean()) # 暴露者粗卒中率(未调整,勿直接当因果效应)
§6.2 数据获取流程
经 HDH 平台访问 SNDS 的六步官方流程 14:
| 步骤 | 主体 | 内容 |
|---|---|---|
| 1 | 申请方(公私均可) | 向 Health Data Hub 提交访问申请(可请求申请辅导) |
| 2 | CESREES | 审查研究主题的公共利益性、申请数据与项目的匹配性、方法学科学稳健性 |
| 3 | CNIL | 基于目的审查数据保护与公民权利保障,作出授权决定 |
| 4 | HDH | 整合批准范围内数据,在平台准备只含必要数据的安全"项目空间" |
| 5 | 使用者 | 远程进入项目空间处理数据;数据不可带走(聚合结果可发布) |
| 6 | 申请方 | 项目结果在 HDH 网站公开(尊重学术与产业竞争平衡) |
流程的并行性提示:第 1-3 步串行(申请 → CESREES → CNIL),但第 4 步的数据整合可与第 5 步的环境配置准备部分并行;把方法学协议写得越精确,第 4 步的往返越少。整个链条中最慢的变量通常是申请方对"最小必要数据范围"的论证质量,而不是机构审期本身。
合规硬约束:私人主体须证明公共利益;L.1461-1 条刑事化"向医疗专业人员商业推广"与"影响保险费率"两类用途;数据不得出售;HDH 可收取平台服务费 14。数据主体保有访问/更正/反对/删除权利(R.1461-9)12。
时间与费用预期(供立项规划参考,非官方承诺):第三方分析称标准学术研究审批约 8-12 周、加速的公共卫生研究约 4-6 周 9;官方口径强调流程按 CESREES 与 CNIL 审查节奏推进,含调查链接或多中心的项目耗时显著更长。HDH 可对平台服务收取费用 14,预算中应预留平台使用费与数据整合费用两项。
申请材料按 CESREES 审查维度反推准备,能显著减少往返:
| 材料 | 对应审查维度 | 常见退回原因 |
|---|---|---|
| 项目协调者与团队资质说明 | 主体适格 | 团队无健康数据研究经验且无合作方补足 |
| 研究主题与公共利益论证 | CESREES 第 1 关 | 目的表述偏商业(即使主体合规) |
| 数据必要性论证(逐表逐字段) | CESREES 数据匹配性审查 | "全库申请"而非最小必要范围 |
| 方法学协议(含统计与表型算法定义) | CESREES 科学稳健性 | 缺少表型算法的验证计划 |
| 安全与合规方案 | CNIL 授权审查 | 未按 SNDS 安全参考说明处理环境 |
| 结果公开与发表计划 | 六步流程第 6 步 | 无明确的公开渠道与时间表 |
提交前自检三件事:所有数据需求能否映射到"研究问题 → 变量 → 编码 → 表"的链条(映射不上的字段就是会被退回的字段);方法学协议是否包含表型算法定义与验证计划;团队分工中是否有具备 SNDS 使用经验的角色(没有则写明合作方或辅导请求)。
§6.3 预处理 Pipeline
# SNDS 逻辑预处理流水线(在项目空间内运行;列名按官方数据字典映射)
# 阶段:格式统一 → 受益人级去重 → 编码体系映射 → 特征窗口化 → 缺失策略
# 设计原则:①一切聚合以受益人为单位;②特征窗口与结局窗口物理隔离;
# ③每个中间产物落盘为可复算的 Parquet(列裁剪),避免重复全库扫描;
# ④任何"看起来像缺失"的值先判定机制(§4.5 三层检验)再动手处理。
import pandas as pd
# (1) 年度快照拼接:SNDS 按年度快照滚动交付,先纵向拼接再查重(防跨年重复,见坑点 1)
dcir_all = pd.concat([pd.read_parquet(f"{data_root}/dcir/drug_deliveries/{y}")
for y in range(2015, 2022)], ignore_index=True)
dedup_keys = ["pseudonymised_beneficiary_id", "atc_drug_code", "care_date"]
dcir_all = dcir_all.drop_duplicates(dedup_keys, keep="first")
# (2) ICD-10 前缀标准化:法国实践以三位前缀定义事件组(I63 脑梗死族)
pmsi["dx3"] = pmsi["primary_diagnosis_icd10"].str[:3]
# (3) ATC 五级截断:暴露定义统一到第 4-5 级(化学/物质级),避免以剂型级定义暴露
dcir["atc4"] = dcir["atc_drug_code"].str[:5]
# (4) 特征窗口化:index date 前 365 天为基线窗,构造既往暴露/合并症特征
# (特征窗口与结局窗口硬隔离,防泄漏,见 §5.3)
baseline = dcir.merge(first_expo, on="pseudonymised_beneficiary_id")
baseline = baseline[baseline["care_date"] < baseline["index_date"]]
# (5) 缺失策略:行政数据缺失多为结构性(非随机),对"无记录"生成显式缺失指示列,
# 而不是用中位数盲目填充(例如"既往无住院"是信息,不是缺失)
# (6) 概念漂移监控:编码规则与名录逐年演进,对每个特征画逐年分布,
# 数量级突变年要回到政策/编码变更史找原因(DRG 调整、名录更新)
yearly = dcir_all.assign(year=dcir_all["care_date"].dt.year)
drift = yearly.groupby("year")["atc4"].nunique()
print(drift) # 药品种类数逐年变化示例
# (7) 输出聚合:结果表任何单元格基于足够多个体(最小单元计数原则),
# 行级数据永不离开项目空间(见坑点 8)
§6.4 框架加载(PyTorch 受益人轨迹 Dataset)
import numpy as np
import pandas as pd
import torch
from torch.utils.data import Dataset, DataLoader
class SNDSTrajectoryDataset(Dataset):
"""受益人级事件轨迹 Dataset:门诊事件序列 → 首次卒中预测。
data_root:平台项目空间根目录;max_len:每受益人事件截断长度。
输入特征 = (ATC4 码 one-hot 摘要, 距 index_date 天数, 金额);标签 = 1 年内首次卒中住院。"""
def __init__(self, claims: pd.DataFrame, stays: pd.DataFrame, max_len: int = 64):
self.max_len = max_len
self.events = (claims.groupby("pseudonymised_beneficiary_id")
.apply(lambda g: g.sort_values("care_date")[["atc4", "days_to_index", "amount"]]
.to_numpy(np.float32)))
self.stroke = (stays.assign(stroke=stays["dx3"].isin(["I61", "I63", "I64"]))
.groupby("pseudonymised_beneficiary_id")["stroke"].any())
def __len__(self):
return len(self.events)
def __getitem__(self, idx):
bid, events = self.events.index[idx], self.events.iloc[idx][: self.max_len]
n, pad = len(events), self.max_len - len(events)
x = np.pad(events, ((0, pad), (0, 0)), mode="constant") # 尾部零填充
mask = np.concatenate([np.ones(n, np.float32), np.zeros(pad, np.float32)])
y = float(self.stroke.get(bid, False))
return torch.from_numpy(x), torch.from_numpy(mask), torch.tensor(y)
loader = DataLoader(SNDSTrajectoryDataset(dcir_all, pmsi), batch_size=256,
num_workers=2, pin_memory=True)
Dataset 设计的三个要点:其一,尾部零填充 + 掩码矩阵是事件序列的标准做法,模型侧用掩码屏蔽填充位即可,不要用"把填充位当作无操作事件"的偷懒方案;其二,特征里保留"距 index date 的天数"作为显式通道,比纯粹的事件顺序号携带更多时间信息;其三,self.stroke.get(bid, False) 的默认值语义是"无住院记录 = 未发生卒中",这只有在"死亡者必有记录、卒中必有住院"的假设下成立——换任务时必须重新审视默认值方向,这是行政数据建模最容易翻车的隐式假设。
§6.5 常见坑点
⚠️ 坑点 1:年度快照拼接产生跨年重复与轨迹断裂(分类:预处理陷阱)
问题:SNDS 以年度快照滚动交付(前一年数据次年 7 月可得 5),跨年拼接时边界事件可能重复入库;同时伪匿名标识符体系基于 FOIN(NIR-ANO) 哈希,受益人身份信息变更可致链接断裂,算法仍在为"维持时间链接"而演进 3。直接 concat 会同时引入重复行与"同一人两套 ID"两类错误。
症状:同一处方在同月出现两行;随访人数在某年后"突变";轨迹中段出现无解释的长时间空白。
解决:
- 简单方法:拼接后按"受益人 + 编码 + 日期"去重(
drop_duplicates(keep="first")),并对每受益人逐年事件计数画趋势线,突变年重点人工核查。- 进阶方法:以官方"受益人永久 NIR 整合各 NIR-ANO"的机制为前提,用项目空间提供的挂号表(制度归属连续性)校验同一伪匿名号的身份连续性;断点受益人拆分为独立个体并在论文中说明。
- SOTA 方法:时间对齐以"服务日期"而非"结算日期"为主轴(两字段都要取,主轴缺失时回退),并以 CépiDC 死亡日期作全局终点封顶随访窗。
参考:Tuppin et al. 2018, Rev Epidemiol Sante Publique;EPI-MERES 数据说明
⚠️ 坑点 2:门诊侧"没有诊断码"却被当疾病信息缺失(分类:标签理解)
问题:门诊理赔记录只携带操作/药品/金额,不携带 ICD-10 诊断——系统性门诊诊断只有 ALD 长期病登记 8。把"门诊行无诊断码"当普通缺失值填充,会把大量健康人错标为"信息缺失",且门诊疾病谱整体不可见。
症状:仅用门诊数据训练疾病分类器时 AUROC 异常低;特征重要性集中在金额与检验码(无诊断信息可用)。
解决:
- 简单方法:疾病定义 = ALD 码 ∪ 住院 ICD-10 ∪ 药物 ATC 代理(三源任一命中即入队),并报告各源贡献比例。
- 进阶方法:按疾病特性定制算法——高血压/糖尿病等慢病优先 ALD + 药物;急性事件(心梗/卒中)优先住院码 + 死因;对每个算法报告 PPV 与灵敏度(抽样病历验证)。
- SOTA 方法:用已发表验证过的算法(如 BMC 2025 的 PCOS 识别算法 11)作冷启动,再按本地协议微调码表。
参考:Bouchez et al. 综述(HAL)
⚠️ 坑点 3:EGB 外推忘记 1/97 加权,且样本不含 SSR/PSY(分类:评估误用)
问题:EGB 是 1/97 随机永久样本(约 70-83 万人),不是 1/19 或 1/20,更不是全库 6 2。把 EGB 计数直接当全国数字,或忽略其不含 PMSI 康复(SSR)与精神(PSY)住院的事实,会系统性低估全国住院与费用。
症状:EGB 上估计的全国住院数比 PMSI 官方发布低近两个数量级;精神科研究在 EGB 上"找不到病人"。
解决:
- 简单方法:全国估计统一乘 97(或使用官方抽样权重),并在方法学声明抽样比例与来源。
- 进阶方法:涉及康复/精神住院的研究改用穷尽库路径;EGB 仅作算法开发。
- SOTA 方法:EGB 开发 → 穷尽库分区验证的两级流水线(§5.2),全程报告加权前后差异。权重从官方抽样框架推导(按制度与年龄性别结构核对分层覆盖),不要自行发明外推系数。
参考:IRSN EGB 方法报告;Bejarano-Quisoboni et al. 2022, Sci Rep
⚠️ 坑点 4:把"次年 7 月可得"当近实时数据源(分类:评估误用)
问题:SNDS 年度更新一次,最新完整年份滞后约 1 年 5。任何"实时/准实时预警"定位(如疫情期实时监测、住院实时预警)都超出数据供给能力。
症状:申请协议里写了近期月份范围,项目空间里却拿不到;模型"上线即回测失效"(实际是数据截止早于预期)。
解决:
- 简单方法:把研究窗口终点定在"最近完整年份 - 1",申请协议与论文时间线一致。
- 进阶方法:需要实时性的研究改用 EHR/院内数据仓库,SNDS 只承担结局确证(死亡/出院)。
- SOTA 方法:设计"回溯确证 + 前瞻模拟"双阶段评估,明确区分数据可得性与业务实时性。
参考:EPI-MERES 注册系统说明
⚠️ 坑点 5:忽视结算驱动的编码行为(upcoding 与编码变异性)(分类:偏倚陷阱)
问题:住院编码服务 DRG 定价,门诊理赔服务结算——编码行为受支付激励驱动 8,且全国统一质量控制计划并不消除机构间编码习惯差异 3。把"编码变化"直接解读为"疾病流行变化"会得出错误结论。
症状:某病住院率在支付政策调整年出现台阶式跳变;同一严重度在不同类型医院编码分布显著不同。
解决:
- 简单方法:时间序列分析加入"政策/编码规则变更"断点变量,或避开变更年做敏感性分析。
- 进阶方法:结局定义优先用对支付激励不敏感的硬终点(死亡、再入院),诊断强度类指标做机构层面标准化。
- SOTA 方法:以"同病种跨机构编码强度比"构造编码强度调整因子,敏感性与主分析并行报告。
参考:HAL 综述;Tuppin et al. 2018
⚠️ 坑点 6:混淆"受益人 NIR"与"个人 NIR"(家属共用标识符)(分类:工程陷阱)
问题:社保体系中"受益人 NIR"唯一而"个人 NIR"不唯一——家属(配偶、未成年子女)挂在主受益人下共享同一 NIR 3。研究者若把受益人标识符无条件当"个人"聚合,会把母子/夫妻的照护混入同一轨迹。
症状:男性出现妊娠相关记录;同一"人"同一天在两地就诊;儿科用药出现在成人轨迹中。
解决:
- 简单方法:轨迹内做基本一致性检查(性别冲突、年龄与药品/产科码冲突),冲突个体剔除或拆分。
- 进阶方法:母子研究直接用官方母子链接产物(EPI-MERES 口径 97% 关联 5),不要自行从理赔流重建亲子关系。
- SOTA 方法:以挂号表的受益人结构变更历史(子女独立开户时点)为切割事件重构个人级轨迹。
参考:Tuppin et al. 2018(NIR-ANO 机制节)
⚠️ 坑点 7:immortal time bias——随访从"入保"而非"入组"起算(分类:偏倚陷阱)
问题:行政库天然覆盖每个居民全部历史,若以"进入数据库/获得保险"为起点比较"后来暴露者 vs 从未暴露者",暴露者在成为暴露者前的存活时间被算入暴露组,产生免疫时间偏倚,效应被系统性低估。
症状:暴露组死亡率"低得不合理";新药使用者看起来比常人健康数倍。
解决:
- 简单方法:为每位暴露者定义明确的 index date(首次处方日),随访自 index date 起算;对照按日历时间匹配进入。
- 进阶方法:目标试验模拟(target trial emulation)框架:明确合格标准、治疗策略、随访起点与终点,再落到理赔数据实现 13。
- SOTA 方法:cloning/censoring/weighting 处理时间零点与依从性偏离,报告 E value 敏感性。
参考:INSIST 研究设计(index date 定义)
⚠️ 坑点 8:试图把数据或个体级结果带出安全环境(合规红线)(分类:工程陷阱)
问题:SNDS 数据不出认证环境:HDH 平台/CASD 的使用条款具法律约束力,禁止再识别尝试;原始数据不可下载,只有聚合结果可发布 14 4。把"下载一份 CSV 到本地跑深度学习"的常规工作流带入 SNDS 是违规而非技术难题。
症状:项目空间没有出站网络/拷贝通道;发布前小样本行级表格被合规审查拦下。
解决:
- 简单方法:把全流程(含训练)改写为在项目空间内执行的脚本;交付物只有代码、日志与聚合统计表。
- 进阶方法:输出遵循"最小单元数"聚合原则(任何表格单元基于足够多的个体),避免小格子再识别风险。
- SOTA 方法:在协议阶段就把模型评估输出定义为预注册的聚合指标清单,减少来回审批。
参考:HDH FAQ(安全与合规节)
§6.6 数据增强
| 策略 | 安全性 | 说明 |
|---|---|---|
| 事件序列随机裁剪/掩码(masked event modeling) | ✅ | 保留时序单调性,训练轨迹编码器 |
| 时间窗滑动采样(同受益人多窗) | ✅ | 扩大样本量但须在同一划分集内(防泄漏) |
| 诊断码层级聚合(ICD-10 章节级) | ✅ | 稀有码泛化,等价于特征粗化 |
| 打乱事件顺序 | ❌ | 破坏照护时序语义,轨迹模型失效 |
| 合成受益人(生成模型采样个体级记录) | ❌ | 行政数据个体级合成再识别风险高,且与合规输出规则冲突 |
| 随机改报销金额/日期 | ❌ | 破坏成本与时距特征的校准 |
| 事件时间差分分箱(0-7/8-30/31-90/90+ 天) | ✅ | 把不规则时序离散化,树模型友好,语义无损 |
增强策略的选择标准只有一条:变换后的数据仍必须是"合法的报销轨迹"。任何保持事件类型、时序单调与金额语义不变的变换(裁剪、掩码、分箱、层级聚合)都安全;任何创造不存在的照护模式(打乱顺序、合成个体、篡改金额)的变换都会同时破坏模型正确性与合规立场。
§6.7 模型推荐
选型顺序遵循"可审计性优先":能用规则算法说明白的就不上黑盒,需要黑盒时保证输出可聚合、特征可解释——这与 §6.2 的合规审查和 §8.3 的评测协议一脉相承。
| 任务 | 推荐模型 | 理由 |
|---|---|---|
| 事件预测(1 年内卒中/死亡) | 梯度提升树(XGBoost/LightGBM)+ 结构化基线特征 | 表格型理赔特征上基线强、可解释、合规审查友好 |
| 轨迹表示学习 | 掩码事件 Transformer / GRU(事件序列 + 时间差分编码) | 直接建模多事件不规则时序 |
| 表型识别 | 规则算法(ALD/ICD/ATC 组合)为主 + 监督模型为辅 | 规则可审计,是发表验证研究的标准做法 |
| 因果效应估计 | 目标试验模拟 + 边际结构模型(IPTW) | 行政库 RWE 的方法学主流 |
| 成本预测 | 两部模型(发生概率 + 强度) | 医疗成本零膨胀分布的标准处理 |
| 死亡风险随时间更新 | 生存模型(Cox/随机生存森林)+ 依时协变量 | 充分利用理赔流的时变暴露信息 |
| 治疗路径发现 | 序列模式挖掘 / 隐马尔可夫 | 门诊理赔事件流天然适合路径分析 |
这些推荐的共同前提是第 2 列的"可解释结构":树模型给出特征重要性、生存模型给出风险比、目标试验模拟给出清晰的时间线——在行政数据研究里,能被临床与政策审稿人读懂的模型比高两个点的 AUROC 更有价值。深度学习保留给轨迹表示学习等规则算法确实无法覆盖的子任务。
§6.8 计算资源需求
| 阶段 | 资源 | 说明 |
|---|---|---|
| 数据探查 | 平台分配虚拟机(CPU 足够) | 项目空间内交互式分析,内存建议 ≥ 32 GB |
| 特征构建 | 多核 CPU + 大内存 | 亿级行理赔聚合,优先分块/列裁剪读取 |
| 模型训练 | CPU 即可胜任树模型;Transformer 轨迹模型单卡 GPU | 平台环境对 GPU 的分配以项目协议为准 |
| 存储 | 按协议范围预留 | 项目空间配额随批准数据范围确定 |
| 中间产物 | 项目空间内的列裁剪 Parquet 缓存 | 把"亿级行 → 受益人级特征"的中间结果物化,避免每次重扫全库 |
| 并行读取 | 分块按年/按制度切片 | 年度快照结构天然支持按年分块 |
资源配置的经验法则:预处理阶段是内存与 I/O 密集(宽拼接 + 去重),训练阶段反而是轻的——多数 SNDS 建模任务的建模表在受益人级不超过千万行 × 数百列,单机可承载。把资源花在"重扫全库"上不如花在"物化中间层"上(§6.3 设计原则 ③),这也与项目空间的配额计费方式更兼容。
补充一点关于 GPU 的现实:平台环境对 GPU 的供给不以"深度学习惯例"为准,而以批准协议中的技术方案为准。如果你的方法学确实需要 GPU(如轨迹 Transformer),在申请阶段就写入协议,比环境就绪后再申请变更快得多。
§6.9 评估指标
from sklearn.metrics import roc_auc_score, average_precision_score, brier_score_loss
def evaluate(y_true, y_prob):
"""SNDS 建模核心指标:判别(AUROC/AUPRC)+ 校准(Brier)。
表型算法另需病历验证口径的 PPV/灵敏度(见 §7.8 矩阵)。"""
return {
"AUROC": roc_auc_score(y_true, y_prob),
"AUPRC": average_precision_score(y_true, y_prob), # 低发生率结局优先看 AUPRC
"Brier": brier_score_loss(y_true, y_prob), # 成本/风险模型须校准
}
指标选择的两个 SNDS 特有原则:其一,年度事件发生率通常在个位数百分比量级,AUROC 会显得虚高,审稿人真正看的是 AUPRC 与校准斜率——把两者写进默认评估模板;其二,凡是面向"费用与资源分层"的模型(§6.7 两部模型),分亚组的校准误差比全局 AUROC 更接近业务价值,建议按大区 × 年龄带输出分组 Brier 表并随结果一起发布(满足 §6.10 的公开义务)。
§6.10 MLOps 笔记
- 可复现性以"快照版本"为单位:记录每次提取的数据截止年份与快照日期(数据约一年滞后,见坑点 4),模型性能须绑定快照版本报告。
- 输出即合规物:模型评估表在发布前可能需经协议合规审查(坑点 8),把"输出格式"纳入开发规范(聚合粒度、单元格最小计数)。
- 特征仓库替代方案:在项目空间内维护"受益人级特征快照表 + 生成脚本哈希",替代本地特征仓库;每次年度快照更新后重跑并 diff 特征分布。
- 结果公开义务:经 HDH 流程的项目结果须在 HDH 网站公开 14,预留发布版图表管线。
- 快照升级流程:每年新快照到达后走"固定脚本重跑 → 特征分布 diff → 性能回归报告"三步,把年度更新变成例行动作而非项目级风险(配合坑点 1 的去重与坑点 4 的滞后口径)。
- 方法学文档即资产:码表算法、排除标准与 index date 定义保存为版本化的协议文档,回应审稿与合规审查时可直接引用。
- 变更日志纪律:项目空间内维护一份纯文本变更日志(日期 + 动作 + 快照版本),覆盖数据接入、特征修改与模型重训——它是任何复现争议时的第一证据。
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解方式 |
|---|---|---|---|
| 覆盖偏倚(轻度) | 仅覆盖官方报销通道内照护;完全自付照护不可见 | 低 | 论文明示;对报销率近 100% 的结局影响可忽略 |
| 结算驱动编码偏倚 | 住院编码服务 DRG 定价,存在 upcoding 与机构间编码变异 8 | 中 | 硬终点优先;编码强度调整因子(坑点 5) |
| 结构性门诊诊断缺失 | 非 ALD 门诊无 ICD-10 诊断,门诊疾病谱不可见 | 高 | ALD+药物+住院三角验证(坑点 2) |
| 社会经济变量缺失 | 库内几乎无 SES/收入变量 4 | 中 | 居住地行政区粗代理并声明局限 |
| 种族变量法律性缺失 | 法国法律禁止采集民族/种族数据 | 高(公平性研究不可行) | 不做种族分层,避免跨国模型直接迁移 |
| 制度构成差异 | 综合制度与 MSA/RSI 等制度人群结构不同 6 | 低 | 按制度分层敏感性分析 |
| ALD 入选偏倚 | ALD 认定偏向已确诊且需长期治疗者,轻症与未诊断者缺席 | 中 | 事件定义优先住院/死因码;ALD 只作慢病补充标识 |
使用这张偏倚清单的推荐节奏:立项时逐行问"这个偏倚对我的研究问题是放大还是缩小"(放大项必须进敏感性分析,缩小项明示理由);投稿前再逐行问"审稿人会先质疑哪一行"(通常是结算驱动编码与门诊诊断缺失两行)。偏倚清单不是合规装饰,而是把 §7 全部定性讨论转成论文 limitations 章节的生成器。
§7.2 标注质量评估
住院诊断编码由 DIM 编码员按 ATIH 规则产生,门诊理赔由全国统一质控计划的结算系统产生(采集、录入、入库三层质控)3。研究级"标签"(疾病队列成员)质量以验证研究报告:标准做法是从算法识别队列抽样病历复审并报告 PPV 与灵敏度(如 PCOS 算法验证 11)。EGB 的内部效度(性别年龄结构与照护费用代表性)经 Roquefeuil 等验证 6。
阅读验证研究时注意三点:其一,PPV 必须与抽样设计和置信区间一起读——在高患病率亚组抽样的 PPV 不能外推到低患病率全人群;其二,灵敏度在理赔库验证中天然困难(需要独立的全人群金标准),多数研究只报 PPV,此时"特征窗放宽"等敏感性分析成为重要补充;其三,算法版本即质量版本,引用他人算法时锁定其码表与年份,不要混用不同版本的规则集。把这三点写进团队的表型协议模板,可以让每一版算法的验证报告自动对齐审稿预期。
§7.3 泛化性讨论
| 场景 | 失效风险 | 证据/理由 |
|---|---|---|
| 跨国迁移(法→他国理赔库) | 高 | 法国编码体系(CCAM/NABM/ALD)为法国特有,报销政策不同 |
| 法国国内跨地区 | 中 | 机构编码习惯差异存在(§7.1),需编码强度调整 |
| 跨时代(编码规则演进) | 中 | 编码规则与药品名录持续更新,需时间断点敏感性分析 |
| 跨数据类型(理赔→EHR) | 高 | 理赔无检验值/生命体征,EHR 模型特征不可直接对接 |
| 全人群→特定医院人群 | 中 | SNDS 覆盖全民,单院人群存在就医选择偏倚,反向迁移需重校准 |
| 成人模型→儿童人群 | 高 | 儿童就诊结构与药品名录不同,且母子挂靠使儿童轨迹需专门清洗(坑点 6) |
| 老年多病共存的年轻人群模型 | 中 | 高龄人群的竞争死亡与多病共存改变特征-结局关系,需按年龄带重校准 |
泛化性分析的操作化做法:把上表转成"泛化风险清单"写进模型卡(model card),每行标注你的模型在对应场景下的验证状态(已验证/未验证/不适用)。SNDS 模型最终多服务于法国医保与公卫决策,模型卡与泛化清单是向非技术决策者传达"这个模型在哪里可信"的最短文档。
§7.4 伦理考量
SNDS 的伦理框架由法律直接规定:数据主体保有访问、更正、反对再利用与删除的权利(《公共卫生法典》R.1461-9)12;使用必须通过 CESREES(公共利益与科学性)与 CNIL(数据保护)双重审查;向医疗专业人员商业推广或影响保险费率的用途被 L.1461-1 刑事化 14。法国还保留了国务院特定法令的历史机制(如 FCCSS 队列的数据让渡经 2014-96 号令批准)2。公民知情通过 HDH 的项目公开义务保障 14。
从研究设计者的角度,这套伦理架构对项目周期有直接约束:CNIL 审查关注目的正当性与最小必要,因此协议中"申请数据范围"一经批准便不可扩张——中途要加字段通常意味着重新走审查;结果公开义务使"负结果"也要有交代;而再识别禁令的法律属性意味着任何"顺便看一下这个人是谁"的念头都是刑事风险而非学术灰色地带。把这三条内化进团队工作规范,是 SNDS 项目区别于普通开源数据集项目的第一课。
§7.5 公平性评估
库内可用的公平性分析维度为性别、年龄与地域(行政区);种族维度因法律禁止而完全缺席,收入/教育等 SES 变量几乎缺席 4。这意味着:其一,可以做性别/年龄/地域的性能差异审计;其二,涉及种族健康差异的研究在本库不可行,不要试图以姓名或居住地代理种族(再识别风险且方法学不可接受);其三,制度归属(综合/农业/自雇)可作为职业阶层粗代理并须谨慎解释。
实操建议:把"分亚组 AUROC/校准"写进标准评估脚本(性别 × 年龄带 × 大区至少 3×N 组合),使每次模型迭代都自动产出公平性剖面;对缺失的 SES 维度,报告模型在 CMU-C(补充保险状态,可及性代理)分层下的性能差异,作为经济维度的下限替代——并在论文中明确声明这是代理而非收入度量。公平性结论的措辞保持"在本库可观测维度上",这个限定语不是示弱,而是把法律约束转写为方法学严谨。
§7.6 数据漂移提示
年度快照之间存在三层漂移:编码规则与 DRG 定价调整(影响诊断强度分布);药品与器械名录更新(LPP/ATC 可用码集变化);医保政策改革(如 100% Santé 影响自付比例与可见性)。跨年建模应固定"算法/码表版本 + 快照版本"并做逐年分布监控(见坑点 1 与 §6.10)。
监控落点建议三条:①每年新快照接入时,对核心特征(就诊次数、药品种类数、住院率)画年度趋势并在异常年标注已知的政策/编码变更;②模型输入特征中避免直接使用"当年"的名义金额(受支付标准调整影响),优先用量纲更稳的相对量或分组序数;③跨快照的模型性能对比必须绑定同一测试窗,否则漂移与模型差异混杂。
§7.7 DAIMS 24 项数据就绪度评估
评分口径:✅ 计 1 分、⚠️ 计 0.5 分、❌ 计 0 分,满分 24。评的是"数据集对 AI 工程的开箱即用程度",不是数据本身的质量——SNDS 数据质量全球顶尖,但即用性受制于其行政数据库本质。
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式可用性 | ❌ | 天然为事件级长表,需自行聚合为受益人宽表 |
| 2 | 唯一标识符 | ✅ | 受益人伪匿名标识符库内唯一;注意家属共用结构(坑点 6) |
| 3 | 特殊字符处理 | ✅ | 编码字段(ICD-10/ATC/CCAM)字符集规范 |
| 4 | 重复行检查 | ⚠️ | 年度快照拼接可产生边界重复,须按事件键去重(坑点 1) |
| 5 | 缺失编码机制 | ✅ | 缺失以结构性缺失为主(无住院 → 无诊断行),机制可解释 |
| 6 | 标签标识 | ❌ | 无现成监督标签,疾病标签由研究者码表算法派生 |
| 7 | 罕见类分组 | ✅ | 可经 ICD-10 章节/ATC 层级聚合控制稀有类 |
| 8 | 偏倚评估 | ⚠️ | 结算驱动编码与覆盖偏倚有据可查,但无官方偏倚报告 |
| 9 | 数据字典 | ✅ | 官方 DIB 培训材料提供全表字段说明 2 |
| 10 | 信息性缺失解释 | ✅ | "未住院无诊断"等信息性缺失语义明确(§4.5) |
| 11 | 设备记录 | ❌ | 纯行政数据,无设备/传感器记录 |
| 12 | 共线性检查 | ✅ | 金额/类型/日期字段可做标准共线性筛查 |
| 13 | 编码映射 | ✅ | 六套官方编码体系齐全(ICD-10/CCAM/NGAP/ATC/NABM/LPP)3 |
| 14 | 时间戳处理 | ⚠️ | 需区分服务日期与结算日期(坑点 1) |
| 15 | 划分建议 | ⚠️ | 无官方划分;本条目给出时间/地理/人群三策略(§5.2) |
| 16 | 泄漏讨论 | ✅ | 标签泄漏/immortal time 等风险有系统防御(§5.3、坑点 7) |
| 17 | 标签分布 | ❌ | 官方无标签分布统计,分布随算法定义而变 |
| 18 | 测量偏倚 | ⚠️ | 编码强度受支付激励影响(§7.1),需调整因子 |
| 19 | 外部验证建议 | ✅ | 存在已发表的算法验证与链接验证研究(§7.8) |
| 20 | 版本记录 | ⚠️ | 年度快照滚动更新,无语义版本号;快照日期须自行记录 |
| 21 | 预处理脚本 | ❌ | 无官方预处理脚本,流程由项目自建(§6.3 可作起点) |
| 22 | 合规要求 | ✅ | CESREES/CNIL/HDH 条款明确且公开(§6.2) |
| 23 | 多模态对齐 | ❌ | 单一结构化模态;影像/文本需对接 HDH 第二层 EHR 项目 9 |
| 24 | 去标识化 | ✅ | FOIN 不可逆两级哈希 + 可信第三方 + 认证安全环境三重保障 3 10 |
DAIMS 评分:15 / 24(12 项 ✅、6 项 ⚠️、6 项 ❌)
评分解读:SNDS 在"标识符唯一性、编码体系、去标识化、合规与信息性缺失可解释性"上达到数据基础设施的顶尖水准——这是国家级强制报销系统的天然优势。失分集中在"机器学习即用性":无标签、无划分、无预处理脚本、事件级长表需要大量自建工程。这符合其行政数据库的本质:它是为结算与监管而生,不是为了直接喂给模型。
对你意味着什么:第一,把工程预算的 60% 留给"从长表到受益人级建模表"的构建与质检(坑点 1、6 是最常见的翻车点),而不是模型本身;第二,所有疾病标签必须附带码表算法与验证指标(PPV/灵敏度),没有验证的标签在发表与审查中站不住;第三,立项前按 §3.0 矩阵选对数据层级——方法学迭代用 EGB 省时省钱,全国结论必须回到穷尽库;第四,把合规输出(聚合粒度、结果公开)设计进工程流程的第一天,而不是发布前一天。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| 病历金标准抽样(PCOS) | 法国医院病历复审 | 多囊卵巢综合征识别算法验证 | PPV/灵敏度(见原文) | 算法 vs 临床确诊 | ALD+住院+药物组合算法可有效识别内分泌疾病队列 11 |
| INSIST(T2D 人群) | 法国全国(SNDS 穷尽) | 2 型糖尿病人群卒中发生率与 HCRU | 发生率/95% CI(见原文) | 全国代表性估计 | 理赔库可支撑全国级心血管结局负担估计 13 |
| FCCSS 队列链接 | 儿童肿瘤长期随访队列 | 无 NIR 历史队列概率匹配 | 链接率 81.9%(5,583/6,818) | 有 NIR 确定性链接约 96%(Constances) | 无身份要素的旧队列仍可经概率匹配富集,损失约两成 2 4 |
| EPI-MERES 母婴登记 | 法国全国妊娠人群 | 母子个体级链接完整性 | 关联率 97% | — | 出生-妊娠代际研究在理赔库层面高度可行 5 |
| EGB 内部效度验证 | CNAM 1/97 样本 | 样本对全国人口的代表性 | 性别/年龄结构与费用一致性检验 | 样本 vs 全库 | EGB 代表性经验证(Roquefeuil 等),可用于全国外推(须加权)6 |
读这张矩阵的方法:先看"评估任务"列找与你同构的研究,再看"性能指标"列确认其验证口径(PPV/灵敏度/链接率/一致性检验),最后把"关键发现"转写为你自己协议中的验证要求。矩阵刻意不跨行比较数值——同一指标在不同疾病、不同患病率基线下不可直接横比,这一点与 §8.1 的立场一致。
§8 基准性能与生态
§8.1 排行榜(无统一 ML 排行榜,以代表研究矩阵替代)
SNDS 是研究型行政数据库,不存在 Harutyunhan 式的公开模型排行榜——每项研究的任务、码表、人群与随访窗都不同,性能数值不可直接比较。下表收录有同行评审支撑、方法学可复现的代表研究,它们共同构成该库的"事实上的基准集":
| 排名 | 研究/模型 | 任务与方法 | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| 1 | INSIST 队列研究 | T2D 人群卒中发生率与医疗资源利用;回顾性队列(EGB,2012-2018) | 2022 | new-user 设计、index date 卒中住院定义 | — : Springer(INSIST 研究),2022. 原文 | 未公开 |
| 2 | FCCSS-SNDS 链接 | 儿童肿瘤幸存者长期住院率;队列链接 + 参照样本对照 | 2022 | 概率匹配(81.9%)、EGB 参照、泊松率模型 | Bejarano-Quisoboni D, et al. Scientific Reports, 2022, 12:18068. DOI 10.1038/s41598-022-22689-w | 未公开 |
| 3 | PCOS 识别算法验证 | 多囊卵巢综合征码表算法的验证方法学 | 2025 | ALD/ICD-10/ATC 组合算法 + 验证框架 | — : BMC Medical Research Methodology, 2025, 25:5. DOI 10.1186/s12874-024-02447-4 | 未公开 |
| 4 | SSc-ILD 全国流行病学 | 系统性硬化相关间质肺病的患病率与医疗资源研究 | 2021 | 全国理赔算法识别 | — : Frontiers in Medicine, 2021, 8:699532. DOI 10.3389/fmed.2021.699532 | 未公开 |
| 5 | EPI-MERES 登记系统 | 全国母婴链接登记(妊娠结局与先天畸形监测) | 2026 | 97% 母子链接、永久机构访问 | — : EPI-PHARE/EPI-MERES 注册研究(T-2022-03-454). 说明 | 未公开 |
注:各行任务与人群互不相同,任何"性能"数值只在各自协议内可解释,禁止跨行排名。
§8.2 SOTA 总结与选型建议
SNDS 生态的"SOTA"不在单一模型,而在方法学组合:码表表型算法(可审计)+ 目标试验模拟(防 immortal time)+ 全国级校准(EGB 开发、穷尽库验证)。对 AI 团队的选型建议:预测任务从梯度提升树 + 显式缺失指示起步,轨迹表示学习作为第二阶段;任何因果结论必须通过目标试验模拟框架复现后才可写进结论。
若以"发表成功率"排序方法投入:表型算法 + 全国流行病学数字的组合是 SNDS 上最成熟的发表路径(有模板可循,见 §8.5 第 3、4 条);预测模型类研究的关键差异化在评估设计(外部验证与校准),而非模型结构的新颖度;纯方法学创新(如新的轨迹表示学习架构)在这类审批制数据库上传播成本高,宜与临床问题绑定发表。
§8.3 官方评测协议
不存在统一评测协议;社区默许的方法学协议是:①表型算法须与病历金标准比对(PPV/灵敏度);②结局事件定义以住院 ICD-10 或死因为准;③暴露-结局研究须明示 index date 与 immortal time 处理;④结果以聚合形式经合规审查后发布(§6.2 第 6 步)。
补充两条 AI 研究的附加协议:⑤报告指标时同时给出判别(AUROC/AUPRC)与校准(Brier/校准曲线)——理赔数据的应用场景(费用、风险分层)对校准的要求高于学术排行榜;⑥任何模型对比在"同一快照、同一划分、同一特征窗"三元组下进行,并在结果表脚注中写明三者。六条协议全部满足的研究,在 SNDS 上极少因方法学被拒稿;绝大多数退稿来自协议的缺项而非模型的性能。
§8.4 相关数据集
选"邻居"数据集的判断标准:同编码体系(EGB)→ 可直接迁移算法;互补模态(EHR 型)→ 混合设计;同类型他国库(CPRD)→ 跨国比较但需重建映射。三类邻居的价值不同,别用同一个"相似度"概念混着评估。
| 数据集 | 关系 | 差异化 | 适用 |
|---|---|---|---|
| EGB(SNDS 1/97 样本) | 嵌套子集 | 同编码体系、审批更轻、缺 SSR/PSY | 方法学开发与预研 6 |
| Constances | 可链接人群队列 | 21 万人临床检查 + 44 万参照队列,链接率约 96% | 需要体检/自报变量的联合分析 4 |
| MIMIC-III | 互补(EHR 型) | 单院 ICU 时序与检验细节 | 与理赔库互补的机制级研究 |
| UK CPRD | 跨国同类 | 英国基层全科病历为主 | 跨国比较研究(须处理编码体系差异) |
| HDH 平台 EHR 项目 | 互补(第二层) | AP-HP 等医院集团的 EHR 细节 | 需要临床细节的混合设计 9 |
| EHIS / Esteban 调查 | 可链接调查 | 自报健康状态与体检测量与理赔互补 | 社会决定因素 × 照护轨迹联合分析 4 |
§8.5 关键论文 Top 5
- Tuppin P, et al. Value of a national administrative database to guide public decisions: From the SNIIRAM to the SNDS in France. Revue d’Épidémiologie et de Santé Publique, 2018. — SNDS 结构、FOIN 伪匿名化与数据溯源链的奠基性综述 3。
- Bejarano-Quisoboni D, et al. Long-term hospitalisations in survivors of paediatric solid tumours in France. Scientific Reports, 2022, 12:18068. DOI 10.1038/s41598-022-22689-w — 队列-SNDS 概率匹配与 EGB 参照样本方法的完整范例 2。
- — : BMC Medical Research Methodology, 2025, 25:5. DOI 10.1186/s12874-024-02447-4 — SNDS 表型识别算法验证的方法学模板 11。
- — : Frontiers in Medicine, 2021, 8:699532. DOI 10.3389/fmed.2021.699532 — 罕见病(SSc-ILD)全国负担研究的可复制路径 15。
- — : ScienceDirect(SNDS linkage 方法学综述), 2026. Survey: French national health data system (SNDS) linkage — Constances/EHIS/Esteban 等队列链接方法的系统梳理 4。
五篇的推荐阅读顺序:先 1(机制与结构),再 2(队列链接实操),然后按你的任务取 3(表型算法)或 4(疾病负担),5 作为方法学地图收尾。这个顺序与 §3.0 的路径抉择、§6.5 的坑点形成互相引用的知识闭环。
§8.6 社区活跃度
SNDS 生态由官方机构主导:Health Data Hub 维护访问流程与项目公开(含英文 FAQ);EPI-PHARE(ANSM-Cnam 联合研究组)承担药物警戒级研究并公开监管问答 12;CNAM 提供系统性的 DIB 数据培训课程(穷尽库与样本库,2022 年版被多篇论文引用为标准参考 2);CNIL 发布 NIR 处理链实务单(2024-06 版)10。国际发表持续高频:SNDS 被系统综述列为世界上规模最大、连续与同质性最好的理赔数据库之一 2。
学术生态的三个观察:其一,方法学文献形成了"综述(Tuppin 2018)→ 队列链接范例(FCCSS/Constances)→ 算法验证模板(BMC 2025)"的完整引用链,新项目几乎不需要从零发明方法;其二,法国团队(Cnam/Inserm/HDH 及其合作者)在方法学上占主导,国际合作通过队列链接与跨国对比研究进入;其三,与典型开源 ML 数据集不同,SNDS 的"社区"以同行评审文献与官方文档为中心,而非 GitHub issue——遇到字段级问题时,DIB 培训材料与项目空间内的官方数据字典是第一求助对象。
§8.7 生态快照
| 资源 | 类型 | 链接 | Star(截至 2026-09) | 推荐理由 |
|---|---|---|---|---|
| HDH 官方 FAQ(英文) | 访问治理文档 | health-data-hub.fr/page/faq-english | – | 六步审批流程与合规红线的官方口径 |
| EPI-PHARE SNDS 监管页 | 监管问答 | epi-phare.fr/en/regulation-snds | – | 数据主体权利与永久访问机制说明 |
| CNIL NIR 实务单 | 技术规范 | cnil.fr(2024-06 PDF) | – | h(NIR-DDN-S) 哈希与多中心链接的官方技术细节 |
| Tuppin et al. 2018 综述 | 方法学综述 | ScienceDirect | – | 理解数据溯源链与编码体系的第一篇必读 |
| DIB 培训课程 | 官方培训 | 经 CNAM 项目空间分发 | – | 全表字段字典的权威来源 |
| EPI-MERES 注册系统 | 衍生登记库 | 研究说明 | – | 母子链接与妊娠研究的现成框架 |
| BeaconCancer EGB 词条 | 第三方数据字典 | wiki.beaconcancer.org | – | EGB 变量清单与准入路径的速查表 |
生态使用的总体建议:以 HDH FAQ 为流程权威、以 DIB 培训与官方数据字典为字段权威、以 Tuppin 2018 为机制权威,三者之外的第三方整理(含本条目)都应回溯到这三个源头再采信——行政数据库领域二手信息的半衰期很短,编码规则与访问流程几乎年年微调。
§9 相关资源与引用
官方资源
- Health Data Hub(HDH):SNDS 数据访问的官方入口与申请平台,含英文 FAQ(六步流程、合规红线、公民保障):health-data-hub.fr/page/faq-english
- HDH 项目公开页:经审批项目的结果公示入口(六步流程第 6 步),检索已有项目避免重复立项:health-data-hub.fr
- EPI-PHARE:ANSM-Cnam 联合药物警戒研究组的 SNDS 监管问答(数据主体权利、永久访问机制):epi-phare.fr/en/regulation-snds
- CNIL 实务单(NIR 处理链):多中心研究中 NIR 哈希化与挂接标识符的官方技术规范(2024-06 版 PDF):cnil.fr
- Cnam(国家医疗保险基金):DCIR/SNIIRAM 与 EGB 的数据持有方,DIB 官方培训课程(穷尽库与样本库全表字典)经项目空间分发。
- ATIH(医院信息局):PMSI 住院数据持有方与编码规则发布机构。
- Inserm CépiDC:全国死因登记库管理方。
- Cnam(国家医疗保险基金):DCIR 理赔仓库与 EGB 样本的数据持有方,挂号与 ALD 登记的源头机构 3。
BibTeX 引用
使用 SNDS 产出的论文应引用数据来源综述与所依据的方法学文献。推荐引用组:
@article{Tuppin2018SNDS,
title = {Value of a national administrative database to guide public decisions:
From the syst{\`e}me national d'information interr{\'e}gimes de l'Assurance
Maladie (SNIIRAM) to the syst{\`e}me national des donn{\'e}es de sant{\'e}
(SNDS) in France},
author = {Tuppin, Philippe and others},
journal = {Revue d'{\'E}pid{\'e}miologie et de Sant{\'e} Publique},
year = {2018}
}
@article{BejaranoQuisoboni2022,
title = {Long-term hospitalisations in survivors of paediatric solid tumours in France},
author = {Bejarano-Quisoboni, Daniel and Pelletier-Fleury, Nathalie and others},
journal = {Scientific Reports},
volume = {12},
pages = {18068},
year = {2022},
doi = {10.1038/s41598-022-22689-w}
}
@article{PCOSAlgorithm2025,
title = {Validation of an algorithm for identifying polycystic ovary syndrome cases
in the French national health data system},
journal = {BMC Medical Research Methodology},
volume = {25},
pages = {5},
year = {2025},
doi = {10.1186/s12874-024-02447-4}
}
@article{SScILD2021,
title = {Epidemiology and healthcare resource use of systemic sclerosis-associated
interstitial lung disease in France},
journal = {Frontiers in Medicine},
volume = {8},
pages = {699532},
year = {2021},
doi = {10.3389/fmed.2021.699532}
}
@article{SNDSLinkageSurvey2026,
title = {Survey: French national health data system (SNDS) linkage:
A win-win methodology for longitudinal studies, algorithm validation,
and real-world evidence},
journal = {ScienceDirect (methods survey)},
year = {2026}
}
教程与学习资源
- DIB 官方培训课程(SNDS 穷尽与抽样个体数据):CNAM 面向获批研究者提供的标准培训,是表级字段字典的权威来源 2。
- BeaconCancer EGB 词条:EGB 变量构成与准入材料的第三方速查(使用时回溯官方字典核对):wiki.beaconcancer.org
- HDH 英文 FAQ:理解访问治理与合规义务的最短路径 14。
- Tuppin et al. 2018 综述:数据溯源链与编码体系的最佳入门文献 3。
- CNIL 实务单:需要做调查-理赔链接的项目必读 10。
引用指南
引用 SNDS 时建议三件套:①数据来源综述(Tuppin 2018);②你实际使用的数据层级说明(穷尽库/EGB/调查链接);③你的表型算法验证文献(若有)。经 HDH 流程完成的项目还须按协议在 HDH 网站公开结果 14。
三个常见引用错误:其一,把 SNDS、SNIIRAM、DCIR、PMSI 当作可互换的名字——正确写法是"SNDS(其中门诊数据来自 DCIR/SNIIRAM)“,它们是系统与子库的关系;其二,引用 1/97 的 EGB 却写"覆盖 6,700 万人”,样本与全库的规模差两个数量级(坑点 3);其三,引用具体年度规模数字时不带年份口径(如 12 亿理赔单/年),行政库的年度流量随政策变化,无年份的数字三年后即失准。
§10 AI 使用声明卡
§10.1 AI 模型使用
| 模型 | 用途 | 版本/说明 |
|---|---|---|
| 大型语言模型(LLM) | 本条目初稿撰写、结构组织、文字润色 | 按千方病案医数集生产流程配置的写作 agent |
§10.2 AI 参与范围
AI 参与范围限于:基于下述公开来源进行事实整理、条目结构搭建、中英文表述转换与代码示例编写。所有关键数字(人口覆盖、年流量、EGB 规模、链接率、审批流程)均直接对应 §10.3 所列来源;法律条款表述(L.1461-1、R.1461-9)以来源原文为准。医学判断、数据治理结论与最终表述由人工审核确认(§10.4)。
特别说明两点边界:其一,本条目不含任何从 SNDS 实际数据中得出的新分析结果——条目内的所有数字都是对公开文献与官方文档的转述,这正是行政数据条目与原始研究条目的本质区别;其二,代码示例使用的逻辑字段名与简化路径(如 data_root/ 结构)是教学性抽象,实际项目以批准协议与项目空间交付为准,这一抽象在本条目各代码块处均有注明。
§10.3 输入来源
以下 17 条来源覆盖本条目全部关键事实;正文引用编号 [1]-[17] 与此列表一一对应:
- Certara. Privacy Policy Notice for the National Health Data System (SNDS) of France. https://certara.com.cn/legal/privacy-policy-notice-for-the-national-health-data-system-snds-of-france/
- Health Data Hub. FAQ in English(访问六步流程、合规红线、公民保障). https://health-data-hub.fr/page/faq-english
- Tuppin P, et al. Value of a national administrative database to guide public decisions: From the SNIIRAM to the SNDS in France. Revue d’Épidémiologie et de Santé Publique, 2018. https://www.sciencedirect.com/science/article/pii/S0398762017304315
- CNIL. Fiche pratique: circuit NIR / circuit multi-centres, base centrale pseudonymisée(2024-06). https://cnil.fr/sites/cnil/files/2024-06/fiche_pratique_circuit_nir_circuit_multi-centres_base_centrale_pseudonymisee.pdf
- IRSN. Exposure of the population to ionising radiation(EGB 方法节,EGB 1/97 抽样与代表性验证). https://research-assessment.asnr.fr/sites/en/files/2023-12/IRSN_Report-2020-00564_Expri.pdf
- BeaconCancer Wiki. Database: Échantillon généraliste de bénéficiaires (EGB) (France). https://wiki.beaconcancer.org/index.php?oldid=28218
- Bejarano-Quisoboni D, 2023 博士论文(FCCSS-SNDS 链接机制、CNAVTS/CNAMTS 可信第三方、DIB 培训引用). https://theses.hal.science/tel-04368921v1/file/115027_BEJARANO_QUISOBONI_2023_archivage.pdf
- INSIST study. Incidence of stroke, subsequent clinical outcomes and health care resource utilization in people with type 2 diabetes. Springer. https://www.springermedizin.de/incidence-of-stroke-subsequent-clinical-outcomes-and-health-care/27147002
- Bejarano-Quisoboni D, et al. Long-term hospitalisations in survivors of paediatric solid tumours in France. Scientific Reports, 2022, 12:18068. https://hal.science/hal-03888885/file/s41598-022-22689-w.pdf
- EPI-MERES 全国母婴登记研究说明(数据更新节奏、97% 母子链接、CNIL-2016-316 永久访问). https://cdn.ebiotrade.com/newsf/2026-5/20260509000327534.htm
- EPI-PHARE. SNDS – regulations, processing, information to data subjects. https://www.epi-phare.fr/en/regulation-snds/
- France 2030. Health Data Hub — AI-Powered Medical Research Platform(HDH 架构分层、主权云迁移). https://france2030.ai/sectors/health-biotech/health-data-hub
- Bouchez S, et al.(GDPR 对临床研究影响的综述,SNDS 简化程序与门诊无诊断限制). https://hal-univ-rennes1.archives-ouvertes.fr/hal-02082394v1/document
- Survey: French national health data system (SNDS) linkage. ScienceDirect, 2026(Constances 链接、CASD、44 万参照队列). https://www.sciencedirect.com/science/article/abs/pii/S2950433326002259
- BMC Medical Research Methodology, 2025, 25:5. DOI 10.1186/s12874-024-02447-4(PCOS 表型算法验证).
- National Health Data System France(百科式整理,SNIIRAM 1999 年建立等背景). https://grokipedia.opelly.me/articles/national-health-data-system-france
- Infinite Lexicon. SNDS(编码变异性等公认局限的定性描述). https://infinitelexicon.com/SNDS
§10.4 人工校验表
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §0 信任声明与免责声明 | 千方病案医学编辑部 | 逐字比对宪法模板与金标准文本 | ✅ 已通过 |
| §1-§2 概览与医学背景(含 ICD-11/SNOMED 锚定) | 千方病案医学编辑部 | 数字溯源复核 + 编码抽查 | ✅ 已通过 |
| §3-§5 规格、结构与划分建议 | 千方病案医学编辑部 | 与 FACTS.md 逐条对照 | ✅ 已验证 |
| §6 AI 就绪指南与 8 坑点 | 医疗 AI 数据工程师 | 代码可运行性走查 + 坑点来源复核 | ✅ 已验证 |
| §7-§8 质量评估、DAIMS 与生态 | 千方病案医学编辑部 | 24 项逐项复核 + 引用完整性检查 | ✅ 已通过 |
| §9-§10 引用与声明卡 | 千方病案医学编辑部 | 全部外链可达性抽查 | ✅ 已通过 |
校验方式说明:"数字溯源复核"指对正文每个关键数字回查 §10.3 来源原文;"逐条对照"指与 FACTS.md 事实清单的逐行核对;"走查"指在等价环境中执行代码并检查输出语义;"抽查"指对外链与格式项按比例抽验。四类方式覆盖本条目全部内容模块,无未审核区块。
§10.5 AI 生成章节标注
本条目全部章节由 AI 基于公开来源起草,经人工按 §10.4 校验表审核后发布;其中 §6.3、§6.4、§6.9 的代码示例为 AI 编写并已通过工程审核环节的可运行性走查。
人工审核的重点投入方向(按风险排序):关键数字与来源的逐一对应(最高风险:数字漂移与口径混淆);法律与监管表述的原文核对(零容错);坑点与 DAIMS 结论的可操作性复核(防模板化空话);代码示例的语义正确性(逻辑字段抽象是否自洽)。样式与语言润色类改动风险最低,通常按抽查处理。
§10.6 最后审核
最后人工审核日期:2026-09-05(与 §0 审核日期一致)。
页面状态:published(全部内容已完成审核并发布)
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- marketscan — 共享标签:电子健康记录 / 公共卫生与流行病学 / 医保理赔 / 真实世界数据 / 药物安全
- premier-pinc-ai — 共享标签:电子健康记录 / 公共卫生与流行病学 / 医保理赔 / 真实世界数据 / 药物安全
- openfda — 共享标签:电子健康记录 / 公共卫生与流行病学 / 真实世界数据 / 药物安全
- gepard — 共享标签:电子健康记录 / 医保理赔 / 真实世界数据 / 药物安全
- komodo-healthcare-map — 共享标签:电子健康记录 / 医保理赔 / 真实世界数据
- maternal-ultrasound-nutrition — 共享标签:电子健康记录 / 公共卫生与流行病学 / 真实世界数据
- nhis-nhid — 共享标签:电子健康记录 / 公共卫生与流行病学 / 医保理赔 / 药物安全
- jmdc — 共享标签:电子健康记录 / 医保理赔 / 真实世界数据 / 药物安全
- optum-clinformatics — 共享标签:公共卫生与流行病学 / 医保理赔 / 真实世界数据 / 药物安全
- seer-medicare — 共享标签:电子健康记录 / 公共卫生与流行病学 / 医保理赔 / 真实世界数据
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。
