AutoMedinfo/Readme.md

281 lines
12 KiB
Markdown
Raw Permalink Normal View History

2025-10-30 10:18:40 +08:00
# 益普生医学信息支持系统 - 软件开发需求文档
## 1. 项目概述
### 1.1 项目目的
构建一个智能化的医学信息支持系统,解决企业在受到客户(主要是医生)的信息支持需求时,能够利用该网站快速处理信息,给到客户支持。
### 1.2 核心价值
### 1.2.1 提高医学信息查询效率
- 从信息申请的文本中智能化提取出用于后续检索的关键词
- 首先在已建立的知识库中进行查询,而后在查询外部公开网络中的信息
- 通过AI对查询的结果进行智能化分析
- 自动化文献下载和管理
### 1.2.2 标准化信息处理流程
- 规范化回复内容生成
## 2. 详细业务流程
### 2.1 咨询需求创建阶段
1. **客户需求提交**:客户通过邮件向益普生提出需求(如:请提供达菲林最新的临床试验数据)
2. **需求记录**:医学信息团队记录需求并指派专门人员处理
3. **系统录入**:医学信息专员将查询内容录入系统
- **必填字段**:查询内容描述
- **可选字段**:邮箱(非必填)、姓名、联系方式等(非必填)
### 2.2 智能关键词提取阶段
4. **AI关键词提取**系统通过AI从查询申请的具体描述中自动提取关键词
- 提取范围药品中文名称阿司匹林、英文名称Aspirin、查询请求事项儿童用药中的安全性注意事项
- 该提取动作通过调用Dify配置的AI流程来实现。Dify的API URL为https://api.dify.ai/v1 API Key为app-croZF0SSV5fiyXbK3neGrOT6
5. **关键词展示与确认**:在页面显示提取的关键词,供用户确认和修改
6. **关键词优化**:用户可添加、删除或修改关键词,形成检索条件,检查并确认检索条件的准确性
### 2.3 数据源选择阶段
7. **检索范围选择**:用户通过按钮触发选择需要在以下范围进行查找,可以多选:
- **内部数据**:企业自有研究数据、历史回复、内部文献
- **知识库**:已整理的企业知识库数据
- **知网**:中国知网数据库
- **ClinicalTrials**:临床试验数据库
### 2.4 信息检索与结果处理阶段
8. **信息检索**:根据选择的数据源和构建好的检索条件进行检索
9. **结果展示**:根据每一数据源分别在页面显示检索结果列表
10. **结果筛选**:用户对每条记录进行判断和处理:
- **错误信息**:标记为错误并删除
- **纳入回复参考资料**:选择是否纳入最终回复
- **下载全文**:选择是否需要下载全文
### 2.5 文献下载管理阶段
11. **下载任务生成**:对需要下载全文的文献生成下载链接
12. **待下载页面**:在专门的待下载全文页面显示所有下载任务
13. **自动化下载**后续开发自动化工具联合使用RPA工具影刀读取待下载任务并执行下载
### 2.6 智能分析与回复生成阶段
14. **资料整合**:将用户勾选的文件和资料进行整合
15. **AI智能分析**通过调用AI智能体阅读和分析所有选定资料AI智能体的API地址与key的信息将写到代码中
16. **回复生成**:形成与待回答问题相关的标准化回复,包含:
- **问题**:原始查询问题
- **查询到的资料**:相关资料的简要说明
- **总结**:基于资料的核心观点总结
- **详细的资料列表**:完整的参考资料清单
### 2.7 审核与发送阶段
17. **内容审核**:医学信息人员对生成的回复进行审核
18. **最终确认**:确认无误后发送给客户
### 2.8 处理状态显示
19. **任务状态**:查询任务的状态包括,
- 创建成功 (查询创建后则状态自动标记为创建成功)
- 关键词提取
- 检索范围确定
- 检索结果预览
- 生成回复
- 修改回复
- 下载文献
- 发送回复
### 2.9 状态机与流程编排(按钮驱动)
为保证流程可视、可控、可追踪,系统引入显式状态机。每个状态通过页面上的“主要动作按钮”触发进入下一状态;也支持必要的回退。
- **状态定义State**
- 创建成功 (CREATED)
- 关键词提取 (KEYWORD_EXTRACTION)
- 检索范围确定 (SCOPE_CONFIRMED)
- 检索结果预览 (RESULTS_REVIEW)
- 下载文献 (DOWNLOAD_PENDING)
- 生成回复 (DRAFT_GENERATION)
- 修改回复 (REVISION)
- 发送回复 (SENT)
- **核心转移Transitions及触发按钮Action**
- CREATED → KEYWORD_EXTRACTION按钮“开始提取关键词”
- KEYWORD_EXTRACTION → SCOPE_CONFIRMED按钮“确认关键词并选择数据源”
- SCOPE_CONFIRMED → RESULTS_REVIEW按钮“开始检索”
- RESULTS_REVIEW → DOWNLOAD_PENDING按钮“生成下载任务”当勾选需下载全文的文献
- RESULTS_REVIEW → DRAFT_GENERATION按钮“生成草稿回复”当已选定参考资料
- DOWNLOAD_PENDING → RESULTS_REVIEW按钮“刷新下载结果并回到预览”下载完成后复核
- DRAFT_GENERATION → REVISION按钮“进入编辑修改”
- REVISION → SENT按钮“发送最终回复”
- 允许回退:
- RESULTS_REVIEW → SCOPE_CONFIRMED按钮“返回调整检索范围”
- REVISION → RESULTS_REVIEW按钮“返回结果预览”
- **前端页面与按钮布局建议**
- 咨询详情页(`InquiryDetail.vue`)顶部固定“状态徽标 + 主动作按钮”区,底部提供上下文次要操作。
- 不同状态下展示不同的主要按钮,保持单一、明确的下一步。
- 当必需输入或选择未完成时,主要按钮置灰并给出就绪条件提示。
- **后端状态管理约束**
- 单一来源:后端持久化字段记录任务状态,前端仅展示并通过 API 触发转移。
- 转移校验:后端校验当前状态是否允许进入目标状态;对缺失前置条件(如未选资料却生成草稿)返回 4xx 并附带原因。
### 2.10 文本流程图Mermaid
可在支持 Mermaid 的查看器中直接渲染:
```mermaid
flowchart TD
CREATED[创建成功] -->|开始提取关键词| KEYWORD[关键词提取]
KEYWORD -->|确认关键词并选择数据源| SCOPE[检索范围确定]
SCOPE -->|开始检索| PREVIEW[检索结果预览]
PREVIEW -->|生成下载任务| DL[下载文献]
DL -->|刷新下载结果并回到预览| PREVIEW
PREVIEW -->|生成草稿回复| DRAFT[生成回复]
DRAFT -->|进入编辑修改| REV[修改回复]
REV -->|发送最终回复| SENT[发送回复]
PREVIEW -->|返回调整检索范围| SCOPE
REV -->|返回结果预览| PREVIEW
```
### 2.11 API 与前端动作映射(概要)
- **开始提取关键词**
- 前端:在 `InquiryDetail.vue` 调用 `POST /api/inquiry/{id}/keywords/extract`
- 成功:后端更新为 KEYWORD_EXTRACTION 或直接返回关键词,前端进入关键词确认 UI
- **确认关键词并选择数据源**
- 前端:`POST /api/inquiry/{id}/scope` 提交关键词与数据源清单
- 成功:后端更新为 SCOPE_CONFIRMED
- **开始检索**
- 前端:`POST /api/inquiry/{id}/search`(异步)
- 成功:后端更新为 RESULTS_REVIEW并可分页拉取结果 `GET /api/inquiry/{id}/results`
- **生成下载任务**
- 前端:`POST /api/inquiry/{id}/downloads` 提交选中的条目 ID
- 成功:后端更新为 DOWNLOAD_PENDING下载进度 `GET /api/download-tasks`
- **生成草稿回复**
- 前端:`POST /api/inquiry/{id}/response/draft` 提交选定资料引用
- 成功:后端更新为 DRAFT_GENERATION
- **进入编辑修改**
- 前端:进入富文本/结构化编辑 UI保存 `PUT /api/inquiry/{id}/response`
- 成功:后端更新为 REVISION
- **发送最终回复**
- 前端:`POST /api/inquiry/{id}/send`
- 成功:后端更新为 SENT记录审计日志
## 3. 功能模块详细设计
### 3.1 用户管理模块
- **用户注册/登录**:支持多种角色(医学信息专员、管理员等)
- **权限管理**:基于角色的访问控制
- **用户信息管理**:个人资料维护
### 3.2 咨询需求管理模块
- **需求创建**:支持手动填写查询需求
- **需求列表**:查看所有咨询需求
- **需求详情**:查看具体需求信息
- **需求状态管理**:跟踪需求处理状态
### 3.3 智能关键词提取模块
- **AI关键词提取**基于Dify API的智能提取
- **关键词编辑**:用户可修改、添加、删除关键词
- **关键词历史**:保存历史提取记录
- **关键词模板**:常用关键词模板管理
### 3.4 数据源管理模块
- **数据源配置**:配置各种数据源的连接信息
- **检索策略**:定义检索顺序和策略
- **数据源状态监控**:监控各数据源可用性
### 3.5 信息检索模块
- **多源检索**支持内部数据、知识库、知网、ClinicalTrials等
- **检索结果管理**:结果展示、筛选、排序
- **检索历史**:保存检索记录和结果
### 3.6 文献下载管理模块
- **下载任务管理**:创建、查看、管理下载任务
- **下载状态跟踪**:实时跟踪下载进度
- **文件存储管理**:管理下载的文件
- **下载配置**:配置下载账号和路径
### 3.7 AI智能分析模块
- **文档阅读**AI智能体阅读选定资料
- **内容分析**:提取关键信息和观点
- **回复生成**:生成标准化回复内容
- **格式规范**:确保回复格式符合要求
### 3.8 知识库管理模块
- **知识库配置**:管理各类知识库连接
- **内容管理**:添加、编辑、删除知识库内容
- **分类管理**:知识库内容分类和标签
- **搜索功能**:知识库内容搜索
### 3.9 系统配置模块
- **API配置**配置Dify和其他API密钥DIFY_API_URL=https://api.dify.ai/v1
DIFY_API_KEY=your-dify-api-key-here
- **系统参数**:配置系统运行参数
- **数据源配置**:配置各种数据源连接
- **下载配置**:配置文献下载相关参数
## 4. 技术架构要求
### 4.1 开发技术栈
- **后端**Java + Spring Boot
- **前端**Vue3
- **数据库**MySQL 8.0+
- **AI引擎**Dify API
### 4.2 系统架构
- **架构模式**:前后端分离
- **API设计**RESTful API
- **安全认证**JWT Token
- **文件存储**:本地存储
### 4.3 部署要求
- **容器化**支持Docker部署
- **环境配置**:支持多环境配置
- **监控日志**:集成日志和监控系统
## 5. 数据源配置要求
### 5.1 内部数据源
- **企业研究数据**:内部研究项目数据
- **历史回复数据**:过往咨询回复记录
- **内部文献**:企业内部技术文档和报告
### 5.2 公开数据源
- **监管机构网站**FDA、EMA等监管数据
- **知网**:中国知网学术文献
- **PubMed**:医学文献数据库
- **EMBASE**:生物医学文献数据库
- **ClinicalTrials.gov**:临床试验数据库
### 5.3 扩展数据源
- **疾病数据**:疾病相关信息数据库
- **药物数据**:药物信息数据库
- **关联数据**:疾病-药物关联数据
## 6. 界面设计要求
### 6.1 整体设计原则
- **用户友好**:界面简洁直观,操作便捷
- **响应式设计**:支持多种屏幕尺寸
- **一致性**:保持界面风格统一
### 6.2 关键页面设计
- **咨询需求创建页面**:简化表单,突出必填项
- **关键词确认页面**:清晰展示提取结果,支持编辑
- **数据源选择页面**:直观的复选框选择界面
- **检索结果页面**:列表展示,支持批量操作
- **待下载页面**:任务列表,支持批量下载
- **回复生成页面**:分步骤展示生成过程
## 7. 非功能性需求
### 7.1 性能要求
- **响应时间**:页面加载时间 < 3秒
- **并发处理**:支持多用户同时操作
- **数据处理**:支持大量文献数据处理
### 7.2 安全要求
- **数据安全**:敏感数据加密存储
- **访问控制**:基于角色的权限管理
- **审计日志**:记录所有操作日志
### 7.3 可维护性
- **代码规范**遵循Java和Vue开发规范
- **文档完整**提供完整的API和用户文档
- **模块化设计**:便于功能扩展和维护