返回 Skill 列表
extension
分类: 其它无需 API Key

何药师药品养护生成系统

药品养护管理系统 SKILL。当用户需要建立药品养护体系时使用:上传本单位药品目录(Excel/CSV/JSON), 系统联网检索每种药品的说明书贮藏要求,自动生成养护计划,并部署一套完整的 Web 管理系统。 支持功能:(1)药品目录导入与贮藏信息联网检索;(2)自动生成按剂型/贮藏条件定制的养护计划; (3)养护登记 HTML 页面,数据以 XML 格式保存到根目录 SQLITE/xml/ 目录; (4)SQLite 数据持久化,默认路径 ./SQLITE/drug_maintenance.db; (5)查询检索与统计分析页面;(6)单位/科室/用户信息维护; (7)临近到期提醒(1个月、1周、3天)。 触发词:药品养护、养护计划、养护登记、药品贮藏管理、药房管理系统。

person作者: user_bc8a2262hubcommunity

药品养护管理系统 SKILL

用途

本 SKILL 帮助医院、药房、卫生院等机构快速搭建药品养护管理 Web 系统,实现:

  1. 药品目录导入 → 联网检索说明书贮藏条件
  2. 养护计划自动生成 → 按周期自动排程
  3. 养护登记记录 → 数据以 XML+SQLite 双格式保存
  4. Web 管理界面 → 含工作台、查询、统计、信息维护、到期提醒

标准执行流程

第一步:初始化项目目录

在用户指定的工作目录(或当前目录)下运行:

# 创建 SQLITE 目录(系统会自动创建,但也可手动创建)
mkdir -p SQLITE/xml

复制 SKILL 脚本到工作目录的 scripts/ 子目录:

cp -r ~/.workbuddy/skills/drug-maintenance/scripts/ ./scripts/
cp -r ~/.workbuddy/skills/drug-maintenance/assets/ ./assets/

第二步:安装依赖

# Python 3.8+ 即可
pip install openpyxl   # 用于读取 Excel 文件(可选,CSV/JSON无需安装)

第三步:初始化数据库

cd scripts/
python db_manager.py

执行后自动创建:

  • SQLITE/drug_maintenance.db(SQLite 数据库)
  • SQLITE/xml/(XML 存储目录)

第四步:导入药品目录(联网检索贮藏信息)

方式一:命令行导入(推荐,支持 Excel)

python scripts/import_catalog.py 药品目录.xlsx --dept-id 1
# 支持 .xlsx / .xls / .csv / .json

方式二:Web 界面导入(支持 CSV/JSON)

启动服务后在"导入目录"页面上传文件。

导入后系统自动:

  • 联网检索每种药品的贮藏条件(丁香园 → 国家药监局 → 通用搜索 → 规则推断)
  • 写入 drug_catalog
  • 生成 maintenance_plan 养护计划(按药品养护周期排程)

第五步:启动 Web 管理系统

python scripts/server.py --port 8899
# 或指定数据库路径
python scripts/server.py --port 8899 --db ./SQLITE/drug_maintenance.db

打开浏览器访问:http://localhost:8899


文件说明

scripts/

| 文件 | 功能 | |------|------| | drug_search.py | 联网检索药品说明书贮藏信息(丁香园/药监局/规则推断) | | db_manager.py | SQLite 数据库管理(建表/CRUD/XML导出) | | import_catalog.py | 药品目录导入工具(Excel/CSV/JSON → 检索 → 入库) | | server.py | HTTP 后端服务,提供 RESTful API |

assets/

| 文件 | 功能 | |------|------| | index.html | 完整的 Web 管理系统(单页面应用,集成所有功能) |

数据存储结构

<工作目录>/
├── SQLITE/
│   ├── drug_maintenance.db      # SQLite 主数据库
│   └── xml/
│       └── MR20250101120000*.xml  # 每条养护登记记录的 XML 文件
├── scripts/                     # Python 后端脚本
└── assets/                      # 前端 HTML

