mcpField
C
clinical-data-standards

clinical-data-standards

github.com/awslabs数据与数据库6883 次安装4 周前更新
代码仓库

关于 clinical-data-standards

clinical-data-standards 是关于临床术语和编码决策的领域知识技能,帮助 Agent 选择层级、映射 MedDRA、ICD-10、SNOMED CT 与 LOINC,并识别常见编码问题。

主要功能

  1. 01说明 MedDRA 编码层级
  2. 02选择 ICD-10 分组粒度
  3. 03导航 SNOMED CT 概念
  4. 04选择 LOINC 代码和面板
  5. 05指导跨系统术语映射

适用场景

  1. 01将不良事件文本编码为 MedDRA 术语
  2. 02为患病率分析归组诊断
  3. 03为实验室观察结果选择代码
  4. 04在临床术语系统间映射术语

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/awslabs/hcls-agent-skills --skill clinical-data-standards

安装后在 Claude Code 中输入/clinical-data-standards确认已加载。

详细介绍

临床数据术语标准

概述

本技能教会 Agent 如何理解临床术语系统——MedDRA、ICD-10、SNOMED CT 和 LOINC,以及临床数据编码、分组和映射所涉及的决策。它不会生成流水线代码;它提供领域知识,帮助在开始任何分析之前做出正确的编码和汇总选择。

术语使用错误会造成直接后果:不正确编码的不良事件会掩盖安全性信号,ICD-10 粒度不当会夸大或低估患病率估算值,错误的 LOINC 分配则会破坏实验室结果的互操作性。本技能总结了可避免这些错误的规则、层级结构和决策框架。

用法

在用户出现以下情况时调用本技能:

  • 需要将不良事件原始文本编码为 MedDRA 术语。
  • 询问频数表或信号检测应使用 MedDRA 的哪个层级。
  • 想要按 ICD-10 代码对诊断进行分组,并且必须选择 3 字符还是 4 字符的粒度。
  • 需要了解临床发现或操作所涉及的 SNOMED CT 概念关系。
  • 必须为实验室检测选择 LOINC 代码,或了解面板组成。
  • 正在不同术语系统之间进行映射(MedDRA ↔ ICD-10、SNOMED CT → ICD-10)。
  • 询问临床试验中 AE 编码的监管要求。

Agent 应按以下方式作答:

  1. 确定术语系统,使其适用于数据类型和使用场景。
  2. 明确粒度——应采用哪个层级进行编码和报告。
  3. 应用映射规则,这些规则应针对源系统和目标系统。
  4. 指出常见陷阱——过度编码、编码不足、不恰当的汇总。
  5. 在相关时说明监管背景(ICH E2B、FDA、EMA 的要求)。

回复格式

  • 开头直接给出建议或分类(≤3 句话)
  • 按以下顺序组织:建议 → 理由(引用具体标准/阈值)→ 注意事项
  • 比较内容使用表格;标准列表使用项目符号
  • 省略用户已了解的背景信息——用户问的是具体问题
  • 目标长度:200-400 个词,除非用户要求详尽说明 本技能中的决策树和框架仅供内部推理使用。运用它们得出结论,但不要在回复中复述。只呈现最终建议及其支持证据。

核心概念

1. MedDRA:5 级层级结构

MedDRA(监管活动医学词典)是临床试验和药物警戒中对不良事件、病史和适应症进行编码的标准。

层级缩写数量(约 v26)用途
系统器官分类SOC~27最宽泛的分组(例如,“心脏疾病”)
高位组术语HLGT~337对 SOC 内相关的 HLT 进行分组
高位术语HLT~1,740按解剖部位/机制对相关 PT 进行分组
首选术语PT~24,000标准报告术语——核心术语
最低层级术语LLT~83,000映射到一个 PT 的原文级同义词
编码路径
Verbatim AE text (from CRF)
  │
  ▼
LLT (closest match to verbatim)
  │
  ▼
PT (standard reportable term — one LLT maps to exactly one PT)
  │
  ▼
HLT → HLGT → SOC (for grouping and display)

