带教登记台账生成器(preceptor-mentorship-log)
一句话结论:给你一张能直接交科教督查的带教登记台账——四场景(带教 pair/轮转科目/出科考核/月度汇总)逐笔留痕,异常行整行标红(双方工号缺失、师生同工号、结束早于开始、出科缺考核成绩),【待填】红字清点,带教关系与轮转去向一眼可查。
本页导航:菜单式选路 → 对话示例 → 快速上手与输出预览 → 退出码表 → 字段与判定口径 → 铁律(医疗合规四关)→ 能力边界量化表 → 岗位场景例子 → 边界提醒 → 文件索引。
菜单式选路
使用者开口后按场景引导,一次一问补要素:
第一步 · 选场景(回复序号或场景名均可):
- ① 带教pair登记(带教老师工号、学员工号、科室、起止日期逐对登记)
- ② 轮转科目登记(学员按月记轮转科目与计划/实际周数,完成情况自动标注)
- ③ 出科考核登记(理论/操作成绩只抄录,合格(参考)列按 --pass-line 自动标注)
- ④ 月度汇总(按科室记:新增带教对数、出科学员数、带教老师数、学员数——均抄录)
第二步 · 给数据(任选一种):
1. 粘贴/口述登记记录(按场景逐行给:起止日期、双方工号、轮转科目、成绩……缺的项不用编)
2. --preset 场景名 --save 骨架.json 生成填写骨架,填好 --input 回来
3. --demo 先看脱敏样例长什么样
4. 直接要空模板(8 行【待填】占位)
第三步 · 出台账:xlsx 双表 = 登记明细(异常行整行标红 + 【待填】红字 + 冻结表头)+ 统计汇总(异常清单/【待填】清点/隐私与合规提示)。
不知道选什么?直接说需求,我给你列选项,回个序号就出表。
对话示例
> 用户:新护士轮转的带教要登记备案
> 助手:好的,先选场景(回序号或场景名):①带教pair登记 ②轮转科目登记 ③出科考核登记 ④月度汇总
> 用户:1
> 助手:好的,带教pair登记。按 pair 逐行给数据,一次一行,缺的跳过不编:
> 1. 开始日期?结束日期(未出科可留空)?
> 用户:2026-09-01 起,还没结束
> 助手:收到。2. 带教老师工号+学员工号?(只收工号)
> 用户:老师 D1001,学员 S2043,心内科,轮转心电监护,登记人 K3001
> 助手:要素齐全(结束日期未出科→【待填】,出科后回填)。生成台账:1 行,无异常,1 个【待填】。
快速上手
# 场景菜单
python scripts/make_preceptor_mentorship_log.py --presets
# 脱敏示例(--date 固定台账日期,可复现;--pass-line 可改合格参考线,缺省 60)
python scripts/make_preceptor_mentorship_log.py --demo --out 台账.xlsx --date 2026-11-01
# 指定场景(回序号 1/2/3/4 或场景名均可)
python scripts/make_preceptor_mentorship_log.py --preset 出科考核登记 --out 10月出科考核.xlsx
# 从填写好的骨架生成(骨架里的 date/dept/pass_line 回读生效;命令行同名参数优先级更高)
python scripts/make_preceptor_mentorship_log.py --input 骨架.json --out 台账.xlsx
# 空模板(8 行【待填】占位)
python scripts/make_preceptor_mentorship_log.py --preset 带教pair登记 --out 空模板.xlsx
输出预览
以下为 --preset 出科考核登记 --demo --date 2026-11-01(合格参考线 60)输出的文本摘录(截取自实际生成的 xlsx 关键单元格;完整摘录与逐格复现命令见 assets/preview.md):
| 序号 | 出科日期 | 学员(工号) | 带教老师(工号) | 轮转科目 | 理论成绩(分) | 操作成绩(分) | 合格(参考) | 备注 |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-10-31 | S2043 | D1001 | 心电监护 | 88 | 92 | 是 | |
| 2 | 2026-10-31 | S2044 | D1002 | 介入护理配合 | 72 | 58 | 否 | ℹ️ 任一成绩低于合格参考线(60)——合格(参考)列仅按 --pass-line 参数作算术参考,正式出科判定以科教与科室考核为准 |
| 4 | 2026-10-31 | S2046 | D1004 | 雾化与气道管理 | 105 | 90 | 【待填】 | ⚠️ 理论成绩(分)(105)超出 0–100 范围,请核对抄录(成绩只抄录不修改)…(整行标红) |
| 5 | 2026-10-31 | S2048 | D1005 | 【待填】 | 【待填】 | 【待填】 | 【待填】 | ⚠️ 轮转科目缺失…;出科缺考核成绩——出科登记须附理论/操作成绩(成绩抄录)…(整行标红) |
统计汇总(截取):登记场景=出科考核登记|台账日期=2026-11-01|合格参考线=60 分|登记行数=5|异常行数(红)=2|【待填】单元格=7。
退出码表(脚本 scripts/make_preceptor_mentorship_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 后重跑 |
单行日期/数量格式错误不中断整份台账:该格转【待填】红字并在备注注明原因,汇总页计入清点;文件级错误才整体退出。
字段与判定口径
- ① 带教pair登记(9 列):序号 / 开始日期 / 结束日期 / 带教老师(工号) / 学员(工号) / 科室 / 轮转科目 / 登记人(工号) / 备注
- ② 轮转科目登记(10 列):序号 / 轮转月份 / 学员(工号) / 带教老师(工号) / 轮转科目 / 计划周数 / 实际周数 / 完成情况 / 登记人(工号) / 备注
- ③ 出科考核登记(10 列):序号 / 出科日期 / 学员(工号) / 带教老师(工号) / 轮转科目 / 理论成绩(分) / 操作成绩(分) / 合格(参考) / 登记人(工号) / 备注
- ④ 月度汇总(9 列):序号 / 月份 / 科室 / 新增带教对数 / 出科学员数 / 带教老师数 / 学员数 / 登记人(工号) / 备注
异常行整行标红(写入备注 ⚠️ 提示,人工核对):
- 带教pair登记:带教老师/学员工号缺失(双方齐全方可追溯)|带教老师与学员为同一工号|结束日期早于开始日期
- 轮转科目登记:带教双方工号缺失|轮转科目缺失|周数为负
- 出科考核登记:学员工号缺失|轮转科目缺失|出科日期已填但理论/操作成绩均缺(出科缺考核成绩)|任一成绩超出 0–100(成绩只抄录不修改)|成绩为负
- 月度汇总:科室缺失|出科学员数 > 学员数|人数为负
- 各场景通用:数值为负
软提示(备注 ℹ️ 提示,不标红):日期/月份格式无法识别、数值无法识别(该格转【待填】);实际周数未填完成情况暂记【待填】;理论/操作只填了一项时合格(参考)暂不判定。
- 带教资质列口径:本工具不设资质判定——带教老师资质以科教备案抄录为准,备案信息可写入备注
- 合格(参考)列:理论、操作成绩均 ≥
--pass-line(缺省 60,参数化不硬编)记「是」,任一低于记「否」——仅算术参考,正式出科判定以科教与科室考核为准;成绩缺失或超范围则该列【待填】 - 完成情况列:实际周数(+计划周数)自动标注,如「实际3周/计划4周」——纯算术推导,输入不全则为【待填】,绝不代填
- 【待填】单元格红字标红,汇总页清点数量并提示「未补齐视为登记未完成」
- 日期支持
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优先级更高)
铁律(医疗合规四关)
- 不做教学评价结论不碰执业注册:只做带教 pair/轮转/出科登记台账;教学质量好不好、学员能不能注册执业,以科教与卫生主管部门为准,台账只做留痕
- 隐私硬拦截:脚本检测到姓名明文(张三/李某某式)、身份证号、手机号 → 退出码 13 直接拒绝处理(错误提示不回显敏感值);带教老师/学员一律只收工号
- 数据不出机:台账本地生成,无网络请求;带教登记信息按院内数据管理规定流转
- 不编造不代填:成绩、周数、日期等缺失一律【待填】标红,汇总页清点;完成情况/合格(参考)只做算术推导并标注口径,绝不代填数值;带教资质与出科结论只抄录不生成
能力边界量化表
| 能做 | 不做(明确边界) |
|---|---|
| 四场景登记台账生成(xlsx 双表,可打印归档) | 不替代科教管理系统:无师资审批、无轮转排班联动、无注册对接 |
| 异常行整行标红(双方工号缺失、师生同工号、日期倒挂、出科缺考核、成绩超范围) | 不做教学评价结论:带教质量、教学满意度评价不属于本工具 |
| 完成情况/合格(参考)算术标注(标注口径与来源) | 不碰学员执业注册:注册条件与流程以卫生主管部门规定为准 |
| 出科考核成绩只抄录(超范围标红提醒核对,不改数) | 不做带教资质认定:资质以科教备案为准,台账只抄录备案结论 |
| 【待填】清点与补填提示(不代填) | 不识别或处理扫描件/照片;输入仅支持 JSON 文本 |
| 隐私拦截(退出码 13,师生只收工号);本地生成、数据不出机 | 不引用法规具体条款号;登记口径以本院科教管理制度为准 |
岗位场景例子
- 科室教学秘书:「新来的规培/进修学员要一个老师带一个,备着查」→ 选 ① → pair 逐对登记,师生同工号、缺一方自动标红
- 科教干事:「轮转科目和周数要逐人可查」→ 选 ② → 完成情况自动标注,科目缺失标红
- 护士长:「学员出科,成绩单抄进来备查」→ 选 ③ → 成绩只抄录,出科没附成绩的行标红
- 科教干事:「月底交带教汇总」→ 选 ④ → 按科室抄录对数与人数,口径异常标红
边界提醒
- 本工具不替代科教管理系统;带教手册/轮转表按院内要求归档
- 与 training-attendance-log 划界:院内全员培训(签到/考核/补训)用 training-attendance-log;「一带一」的带教 pair、轮转科目与出科考核在本工具登记
- 与 ce-credit-ledger 划界:学员/老师个人的继续教育学分(Ⅰ类/Ⅱ类、年度达标线)用 ce-credit-ledger,与本台账互不替代
- 工号列只填工号,不得填写姓名明文——脚本对姓名明文/身份证/手机号是硬拦截(退出码 13);带教老师资质信息以科教备案抄录为准,本工具不生成也不判断
文件索引
| 文件 | 用途 |
|---|---|
| scripts/make_preceptor_mentorship_log.py | 核心:CLI 成稿 + 四场景判定 + 异常标红 + 隐私拦截 + 错误码兜底 |
| references/preceptor-mentorship-guide.md | 带教登记实践参考:pair 备案/轮转登记/出科考核/月度汇总台账口径 |
| 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。