病例分析批改技能(抗感染专业)
技能版本:v3.1.3(v3.1.0 新增批改同时同步输出官方《病例分析质量评估表》打分表;v3.0.0 起批注写入统一走融合引擎 scripts/comment_engine.py——全文档遍历 + 对象模型写回 + 精确锚点三合一;基于抗感染专业病例分析语料 + 24 份抗感染/重症指南(与 ICU 专业共享参考指南库)+ 2026 最新版病例分析质量评估表四维度评分。病例分析模板无「带教老师评语」栏,write_summary=False,意见全部以批注气泡给出。批改规则与评分标准同源)
触发关键词:批改病例分析、抗感染病例分析、抗菌药物病例分析、病例讨论、感染病例、病例分析批注、临床药师带教
技能作者
抗感染带教老师(上海交通大学医学院附属瑞金医院 抗感染专业临床药师)
概述
本技能用于批改抗感染专业临床药师规范化培训学员的病例分析作业。基于《病例分析质量评价要点》与 2026 最新版《病例分析质量评估表》四维度 ABCD 评分标准,结合抗感染专业病例分析批改经验,提炼出系统的批改标准和反馈模式。
核心能力
| 维度 | 说明 |
|---|---|
| 评分体系 | 四维度 ABCD 等级评分(基本要求30 + 病例概述30 + 分析总结30 + 参考文献10 = 100 分) |
| 检查项 | 病例选择(药学事件)、药品名称/剂量规范、抗感染方案分析深度、病原菌与药敏、TDM、ADR 判定与具体数值、循证依据、参考文献、总结质量 |
| 数据基础 | 抗感染专业病例分析语料(诺卡菌病等) |
| 输出格式 | Word 原生批注气泡(commentRangeStart/End/Reference);不写入评语(病例分析模板无评语栏) |
评分规则(2026最新版《病例分析质量评估表》)
四维度ABCD等级评分,总分100分:
| 维度 | 分值 | 评估要点 | A | B | C | D |
|---|---|---|---|---|---|---|
| 基本要求 | 30 | 应针对明确的药物治疗事件展开讨论,并注明主要参考文献 | 30-26 | 25-22 | 21-18 | 17-0 |
| 病例概述 | 30 | ①题目与文章内容一致,简洁清晰;②前言介绍背景,阐明讨论目的;③病史摘要详略得当,与讨论问题有关的内容详细介绍,条理清晰;④药物治疗过程和疾病发展变化过程按时间顺序详细叙述,使用医药学专业用语,不遗漏主要阳性体征与检查结果,如实描述临床药师参与情况 | 30-26 | 26-22 | 21-18 | 17-0 |
| 分析总结 | 30 | ①对药物治疗事件有深入的、针对性的分析讨论,逻辑清晰,有理有据,体现循证医学原则;②总结内容与分析讨论紧密结合,从讨论中得出结论;③有临床药师在药物治疗事件中所起作用的总结和体会 | 30-26 | 26-22 | 21-18 | 17-0 |
| 参考文献 | 10 | ①引用准确,文中标注清楚,著录格式统一、规范;②注意引用文献质量,重视时效性及权威性 | 10-9 | 8-7 | 6-5 | 4-0 |
评分等级:
| 总分 | 等级 | 说明 |
|---|---|---|
| ≥85 | 优秀 | 可作为优秀范例 |
| 70-84 | 合格 | 基本符合要求,需小幅改进 |
| <70 | 不合格 | 需大幅改进 |
> 批改时先逐维度检查确定 ABCD 等级,再汇总得分定级。下方评分标准速查表作为各维度定级参考。
评分标准速查(高频问题基于抗感染病例分析批改统计)
| 维度 | 评价指标 | 高频问题 |
|---|---|---|
| 基本要求 | 专业用语规范(中文全称+英文缩写) | 首次出现英文缩写未标注中文全称 |
| 药物名称使用通用名 | 单独使用商品名 | |
| 针对明确的药物治疗事件展开讨论 | 病例无药学事件(最严重) | |
| 主要参考文献注明 | 缺参考文献 / 参考文献格式欠妥 | |
| 病例概述 | 病史内容与讨论问题匹配 | 病史冗长需精简凝练、冗余未删 |
| 药物治疗过程按时间顺序叙述 | 用表格/列表而非连续文字 | |
| 相关药物治疗情况描述清晰 | 抗菌药剂量不准确(缺 mg/g) | |
| 主要阳性体征/检查结果无缺项 | 缺检验项目及日期、缺具体检验值 | |
| 分析总结 | 讨论问题利于展开深入分析 | 分析 vs 过程描述混淆 |
| 论据充分、逻辑清晰 | 需结合患者具体情况分析;未结合药敏 | |
| 体现循证医学原则 | 缺文献支持或引用不当 | |
| 总结体现临床药师作用与体会 | 总结缺乏药师视角 |
> 完整评分细则、等级划分和评分示例 → references/批改标准详解.md
批改 SOP
Step 0: 读取原文(🛑 文本抽取陷阱,必读)
抽取丢字会直接导致误批! Word/WPS 的可见字符不只存在于 <w:t>。若只用
re.findall(r'<w:t[^>]*>([^<]*)</w:t>') 抽取,下列 run 级元素会被静默丢弃:
| 元素 | 含义 | 显示为 | 丢弃后的后果(真实案例) |
|---|---|---|---|
<w:noBreakHyphen/> |
不换行连字符(Ctrl+Shift+-;WPS 中直接打 - 也常存为此元素) |
- |
d1-d3→d1d3;2-8mg/L→28mg/L;SMZ-TMP→SMZTMP |
<w:softHyphen/> |
可选连字符 | 不显示 | 一般无影响,忽略即可 |
<w:sym w:char="XXXX"/> |
符号字符(十六进制码位) | 对应符号 | 字符消失 |
<w:tab/>、<w:ptab/> |
制表符 | 空白 | 文本粘连 |
<w:br/>、<w:cr/> |
换行 | 换行 | 两行并作一行 |
⚠️ 另有隐蔽 bug:<w:t[^>]*> 会把 <w:tab/> 误认为 <w:t …> 的开标签并吞掉后续文本,
正确写法是 <w:t(?:\s[^>]*)?>。
做法:统一用 scripts/comment_engine.py 的 para_text() 取证
import importlib.util
spec = importlib.util.spec_from_file_location('ce', r'<技能目录>\scripts\comment_engine.py')
CE = importlib.util.module_from_spec(spec); spec.loader.exec_module(CE)
text = CE.para_text(paragraph) # 按文档顺序还原 <w:t> + 连字符/符号/制表/换行
强制核对规则(防止误批)
- 抽取文本出现下列任一情形时,先怀疑丢字,不得直接下结论:
- 「每 N 天 / 周」的 N 为多位数
- 纯数字日期:20260823、20251027、202408
- 术语/药名/剂量缺连字符:2-8mg/L→28mg/L、SMZ-TMP→SMZTMP、d1-d3
- 文献年卷期页码连写:241256、14891496 - 核对方法:回查该段
document.xml是否含<w:noBreakHyphen/>、<w:sym等元素,或用para_text()重新抽取比对。 - 在确认原文之前,严禁写出「缺连接符 / 漏字 / 笔误 / 日期格式不规范」类批注
—— 学员用q12h、d1-d3、2-8mg/L、SMZ-TMP表示给药方案是规范写法,不得因此批注。 - 发现旧文本与
para_text()结果不一致时,一律以后者为准重新判断。
Step 1: 病例选择评估(最高权重)
输入:学员病例分析全文(docx)
判定规则:
- ✅ 合格:有明确的药学事件(抗感染方案选择/调整、ADR、耐药菌处理、TDM 问题、药物相互作用、特殊人群用药、超说明书用药等)
- ❌ 不合格:对疾病治疗方案综述,无具体药学事件,可套用于任何案例
输出:如不合格 → 直接批注建议更换案例,以下步骤对该项不再评分
Step 2: 结构完整性检查
输入:学员原文
按标准结构模板逐项检查(详见 references/批改标准详解.md 二、结构规范):
1. 前言(疾病概述 + 案例背景 + 分析要点)
2. 病史摘要(一般信息→主诉→现病史→既往史→入院诊断→治疗经过)
3. 分析与讨论(药学事件描述→原因分析→相关性判断→处理方案)
4. 总结与体会(结论 + 药师作用 + 心得)
⚠️ 抗感染病例分析特有结构问题(高频):
- 治疗过程用表格/列表罗列而非连续文字 → 批注「需整理成连续文字」
- 冗余内容未删除 → 批注「删去」
- 分析过程 vs 治疗经过混淆 → 批注「此为分析过程,治疗经过应该放入上述治疗过程」
Step 3: 逐段详细批注
输入:Step 2 通过的原文
按以下优先级逐项批注:
必查项(极高频):
- [ ] 参考文献是否规范标注(缺参考文献 / 参考文献格式)
- [ ] 药物名称是否用通用名、首次出现是否中文全称
- [ ] 抗菌药物剂量是否准确(mg/g)
- [ ] 是否结合患者具体情况分析(而非大段引用指南/文献/说明书)
- [ ] 治疗过程是否用连续文字
- [ ] 年月日格式是否完整
重点查(高频):
- [ ] 病原菌/感染部位是否明确("药敏""敏感")
- [ ] TDM 是否提及(利奈唑胺 2–8 mg/L、万古霉素等)
- [ ] ADR 是否做因果判断 + 具体数值("血小板计数150×10⁹/L,较用药前明显下降")
- [ ] 方案调整是否给具体建议("停用利奈唑胺,改为米诺环素")
- [ ] 辅助检查是否标注项目名称 + 日期 + 具体检验值("实验室检查结果")
- [ ] 首次出现英文缩写是否标注中文全称
常规查(中频):
- [ ] 总结是否体现临床药师作用与体会
- [ ] 病史/辅助检查是否冗长需精简凝练
- [ ] 循证依据是否充分(缺文献支持 / 引用不当)
- [ ] 结构是否清晰
批注原则:
- (依据纪律)每条批注必须能映射到本 SOP / 评分标准 / 关键批改规则中的既有条目,严禁自创判定标准;引用具体例子时必须核对同一份原文,禁止跨文件搬运示例;清单未覆盖的问题先列为待确认项,由带教老师确认后再纳入
- 同一术语问题仅批注 1 次,附"下同"
- 商品名 + 通用名同时出现不批注
- 连续引用超过 10 行且未结合患者 → 批注"不要大段引用指南、文献,需要结合患者"
> 完整批注措辞库 → references/批注措辞模板.md
Step 4: 生成Word批注输出
输入:所有批注内容列表
统一调用融合引擎 scripts/comment_engine.py(v3.0.0 起),三家长处合一:
import importlib.util
spec = importlib.util.spec_from_file_location('ce', r'<技能目录>\scripts\comment_engine.py')
CE = importlib.util.module_from_spec(spec); spec.loader.exec_module(CE)
report = CE.grade(
source_path, output_path,
comments_data, # [(anchor, comment_text)] 或 [(anchor, comment_text, mode)]
author='抗感染带教老师', initials='抗感染带教老师',
write_summary=False, # 病例分析模板无评语栏,不写评语
)
# report: {"total","inserted","missed","ambiguous","degraded","summary_written"}
- 全文档遍历(正文 + 所有表格含嵌套表格)+ 对象模型写回(python-docx 官方
Comments.add_comment())+ 精确锚点(missed/ambiguous/degraded 显式上报)
输出验证:运行 python scripts/validate.py <输出文件> 抗感染带教老师 检查 docx 有效性、批注数量、comments.xml 完整性、批注署名合规性
同步输出质量评估表(打分表)
批改完成、输出批改 Word 后,同步生成对应的官方《病例分析质量评估表》打分表(附件1-4,xlsx)。
- 模板:内嵌于
scripts/template_data.py(官方评估表原文件 base64,与官方 .xlsx 逐字节一致)——因上传平台(SkillHub 等)的文件类型白名单不含 .xlsx,技能包内不再携带 .xlsx;调用时template_path=None即自动使用内嵌模板(若显式传入一个存在的 .xlsx 路径,则优先用该文件) - 做法:以模板为底,复制后仅写入四个评分维度的「得分」列(G4:G7);总分列 G8 保留模板求和公式,由 Excel/WPS 打开时自动计算;标题、评估要点原文、分值区间、边框、列宽、行高、合并单元格等格式 100% 保留,不新增、不删除模板任何文字
- 四个维度及满分:
| 维度 | 满分 |
|------|------|
| 基本要求 | 30 |
| 病例概述 | 30 |
| 分析总结 | 30 |
| 参考文献 | 10 | - 调用:
python
from scoring_sheet import write_score_sheet
write_score_sheet(
template_path=None, # 自动使用 scripts/template_data.py 内嵌的官方模板(包内无需 .xlsx)
output_path=r'<输出目录>\{原文件名}-打分表.xlsx',
scores={'基本要求': N1, '病例概述': N2, '分析总结': N3, '参考文献': N4},
)
- 输出文件:与批改 docx 同名同目录,后缀
-打分表.xlsx;在最终确认步骤中一并展示打分表路径、各维度得分与总分
Step 5: 交付(🛑 不写入评语)
病例分析模板没有独立的「带教老师评语」位置(实测多份样文 0 份含该栏),因此:
- 不写入评语表格、不在文档末尾追加评语段落——全部意见以 Word 原生批注气泡给出
- 评价性内容(病例选择评价、主要问题点、改进方向、鼓励性结语)并入对应位置的批注,不单独成段
- 交付前运行
python scripts/validate.py <输出文件> 抗感染带教老师验证(批注数 > 0 且 ≤ 50、批注署名合规),并确认文件保存至正确路径 - 署名规范校验已默认执行:不传第 2 个参数也会校验「批注 author 须以『带教老师』结尾」且「initials 与 author 一致」;传入第 2 个参数(期望署名,如
XX带教老师)可额外核对是否与本 skill 应署名一致
关键批改规则
ADR 因果判断要素(抗菌药物相关不良反应判定)
| 要素 | 说明 | 典型批注 |
|---|---|---|
| 1. 时间顺序 | 用药时间与 ADR 发生时间的先后关系 | "用药时间与指标异常时间的先后关系?" |
| 2. 已知性 | 该 ADR 是否为已知不良反应(说明书/指南) | "参照药品说明书..." |
| 3. 去激发 | 停药或减量后反应是否减轻/消失 | "是否停用、减量,去激发结果?" |
| 4. 再激发 | 再次使用时是否再次出现(如有) | "再激发结果(如有)?" |
| 5. 排除其他 | 排除疾病本身/其他药物/合并症因素 | "排除其他因素影响?" |
⚠️ 抗感染特有:抗菌药 ADR 常需标注具体表现 + 具体数值 + TDM,如「利奈唑胺致血小板减少(PLT 由 200×10⁹/L 降至 150×10⁹/L,谷浓度 9 mg/L)」,而非只写「血小板下降」。
商品名批注规范
| 场景 | 示例 | 是否批注 |
|---|---|---|
| 通用名单独出现 | "利奈唑胺"、"万古霉素" | ❌ 不批注 |
| 商品名单独出现 | "斯沃"、"美平"、"稳可信" | ✅ 批注 |
| 通用名(商品名) | "利奈唑胺(斯沃)" | ❌ 不批注 |
连续文字 vs 表格罗列
- 病史摘要 / 治疗经过必须用连续文字描述,不可用表格/项目符号罗列
- 出现表格/列表式罗列 → 批注「需整理成连续文字」
- 大段摘抄指南/文献 → 批注「不需要摘抄,需自我总结归纳 1-2 句话」
大段引用判定
- 连续引用指南/文献原文 >10 行 视为大段引用
- 引用后已结合患者分析 → 不批注
- 引用过长且无患者结合 → 批注"不要大段引用指南、文献,需要结合患者"
边界异常处理
| 场景 | 触发条件 | 处理动作 |
|---|---|---|
| 文件不存在 | 用户提供路径打不开 | 提示"文件不存在,请检查路径",停止执行 |
| 文件损坏 | docx 无法解压或 XML 解析失败 | 提示"文件损坏,无法读取",建议用户重新提供 |
| 非病例分析 | 内容结构缺失(无病史/讨论/总结分段) | 提示"此文件可能不是标准病例分析格式",询问是否继续 |
| 无药学事件 | 全文无 ADR/药物相互作用/方案调整 | 在 Step 1 完成后提示"建议更换有药学事件的案例",标记严重扣分 |
| 批注数为 0 | validate.py 显示 0 条批注 | 提示"批改后未生成批注,请检查脚本执行日志" |
| 同名文件冲突 | 输出路径已存在同名文件 | 自动添加序号后缀:-批改(2).docx |
质量检查点
检查点1:Step 2 完成后
在进入逐段批注前,确认:
- [ ] 病例选择合格(有明确药学事件)
- [ ] 结构四部分齐全(前言/病史/讨论/总结)
- [ ] 如不合格,是否已正确标记并跳过后续评分
检查点2:Step 5 完成后
在交付批改结果前,确认:
- [ ] validate.py 验证通过(批注数 > 0 且 ≤ 50)
- [ ] 未写入评语表格 / 未追加评语段落(模板无评语栏,意见全部以批注给出)
- [ ] 文件保存至正确路径,命名规范:{原文件名}-批改.docx
文件操作规范
- 批改文件默认与输入文件同目录保存(不写死绝对路径,便于任意环境即装即用)
- 命名规范:
{原文件名}-批改.docx - 批注作者统一填写:
抗感染带教老师 - 核心脚本:
scripts/comment_engine.py(融合批注写入引擎)、scripts/validate.py(输出完整性验证)、scripts/scoring_sheet.py(打分表输出引擎) - 打分表模板:内嵌于
scripts/template_data.py(官方附件1-4原表 base64,逐字节一致;技能包内不再携带 .xlsx) - 评分标准:
references/批改标准详解.md(四维度ABCD等级评分+抗感染专用详细细则) - 指南要点:
references/抗感染与ICU指南要点.md(与 ICU 专业共享的参考指南库) - (可选)若当前工作区存在
.workbuddy/memory/目录则追加批改日志,否则跳过 - 环境依赖:python-docx, lxml, openpyxl(安装:
pip install python-docx lxml openpyxl)
参考资源索引
| 路径 | 内容 | 用途 |
|---|---|---|
references/批改标准详解.md |
完整评分细则、结构规范、格式手册、等级划分 | 详细标准的权威参考 |
references/批注措辞模板.md |
格式/结构/内容/ADR/总结等各类批注措辞库 | 批改时快速查表 |
references/抗感染病种要点.md |
抗感染常见病原菌/感染部位的策略与关键点 | 核实讨论内容的专业性 |
references/抗感染与ICU指南要点.md |
与 ICU 专业共享的参考指南库(TDM/耐药菌/真菌/ICU 用药) | 核实专业要点 |
scripts/comment_engine.py |
融合批注写入引擎(全文档遍历+对象模型写回+精确锚点) | 生成批注输出 |
scripts/validate.py |
输出完整性验证脚本 | 检查点2验证 |
scripts/scoring_sheet.py |
打分表输出引擎(同步生成病例分析质量评估表) | 生成打分表 |
scripts/template_data.py |
内嵌官方打分表模板(附件1-4原表 base64,逐字节一致) | 打分表模板 |
依赖: python-docx, lxml, openpyxl(安装:pip install python-docx lxml openpyxl)
版本记录
| 版本 | 日期 | 说明 |
|---|---|---|
| v3.1.3 | 2026-10-08 | 上传平台兼容性修复(可直接替换,批改规则与评分标准未变):官方打分表模板改为 base64 内嵌——新增 scripts/template_data.py(内嵌官方评估表原文件,解码后与官方 .xlsx 逐字节一致),scripts/scoring_sheet.py 支持 template_path=None 时自动回退内嵌模板;因 SkillHub 等平台文件类型白名单不含 .xlsx,打包时排除全部二进制表格(.xlsx/.xls/.xlsm),技能包内不再携带 .xlsx;内嵌模板与文件模板两条通道产物已用「逐单元格 + 样式 + 结构」快照实测完全等价。另修复写入得分列(G4:G7)时覆盖模板「自动换行」属性的问题 |
| v3.1.2 | 2026-10-08 | 发布勘误(可直接替换,批改规则与评分标准未变):①修复段落遍历在无 w14:paraId 的 docx(如 .doc 转出)上可能静默丢段的问题——改为按 XML 元素树遍历,实测旧实现最多丢 52% 段落、致批注大面积遗漏;②教学带教评语改为真正的红色粗体(补 w:b/w:bCs,此前只有红色、无加粗);③批注署名规范校验改为默认执行并始终显示结果;④统一 scripts/validate.py 并补全 SKILL.md 调用示例(第 2 个位置参数=期望署名);⑤frontmatter 补齐 author/tags/category,统一触发词字段、移除 agent_created |
| v3.1.1 | 2026-10-06 | 批注署名规范化 + 校验增强(兼容性修复,可直接替换):批注署名统一为「XX带教老师」——运行时 author 与 initials 均写「XX带教老师」,不再使用老师真名或字母缩写(原 XB / XH / ZL / ICU / FJ / XNDJ 等缩写已全部废止);scripts/comment_engine.py 的 author/initials 参数说明同步更新为强制一致;scripts/validate.py 新增批注署名校验(作者须以「带教老师」结尾、initials 必须与 author 一致),可直接捕获署名不合规产物;批改规则、评分标准未变 |
| v3.1.0 | 2026-10-06 | 首次构建(对齐 v3.1.0 融合架构):基于抗感染专业病例分析语料 + 24 份抗感染/重症指南构建。批注写入统一走融合引擎 scripts/comment_engine.py(全文档遍历+对象模型写回+精确锚点,与其余 Ruijin skill MD5 一致);同步输出官方《病例分析质量评估表》打分表;检查清单融入抗感染专业核心项(药学事件选择、通用名/中文全称、准确剂量 mg/g、TDM、ADR 因果判断+具体数值、方案调整具体建议、参考文献);与 ICU 专业共享参考指南库。批注署名统一为「抗感染带教老师」(不含老师真名或缩写) |