放射设备质控与防护检测台账生成器(radiation-equipment-qc-log)
一句话结论:给你一张能直接交放射卫生督查/等级评审的设备质控与防护检测台账——四场景(质控登记/到期提醒/防护登记/年度汇总)自动推算到期、超标与不合格缺处置整行标红,【待填】红字清点,检测周期不套默认值,缺什么一眼看到。
本页导航:菜单式选路 → 对话示例 → 快速上手与退出码表 → 字段与判定口径 → 铁律(医疗合规四关)→ 能力边界量化表 → 岗位场景例子 → 边界提醒 → 文件索引。
边界声明(三个放射相关台账工具分工,先看清再选)
| 工具 | 管什么 | 不管什么 |
|---|---|---|
| radiation-equipment-qc-log(本工具) | 放射诊疗设备性能质控检测(状态检测/稳定性检测/应用质量性能检测)与放射诊疗场所防护检测的记录台账与时限跟踪 | 不做通用计量检定(血压计/监护仪等强检器具→equipment-calibration-log),不管个人剂量监测 |
| equipment-calibration-log | 通用医疗设备计量检定/校准:强检器具台账、检定周期到期预警、检定结果登记 | 不做放射设备性能质控检测与场所防护检测(→本工具) |
| radiation-dose-log | 放射工作人员个人剂量监测:剂量计发放回收、检测结果、异常处置、人均统计 | 不做设备质控与场所防护检测(→本工具),不碰职业健康诊断 |
三个工具互不替代:同一台 CT 的「计量检定」找 equipment-calibration-log、「状态/稳定性检测」找本工具、操作技师的「个人剂量」找 radiation-dose-log。
菜单式选路
使用者开口后按场景引导,一次一问补要素:
第一步 · 选场景(回复序号或场景名均可):
- ① 设备质控检测登记(放射诊断/介入/核医学/放射治疗设备逐台登记:检测类别、检测日期、检测机构、结论、不合格项与处置)
- ② 检测到期提醒(按上次检测日期+检测周期推算下次到期,给定基准日期输出临期/超期清单;周期与预警阈值参数化)
- ③ 场所防护检测登记(机房门外/观察窗/操作位等点位:检测结果与标准限值按检测报告抄录,超标标红、复测日期待填)
- ④ 年度汇总(按设备×检测类别透视、不合格清单、防护超标清单、应检未检清单)
第二步 · 给数据(任选一种):
1. 粘贴/口述检测记录(按检测报告逐行抄录:设备、机房、检测类别、日期、机构、结论……缺的项不用编)
2. --preset 场景名 --save 骨架.json 生成填写骨架,填好 --input 回来
3. --demo 先看脱敏样例长什么样
4. 直接要空模板(8 行【待填】占位)
第三步 · 出台账:xlsx 双表 = 检测明细(异常行整行标红 + 【待填】红字 + 冻结表头)+ 统计汇总(异常清单/到期状态/透视与清单/【待填】清点/隐私与合规提示)。
不知道选什么?直接说需求,我给你列选项,回个序号就出表。
对话示例
> 用户:放射科设备质控检测要做台账
> 助手:好的,先选场景(回序号或场景名):①设备质控检测登记 ②检测到期提醒 ③场所防护检测登记 ④年度汇总
> 用户:1
> 助手:好的,设备质控检测登记。请按检测报告逐台给数据,一次一项,缺的跳过不编:
> 1. 设备名称+设备编号+型号?(示例:CT机 CT-02 CT-16P)
> 用户:CT机 CT-02 CT-16P,机房2号,状态检测,2026-09-10,检测机构甲,结论合格
> 助手:要素齐全(检测项目未提供→【待填】)。生成台账:1 行,无异常,1 个【待填】。
> 用户:还有一台 DSA 稳定性检测不合格,报告刚拿到还没定处置
> 助手:结论不合格而处置缺失→整行标红+处置措施【待填】,补齐处置(整改/停用/复测)后重跑即可消除。
快速上手
# 场景菜单
python scripts/make_radiation_equipment_qc_log.py --presets
# 脱敏示例(--date 固定台账日期,可复现)
python scripts/make_radiation_equipment_qc_log.py --demo --out 台账.xlsx --date 2026-11-01
# 指定场景(回序号 1/2/3/4 或场景名均可)
python scripts/make_radiation_equipment_qc_log.py --preset 场所防护检测登记 --out 10月防护检测.xlsx
# 到期提醒:检测周期与预警阈值参数化(不硬编默认周期)
python scripts/make_radiation_equipment_qc_log.py --preset 检测到期提醒 \
--date 2026-11-01 --cycle 12 --alert-days 60 --out 到期提醒.xlsx
# 从填写好的骨架生成(年度汇总可带 protection 数组统计防护超标)
python scripts/make_radiation_equipment_qc_log.py --input 骨架.json --out 台账.xlsx
# 空模板(8 行【待填】占位)
python scripts/make_radiation_equipment_qc_log.py --preset 设备质控检测登记 --out 空模板.xlsx
骨架全局字段回读:--input 自动采用骨架 JSON 顶层的 date(台账日期/到期推算基准日)、dept(科室/登记点)、cycle(检测周期月数)、alert_days(临期预警天数)、preset(场景)——与 --save 保存字段一一对应;命令行参数优先级更高,--date/--dept/--cycle/--alert-days 已传时覆盖骨架值,骨架字段为【待填】视为未填不生效。
输出预览
以下为 --demo --date 2026-11-01 生成的设备质控检测登记台账关键单元格摘录(5 行,异常 1 行整行标红、【待填】红字):
| 序号 | 设备名称 | 设备编号 | 机房 | 检测类别 | 检测项目 | 检测日期 |
|---|---|---|---|---|---|---|
| 1 | DR X射线机 | DR-01 | 机房1号 | 状态检测 | 输出量/半值层 | 2026-09-10 |
| 2 | CT机 | CT-02 | 机房2号 | 状态检测 | CT值一致性 | 2026-09-10 |
| 3 | CT机 | CT-02 | 机房2号 | 应用质量性能检测 | 低对比度分辨力 | 2026-09-11 |
| 4 | DSA | DSA-03 | 机房3号 | 稳定性检测 | 【待填】 | 2026-10-08 |
终端同步输出摘要:已生成: 台账.xlsx / 场景 设备质控检测登记 | 登记行 5 | 异常行(红) 1 | 【待填】单元格 19。
退出码表(脚本 scripts/make_radiation_equipment_qc_log.py,v1.0.1)
| 退出码 | 含义 | 处理 |
|---|---|---|
| 0 | 台账生成成功 | — |
| 10 | 输入文件不存在(沿用现有体系约定) | 核对 --input 路径 |
| 11 | 输入缺失:缺 items / items 非数组 / --save 未指定 --preset |
按 {"items": [ … ]} 结构补齐 |
| 12 | 格式错误:JSON 无法解析 / items 或 protection 项非对象 / --date、--cycle、--alert-days 无法识别 |
核对 JSON 语法与参数格式 |
| 13 | 隐私拦截:输入检测到姓名明文(患者/病人+姓名、「张三」「李某某」式)、身份证号、手机号 | 去除敏感信息后重试;人员标识仅可用工号,设备/机房用设备编号/机房号(错误提示不回显敏感值) |
| 14 | 校验失败:预设名不存在 | 见 --presets 菜单(回序号/场景名均可) |
| 15 | 运行超时(60 秒看门狗) | 重跑同一条命令 |
| 20 | 解析失败 / 输出失败等未预期异常(兜底) | 把输入 JSON 与提示发给助手排查 |
| 21 | 缺依赖 | pip install openpyxl 后重跑 |
单行日期/数值格式错误不中断整份台账:该格转【待填】红字并在备注注明原因,汇总页计入清点;文件级错误才整体退出。
字段与判定口径
- ① 设备质控检测登记(15 列):序号 / 设备名称 / 设备编号 / 型号 / 机房号 / 检测类别 / 检测项目 / 检测日期 / 检测机构 / 结论 / 不合格项 / 处置措施 / 处置完成日期 / 经办人(工号) / 备注
- ② 检测到期提醒(11 列):序号 / 设备名称 / 设备编号 / 机房号 / 检测类别 / 上次检测日期 / 检测周期(月) / 下次到期日(推算) / 距基准日(天) / 状态 / 备注
- ③ 场所防护检测登记(12 列):序号 / 机房号 / 检测点位 / 检测项目 / 检测日期 / 检测机构 / 检测结果 / 单位 / 标准限值 / 是否超标 / 复测日期 / 备注
- ④ 年度汇总(9 列明细):序号 / 设备名称 / 设备编号 / 机房号 / 检测类别 / 检测日期 / 检测机构 / 结论 / 备注(输入 JSON 可加
protection数组,按③格式)
异常行整行标红(写入备注 ⚠️ 提示,人工核对):
- 设备质控登记:结论=不合格 且 不合格项缺失|结论=不合格 且 处置措施缺失(整行标红+缺失项【待填】)|处置完成日期早于检测日期
- 检测到期提醒:推算下次到期日早于基准日期(超期)|距下次到期日 ≤ --alert-days(临期,缺省 30 天)
- 场所防护登记:是否超标=是(整行标红)|超标且复测日期缺失|勾稽矛盾——填「否」但抄录结果大于标准限值
- 年度汇总:检测日期缺失(视为应检未检)
软提示(备注 ℹ️ 提示,不标红):检测类别不在状态检测/稳定性检测/应用质量性能检测之列、结论不是「合格/不合格」、日期/数值格式无法识别(该格转【待填】)、结果与限值齐全但「是否超标」未填(提示按报告结论补填,工具不代判)、周期列未填且未给 --cycle(未推算未判定,提示以现行放射诊疗法规标准和本院制度为准)、标准限值未填(工具不内置限值)。
- 【待填】单元格红字标红,汇总页清点数量并提示「未补齐视为登记未完成」
- 下次到期日/距基准日(天)/到期状态为纯推算(源自上次检测日期+周期+基准日期),输入不全则为【待填】,绝不代填;检测周期与预警阈值全部来自输入参数(行内「检测周期(月)」列或
--cycle、--alert-days),工具不内置默认周期,未提供不判定 - 检测结果/标准限值支持小数(如 0.18 / 2.5);日期支持
2026-03-15/2026.3.15/2026/3/15/2026年3月15日/20260315 - 人员标识只能填工号,设备/机房只能填设备编号/机房号;
--input的 JSON 里也可写"preset": "场景名"自动选路
铁律(医疗合规四关)
- 只做记录台账,不碰性能评价与诊疗决策:检测记录、结论、限值全部由检测报告抄录输入;本工具不做设备性能评价结论、不出具检测报告、不判断设备能否继续使用(以检测机构报告与本院制度为准)、不碰任何诊疗决策
- 隐私硬拦截:脚本检测到姓名明文(患者/病人+姓名、「张三」「李某某」式结构)、身份证号、手机号 → 退出码 13 直接拒绝处理(错误提示不回显敏感值);工号/机房号/设备编号允许;「患者通道」「防护检测」等业务词白名单防误拦;检测结果与限值是点位/设备数据,不含个人信息
- 数据不出机:台账本地生成,无网络请求;检测数据按院内数据管理规定流转
- 不编造不代填不代判:数值/日期缺失一律【待填】标红,汇总页清点;是否超标按检测报告抄录,工具只在结果与限值齐全且填「否」时提示勾稽矛盾,绝不代判超标;到期推算只做纯算术(上次日期+周期),周期缺失不判定
能力边界量化表
| 能做 | 不做(明确边界) |
|---|---|
| 四场景检测台账生成(xlsx 双表,可打印归档):质控登记/到期提醒/防护登记/年度汇总 | 不出具检测报告、不做设备性能评价结论——检测报告只能由具备资质的检测机构出具 |
| 异常行整行标红(不合格缺处置、防护超标、超标缺复测日期、勾稽矛盾) | 不判断设备能否继续使用、不安排停用/维修决定(处置以本院制度与检测机构建议为准) |
| 到期推算与临期/超期清单(周期与阈值全参数化,不内置默认周期) | 不内置检测周期与标准限值数字;周期/限值/类别要求以现行放射诊疗法规标准和本院制度为准 |
| 设备×检测类别透视、不合格/防护超标/应检未检清单 | 不替代放射诊疗质量控制系统或设备管理系统:无审批流、无整改闭环流程、无监管报送接口 |
| 【待填】清点与补填提示(不代填、不代判超标) | 不校验检测数据真伪(报告真伪与资质核验须人工核对) |
| 隐私拦截(退出码 13,业务词白名单防误拦) | 不识别或处理影像/扫描件/PDF 报告;输入仅支持 JSON 文本 |
| 本地生成、数据不出机 | 不做通用计量检定(→equipment-calibration-log)、不做个人剂量监测(→radiation-dose-log)、不引用法规具体条款号 |
岗位场景例子
- 放射科设备员:「上级检测机构刚做完状态检测,报告要归档」→ 选 ① → 逐台登记,不合格缺处置自动标红
- 设备科质控专员:「哪些设备快到检测周期了?」→ 选 ② →
--date给基准日期、--cycle/--alert-days定周期与阈值,超期/临期清单直接出 - 防护负责人:「机房防护检测点位结果要留档」→ 选 ③ → 逐点位抄录结果与限值,超标行标红、复测日期【待填】盯办
- 年底迎检:「全年质控和防护检测要一张汇总」→ 选 ④ → 设备×检测类别透视 + 不合格/超标/应检未检三张清单
边界提醒
- 本工具不替代放射诊疗质量控制系统/设备管理系统;检测报告原件按院内档案要求归档,台账仅作登记留痕与时限跟踪
- 检测类别(状态检测/稳定性检测/应用质量性能检测)、检测周期、场所防护限值的具体要求以现行放射诊疗法规标准和本院制度为准(本工具不引用具体条款号、不内置周期与限值数字)
- 台账里不得出现患者/受检者姓名——脚本对姓名明文/身份证/手机号硬拦截(退出码 13);设备编号、机房号、工号可用
- 分工提醒:通用计量检定找 equipment-calibration-log,放射工作人员个人剂量监测找 radiation-dose-log,本工具只管设备性能质控检测与场所防护检测
文件索引
| 文件 | 用途 |
|---|---|
| scripts/make_radiation_equipment_qc_log.py | 核心:CLI 成稿 + 四场景判定 + 异常标红 + 到期推算(参数化) + 隐私拦截 + 错误码兜底 |
| references/radiation-qc-guide.md | 检测记录实践参考:检测类别口径/防护点位登记/到期跟踪/年度汇总台账口径 |
| assets/faq.md | 高频问答:场景选择/周期/隐私拦截/骨架回读/应检未检口径等 12 问 |
| assets/anti-patterns.md | 反模式清单:8 条「错误用法→后果→正确做法」 |
| beta-test/run_tests.py | 内测回归脚本(隐私拦截/退出码/异常标红/到期推算参数化/待填不编造等) |
FAQ:被 13 拒绝→去敏感信息只留工号|日期格式→见「字段与判定口径」|标红含义→见「异常行整行标红」|周期怎么定→--cycle/行内列,以现行标准和本院制度为准。