RxNorm 药物术语标准 — AI-Ready Wikipedia

14,592 成分 · 17,544 临床药物概念 · RxCUI 唯一标识:美国药品信息交换的官方标准

来源 https://www.nlm.nih.gov/research/umls/rxnorm/发布时间: 2026-09-20最后更新: 2026-09-25 阅读 34
RxNorm 药物术语标准 — AI-Ready Wikipedia

信息速览

数据集名称RxNorm 药物术语标准 — AI-Ready Wikipedia
数据类型14,592 成分,17,544 临床药物,RxCUI 唯一标识,USCDI 交换标准,月度发布
规模不适用(术语标准资源;无患者数据)
接入方式https://www.nlm.nih.gov/research/umls/rxnorm/
AI 就绪度

RxNorm — 药物术语标准 AI-Ready Wikipedia

INFOBOX

属性 内容
全称 RxNorm(NLM Standardized Nomenclature for Clinical Drugs)
运营 US National Library of Medicine(NLM/NIH)
启动 2005(首个完整月度发布);2025 年 20 周年
核心机制 归一化药物名(活性成分+强度+剂型)+ RxCUI 唯一标识
规模 14,592 base ingredients / 17,544 SCD / 9,721 SBD / 5,151 BN(2025-12 全量);Prescribable:SCD 12,067 / SBD 8,129 / IN 5,823 / NDC 239,682
标准地位 USCDI 药品信息指定标准;EHR/e-prescribing(SCRIPT)/HL7 FHIR/OMOP CDM 内建
发布节奏 月度(Full Monthly + Current Prescribable 双轨);Oracle/MySQL 装载脚本官方提供
API RxNorm API 免费开放——~40 亿次查询/年;文件下载 ~1,000 次/季度
工具族 RxNav / RxClass(ATC/ATCPROD/CVX 疫苗组)/ RxTerms / RxMix / RxNav-in-a-Box(本地部署)
词库集成 NDC/-a-Box**(本地部署)
词库集成 NDC/SNOMED CT/CVX/UNII 映射;UMLS Metathesauru/CVX/UNII 映射;UMLS Metathesaurus 成员
许可 免费(UMLS 许可协议电子签署);部分再分发条款需核查
本库关联 协议电子签署);部分再分发条款需核查
本库关联 DrugBank/ChEMBL(药物语义)、FAERS/SIDER(不良事件/ChEMBL(药物语义)、FAERS/SIDER(不良事件)、hEMBL(药物语义)、FAERS/SIDER(不良事件)、All of Us/OMOP(drug_exposure 标准码)、MIMIC/OMOP(drug_exposure 标准码)、MIMIC(处方表)

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

本页所有规模数字、术语类型计数与访问口径均核实自一手来源:NLM 官方技术公报(RxNorm Marks Its 20th Anniversary, NLM Tech Bull 467:e2, 2025 Nov-Dec——20 周年口径/14,592 成分/40 亿次 API 查询)、RxNorm Current Prescribable Content Release Notes(2025-12-01——术语类型 active 计数与 NDC 239,682)、RxNav 官方新闻页(LHNCBC——工具族更新日志至 2026-06)与第三方技术分析(intuitionlabs NDC vs RxNorm 综述——概念级/产品级语义与 CUI 替换率)。检索核实时间为 2026-09-19。

RxNorm 的数字存在两个官方发布口径(Full Monthly 全量 vs Current Prescribable 子集)——本页在各处显式标注;「14,592 成分」是全量 base 口径、「IN 5,823」是 Prescribable active 口径,混引是常见错误。月度发布使数字持续滚动——引用时注明版本月份。

本页为技术参考文档:RxNorm 提供「药物命名与概念语义」——不提供药物相互作用数据(DDI API 已于 2024-01 停用)、不提供价格/厂商/包装(概念级设计)、不构成临床用药决策依据;临床用药请以 FDA 标签与临床指南为准。

§1 数据集概览

§1.0 📌 30 秒速览

  • 是什么:美国官方的标准化临床药物命名法——「每种临床药物一个归一化名字 + 一个 RxCUI」。
  • 体量:14,592 成分 / 17,544 临床药物 / 9,721 品牌药 / 239,682 NDC 映射(2025-12)。
  • 访问:免费——月度文件(UMLS 许可电子签署)+ REST API(40 亿次/年)+ RxNav 工具族。
  • 杀手锏:美国药品信息交换的官方标准(USCDI)——EHR/处方/OMOP/FHIR 的药物语义通用语。
  • 适用:EHR 药物表标准化、药物实体链接(NLP)、处方数据归一、药物暴露定义(PheWAS/真实世界研究)、跨词库药物映射。
  • 不适用:药物相互作用查询(DDI API 停用)、包装/厂商/计费语义(用 NDC)、国际药品全覆盖(美国市场语境)、化合物结构(用 ChEMBL/PubChem)。

§1.1 摘要

「阿司匹林 325mg 片剂」在美国的处方系统里有多少种写法?商品名、通用名、缩写、拼写变体、不同 NDC 码——同一药物在数十万个 NDC 产品码与无数自由文本里被重复表达。RxNorm 是 NLM 对这个混乱的官方答案:把药物归一化为「活性成分 + 强度 + 剂型」的标准名,并赋予唯一 RxCUI 标识。2005 年首次发布,2025 年 20 周年时已含 14,592 个基础成分、17,544 个临床药物概念(SCD)、9,721 个品牌药(SBD)与 239,682 条 NDC 映射;API 每年响应 40 亿次查询。

对 AI 团队,RxNorm 的价值在四个维度:

  1. EHR 药物数据的通用语:USCDI 指定标准 + OMOP CDM drug_exposure 的标准码——多机构 EHR 数据的药物字段归一只有一个答案;MIMIC/All of Us 的处方表都在用它。
  2. 药物 NLP 的地面真值:自由文本药名 → RxCUI 的实体链接;RxTerms 提供「医生友好名」词典——NLM 自家的 NLP 管线示范了 NDC→RxNorm 的文本映射。
  3. 跨词库的枢纽语义:NDC(产品级)/ SNOMED CT / CVX(疫苗)/ UNII(成分级)经 RxNorm 互链——UMLS 生态的药物维度中枢。
  4. 月度生命周期的治理样本:CUI 的 retired/merged 机制 + 官方装载脚本 + RxNav-in-a-Box 本地化——「术语系统如何管理自身演化」的工程范本。

数据的第一性事实:RxNorm 是概念级不是产品级——「aspirin 325mg tablet」一个概念覆盖所有品牌与包装;计费与调剂场景必须回到 NDC——「先问语义层级再选码表」是用药物术语的第一课。

§1.2 战略价值

  1. 互操作性的制度基础设施:Meaningful Use(2011)到 USCDI 的监管推进使 RxNorm 从「可选词表」变成「法定事实标准」——美国医疗数据互操作的药品维度由它定义。
  2. 多源集成的官方背书:RxNorm 集成 First Databank/Micromedex 等商业词库与 FDA NDC 目录——「商业词库的公共归一化层」模式,让公共标准站在商业数据之上。
  3. 真实世界研究的语义底座:药物暴露/结局研究的药物定义(eCQM 的 QDM/CQL、PheWAS 的暴露分组)——「同一药物跨系统对齐」的可复现性依赖 RxCUI。
  4. 工具生态的完整供给:RxNav(浏览)/ RxClass(分类)/ RxTerms(文本)/ RxMix(管道)/ in-a-Box(本地化)——从浏览到嵌入部署的工具链全覆盖,NLM 亲自下场做工程。

§1.3 同类数据集横向对比

资源 定位 规模量级 与 RxNorm 的关系
RxNorm 临床药物归一化命名(美国) 1.7 万+ 临床药物概念 —
NDC(FDA) 上市产品码(厂商/包装级) 数十万产品 产品级对照(RxCUI 映射 NDC 一对多)
SNOMED CT 全科临床术语 数十万概念 药品子集与 RxNorm 互映射
ATC(WHO) 解剖-治疗分类 数千类 RxClass 提供 ATC/ATCPROD 归属
DrugBank 药物知识库(结构/靶点) 1.5 万+ 药物 知识层(RxNorm 管命名、DrugBank 管药理)
CVX(CDC) 疫苗码 数百 经 RxNorm 集成(CDC 疫苗组进 RxClass)
UNII(FDA) 成分唯一标识 数十万 PIN 级概念与 UNII 关联
UMLS Metathesaurus 跨词库集成母体 数百万概念 RxNorm 是其中药物维度成员

§1.4 版本时间轴

2000s 初  NLM 启动临床药物命名研究(集成商业词库路线确立)
2005  首个完整月度发布(RxNorm 20 周年计年起点)
2011  ONC Meaningful Use 推动 RxNorm 进入 EHR 药物字段强制语境
2010s  USCDI 演进:RxNorm 确立为药品信息交换指定标准
2023  ATCPROD 类别(产品级 ATC 归属)进 RxClass
2024-01  Drug-Drug Interaction API 停用(DDI 语义让位商业源)
2025  20 周年(14,592 成分口径);SCDFP/SCDGP/SBDFP 精确剂型链接调整
2026  RxClass 3.2.3 产品导向分类简化;API 月度随发布更新

§1.5 应用场景矩阵

  1. EHR 药物标准化:多机构处方表的 RxCUI 归一——OMOP 转换的标准动作。
  2. 药物 NLP 实体链接:临床文本/处方自由文本 → RxCUI——RxTerms 词典 + NLM 管线范式。
  3. 真实世界药物暴露:PheWAS/药物结局研究的暴露定义——RxCUI 分组(RxClass 类别聚合)。
  4. 药物警戒数据对齐:FAERS 类报告数据库的药物字段语义统一。
  5. e-prescribing 与 FHIR:SCRIPT/FHIR Medication resource 的编码供给。
  6. 跨词库映射:NDC↔RxCUI↔SNOMED↔CVX 的映射枢纽——集成管线的中转站。

§1.6 组件全景

RxNorm 数据与工具的六个层:

  1. 概念层:RxCUI + 术语类型(IN/MIN/PIN/SCD/SBD/GPCK/BPCK/BN/DF)+ 状态(Active/Retired/Obsolete/Quantified)。
  2. 名称层:归一化名称(RXNCONSO 字符串)+ Prescribable Name(PSN)+ RxTerms 医生友好名。
  3. 关系层:RXNREL——has_ingredient/has_dose_form/consists_of/tradename_of/has_precise_ingredient 等语义关系网络。
  4. 映射层:NDC(239,682)/ SNOMED CT / CVX / UNII / 商业词库码——RXNSAT 属性表。
  5. 分类层:RxClass——ATC/ATCPROD/Mechanism of Action/CDC 疫苗组/Physiologic Effect 等多源类别体系。
  6. 工具层:RxNav(浏览)/ RxNorm API(REST)/ RxMix(管道组合)/ RxNav-in-a-Box(本地部署)/ 官方 Oracle-MySQL 装载脚本。

§1.7 术语标准的经济学

  1. 公共标准的商业地基:RxNorm 集成 First Databank/Micromedex 等商业词库——商业数据经公共归一化后免费再供给——「商业源 + 公共归一」是美国术语生态的独特结构。
  2. 许可的轻量化:UMLS 许可协议免费电子签署——比开放数据多一点手续、比商业词库少两个数量级成本;再分发原始文件有限制条款(逐条核查)。
  3. 使用量的不对称:API 40 亿次/年 vs 文件下载 1,000 次/季度——「实时查询为主、批量集成为辅」的使用画像;in-a-Box 是两者的中间态。
  4. DDI 语义的退出:2024 年交互 API 停用——NLM 把「临床决策语义」让位给商业供应商,自己专注「命名与映射」的公共品核心——公共标准的边界自觉。

§1.8 RxNorm 在研究流程中的定位

药物上市 → NDC 产品码 → 处方/文本自由表达 → 归一化 → 研究与交换
              │                  │                │            │
              │                  ├─ RxNorm:RxCUI 归一(概念级语义)
              │                  ├─ RxNorm:NDC→CUI 映射(产品→概念)
              │                  ├─ RxClass:类别聚合(暴露分组)
              │                  └─ RxTerms:文本友好名(NLP 词典)
              └─ FDA 标签 → DrugBank/ChEMBL(药理/结构层)
流程阶段 RxNorm 角色 典型用法 验收标准
数据接入 归一层 NDC/文本 → RxCUI 映射率报告
语义统一 标准码 多源 drug_exposure 对齐 RxCUI 主键
暴露定义 分组层 RxClass 类别聚合 分组口径声明
交换分发 交换标准 USCDI/FHIR 编码 合规校验
知识延伸 路由层 → DrugBank/SIDER 概念级对齐

定位纪律:RxNorm 管「药物的名字与概念」——结构找 ChEMBL/PubChem、药理找 DrugBank、不良事件找 FAERS/SIDER、价格找 CMS——语义路由按层问责。

§1.9 概念级 vs 产品级的语义设计

  1. 概念级的设计意图:「aspirin 325mg tablet」一个概念——临床语义(开什么药)与商业语义(谁家产品)分离;处方语义不需要厂商——「临床清晰优先」的取舍。
  2. 产品级的现实需求:调剂/计费/召回场景必须 NDC(厂商+包装);「RxCUI → NDC 一对多」的映射是双向翻译桥。
  3. 语义陷阱:把 SBD(品牌药概念)当产品码用——SBD「Bufferin 325mg tablet」仍是概念(所有 Bufferin 包装),不是某个 NDC;层级混淆是集成管线最常见错误。
  4. 工程含义:数据模型里 RxCUI(语义)与 NDC(产品)双字段设计——「概念级归一 + 产品级留痕」的双轨是 EHR 工程的正确姿势。

§2 医学与科学背景

§2.1 为什么药物命名是临床安全问题

  1. 药名歧义的临床代价:同名异药/异名同药的处方错误是真实世界用药差错的重要来源——标准化命名的临床安全价值先于互操作价值。
  2. EHR 数据的质量地板:多机构 EHR 药物字段的自由文本/NDC 混用使「同一药物」无法对齐——RxNorm 归一是药物数据可分析的前提。
  3. 真实世界研究的可复现性:药物暴露定义写「RxCUI 856971」比写「metformin」更可复现——版本化的概念语义是研究协议的一部分。
  4. 监管合规的语义层:USCDI 合规、eCQM 质量测量、FDA 药物警戒——监管语境的药物语义都在 RxNorm 上对齐。

§2.2 术语类型体系(TTYS)的语义

  1. 成分级:IN(成分)/ MIN(多成分精确)/ PIN(精确成分,UNII 关联)——「药里含什么」的语义;PIN 的 UNII 链接使成分级语义可回溯 FDA 物质注册。
  2. 药物级:SCD(临床药物=成分+强度+剂型)/ SBD(品牌药=SCD+品牌)——「开的是什么药」的语义;SCD 是 OMOP/EHR 归一的主力层。
  3. 包装级:GPCK/BPCK(generic/branded pack)——多药组合包装(复方包装/疗程包);约 600-700 个。
  4. 辅助级:BN(品牌名)/ DF(剂型,121 个)——品牌名是概念的「别名节点」、剂型是受控词表;BN 聚合语义(一个 BN 关联多个 SBD)是实体链接的歧义源。

§2.3 RxCUI 生命周期的治理语义

  1. retired/merged 机制:市场变化(退市/改名/合并)触发概念退役——8.1%/6 个月的历史替换率样本说明早期波动、当前节奏已稳但非零。
  2. 历史数据的时效语义:2015 年处方数据的 RxCUI 在 2026 年可能已 retired——历史研究需要「发布版本锁定」或「CUI 生命周期表回放」。
  3. 官方应对工具:月度发布含 CUI 状态变更;RxNav 显示状态历史;装载脚本含历史表——「术语系统的版本控制」官方供给完整。
  4. 工程纪律:RxCUI 主键 + 版本月份字段双记——「概念身份 + 语义时点」的双时间戳是长期药物数据的复现底线。

§2.4 多词库集成的映射语义

  1. NDC → RxCUI:产品级到概念级的收敛映射(一对多)——NLM 提供 NDC→CUI 的官方映射与 NLP 文本管线;「两个映射源轻微不一致」的已知问题需数据治理仲裁。
  2. SNOMED CT 互映射:药品子集的语义对齐(国际语境)——SNOMED 药品概念经映射获得 RxNorm 归一语义。
  3. CVX(疫苗)集成:CDC 疫苗码经 RxNorm 概念承载 + RxClass CDC 疫苗组分类——疫苗语义的统一层。
  4. UNII(成分)关联:PIN 级概念与 FDA UNII——成分语义回溯 FDA 物质注册的桥。
  1. OMOP CDM drug_exposure:标准以 RxNorm 为 drug_concept_id 的主要词库——「EHR 药物数据的国际研究标准」直接内建 RxNorm。
  2. MIMIC/All of Us 的示范:MIMIC 处方表(prescriptions)的 drug 字段经 RxNorm 映射;All of Us 的 OMOP 药物表同构——「美国 EHR 数据的药物维度通用语」的实证。
  3. RxClass 的暴露分组:ATC/机制/生理效应多源分类——PheWAS 暴露分组不用自建映射,RxClass API 直接取。
  4. 工程含义:多机构联合分析的第一步是「药物字段 → RxCUI」——映射率与映射质量审计是数据适配报告的必答题。

§2.6 与 AI/ML 的药物语义定位

对医疗 AI,RxNorm 是「药物实体的规范化终点」:NER 输出归一、知识图谱药物节点、药物-不良反应模型的概念键、处方生成的语义校验层。它的短板(概念级无产品语义/DDI 缺位/OTC 盲区)都是「命名标准」的角色边界——用它的方法论核心是「RxCUI 主键 + 口径声明 + 生命周期监听」三件套,药理语义去 DrugBank、安全性去 FAERS/SIDER 补足。

§2.7 剂型与强度的语义精度

  1. 121 个剂型的受控词表:DF 层——「tablet/capsule/extended-release tablet」的语义区分;缓释 vs 速释是临床语义不是包装细节——DF 粒度错误是真实临床风险。
  2. 精确剂型的新概念类型:SCDFP/SCDGP/SBDFP(2026-02 调整)——precise formulation 的专用类型,解决「同一 SCD 掩盖剂型差异」的边缘案例。
  3. 强度的归一语义:数值+单位的标准化表达——「500 mg vs 0.5 g」的归一;计量单位歧义(mg vs mEq)在术语层的显式化。
  4. 工程含义:药物等价性判断(仿制药替代/剂量换算)需 SCD 级语义 + DF 显式核对——「概念等价 ≠ 临床等价」。

§2.8 疫苗与特殊药物的语义扩展

  1. CVX 集成:CDC 疫苗码经 RxNorm 概念承载——疫苗的成分/剂型语义(单价/多价/佐剂)在术语层的表达。
  2. 血液制品:RXDNFP(RxNorm for Blood Products)扩展——血浆/免疫球蛋白类概念的专门语义。
  3. SNOMED 药品组器:Medicinal Product groupers 的对齐——「治疗角色」类组的停用(2025-03 跟随 SNOMED 失活)显示语义边界的动态治理。
  4. 组合产品的表达:复方药(fixed-dose combinations)的 MIN/SCD 语义——「成分级 + 药物级」双层表达。

§2.9 品牌-仿制转换期的语义经济学

RxNorm 最有实战价值也最容易被忽视的语义资产,是它对「品牌-仿制转换期」的建模方式。一个药物专利到期后,市场上会同时存在原研品牌(SBD)、多个仿制品牌(SBD)、以及统一的临床药物(SCD)——同一个分子在同一时期的语义表达会膨胀到 5-10 个概念:

  1. SCD 是语义收敛点:仿制上市后,处方数据开始分化(品牌处方 vs 仿制处方);只有回到 SCD(或更上层的 IN)才能把「同一治疗暴露」重新合并。e-prescribing 系统之所以鼓励双码(SCRIPT 标准里品牌码 + 临床码并存),正是为这种合并预留语义通道。
  2. BN 的集合语义是合并工具:5,151 个品牌名(BN)各自指向一组 SBD——用 BN 做聚合时,原研与授权仿制(authorized generic,与原研同厂同方的仿制)会被自然归并;但不同仿制厂的同分子产品是否归并,取决于你聚合到 BN 还是 SCD——两个口径给出不同的市场集中度结论。
  3. 授权仿制的语义陷阱:授权仿制在美国市场有独立的 NDC 和品牌包装,但 RxNorm 里其 SBD 可能与原研共享 BN 关系——做「原研 vs 仿制」对比研究时,按 NDC 分组与按 SBD 分组会给出不同的暴露定义;这是药物利用研究(DUR)里反复出现的口径分歧。
  4. 转换期的时间语义:RxNorm 概念的 Active/Retired 状态转换隐含了市场语义——专利悬崖后消失的品牌包装会 retired,但 SCD 长存。长期时间序列研究若用产品级码,会「看到」大量虚假的药物出现/消失事件;改用概念级码后时间序列立即平稳——这是药物流行病学里「码表选择决定结论形状」的教科书案例。

§3 数据集规格

§3.1 规格总表

维度 规格(2025-12 口径)
归属 NLM/NIH;UMLS 成员词库
发布 月度(Full Monthly + Current Prescribable 双轨)
base ingredients 14,592(全量口径)
临床药物 SCD 17,544(全量)/ 12,067(Prescribable active)
品牌药 SBD 9,721(全量)/ 8,129(Prescribable active)
成分 IN 5,823(Prescribable active)/ 14,592(全量 base)
品牌名 BN 4,168(active)/ 5,151(全量)
包装 GPCK/BPCK 596+704(active)/ 645+747(全量)
剂型 DF 121
NDC 映射 239,682(Prescribable)
API REST 免费;~40 亿次查询/年
工具 RxNav/RxClass/RxTerms/RxMix/in-a-Box
标准地位 USCDI 指定;FHIR/SCRIPT/OMOP 内建
许可 免费(UMLS 许可电子签署)

§3.2 双发布轨道的口径地图

轨道 内容 用途
Full Monthly 全量 RXNORM SAB(含非处方/历史概念) 全谱研究/UMLS 集成
Current Prescribable 可处方子集(RXAUI 过滤;active) 临床交换/e-prescribing/OMOP
月度差异 增量 + CUI 状态变更 生命周期监听

解读:口径选择决定数字(IN 14,592 vs 5,823)——「研究用全量、交换用 Prescribable」是默认姿势;引用数字必须带轨道名。

§3.3 DAIMS 数据AI就绪度评估

维度 D 数据完整性 评分 说明
D1 覆盖完整性 8/10 美国市场临床药物近全覆盖;OTC/维生素盲区
D2 语义深度 9/10 成分-药物-包装三层语义 + 剂型/强度精确表达
D3 历史兼容 8/10 CUI 生命周期官方管理;历史研究需版本回放
D4 多模态 5/10 术语标准无模态数据(角色边界)
A1 机器可读 9/10 RRF 文件 + 官方装载脚本 + REST API
A2 文档完备 9/10 技术文档/发布说明/用户指南完整
A3 接入成本 9/10 免费 + 轻许可;in-a-Box 本地化
A4 更新机制 10/10 月度发布 + 生命周期文件——术语类满分
I1 指标标准化 10/10 本身就是标准化机构
I2 可复现性 9/10 版本月份 + 概念状态历史可回放
M1 多词库对齐 9/10 NDC/SNOMED/CVX/UNII 官方映射
M2 时间序列 7/10 处方时序靠外部数据;术语本身无时序
S1 数据安全 9/10 无患者数据——安全负担近零
S2 合规负担 8/10 UMLS 许可轻手续;再分发条款需核查

总分:A 级(更新机制/标准化双满分——「活的术语系统」的 DAIMS 典型;扣分项是角色边界带来的覆盖语义而非质量缺陷)

§3.4 存储与计算需求

场景 体量 建议
概念/关系表装载 数百 MB RRF MySQL/Oracle 脚本一键装载
实时查询 内存级 API 或 in-a-Box 本地化
实体链接词典 数十 MB 进程内哈希
历史研究 月度发布存档 自建快照库
映射表抽取 数 MB NDC→CUI / RxClass 归属

RxNorm 的工程重心是「关系语义的装载与查询」——RXCUI 索引 + RXNREL 关系表是核心结构;无需分布式。

§3.5 获取通道

  1. UMLS 许可:免费电子签署(UMLS Terminology Services 账号)——下载前提。
  2. 月度文件:Full Monthly + Current Prescribable——RRF 格式 + Oracle/MySQL 装载脚本。
  3. RxNorm API:REST 免费(rxcui 查询/关系/NDC 属性/状态/历史)——40 亿次/年的主通道。
  4. RxNav 工具族:网页浏览(RxNav/RxClass)/ RxTerms(NLP 词典)/ RxMix(管道)/ in-a-Box(本地部署 API+应用)。
  5. UMLS Metathesaurus:全量集成语境(与其他词库的联合查询)。

§3.6 口径对齐表

数字 出处口径 澄清
14,592 base ingredients / 5,151 BN / 17,544 SCD / 9,721 SBD / 645 GPCK / 747 BPCK NLM Tech Bull 2025(20 周年;2025-12 全量) 全量 RXNORM SAB 口径
SCD 12,067 / SBD 8,129 / IN 5,823 / PIN 1,916 / BN 4,168 / DF 121 / GPCK 596 / BPCK 704 / NDC 239,682 Prescribable Release Notes(2025-12-01,active) Prescribable 子集口径
~40 亿次 API 查询/年 / 文件 ~1,000 下载/季度 NLM Tech Bull 2025 使用量口径
8.1% CUI 替换/6 个月 O’Neill & Bell(2009 样本) 历史时点——非当前节奏
121 DF Release Notes 剂型词表规模

§3.7 版本选择纪律

  1. 月份锁定:论文与产品写「RxNorm 2025-12 发布」——月度语义使「当前版」声明无意义。
  2. 轨道声明:Full vs Prescribable——数字与语义双口径。
  3. CUI 生命周期:历史数据研究用「数据时点的发布版本」回放—— retired CUI 的语义在旧版本里完整。
  4. 增量监听:月度差异文件 + RxNav 状态页——生产系统的 CUI 断点预警。

§3.8 数据文件与字段详表

文件/层 内容 关键字段
RXNCONSO 概念-字符串(名称层) RXCUI/RXAUI/SAB/STR/TTY
RXNREL 关系层 RXCUI1/RXCUI2/RELA(has_ingredient/has_dose_form/consists_of/tradename_of)
RXNSAT 属性层 RXCUI/ATN(NDC/PSN/ rxnorm 状态)/ATV
RXNDOC 文档元 术语类型与关系定义
装载脚本 MySQL/Oracle 官方 DDL+loader
RxClass 表 分类归属 classId/relaSource(ATC/ATCPROD/MoA/CDC 疫苗组)
  1. RXAUI vs RXCUI:RXAUI 是原子标识(字符串级)、RXCUI 是概念标识——同一概念多原子;集成管线以 RXCUI 为键。
  2. RELA 语义网络:has_ingredient/consists_of/tradename_of 的有向语义——「药物 = 成分×强度×剂型」的代数在关系层完整表达。

§4 数据结构

§4.1 对象模型

RxNorm 数据模型(RRF)
├── Concept(RXCUI)
│   ├── names(RXNCONSO:STR × TTY——归一化名/PSN/同义词)
│   ├── term_type(IN/MIN/PIN/SCD/SBD/GPCK/BPCK/BN/DF/SCDFP...)
│   ├── status(Active/Retired/Obsolete/Quantified + 日期)
│   ├── relations(RXNREL)
│   │   ├── SCD ──has_ingredient──▶ IN
│   │   ├── SCD ──has_dose_form──▶ DF
│   │   ├── SBD ──tradename_of──▶ SCD(品牌→临床药物)
│   │   ├── BPCK ──consists_of──▶ SCD×n(包装组合)
│   │   └── PIN ──has_unii──▶ UNII(成分→FDA 物质)
│   └── attributes(RXNSAT:NDC 映射/PSN/源信息)
├── NDC Map(RXNSAT NDC:239,682 条;产品级→概念级)
└── RxClass(外部分类层:ATC/ATCPROD/MoA/Physiologic Effect/CDC 疫苗组)

§4.2 概念表装载与查询

#!/usr/bin/env bash
# RxNorm 月度发布装载(MySQL 官方脚本路径示意)
set -euo pipefail

# 1) 下载(UMLS 许可账号后)
unzip RxNorm_full_12012025.zip -d rxnorm_202512

# 2) 官方脚本装载(MySQL;Oracle 同理)
mysql -u rxuser -p rxnorm < rxnorm_202512/scripts/mysql/CreateTables_MySQL.sql
mysql -u rxuser -p rxnorm < rxnorm_202512/scripts/mysql/LoadScripts_MySQL.sql

# 3) 抽查:metformin 500mg tablet 的 SCD 概念
mysql -u rxuser -p rxnorm -e "
SELECT RXCUI, STR, TTY FROM RXNCONSO
WHERE STR LIKE 'metformin 500 MG Oral Tablet%' AND SAB='RXNORM' LIMIT 5;"

# 4) 关系查询:该 SCD 的成分与剂型
mysql -u rxuser -p rxnorm -e "
SELECT r.RXCUI2 AS related, r.RELA FROM RXNREL r
WHERE r.RXCUI1='860989' AND r.SAB='RXNORM';"   # 860989 为示例 CUI

§4.3 REST API 实战

#!/usr/bin/env bash
# RxNorm API:实时查询(免费;月度随发布更新)
# 1) 名称找 RxCUI(精确/模糊)
curl -s "https://rxnav.nlm.nih.gov/REST/rxcui.json?name=lipitor" | python3 -m json.tool
# 2) RxCUI 的全部属性
curl -s "https://rxnav.nlm.nih.gov/REST/rxcui/860989/properties.json"
# 3) 相关概念(按关系类型)
curl -s "https://rxnav.nlm.nih.gov/REST/rxcui/860989/related.json?tty=IN+DF"
# 4) NDC 属性(产品级映射)
curl -s "https://rxnav.nlm.nih.gov/REST/rxcui/860989/ndcs.json"
# 5) 状态与历史(生命周期监听)
curl -s "https://rxnav.nlm.nih.gov/REST/rxcui/860989/status.json"
curl -s "https://rxnav.nlm.nih.gov/REST/rxcui/860989/history.json"
# 6) RxClass:概念的分类归属(ATC/MoA)
curl -s "https://rxnav.nlm.nih.gov/REST/rxclass/class/conceptsByRxcui.json?rxcui=860989"

§4.4 药物实体链接词典(RxTerms)

#!/usr/bin/env python3
"""药物 NLP 实体链接:RxTerms 词典(医生友好名)+ 归一化规则。
数据:RxTerms 全量文件(NLM 提供)+ RxNorm API 兜底。"""
import pandas as pd

# RxTerms:RXCUI, GENERIC_RXNORM_NAME, BRAND_NAME, STRENGTH, DOSE_FORM...
rt = pd.read_csv("RxTerms202512.csv", dtype=str)
print(f"RxTerms concepts: {len(rt)}")

# 1) 词典构建:通用名+品牌名+强度变体 → RXCUI
lex = {}
for _, r in rt.iterrows():
    for name in (r.GENERIC_RXNORM_NAME, r.BRAND_NAME):
        if isinstance(name, str) and name:
            lex.setdefault(name.lower(), set()).add(r.RXCUI)

# 2) 链接函数:文本 token → RXCUI(歧义保留集合)
def link_drug(token: str):
    return lex.get(token.lower(), set())

print(link_drug("lipitor"))    # → {'860989'} 示例:品牌名指向 SBD
print(link_drug("atorvastatin 80 mg oral tablet"))  # → SCD 语义

# 3) 歧义处理:品牌名 BN 可关联多个 SBD——集合语义 + 上下文消歧
# 4) 兜底:未命中 token → RxNorm API /name 端点(限速礼仪)

§4.5 元数据与可复现指纹

  1. 版本三元组:发布月份 + 轨道(Full/Prescribable)+ 装载日期——复现包第一件。
  2. CUI 状态快照:研究时点的 Active 集合——历史 RxCUI 的语义以「当时版本」为准。
  3. 映射源声明:NDC→CUI 表的来源版本(官方 vs 第三方)——多源不一致问题的治理起点。

§4.6 完整性清单

  • [ ] 发布月份 + 轨道双戳
  • [ ] RXCUI 主键(非 RXAUI)确认
  • [ ] TTY 过滤显式(SCD/SBD/IN 分层统计)
  • [ ] retired/merged 处理策略(生命周期表)
  • [ ] NDC 映射的方向与一对多语义
  • [ ] 多映射源仲裁日志
  • [ ] 词典歧义(BN 聚合)的消歧规则
  • [ ] API 与文件版本一致性校验

§4.7 数据血缘

美国药品市场(FDA NDC 目录/上市产品)
  → 源词库(First Databank/Micromedex 等商业词库 + 监管源)
  → NLM 归一化(命名规则 + 编辑流程)
  → RxNorm 月度发布(Full + Prescribable)
  → 集成分发(UMLS/EHR 厂商/OMOP/研究管线)
  → 应用(处方/NLP/药物警戒/真实世界研究)
  → 反馈(用户更正 → 月度修订)

「上市 → 源词库 → 归一 → 发布 → 集成 → 应用 → 反馈」七段血缘——RxNorm 的血缘核心是「商业源 + 公共归一」的混合结构:术语质量的上限由商业词库决定、语义秩序由 NLM 编辑流程保证。

§4.8 RxClass 集成:给 RxCUI 挂上治疗学分类

RxClass 是 RxNorm 生态里最常被低估的组件——它不发布新概念,而是把 ATC、MoA(作用机制)、Physiologic Effect、EPC(established pharmacologic class)、CDC 疫苗组等外部分类挂到 RxCUI 上。做「按治疗领域分层」的分析时,RxClass 是官方正道:

#!/usr/bin/env python3
"""用 RxClass API 给一批 RxCUI 打治疗学分类标签(A/I/M/S 中的 I 层)。"""
import json, time, urllib.request
from collections import defaultdict

def rxclass_by_atc(cuis: list[str], rel: str = "ATC") -> dict[str, list[str]]:
    """对每个 RxCUI 查其 ATC 类组。rel 可选 ATC/EPC/MoA/PE/CDCVACCINEGROUP。"""
    out: dict[str, list[str]] = defaultdict(list)
    for cui in cuis:
        url = (f"https://rxnav.nlm.nih.gov/REST/rxclass/class/"
               f"byRxcui.json?rxcui={cui}&relaSource={rel}")
        with urllib.request.urlopen(url, timeout=15) as r:
            data = json.load(r)
        classes = (data.get("rxclassDrugInfoList") or {}).get("rxclassDrugInfo") or []
        for item in classes:
            cls = item["rxclassMinConceptItem"]["rxclassMinConcept"]
            out[cui].append(f"{cls['classId']}|{cls['className']}")
        time.sleep(0.12)  # NLM 礼貌限速
    return dict(out)

def expand_via_class(class_id: str, rela: str = "ATC") -> list[str]:
    """反向:给定 ATC 码拉出全部成员 RxCUI(队列定义用)。"""
    url = (f"https://rxnav.nlm.nih.gov/REST/rxclass/classMembers.json?"
           f"classId={class_id}&relaSource=ATC")
    with urllib.request.urlopen(url, timeout=15) as r:
        data = json.load(r)
    return [m["rxcui"] for m in
            (data.get("drugMemberGroup") or {}).get("drugMember") or []]

if __name__ == "__main__":
    # 例:华法林(RxCUI 11289)的 ATC 归属
    print(rxclass_by_atc(["11289"]))
    # 例:B01AA(维生素 K 拮抗剂)全队列
    print(len(expand_via_class("B01AA")), "个成员概念")

集成要点:(1) relaSource 决定分类维度——同一个 CUI 在 ATC/MoA/PE 下给出不同的邻居集合,选错维度等于把「同类药」定义错;(2) RxClass 的类组映射随月度发布更新——长期运行的管线要把类组版本也记进血缘;(3) 类组存照进特征表时写「classId + relaSource + 发布月份」三元组,单写 ATC 码在复现时会歧义。

§4.9 OMOP 词汇域映射:RxCUI → 概念级分析层

OMOP CDM 是 RxNorm 在真实世界研究里最大的消费方——drug_exposure 表的 drug_concept_id 即 RxNorm 概念经 Athena 映射后的标准概念。自己搭 OMOP 管线时,映射层是最需要口径自觉的一段:

#!/usr/bin/env python3
"""NDC 流水 → RxNorm SCD/SBD → OMOP 标准概念的映射桥(教学骨架)。
   生产环境请用 Athena 下载的官方 CONCEPT/CONCEPT_RELATIONSHIP 表。"""
import pandas as pd

def load_omop_drug_map(concept_path: str, rel_path: str) -> pd.DataFrame:
    """构建 rxcui → OMOP standard drug concept 的映射宽表。"""
    concept = pd.read_csv(concept_path, sep="\t", low_memory=False)
    # OMOP 里 RxNorm 概念的 vocabulary_id = 'RxNorm'
    rx = concept[(concept.vocabulary_id == "RxNorm")
                 & (concept.standard_concept == "S")][
        ["concept_id", "concept_code", "concept_name"]]
    rx = rx.rename(columns={"concept_code": "rxcui"})
    rel = pd.read_csv(rel_path, sep="\t", low_memory=False)
    # NDC → RxNorm 的映射链在 OMOP 中经由 'Maps to' 关系承载
    chain = rel[rel.relationship_id == "Maps to"][
        ["concept_id_1", "concept_id_2"]]
    ndc = concept[concept.vocabulary_id == "NDC"][["concept_id", "concept_code"]]
    merged = (chain.merge(ndc, left_on="concept_id_1", right_on="concept_id")
                   .merge(rx, left_on="concept_id_2", right_on="concept_id",
                          suffixes=("_ndc", "_rx")))
    return merged[["concept_code", "rxcui", "concept_id_rx", "concept_name"]]

def define_exposure(claims_ndc: pd.Series, mapping: pd.DataFrame,
                    fail_policy: str = "drop") -> pd.Series:
    """NDC 计费流 → 标准概念流。fail_policy: drop|flag——药物暴露研究
    里未映射 NDC 的处理策略本身就是研究设计决策,要写进方法学。"""
    mapped = claims_ndc.map(mapping.set_index("concept_code").index)
    if fail_policy == "flag":
        return mapped, claims_ndc[~claims_ndc.isin(mapping.concept_code)]
    return mapped.dropna()

if __name__ == "__main__":
    # 239,682 NDC 映射(2025-12 Prescribable 口径)意味着产品层覆盖接近全量;
    # 但 OMOP 的 NDC→标准概念链有自己的版本节奏——两个映射源要做 diff。
    print("映射链版本写进血缘:OMOP vocab 版本 + RxNorm 发布月份双戳")

口径自觉:OMOP 词汇包与 RxNorm 月度发布的版本节奏不同步——同一批 EHR 数据经「RxNorm 直连」与「经 OMOP 词汇包」两条路映射,得到的暴露队列规模可能差 1-3%;方法学段落必须写明映射链(源码 → RxNorm 版本 → OMOP 版本),这是 §6.5 坑点 6「多映射源冲突」在 OMOP 语境下的具体形态。

§5 下游分析协议

§5.1 任务×资源速查表

任务 用哪些层 关键动作 陷阱
EHR 药物归一 RXNCONSO + NDC 映射 NDC/文本 → RxCUI 概念级/产品级混淆
药物 NLP RxTerms + API 兜底 词典 + 消歧 BN 聚合歧义
暴露分组 RxClass ATC/MoA 聚合 类别边界跨年变化
PheWAS 暴露定义 SCD 语义 + RxClass 暴露窗口 + 分组 缓释/速释语义忽略
药物警戒对齐 NDC 映射 + 状态 报告数据归一 retired CUI 复用
术语演化研究 月度差异 + history 生命周期回放 口径(轨道)混用

§5.2 EHR 药物数据归一协议

  1. 源字段分型:NDC 码/自由文本/既有编码(各机构异构)——先分型再选映射路径。
  2. 映射优先级:NDC 官方映射 > 文本精确匹配(归一化名)> RxTerms 词典 > API 模糊——四级瀑布。
  3. 歧义治理:一对多候选(文本歧义)+ 多映射源冲突——仲裁日志 + 抽样人工核验(PPV ≥95%)。
  4. 覆盖率审计:按 TTY/机构分层报告映射率——「 unmapped ≠ 缺失」(OTC/营养品可能真不在范围)。
  5. 落表:drug_exposure(RxCUI 主键)+ 原始字段留痕 + 版本月份——「归一 + 留痕」双写。

§5.3 药物暴露定义协议(PheWAS/RWE)

  1. 概念选择:活性成分(IN)→ 成分下全部 SCD/SBD 枚举——「成分级暴露」的完备集合。
  2. 剂型语义:DF/SCDFP 显式核对——缓释/速释/注射途径的暴露语义差异(必要时分层)。
  3. 窗口定义:处方供应天数(days_supply)+ 队列时间窗——暴露窗口协议独立于术语层但依赖其语义。
  4. 类别聚合:RxClass(ATC/MoA)做组级暴露——类别边界随发布微调,锁版本。
  5. 敏感性:品牌 vs 通用(SBD vs SCD)双口径——商业语义敏感性分析。

§5.4 成本模型

场景 技术路线 成本量级
月度装载 官方脚本 + 本地库 $0 数据费;运维小时级
实时查询 RxNorm API / in-a-Box $0;限速礼仪
NLP 词典 RxTerms + 规则 工程数天
大规模归一 批量 NDC 映射 + 抽检 人力为主(数天-周)
历史回放 月度发布存档 存储自担(数百 MB/年)

(RxNorm 与 HGNC 同类——「零数据成本、纯工程人力」的术语基础设施。)

§5.5 失败模式清单

  1. 概念级/产品级混淆:SBD 当 NDC 用——双字段架构。
  2. retired CUI 复用:历史数据的旧 CUI 直接进新分析——生命周期表核对。
  3. 轨道口径混用:Full 数字 vs Prescribable 数字——引用带轨道名。
  4. BN 聚合歧义:品牌名直取单候选——集合语义 + 上下文。
  5. 剂型语义忽略:缓释/速释合并统计——DF 显式分层。
  6. 多映射源冲突:第三方表与官方表不一致——官方优先 + 仲裁日志。
  7. OTC 盲区假设:营养品/造影剂当覆盖内——范围边界核查。
  8. API 版本漂移:实时 API 与本地装载版本不一致——版本对齐校验。

§5.6 校准与验证协议

验证层 数据源 指标 通过线(参考)
L1 装载完整性 官方发布计数 计数对齐 与 Release Notes 一致
L2 映射覆盖率 归一管线 RxCUI 命中率 分层报告(≥85% 常见)
L3 映射准确性 人工抽检 PPV ≥95%(核心药物)
L4 语义层级 TTY 分布 概念级正确 无产品级误用
L5 生命周期 status/history API retired 处理率 100% 核对
L6 端到端 OMOP 抽查 drug_exposure 语义 与 EHR 原意一致
  1. L4 是术语应用特有的校验:映射对了码但错了层级(SCD vs SBD vs NDC)——下游分组全错;TTY 分布审计是廉价高效的第一道闸。
  2. L6 的语义锚定:与临床专家抽查「这条 drug_exposure 的 RxCUI 是否符合处方原意」——术语正确性的最终裁判是临床语义。

§6 实证结果与方法学分析

§6.1 20 年演进的实证观察

  1. 制度化路径:2005 发布 → 2011 Meaningful Use → USCDI 指定——「术语标准的成功」是工程与监管的双轮驱动;技术质量只是入场券。
  2. 使用结构的迁移:API 40 亿次/年 vs 下载 1,000 次/季度——「文件分发 → 服务化」的使用重心迁移;术语系统的基础设施形态随之演进(in-a-Box 是折中)。
  3. 语义边界的自觉收缩:DDI API 停用(2024)/治疗角色类组停用(2025)——NLM 把「临床决策语义」让位商业源、专注命名与映射的公共品核心——「公共标准知道自己不该做什么」。
  4. 精确化的持续演进:PIN/SCDFP/SCDGP 类型出现——「成分/剂型的精确语义」是术语系统应对真实临床复杂性的进化方向。

§6.2 映射质量的实证教训

  1. 8.1% 替换率的含义:早期(2009)CUI 波动大——术语系统的「青年期」不稳定是普遍规律;当前节奏已稳但生命周期监听仍是铁律。
  2. 多源不一致的真实性:两个 RxNorm 基 NDC→CUI 表的轻微不一致(缓释/速释类)——「官方映射也有噪声」;第三方集成不可盲信。
  3. NLP 映射的官方示范:NLM 自建 NDC→RxNorm 自由文本映射管线——「文本→概念」的自动化是术语系统自带工程而非用户自谋。
  4. 对集成工程的启示:映射质量的验收标准是「分层 PPV」——核心药物(高频处方)与长尾药物的准确率要分开报告。

§6.3 方法学三层框架(gsm)

  1. G(Ground layer):RxCUI/字符串/NDC 码——机器可测的标识层。
  2. S(Synthesis layer):TTYS 语义/关系网络/RxClass 归属——标准化推断层(NLM 编辑产出)。
  3. M(Medical layer):临床用药语义/暴露定义/处方等价——临床语义层(需临床验证闭环)。

越层引用:把 BN 命中(G 层)当「同一临床药物」(S 层语义需经 tradename_of 关系)、把概念等价当「临床可互换」(M 层需剂型/生物等效性)——三层语义的越级是药物数据事故的经典路径。

§6.4 接力实验设计

  1. RxNorm → DrugBank/ChEMBL:归一名 → 药理/结构知识(靶点/ADMET)。
  2. RxNorm → FAERS/SIDER:RxCUI → 不良事件谱(警戒层)。
  3. RxNorm → ATC(RxClass):概念 → 分类聚合(流行病学分组)。
  4. RxNorm → OMOP/EHR:术语 → 研究数据模型(真实世界研究)。
  5. RxNorm → FDA 标签/UNII:概念 → 监管语义(成分级回溯)。

§6.5 八个真实坑点

  1. 坑点 1:概念级/产品级混淆——SBD ≠ NDC;双字段架构。
  2. 坑点 2:retired CUI 复用——生命周期表核对;版本锁定。
  3. 坑点 3:轨道口径混用——Full vs Prescribable 数字分开引用。
  4. 坑点 4:BN 聚合歧义——品牌名多 SBD;集合语义。
  5. 坑点 5:剂型语义忽略——缓释/速释临床语义不同;DF 分层。
  6. 坑点 6:多映射源冲突——官方优先 + 仲裁日志。
  7. 坑点 7:OTC/维生素盲区——「临床显著成分」的范围边界。
  8. 坑点 8:DDI 语义幻觉——交互 API 已停用;安全性数据找商业源/FAERS。

§6.6 审稿人自查清单

  • [ ] RxNorm 发布月份 + 轨道声明?
  • [ ] RxCUI 主键与 TTY 层级(SCD/SBD/IN)报告?
  • [ ] retired/merged CUI 的处理描述?
  • [ ] NDC↔RxCUI 映射的方向与来源?
  • [ ] 暴露分组的类别体系(RxClass 源)与版本?
  • [ ) 剂型(DF)语义在暴露定义中的处理?
  • [ ] OTC/营养品的覆盖边界声明?

§6.7 术语系统演进的方法学含义

  1. 月度节奏的工程含义:术语系统「活的」——订阅月度差异比年度重装更稳;in-a-Box 让「本地最新」成为低成本选项。
  2. 类型系统的精细化:TTY 从 9 类扩展精确剂型——「术语的表达力随临床复杂性进化」;下游解析器要容忍新类型出现。
  3. API-first 的分发:40 亿次查询说明语义查询是高频小请求——「术语作为服务」是数据系统的终局形态。
  4. 让位的智慧:DDI 语义退出——术语系统的长期生命力依赖「公共核心」的专注;大而全是退化信号。

§6.8 与国际术语的对齐张力

  1. SNOMED CT 药品子集:国际语境的药品术语——与 RxNorm 双向映射但语义粒度不同(SNOMED 含国际产品);「美国概念级 vs 国际产品级」的对齐张力。
  2. ATC 的双轨接入:成分级 ATC(经典)+ ATCPROD(产品级,2023)——WHO 分类经 RxClass 双形态接入。
  3. USCDI 的美国语境:RxNorm 的标准地位是美国制度产物——国际研究用 RxNorm 需声明「美国市场语义」;跨国数据对齐需 SNOMED/ATC 桥接层。
  4. 工程含义:多国 EHR 联合研究的药物维度需「RxNorm(US)+ 本国码表 → 共同语义层(ATC/INN)」的三段映射。

§6.9 术语统计的解读纪律

RxNorm 的官方数字(14,592 成分 / 17,544 SCD / 239,682 NDC)在论文里被反复转引,但转引错误的频率远高于基因符号类数据——根源是这些数字的口径依赖远超其他词库。三条解读纪律:

  1. 轨道先行:引用任何数量前先问 Full 还是 Prescribable——SCD 在两条轨道差 5,477(17,544 vs 12,067),SBD 差 1,592(9,721 vs 8,129);同一个「临床药物数量」两种写法都对、混引就全错。
  2. 月份必写:月度发布意味着「2025-01 的 RxNorm」与「2025-12 的 RxNorm」是两个不同的快照——数量级不变、具体概念集有出入;复现研究必须锁月份,审稿人查版本时「RxNorm 2025」这种写法算不合格。
  3. 增长 ≠ 膨胀:20 年间概念数从 2 万级涨到 7 万级(Full 口径),主要驱动力是组合产品与剂型细分——不是「术语变多了」而是「语义切得更细」;把概念数增长当「数据规模增长」解读会得出方向性错误的市场观察。

§7 AI 就绪指南与应用场景

§7.1 RxNorm 在医疗 AI 中的四种喂法

  1. 实体链接喂法:处方/临床文本 → RxCUI——RxTerms 词典 + API 兜底。
  2. 数据归一喂法:多源 EHR 药物字段 → RxCUI 主键——OMOP 化的前置层。
  3. 暴露特征喂法:RxCUI × 时间窗 → 暴露特征(ML 风险模型/药物结局)。
  4. 知识图谱喂法:RxCUI 节点 + 关系边(成分/剂型/品牌)+ RxClass 类别边——药物子图骨架。

四种喂法与 §6.5 坑点对应:喂法 1 踩坑 4(BN 歧义);喂法 2 踩坑 1(层级混淆);喂法 3 踩坑 5(剂型语义);喂法 4 踩坑 2(retired 复用)——建模前回读对号。

§7.2 处方文本归一管线实操配方

#!/usr/bin/env python3
"""处方自由文本 → RxCUI:词典 + 规则 + API 兜底(生产骨架)。
数据:RxTerms 词典 + RxNorm API(兜底)+ 归一化规则。"""
import re, requests

class DrugNormalizer:
    def __init__(self, rxterms_csv: str):
        import pandas as pd
        rt = pd.read_csv(rxterms_csv, dtype=str)
        self.lex = {}
        for _, r in rt.iterrows():
            for name in (r.get("GENERIC_RXNORM_NAME"), r.get("BRAND_NAME")):
                if isinstance(name, str) and name:
                    self.lex.setdefault(name.lower().strip(), set()).add(r.RXCUI)

    @staticmethod
    def _clean(text: str) -> str:
        text = text.lower().strip()
        text = re.sub(r"\s+", " ", text)
        text = re.sub(r"[,;]+$", "", text)
        return text

    def normalize(self, text: str):
        t = self._clean(text)
        # 1) 词典精确
        cands = self.lex.get(t, set())
        if len(cands) == 1:
            return cands.pop(), "lex_exact"
        # 2) 规则归一:强度单位统一(500 mg → mg 规范)/剂型同义(pill→tablet 类规则示例)
        t2 = re.sub(r"\bpill\b", "tablet", t)
        cands = self.lex.get(t2, set())
        if len(cands) == 1:
            return cands.pop(), "lex_rule"
        # 3) API 兜底(限速礼仪:缓存 + 失败重试)
        try:
            r = requests.get("https://rxnav.nlm.nih.gov/REST/rxcui.json",
                             params={"name": t}, timeout=5).json()
            ids = r.get("idGroup", {}).get("rxnormId", [])
            if len(ids) == 1:
                return ids[0], "api"
            return (ids, "api_ambiguous") if ids else (None, "unmapped")
        except Exception:
            return None, "api_failed"

# 批量:缓存 + 歧义队列 + 抽检(PPV ≥95%)

§7.3 模型选型与迁移决策

  1. 词典优先:RxTerms 精确覆盖大多数处方表达——规则 + 词典是基线。
  2. 上下文消歧:BN 歧义/缩写歧义用上下文分类(共现诊断/科室信号)——弱监督生成训练集。
  3. 神经归一:长尾自由文本(拼写错误/口语表达)用字符级 seq2seq/BiEncoder——训练对由「未命中 → API 精确命中」弱监督构造。
  4. 暴露建模:梯度提升/深度时序——暴露特征的术语层归一前置(本节管线)。
  5. 不确定性:unmapped/ambiguous 的置信分层——临床决策链路宁弃链不错链。

§7.4 公平性:术语覆盖的边缘地带

  1. OTC/补充剂的覆盖缺口:维生素/草药/营养补充剂覆盖不完整——真实世界暴露研究的大盲区(自我用药不可见)。
  2. 品牌生态的语义偏向:品牌名语义丰富(BN/SBD 全)vs 仿制药多 SCD——品牌时代的药物数据在术语层的痕迹分布不均。
  3. 语言与地域:非英语处方文本/国际药品的映射缺口——多语种 NLP 的额外映射层。
  4. 时间偏向:退市药物语义弱化(retired 率)——历史暴露研究的「术语幸存者偏差」审计。

§7.5 任务×资源速查表

AI 任务 RxNorm 数据 输出形态 验收
药物 NER+归一 RxTerms + API 文本 → RxCUI PPV ≥95%
处方风险模型 RxCUI 暴露特征 风险评分 分层 AUC
ADE 信号挖掘 RxCUI × FAERS 不良事件谱 语义层级正确
知识图谱 RXNREL + RxClass 药物子图 关系方向正确
处方生成校验 SCD 语义 生成后校验 TTY/DF 合规
OMOP 转换 NDC 映射 + 归一 drug_exposure 映射率分层报告

§7.6 端到端案例:多机构 EHR 的药物暴露队列

  1. 接入:三机构 EHR 处方表(NDC/文本/自有码异构)——源字段分型。
  2. 归一:四级瀑布映射(NDC 官方 → 文本精确 → RxTerms → API)——覆盖率分层报告。
  3. 语义:RxCUI 主键 + TTY 分布审计 + 剂型分层(缓释独立)。
  4. 分组:RxClass(ATC L2)暴露组——类别版本锁定。
  5. 建模:暴露窗口(days_supply)→ 结局风险模型——同人切分防泄漏。
  6. 验收:映射 PPV ≥95% + 分层覆盖率 + 版本月份三件套——报告齐。

§7.7 报告模板:方法学段落骨架

药物数据标准化采用 RxNorm(NLM,2025-12 月度发布,Current Prescribable Content 轨道)。多机构处方数据按四级瀑布映射至 RxCUI(官方 NDC 映射 → 归一化名精确匹配 → RxTerms 词典 → RxNorm API 兜底),映射覆盖率按机构与术语类型分层报告(整体 [x]%,核心药物 [y]%)。映射质量经 300 例人工抽检(precision [z]%);品牌名歧义以共现上下文消歧,未决项进入人工核验队列。药物暴露定义在 SCD/SBD 语义层显式处理剂型(缓释制剂独立分层);暴露分组采用 RxClass ATC L2(2025-12 版本)。退市与合并概念(retired/merged RxCUI)经官方状态 API 逐一核对;历史数据的 RxCUI 语义以数据时点版本回放。全部版本月份、映射表与抽检集随复现包发布。

§7.8 成本与排期模板

阶段 内容 成本构成 周期
接入 UMLS 许可 + 月度装载 运维 2-3 天
归一管线 四级瀑布 + 缓存 工程 1-2 周 2 周
抽检 300 例人工 PPV 人力 3-5 天
分组 RxClass 集成 工程 2-3 天
监听 月度差异 + 状态核对 运维(cron) 1 天/月
复现包 版本+映射表+抽检集 人力 1 天

RxNorm 项目的排期风险在「歧义仲裁的人力吞吐」——归一管线的自动化率决定排期;抽检不可省。

§7.9 消融案例:药物归一策略的必要性

处方文本归一的策略消融(多机构 EHR 场景,示意量级):

配置 归一策略 质量(示意) 诊断
R1 NDC 直通(有码用码) 覆盖 60%;产品级语义残留 概念级缺失
R2 R1 + 文本精确匹配 覆盖 85%;层级错误 +6% TTY 未审计
R3 R2 + TTY 审计 + 缓释分层 层级错误回落;剂型语义正确 语义分层生效
R4 R3 + RxTerms/API 兜底 + 人工队列 覆盖 95%+;PPV ≥95% 完整瀑布
  1. 方法:同一三机构数据流;评估锁人工标注集(含层级标注);R3 增加 TTY 分布审计与剂型敏感性。
  2. 读数:R1→R3 的层级错误回落证明「码对了 ≠ 语义对了」——TTY 审计是性价比最高的质量闸;R4 的兜底使长尾覆盖达标。
  3. 结论:药物归一是「映射 + 语义层级 + 生命周期」的三合一——只做映射不做层级审计的管线在暴露定义层必然出错。

§8 伦理、许可与合规

§8.1 许可与义务结构

  1. UMLS 许可框架:免费电子签署(UTS 账号)——个人/机构年审;「免费但非无主」的许可形态。
  2. 再分发限制:原始文件(RRF)再分发有限制条款——集成产品(嵌入 RxCUI 的软件/衍生映射表)与原始文件分发的边界逐条核查官方条款。
  3. 归属规范:产品/论文声明「包含 RxNorm © NLM」类归属语句——许可协议的文范要求。
  4. API 礼仪:限速/缓存/标识——40 亿次/年的公共 API 依赖使用纪律维持。

§8.2 引用与致谢模板

致谢模板(按需裁剪):
Drug terminology was standardized using RxNorm (U.S. National Library
of Medicine, December 2025 monthly release, Current Prescribable
Content). RxNorm is distributed free of charge under the UMLS license;
this product/resource incorporates RxNorm data (© NLM). API:
rxnav.nlm.nih.gov. RxNorm 20th anniversary caliber: NLM Technical
Bulletin 467:e2 (2025).

§8.3 国内合规路径

  1. 数据性质:术语标准——无患者数据/无遗传资源语义;使用层面合规负担轻。
  2. 药品监管语义:国内用药数据映射 RxNorm 属于「术语转换」——药品上市许可/说明书语义以 NMPA 监管为准;「RxNorm 归一 ≠ 国内合规编码」的双轨并存。
  3. 临床软件边界:临床决策软件内嵌 RxNorm 合规(UMLS 许可允许)——软件本身的医疗器械监管独立于术语许可。
  4. 建议姿势:国内多中心研究以「本地药品码表 + RxNorm 映射列」双轨——国际可比性与本地合规兼得。

§8.4 商业使用边界

  1. 可以商用:UMLS 许可覆盖商业产品(EHR 软件/分析平台/保险科技)——免费许可 + 归属声明 + 原始文件再分发限制的三点结构。
  2. 增值空间:RxNorm 管「语义」不管「数据」——商业词库(DDI/剂量/价格/包装图)在其上增值;这是官方有意留下的商业生态位。
  3. SLA 设计:月度发布节奏是官方承诺——商业产品的术语更新 SLA 按月度对齐 + retired CUI 断点预警。

§8.5 合规台账最小模板

台账项 记录内容 示例
许可状态 UMLS 协议签署 + 年审 UTS 账号
版本月份 发布月 + 轨道 2025-12 Prescribable
归属声明 产品内嵌声明语句 © NLM 标注
映射来源 NDC 表来源 + 版本 官方/第三方
retired 监听 月度状态核对日志 cron 记录
抽检记录 PPV 人工核验 300 例批次
API 使用 限速/缓存策略 礼仪合规

§8.6 术语治理的架构语义

把 RxNorm 的治理设计抽象为可复用模式:

  1. 概念与名称分离:RXCUI(概念)/ RXAUI(原子字符串)——「名字可以很多、概念只有一个」。
  2. 生命周期即数据:retired/merged 是官方状态机——术语演化的事件流(月度)可订阅。
  3. 双轨分发:全量研究轨 + 交换子集轨——「一个语义、两个口径」的显式化。
  4. 边界的自觉:命名管到底、临床决策不越界——公共标准与商业生态的分工设计。

§9 谱系与生态

§9.1 药物术语时间线

1990s  美国药物编码混乱时代(NDC 产品码 + 各家词库)
2000s 初  NLM 启动 RxNorm 研究(商业词库集成路线)
2005  首个完整月度发布
2011  Meaningful Use 推动 EHR 采用
2010s  USCDI 确立药品交换标准地位
2023  ATCPROD 产品级 ATC 分类进 RxClass
2024-01  DDI API 停用(边界收缩)
2025  20 周年;精确剂型类型(SCDFP 等)落地
2026  RxClass 产品导向简化;API 月度随发

§9.2 术语表

术语 定义
RxNorm NLM 标准化临床药物命名法
RxCUI RxNorm 概念唯一标识
RXAUI 原子标识(字符串级;RXCUI 的组成原子)
TTY 术语类型(IN/MIN/PIN/SCD/SBD/GPCK/BPCK/BN/DF)
SCD Semantic Clinical Drug——成分+强度+剂型(通用语义)
SBD Semantic Branded Drug——SCD+品牌
IN / PIN 成分 / 精确成分(UNII 关联)
GPCK / BPCK 通用/品牌包装组
BN 品牌名概念
DF 剂型受控词表(121 个)
RXNCONSO / RXNREL / RXNSAT RRF 概念/关系/属性表
NDC FDA 国家药品码(产品级)
USCDI 美国核心互操作数据标准(RxNorm 为药品指定标准)
RxNav / RxClass / RxTerms / RxMix NLM 工具族
RxNav-in-a-Box 本地可部署版 API+应用
UMLS 统一医学语言系统(RxNorm 母体)

§9.3 资源选型决策树

你的需求是什么?
├─ 「EHR 药物字段标准化」
│    → RxNorm(RxCUI 主键 + NDC 映射)
├─ 「药物结构/靶点/ADMET」
│    → DrugBank / ChEMBL(药理层)
├─ 「不良事件/药物警戒」
│    → FAERS / SIDER(警戒层;DDI 找商业源)
├─ 「药物分类分组」
│    → RxClass(ATC/ATCPROD/MoA)或 ATC 直用
├─ 「疫苗编码」
│    → CVX(经 RxNorm 集成)
├─ 「成分级语义回溯」
│    → UNII(PIN 关联)
├─ 「包装/厂商/计费」
│    → NDC(产品级)——RxNorm 明确不管
└─ 「国际药品术语」
     → SNOMED CT 药品子集 + RxNorm 映射桥

§9.4 与本库其他条目的关系

条目 关系
drugbank 药理知识层——RxNorm 管命名、DrugBank 管知识
chembl 化合物结构层——靶点语义经基因/药物双锚
sider / faers 不良事件层——药物维度的语义统一
mimic-iv(系列) EHR 处方表——drug 字段的 RxNorm 归一示范
all-of-us OMOP drug_exposure——标准码直接内建
umls 母体词库——跨词库集成语境
snomed-ct 全科术语——药品子集互映射

§9.5 组合使用建议

研究设计 推荐组合 分工
真实世界药物结局 RxNorm(归一)+ OMOP(模型)+ SIDER(安全) 语义 + 数据 + 事件
药物 NLP RxTerms(词典)+ RxNorm API(兜底)+ 文献语料 归一 + 语义 + 语料
药物知识图谱 RxNorm(药物节点)+ DrugBank(靶点边)+ SIDER(事件边) 骨架 + 药理 + 安全
多机构联合分析 RxNorm(标准码)+ 各机构码表映射 归一层先行
药物流行病学 RxNorm + RxClass(ATC)+ FAERS 暴露 + 分组 + 信号

组合纪律:RxCUI 为键、版本月份双戳——组合中药物以 RxCUI 连接;每次分析锁定发布版本与轨道;映射日志留痕。

§9.6 术语基础设施的生态角色

RxNorm 证明了「公共归一 + 商业源 + 监管推进」可以在国家级尺度运转 20 年:NLM 的编辑流程保证语义秩序,商业词库供给数据质量,USCDI 制度保证采用。它把「药物命名」从 pharmacy 的柜台语言升级为全国医疗系统的交换标准——美国药品数据的互操作性因此有了地基。对医疗 AI,RxNorm 是药物实体的「地面真值」:任何涉及药物的系统都应以 RxCUI 为语义层——这是「用公共标准锚定药物语义」的最低成本路径。

§9.7 术语标准家族的光谱定位

维度 RxNorm HGNC SNOMED CT
对象 临床药物 人类基因 全临床语义
体量 数万概念 4.4 万符号 数十万概念
许可 UMLS 免费+限制 完全无限制 成员国/许可制
节奏 月度 月度 双年发布
核心机制 成分×强度×剂型代数 稳定 ID + 符号 多轴概念体系
  1. 家族共性:稳定标识 + 生命周期管理 + 多源映射——术语系统的三件套跨域成立。
  2. 差异的根源:对象语义复杂度决定结构复杂度——药物「组合代数」(成分×强度×剂型)使 RxNorm 的关系层比 HGNC 厚。

§9.8 RxNorm 生态的圈层地图

以 RxNorm 为圆心,药物术语生态可以画成四个圈层——每圈层的「依赖方向」都是外圈依赖内圈,理解依赖方向是选型不混乱的前提:

圈层 组件 角色 依赖 RxNorm 的方式
核心 RxCUI/TTY/月度发布 语义本体 —(本体本身)
工具圈 RxNav / RxNav-in-a-Box / RxNorm API / RxClass / RxTerms 查询与浏览 直接消费核心发布
集成圈 UMLS / OMOP 词汇包 / EHR 厂商词表 / FHIR US Core 分发与再封装 把 RxCUI 再映射进各自模型
应用圈 e-prescribing(SCRIPT)/ 药物警戒 / RWE 管线 / 药物 NLP 语义消费 经集成圈或直连
  1. RxTerms 的位置:工具圈里的「 prescriptions 专用视图」——把核心发布的成分/强度/剂型重排成开方友好型词典;它不是独立词库而是核心的投影,口径必须跟核心发布走。
  2. RxNav-in-a-Box 的位置:给无法出公网的环境用——本地 API 镜像;医院内网部署药物安全系统的标准解法,也是国内合规路径(§8.3)里「数据不出境」的官方答案。
  3. 圈层穿越的代价:应用圈直接耦合核心发布(跳过集成圈)意味着自己维护月度 diff——便宜但脆弱;经集成圈意味着吃进 UMLS/OMOP 的发布节奏——稳定但多一层版本对齐。选哪条路取决于团队维护预算,没有免费选项。

§10 资源导航与 FAQ

§10.1 官方资源导航

上手指引(第一次接入的推荐顺序):

  1. UTS 账号 + UMLS 许可电子签署(第一天)。
  2. 下载最新月度发布 → 官方脚本装载 MySQL(验证计数对齐 Release Notes)。
  3. RxNav 浏览器熟悉 TTY 语义(SCD/SBD/BN 的手感)。
  4. RxTerms 词典构建 + API 兜底管线(第一周)。
  5. 月度差异订阅 + retired 监听 cron——生产化收尾。

§10.2 关键文献

  1. NLM. RxNorm Marks Its 20th Anniversary. NLM Technical Bulletin 467, e2 (2025 Nov-Dec).
  2. NLM. RxNorm Current Prescribable Content Release Notes (2025-12-01). NLM(2025).
  3. Liu, S., Ma, W., Moore, R., Ganesan, V. & Nelson, S. RxNorm: prescription for electronic drug information exchange. IEEE IT Professional 7, 48-52 (2005/2011 语境)(方法论文).
  4. Bodenreider, O. The Unified Medical Language System (UMLS): integrating biomedical terminology. Nucleic Acids Research 32, D267-D270 (2004)(UMLS 母体).

§10.4 FAQ

Q1:RxNorm 收费吗?
A:免费——UMLS 许可电子签署后自由使用;原始文件再分发有限制条款。

Q2:RxCUI 会变吗?
A:概念标识在生命周期内稳定——但退市/合并会 retired/merged;月度状态核对是生产纪律。

Q3:RxNorm 和 NDC 什么关系?
A:NDC 是产品码(厂商/包装级)、RxNorm 是概念级语义——一个 RxCUI 映射多个 NDC;计费场景必须 NDC。

Q4:SCD 和 SBD 差在哪?
A:SBD = SCD + 品牌语义——「aspirin 325mg tablet」(SCD)vs「Bufferin 325mg tablet」(SBD);归一分析用 SCD、品牌敏感性用 SBD。

Q5:14,592 和 5,823 哪个是成分数?
A:都对——14,592 是全量 base 口径、5,823 是 Prescribable active 口径;引用带轨道名。

Q6:维生素/保健品在 RxNorm 里吗?
A:部分覆盖——「临床显著活性成分」边界外的多数 OTC/营养品不在范围;真实世界暴露研究要声明盲区。

Q7:药物相互作用数据在哪?
A:RxNorm 的 DDI API 已停用(2024-01)——商业词库(FDB/Micromedex)或 FAERS 类数据源。

Q8:怎么把处方文本变成 RxCUI?
A:四级瀑布——NDC 官方映射 → 归一化名精确匹配 → RxTerms 词典 → API 兜底;歧义进人工队列。

Q9:月度发布必须每月更新吗?
A:研究可锁版本;生产系统建议月度增量(差异文件)+ retired 监听——断点预警。

Q10:RxClass 是什么?
A:NLM 的药物分类服务——ATC/ATCPROD/作用机制/生理效应/CDC 疫苗组多源类别;暴露分组的现成工具。

Q11:可以本地部署吗?
A:可以——官方 MySQL/Oracle 装载脚本 + RxNav-in-a-Box(本地 API+应用);内网环境友好。

Q12:retired CUI 的历史数据怎么办?
A:用数据时点的发布版本回放语义;或经 history API 找映射去向——生命周期表是长期研究的保险。

Q13:RxNorm 覆盖国际药品吗?
A:美国市场语境——国际药品经映射部分可达;跨国研究需 SNOMED/ATC 桥接层。

Q14:API 有速率限制吗?
A:官方未公布硬限速——40 亿次/年的使用量说明合理使用免费;限速礼仪(缓存/标识)是公共品纪律。

Q15:怎么引用 RxNorm?
A:NLM Tech Bull(20 周年公报)+ 发布月份 + 轨道;产品内嵌按 UMLS 许可加归属声明。

Q16:BN 为什么会有歧义?
A:一个品牌名概念可关联多个 SBD(同品牌多规格/剂型)——品牌名直取单候选是经典错误。

Q17:PIN 和 IN 差在哪?
A:PIN 是精确成分(含盐型/酯型语义,关联 UNII)、IN 是通用成分——成分级精确语义的进化类型。

Q18:缓释和速释是不同概念吗?
A:是——剂型语义进 SCD(extended-release tablet 独立概念);暴露定义里合并缓释速释是语义错误。

Q19:能贡献/纠错吗?
A:可以——官方反馈渠道提交更正;月度修订消化;用户反馈是月度发布生态的一部分。

Q20:OMOP 的 drug_concept_id 就是 RxNorm 吗?
A:是(主流)——OMOP 标准词库的 drug 域以 RxNorm 为主;RxCUI → OMOP concept_id 的映射官方提供。

Q21:AI 训练可以用 RxNorm 吗?
A:可以——UMLS 许可覆盖;商用模型按许可加归属;产物责任自担。

Q22:包装组合(GPCK/BPCK)什么时候用?
A:复方包装/疗程包的语义——「一盒里有几板药」的临床表达;调剂/耗材分析场景。

Q23:怎么查某品牌的所有规格?
A:RxNav 按 BN 检索 → 关联 SBD 列表(tradename_of 关系反向);API related 端点。

Q24:和 DrugBank 的药物 ID 怎么互通?
A:无官方一对一映射——经通用名/成分语义桥接(SCD 归一名 ↔ DrugBank name);映射表自建要抽检。

Q25:FAERS 的药物字段是 RxNorm 吗?
A:FAERS 用自家 Lexicon(含 RxNorm 对齐)——警戒数据分析前先做语义对齐审计。

Q26:剂型词表(DF)有多大?
A:121 个受控剂型——「tablet/extended-release tablet/…」;DF 是 SCD 语义的第三维。

Q27:固定剂量复方(FDC)怎么表达?
A:MIN(多成分精确)+ SCD(FDC 药物)——成分级与药物级双层表达;consists_of 关系拆解。

Q28:UMLS 里 RxNorm 和其他词库怎么连?
A:Metathesaurus 的 CUI 映射——RxNorm 概念与 SNOMED/MeSH/ICD 等的跨词库桥;UMLS 版本与 RxNorm 版本独立。

Q29:历史版本的 RxNorm 文件能下载吗?
A:官方提供近期发布;长期历史研究自建月度存档(数百 MB/年)——「术语的时间旅行」自留快照。

Q30:临床报告该写 SCD 名还是品牌名?
A:临床语义用 SCD 归一名(可加品牌括注)——USCDI/FHIR 语境的编码走 RxCUI(SCD/SBD 按场景)。

Q31:RxNorm 会覆盖兽药吗?
A:不——人用药语境;兽药有独立词表语境。

Q32:20 年后 RxNorm 会往哪走?
A:官方路线信号——精确剂型类型扩展、API-first 服务化、产品级分类完善;「命名与映射」的公共核心不变,临床决策语义留给生态。

Q33:我的 EHR 数据里品牌码和临床码混着,怎么选聚合层?
A:看研究问题——「治疗暴露」聚合到 SCD 或 IN;「市场行为」保留产品级;方法学段落写明聚合层与理由(§2.9)。

Q34:RxClass 的类组映射会漂移吗?
A:会——类组-概念挂接随月度发布更新,ATCPROD 等新来源还在扩展挂接范围;长期管线把类组版本记进血缘(§4.8)。

Q35:授权仿制在 RxNorm 里怎么表达?
A:有独立 SBD 与 NDC,但与原研共享 BN 关系链;「原研 vs 仿制」对比按 NDC 与按 SBD 分组结论不同(§2.9)。

Q36:能不能只用 Prescribable 轨道做完所有事?
A:多数研究可以——它就是「可开方产品」子集;但做术语覆盖度审计或历史研究需要 Full 轨道的 retired/obsolete 概念(§3.2)。

§10.5 要点回顾

  1. RxCUI 主键:药物数据的语义锚——版本月份双戳。
  2. TTY 分层:IN/SCD/SBD/BN 语义层级——码对 ≠ 语义对。
  3. 概念级 ≠ 产品级:RxCUI 语义、NDC 产品——双字段架构。
  4. 轨道口径:Full vs Prescribable——数字分开引用。
  5. 生命周期监听:retired/merged 月度核对——长期研究的保险。
  6. 剂型语义:缓释/速释临床不同——DF 显式分层。
  7. BN 歧义:品牌名多 SBD——集合语义 + 上下文。
  8. 四级瀑布:NDC→精确→词典→API——归一管线标准姿势。
  9. 边界自觉:DDI/包装/OTC 不在范围——语义路由按层问责。
  10. 许可轻手续:UMLS 签署 + 归属声明——商用可行、再分发核查。

口径存照(数字均注明口径与来源,写入正文前已核对)

  • 20 周年 / 14,592 base ingredients / 5,151 BN / 17,544 SCD / 9,721 SBD / 645 GPCK / 747 BPCK(2025-12 全量)/ API ~40 亿次查询/年 / 文件 ~1,000 下载/季度 = NLM Tech Bull 467:e2(2025 Nov-Dec)
  • Prescribable active:SCD 12,067 / SBD 8,129 / IN 5,823 / PIN 1,916 / BN 4,168 / DF 121 / GPCK 596 / BPCK 704 / NDC 239,682 = RxNorm Current Prescribable Content Release Notes(2025-12-01)
  • CUI 替换率 8.1%/6 个月(2009 样本)= O’Neill & Bell 分析(历史时点——经 intuitionlabs 综述转引)
  • DDI API 停用(2024-01)/ 治疗角色类组停用(2025-03)/ ATCPROD(2023)/ SCDFP-SCDGP-SBDFP 调整(2026-02)/ RxClass 3.2.3(2026-06)= RxNav 官方新闻页(LHNCBC)
  • USCDI 指定 / Meaningful Use 2011 / SCRIPT-FHIR 双码鼓励 = NLM 公报与 healthit.gov 语境(intuitionlabs 综述交叉核对)
  • UMLS 许可框架(免费电子签署/再分发限制/归属要求)= UTS 官方许可条款
  • 生态组件口径:RxNav 工具族 / RxClass 3.2.3 / RxTerms / RxNav-in-a-Box = NLM LHNCBC 官方页(2026-06 核对)
  • OMOP 词汇包 NDC→标准概念链 = OHDSI Athena/OMOP CDM 官方文档语境(版本节奏与 RxNorm 月度发布不同步)

相关数据集导航

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

  • chemdner — 共享标签:药物发现与化学 / 医疗NLP
  • cadec — 共享标签:药物发现与化学 / 医疗NLP
  • drug-reviews-uci — 共享标签:药物发现与化学 / 医疗NLP
  • sider — 共享标签:药物发现与化学 / 医疗NLP
  • meddialog — 共享标签:药物发现与化学 / 医疗NLP
  • chebi — 共享标签:药物发现与化学 / 医疗NLP
  • dgidb — 共享标签:药物发现与化学 / 医疗NLP
  • chemprot — 共享标签:药物发现与化学 / 医疗NLP
  • iuphar-bps — 共享标签:药物发现与化学 / 医疗NLP

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

返回 AI-Ready 数据集