# 益普生医学信息支持系统 - 软件开发需求文档 ## 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和用户文档 - **模块化设计**:便于功能扩展和维护