规则:

  1. 始终先编码到 LLT,再由层级结构推导出 PT。切勿从原始文本直接跳到 PT——LLT 层能够涵盖同义词和拼写变体。
  2. PT 是主要分析层级。 临床研究报告(CSR)中的频数表按 PT 列出 AE,并按 SOC 分组。
  3. 一个 LLT → 恰好对应一个 PT。 但一个 PT 可以属于多个 SOC(主要 SOC 分配决定默认分组方式)。
  4. 主要 SOC 分配遵循 ICH 规范:病因 SOC 优先于表现 SOC。“药物性肝炎”归入“肝胆疾病”(表现),但其主要 SOC 由 MedDRA 的主要路径规则决定。
  5. 多轴性:一个 PT 可以出现在多个 SOC 下。除非方案另有规定,频数表始终使用主要 SOC。
何时在 PT 之上进行聚合
场景建议层级理由
标准 AE 频数表(CSR)SOC 内的 PT监管要求(ICH E3)
对罕见事件进行信号检测HLT 或 HLGT单个 PT 过于稀疏;分组有助于揭示模式
标准化 MedDRA 查询(SMQ)SMQ(预定义)针对已知安全主题(例如“肝脏疾病”)整理的术语组
高层级安全性概览SOC用于执行摘要,不适用于详细分析
决策树:MedDRA 编码层级
Start
│
├── Is this a standard CSR AE table?
│     └── Code at LLT → report at PT within primary SOC.
│
├── Are you looking for a safety signal across related terms?
│     ├── Does an SMQ exist for the topic?
│     │     └── Yes → Use the SMQ (narrow or broad scope as appropriate).
│     └── No SMQ → Aggregate at HLT. Document the grouping rationale.
│
├── Are individual PTs too rare to detect a signal?
│     └── Consider HLT or HLGT grouping, but report both grouped
│         and individual PT counts for transparency.
│
└── Executive safety summary only?
      └── SOC-level counts are acceptable, with PT detail available on request.
2. ICD-10:编码结构与分组

ICD-10(《国际疾病分类》第 10 版)是用于理赔、EHR 和流行病学研究的标准诊断编码体系。

结构
Chapter (I–XXII)
  └── Block (e.g., E10–E14: Diabetes mellitus)
        └── Category — 3 characters (e.g., E11: Type 2 diabetes)
              └── Subcategory — 4–7 characters (e.g., E11.6: With complications)
                    └── Extension (e.g., E11.65: With hyperglycemia)
层级示例粒度
章节第 IV 章:内分泌疾病对大多数分析而言过于宽泛
区块E10–E14疾病家族分组
3 位类别E11疾病实体(2 型糖尿病)
4 位亚类别E11.6并发症类型
完整代码E11.65特定表现
分组决策

粒度的选择取决于分析目标:

分析类型建议层级示例
人群患病率研究3 位类别E11(所有 2 型糖尿病)
合并症指数(Charlson、Elixhauser)3 位类别或区块每种疾病对应的预定义代码列表
特定结局研究完整代码(4–7 位字符)E11.65(特指高血糖)
基于理赔的队列定义3 位类别 + 排除项E11.*,排除 E11.0(伴昏迷)
跨国比较区块级别不同国家的 ICD-10 修订版中,区块更稳定
决策树:ICD-10 分组层级
Start
│
├── Are you estimating disease prevalence or incidence?
│     └── 3-character category. Captures all subtypes.
│         Add block-level grouping if comparing across disease families.
│
├── Are you defining a specific clinical outcome?
│     └── Full code (4+ characters). Be explicit about which
│         manifestations qualify. Document inclusion/exclusion codes.
│
├── Are you building a comorbidity score?
│     └── Use the published code lists (Charlson/Elixhauser).
│         Do not invent your own groupings.
│
├── Are you comparing across countries or ICD-10 modifications?
│     └── Block level. National modifications (ICD-10-CM, ICD-10-GM)
│         diverge at the subcategory level.
│
└── Are you mapping from another system (MedDRA, SNOMED CT)?
      └── Map to 3-character first, then refine to subcategory
          only if the source system provides sufficient specificity.
