
OpenMed RxNorm归一化完整教程药物名称标准化与RxCUI编码实战指南【免费下载链接】openmedLocal-first healthcare AI: clinical NER HIPAA PII de-identification that runs 100% on-device. 2,200 medical models, 21 languages, Apple MLX Python, no cloud, no patient data leaving your network. Apache-2.0项目地址: https://gitcode.com/GitHub_Trending/ope/openmedOpenMed是一款本地优先Local-first的医疗 AI 工具能在设备端完成临床实体识别与 HIPAA 隐私脱敏。本教程带你用OpenMed RxNorm完成药物名称标准化从病历文本中提取药物提及如 metformin 500 mg、Lipitor一步步映射到稳定唯一的RxCUI 编码实现药物去重、标准化与互操作导出。无需 API Key全程免费公开。为什么选择 RxNorm 做药物名称标准化临床病历里的药物写法五花八门同一药有品牌名Lipitor和通用名atorvastatin、不同剂型剂量500 mg tablet、各种缩写amox/clav。如果不统一编码统计分析和数据交换都会一团乱。RxNorm 是美国国家医学图书馆NLM发布的药物命名规范核心是一个稳定整数RxCUIRxNorm Concept Unique Identifier它把品牌名、通用名、成分、剂量、剂型串成一个概念。三大优势✅完全免费公开RxNorm 与 RxNav REST API 无需密钥、无需协议注册✅官方标准US Core Medication 等 FHIR 资源都编码它✅本地兼容OpenMed 自带 RxNorm 本地加载器离线也能归一化完整技能说明见 skills/normalizing-rxnorm/SKILL.md。快速上手3 步把药物文本变成 RxCUI第 1 步用 OpenMed 提取药物实体OpenMed 提供药物识别模型如pharma_detection_superclinical调用analyze_text即可在设备端提取药物片段每个实体带text、label、confidence、start/end偏移量——患者数据不出内网import openmed result openmed.analyze_text( Patient on metformin 500 mg BID and atorvastatin 20 mg nightly., model_namepharma_detection_superclinical, output_formatdict, )第 2 步精确匹配 模糊兜底用 RxNav 公开 API 两步走先精确查询查不到再模糊匹配场景端点示例输入干净的药名/rxcui.json?namemetformin→6809成分 IN拼写错误/缩写/approximateTerm.json?termmetformin 500→ 候选 RxCUI 分数模糊匹配要看分数approximateTerm对乱码输入也会返回候选建议设置分数门槛并用/rxcui/{rxcui}/properties.json二次校验tty和name再落库。第 3 步选对术语类型TTY同一个药在不同粒度下对应不同 RxCUI先想清楚你的场景存哪种IN成分统计分析、过敏清单、按类别汇总SCD通用产品/SBD品牌产品医嘱、US Core Medication 资源BN品牌名/PIN精确成分展示与溯源例如LipitorSBD/BN和atorvastatinIN/SCD是同一个药的不同 RXCUI可通过/related.json互相映射。进阶一离线本地加载 RxNorm无需联网如果你有完全离线要求OpenMed 的RxNormLoader可以直接加载本地 RxNorm 发行版含RXNCONSO.RRF等文件全程不发任何网络请求from openmed.clinical.grounding import RxNormLoader rxnorm RxNormLoader(/srv/vocab/rxnorm) matches rxnorm.resolve(Tylenol 500 MG Oral Tablet, ttySBD)加载器支持 TTY 感知与成分上卷品牌/产品记录会通过本地关系行回卷到成分 RxCUI请求的 TTY 缺失时按SBD → SCD → BN → IN → PIN → MIN的确定性顺序回退。核心实现见 rxnorm_loader.py 中的DEFAULT_TTY_PRIORITY。统一入口是ground()函数openmed/clinical/grounding/api.py可同时对 RxNorm、ICD-10-CM、LOINC、HPO 多系统做归一from openmed.clinical.grounding import VocabLoader, ground grounded ground(spans, systems[rxnorm], loaderVocabLoader(local_onlyTrue))进阶二药物核对与 FHIR 导出拿到 RxCUI 后OpenMed 还能继续帮你药物核对Medication Reconciliation把同一文档中同一药的多条提及合并为一条可审阅记录自动处理剂量/给药途径冲突见 docs/clinical/medication-reconciliation.mdFHIR R4 导出to_fhir()把归一化结果直接转成MedicationStatement等资源编码系统为http://www.nlm.nih.gov/research/umls/rxnorm见 docs/clinical/concept-grounding.md药物相互作用提示drug_interactions.py 仅基于你提供的本地数据做 RxCUI 比对离线默认为准绝不在线查询避坑清单RxNorm 归一化 5 个常见坑剂量和剂型在独立片段里——500 mg、tablet 往往是相邻 token先按偏移量重组再查 SCD否则只能拿到成分复方制剂不要拆——amoxicillin/clavulanate归一化到单个多成分 SCD别拆成两个 RxCUI品牌/通用名先定标准——流水线统一存一种 TTY另一种走/related.json映射警惕模糊匹配噪声——score不达标的候选直接弃用检查废弃码——用/historystatus.json发现已退役/重映射的概念跟随重映射而不是存死码隐私红线本地优先local-first原则下NER 在设备端跑只有去标识后的药物字符串才发往 RxNav切勿把含 PHI 的原始病历发给 API。参考资料官方概念归一化文档docs/clinical/concept-grounding.md多语言归一化评测金标openmed/eval/golden/grounding/rxnorm.jsonl覆盖英文/中文/印地语提及RxNorm 链接器实现openmed/clinical/grounding/linkers/rxnorm.py药物核对文档docs/clinical/medication-reconciliation.md【免费下载链接】openmedLocal-first healthcare AI: clinical NER HIPAA PII de-identification that runs 100% on-device. 2,200 medical models, 21 languages, Apple MLX Python, no cloud, no patient data leaving your network. Apache-2.0项目地址: https://gitcode.com/GitHub_Trending/ope/openmed创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考