AutoMedinfo/Readme.md

12 KiB
Raw Permalink Blame History

益普生医学信息支持系统 - 软件开发需求文档

1. 项目概述

1.1 项目目的

构建一个智能化的医学信息支持系统,解决企业在受到客户(主要是医生)的信息支持需求时,能够利用该网站快速处理信息,给到客户支持。

1.2 核心价值

1.2.1 提高医学信息查询效率

  • 从信息申请的文本中智能化提取出用于后续检索的关键词
  • 首先在已建立的知识库中进行查询,而后在查询外部公开网络中的信息
  • 通过AI对查询的结果进行智能化分析
  • 自动化文献下载和管理

1.2.2 标准化信息处理流程

  • 规范化回复内容生成

2. 详细业务流程

2.1 咨询需求创建阶段

  1. 客户需求提交:客户通过邮件向益普生提出需求(如:请提供达菲林最新的临床试验数据)
  2. 需求记录:医学信息团队记录需求并指派专门人员处理
  3. 系统录入:医学信息专员将查询内容录入系统
    • 必填字段:查询内容描述
    • 可选字段:邮箱(非必填)、姓名、联系方式等(非必填)

2.2 智能关键词提取阶段

  1. AI关键词提取系统通过AI从查询申请的具体描述中自动提取关键词

    • 提取范围药品中文名称阿司匹林、英文名称Aspirin、查询请求事项儿童用药中的安全性注意事项
    • 该提取动作通过调用Dify配置的AI流程来实现。Dify的API URL为https://api.dify.ai/v1 API Key为app-croZF0SSV5fiyXbK3neGrOT6
  2. 关键词展示与确认:在页面显示提取的关键词,供用户确认和修改

  3. 关键词优化:用户可添加、删除或修改关键词,形成检索条件,检查并确认检索条件的准确性

2.3 数据源选择阶段

  1. 检索范围选择:用户通过按钮触发选择需要在以下范围进行查找,可以多选:
    • 内部数据:企业自有研究数据、历史回复、内部文献
    • 知识库:已整理的企业知识库数据
    • 知网:中国知网数据库
    • ClinicalTrials:临床试验数据库

2.4 信息检索与结果处理阶段

  1. 信息检索:根据选择的数据源和构建好的检索条件进行检索
  2. 结果展示:根据每一数据源分别在页面显示检索结果列表
  3. 结果筛选:用户对每条记录进行判断和处理:
    • 错误信息:标记为错误并删除
    • 纳入回复参考资料:选择是否纳入最终回复
    • 下载全文:选择是否需要下载全文

2.5 文献下载管理阶段

  1. 下载任务生成:对需要下载全文的文献生成下载链接
  2. 待下载页面:在专门的待下载全文页面显示所有下载任务
  3. 自动化下载后续开发自动化工具联合使用RPA工具影刀读取待下载任务并执行下载

2.6 智能分析与回复生成阶段

  1. 资料整合:将用户勾选的文件和资料进行整合
  2. AI智能分析通过调用AI智能体阅读和分析所有选定资料AI智能体的API地址与key的信息将写到代码中
  3. 回复生成:形成与待回答问题相关的标准化回复,包含:
    • 问题:原始查询问题
    • 查询到的资料:相关资料的简要说明
    • 总结:基于资料的核心观点总结
    • 详细的资料列表:完整的参考资料清单

2.7 审核与发送阶段

  1. 内容审核:医学信息人员对生成的回复进行审核
  2. 最终确认:确认无误后发送给客户

2.8 处理状态显示

  1. 任务状态:查询任务的状态包括,
  • 创建成功 (查询创建后则状态自动标记为创建成功)
  • 关键词提取
  • 检索范围确定
  • 检索结果预览
  • 生成回复
  • 修改回复
  • 下载文献
  • 发送回复

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
  • 发送最终回复
    • 前端: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和用户文档
  • 模块化设计:便于功能扩展和维护