医疗器械UDI与出入库追溯核对(免费版)
完全本地运行:引擎已经打包在本技能里(
engine/目录)。 核对过程不需要联网、不需要 API Key、没有调用次数上限。
什么时候用
谁会在什么时候用:医院设备科 / 器械管理员 / 器械经营企业的质量与仓储岗, 在每月的出入库与追溯自查(以及飞检、医保检查前的自查)这个固定节点上, 必须把这张 UDI 与出入库追溯台账核一遍才能往下走。
为什么这一步躲不过:医疗器械要按唯一标识(UDI-DI / UDI-PI)做全程追溯 —— 采购入库要登记 UDI、批号或序列号、有效期至;出库 / 使用要能反向追溯到患者或科室; 植入介入类器械还要留存使用登记。飞检与医保检查最常见的整改项就是 「UDI 不完整」「批号与实物不符」「效期过期仍在用」「追溯链条断在某个环节」—— 这四类问题都会被逐条点名到行。
这张表会逐项核对什么(免费版 6 项):
- UDI 完整性 —— UDI-DI(产品标识)缺失、UDI-PI 缺批号或序列号、UDI-PI 缺有效期至,都点名到行;
- 出入库数量勾稽 —— 逐 UDI 逐批号复算 期初库存 + 入库数量 − 出库数量 = 期末库存,差额不为零就列出;
- 效期核对 —— 核对日期 ≤ 有效期至;已过期或临期 30 天内都报出,并给出天数;
- 重复登记 —— 同一 UDI-DI + 同一批号或序列号在表内出现两次即点名(附首次出现的行号);
- 合计行逐列复核 —— 合计行的数量类列(期初库存 / 入库数量 / 出库数量 / 期末库存)必须等于明细逐列相加;
- 关键字段与数量合法性 —— 产品名称 / 规格型号 / 注册证号 / 生产厂家 / 库位 / 核对日期空缺, 日期格式非法,数量为负或无法解析,状态值不在允许取值内。
每条结论都带原文行号与原文行内容(行内点名 UDI-DI / 批号 / 日期 / 数量), 可被第三方用同一口径复算;材料不足时不给结论(会明确列出还缺哪一列), 也不会输出「未发现问题」。
怎么用
node scripts/run.mjs --sample # 先看样例
node scripts/run.mjs --input 你的材料.json # 跑自己的材料
台账至少要能认出这些列:UDI-DI、产品名称、规格型号、批号或序列号、有效期至、注册证号、 生产厂家、期初库存、入库数量、出库数量、期末库存、库位、核对日期(少一列只报「材料不足」,不给结论)。 从 Excel 里把表头 + 数据行一起复制成文本贴进来最稳(Tab 分隔)。
常见错法(这张器械追溯台账里真的会有人这么填)
- UDI-DI 抄成注册证号或院内物料编码:UDI-DI 是器械包装上的产品标识,和注册证号、物料编码不是一回事; 这一列填了别的东西,本工具只按"非空"过,但真正对不上国家药监局数据库的就是它。
- 批号与序列号混用同一列、口径还不统一:耗材一般按批号、植入介入类逐件按序列号; 同一列里两种混填时,"同一 UDI + 同一批号"的重复判定会既可能误报也可能漏报,出库时也对不上实物。
- 出库登记成"领用数量",退库 / 报损没回冲:期初 + 入库 − 出库立刻配不平(报「出入库数量不勾稽」); 要先用退库单、报损单把出库冲干净,别直接改期末数去凑平。
- 有效期至填成"2026-08"或"2026年8月31日到期":效期核对整项做不了,会报「日期格式无法解析」;
一律填
YYYY-MM-DD,本工具不会把看不懂的日期当成没过期。 - 同一批号分散在多个库位 / 多个供应商却不标子批号:验收按批号追溯会指向两个来源,埋下串货 / 混批的雷;
分批采购请在批号后加
-A/-B之类的子批号,别让一个批号挂在两个供应商名下。
需要完整档时(可选)
本免费版是完整可用的核心产出,本版本不包含下面这些项:
- 追溯链完整性(出库记录缺少使用科室/患者去向即点名断链环节,植入介入类必须留存使用登记)
- 注册证有效期覆盖(入库或使用日期超出注册证有效期 ⇒ 点名「过期注册证仍在流转」)
- 效期与库龄(入库日期到核对日期超过本行给出的库龄阈值且期末仍在库 ⇒ 提示)
- 同一批号跨库位/跨供应商(防串货、防混批 ⇒ 逐批号点名)
- 分科室 × 分器械类别的汇总清单(按追溯缺口与效期风险排序,给出可整改动作)+ 逐条整改清单
同名工具的完整档是另一个独立商品(条款与条件以它自己的商品页为准);两档的差别就是上面这些,没有别的。
边界(请务必知道)
本工具不做引擎 CHECKS_OUT_OF_SCOPE 里列的那些判断:不判定器械本身质量是否合格、能否继续使用,
核对过程不联网核验 UDI-DI / 注册证号真伪,不做法规条款级合规判定,不读 .xlsx / .pdf / 图片原件,
也不判定植入器械使用登记是否已上报;
材料不足时不给结论,也不会输出「未发现问题」。
