病历解析插件 (Medical Record Parser)
基于 Qwen-turbo 大语言模型 的智能病历解析与可视化系统,支持从非结构化病历文本中自动提取患者信息、诊断、用药方案、生命体征等结构化数据,并提供直观的可视化页面。
功能特性
智能解析
- LLM 智能提取:利用阿里云 Qwen-turbo 模型,从自由文本病历中提取结构化数据
- 规则解析回退:LLM 解析失败时自动切换到正则规则解析,保证系统稳定性
- 支持多种病历类型:门诊病历、住院病历、急诊病历
提取字段
- 患者基本信息:姓名、性别、年龄、病历号、科室等
- 生命体征:体温、脉搏、呼吸、血压、血氧
- 诊断信息:诊断名称、ICD 编码、诊断类型(主要/次要)
- 用药方案:药物名称、剂量、用法、频次
- 章节内容:主诉、现病史、既往史、体格检查、辅助检查等
可视化展示
- 统计看板:病历总数、性别分布、类型统计
- 数据图表:年龄分布柱状图、性别分布饼图(基于 Chart.js)
- 病历列表:卡片式展示,支持搜索过滤
- 详情弹窗:点击查看完整结构化数据
- 文件上传:支持上传新的病历文件并实时解析
- RESTful API:提供 JSON API 接口,便于集成
项目结构
MedicalOffice/
├── app.py # Flask Web 应用主程序
├── parser.py # 病历解析器(规则解析 + LLM 调度)
├── llm_extractor.py # Qwen-turbo LLM 提取器
├── config.py # 配置文件
├── requirements.txt # Python 依赖
├── README.md # 项目说明
├── templates/
│ └── index.html # 可视化页面模板
└── .env # 环境变量(API Key 等)
快速开始
1. 安装依赖
cd MedicalOffice
pip install -r requirements.txt
2. 配置 API Key
方式一:直接编辑 config.py,修改 DASHSCOPE_API_KEY 值
方式二:在项目目录下创建 .env 文件:
DASHSCOPE_API_KEY=你的阿里云DashScope API Key
LLM_MODEL=qwen-turbo
USE_LLM_PARSE=true
3. 准备病历数据
格式要求:
- 每条病历以
# 病历标题开头 - 章节以
**章节名**标记 - 病历之间用
---分隔
4. 启动服务
python app.py
访问 http://127.0.0.1:8899 查看可视化页面。
API 接口
| 接口 | 方法 | 说明 |
|------|------|------|
| / | GET | 主页面 |
| /api/records | GET | 获取所有病历记录 |
| /api/records/<id> | GET | 获取单条病历详情 |
| /api/stats | GET | 获取统计信息 |
| /api/refresh | GET | 强制刷新数据 |
| /api/upload | POST | 上传新的病历文件 |
技术栈
- 后端:Python Flask
- LLM:阿里云 DashScope (Qwen-turbo)
- 前端:HTML + CSS + JavaScript + Chart.js
- 数据解析:正则表达式 + 大语言模型
微信扫一扫