检查住院就诊 ICD 编码形式与交叉引用差异
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/8 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add PerryLink/dsh-icd-rule-check该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · tool
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 27 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/11/4) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-package-manifest@deepseek-ai/dsh-tools@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 核对ICD编码形式
- 检查交叉引用差异
- 仅提示差异
ICD 编码记录核对:依据《住院病案首页数据填写质量规范(暂行)》《疾病和有关健康问题的国际统计分类》第十次修订本 第二卷 指导手册(国卫办医发〔2016〕24号、WHO ICD-10 Volume 2)。仅提示差异,不作出定性结论。
README
由 DeepSeek 最新模型翻译生成dsh-icd-rule-check — 对一次已编码住院就诊做 ICD 编码规则检查:合并码与剑号/星号配对提示
dsh-icd-rule-check 读取一次已编码的住院就诊——主要诊断、其他诊断、主要手术操作、其他手术操作以及入院情况编码——检查这次就诊自身的结构和交叉引用:每个诊断编码是否具备 ICD-10 形式、每个手术操作编码是否具备 ICD-9-CM-3 形式(做形式校验前会先剥掉 † / * 标记),同一诊断编码是否重复出现,星号编码在同一就诊中是否有对应的剑号编码,是否填了主要诊断,以及各项检查所需的字段是否都已填写。每一处差异都会指明它出自哪一条款,每一项没能跑起来的检查都会列进 skipped,而不是悄悄放过。它从不在任何码表里查编码。
它能回答什么
| 你的问题 | 它给出的答案 |
| 我们的导出把诊断编码存成 A18.1†。剑号会不会让形式校验报错? | 不会。IC-001 在检验编码之前先剥掉剑号和星号标记(† / ),所以光有标记永远不会产生发现项。它只检查编码的形式:形式正确、但你的码表里其实没有的编码照样通过,因为要核实这一点,需要一份与编码员所用版本相同的授权码表。 |
| 主要诊断字段是空的。会报什么? | IC-009 报告该记录没有主要诊断,并要求补填。
展开完整文档(README 剩余 1 节)
dsh-icd-rule-check — 对一次已编码住院就诊做 ICD 编码规则检查:合并码与剑号/星号配对提示
dsh-icd-rule-check 读取一次已编码的住院就诊——主要诊断、其他诊断、主要手术操作、其他手术操作以及入院情况编码——检查这次就诊自身的结构和交叉引用:每个诊断编码是否具备 ICD-10 形式、每个手术操作编码是否具备 ICD-9-CM-3 形式(做形式校验前会先剥掉 † / * 标记),同一诊断编码是否重复出现,星号编码在同一就诊中是否有对应的剑号编码,是否填了主要诊断,以及各项检查所需的字段是否都已填写。每一处差异都会指明它出自哪一条款,每一项没能跑起来的检查都会列进 skipped,而不是悄悄放过。它从不在任何码表里查编码。
它能回答什么
| 你的问题 | 它给出的答案 |
| 我们的导出把诊断编码存成 A18.1†。剑号会不会让形式校验报错? | 不会。IC-001 在检验编码之前先剥掉剑号和星号标记(† / ),所以光有标记永远不会产生发现项。它只检查编码的形式:形式正确、但你的码表里其实没有的编码照样通过,因为要核实这一点,需要一份与编码员所用版本相同的授权码表。 |
| 主要诊断字段是空的。会报什么? | IC-009 报告该记录没有主要诊断,并要求补填。它的局限在于:只检查字段是否填写,不检查被选为主要诊断的那个诊断是否正确——这个选择属于编码员,规则不做这个选择。 |
| 列表里有一个星号编码,却没有与之配套的剑号编码。 | 当配对表指派给该星号编码的剑号编码不在同一就诊中时,IC-003 报告这个星号编码。这是本包最机械的一项判定,它需要你在 pairs 里提供自己的配对表;pairs 为空时,规则会报告自己没能运行,而不是悄悄放过。它的局限就是配对本身:中国病历实践中常见一种读法,认为星号编码不能作主要诊断,本包不采纳这种读法。 |
| 同一诊断编码出现了两次。 | IC-002 报告这个重复编码,视其为同一诊断列了两次。它的上限是 warn:没有找到哪一条款用这样的措辞禁止重复,所以它的依据是一条原则,它把该行指出来供复核,而不做拦截。 |
| 主要诊断是 T82 并发症,且没有列出其他诊断。 | IC-011 报告该行。对于 T80-T88 系列的主要诊断,它只问是否存在任何其他诊断:条款要求用附加编码描述该并发症,但没说用哪一个,所以规则不替你做选择——那属于编码员,也属于正在使用的码表。 |
| IC-005 在我们的导出上从不报告任何内容——这是否意味着主要手术与主要诊断相符? | 不是。IC-005 发布时其 correspondence 表为空,因此它会把自己声明进 skipped,理由是该表未配置;那里出现空的发现列表并不等于通过。用你自己的诊断→手术分组填充 correspondence——空的 procedures 列表意味着该分组不应携带主要手术——规则就会开始比对。 |
遵循的标准
| 文档 | 编号 | 被哪些规则引用 |
| 《住院病案首页数据填写质量规范(暂行)》 | 国卫办医发〔2016〕24号 | IC-001, IC-002, IC-004, IC-005, IC-007, IC-008, IC-009, IC-010, IC-012 |
| 《疾病和有关健康问题的国际统计分类》第十次修订本 第二卷 指导手册 | WHO ICD-10 Volume 2(第二版,2004,ISBN 92 4 154653 0) | IC-003 |
| 《疾病分类与代码》 | GB/T 14396-2016 | IC-003 |
| 《疾病分类与代码国家临床版 2.0》 | 国卫办医函〔2019〕371号 附件1 | IC-003 |
| 《医疗保障基金结算清单填写规范(试行)》 | 医保办发〔2020〕20号 | IC-005, IC-011, IC-006, IC-010, IC-012 |
| 《住院病案首页数据质量管理与控制指标(2016版)》 | 国卫办医发〔2016〕24号 | IC-009 |
边界: 本插件对一次住院的编码做结构性检查——编码形式、重复、剑号/星号配对、字段完整性——并针对所引条款报告字面差异。它不是 dsh-medrec-qc(后者把首页作为整体检查,包括其中的逻辑矛盾),不是编码目录,也不是编码器。它从不查询编码:目录查询需要一份已授权、且版本与编码员所用版本一致的编码表,而版本不匹配会产出看似自信的胡言乱语。
⚠️ 本插件刻意不做什么,以及为什么
它不实现合并编码规则,也不判定主要手术是否与主要诊断相符。 本插件所依据的任务把这两项标为关键路径风险:这些规则散落在 ICD 用户指南、临床版手册和编码器培训材料中,找不到可公开引用的国家条款。本规则包建立在一条原则上:依据无法引用的条目不得收录,因此本包没有编造条款编号,而是提供一个参数化钩子(IC-005 的 correspondence),并让它以空状态发布。用你自己目录的分组填充它,或者放着不管,去读那条说明检查未运行的 skipped 条目。
剑号/星号规则同样被封顶为 warn。 †/ 体系来自 ICD-10 第二卷指导手册(† 标记在此分类的病症,* 标记在别处分类的表现),配对要求是该体系的结构性后果——但第二卷的官方中文文本无法在线获取以逐字引用。因此 IC-003 在自己的注释中说明其依据是一条原则,并说明一旦取得权威文本,该条款应升级为 direct。比对表同样以空状态发布:表版本必须匹配编码者的目录。
兼容性
| 层面 | 状态 |
| Harness | 对等版本范围 >=0.1.2-rc.1 <0.2.0 \|\| >=0.2.0-0 <0.3.0 —— 已验证同时接受 0.2.0-rc.2 和 0.2.1-alpha.1。故意不声明 engines.dsh:它没有读取方,也无法拒绝宿主 |
| Node | ^22.19.0 || >=24.0.0 |
| 平台 | 全部(纯 ESM;无原生代码,无网络,无模型调用) |
| 工具模式 | 在 native、ptc 和 both 下都能用;处理一批记录时用 ptc |
它做什么
注册 icd_rule_check 工具。它读取一段编码病案 —— 主要诊断、其他诊断、主要手术、其他手术 —— 套用带版本的规则包,返回一份报告,报告里每条发现都写明来自哪一条款。
| 规则 | 检查内容 | 严重级别 | 依据类型 |
| IC-001 | 每个诊断编码都符合 ICD-10 形式(先剥掉标记) | error | direct |
| IC-002 | 同一个诊断编码没有重复列出 | warn | principle |
| IC-003 | 星号编码在同一段病案里有对应的剑号搭档 | error | direct |
| IC-004 | 某个诊断仍在用星号形式(开关,默认关闭) | info | local |
| IC-005 | 主要手术与主要诊断归入同一组(表驱动,默认关闭) | warn | direct |
| IC-006 | 标记为「入院时不存在」的诊断不是主要诊断 | warn | principle |
| IC-007 | 每个手术编码都符合 ICD-9-CM-3 形式 | error | direct |
| IC-008 | 主诉与诊断名称有字面片段重合 | info | principle |
| IC-009 | 存在主要诊断 | error | direct |
| IC-010 | 诊断带有名称,而不只是编码(开关,默认关闭) | info | local |
凡是依赖编码目录的开关,默认都关闭,并在配置完成前把自己报进 skipped,所以一张没填的表绝不会被读成「没有问题」。
安装
dsh plugin --profile <name> add dsh-icd-rule-check
dsh --profile <name> --dump-config | grep 'dsh-icd-rule-check'
配置
| 键 | 类型 | 默认值 | 说明 |
| rulesFile | string | rules/icd-rule-check.yaml | 规则包路径,相对于包根目录 |
| disabledRules | string[] | [] | 要停止运行的规则 id;每一条都会出现在 skipped 里 |
| onlyRules | string[] | [] | 只运行这些规则 id;留空则运行全部规则 |
| skipNotes | string | "" | 追加到每条 skipped 原因后面的备注 |
| timeoutMs | number | 120000 | 协作式工具超时预算 |
几个值得了解的规则级参数:
- IC-003 pairs —— 你的剑号↔星号对照表,格式为 [{ dagger, asterisk }]。留空表示这项检查无法运行,并会如实说明。
- IC-005 correspondence —— 你的诊断→手术分组,格式为
[{ diagnosis: [I21], procedures: [36.06, 36.07] }]。procedures 列表留空表示「这一组不应带主要手术」。
- IC-004 flagAsteriskUse 和 IC-010 requireNames——默认关闭,等你为自己的目录和上报规则启用它们。
- IC-006 flagCode——入院病情代码,表示「入院时不存在」。默认值为 4。
材料格式
工具接受 JSON 或 YAML。在读取层面每个字段都是可选的,由检查引擎负责校验,所以部分导出会产生关于缺失部分的发现,而不是直接崩溃。
principalDiagnosis: { code: "I21.900", name: 急性心肌梗死 }
otherDiagnoses:
- { code: "I10", name: 高血压 }
principalProcedure: { code: "36.0600", name: 冠状动脉支架植入术 }
otherProcedures: []
chiefComplaint: 突发心肌梗死样胸痛 3 小时 admissionCondition: "I21.900": "1" # drives IC-006
条目也可以只是一个裸代码字符串(principalDiagnosis: I21.900),诊断或手术还可以带上 ICD-10 标记(A18.1†、N51.0)——格式检查前会先剥离它们,所以标记永远不会触发 IC-001。
规则来源
规则数据放在 rules/icd-rule-check.yaml。每条规则都带一份文档、一个文档编号、一条按来源自身编号体系的条款、一段逐字摘录,以及摘录读取自的 URL。加载器强制要求摘录是至少八个字符的真实引用,并且只依据一般原则或本地政策作出的检查永远不能被声明为 error。
被引用的条款来自《住院病案首页数据填写质量规范(暂行)》和《住院病案首页数据质量管理与控制指标(2016版)》(国卫办医发〔2016〕24号),以及《医疗保障基金结算清单填写规范(试行)》(医保办发〔2020〕20号)。有两项研究发现塑造了这个规则包,并记录在其中:
1. 合并编码找不到可引用的条款,所以这里没有合并编码规则。那次调查诚实的产出是一个默认留空的参数化钩子,而不是一条编造了条款编号的规则。
2. 星号形式的地位取决于目录版本。 国家临床版和医保版对它处理不同,所以 IC-004 是一个开关,而不是一条规则。
故障排查
- IC-003 或 IC-005 报告自己被跳过。 它们需要的表是空的。用你的编码器所用版本填写 pairs 或 correspondence。
- 你明知有效的代码被报告为格式错误。 IC-001 只检查形式;如果你的目录使用的拼写超出 ^[A-Z][0-9]{2}(\.[0-9A-Z]{1,4})?$,就改规则包里的模式。
- IC-008 在临床上合理的记录上触发。 它按字面片段把主诉和诊断名称*作比较,这是字符串操作,不是编码判断。加上你使用的名称,或者禁用这条规则。
- 插件装上了,但工具始终不出现。 检查 main 是否解析到 lib/index.mjs,以及 pnpm run build 是否产出了它;main 写错会让加载器静默跳过该条目。
- dsh plugin add 以不兼容为由拒绝该包。 peer 范围覆盖 0.1.x 和 0.2.x;如果你的运行时在这个范围之外,就显式授予豁免: dsh plugin --profile <name> allow-version dsh-icd-rule-check@0.1.0 --dsh-version <runtime> --accept-risk
- check 会把 manifest-peers 报为失败。 静态检查器比对的是一段硬编码的 peer 范围,早于 0.2 系列。运行时会在安装时强制校验 peer 兼容性,所以声明的范围才是正确的;这是 dsh-plugin-dev 里已知的上游问题。
开发
pnpm install
pnpm run typecheck # tsc --noEmit
pnpm test # vitest, paired fixtures per rule
pnpm run build # tsdown -> lib/index.mjs + lib/index.d.mts
node ../scripts/sync-shared.mjs dsh-icd-rule-check # refresh src/shared from ../_shared
许可证
Apache License 2.0 © 2026 dsh-icd-rule-check contributors。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
PerryLink/dsh-icd-rule-check
检查住院就诊 ICD 编码形式与交叉引用差异
相关插件 · 工具 / 效率
破甲管控台kingcharleslzy-ai/dsh-purge
dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚。基于小杨 / YuJunZhiXue 的 dsh-purge。
★ 4,330已汉化DeepSeek 客户端
74.5
网文长卷lingfengQAQ/webnovel-writer
基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200…
★ 7,636已汉化DSH
72.2
多智能体协作HKUDS/AutoSwarm
AutoSwarm: Unify Your Agents. Unify Your Context (Codex · Claude Code · DeepSeek Harness · Muse · Grok · WorkBuddy· nanobot · and more)
★ 2,349已汉化DSH
71.6
Vox 拼贴视频生成Alisa0808/vox-director
🎬 Vox Director拼贴动效导演
★ 2,129已汉化DSH
71.4
Agent 演化引擎Q00/ouroboros
智能体 OS:智能体自己变聪明,我们只守住底线:面试准入、分阶段评估、带预算的进化循环。MCP 服务器,14 种运行时:Claude Code、Codex CLI、Gemini CLI、OpenCode、Copilot、Kiro 等。
★ 6,311已汉化DSH
71.4
智能体运行框架路由HarnessRouter/harnessrouter
智能体 harness 的统一接口。
★ 3,984已汉化DSH
71.3
这是你的仓库?认领条目