数据库表结构

| 表名 | 用途 | |------|------| | unit_info | 单位信息(医院/机构) | | department_info | 科室信息(含存放位置) | | user_info | 用户信息(药师/管理员/护士) | | drug_catalog | 药品养护目录(含贮藏条件) | | maintenance_plan | 养护计划(自动排程) | | maintenance_record | 养护登记记录(与 XML 双保存) | | remind_log | 提醒发送日志 |


API 接口列表

| 方法 | 路径 | 说明 | |------|------|------| | GET | /api/stats | 统计概览数据 | | GET | /api/drugs | 药品目录列表 | | GET | /api/plans | 养护计划列表 | | GET | /api/plans/reminders | 近30天到期提醒 | | GET | /api/records?drug_name=&date_from=&date_to= | 养护记录查询 | | POST | /api/records | 新增养护登记 | | GET/POST | /api/units | 单位信息 CRUD | | GET/POST | /api/departments | 科室信息 CRUD | | GET/POST | /api/users | 用户信息 CRUD | | POST | /api/import | 批量导入药品(JSON格式) |


养护计划生成规则

系统根据药品特性自动推断养护周期:

| 药品类型 | 贮藏条件 | 养护周期 | |---------|---------|---------| | 冷链药品(疫苗、胰岛素等) | 冷藏 2-8°C | 每月 | | 阴凉药品(≤20°C) | 阴凉干燥处 | 每季度 | | 常温普通药品 | 室温密封 | 每季度 | | 中药饮片/颗粒 | 阴凉干燥 | 每季度 |


提醒机制

养护计划到期前系统自动分级提醒:

  • 🔴 3天内到期:工作台弹出紧急通知
  • 🟡 1周内到期:工作台显示警告标签
  • 🔵 1个月内到期:工作台显示提示标签

提醒数量实时显示在右上角徽标,每5分钟刷新检查一次。


XML 数据格式示例

每条养护登记记录自动保存为 XML 文件,路径:SQLITE/xml/MR{时间戳}.xml

<?xml version="1.0" ?>
<MaintenanceRecord version="1.0" xmlns="urn:drug-maintenance:v1">
  <record_no>MR20250601120000</record_no>
  <drug_name>阿莫西林胶囊</drug_name>
  <dosage_form>胶囊</dosage_form>
  <batch_no>20250101</batch_no>
  <quantity>100</quantity>
  <quantity_unit></quantity_unit>
  <production_date>2025-01-01</production_date>
  <expiry_date>2027-01-01</expiry_date>
  <temperature>23.5</temperature>
  <humidity>65.0</humidity>
  <appearance_ok>True</appearance_ok>
  <action_taken>继续保存</action_taken>
  <inspect_date>2025-06-01</inspect_date>
</MaintenanceRecord>

药品目录文件格式要求

上传文件需包含以下列(列名可以是以下任意一种):

| 标准字段 | 支持的列名 | |---------|----------| | 药品名称(必填) | 药品名称、通用名、药名、品名、drug_name | | 剂型 | 剂型、药品剂型、dosage_form | | 规格 | 规格、specification | | 生产厂家 | 生产厂家、生产企业、manufacturer | | 批准文号 | 批准文号、国药准字、approval_no |


常见问题排查

Q: 导入Excel报错 A: 需要安装 openpyxlpip install openpyxl

Q: 联网检索失败 A: 检查网络连接。系统有多级兜底,最终会使用规则推断(基于剂型),不影响导入。

Q: 前端提示"无法连接服务器" A: 确认 server.py 已启动,端口默认 8899,检查防火墙设置。

Q: 想要修改默认养护周期 A: 在 drug_search.py_infer_from_rules() 函数中修改 maintenance_cycle_days 值。

Q: 如何备份数据 A: 直接复制 SQLITE/ 目录即可,包含 SQLite 数据库和所有 XML 记录文件。