药品效期管理
概述
将医院药学部每月的4个药房(西药库、门诊药房、中心药房、静配中心)近效期、滞销药品登记表统一格式合并,从库存管理匹配药品编码和配送公司,从门诊/住院药品品种排序表匹配使用量,按业务规则自动填充采购处理意见,并按配送公司生成反馈分表。
适用场景
- 每月初汇总上月各药房近效期、滞销药品登记表
- 需要将三个月效期内药品信息反馈给配送商
- 按使用量进行部门内库存调整
- 生成各配送公司的反馈清单
前置条件
源文件(同一目录下)
每月源文件目录中应包含以下文件(文件名可不完全一致,脚本按关键词自动查找):
| 文件类型 | 关键词 | 说明 |
|---|---|---|
| 西药库登记表 | 西药库 + 近效期 + 滞销 | 模板格式来源 |
| 门诊药房登记表 | 门诊药房 + 近效期 + 滞销 | |
| 中心药房登记表 | 中心药房 + 近效期 + 滞销 | |
| 静配中心登记表 | 静配中心 + 近效期 + 滞销 | |
| 库存管理 | 库存管理 | 含汇总和明细两个sheet |
| 门诊排序表 | 药品品种排序 + 门诊 | 含使用量数据 |
| 住院排序表 | 药品品种排序 + 住院 | HTML格式(.xls扩展名) |
Python环境
- pandas, openpyxl, xlrd(已预装在默认venv中)
- Python路径:
C:\Users\Administrator\.workbuddy\binaries\python\envs\default\Scripts\python.exe
执行步骤
方法一:直接运行脚本(推荐)
python scripts/process_pharmacy.py <源文件目录> <年月> [--output <输出文件名>]
示例:
python scripts/process_pharmacy.py "E:\采购\近效期滞销\8月" 2026-7
python scripts/process_pharmacy.py "E:\采购\近效期滞销\9月" 2026-8 --output "2026年8月药学部近效期、滞销药品登记.xlsx"
脚本将自动完成以下9个步骤:
1. 读取4个药房源文件
2. 统一列名格式并合并(以西药库为模板)
3. 读取库存管理并构建查找表
4. 读取门诊排序表(openpyxl读取保持编码字符串格式)
5. 读取住院排序表(pd.read_html读取HTML格式)
6. 匹配药品编码、配送公司、使用量
7. 按业务规则填充采购处理意见
8. 导出主Excel文件(带格式)
9. 生成配送公司反馈分表
方法二:手动逐步执行
如需调整匹配逻辑或业务规则,参考 references/business_rules.md 中的详细规则说明,修改脚本中的相应配置。
关键配置说明
配送公司简称映射
脚本内置了供货公司全称到简称的映射表(如"广州医药股份有限公司"→"市公司"),新增配送公司时在 COMPANY_ABBR 字典中添加。
名称模糊匹配别名
脚本内置了常见药品名称差异的别名映射(如"利多卡因注射液"→"盐酸利多卡因注射液"),遇到新的名称差异时在 NAME_ALIASES 列表中添加。
采购处理意见规则
参考 references/business_rules.md 中的"五、采购处理意见业务规则"章节,规则按优先级执行:
1. 三个月效期内 / 无使用量 / 效期内使用不完 → 联系配送公司处理
2. 中心药房/静配中心 + 住院有用量 → 继续使用
3. 门诊 + 门诊有用量 → 继续使用
4. 药库 + 有用量 + 滞销 → 出门诊/出住院
5. 其余 → 调剂使用/继续使用
输出文件
| 文件 | 路径 | 说明 |
|---|---|---|
| 主文件 | <源目录>/<年月>药学部近效期、滞销药品登记.xlsx |
合并后的全院登记表 |
| 配送公司分表 | <源目录>/配送公司反馈/<公司简称>.xlsx |
每个配送公司一个文件 |
| 未匹配 | <源目录>/配送公司反馈/未匹配配送公司.xlsx |
无法匹配配送公司的药品 |
注意事项
- 住院排序表实际为HTML格式(.xls扩展名但内容为HTML),必须用
pd.read_html读取 - 门诊排序表药品编码需用openpyxl读取以保持字符串格式(pandas会转为float丢失精度)
- 有效期日期格式多样(yyyymmdd/yyyy.mm/yyyy.mm.dd等),
parse_expiry函数已处理常见格式 - 部分药品因名称差异(如"盐酸"前缀)无法自动匹配时,需在
NAME_ALIASES中添加别名或在MANUAL_MATCHES中手动映射 - "硫唑嘌呤片"等药品在库存管理中可能无供货公司信息,会放入"未匹配配送公司.xlsx"
资源文件
scripts/process_pharmacy.py
通用版处理脚本,支持命令行参数指定源目录、年月和输出文件名。包含所有匹配逻辑、业务规则和Excel格式化功能。
references/business_rules.md
详细的业务规则、匹配逻辑、数据结构、配送公司映射表和输出格式说明。在需要调整规则或排查匹配问题时参考。