Skip to content

l5769389/DicomVisionClient

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

234 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DicomVision

English

DICOM Viewer for Desktop / Web / Mobile

DicomVision 是一套面向医学影像浏览、分析和教学验证场景的 DICOM Viewer。项目采用 C/S 架构:客户端基于 Vue、TypeScript 和 Electron 构建,后端基于 FastAPI、Socket.IO 和医学影像处理栈完成 DICOM 解析、渲染、重建、分析和导出,并将结果实时推送到桌面端、Web 端和移动端界面。

项目概览

DicomVision 将重计算任务放在后端执行,前端负责交互、工具组织和结果呈现。这样可以让浏览器、移动端和桌面端复用同一套影像能力,也便于在局域网、云服务器或桌面内置后端环境中部署。

本项目特别适合客户端显存有限、但仍需要使用统一 DICOM 浏览和后端 2D/3D 渲染能力的场景。对于显存充足且追求本地 GPU 交互性能的工作站,建议优先评估 C3D 等原生方案;对于需要将计算与界面部署在同一进程中的场景,也可以选择 Python/C++ 等前后端不分离的实现。DicomVision 的 C/S 架构主要面向跨端复用、集中式渲染和轻量客户端接入。

核心能力

  • 数据导入:支持 DICOM 文件、文件夹、拖拽导入、浏览器上传、服务端样例数据,以及 PACS DICOMweb/DIMSE 查询和下载。
  • 2D 浏览:支持窗宽窗位、缩放、平移、滚动、翻转、旋转、伪彩、同步浏览、Compare、Layout、多序列和多视图工作区。
  • MPR 与 4D:支持 AX/COR/SAG 三视图、斜切 MPR、十字线同步、MPR 播放、4D phase 播放、FPS 控制和时相同步。
  • 3D 可视化:支持 VR 体渲染、Surface 渲染、MIP/XRay 类模板、AAA/CT/CTA/MR/CBCT 自适应预设、3D 参数面板、去床板、自由形状裁剪和移动端触控 3D。
  • PET/CT Fusion:支持 PET/CT 融合浏览、PET-only、SUV/强度范围控制、手动配准、配准保存、Fusion 四宫格和单视口切换。
  • 测量与标注:支持线段、矩形、椭圆、角度、曲线、自由形状测量,箭头和文本标注,实时 draft 与 ROI 指标。
  • 分割与 QA:支持 MPR 阈值分割、球形 VOI、分割 overlay、分割导入导出、MTF/FWHM、水模 QA 和结果报告。
  • DICOM 与导出:支持 DICOM Tag 树查看、VR 感知编辑、批量 Tag 修改、脱敏导出、PNG、DICOM、DICOM SR 和 DICOM GSPS 导出。
  • 多端体验:支持桌面端、Web 端和移动端响应式界面,提供深色、浅色和蓝色主题;桌面安装包内置后端服务。

在线预览

https://dicom.zhaolin.online/

公开 Web 预览适合体验 UI、基础流程和远程渲染能力。真实 PACS、本地大数据量、桌面端内置后端和隐私数据场景,建议使用本地部署或桌面端。

演示

DicomVision 基础操作演示

DicomVision 移动端操作演示

截图

工作区首页 已加载序列
DicomVision 工作区首页 已加载 DICOM 序列
PET/CT 融合 PET/CT 手动配准
PET/CT 融合浏览 PET/CT 手动配准
MPR 与斜切 4D 时相
MPR 斜切与十字线旋转 4D 时相播放
MTF/FWHM 分割与 VOI
MTF/FWHM 分析 MPR 阈值分割与 VOI
水模 QA 浅色主题
水模 QA 浅色主题
移动端首页 移动端 2D
移动端首页 移动端 2D 浏览
移动端 MPR 移动端 4D
移动端 MPR 移动端 4D
移动端 PET/CT 移动端设置
移动端 PET/CT 融合 移动端设置
PACS 数据源 PACS Browser
PACS DICOMweb 和 DIMSE 设置 PACS Browser 查询与导入
测量工具 DICOM Tag
线段、角度、矩形和椭圆测量 DICOM Tag 查看
拖拽导入 脱敏导出
拖拽导入 DICOM DICOM 脱敏导出

快速开始

启动 Server

cd ../DicomVisionServer
uv sync
uv run python run.py

默认地址:

  • HTTP: http://127.0.0.1:8000
  • OpenAPI: http://127.0.0.1:8000/docs
  • Socket.IO: http://127.0.0.1:8000/socket.io

启动桌面客户端

cd ../DicomVisionClient
npm install
npm run dev

如果需要指定后端:

$env:DICOM_VISION_SERVER_ORIGIN = "http://127.0.0.1:8000"
npm run dev

启动 Web 开发服务

npm run dev:web

构建 Web 静态包

npm run build:web

生产环境变量示例:

VITE_BACKEND_ORIGIN=https://your-backend.example.com
VITE_WEB_APP_MODE=web

开发

常用脚本:

  • npm run dev:启动 Electron 桌面开发运行时。
  • npm run dev:web:启动 Web Vite 开发服务。
  • npm run build:构建 Electron main、preload 和 renderer。
  • npm run build:web:构建独立 Web 前端到 dist-web/
  • npm run preview:web:本地预览 Web 静态构建。
  • npm run generate:api-types:从 Server OpenAPI 重新生成前端 API 类型。
  • npm run typecheck:运行 TypeScript 类型检查。
  • npm run test:run:运行 Vitest。
  • npm run release:win:构建后端桌面 bundle 并打包 Windows 安装器。
  • npm run release:mac:在 macOS 上构建后端桌面 bundle 并打包 macOS 桌面端。
  • npm run release:mac:publish -- --tag vX.Y.Z:在 macOS 本地构建 DMG/ZIP、生成校验文件并上传到 GitHub Release。

发布流程

  • Windows / Web / Windows Server:推送 vX.Y.Z 标签后,由 .github/workflows/release-windows.yml 自动构建并发布。
  • macOS:在 macOS 本地运行 npm run release:mac:publish -- --tag vX.Y.Z。脚本会使用官方 Electron Builder 二进制源,构建 DMG/ZIP,生成 SHA256SUMS-macos.txt,并将资产上传到同一个 GitHub Release。
  • 发布前需要先将 Client 和 Server 的同名版本标签推送到远端,并完成 gh auth login。macOS 也支持 --skip-build,用于上传已经生成的本地资产。

后端 API、Socket.IO 事件、部署和桌面 bundle 细节见:

DicomVisionServer README

联系与反馈

如有问题、建议或希望参与改进,欢迎联系:5769389@qq.com

About

DicomVision 是一套面向 DICOM 影像浏览、重建、测量、质量分析、元数据检查、对比阅片与脱敏导出的 C/S 阅片工具,支持 Stack 切片阅览、Stack 双序列对比、MPR/斜切 MPR、4D 时相播放、服务端 3D 体渲染、DICOM 标签检查与修改、DICOM 脱敏导出、ROI 测量、MTF/FWHM 分析、水模 QA、图像导出、深浅主题切换,并可分别部署为浏览器 Web 应用或包含内置后端的 Windows 桌面应用。

Topics

Resources

Stars

212 stars

Watchers

10 watching

Forks

Packages

 
 
 

Contributors