223 lines
5.9 KiB
Markdown
223 lines
5.9 KiB
Markdown
# 医学信息支持系统
|
||
|
||
<div align="center">
|
||
|
||

|
||

|
||

|
||

|
||

|
||
|
||
一个为制药企业设计的智能医学信息支持系统,帮助医学信息团队高效处理客户的信息需求。
|
||
|
||
</div>
|
||
|
||
## 📋 项目简介
|
||
|
||
本系统为益普生(Ipsen)开发,用于处理来自医生等客户的医学信息查询请求。系统集成AI技术,能够自动提取关键词、检索相关文献、生成回复内容,并支持多级审核流程。
|
||
|
||
### 核心特性
|
||
|
||
- 🤖 **AI驱动**: 集成Dify AI引擎,自动提取关键词和生成回复
|
||
- 📚 **多层次检索**: 支持企业自有数据、公开数据库、扩展数据的分层检索
|
||
- 📄 **文献管理**: 自动检索和下载PubMed、EMBASE、知网等数据库文献
|
||
- ✅ **审核流程**: 完整的工作流程管理和审核机制
|
||
- 🔧 **灵活配置**: 知识库、数据源、优先级可动态配置
|
||
- 🐳 **容器化部署**: 支持Docker一键部署
|
||
|
||
## 🏗️ 技术架构
|
||
|
||
### 后端技术栈
|
||
- Java 17
|
||
- Spring Boot 3.2.0
|
||
- Spring Data JPA
|
||
- Spring Security
|
||
- MySQL 8.0
|
||
- Maven
|
||
|
||
### 前端技术栈
|
||
- Vue 3
|
||
- Vite
|
||
- Element Plus
|
||
- Pinia
|
||
- Vue Router
|
||
- Axios
|
||
|
||
### AI & 第三方服务
|
||
- Dify AI Platform
|
||
- OpenAI / 其他大模型
|
||
- PubMed、EMBASE、知网等文献数据库
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 使用Docker部署(推荐)
|
||
|
||
1. **克隆项目**
|
||
```bash
|
||
git clone <repository-url>
|
||
cd 文献流程
|
||
```
|
||
|
||
2. **配置环境变量**
|
||
```bash
|
||
cp .env.example .env
|
||
# 编辑.env文件,配置数据库密码、API密钥等
|
||
```
|
||
|
||
3. **启动服务**
|
||
```bash
|
||
docker-compose up -d
|
||
```
|
||
|
||
4. **访问系统**
|
||
- 前端: http://localhost
|
||
- 后端API: http://localhost:8080/api
|
||
- 默认账号: `admin` / `admin123`
|
||
|
||
### 本地开发
|
||
|
||
详细的本地开发环境搭建请参考 [DEPLOYMENT.md](./DEPLOYMENT.md)
|
||
|
||
## 📖 项目文档
|
||
|
||
- [项目结构说明](./PROJECT_STRUCTURE.md) - 详细的项目结构和模块说明
|
||
- [部署指南](./DEPLOYMENT.md) - 完整的部署和配置指南
|
||
- [需求文档](./Readme.md) - 原始业务需求和功能说明
|
||
|
||
## 🔑 核心功能
|
||
|
||
### 1. 查询请求管理
|
||
- 支持上传标准化Excel表格或手动创建查询
|
||
- 自动提取查询关键词(药物、疾病、问题)
|
||
- 多数据源智能检索
|
||
- AI辅助生成回复内容
|
||
|
||
### 2. 知识库管理
|
||
- **自有数据**: 企业研究、历史回复、内部文献
|
||
- **公开数据**: PubMed、EMBASE、知网、ClinicalTrials.gov
|
||
- **扩展数据**: 疾病药物关联、相关扩展信息
|
||
- 支持优先级配置和动态启用/禁用
|
||
|
||
### 3. 文献管理
|
||
- 自动检索多个文献数据库
|
||
- 支持文献筛选和批量下载
|
||
- 配置多个数据库账号
|
||
|
||
### 4. 工作流程
|
||
```
|
||
接收请求 → 提取关键词 → 信息检索 → 生成回复 → 审核 → 下载文献 → 完成
|
||
```
|
||
|
||
### 5. 系统管理
|
||
- 用户管理(管理员、医学信息专员、审核人员)
|
||
- Dify API配置
|
||
- 大模型配置
|
||
- 文献数据库账号配置
|
||
|
||
## 📊 系统架构
|
||
|
||
```
|
||
┌─────────────┐
|
||
│ 客户端 │ (Vue3 + Element Plus)
|
||
└──────┬──────┘
|
||
│ HTTP/HTTPS
|
||
▼
|
||
┌─────────────┐
|
||
│ Nginx │ (反向代理)
|
||
└──────┬──────┘
|
||
│
|
||
├─────────────► 静态资源
|
||
│
|
||
▼
|
||
┌─────────────┐
|
||
│ Spring Boot │ (REST API)
|
||
└──────┬──────┘
|
||
│
|
||
├──────► MySQL (数据存储)
|
||
│
|
||
├──────► Dify API (AI服务)
|
||
│
|
||
└──────► 文献数据库 (PubMed/EMBASE/CNKI)
|
||
```
|
||
|
||
## 🗂️ 数据库设计
|
||
|
||
主要数据表:
|
||
- `users` - 用户管理
|
||
- `inquiry_requests` - 查询请求
|
||
- `knowledge_bases` - 知识库配置
|
||
- `literatures` - 文献信息
|
||
- `audit_logs` - 审核日志
|
||
|
||
详细的数据库结构请参考 [database/schema.sql](./database/schema.sql)
|
||
|
||
## 🔐 安全性
|
||
|
||
- JWT身份认证
|
||
- 基于角色的访问控制(RBAC)
|
||
- 密码加密存储
|
||
- API请求限流
|
||
- SQL注入防护
|
||
|
||
## 🌐 API接口
|
||
|
||
### 查询管理
|
||
```
|
||
POST /api/inquiries/upload # 上传查询表格
|
||
POST /api/inquiries # 创建查询
|
||
GET /api/inquiries # 查询列表
|
||
GET /api/inquiries/{id} # 查询详情
|
||
POST /api/inquiries/{id}/extract-keywords # 提取关键词
|
||
POST /api/inquiries/{id}/search # 执行检索
|
||
POST /api/inquiries/{id}/generate-response # 生成回复
|
||
POST /api/inquiries/{id}/review # 审核
|
||
```
|
||
|
||
### 知识库管理
|
||
```
|
||
GET /api/knowledge-bases # 列表
|
||
POST /api/knowledge-bases # 创建
|
||
PUT /api/knowledge-bases/{id} # 更新
|
||
DELETE /api/knowledge-bases/{id} # 删除
|
||
```
|
||
|
||
### 文献管理
|
||
```
|
||
GET /api/literatures/inquiry/{id} # 获取文献
|
||
POST /api/literatures/{id}/download # 下载文献
|
||
POST /api/literatures/inquiry/{id}/download-selected # 批量下载
|
||
```
|
||
|
||
## 📝 开发计划
|
||
|
||
- [ ] 实现完整的用户认证和授权
|
||
- [ ] 集成实际的Dify API
|
||
- [ ] 实现文献自动下载功能
|
||
- [ ] 添加数据统计和报表功能
|
||
- [ ] 实现邮件通知功能
|
||
- [ ] 添加API文档(Swagger)
|
||
- [ ] 性能优化和缓存策略
|
||
- [ ] 单元测试和集成测试
|
||
|
||
## 🤝 贡献指南
|
||
|
||
本项目为企业内部项目,暂不接受外部贡献。
|
||
|
||
## 📄 许可证
|
||
|
||
本项目为专有软件,版权归益普生(Ipsen)所有。
|
||
|
||
## 👥 联系方式
|
||
|
||
如有问题或建议,请联系项目团队。
|
||
|
||
---
|
||
|
||
<div align="center">
|
||
Made with ❤️ for Ipsen Medical Information Team
|
||
</div>
|
||
|
||
|
||
|
||
|