ICD-10-CM 与 ICD-10-WHO
  • ICD-10-CM(美国临床修订版):将代码扩展至 7 个字符,并增加侧别、就诊类型(初次/后续/后遗症)。用于美国的理赔和 EHR。
  • ICD-10-WHO:国际基础版本。代码较短,不含侧别扩展。
  • 务必注明所使用的修订版。在 ICD-10-CM 中有效的代码可能不存在于 ICD-10-WHO 中。
3. SNOMED CT:概念模型

SNOMED CT(《医学系统化命名法——临床术语》)是最全面的临床术语体系,用于临床发现、操作、物质、身体结构和生物体。

核心结构
  • 概念:表示临床含义的唯一标识符(SCTID)。
  • 描述:人类可读的术语(完全指定名称、首选术语、同义词)。
  • 关系:概念之间的类型化链接。
关键关系类型
关系含义示例
IS-A包含层级“急性心肌梗死” IS-A “心肌梗死”
发现部位发现所在的位置“肺炎” → 发现部位 → “肺结构”
致病因子导致该病症的因素“阿司匹林诱发的哮喘” → 致病因子 → “阿司匹林”
相关形态结构变化“肺腺癌” → 形态 → “腺癌”
方法执行操作的方式“腹腔镜胆囊切除术” → 方法 → “腹腔镜入路”
何时使用 SNOMED CT 与其他体系
用例首选体系理由
EHR 中的临床文档SNOMED CT概念模型丰富,可支持临床细节
计费和理赔ICD-10付款方要求
不良事件报告MedDRA监管要求
实验室检查开单/结果LOINC实验室互操作性的标准
药物编码RxNorm(美国)/SNOMED CTRxNorm 用于处方;SNOMED CT 用于物质
SNOMED CT 层级导航规则
  1. 使用 IS-A 层级进行包含关系查询。 若要查找“所有类型的糖尿病”,请查询概念 73211009(糖尿病)的后代概念。
  2. 后协调(组合概念)功能强大,但很复杂。若存在预协调概念,优先使用。
  3. 参考集(refset)为特定用例定义子集(例如国家级药品扩展)。务必确认适用于所在司法辖区的参考集。
  4. SNOMED CT → ICD-10 映射由 SNOMED International 维护。请使用官方映射,不要自行创建交叉映射。
4. LOINC:实验室检验编码

LOINC(Logical Observation Identifiers Names and Codes)是用于标识实验室检验和临床观察的标准。

6 部分命名规则

每个 LOINC 代码由六个轴定义:

轴描述示例(葡萄糖、空腹、血清)
成分测量什么葡萄糖
属性测量类型MCnc(质量浓度)
时间单个时间点或一段时间Pt(单个时间点)
系统标本类型Ser/Plas(血清或血浆)
量表定量、有序等Qn(定量)
方法测量方式(可选)—
检验组合

LOINC 检验组合将一起开具的相关检验归为一组:

检验组合LOINC 代码包含项目
血常规(含分类)57021-8WBC、RBC、Hgb、Hct、MCV、MCH、MCHC、Plt、分类计数
基础代谢组合51990-0葡萄糖、BUN、肌酐、Na、K、Cl、CO2、Ca
综合代谢组合24323-8BMP + 白蛋白、胆红素、ALP、ALT、AST、总蛋白
血脂组合24331-1总胆固醇、HDL、LDL(计算值)、甘油三酯
肝功能组合24325-3白蛋白、胆红素(总量/直接)、ALP、ALT、AST、总蛋白
LOINC 选择规则
  1. 匹配全部六个轴。 血清葡萄糖检验(定量、质量浓度)与尿液葡萄糖检验(定量、质量浓度),或血清葡萄糖检验(有序)对应的 LOINC 代码不同。
  2. 除非方法会实质性影响结果解读(例如计算 LDL 与直接测量 LDL),否则优先选择不含方法轴的代码。
  3. 若开具了完整检验组合,则使用组合代码;其中各项结果使用对应的单项成员代码。
  4. 检查 LOINC 状态。 代码的状态可能为 ACTIVE、DEPRECATED 或 DISCOURAGED。仅使用 ACTIVE 代码。
  5. LOINC 答案(LA 代码)为有序观察结果提供标准化答案列表(例如阳性/阴性/不确定)。
