2. 临床数据编码体系全景

临床数据来自门诊、住院、检验、药房、不良事件上报等多个系统,同一个“2型糖尿病”在病历文本、结算清单、科研数据库里可能以完全不同的形式存在。编码体系就是把这些异构表达映射到受控词表上的“公共语言”。但不存在一个万能编码系统:ICD 擅长分类统计,SNOMED CT 擅长语义表达,LOINC 擅长检验项目标识,MedDRA 擅长安全性信号,ATC 擅长药物分类。理解它们的定位差异,是后续做映射与一致性治理的前提。

一、五套主流编码系统的定位与结构

ICD(国际疾病分类)由 WHO 维护,当前临床与统计使用 ICD-10 及其各国临床修订版(如 ICD-10-CM)。它的核心结构是“章—节—类目—亚目—扩展码”的层级分类,编码如 E11.9(2型糖尿病不伴并发症)。ICD 的设计目标是疾病分类与统计聚合,因此每个编码必须落到唯一类目,粒度相对粗,适合病案首页、DRG/DIP 分组、死亡统计和流行病学汇总。它的局限是难以表达“左侧”“疑似”“家族史”等修饰语义。

SNOMED CT(系统化临床医学术语集)是粒度最细的临床参考术语集,采用“概念—描述—关系”三元结构。每个概念有唯一 SCTID,通过 IS-A 关系构成多轴层级,并支持“发现部位”“致病因素”“严重程度”等属性关系。例如“左侧股骨颈骨折”可由骨折概念加“左侧”“股骨颈”属性组合表达。它适合电子病历语义表达、临床决策支持和跨系统互操作,但概念量大、实施成本高,通常不直接用于统计上报。

LOINC(观测指标标识符逻辑命名与编码)专门标识检验检查与临床观测项目。其编码由六轴构成:成分、属性、时间、体系、标尺、方法。例如“血清葡萄糖—质量浓度—随机—血清/血浆—定量”对应一个 LOINC 码。它解决的是“这个检验结果到底是什么项目”的歧义问题,是检验结果互认和实验室数据交换的基础,但不描述结果值本身,也不做疾病分类。

MedDRA(监管活动医学词典)用于药品不良反应与安全性报告,采用五级层级:系统器官分类(SOC)、高位组语(HLGT)、高位语(HLT)、首选语(PT)、低位语(LLT)。上报时用 LLT 精确描述原始事件,统计时上卷到 PT 或 SOC。例如“注射部位红肿”作为 LLT 归入“注射部位反应”PT,再上卷到“全身性疾病及给药部位各种反应”SOC。它是药物警戒信号检测的标准语言。

ATC(解剖治疗化学分类)由 WHO 药物统计方法学合作中心维护,按解剖、治疗、药理、化学四个层级对药物分类,编码如 A10BA02(二甲双胍)。它不标识具体药品商品,而是标识活性成分的治疗类别,适合药物利用研究、医保分析和用药趋势统计。

五大编码系统:定位 · 结构 · 适用场景 ICD 疾病分类统计 章 → 节 → 类目 → 亚目 → 扩展码 E11.9 病案首页 DRG/DIP 分组 死亡统计 流行病学汇总 局限 粒度粗 难表达侧别 难表达疑似 难表达家族史 SNOMED CT 临床语义表达 概念—描述—关系 IS-A 多轴层级 SCTID 电子病历语义 临床决策支持 跨系统互操作 属性组合表达 局限 概念量巨大 实施成本高 不直接用于统计 需映射到 ICD LOINC 检验观测标识 六轴结构 成分·属性·时间 体系·标尺·方法 LOINC 码 检验结果互认 实验室数据交换 观测项目标准化 局限 不描述结果值 不做疾病分类 需与结果单位配合 本地项目需映射 MedDRA 药品安全警戒 五级层级 SOC→HLGT→HLT →PT→LLT LLT / PT 不良反应上报 信号检测 安全性统计上卷 局限 仅覆盖安全性 不用于疾病分类 版本更新频繁 需版本锁定 ATC 药物分类统计 四级层级 解剖→治疗 →药理→化学 A10BA02 药物利用研究 医保用药分析 用药趋势统计 局限 不标识商品 仅活性成分 不描述适应症 需与药品字典配合 协作关系:SNOMED CT 表达临床细节 → 映射到 ICD 用于统计;LOINC 标识检验项目 → 结果值配合单位使用;MedDRA 上报不良反应 → 上卷到 SOC 做信号检测;ATC 分类药物 → 支撑用药分析

