万古霉素 TDM 与中药联用肾损伤风险分析
Overview
临床药师用于分析万古霉素血药浓度(TDM)与中药处方联用的肾损伤风险。脚本读取三个数据文件,按患者ID匹配,计算 CrCl,判断谷浓度异常,筛查肾毒性中药,按红/黄/绿灯规则分级,输出结果 Excel 与汇总报告。
工作流总览
- 读取三个输入文件(万古霉素监测数据、HIS中药处方、肾毒性清单)
- 按患者ID匹配 万古霉素数据与中药处方
- 计算 CrCl(Cockcroft-Gault 公式)
- 判断谷浓度异常(<10 剂量不足,>20 偏高风险)
- 筛查肾毒性中药(从药典清单匹配处方中的中药)
- 风险分级:红灯 = 谷浓度>20 且联用肾毒性中药;黄灯 = 任一;绿灯 = 正常
- 输出结果 Excel + 汇总报告
输入文件
| 文件 | 关键字段 |
|---|---|
| 万古霉素监测数据.xlsx | 患者ID、年龄、性别、体质量kg、血肌酐(umol/L)、万古霉素谷浓度 |
| HIS导出的中药处方.xlsx | 「处方主表」(患者ID/处方号/姓名) + 「处方明细表」(处方号/中药名称) |
| 《中国药典》肾损伤风险中药饮片&中成药警示清单.docx | 肾毒性品种表(第1列品种名、第2列风险等级★★★/★★/★) |
执行步骤
1. 准备输入文件
向用户确认三个文件路径(可能位于桌面或工作区)。若文件在桌面,直接使用绝对路径。
2. 运行分析脚本
脚本接受命令行参数,可处理任意目录的数据,避免硬编码路径:
python scripts/analyze.py \
--vcf "万古霉素监测数据.xlsx的路径" \
--tcm "HIS导出的中药处方.xlsx的路径" \
--list "《中国药典》肾损伤风险中药饮片&中成药警示清单.docx的路径" \
--out "输出目录"
Python 解释器建议使用项目 venv(含 openpyxl 与 python-docx):
- Windows: C:/Users/石玉莹/.workbuddy/binaries/python/envs/default/Scripts/python.exe
若用户未指定输出目录,脚本默认写到输入文件所在目录(通常为桌面),以保持与源数据同文件夹。
3. 校验结果
运行后检查脚本输出的控制台汇总(监测总例数、异常占比、肾毒性例数、红/黄/绿灯清单),并用 openpyxl / python-docx 抽查生成文件,确认数据准确。
4. 交付
用 present_files 展示生成的 结果Excel 与 报告docx,并向用户汇报:
- 监测总例数、异常浓度占比
- 联用肾毒性中药例数
- 红灯预警清单(逐例:谷浓度、CrCl、肾毒性品种)
- 关键临床提示(如多品种叠加、重度肾功能不全等)
核心算法与规则
CrCl(Cockcroft-Gault)
- 血肌酐由 umol/L 换算为 mg/dL(÷88.4)
- 男性:
(140-年龄)×体重/(72×肌酐mg/dL) - 女性:
上述结果×0.85
谷浓度异常
<10 μg/mL:剂量不足>20 μg/mL:偏高风险10-20:正常
风险分级
| 分级 | 条件 |
|---|---|
| 🔴 红灯·高危预警 | 谷浓度>20 且 联用肾毒性中药 |
| 🟡 黄灯·需关注 | 谷浓度>20 或 联用肾毒性中药 |
| 🟢 绿灯·安全 | 均正常 |
肾毒性品种匹配
脚本从药典清单 docx 的表格中提取品种名(自动去除括号注释,如"牛黄解毒片(丸)"→"牛黄解毒片","木通(川木通/关木通)"→"木通")。匹配采用精确或包含匹配(品种名在药名中且长度≥3),以覆盖中成药与饮片的变体命名。
输出文件
| 文件 | 内容 |
|---|---|
| 万古霉素TDM_中药联用风险分析结果.xlsx | 23列:原始字段 + CrCl + 谷浓度判断 + 联用肾毒性(是/否) + 肾毒性品种明细 + 风险分级(红/黄/绿底纹) + 具体建议 |
| 万古霉素TDM_中药联用风险分析报告.docx | 监测总例数、异常浓度占比表、联用肾毒性例数及品种、风险分布表、红灯预警清单表、临床处置建议 |
注意事项与适配
- HIS 结构差异:脚本顶部的
COL_*常量定义了万古霉素监测数据的列位(本项目实测结构:数据从第3行开始,患者ID在col1、血肌酐col18、谷浓度col30)。若用户提供的 HIS 导出结构不同,需先读取表头定位列位,再调整常量或映射。 - 多 sheet 兼容:中药处方读取优先按「处方主表」「处方明细表」名称定位,缺失时回退到第1、2个 sheet。
- 肾毒性清单格式:脚本按"表头行为0、第1列品种名、第2列等级"解析。若用户上传的清单结构不同,需读取 docx 表格确认列位后调整
load_nephrotox。 - 匹配边界:包含匹配可能产生误判(如某品种名恰好是药名子串),必要时人工复核。本流程已知需确认"牛黄解毒片"与"云南白药胶囊"——后者不在肾毒性清单,不应误标。
- 环境依赖:需 openpyxl(Excel)与 python-docx(Word)。
Resources
scripts/analyze.py
完整可复用的分析脚本(参数化输入/输出路径)。直接运行即可完成全部 7 步流程。脚本末尾打印控制台汇总,供快速校验。