一、项目演示视频
二、技术栈
前端: Vue3 + TypeScript + Element Plus + ECharts + Pinia + Vue Router
后端+算法端: Flask + SQLite + Flask-CORS + PyJWT + Neo4j + Qwen API接口
三、功能模块
【用户端功能】
- 用户管理:注册、登录、个人信息管理、密码修改、头像上传
- 文档浏览:文档列表查看、文档详情查看、文档搜索
- 智能问答:基于知识图谱的智能问答,支持多轮对话、图片上传识别
- 会话管理:创建会话、查看历史会话、删除会话、自动生成标题
- 问答历史:查看问答记录、相关实体展示、疾病信息和病历案例检索展示、知识图谱上下文展示
- 个人中心:个人资料修改、密码修改、头像更换
【管理端功能】
- 数据统计:用户数、文档数、会话数、问答记录数统计、趋势分析
- 用户管理:用户信息查看、状态管理、密码重置、用户删除
- 文档管理:文档上传、文档CRUD操作、文档内容查看、文档下载
- 知识图谱管理:
- 数据同步:从文档中提取实体和关系,同步到Neo4j
- 全量重建:重新构建整个知识图谱
- 增量构建:仅处理未构建图谱的文档
- 任务状态查询:查看图谱构建任务的进度和状态
- 节点搜索:搜索特定实体及其邻居节点
- 知识图谱可视化:
- 交互式图谱展示:使用ECharts展示节点和关系
- 节点类型过滤:按实体类型筛选节点(疾病、患者、病原体等12种类型)
- 关系类型过滤:按关系类型筛选边(诊断为、由...引起、表现症状等12种关系)
- 节点搜索:搜索节点并展示1层邻居关系
- 布局切换:支持力导向布局和圆形布局
- 节点连接数展示:显示每个节点的实际连接数(度数)
- 重复边处理:自动使用曲线区分连接同一对节点的多条边
- 统计信息:节点数、关系数、类型分布统计
- 疾病信息管理:
- 疾病档案CRUD:创建、查询、更新、删除疾病基本信息
- 完整数据录入:编号(ICD-10)、名称(中英文)、病原体、症状、治疗方案、图片等
- 图片上传:支持疾病图片上传和管理
- 搜索和筛选:按疾病名称或编号搜索
- 级联删除:删除疾病时自动删除关联的所有病历
- 统计分析:疾病数量、病原体类型分布、严重程度统计
- 病历案例管理:
- 病历记录CRUD:创建、查询、更新、删除医疗病历案例
- 多图上传:支持每个病历上传多张图片
- 关联疾病:每个病历关联到对应的疾病信息
- 详细信息:就诊日期、就诊医院、患者信息、临床表现、检查结果、诊疗信息
- 按疾病筛选:查看特定疾病的所有病历
- 关键词搜索:按病历标题、医院等关键词搜索
- 多维度统计:按医院、患者年龄、严重程度统计分析
【核心技术功能】
- GraphRAG检索增强生成:结合知识图谱检索策略和关系数据库检索
- 实体识别:从用户问题中识别疾病、患者、病原体等关键实体
- 关系推理:基于知识图谱的多跳关系推理
- 三元组提取:使用LLM从文档中提取<头实体, 关系, 尾实体>三元组
- 上下文构建:为LLM构建包含实体描述和关系的结构化上下文
- 疾病信息检索:从关系数据库检索疾病基本信息和病历案例
- 图片识别问答:支持上传病症图片进行识别和问答
- 异步任务处理:知识图谱构建任务异步执行,支持进度查询
【知识图谱节点类型(12种)】
- Disease(疾病):疾病实体,如"流行性感冒"
- Patient(患者):患者实体
- Pathogen(病原体):病原体实体,如"流感病毒"、"细菌"
- Symptom(症状):症状实体,如"发热"、"咳嗽"
- Treatment(治疗方法):治疗方法实体,如"抗病毒治疗"
- BodyPart(身体部位):身体部位/器官系统,如"呼吸道"、"肺部"
- Examination(检查项目):检查项目,如"血常规"、"CT检查"
- RiskFactor(危险因素):危险因素,如"吸烟"、"免疫力低下"
- Drug(药物):药物实体,如"奥司他韦"、"阿莫西林"
- Department(科室):医疗科室,如"呼吸内科"、"感染科"
- Document(文档):文档来源
- TimePoint(时间点):时间信息,如"冬春季"、"发病初期"
【知识图谱关系类型(12种)】
- DIAGNOSED_AS:患者被诊断为某疾病
- CAUSED_BY:疾病由病原体引起
- SHOWS_SYMPTOM:疾病表现症状
- AFFECTS_BODYPART:疾病影响身体部位
- PREVENTED_BY:疾病被预防措施预防
- TREATED_WITH:疾病用某药物/方法治疗
- REQUIRES_EXAMINATION:疾病需要某检查
- OCCURS_AT:发生于时间
- AGGRAVATED_BY:疾病被危险因素加重
- DOCUMENTED_IN:实体记录于文档
- MANAGED_BY:疾病由某科室管理
- RELATED_TO:通用相关关系
【数据库表结构(6张表)】
- user:用户表,存储用户基本信息和权限
- document:文档表,存储上传的医疗相关文档
- conversation:会话表,存储用户的问答会话
- qa_history:问答历史表,存储每轮问答的详细记录(包含疾病信息和病历案例检索结果)
- disease_info:疾病信息表,存储疾病的档案数据(包含图片)
- medical_case:病历案例表,存储医疗病历案例(包含多张图片)
四、项目链接
链接: https://pan.baidu.com/s/1XYLkb8M72dFk6Z1YGLRQAg?pwd=r7yg 提取码: r7yg
- 完整系统源码
(1)前端源码(web-vue)
(2)后端与算法端源码(web-flask) - 项目介绍文档
(1)项目概述
(2)项目技术栈
(3)项目目录结构
(4)系统架构图、功能模块图
(5)数据库表结构详细说明 - 项目启动教程
(1)环境安装教程(视频+文档)
(2)系统启动教程(视频+文档)