5. 跨系统映射决策

术语系统之间的映射不可或缺,但容易出错。请遵循以下规则:

MedDRA → ICD-10
场景处理方式
AE 术语映射到诊断代码将 PT 映射到 ICD-10 3 位类别。仅当 PT 提供足够的具体信息时,才细化到亚类别。
病史编码在 PT 层级进行映射;仅当原文支持时,才映射到 ICD-10 亚类别。
合并症若有官方 MedDRA-to-ICD 交叉映射表,请使用。

规则:

  1. 一个 MedDRA PT 可能映射到多个 ICD-10 代码(反之亦然)。记录映射表及其版本。
  2. 切勿将 LLT 直接映射到 ICD-10。 务必先通过 PT 映射——LLT 是同义词,并非独立概念。
  3. 粒度不匹配是正常情况。 MedDRA PT 通常比 ICD-10 亚类别更宽泛。请接受具体性损失,或要求补充临床背景。
SNOMED CT → ICD-10
  • 使用 SNOMED International 维护的映射表(随每个 SNOMED CT 版本发布)。
  • 映射表提供目标 ICD-10 代码及映射规则和优先级。
  • 一个 SNOMED CT 概念可能映射到多个 ICD-10 代码(组合编码)。请遵循映射规则选择正确的目标代码。
  • 不要反向使用映射表(ICD-10 → SNOMED CT),除非有专用的反向交叉映射表——正向映射是多对一的,反向使用会造成信息丢失。
LOINC → 本地检验代码
  • 大多数机构都会维护本地代码到 LOINC 的映射表(通常称为“LOINC 映射”或“结果代码对照表”)。
  • 对照本地检验定义,核验 LOINC 的全部六个轴。 常见错误是因为成分名称相符,就将血清检验映射到尿液 LOINC 代码。
  • 检验组合与成分: 将检验组合的医嘱映射到检验组合的 LOINC 代码,并将每条结果映射到对应的单项成分 LOINC 代码。
决策树:该采用哪种映射方法?
Start
│
├── Source is verbatim AE text?
│     └── Code to MedDRA (LLT → PT). Map to ICD-10 only if
│         the downstream system requires it.
│
├── Source is EHR diagnosis (free text or local code)?
│     ├── US system → Map to ICD-10-CM (billing) and SNOMED CT (clinical).
│     └── Non-US → Map to ICD-10-WHO or national modification.
│
├── Source is lab result?
│     └── Map to LOINC. Match all six axes. Use panel codes for orders.
│
├── Need to cross-walk between MedDRA and SNOMED CT?
│     └── Go through ICD-10 as an intermediary (MedDRA → ICD-10 → SNOMED CT)
│         or use UMLS concept mappings. Direct MedDRA ↔ SNOMED CT maps
│         are not officially maintained.
│
└── Building a research dataset combining claims + EHR + trial data?
      └── Define a canonical code system for each data element.
          Map all sources to the canonical. Document every mapping
          decision and version. Accept that some mappings are lossy.
6. 监管背景
标准必需系统背景
ICH E2B(R3)MedDRA个例安全性报告(ICSR)
ICH E3MedDRA临床研究报告——按 SOC 中的 PT 编制 AE 表格
美国理赔(CMS)ICD-10-CM,CPT,HCPCS计费与报销
美国 EHR(ONC)SNOMED CT,LOINC,RxNorm有意义使用 / 促进互操作性
CDISC SDTMMedDRA(AE 域),各域的词典向 FDA 提交临床试验数据
OMOP CDMSNOMED CT(疾病),LOINC(测量),RxNorm(药物)观察性研究

不应使用此技能的情况

  • 为监管安全报告分配 MedDRA 代码(需要受过培训的医学编码员)
  • 编码需要对因果关系评估作出临床判断
  • 适用法律责任的计费或报销 ICD-10 编码