二、为什么需要多套编码共存

五套系统的差异本质上是设计目标不同。ICD 回答“这是什么病、归到哪一类”,SNOMED CT 回答“临床上具体发生了什么”,LOINC 回答“测的是哪个项目”,MedDRA 回答“用药后出现了什么事件”,ATC 回答“用的是哪一类药”。一个完整的临床数据链条往往需要多套编码接力:医生在电子病历中用 SNOMED CT 记录“左侧股骨颈骨折”,病案编码员将其映射为 ICD-10 的 S72.0 用于 DRG 分组;检验科用 LOINC 标识“血清钾”,结果值 3.2 mmol/L 进入危急值提醒;药房用 ATC 分类“A10BA02 二甲双胍”做用药统计;若患者出现低血糖并上报,则用 MedDRA 的 LLT“低血糖”记录,再上卷到 PT 和 SOC 做信号分析。

因此,编码治理不是“选一套最好的”,而是明确每套系统的边界,建立它们之间的映射与版本管理。常见误区包括:用 ICD 编码去表达临床细节导致信息丢失;用 SNOMED CT 直接做统计上报导致聚合困难;LOINC 映射时忽略单位和标本类型导致结果误读;MedDRA 版本不锁定导致历史数据无法复现;ATC 与本地药品字典未建立对应关系导致用药分析口径不一致。

三、实际映射中的关键操作

以“2型糖尿病”为例,说明多系统映射的实际做法。假设本地病历文本为“2型糖尿病,伴糖尿病肾病”,检验科报告“糖化血红蛋白 7.8%”,用药记录“二甲双胍 0.5g bid”,并上报“二甲双胍相关胃肠道不适”。

数据对象 推荐编码系统 示例编码/表达 关键注意点
疾病诊断 ICD-10 E11.2(2型糖尿病伴肾病) 需确认是否合并并发症,避免只编 E11.9
临床细节 SNOMED CT 2型糖尿病 + 糖尿病肾病 + 左侧/右侧属性 属性组合需与本地术语模型一致
检验项目 LOINC 糖化血红蛋白对应 LOINC 码 需核对标本类型、单位、方法
药品分类 ATC A10BA02(二甲双胍) 需与本地药品字典建立成分级映射
不良反应 MedDRA LLT:胃肠道不适 → PT → SOC 锁定 MedDRA 版本,记录 LLT 原始词

映射过程中,建议先建立本地术语字典,再逐条与目标编码系统对齐。对于 ICD,重点核对类目与亚目是否准确;对于 SNOMED CT,重点核对概念是否覆盖临床细节;对于 LOINC,重点核对六轴是否完整;对于 MedDRA,重点核对 LLT 与 PT 的归属;对于 ATC,重点核对活性成分与剂型。映射完成后,应保留映射表、版本号和生效日期,便于后续审计与回溯。

实践提示:编码映射不是一次性工作。ICD 每年更新,SNOMED CT 每半年发布国际版,LOINC 每季度更新,MedDRA 每年 3 月和 9 月发布新版本,ATC 每年 1 月更新。建议在治理流程中设置“版本变更影响评估”环节,重点检查新增、停用和语义变更的编码,避免历史数据在新版本下出现口径漂移。
常见风险:不要用一套编码系统强行覆盖所有场景。例如用 ICD 编码去表达“左侧”“疑似”等修饰语义,会导致信息丢失;用 SNOMED CT 直接做 DRG 分组,会因粒度过细而无法聚合。正确做法是明确各系统的适用边界,通过映射表实现“临床表达用 SNOMED CT、统计上报用 ICD、检验标识用 LOINC、安全警戒用 MedDRA、药物分类用 ATC”的分工协作。

总结来看,五套编码系统各有其不可替代的定位:ICD 是统计聚合的骨架,SNOMED CT 是临床语义的血肉,LOINC 是检验观测的标尺,MedDRA 是安全警戒的雷达,ATC 是药物分类的坐标。理解它们的结构差异与适用边界,才能在后续的数据治理中做出正确的映射决策,避免“一套编码打天下”带来的信息失真与统计偏差。