Ruijin消化病例分析批改
技能版本:v3.1.4(v3.1.0 新增批改同时同步输出官方《病例分析质量评估表》打分表;v3.0.0 起批注写入统一走融合引擎 scripts/comment_engine.py——全文档遍历 + 对象模型写回 + 精确锚点三合一,弃用旧 zipfile 手拼 XML 路线;基于25份已批改消化病例分析真实批注 + 24份消化科临床指南(2020-2026);病例分析模板无「带教老师评语」栏,write_summary=False。批改规则、评分标准未变。上一版 v2.3.0 同步 2026 最新消化指南)
概述
本skill用于批改消化科方向临床药师规范化培训学员的病例分析作业。基于2026最新版《病例分析质量评估表》四维度ABCD等级评分标准(总分100分制)和25份消化科真实批改样本,聚焦消化科常见疾病谱和批改关注点,系统化地对学员作业进行评估,以Word原生批注气泡形式直接在docx文件中插入批改意见(评价性内容并入对应批注,不单独成段)。
核心能力:
- 基于25份真实批注的频率驱动批改(极高频/高频/中高频关注点分层)
- 基于24份临床指南(2020-2026)的6大病种专业评估框架
- D1-D4四级循证讨论深度自动评级
- 批注用语模板库(格式/结构/内容/分析/ADR/结论6类)
- docx原生批注气泡输出(非Markdown报告,直接在原文件中批注)
评分规则(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 | 不合格 | 需大幅改进 |
四维度与原有4维度12评分点对应关系:
| 新维度 | 分值 | 对应原有模块 | 原权重(10分制) |
|---|---|---|---|
| 基本要求 | 30 | 病例选择(药学事件) + 专业用语 + 通用名 | 4.5 + 0.2 + 0.2 |
| 病例概述 | 30 | 病史摘要(4项) | 2.3 |
| 分析总结 | 30 | 分析讨论(3项) + 总结(2项) | 2.0 + 0.6 |
| 参考文献 | 10 | 参考文献注明(原属基本要求) | 0.2→独立维度 |
> 批改时先逐维度检查确定ABCD等级,再汇总得分定级。下方评分标准权重表中的12个评分点作为各维度定级参考。
批改工作流程
第1步:接收作业并识别病种
用户提供病例分析作业(docx文件)。使用python-docx提取全文文本和表格内容:
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)
from docx import Document
doc = Document('作业文件.docx')
for para, text in CE.iter_doc_paragraphs(doc): # 正文 + 所有表格(含嵌套表格)
if text.strip():
print(text)
> ⚠️ 文本抽取陷阱(必读,防误批学员):p.text/cell.text(即 python-docx 的 paragraph.text)只取 <w:t> 文本,会静默丢弃 run 级字符元素,导致读错原文并误批:
>
> | 元素 | 显示为 | 丢弃后果(真实案例) |
> |---|---|---|
> | <w:noBreakHyphen/> | - | 每2-3日→每23日、LDL-C→LDLC、D-二聚体→D二聚体、文献页码 241-256→241256 |
> | <w:sym w:char="XXXX"/> | 对应符号 | 字符消失 |
> | <w:tab/>/<w:ptab/> | 空白 | 文本粘连 |
> | <w:br/>/<w:cr/> | 换行 | 两行并作一行 |
>
> 正确做法:统一用融合引擎 CE.para_text(paragraph)(run 级完整还原 t/noBreakHyphen/sym/tab/br 等),而不是 p.text。判定纪律:抽取文本出现「每 N 天/月/周」N 为多位数、纯数字日期、术语缺连字符(LDLC/DPP4/β内酰胺类)、文献页码连写时,先怀疑丢字,回查原文确认后再下结论;学员用 2-3日/3-5天 表示范围是规范写法,不得批注。
提取后自动识别: 病种分类(肝硬化/胰腺炎/IBD/Hp-GERD/胆道肝脓肿/DILI乙肝)、药学事件类型。
> 检查点1 [CHECKPOINT]:展示病种识别结果和药学事件概要,请用户确认是否正确。如识别有误,由用户指定正确的病种分类。
第2步:必查项扫描
按25份真实批改频率统计,优先执行5项必查扫描:
| 优先级 | 检查项 | 频率 | 判定标准 |
|---|---|---|---|
| P0 | 药物名称是否使用通用名 | 22/25 | 文中不单独使用商品名;通用名+商品名同时出现视为规范 |
| P0 | 相关药物治疗情况描述清晰 | 23/25 | 须含具体用药时间、剂量、疗效/不良反应 |
| P0 | 病史摘要是否精简且匹配 | 21/25 | 仅描述与药学事件相关过程,无大段无关病史 |
| P1 | 是否结合本患者讨论 | 16/25 | 避免泛泛综述,须结合本患者具体情况 |
| P1 | 参考文献文中标注 | 20/25 | 文内须标注对应序号,不可仅列末尾列表 |
第3步:按评分标准逐项评估
按四大维度12个评分点逐项评定,每项写出得分和扣分说明。评定结果汇总至四维度ABCD评分框架(见"评分规则"章节)。
评分标准权重表(10分制→四维度ABCD定级参考):
| 项目 | 评价指标 | 权重 |
|---|---|---|
| 基本要求 | (1)专业用语规范 | 0.2 |
| (2)药物名称使用通用名 | 0.2 | |
| (3)针对明确的药物治疗事件展开讨论 | 4.5 | |
| (4)主要参考文献注明 | 0.2 | |
| 病史摘要 | (1)病史与讨论问题匹配 | 1.0 |
| (2)疾病过程描述清晰简洁 | 0.4 | |
| (3)药物治疗情况描述清晰 | 0.4 | |
| (4)主要阳性体征无缺项 | 0.5 | |
| 分析讨论 | (1)讨论问题利于深入分析 | 1.0 |
| (2)论据充分、逻辑清晰 | 0.5 | |
| (3)体现循证医学原则 | 0.5 | |
| 总结 | (1)总结与讨论紧密结合 | 0.3 |
| (2)体现临床药师作用与体会 | 0.3 |
第4步:必查项—病例选择评估(权重4.5分,最核心项)
判断病例是否具有明确的药学事件:
合格病例特征: 选择有药学事件的案例(ADR/药物相互作用/方案调整等),非疾病综述。
不合格病例特征识别:
| 问题类型 | 典型表现 | 批改用语 |
|---|---|---|
| 病例选择不当 | 疾病治疗方案综述,可用于任何案例 | "本文不是对病例的分析,而是对疾病治疗方案的综述" |
| 缺乏药学事件 | 无ADR/药物相互作用/方案调整 | "建议选用有明确药学事件的案例" |
| 讨论问题过大 | 讨论不利于深入分析 | "讨论问题过于宽泛,建议聚焦具体药学事件" |
第5步:病种专业评估
根据第1步识别的病种,从下表选取对应的专业评估要点融入评分。
> 详细药物方案和剂量见 references/指南学习_*.md
肝硬化相关病例
| 评估维度 | 专业检查要点 | 指南依据 |
|---|---|---|
| 病史完整性 | Child-Pugh评分(5-15分)和MELD评分;肝硬化分期(代偿/失代偿) | 肝硬化管理指南2025 |
| 治疗方案 | 腹水利尿剂100:40比例(螺内酯:呋塞米);白蛋白使用指征 | 腹水指南2023 |
| 药学监护 | 体重监测(<0.5kg/d)、尿量、电解质;HE诱因排查+血氨 | HE指南2024 |
| 讨论深度 | 升阶梯策略(利尿→白蛋白→特利加压素→TIPS);EVB的HVPG阈值 | EVB指南 |
| 常见错误 | 利尿剂比例不当、HE诱因未排查、NSBB未达目标心率(50-60次/分) | — |
急性胰腺炎相关病例
| 评估维度 | 专业检查要点 | 指南依据 |
|---|---|---|
| 病史完整性 | 严重程度评估(Ranson/APACHE-II/SIRS/Marshall评分+时间节点);病因明确 | AP指南2021+IAP2025 |
| 治疗方案 | 是否无指征使用预防性抗生素;液体复苏具体(LR 250-500mL/h);营养时机 | AP指南2021+IAP2025 |
| 药学监护 | 目标尿量≥0.5mL/kg/h;ERCP术后预防性吲哚美辛 | AP指南2021 |
| 讨论深度 | 生长抑素限于SAP使用;高脂血症性AP的降脂时机 | IAP2025 |
| 营养路径(ESPEN 2023) | 所有AP均为中-高营养风险;轻中度可耐受即经口低脂软食、不依赖血清脂肪酶;EN应入院24~72h内启动且优先于PN、经鼻胃管(不耐受改鼻空肠);重度AP不推荐益生菌、无PEI不常规补胰酶 | ESPEN营养2023 |
| 腹内压导向(ESPEN 2023) | IAP<15mmHg尽早EN;>15mmHg经鼻空肠20mL/h起始;>20mmHg或ACS停EN改PN;微创坏死清除术后24h内可经口进食 | ESPEN营养2023 |
| 常见错误 | 无指征预防性抗生素、营养支持延迟、液体复苏方案不具体;等待脂肪酶下降才进食、用清流质、重度AP常规补胰酶或加益生菌、未监测腹内压 | — |
IBD相关病例
| 评估维度 | 专业检查要点 | 指南依据 |
|---|---|---|
| 病史完整性 | UC:Mayo评分(0-12分);CD:HBI评分;分型标准:UC蒙特利尔E分型(E1/E2/E3)、CD蒙特利尔A-L-B分型 | UC/CD指南2023 |
| 治疗方案 | 5-ASA剂量是否充分(2.4-4.8g/d);激素减量方案规范(每周减5mg至20mg→每1-2周减2.5-5mg);升/降阶梯策略依据 | UC/CD指南2023+BSG2025 |
| 药学监护 | 免疫抑制剂前是否检测TPMT;生物制剂前感染筛查(IGRA/HBV/VZV) | UC/CD指南2023 |
| 讨论深度 | T2T达标治疗逻辑;生物制剂TDM(TLI/ATL);预后不良因素 | CD指南2023+BSG2025 |
| 分层选药(AGA 2025/2026) | 中重度UC/CD初治者优先高效药(IFX、VDZ、乌司奴单抗、瑞莎珠单抗、古塞奇尤单抗、乌帕替尼等),次选中效药,避免低效药;经治(用过生物制剂)者按高效/中效药选择;JAK抑制剂(托法替布/乌帕替尼)初治患者限制使用(FDA建议保留于TNF拮抗剂失败或不耐受者) | AGA-UC2025/AGA-CD2026 |
| 达标时间窗(AGA) | 启动后3个月评估症状应答;3~6个月症状+生化缓解;6~12个月内镜改善/缓解 | AGA-UC2025/AGA-CD2026 |
| 联合与降阶梯(AGA) | IFX+硫唑嘌呤联合优于单药;联合治疗且激素-free缓解≥6个月者建议撤免疫抑制剂、不建议撤TNF拮抗剂;已升级者建议停5-ASA(残留直肠炎可加局部5-ASA);CD中AZA单药诱导与口服MTX单药均被反对 | AGA-UC2025/AGA-CD2026 |
| 常见错误 | 激素减量不规范、TPMT未检测、生物制剂前感染筛查缺项;中重度仍只靠5-ASA升阶梯、未查基线ECG(S1P调节剂前)、忽略JAK抑制剂的心血管与妊娠风险 | — |
Hp/GERD/PPI相关病例
| 评估维度 | 专业检查要点 | 指南依据 |
|---|---|---|
| 病史完整性 | Hp既往根除史、抗衡因素评估、既往抗生素用药史与失败次数;GERD分型(NERD/RE/Barrett) | Hp指南2026/GERD规范 |
| 治疗方案 | Hp方案须为铋剂四联或含阿莫西林双联、疗程统一14 d(非铋剂四联/三联方案已不推荐);抗生素餐后口服(甲硝唑须每天3~4次);双联阿莫西林3 g/d+强效抑酸(P-CAB或加量PPI);PPI餐前服用;合用氯吡格雷时PPI品种正确 | Hp指南2026/PPI指导原则2020 |
| 药学监护 | 治疗后至少4周复查UBT,复查前停抗生素/铋剂4周、停PPI/P-CAB 2周;血清学不能判断根除成功;长期PPI监测血镁/骨密度/B12;治疗期间及停药后5 d禁酒 | Hp指南2026/PPI指导原则2020 |
| 讨论深度 | 无抗衡因素即积极根除的理念;补救治疗须回避初次方案;P-CAB替代PPI的循证依据;基因型耐药检测个体化治疗 | Hp指南2026 |
| 常见错误 | 以症状判断是否根除;使用三联/非铋剂四联方案;疗程不足14天;甲硝唑每天2次;双联方案未配强效抑酸;复查前未停PPI/P-CAB;氯吡格雷合用奥美拉唑 | — |
胆道感染/肝脓肿相关病例
| 评估维度 | 专业检查要点 | 指南依据 |
|---|---|---|
| 病史完整性 | 胆管炎TG18分级(轻/中/重度);肝脓肿疑似病原菌(KP/链球菌) | 胆道感染指南2021/肝脓肿共识 |
| 治疗方案 | 抗生素选择与TG18分级匹配;胆管炎联合甲硝唑(覆盖厌氧菌);用药前留取血培养 | 胆道感染指南2021 |
| 药学监护 | 肝脓肿PCT动态监测;引流后抗生素降阶梯时机 | 肝脓肿共识/胆道感染指南2021 |
| 讨论深度 | 经验性→目标治疗转换逻辑;头孢曲松含钙配伍禁忌 | — |
| 常见错误 | 抗生素选择与分级不匹配、未覆盖厌氧菌、培养未送检 | — |
DILI/乙肝相关病例
| 评估维度 | 专业检查要点 | 指南依据 |
|---|---|---|
| 病史完整性 | DILI:RUCAM因果关系评分+DILI分型(肝细胞/胆汁淤积/混合型R值);乙肝:自然史分期 | DILI指南2023/乙肝指南2022 |
| 治疗方案 | DILI停药指征(ALT≥5×ULN或Hy's法则);抗病毒药物为强效低耐药NAs(ETV/TDF/TAF/TMF) | DILI指南2023/乙肝指南2022 |
| 药学监护 | 保肝药按DILI分型选择(肝细胞型→甘草酸/双环醇;胆汁淤积型→SAMe/UDCA);乙肝监测病毒学应答和耐药 | DILI指南2023/乙肝指南2022 |
| 讨论深度 | RUCAM逐项评分讨论;可疑药物识别;乙肝特殊人群(妊娠/肾功能不全)药物选择 | — |
| 常见错误 | RUCAM评分缺项、保肝药过度联合(≥2种)、乙肝eGFR<60仍用TDF | — |
第6步:循证讨论深度评级(D1-D4)
判断学员讨论的循证深度等级:
| 等级 | 特征 | 示例(IBD病例) |
|---|---|---|
| D1 浅层 | 仅列治疗方案,未说明依据 | "给予美沙拉嗪4g/d治疗" |
| D2 基础 | 引用指南推荐,未结合患者 | "根据UC指南推荐,5-ASA 2.4-4.8g/d" |
| D3 良好 | 指南+患者评估+选择理由 | "患者Mayo评分6分(中度活动),根据UC指南2023,中度活动UC首选5-ASA 4g/d,患者体重60kg,剂量达标" |
| D4 优秀 | 指南+患者评估+替代方案+监护+药师干预 | D3基础上+不応答处理+升阶梯方案+监测计划+药师建议 |
常见循证缺陷批改用语:
| 缺陷类型 | 批改用语 |
|---|---|
| 指南泛引 | "请结合本患者具体情况讨论,不要大段引用指南" |
| 版本陈旧 | "建议引用最新版指南(如XX指南2023年版)" |
| 证据不足 | "建议补充指南推荐级别和循证依据" |
| 讨论脱节 | "本段讨论内容与所选药学事件关联性不强,建议聚焦" |
| 监护缺失 | "建议补充药学监护计划,明确监测指标和频率" |
> 检查点2 [CHECKPOINT]:展示评分初稿(评分总览表+各维度得分),请用户审核并确认是否调整。
第7步:评分汇总(🛑 不生成评语)
汇总Step 2-6所有评估结果,生成评分总览,展示给用户确认。
🛑 病例分析模板没有独立的「带教老师评语」位置(实测样文 0 份含该栏),因此不生成带教评语、不写入评语表格、不在文档末尾追加评语段落;评价性内容一律并入对应位置的批注,不单独成段。
评分总览表(四维度ABCD等级):
| 评分维度 | 满分 | 等级(A/B/C/D) | 得分 | 扣分说明 |
|---|---|---|---|---|
| 基本要求 | 30 | X | X | 药学事件明确性、通用名规范... |
| 病例概述 | 30 | X | X | 题目切题、前言、病史摘要... |
| 分析总结 | 30 | X | X | 讨论深度、循证依据、总结... |
| 参考文献 | 10 | X | X | 引用规范、文献质量... |
| 总分 | 100 | X | 等级:优秀/合格/不合格 |
等级评定: 优秀(≥85) / 合格(70-84) / 不合格(<70)
评价性内容落点(并入批注,不单独成段):
| 内容 | 落点 |
|---|---|
| 病例特点(年龄、性别、主要诊断、核心药学事件) | 并入「病例概述」模块批注 |
| 优点肯定(书写认真、结构完整、分析思路) | 并入对应模块批注首句 |
| 主要问题(2-4点) | 逐一落在对应位置的批注中,针对性指出改进方向 |
| 延伸学习建议(1-2点) | 并入「总结」模块批注末句 |
常用句式:"可进一步了解……"、"建议关注……"、"可对比学习……"
术语与格式专项检查(纳入批注清单):
- 首次出现英文术语须标注"中文全称(英文全称,英文缩写)",下同。同一名词仅批注1次。
- 文中不单独使用商品名;通用名与商品名同时出现时不批注;商品名单独出现时需批注。
消化科常用术语规范示例:
| 术语 | 规范写法 |
|---|---|
| 质子泵抑制剂 | 质子泵抑制剂(proton pump inhibitor,PPI) |
| 胃食管反流病 | 胃食管反流病(gastroesophageal reflux disease,GERD) |
| 幽门螺杆菌 | 幽门螺杆菌(Helicobacter pylori,Hp) |
| 炎症性肠病 | 炎症性肠病(inflammatory bowel disease,IBD) |
| 溃疡性结肠炎 | 溃疡性结肠炎(ulcerative colitis,UC) |
| 克罗恩病 | 克罗恩病(Crohn disease,CD) |
| 急性胰腺炎 | 急性胰腺炎(acute pancreatitis,AP) |
> 检查点3 [CHECKPOINT]:展示评分总览表、各评分项详细评估(含得分和扣分原因)、批注清单(批注位置+批注内容+对应评分项)。请用户最终确认。用户可要求修改任何评分或批注内容。
第8步:批注插入与文件输出
用户确认评分后,执行:
- 将每条批注以Word原生批注气泡形式插入病例分析docx文件
- 输出文件:
原文件名-批改.docx(不覆盖原文件)
> 🛑 不写入评语:不在文档末尾追加评语段落,评价性内容全部已并入批注。
批注形式: Word原生"审阅→插入批注"气泡,禁止将批注文字插入正文
批注作者: w:author="消化带教老师",w:initials="消化带教老师"
批注语言: 中文
技术实现详见"批注实现技术细节"章节。
同步输出质量评估表(打分表)
批改完成、输出批改 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;在最终确认步骤中一并展示打分表路径、各维度得分与总分
第9步:最终确认
输出文件后展示:
- 输出文件路径
- 批注总数
- 各维度得分汇总
等待用户确认是否需要调整。
边界条件与异常处理
docx文件异常
| 场景 | 处理方式 |
|---|---|
| 文件不是docx格式 | 提示用户提供正确格式,终止批改 |
| docx解包失败(损坏文件) | 提示文件可能损坏,建议用户检查文件完整性 |
| document.xml 缺失 | 提示文件结构异常,无法批改 |
| comments.xml 已存在 | 读取现有批注供参考;合并而非覆盖;comment id从最大现有id+1开始 |
| commentsExtended.xml 已存在 | 同comments.xml处理 |
| 文档使用非标准XML命名空间 | 提取现有命名空间,保持一致性 |
docx读取异常
| 场景 | 处理方式 |
|---|---|
| 文件不存在或无法打开 | 提示用户确认文件路径,不继续执行 |
| 文档内容为空 | 提示"文档无有效文本内容,请确认文件是否正确" |
| 文档含大量表格无段落文本 | 同时提取段落和表格,表格中药物信息纳入"药物治疗情况"评估 |
| 文档含图片/图表无法提取 | 提示用户图片内容需人工核对,基于可提取文字继续批改 |
内容异常
| 场景 | 处理方式 |
|---|---|
| 无法识别消化科病种 | 基于通用评分标准批改,提示用户"未识别到典型消化科病种,已按通用标准批改,消化专科评估可能不完整" |
| 作业缺少某一章节 | 该章节各项得0分,批注"缺少XX章节",其余章节正常批改 |
| 作业涉及多病种交叉 | 选择主导病种应用专业评估,次要病种基于通用标准 |
| 药学事件不明确 | 基本要求(3)项≤2分,批注"请明确本病例的药学事件是什么" |
目标批注文本在docx中被拆分为多个<w:t> |
融合引擎 para_text() 按段落 run 级完整还原后匹配(见"批注实现技术细节");支持跨<w:r>的文本组合匹配 |
| 目标文本未找到(可能已被修改) | 记录未匹配项,在就近批注中补充说明,不阻塞流程 |
输出处理
| 场景 | 处理方式 |
|---|---|
| 输出目录无写入权限 | 输出到系统临时目录,提示用户 |
| 输出文件名冲突 | 自动追加序号后缀(-批改-2, -批改-3...) |
评分异常
| 场景 | 处理方式 |
|---|---|
| 总分<70(不合格) | 评分展示时标注"⚠️ 不合格",并在「总结」模块批注中建议重写或更换案例 |
| 某项得0分 | 批注说明原因,给出具体改进方向 |
| 病种不在6大分类中(如功能性胃肠病) | 基于通用标准+最接近病种的专业评估框架批改 |
消化科常用批改用语速查
| 类别 | 批改用语 |
|---|---|
| 格式 | "首次出现,中英文全称加简写,下同"、"文中不单独使用商品名"、"病史摘要简化、精简一下" |
| 结构 | "建议讨论分段以此3部分递进表述"、"每个讨论点段末一句话小结"、"筛选后简写,仅描述与药学事件相关的过程" |
| 内容 | "补充参考文献、文中标注"、"结合本患者予以讨论"、"不要大段引用指南,需要结合患者" |
| 分析 | "如何调整,因何调整,需具体描述"、"根据时序性、去激发判断哪个药物是主因" |
| ADR | "用药时间与指标异常时间的先后关系?是否停用去激发?"、"参照说明书,未发现XXX被列为已知不良反应" |
| 结论 | "最终的结论是?"、"补充临床药师在本案例中的作用与体会" |
批改精简原则
- 同一术语/商品名仅批注1次,附"下同"
- 连续引用指南超过10行视为大段引用
- 引用后已结合患者分析者可不批注"需结合本患者"
- 避免重复批注同类问题,重点突出关键问题
批注实现技术细节
核心要求
- 批注形式:Word原生"审阅→插入批注"气泡,禁止将批注文字插入正文
- 批注作者:
w:author="消化带教老师",w:initials="消化带教老师" - 批注语言:中文
- 输出文件:原文件名后加
-批改后缀,不覆盖原文件
实现方式(融合引擎 comment_engine.py)
v3.0.0 起弃用旧 zipfile 手拼 XML 路线(解包 → document.xml 正则切分 → 手拼 comments.xml / commentsExtended.xml → 手改 rels / Content_Types → 重新打包),统一走融合引擎 scripts/comment_engine.py——全文档遍历 + 对象模型写回 + 精确锚点三合一:
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"}
融合引擎三要点:
- 全文档遍历:
iter_doc_paragraphs()遍历正文段落 + 所有表格(递归嵌套表格),不再手工按<w:p>分割 - 对象模型写回:python-docx 官方
Comments.add_comment()+ OPC 自动维护部件关系(comments.xml / commentsExtended.xml / people.xml 自动创建、rels 自动 relate),弃用手拼 PackURI / _blob - 精确锚点:
find_anchor()支持 contains/exact/startswith + 全文档命中计数,missed/ambiguous/degraded 显式上报,不再静默丢失批注
> Fallback:锚定文本找不到时,引擎记录为 missed 并在结果中标注。
参考资源
references/批改标准详解.md— 完整批改标准、分类示例及评分应用指南references/指南学习_肝硬化系列.md— 5份肝硬化指南(2023-2025)系统学习笔记references/指南学习_胰腺胆道PPI.md— 胰腺炎/胆道/PPI指南学习笔记references/指南学习_IBD_HP_GERD.md— IBD/Hp/GERD指南学习笔记references/指南学习_乙肝DILI_BSG.md— 乙肝/DILI/BSG指南学习笔记references/指南学习_肝脓肿IBS功能病.md— 肝脓肿/IBS指南学习笔记scripts/comment_engine.py— 融合批注写入引擎(全文档遍历 + 对象模型写回 + 精确锚点)scripts/validate.py— 输出完整性验证 + 批注署名规范校验(python scripts/validate.py <输出文件> 消化带教老师)scripts/scoring_sheet.py— 打分表输出引擎(同步生成病例分析质量评估表)scripts/template_data.py— 内嵌官方打分表模板(附件1-4原表 base64,逐字节一致)
依赖: python-docx, lxml, openpyxl(安装:pip install python-docx lxml openpyxl)
版本记录
| 版本 | 日期 | 核心改进 |
|---|---|---|
| v3.1.4 | 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.3 | 2026-10-08 | 发布勘误(可直接替换,批改规则与评分标准未变):①修复段落遍历在无 w14:paraId 的 docx(如 .doc 转出)上可能静默丢段的问题——改为按 XML 元素树遍历,实测旧实现最多丢 52% 段落、致批注大面积遗漏;②教学带教评语改为真正的红色粗体(补 w:b/w:bCs,此前只有红色、无加粗);③批注署名规范校验改为默认执行并始终显示结果;④统一 scripts/validate.py 并补全 SKILL.md 调用示例(第 2 个位置参数=期望署名)(本 skill 原缺 validate.py,本次补装);⑤frontmatter 补齐 author/tags/category,统一触发词字段、移除 agent_created |
| v3.1.2 | 2026-10-08 | 发布勘误(可直接替换,批改规则未变):清理 references/指南学习_乙肝DILI_BSG.md 末尾的本地绝对路径脚注(发布卫生,不影响批改逻辑) |
| v3.1.1 | 2026-10-06 | 批注署名规范化 + 校验增强(兼容性修复,可直接替换):批注署名统一为「XX带教老师」——运行时 author 与 initials 均写「XX带教老师」,不再使用老师真名或字母缩写(原 XB / XH / ZL / ICU / FJ / XNDJ 等缩写已全部废止);scripts/comment_engine.py 的 author/initials 参数说明同步更新为强制一致;批改规则、评分标准未变 |
| v3.1.0 | 2026-09-26 | 新增打分表输出(升次版本):批改完成、输出批改 Word 的同时,同步生成对应的官方《质量评估表》打分表(xlsx)——新增统一脚本 scripts/scoring_sheet.py(6 skill 各持一份 MD5 一致)+ 自带官方模板(药历版 references/教学药历质量评估表.xlsx / 病例分析版 references/病例分析质量评估表.xlsx);做法为复制模板后仅写入四维度「得分」列(G4:G7),总分列保留模板求和公式自动计算,格式 100% 保留、不新增/删除模板文字。批改规则、评分标准未变 |
| v3.0.0 | 2026-09-24 | 批注写入技术路线重做(融合架构):zipfile 手拼 XML 路线收敛为统一引擎 scripts/comment_engine.py——全文档遍历 iter_doc_paragraphs()(正文+所有表格含递归嵌套,弃用手工 zipfile 按 <w:p> 分割)、对象模型写回 insert_comment()(python-docx 官方 Comments.add_comment() + OPC 自动维护,弃用手拼 comments.xml/commentsExtended.xml/rels/Content_Types)、精确锚点 find_anchor()(contains/exact/startswith + 全文档命中计数,missed/ambiguous/degraded 显式上报);write_summary=False(病例分析模板无评语栏)。批改规则、评分标准未变 |
| v2.3.0 | 2026-09-24 | 同步 2026 最新消化指南(新增3部 + 替换1部):①新增 2023 ESPEN 急慢性胰腺炎临床营养指南(AP营养风险、经口低脂软食不依赖脂肪酶、EN 24~72h内启动、腹内压导向营养、不推荐益生菌、CP胰酶20,000~50,000 PhU/正餐随餐分次与骨病筛查);②新增 2025 AGA 中重度UC 与 2026 AGA 中重度CD(疗效分层、初治-经治分层选药、JAK抑制剂限制、达标监测3/3-6/6-12个月、联合与降阶梯);③Hp 病种评估整体替换为 2026 版中国成年人Hp指南口径(无抗衡因素即积极根除、铋剂四联+双联、统一14 d、餐后服药、P-CAB、复查前停抗生素/铋剂4周与PPI/P-CAB 2周、禁酒至停药后5 d)。四维度ABCD 100分制评分与批改规则未变 |
| v2.2.2 | 2026-09-16 | 修复文本抽取丢字缺陷(勘误):段落可见字符不只存在于 <w:t>,p.text/cell.text 或朴素 re.findall(r'<w:t[^>]*>...') 会静默丢弃 <w:noBreakHyphen/>(显示 -)、<w:sym>、<w:tab/>、<w:br/> 等 run 级字符,导致 每2-3日→每23日、LDL-C→LDLC、D-二聚体→D二聚体 等误读误批。修复:第1步读取代码、批注实现 Step 2 锚定匹配两处新增「⚠️ 文本抽取陷阱」提示,要求 run 级完整还原。四维度ABCD 100分制评分与批改规则未变 |
| v2.2.1 | 2026-09-16 | 移除评语写入(勘误):病例分析模板没有独立的「带教老师评语」位置(实测 10 份样文 0 份含该栏),故原「第7步 评分汇总与评语生成」改为「第7步 评分汇总(不生成评语)」;第8步删除「将带教评语作为文档末尾新段落插入」;第9步、检查点3 同步去掉「评语全文」;评价性内容(病例特点、优点肯定、主要问题、延伸学习建议)并入对应位置的批注。四维度ABCD 100分制评分与批改规则未变 |
| v2.2 及更早 | — | 本技能早期版本记录未留存(frontmatter 版本号曾为 2.2,meta 曾滞后为 2.1) |