Skip to content

Repository files navigation

OncoVision

肿瘤与皮肤病变图像辅助分析原型

OncoVision 是一个前后端分离的医学图像分析演示系统。用户上传病变图像后,Spring Boot 服务负责文件校验与存储,并调用通义千问视觉模型生成结构化观察结果;Vue 前端提供图像预览、结果展示和 PDF 报告导出。

本项目用于软件工程与多模态模型接入演示,不具备医疗器械资质,输出内容不能用于诊断、治疗或临床决策。

功能概览

模块 功能
访问控制 账号登录、JWT 签发与接口鉴权
图像上传 图片类型校验、本地存储和浏览器预览
多模态分析 调用 DashScope qwen-vl-plus 分析病变图像
结果展示 展示模型生成的病变观察、风险提示与就医建议
报告导出 将原始图像、分析文本和免责声明生成 PDF
配置管理 API Key、账号、JWT 密钥和存储路径均通过环境变量注入

处理流程

flowchart LR
    A["用户登录"] --> B["Vue 3 前端"]
    B --> C["上传病变图像"]
    C --> D["Spring Boot API"]
    D --> E["文件校验与本地存储"]
    E --> F["通义千问视觉模型"]
    F --> G["结构化分析文本"]
    G --> B
    G --> H["iText PDF 报告"]
Loading

技术栈

  • 前端:Vue 3、Vue Router、Vite
  • 后端:Java 8、Spring Boot 2.7、Spring MVC
  • 模型服务:阿里云 DashScope、Qwen-VL Plus
  • 身份认证:JWT
  • 报告生成:iText 5、iText Asian
  • 构建工具:Maven Wrapper、npm

项目结构

tumor-ai-analysis-system/
├─ src/main/java/com/example/demo/
│  ├─ LoginController.java          # 登录与 JWT 签发
│  ├─ TumorAnalysisController.java  # 图像分析与报告接口
│  ├─ AliyunAIUtil.java             # 视觉模型适配器
│  ├─ PdfExportUtil.java            # PDF 报告生成
│  └─ JwtUtil.java                  # JWT 生成与校验
├─ src/test/java/com/example/demo/  # JUnit/Mockito 后端测试
├─ src/main/resources/
│  └─ application.properties        # 环境变量映射
├─ bioagent-frontend/
│  ├─ src/views/Login.vue
│  ├─ src/views/TumorAnalysis.vue
│  ├─ src/views/__tests__/          # Vitest 组件测试
│  ├─ e2e/                          # Playwright 端到端测试
│  └─ .env.example
├─ docs/testing/                    # 测试计划、用例、风险与面试提纲
├─ .github/workflows/test.yml       # 持续集成
├─ pom.xml
└─ README.md

本地运行

1. 环境要求

  • JDK 8 或更高版本
  • Node.js 20 或更高版本(测试工具链要求)
  • 有效的 DashScope API Key

2. 配置后端

在 PowerShell 中设置运行时环境变量:

$env:DASHSCOPE_API_KEY = "replace-with-your-key"
$env:APP_ADMIN_USERNAME = "admin"
$env:APP_ADMIN_PASSWORD = "replace-with-a-strong-password"
$env:APP_JWT_SECRET = "replace-with-at-least-32-characters"

可选配置:

环境变量 默认值 说明
SERVER_PORT 8080 后端端口
FILE_UPLOAD_PATH ./data/uploads/ 上传图像目录
FILE_PDF_PATH ./data/reports/ PDF 报告目录

启动后端:

.\mvnw.cmd spring-boot:run

3. 配置前端

cd bioagent-frontend
Copy-Item .env.example .env.local
npm install
npm run dev

默认访问地址为 http://localhost:5173,前端默认连接 http://localhost:8080

测试与质量保障

项目包含可直接演示的分层测试体系:

层级 工具 覆盖内容
后端单元/组件 JUnit 5、Mockito、JaCoCo 登录、JWT、上传、AI 响应解析、PDF 与异常分支
前端组件 Vitest、Vue Test Utils 表单、请求、会话、页面状态和下载行为
端到端 Playwright、Chromium 登录 → 上传 → 展示分析结果的核心路径
持续集成 GitHub Actions 后端、前端、E2E 并行回归与报告归档

后端测试:

.\mvnw.cmd test
# 生成覆盖率报告
.\mvnw.cmd -Pcoverage test

前端组件与 E2E 测试:

cd bioagent-frontend
npm ci
npm run test:coverage
npx playwright install chromium  # 首次执行需要
npm run test:e2e

详细资料:

API

方法 路径 认证 说明
POST /api/login 校验账号并签发 JWT
POST /analyze-tumor Bearer JWT 上传图像并调用视觉模型
POST /export-pdf Bearer JWT 生成并下载分析报告

安全与隐私

  • 不要将 API Key、密码或 JWT 密钥提交到 Git。
  • .env.local、上传图像、PDF 报告和构建产物默认不进入版本控制。
  • 演示时使用去标识化或公开授权的图像,不要上传真实患者身份信息。
  • 当前认证模块用于单用户演示;面向真实用户部署时应增加密码哈希、数据库用户体系、权限控制、审计日志和 HTTPS。

当前边界

  • 使用的是通用视觉语言模型,不是经过临床验证的专病模型。
  • 当前实现处理普通图像上传,不包含 DICOM、PACS 或影像设备协议。
  • 尚未完成真实标注数据集上的敏感度、特异度、AUC 和外部验证。
  • PDF 仅用于保存演示结果,不是正式医疗报告。

后续计划

  • 增加统一的模型适配接口和模拟模型,支持无云端 Key 演示。
  • 增加对象存储、任务队列、数据库记录和分析历史。
  • 增加文件魔数校验、速率限制、操作审计和自动清理策略。
  • 使用公开医学图像数据集建立可复现评估流程。
  • 增加真实模型按需集成测试、跨浏览器测试和并发性能基线。

License

MIT License

About

基于 Spring Boot、Vue 3 与通义千问视觉模型的病变图像辅助分析原型,支持安全登录、图像上传、结构化分析与 PDF 报告导出。

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages