Back to skills
extension
Category: OtherAPI key required

MedicalOffice

050117

personAuthor: user_8840b98bhubcommunity

病历解析插件 (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
  • 数据解析:正则表达式 + 大语言模型