退费登记台账生成器(refund-register-log)
一句话结论:给你一张能直接留痕备查的退费登记台账——四场景(逐笔登记/审批跟踪/科室汇总/全院总汇)逐笔可追溯,审批缺失整行标红,大额退费按 --limit-yuan 阈值提示,退费率自动算(基数只抄录),【待填】红字清点,缺什么一眼看到。
本页导航:菜单式选路 → 对话示例 → 快速上手与退出码表 → 字段与判定口径 → 铁律(医疗合规四关)→ 能力边界量化表 → 岗位场景例子 → 边界提醒 → 文件索引。
菜单式选路
使用者开口后按场景引导,一次一问补要素:
第一步 · 选场景(回复序号或场景名均可):
- ① 退费登记(逐笔:退费单号/科室/原收费项目/退费金额(单据抄录)/退费原因(申请人描述抄录)/审批人(工号),缺审批标红、大额退费提示)
- ② 审批跟踪(审批状态逐笔留痕:待审批/已审批/已驳回,状态为已审批而审批人缺失标红)
- ③ 科室月度汇总(按科室:退费笔数/退费金额合计/同期收费额(只抄录)/退费率自动算,超 100% 标红)
- ④ 月度退费总汇(全院按月:退费笔数/退费金额合计/同期收费额(只抄录)/退费率自动算/大额退费笔数)
第二步 · 给数据(任选一种):
1. 粘贴/口述退费记录(按场景逐行给:退费单号、科室、金额、原因、审批人工号……缺的项不用编)
2. --preset 场景名 --save 骨架.json 生成填写骨架,填好 --input 回来
3. --demo 先看脱敏样例长什么样
4. 直接要空模板(8 行【待填】占位)
第三步 · 出台账:xlsx 双表 = 登记明细(异常行整行标红 + 【待填】红字 + 冻结表头)+ 统计汇总(异常清单/【待填】清点/大额退费阈值/隐私与合规提示)。
不知道选什么?直接说需求,我给你列选项,回个序号就出表。
对话示例
> 用户:帮我弄个退费登记表
> 助手:好的,先选场景(回序号或场景名):①退费登记 ②审批跟踪 ③科室月度汇总 ④月度退费总汇
> 用户:1
> 助手:好的,退费登记。请按笔给数据,一次一笔,缺的跳过不编:
> 1. 退费日期+退费单号?2. 科室+原收费项目?(示例:2026-11-01 TF-1101-001 门诊检验科 血常规检验)
> 用户:2026-11-01 TF-1101-001 门诊检验科 血常规检验,退 18 元,原因是重复收费,审批人 F3001
> 助手:要素齐全(一句话直通车确认:金额 18.00 未达大额阈值——如需大额提示请用 --limit-yuan 指定阈值)。生成台账:1 行,无异常,0 个【待填】。
快速上手
# 场景菜单
python scripts/make_refund_register_log.py --presets
# 脱敏示例(--date 固定台账日期;--limit-yuan 指定大额退费阈值,可复现)
python scripts/make_refund_register_log.py --demo --out 台账.xlsx --date 2026-11-01 --limit-yuan 500
# 指定场景(回序号 1/2/3/4 或场景名均可)
python scripts/make_refund_register_log.py --preset 审批跟踪 --out 10月审批跟踪.xlsx
# 从填写好的骨架生成(--limit-yuan 指定大额退费阈值,单位元)
python scripts/make_refund_register_log.py --input 骨架.json --out 台账.xlsx --limit-yuan 1000
# 空模板(8 行【待填】占位)
python scripts/make_refund_register_log.py --preset 科室月度汇总 --out 空模板.xlsx
输出预览
以下为 --demo --date 2026-11-01 --limit-yuan 500(场景① 退费登记)输出的文本摘录(截取自实际生成的 xlsx 关键单元格;完整摘录与逐格复现命令见 assets/preview.md):
| 序号 | 退费日期 | 退费单号 | 科室 | 原收费项目(抄录) | 退费金额(元) | 退费原因(申请人描述抄录) | 审批人(工号) | 备注 |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-10-31 | TF-1031-001 | 门诊检验科 | 血常规检验 | 18.00 | 重复收费,申请退回一笔 | F3001 | |
| 3 | 2026-10-31 | TF-1031-003 | 超声诊断科 | 腹部彩超 | 680.00 | 项目调整,改开其他检查 | F3002 | ⚠️ 大额退费提示:退费金额(680.00元)达到大额阈值(500元)…(整行标红) |
| 4 | 2026-10-31 | TF-1031-004 | 药学部 | 阿莫西林胶囊 | 26.50 | 药品未取,申请退费 | 【待填】 | ⚠️ 退费审批缺失(审批人(工号)未填)…(整行标红) |
| 5 | 2026-10-31 | 【待填】 | 皮肤科 | 激光治疗 | 1200.00 | 治疗取消,申请全额退费 | F3002 | ⚠️ 退费单号缺失…;大额退费提示…(整行标红) |
统计汇总(截取前几行):登记场景=退费登记|台账日期=2026-11-01|大额退费阈值(元)=500(--limit-yuan 指定)|登记行数=6|异常行数(红)=3|【待填】单元格=2。
退出码表(脚本 scripts/make_refund_register_log.py,v1.0.0)
| 退出码 | 含义 | 处理 |
|---|---|---|
| 0 | 台账生成成功 | — |
| 10 | 输入文件不存在(沿用现有体系约定) | 核对 --input 路径 |
| 11 | 输入缺失:缺 items / items 非数组 / --save 未指定 --preset |
按 {"items": [ … ]} 结构补齐 |
| 12 | 格式错误:JSON 无法解析 / items 项非对象 / --date 或 --limit-yuan 无法识别 |
核对 JSON 语法与日期/阈值格式(阈值须为 >0 数值) |
| 13 | 隐私拦截:输入检测到姓名明文(退款人张三/张某某式)、身份证号、手机号 | 去除敏感个人信息后重试;人员标识仅可用工号/单号(错误提示不回显敏感值) |
| 14 | 校验失败:预设名不存在 | 见 --presets 菜单(回序号/场景名均可) |
| 15 | 运行超时(60 秒看门狗) | 重跑同一条命令 |
| 20 | 解析失败 / 输出失败等未预期异常(兜底) | 把输入 JSON 与提示发给助手排查 |
| 21 | 缺依赖 | pip install openpyxl 后重跑 |
单行日期/金额格式错误不中断整份台账:该格转【待填】红字并在备注注明原因,汇总页计入清点;文件级错误才整体退出。
字段与判定口径
- ① 退费登记(9 列):序号 / 退费日期 / 退费单号 / 科室 / 原收费项目(抄录) / 退费金额(元)(单据抄录) / 退费原因(申请人描述抄录) / 审批人(工号) / 备注
- ② 审批跟踪(9 列):序号 / 退费单号 / 退费日期 / 科室 / 原收费项目(抄录) / 退费金额(元) / 审批状态(抄录:待审批/已审批/已驳回) / 审批人(工号) / 备注
- ③ 科室月度汇总(8 列):序号 / 月份 / 科室 / 退费笔数 / 退费金额合计(元) / 同期收费额(元)(抄录) / 退费率 / 备注
- ④ 月度退费总汇(8 列):序号 / 月份 / 退费笔数 / 退费金额合计(元) / 同期收费额(元)(抄录) / 退费率 / 大额退费笔数 / 备注
异常行整行标红(写入备注 ⚠️ 提示,人工核对):
- 退费登记:退费审批缺失(审批人(工号)未填——退费是否准许以审批环节意见为准)|退费单号缺失|退费金额为负数|大额退费提示(退费金额 ≥ 大额阈值,阈值用 --limit-yuan 参数给定,不给定则不启用)
- 审批跟踪:登记为已审批但审批人(工号)缺失|退费单号缺失|金额为负数|大额退费提示(同上)
- 科室月度汇总/月度退费总汇:退费率超过 100%(同期收费额低于退费金额,请核对抄录基数)|金额/笔数为负数
软提示(备注 ℹ️ 提示,不标红):日期/月份格式无法识别、数值无法识别(该格转【待填】);待审批状态留痕提示;退费率 ≥10% 的关注提示(「不构成结论」)。
- 【待填】单元格红字标红,汇总页清点数量并提示「未补齐视为登记未完成」
- 退费率 = 退费金额 ÷ 同期收费额 × 100%,纯算术推导自动计算(保留两位小数);同期收费额为基数只抄录,缺失或为 0 时退费率记【待填】并提示核对,绝不代填基数
- 金额支持整数/小数(单位元);日期支持
2026-03-15/2026.3.15/2026/3/15/2026年3月15日/20260315,月份可直接填2026-10/2026年10月 - 人员标识只能填工号/单号;工具默认场景为①退费登记,
--input的 JSON 里也可写"preset": "场景名"自动选路;骨架顶层的date/dept/limit_yuan回读时同样生效(命令行--date/--dept/--limit-yuan优先级更高,同时给出时覆盖骨架值)
铁律(医疗合规四关)
- 不执行退费操作、不判退费合理性、不碰诊疗费争议裁定:只做退费登记台账;某笔退费该不该退、金额对不对,以审批环节意见和本院财务与退费管理制度为准,台账只做登记留痕
- 隐私硬拦截:脚本检测到姓名明文(含「退款人张三」「张某某」式结构)、身份证号、手机号 → 退出码 13 直接拒绝处理(错误提示不回显敏感值);人员标识仅可用工号/单号
- 数据不出机:台账本地生成,无网络请求;退费登记信息按院内数据安全管理规定流转
- 不编造不代填:退费金额与退费原因全部由单据/申请人描述抄录,缺失一律【待填】标红,汇总页清点;退费率只做算术推导(基数抄录),绝不代填数值
能力边界量化表
| 能做 | 不做(明确边界) |
|---|---|
| 四场景退费登记台账生成(xlsx 双表,可打印归档) | 不执行退费操作:不发起退款、不改动收费系统数据、不动资金 |
| 退费审批缺失标红(审批留痕闭环) | 不判退费合理性:该不该退由审批环节定,工具不出结论 |
| 退费率自动计算(退费额÷同期收费额,基数只抄录) | 不碰诊疗费争议裁定:诊疗争议走医疗纠纷处理流程,与退费登记分离 |
大额退费提示(阈值 --limit-yuan 参数化) |
不替代收费/退费系统:无审批流、无支付渠道对接、无自动对账 |
| 【待填】清点与补填提示(不代填) | 不校验单据真伪(退费单与审批单核对须人工完成) |
| 隐私拦截(退出码 13,姓名明文/身份证/手机号) | 不识别或处理单据影像;输入仅支持 JSON 文本 |
岗位场景例子
- 收费处内勤:「今天有 5 笔退费要登记留痕」→ 选 ① → 逐笔登记,缺审批人的行直接红
- 财务物价科退费岗:「月底要对审批中的退费」→ 选 ② → 已审批而审批人缺失的行标红,待审批留痕
- 科室财务对接人:「我们科这个月退费情况汇总」→ 选 ③ → 退费率自动算,基数只抄系统数
- 财务科月底:「全院退费总汇交科长」→ 选 ④ → 退费率 + 大额退费笔数 + 【待填】清点
边界提醒
- 本工具不替代收费/退费系统的审批流与支付流程;台账按院内财务档案要求归档
- 大额退费提示只按阈值提醒复核,不构成对该笔退费的合理性判断——是否准许以审批环节意见为准
- 退费原因列只做申请人描述的抄录,不加工、不定性;诊疗费争议走医疗纠纷处理流程,本工具不参与裁定
- 退费单号/审批人(工号)列只填单号与工号,不得填写姓名明文——脚本对姓名明文/身份证/手机号是硬拦截(退出码 13)
文件索引
| 文件 | 用途 |
|---|---|
| scripts/make_refund_register_log.py | 核心:CLI 成稿 + 四场景判定 + 审批缺失标红 + 大额提示(--limit-yuan 参数化)+ 退费率自动算 + 隐私拦截 + 错误码兜底 |
| references/refund-register-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。