手术安全核查表生成器(surgery-safety-checklist)
一句话结论:给你一张能直接交手术室质控督查的手术安全核查表——三阶段(麻醉实施前/皮肤切开前/患者离室前)逐项核对,核对项「未核对✗」整行标红、三方签名任一缺签该阶段核验行标红+【待填】,签名栏永远留【待填】(工具绝不代签),核查条目可按本院制度增删改。
本页导航:菜单式选路 → 对话示例 → 快速上手与退出码表 → 字段与判定口径 → 铁律(医疗合规四关)→ 能力边界量化表 → 岗位场景例子 → 边界提醒 → 文件索引。
菜单式选路
使用者开口后按场景引导,一次一问补要素:
第一步 · 选场景(回复序号或场景名均可):
- ① 单台手术核查表(一台手术三阶段逐项核对:各条目 已核对✓/未核对✗/【待填】+ 三方签名状态)
- ② 当日批次核查汇总(多台核查完成率、缺签清单、未核对项清单,自动清点)
- ③ 缺项整改跟踪(哪台哪项未核对/责任人工号/整改期限/复查状态;超期未整改标红——期限由输入给定,工具不硬编)
- ④ 月度核查统计(台次数、核查完成率、缺签次数、整改闭环率)
第二步 · 给数据(任选一种):
1. 粘贴/口述核对情况(按阶段逐条给:条目核对状态、签名状态……缺的项不用编)
2. --preset 场景名 --save 骨架.json 生成填写骨架,填好 --input 回来
3. --demo 先看脱敏样例长什么样
4. 直接要空模板(【待填】占位,条目按核查清单生成)
第三步 · 出核查表:xlsx 双表 = 核查明细(异常行整行标红 + 【待填】红字 + 冻结表头)+ 统计汇总(异常清单/缺签清单/未核对项清单/隐私与合规提示)。
不知道选什么?直接说需求,我给你列选项,回个序号就出表。
对话示例
> 用户:帮我弄个手术安全核查表
> 助手:好的,先选场景(回序号或场景名):①单台手术核查表 ②当日批次核查汇总 ③缺项整改跟踪 ④月度核查统计
> 用户:1
> 助手:好的,单台手术核查表。1. 手术间+台次+术式?(示例:手术间3 台次2 腹腔镜胆囊切除术)
> 用户:手术间3 台次2 腹腔镜胆囊切除术
> 助手:收到。2. 逐阶段给核对情况:每条核对项是 已核对/未核对?签名三方(手术医师/麻醉医师/手术室护士)各阶段是 已签/未签?缺的跳过不编。
> 用户:阶段一都核对了,麻醉医师没签;其他都齐
> 助手:要素齐全。生成核查表:未核对项无,阶段一缺签(麻醉医师)→ 该阶段签名核验行标红+【待填】;签名栏全部留【待填】,由授权人员现场签署,工具不代签。
快速上手
# 场景菜单
python scripts/make_surgery_safety_checklist.py --presets
# 脱敏示例(--date 固定台账日期,可复现;场景③同时作为时限跟踪基准日)
python scripts/make_surgery_safety_checklist.py --demo --out 核查表.xlsx --date 2026-11-01
# 指定场景(回序号 1/2/3/4 或场景名均可)
python scripts/make_surgery_safety_checklist.py --preset 缺项整改跟踪 --out 10月整改跟踪.xlsx
# 从填写好的骨架生成
python scripts/make_surgery_safety_checklist.py --input 骨架.json --out 核查表.xlsx
# 空模板(核查条目按清单生成,【待填】占位)
python scripts/make_surgery_safety_checklist.py --preset 单台手术核查表 --out 空模板.xlsx
# 自定义核查条目清单(缺省用 references/checklist-items.json,可直接编辑增删改条目)
python scripts/make_surgery_safety_checklist.py --demo --checklist 本院核查条目.json --out 核查表.xlsx
输出预览
以下为 --demo --date 2026-11-01(场景① 单台手术核查表)输出的文本摘录(截取自实际生成的 xlsx 关键单元格):
核查明细(截取部分行):
| 序号 | 手术间 | 台次 | 术式 | 阶段 | 核对条目 | 核对状态 | 手术医师签名 | 麻醉医师签名 | 手术室护士签名 | 备注 |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 3 | 2 | 腹腔镜胆囊切除术 | 阶段一 麻醉实施前 | 患者身份确认(姓名、性别、年龄、病案/住院号,使用两种以上身份标识) | 已核对✓ | 【待填】 | 【待填】 | 【待填】 | |
| 2 | 3 | 2 | 腹腔镜胆囊切除术 | 阶段一 麻醉实施前 | 手术方式与手术部位确认 | 未核对✗ | 【待填】 | 【待填】 | 【待填】 | ⚠️ 核对项「未核对✗」——请现场人工复核确认(工具只做记录,不参与核查判定) |
| … | 3 | 2 | 腹腔镜胆囊切除术 | 阶段三 患者离室前 | 三方签名核验(手术医师/麻醉医师/手术室护士) | 缺签 | 【待填】 | 【待填】 | 【待填】 | ⚠️ 缺签:麻醉医师、手术室护士(签名栏留【待填】,工具不代签、不生成任何签名文字,请授权人员现场签署) |
统计汇总(截取前几行):
| 项目 | 值 |
|---|---|
| 核查场景 | 单台手术核查表 |
| 台账日期 | 2026-11-01 |
| 核查行数 | 23 |
| 异常行数(红) | 3 |
| 【待填】单元格(不含备注列) | 70 |
【待填】单元格在 xlsx 中为红字;异常行整行红底。完整效果跑 --demo 即可复现。
退出码表(脚本 scripts/make_surgery_safety_checklist.py,v1.0.1)
| 退出码 | 含义 | 处理 |
|---|---|---|
| 0 | 核查表生成成功 | — |
| 10 | 输入文件不存在(沿用现有体系约定) | 核对 --input / --checklist 路径 |
| 11 | 输入缺失:缺 items / 缺 phases / items 或 phases 非数组 / --save 未指定 --preset |
场景①按 {"phases": [ … ]}、其余按 {"items": [ … ]} 结构补齐 |
| 12 | 格式错误:JSON 无法解析 / items 或 phases 项非对象 / 阶段无法匹配 / --date 无法识别 / 核查清单结构错误 |
核对 JSON 语法、阶段名与日期格式 |
| 13 | 隐私拦截:输入检测到患者姓名明文(患者张三/李某某式)、身份证号、手机号 | 去除敏感信息后重试;患者标识仅可用病案号/住院号等编号类字段,工号/手术间号允许(错误提示不回显敏感值) |
| 14 | 校验失败:预设名不存在 | 见 --presets 菜单(回序号/场景名均可) |
| 15 | 运行超时(60 秒看门狗) | 重跑同一条命令 |
| 20 | 解析失败 / 输出失败等未预期异常(兜底) | 把输入 JSON 与提示发给助手排查 |
| 21 | 缺依赖 | pip install openpyxl 后重跑 |
单行日期/状态/数值格式错误不中断整份核查表:该格转【待填】红字并在备注注明原因,汇总页计入清点;文件级错误才整体退出。
字段与判定口径
核查条目清单(可配置):核对条目来自 references/checklist-items.json(三阶段各若干条,可直接编辑增删改),或 --checklist 指定其他清单文件;条目内容允许用户增删改,工具按清单生成,不硬编套用某一版本。本文件条目仅为通用参考结构占位——以本院现行手术安全核查制度与核查表样张为准。
- ① 单台手术核查表(11 列):序号 / 手术间 / 台次 / 术式 / 阶段 / 核对条目 / 核对状态 / 手术医师签名 / 麻醉医师签名 / 手术室护士签名 / 备注
- 每条核对项状态 = 已核对✓ | 未核对✗ | 【待填】;未核对 → 整行标红
- 每阶段末尾一行「三方签名核验」:任一签名缺失 → 该阶段签名核验行标红 + 签名栏【待填】
- 术式由输入给定(工具不提供术式建议),缺失一律【待填】
- ② 当日批次核查汇总(13 列):序号 / 日期 / 手术间 / 台次 / 术式 / 阶段一核对 / 阶段二核对 / 阶段三核对 / 阶段一签名 / 阶段二签名 / 阶段三签名 / 核查完成率 / 备注
- 阶段核对格式「已核对数/条目数」(如 3/3)或「完整」;核查完成率自动计算
- 标红:任一阶段有未核对项|核对情况不明(未填/无法识别)|任一阶段签名≠完整(未填按缺签对待)
- 汇总页输出缺签清单与未核对项清单
- ③ 缺项整改跟踪(11 列):序号 / 登记日期 / 手术间 / 台次 / 术式 / 未核对项 / 责任人(工号) / 整改期限 / 复查状态 / 逾期天数 / 备注
- 复查状态 = 已闭环 | 整改中 | 未复查 | 【待填】;逾期天数自动计算(基准日=
--date,缺省运行当天) - 超期未整改(期限已过 且 复查状态≠已闭环)→ 整行标红;期限由输入给定,工具不硬编
- ④ 月度核查统计(11 列):序号 / 月份 / 手术间 / 台次数 / 已完整核查台次 / 核查完成率 / 缺签次数 / 应整改项数 / 已闭环整改项数 / 整改闭环率 / 备注
- 完成率/闭环率自动计算;标红:完成率<100%|闭环率<100%|缺签次数>0;数据缺失只【待填】提示不硬标红
签名口径(铁律):输入中签名只接受状态词(已签/未签),仅用于缺签判定与标红;输出签名栏一律【待填】红字——工具绝不代签、不生成任何签名文字,须由手术医师/麻醉医师/手术室护士按本院授权现场签署。签名状态填入其他文字 → 按未签处理并在备注提示。
软提示(备注 ℹ️ 提示,不标红):日期/月份/期限格式无法识别、状态值无法识别(该格转【待填】);阶段名未匹配到清单(条目仍记录,提示确认);复查状态未填(未确认前按未闭环对待)。
- 【待填】单元格红字标红,汇总页清点数量并提示「未补齐视为核查记录未完成」
- 患者标识只能填病案号/住院号等编号类字段(不得含姓名);工号/手术间号允许;工具默认场景为①单台手术核查表,
--input的 JSON 里也可写"preset": "场景名"自动选路;骨架顶层的date/dept回读时同样生效(命令行--date/--dept优先级更高,同时给出时覆盖骨架值)
铁律(医疗合规四关)
- 不碰核查判定与诊疗决策:只做核对记录台账与时限跟踪;某条核没核到位、能不能切皮,以现场三方人工核对和本院手术安全核查制度为准,台账只做状态留痕与缺项清点,不参与核查判定本身、不替代人工核对
- 隐私硬拦截:脚本检测到患者姓名明文(含「患者张三」「李某某」式结构)、身份证号、手机号 → 退出码 13 直接拒绝生成(错误提示不回显敏感值);工号/手术间号允许;内置白名单防误拦(「患者身份确认」等核查条目用语不拦截)
- 数据不出机:核查表本地生成,无网络请求;核查记录按院内数据管理规定流转
- 不编造不代签:术式、核查条目、期限等缺失一律【待填】标红不编造;签名栏一律【待填】,绝不代签、不生成任何签名文字
能力边界量化表
| 能做 | 不做(明确边界) |
|---|---|
| 四场景核查表生成(xlsx 双表,可打印随台使用) | 不替代手术安全核查制度本身:无核查判定逻辑、无电子签章、无手术排班/HIS 联动 |
| 未核对项整行标红、缺签阶段核验行标红+【待填】 | 不替代三方人工核对:标红只是记录提示,核对判定权在现场三方 |
| 三阶段核对状态留痕、核查完成率/闭环率自动计算 | 不碰诊疗决策:不判断手术适应证、麻醉方案与术式合理性;术式由输入给定,不提供建议 |
| 缺项整改时限跟踪(期限由输入给定,超期自动标红) | 不代签:签名栏一律【待填】,不生成任何签名文字,不做电子签章 |
| 隐私拦截(退出码 13)+ 白名单防误拦 | 不识别或处理影像/扫描件;输入仅支持 JSON 文本 |
| 核查条目可配置(清单文件增删改,不硬编版本) | 不引用法规具体条款号;三阶段框架仅作结构参考,条目与口径以本院现行制度与核查表样张为准 |
| 本地生成、数据不出机 | — |
岗位场景例子
- 巡回护士:「一台接一台核对,纸质核查表容易漏」→ 选 ① → 三阶段逐条留痕,未核对整行红、缺签核验行红,漏项一眼看到
- 手术室护士长:「今天十几台,质控要汇总」→ 选 ② → 核查完成率自动算,缺签清单/未核对项清单直接出
- 质控员:「上月查出的缺项要盯闭环」→ 选 ③ → 超期未整改自动标红,逾期天数自动算
- 科室月底:「月度核查统计要报质控会」→ 选 ④ → 完成率/闭环率自动计算,缺签次数清点
边界提醒
- 本工具不替代手术安全核查制度与现场三方核对;核查表按院内要求随病历或专项归档
- 核查条目清单(references/checklist-items.json)仅为通用参考结构占位,以本院现行手术安全核查制度与核查表样张为准——条目不符请直接增删改清单或用
--checklist指定本院清单 - 签名栏只认状态(已签/未签)用于缺签判定;签名栏姓名一律不填——脚本对姓名明文/身份证/手机号是硬拦截(退出码 13),签名栏输出永远【待填】
- 整改期限由科室输入给定,工具不硬编、不建议期限;超期标红只提示时限,不判定责任
文件索引
| 文件 | 用途 |
|---|---|
| scripts/make_surgery_safety_checklist.py | 核心:CLI 成稿 + 四场景判定 + 三阶段核对 + 缺签标红 + 隐私拦截 + 错误码兜底 |
| references/checklist-items.json | 可配置核查条目清单(三阶段逐项,可直接增删改;也可 --checklist 指定) |
| references/surgery-safety-guide.md | 核查实践与判定口径参考:三阶段核对/签名口径/整改跟踪/清单维护 |
| requirements.txt | 依赖(openpyxl) |
| assets/faq.md | 高频问答:场景选择/签名口径/隐私误拦/输出位置/相邻技能分工 |
| assets/anti-patterns.md | 反模式清单:错误用法 → 会发生什么 → 正确做法 |
| assets/input-example.json | 场景①脱敏示例输入(可直接 --input 试跑) |
| beta-test/run_tests.py | 内测回归脚本(四场景/标红/缺签/隐私拦截/退出码/清单生效等) |
FAQ 快捷导航:条目能不能改→references/checklist-items.json|为什么被拒绝(13)→退出码表|签名栏为什么是【待填】→签名口径|期限谁定→场景③|标红是不是判定我出错→铁律第 1 条。完整问答见 assets/faq.md,错误用法对照见 assets/anti-patterns.md。