培训签到考核登记台账生成器(training-attendance-log)
一句话结论:给你一张能直接交科教/护理部督查的院内培训登记台账——四场景(签到/考核成绩/缺训补训/月度汇总)自动勾稽,异常行整行标红(工号缺失、成绩超范围、实到>应到、合格>参考),缺训未补整行黄色预警,覆盖率/合格率自动算,【待填】红字清点,缺什么一眼看到。
本页导航:菜单式选路 → 对话示例 → 快速上手与输出预览 → 退出码表 → 字段与判定口径 → 铁律(医疗合规四关)→ 能力边界量化表 → 岗位场景例子 → 边界提醒 → 文件索引。
菜单式选路
使用者开口后按场景引导,一次一问补要素:
第一步 · 选场景(回复序号或场景名均可):
- ① 签到登记(按场次逐人记:日期、培训主题、科室、工号、签到时间、签到状态)
- ② 考核成绩登记(按场次逐人记:考核形式、成绩——只抄录,合格(参考)列按 --pass-line 自动标注)
- ③ 缺训补训跟踪(缺训人员记:缺训原因、计划/实际补训日期;无实际补训日期即黄色预警)
- ④ 月度汇总(按场次记:应到/实到、参考/合格、未补训人数;覆盖率/合格率自动算)
第二步 · 给数据(任选一种):
1. 粘贴/口述登记记录(按场景逐行给:日期、培训主题、工号、成绩、补训日期……缺的项不用编)
2. --preset 场景名 --save 骨架.json 生成填写骨架,填好 --input 回来
3. --demo 先看脱敏样例长什么样
4. 直接要空模板(8 行【待填】占位)
第三步 · 出台账:xlsx 双表 = 登记明细(异常行整行标红 + 缺训未补黄色预警 + 【待填】红字 + 冻结表头)+ 统计汇总(异常清单/预警清单/【待填】清点/隐私与合规提示)。
不知道选什么?直接说需求,我给你列选项,回个序号就出表。
对话示例
> 用户:护理部要交三季度的培训签到台账
> 助手:好的,先选场景(回序号或场景名):①签到登记 ②考核成绩登记 ③缺训补训跟踪 ④月度汇总
> 用户:1
> 助手:好的,签到登记。按场次逐人给数据,一次一行,缺的跳过不编:
> 1. 日期+培训主题?(示例:2026-10-31 院感防护用品穿脱培训)
> 用户:2026-10-31 院感防护用品穿脱培训,感染科,N1024,14:02 已签到,登记人N2001
> 助手:收到。要素齐全(科室其余人员如未签到不用编状态)。生成台账:1 行,无异常,无【待填】。
快速上手
# 场景菜单
python scripts/make_training_attendance_log.py --presets
# 脱敏示例(--date 固定台账日期,可复现;--pass-line 可改合格参考线,缺省 60)
python scripts/make_training_attendance_log.py --demo --out 台账.xlsx --date 2026-11-01
# 指定场景(回序号 1/2/3/4 或场景名均可)
python scripts/make_training_attendance_log.py --preset 缺训补训跟踪 --out 10月缺训跟踪.xlsx
# 从填写好的骨架生成(骨架里的 date/dept/pass_line 回读生效;命令行同名参数优先级更高)
python scripts/make_training_attendance_log.py --input 骨架.json --out 台账.xlsx
# 空模板(8 行【待填】占位)
python scripts/make_training_attendance_log.py --preset 月度汇总 --out 空模板.xlsx
输出预览
以下为 --preset 缺训补训跟踪 --demo --date 2026-11-01 输出的文本摘录(截取自实际生成的 xlsx 关键单元格;完整摘录与逐格复现命令见 assets/preview.md):
| 序号 | 日期 | 培训主题 | 工号 | 缺训原因 | 计划补训日期 | 实际补训日期 | 补训状态 | 备注 |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-10-31 | 院感防护用品穿脱培训 | N1055 | 当班无法离岗 | 2026-11-05 | 【待填】 | 未补训 | ◐ 缺训未补——请安排补训并在完成后回填实际补训日期(整行标黄) |
| 2 | 2026-10-31 | 院感防护用品穿脱培训 | N1060 | 病假 | 2026-10-28 | 【待填】 | 未补训 | ◐ 缺训未补…;ℹ️ 计划补训日期(2026-10-28)已过仍未补训,请尽快安排(整行标黄) |
| 3 | 2026-09-30 | 心肺复苏季度复训 | N1071 | 夜班 | 2026-10-25 | 2026-10-27 | 已补训 | |
| 5 | 2026-10-31 | 院感防护用品穿脱培训 | 【待填】 | 当班无法离岗 | 2026-11-08 | 【待填】 | 未补训 | ⚠️ 工号缺失——缺训登记须落到人(只收工号,不收姓名)…(整行标红) |
统计汇总(截取):登记场景=缺训补训跟踪|台账日期=2026-11-01|合格参考线=60 分|登记行数=5|异常行数(红)=1|预警行数(黄,缺训未补)=2|【待填】单元格=5。
退出码表(脚本 scripts/make_training_attendance_log.py,v1.0.0)
| 退出码 | 含义 | 处理 |
|---|---|---|
| 0 | 台账生成成功 | — |
| 10 | 输入文件不存在(沿用现有体系约定) | 核对 --input 路径 |
| 11 | 输入缺失:缺 items / items 非数组 / --save 未指定 --preset |
按 {"items": [ … ]} 结构补齐 |
| 12 | 格式错误:JSON 无法解析 / items 项非对象 / --date / --pass-line 无法识别 |
核对 JSON 语法、日期与阈值格式 |
| 13 | 隐私拦截:输入检测到姓名明文(张三/李某某式)、身份证号、手机号 | 去除敏感个人信息后重试;人员标识只收工号(错误提示不回显敏感值) |
| 14 | 校验失败:预设名不存在 | 见 --presets 菜单(回序号/场景名均可) |
| 15 | 运行超时(60 秒看门狗) | 重跑同一条命令 |
| 20 | 解析失败 / 输出失败等未预期异常(兜底) | 把输入 JSON 与提示发给助手排查 |
| 21 | 缺依赖 | pip install openpyxl 后重跑 |
单行日期/数量格式错误不中断整份台账:该格转【待填】红字并在备注注明原因,汇总页计入清点;文件级错误才整体退出。
字段与判定口径
- ① 签到登记(9 列):序号 / 日期 / 培训主题 / 科室 / 工号 / 签到时间 / 签到状态 / 登记人(工号) / 备注
- ② 考核成绩登记(9 列):序号 / 日期 / 培训主题 / 工号 / 考核形式 / 成绩(分) / 合格(参考) / 登记人(工号) / 备注
- ③ 缺训补训跟踪(10 列):序号 / 日期 / 培训主题 / 工号 / 缺训原因 / 计划补训日期 / 实际补训日期 / 补训状态 / 登记人(工号) / 备注
- ④ 月度汇总(12 列):序号 / 月份 / 培训主题 / 应到人数 / 实到人数 / 覆盖率(%) / 参考人数 / 合格人数 / 合格率(%) / 未补训人数 / 登记人(工号) / 备注
异常行整行标红(写入备注 ⚠️ 提示,人工核对):
- 签到登记:工号缺失(签到须落到人,只收工号)
- 考核成绩登记:培训主题缺失|工号缺失|成绩超出 0–100(成绩只抄录不修改,超出范围请核对抄录)
- 缺训补训跟踪:培训主题缺失|工号缺失
- 月度汇总:培训主题缺失|实到人数 > 应到人数|合格人数 > 参考人数|人数为负
- 各场景通用:数值为负
缺训未补黄色预警(整行标黄,写入备注 ◐ 提示,区别于标红):
- 缺训补训跟踪:无实际补训日期 → 补训状态自动记「未补训」;计划补训日期已过仍未补训,加注 ℹ️ 逾期提醒
- 月度汇总:未补训人数 > 0
软提示(备注 ℹ️ 提示,不标红不标黄):日期/月份格式无法识别、数值无法识别(该格转【待填】);签到状态不在常用词内按原文照登;覆盖率/合格率分母为 0 无法计算。
- 合格(参考)列:成绩 ≥
--pass-line(缺省 60,参数化不硬编)记「是」/低于记「否」——仅算术参考,正式合格判定以考核组织方为准;成绩缺失则该列【待填】 - 覆盖率(%) / 合格率(%):实到÷应到、合格÷参考(纯算术推导,人数抄录),输入不全则为【待填】,绝不代填
- 【待填】单元格红字标红,汇总页清点数量并提示「未补齐视为登记未完成」
- 日期支持
2026-03-15/2026.3.15/2026/3/15/2026年3月15日/20260315,月份可填2026-10/2026年10月 - 人员标识只收工号:脚本对姓名明文/身份证号/手机号是硬拦截(退出码 13);骨架顶层的
date/dept/pass_line回读同样生效(命令行--date/--dept/--pass-line优先级更高)
铁律(医疗合规四关)
- 不出题不判质量不做认定:只做签到/成绩/补训登记台账;出题、培训内容质量评价、资质认定均不属于本工具;成绩只抄录不修改,某场培训办得好不好以科教/护理部与考核组织方为准
- 隐私硬拦截:脚本检测到姓名明文(张三/李某某式)、身份证号、手机号 → 退出码 13 直接拒绝处理(错误提示不回显敏感值);学员/授课人/登记人一律只收工号
- 数据不出机:台账本地生成,无网络请求;培训登记信息按院内数据管理规定流转
- 不编造不代填:成绩、人数、日期等缺失一律【待填】标红,汇总页清点;覆盖率/合格率/补训状态只做算术推导并标注口径,绝不代填数值
能力边界量化表
| 能做 | 不做(明确边界) |
|---|---|
| 四场景登记台账生成(xlsx 双表,可打印归档) | 不替代 OA/培训管理系统:无报名审批、无课程推送、无电子签到对接 |
| 异常行整行标红(工号/主题缺失、成绩超范围、实到>应到、合格>参考) | 不出考题、不组卷、不判培训内容质量与教学效果 |
| 缺训未补黄色预警(未补训/逾期提醒/未补训人数) | 不做资质认定:培训学分与执业资质认定不在本工具范围(学分台账另用 ce-credit-ledger) |
| 覆盖率/合格率/补训状态算术推导(标注口径与来源) | 成绩只抄录:不批卷、不复核真伪、不修改任何分数 |
| 【待填】清点与补填提示(不代填) | 不识别或处理签到照片/扫描件;输入仅支持 JSON 文本 |
| 隐私拦截(退出码 13,人员只收工号);本地生成、数据不出机 | 不引用法规具体条款号;登记口径以本院科教/护理部制度为准 |
岗位场景例子
- 科室教学秘书:「科内培训每次签到表收完就散了」→ 选 ① → 按场次逐人出台账,工号缺失自动标红
- 护士长:「考核成绩要和签到对得上,成绩单只能抄」→ 选 ② → 成绩原样登记,超范围行标红提醒核对抄录
- 教学秘书:「缺训的人要盯着补训」→ 选 ③ → 未补训整行黄色预警,逾期加注提醒,补完回填即消警
- 科教干事:「月底要交覆盖率/合格率汇总」→ 选 ④ → 覆盖率/合格率自动算,未补训人数>0 黄色预警
边界提醒
- 本工具不替代 OA/培训管理系统;纸质签到表与电子台账按院内要求归档
- 与 ce-credit-ledger 划界:培训考勤与考核成绩在本工具登记;继续教育学分(Ⅰ类/Ⅱ类、年度达标线)另用 ce-credit-ledger,两者不互相替代
- 与 preceptor-mentorship-log 划界:院内全员培训在本工具登记;「一带一」的带教 pair、轮转科目与出科考核另用 preceptor-mentorship-log
- 工号列只填工号,不得填写姓名明文——脚本对姓名明文/身份证/手机号是硬拦截(退出码 13)
文件索引
| 文件 | 用途 |
|---|---|
| scripts/make_training_attendance_log.py | 核心:CLI 成稿 + 四场景判定 + 异常标红/黄色预警 + 隐私拦截 + 错误码兜底 |
| references/training-attendance-guide.md | 登记实践参考:签到/成绩抄录/补训跟踪/月度汇总台账口径 |
| assets/faq.md | 常见问题 12 条(隐私拦截/成绩抄录/黄色预警含义/待填卡点/系统边界等) |
| assets/anti-patterns.md | 反模式集中清单(错误操作+后果+替代) |
| assets/preview.md | 成稿预览(真实输出摘录+逐格复现命令) |
| assets/input-example.json | 输入示例(脱敏,可直接 --input 试跑) |
| beta-test/run_tests.py | 内测回归脚本(隐私拦截/退出码/异常标红/黄色预警/待填不编造等) |
FAQ 快捷导航:能帮我出题吗→Q1|没数据能生成吗→Q2|为什么被拒绝(13)→Q3|日期格式→Q4|成绩填错→Q5|黄色预警是什么→Q6|合格(参考)算不算判定→Q7|和培训系统关系→Q8|数据外传→Q9|【待填】算完成吗→Q10|场景怎么选→Q11|和学分/带教台账区别→Q12。