12 KiB
12 KiB
益普生医学信息支持系统 - 软件开发需求文档
1. 项目概述
1.1 项目目的
构建一个智能化的医学信息支持系统,解决企业在受到客户(主要是医生)的信息支持需求时,能够利用该网站快速处理信息,给到客户支持。
1.2 核心价值
1.2.1 提高医学信息查询效率
- 从信息申请的文本中智能化提取出用于后续检索的关键词
- 首先在已建立的知识库中进行查询,而后在查询外部公开网络中的信息
- 通过AI对查询的结果进行智能化分析
- 自动化文献下载和管理
1.2.2 标准化信息处理流程
- 规范化回复内容生成
2. 详细业务流程
2.1 咨询需求创建阶段
- 客户需求提交:客户通过邮件向益普生提出需求(如:请提供达菲林最新的临床试验数据)
- 需求记录:医学信息团队记录需求并指派专门人员处理
- 系统录入:医学信息专员将查询内容录入系统
- 必填字段:查询内容描述
- 可选字段:邮箱(非必填)、姓名、联系方式等(非必填)
2.2 智能关键词提取阶段
-
AI关键词提取:系统通过AI从查询申请的具体描述中自动提取关键词
- 提取范围:药品中文名称(阿司匹林)、英文名称(Aspirin)、查询请求事项(如,儿童用药中的安全性注意事项)
- 该提取动作通过调用Dify配置的AI流程来实现。Dify的API URL为:https://api.dify.ai/v1 ;API Key为app-croZF0SSV5fiyXbK3neGrOT6
-
关键词展示与确认:在页面显示提取的关键词,供用户确认和修改
-
关键词优化:用户可添加、删除或修改关键词,形成检索条件,检查并确认检索条件的准确性
2.3 数据源选择阶段
- 检索范围选择:用户通过按钮触发选择需要在以下范围进行查找,可以多选:
- 内部数据:企业自有研究数据、历史回复、内部文献
- 知识库:已整理的企业知识库数据
- 知网:中国知网数据库
- ClinicalTrials:临床试验数据库
2.4 信息检索与结果处理阶段
- 信息检索:根据选择的数据源和构建好的检索条件进行检索
- 结果展示:根据每一数据源分别在页面显示检索结果列表
- 结果筛选:用户对每条记录进行判断和处理:
- 错误信息:标记为错误并删除
- 纳入回复参考资料:选择是否纳入最终回复
- 下载全文:选择是否需要下载全文
2.5 文献下载管理阶段
- 下载任务生成:对需要下载全文的文献生成下载链接
- 待下载页面:在专门的待下载全文页面显示所有下载任务
- 自动化下载:后续开发自动化工具(联合使用RPA工具影刀)读取待下载任务并执行下载
2.6 智能分析与回复生成阶段
- 资料整合:将用户勾选的文件和资料进行整合
- AI智能分析:通过调用AI智能体阅读和分析所有选定资料(AI智能体的API地址与key的信息将写到代码中)
- 回复生成:形成与待回答问题相关的标准化回复,包含:
- 问题:原始查询问题
- 查询到的资料:相关资料的简要说明
- 总结:基于资料的核心观点总结
- 详细的资料列表:完整的参考资料清单
2.7 审核与发送阶段
- 内容审核:医学信息人员对生成的回复进行审核
- 最终确认:确认无误后发送给客户
2.8 处理状态显示
- 任务状态:查询任务的状态包括,
- 创建成功 (查询创建后则状态自动标记为创建成功)
- 关键词提取
- 检索范围确定
- 检索结果预览
- 生成回复
- 修改回复
- 下载文献
- 发送回复
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 的查看器中直接渲染:
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
- 前端:进入富文本/结构化编辑 UI,保存
- 发送最终回复:
- 前端:
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和用户文档
- 模块化设计:便于功能扩展和维护