校验住院病案首页表格完整性与逻辑矛盾,仅提示差异
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/9 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add PerryLink/dsh-medrec-qc该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · tool
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 26 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/11/3) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 1 处,展示前 1 条)
- 读取本地文件samples/quickstart/run.mjs:7
const material = await readFile(join(here, 'input', "MR-001-unsafe.yaml"), 'utf8')
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-package-manifest@deepseek-ai/dsh-tools@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 校验首页表格完整性
- 识别逻辑矛盾
- 仅提示差异
病案首页核对:依据《住院病案首页数据质量管理与控制指标(2016版)》《住院病案首页数据填写质量规范(暂行)》(国家医疗保障局"两库"知识点(诊断与患者性别不符)、国卫办医发〔2016〕24号)。仅提示差异,不作出定性结论。
README
由 DeepSeek 最新模型翻译生成dsh-medrec-qc — 住院病案首页的表格校验与逻辑矛盾提示词
dsh-medrec-qc 读取住院病案首页(病案首页)的导出文件,每次出院一行,列集合可以是国家考核导出、卫生统计导出或医院本地导出,然后检查这份导出自身的表格完整性、内部算术和编码形式:每个必填列是否有内容或 - 标记,入院和出院时间是否填写、是否精确到分钟、顺序是否颠倒,申报的住院天数与两个日期是否一致,主要诊断名称与编码、主要手术名称与编码是否成对填写,编码是否符合配置档规定的书写形式,三个签名列是否体现三级医师负责制,离院方式是否属于已定义的编码,年龄和新生儿体重是否使用规定格式,其他诊断条数是否在配置的上限之内,以及诊断与记录的性别不相容、死亡出院出现两个互相矛盾的时间,是否被挑出来交人工复核。
它能回答什么
| 你问 | 它答 |
| 某个必填列空着,但我在里面打了 -。这会被报出来吗? | 不会。MR-001 把单独一个 - 当作「此处无需记录」的标记,只报真正空白的列。它检查的是必填列有没有内容,不是内容对不对;而且它最高只到 warn,因为它引用的附件是 PDF,当前环境无法解码。同一个 - 在 MR-009 下仍然算签名缺失。 |
| 入院时间只写了日期,没有小时和分钟,而且有一行出院时间早于入院时间。
展开完整文档(README 剩余 1 节)
dsh-medrec-qc — 住院病案首页的表格校验与逻辑矛盾提示词
dsh-medrec-qc 读取住院病案首页(病案首页)的导出文件,每次出院一行,列集合可以是国家考核导出、卫生统计导出或医院本地导出,然后检查这份导出自身的表格完整性、内部算术和编码形式:每个必填列是否有内容或 - 标记,入院和出院时间是否填写、是否精确到分钟、顺序是否颠倒,申报的住院天数与两个日期是否一致,主要诊断名称与编码、主要手术名称与编码是否成对填写,编码是否符合配置档规定的书写形式,三个签名列是否体现三级医师负责制,离院方式是否属于已定义的编码,年龄和新生儿体重是否使用规定格式,其他诊断条数是否在配置的上限之内,以及诊断与记录的性别不相容、死亡出院出现两个互相矛盾的时间,是否被挑出来交人工复核。
它能回答什么
| 你问 | 它答 |
| 某个必填列空着,但我在里面打了 -。这会被报出来吗? | 不会。MR-001 把单独一个 - 当作「此处无需记录」的标记,只报真正空白的列。它检查的是必填列有没有内容,不是内容对不对;而且它最高只到 warn,因为它引用的附件是 PDF,当前环境无法解码。同一个 - 在 MR-009 下仍然算签名缺失。 |
| 入院时间只写了日期,没有小时和分钟,而且有一行出院时间早于入院时间。 | MR-002 会报出只能读到日的 入院时间 或 出院时间,因为记录的时间必须精确到分钟;完全无法解析成日期时间的值也会报出。MR-003 比较两个字段的字面顺序,报出出院时间在前的那一行。两者都只看字面值,都不判断两个时间里哪个才是真的。 |
| 病案首页写着 5 天,但日期是 6 月 12 日入院、6 月 15 日出院。 | MR-004 按出院日期减入院日期重新数天数,申报的 实际住院天数 对不上就报出该行;当天入院当天出院算 0 天,不是整天的值也会报出。它只比较这三个已存的值,不判断其中哪个是错的。 |
| 主要诊断名称 已填写,但 主要诊断编码 为空,而另一行填了一个形状奇怪的编码。 | MR-005 要求两者一起填写,并指出缺的是哪一个;它只检查两者是否都存在,不检查编码与诊断是否匹配。随后 MR-006 拿编码去比对规则包中配置的书写形式,并不验证该编码是否存在于分类目录的任何版本中。 |
| 一批数据里完全没有手术记录。手术类规则会静默通过吗? | 不会。MR-007 会在 skipped 中报告自己,理由是该批材料不含手术记录,因此配对检查不适用,而不是静默通过。当某一行确实记录了手术时,规则要求 主要手术名称 和 主要手术编码 一起填写,而 MR-008 只检查手术编码的书写形式。 |
| 男性患者的主要诊断是妊娠相关疾病。这会阻止导出吗? | MR-014 会把它作为 warn 级别的差异报告出来,交由人工确认,绝不会阻止导出:卫健侧文件里没有任何条款规定诊断与所记性别不相容,而该医保规则类型的公开细则不覆盖妊娠、分娩和产褥期章节,并允许临床例外。请与临床医生确认是性别写错了还是诊断写错了。 |
遵循的标准
| 文件 | 编号 | 引用它的规则 |
| 《住院病案首页数据质量管理与控制指标(2016版)》 | 国卫办医发〔2016〕24号 | MR-001 |
| 《住院病案首页数据填写质量规范(暂行)》 | 国卫办医发〔2016〕24号 | MR-002, MR-003, MR-005, MR-006, MR-007, MR-008, MR-013, MR-015 |
| 《卫生部关于修订住院病案首页的通知》 | 卫医政发〔2011〕84号 | MR-004, MR-009, MR-010, MR-011, MR-012 |
| 国家医疗保障局"两库"知识点(诊断与患者性别不符) | 国家医疗保障局公告(第二十一批) | MR-014 |
边界: 本插件检查的是住院病案首页(病案首页)——编码员和国家考核系统读的那一页出院小结——检查表单完整性、内部矛盾和编码书写形式。它不是 dsh-nurse-record-check(检查护理文书时效性),也不是 dsh-icd-rule-check(检查 ICD 编码规则和剑号/星号配对),也不判断诊断在临床上是否正确。它读取病案首页的导出数据,报告与所引条款的字面不符。
兼容性
| 层面 | 状态 |
| Harness | Peer 范围 >=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 |
它做什么
注册 medrec_qc 工具。它读取一批出院病例,套用带版本的规则包,返回一份报告,其中每条发现都指明它来自哪一条款。
⚠️ 为什么 MR-001 只是 warn
这里每条 error 规则都有一份文件作为依据,既规定了要求,条款原文也逐字读过 —— 国卫办医发〔2016〕24号(已获取全文)和 卫医政发〔2011〕84号(已获取全文,含全部三个附件)。MR-001 是例外:它唯一的依据是附件1 的表头说明,而该附件是 PDF,当前环境无法解码。已获取的文本中最接近的表述 —— 84号文附件2 一(三)「栏目中没有可填写内容的,填写"-"」 —— 说的是空白栏怎么填,而不是必填字段不得留空,所以撑不起 error。条款读不到的规则,不该拦住工作流。完整分类见 rules/evidence/authority-class-audit.md。
| 规则 | 检查项 | 严重级别 |
| MR-001 | 必填栏不得留空(单独一个 - 是认可的标记) | warn |
| MR-002 | 入院和出院时间必须填写,且精确到分钟 | error |
| MR-003 | 出院时间不得早于入院时间 | error |
| MR-004 | 记录的住院天数与这两个日期一致 | error |
| MR-005 | 主要诊断名称和编码必须同时填写 | error |
| MR-006 | 主要诊断编码符合 ICD-10 格式 | error |
| MR-007 | 有手术时,手术名称和编码必须同时填写 | error |
| MR-008 | 主要手术编码符合 ICD-9-CM-3 格式 | error |
| MR-009 | 签名栏体现三级医师负责制 | error |
| MR-010 | 离院方式属于已定义的编码之一 | error |
| MR-011 | 年龄使用整数岁或 N M/30 月 的月数写法 | warn |
| MR-012 | 新生儿体重记录精确到 10 克 | warn |
| MR-013 | 其他诊断数量不超过配置的上限 | warn |
| MR-014 | 诊断与记录的性别不符时需人工复核 | warn |
| MR-015 | 死亡离院时,把死亡时间记为出院时间 | info |
列名通过共享字典解析,所以国家评估导出、卫生统计导出和医院本地导出都走同一套规则。读不出来的列会写进 warnings 和 unknownColumns,而不是直接忽略 —— 列没映射上,恰恰就是检查悄悄失效的原因。
安装
dsh plugin --profile <name> add dsh-medrec-qc
dsh --profile <name> --dump-config | grep 'dsh-medrec-qc'
配置
所有可调项都在 src/config.ts 的 Schemastery schema 里,因此可以直接从 cordis.yml 改,不用动代码。每条规则的字段列表和阈值在 rules/medrec-qc.yaml 里。
| 键 | 类型 | 默认值 | 说明 |
| rulesFile | string | rules/medrec-qc.yaml | 规则包路径,相对于包根目录 |
| disabledRules | string[] | [] | 要停止运行的规则 id;每个都会出现在 skipped 里 |
| onlyRules | string[] | [] | 只运行这些规则 id;留空则运行全部规则 |
| skipNotes | string | "" | 附加到每条 skipped 原因后面的备注 |
| timeoutMs | number | 120000 | 协作式工具超时预算 |
值得了解的规则级参数:
- MR-001 fields —— 必填列清单,取自国卫办医发〔2016〕24号附件1。你可以自行扩充必填列,无需改动代码。
- MR-011 underOnePattern / adultPattern —— 可接受的年龄写法。
- MR-013 maxChecked —— 其他诊断数量超过该值时,排序会被标记待复核。
- MR-014 rules —— 性别与诊断的术语对照表,写成 { sex, label, pattern }。
材料格式
工具接受 JSON 或 YAML,内含 cases 列表(也接受裸列表)。字段名会与字典匹配,所以 医院疾病诊断名称 这类本地写法会解析成规则读取的规范键。
cases:
- row: 1
病案号: "A2026030001" 入院时间: "2026-03-01 08:30" 出院时间: "2026-03-06 10:00" 实际住院天数: "5" 性别: "1" 出生日期: "1972-05-04" 年龄: "53" 离院方式: "1" 科主任: "赵主任" 主任医师: "钱主任医师" 主治医师: "孙主治" 住院医师: "李医师" 责任护士: "周护士" 编码员: "吴编码" 主要诊断名称: "2型糖尿病" 主要诊断编码: "E11.900" 其他诊断: "高血压;慢性肾功能不全" 主要手术名称: "腹腔镜胆囊切除术" 主要手术编码: "51.2300" 有手术操作: "1"
也接受等价的英文表头,例如 MEDICAL_RECORD_NO、ADMISSION_TIME、DISCHARGE_TIME 和 MAIN_DIAGNOSIS_CODE,所以已经导出 ASCII 表头的医院无需再做转换。
规则来源
规则数据放在 rules/medrec-qc.yaml。每条规则都带有文件、文号、按来源自身编号的条款、逐字摘录,以及摘录读自的 URL。加载器会强制校验:摘录必须是真实引用且至少八个字符;依据仅为一般原则(kind: derived-from-principle,最高 warn)或本地政策(kind: institutional-configuration,最高 info)的检查,永远不得声明为 error。
条款编号已对照以下文件的全文核对:《住院病案首页数据填写质量规范(暂行)》和《住院病案首页数据质量管理与控制指标(2016版)》(国卫办医发〔2016〕24号)、《卫生部关于修订住院病案首页的通知》(卫医政发〔2011〕84号)附件、《医疗机构病历管理规定(2013年版)》(国卫医发〔2013〕31号)以及《医疗保障基金结算清单填写规范(试行)》(医保办发〔2020〕20号)。
有四项发现塑造了这套规则包,记录在此,方便复核者看清哪些主张是刻意没有提出的:
1. 必填字段清单是附件1,其中没有一列叫「医师签名」。 附件1的「住院病案首页必填项目列表」共 76 项,签名栏列的是 科主任 / 主任(副主任)医师 / 主治医师 / 住院医师。因此 MR-009 绑定到这些具体列,并引用 84号文附件 二(二十八)1 作为三级责任要求,而不是写成「24号文要求医师签名」。
2. 年龄格式在 84号文,不在 2010 病历书写规范。 一岁以下年龄的规则(N M/30 月)出自 卫医政发〔2011〕84号 附件 二(六)。11号文只把年龄作为……的字段提及入院记录。MR-011 引用了 84号文,并且不检查「书写日龄不足一个月」这条规则,因为没有任何国家文件这样规定——而医保办发〔2020〕20号针对医保通道规定了另一条规则(整数日龄),所以两者并不互斥。
3. 「男性患者不能有妊娠诊断」不是国家条款。 国家医疗保障局发布了「诊断与患者性别不符」这一规则类型,但公开的细则覆盖 ICD-10 的十一个章节(A/B/C/D/E/F/I/J/K/L/M),其中完全没有 O 章节条目;随附的新闻吹风会明确允许临床例外。因此 MR-014 只是 warn 级别的线索,供人工复核,绝不阻断。
4. 死亡出院没有独立条款把它和死亡时间绑定。 24号文 第八条只把死亡患者的出院时间定义为死亡时间。MR-015 依据的就是这条定义,上限为 info,并在自己的说明里写明了这一点。
故障排查
- 插件装上了,但工具始终不出现。 检查 main 是否指向 lib/index.mjs,以及 pnpm run build 是否生成了它;main 写错会让加载器静默跳过入口。
- 你预期会跑的检查没跑。 读一下 skipped 数组:它会列出规则名,如果原因是缺少某列,还会指出缺的是哪一列。比如导出数据没有手术操作列时,MR-008 会一直处于跳过状态。
- 你确定存在的列被报成未知。 把它的拼写加进 src/parse.ts 里的 CASE_FIELDS(或你自己的规则包字段列表)——读取器刻意拒绝猜测。
- dsh plugin add 以不兼容为由拒绝该包。 peer 范围覆盖 0.1.x 和 0.2.x;如果你的运行时不在这个范围内,显式授予豁免: dsh plugin --profile <name> allow-version dsh-medrec-qc@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-medrec-qc # refresh src/shared from ../_shared
许可证
Apache License 2.0 © 2026 dsh-medrec-qc contributors。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
PerryLink/dsh-medrec-qc
校验住院病案首页表格完整性与逻辑矛盾,仅提示差异
相关插件 · 工具 / 效率
破甲管控台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,826已汉化DSH
72.2
花束设计alchaincyf/huashu-design
一句话生成网页、原型、PPT 与信息图等可交付设计
★ 28,638已汉化DSH
71.7
多智能体协作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
这是你的仓库?认领条目