何时升级至人工专家处理

  • 某个术语对应多个属于不同 SOC 的 PT 候选项
  • 交叉映射决策会影响监管申报的受理
  • 本地编码规范与国际标准冲突

常见错误

  • 错误: 将不良事件直接编码到 PT,跳过 LLT 层 正确: 始终先将原文编码到 LLT,再由层级体系推导出 PT 原因: LLT 层会收录同义词和拼写变体——跳过该层可能导致不同原文描述同一概念时编码不一致

  • 错误: 在 AE 频数表中使用次要 SOC 正确: 除非方案明确另有规定,否则频数表始终使用主要 SOC 原因: 多轴 PT 会出现在多个 SOC 下——混用主要和次要 SOC 会夸大 AE 数量,并干扰信号检测

  • 错误: 未记录理由就按 HLT 层级汇总 正确: 仅当单个术语过于稀疏、不足以进行信号检测时,才在 PT 以上层级汇总;始终同时显示分组和未分组的 PT 计数 原因: 按 HLT 分组会隐藏单个 PT 的信号,而这些信号可能代表不同的安全性问题

  • 错误: 在非美国环境中使用 ICD-10-CM 编码 正确: 明确说明使用的是哪种 ICD-10 变体;对于非美国数据,使用 ICD-10-WHO 或适用的国家变体 原因: ICD-10-CM 的扩展(侧别、就诊类型)在 ICD-10-WHO 中不存在——编码可能无效或被误解

  • 错误: 在特定结局研究中按 3 字符级别汇总 ICD-10 编码 正确: 当结局是某种特定表现时,使用完整编码(4 个或更多字符);明确记录纳入和排除的编码 原因: E11 包含所有 2 型糖尿病并发症——如果结局是“伴高血糖的 2 型糖尿病”,只有 E11.65 才正确

  • 错误: 反转 SNOMED CT → ICD-10 映射,创建 ICD-10 → SNOMED CT 交叉映射 正确: 使用专门的反向交叉映射或基于 UMLS CUI 的映射;绝不要反转正向映射 原因: 正向映射是多对一的——反转后会产生含糊的一对多映射,且缺少用于消除歧义的映射规则

  • 错误: 仅根据成分名称匹配 LOINC 编码 正确: 确认全部六个 LOINC 轴(成分、属性、时间、系统、量表、方法)都与本地检测定义相符 原因: 两个 LOINC 编码可能具有相同的成分,但系统(血清与尿液)、属性或量表不同——不完整的匹配会导致错误分配

  • 错误: 未检查状态就使用已弃用的 LOINC 编码 正确: 始终检查 LOINC STATUS 字段,并用其有效后继编码替换已弃用的编码 原因: 已弃用的编码会破坏互操作性,接收系统也可能无法识别

  • 错误: 不使用官方映射,而是临时创建术语交叉映射 正确: 使用 SNOMED International、NLM 或 MSSO 整理的映射;记录所用映射的版本 原因: 临时映射会引入不一致,无法复现,且偏离监管预期

  • 错误: 合并多项研究的数据时忽略 MedDRA 版本差异 正确: 记录每项研究使用的 MedDRA 版本;协调不同版本间新增、合并或弃用的术语 原因: 不同版本间会新增、合并和弃用 PT——v25 中有效的术语在 v26 中可能已弃用,从而导致数据丢失或计数错误

  • 错误: 存储结果时混淆 LOINC 检验组编码与成分编码 正确: 检验申请使用检验组编码,检验组内的每项结果使用各自的成分 LOINC 编码 原因: 将血糖结果存储在 CBC 检验组编码下在语义上是错误的,会破坏下游汇总和互操作性

  • 错误: 不使用中间术语,直接将 MedDRA 映射到 SNOMED CT 正确: 使用 ICD-10 作为中间术语(MedDRA → ICD-10 → SNOMED CT),或使用基于 UMLS CUI 的映射;记录映射路径 原因: 不存在官方的 MedDRA ↔ SNOMED CT 直接交叉映射——直接映射会产生未经验证、无法复现的结果

参考资料

评论

支持 Markdown