项目地址:CodeChina 、 GitHub


前言

  一直没有找到一个合适的Dicom浏览器。Windos下的小蚂蚁(RadiAnt Dicom Viewer)很好用但可惜不是跨平台的,只有Windos版本。平时工作系统是Ubuntu/Deepin,虽然用deepin-wine5也可以安装RadiAnt Dicom Viewer但是跟Windos下比起来很多功能不能用,比如pacs scu,数据库(rdvdb)用deepin-wine5装的也有bug,小蚂蚁中文版还有很多乱码。
  全平台都支持并且跟小蚂蚁一样又小又快的我找到两个PapayaDWV,该有的功能很齐全,虽然开源但是一个是JavaScript一个是lua,如果想大改自己改也无从下手。
  ItkSnap3DSlicer也都是全平台的,都很强大而且都是开源的。架构都很好,可以自己任意开发插件添加进去。如果把这两个只当成DICOM浏览器实在有点大材小用。

下载: RadiAnt Dicom Viewer 、Papaya 、DWV 、ItkSnap 、3DSlicer

  干脆自己做一个吧,正好还可以自己学习。花了一个月在2020.9搞了个大概能用就搁浅了。2021年由于疫情的关系,就留在杭州过年了。时间充裕,计划把KISS Dicom Viewer做完吧。


Demo展示






软件介绍

1) 软件命名

  KISS Dicom Viewer
  
    KISS指:Keep it Simple and Stupid

2) 第三方库

  • 界面 Qt
  • DICOM协议相关 DCMTK
  • 数据库 Sqlite3
  • 数据库浏览 sqlitebrowser
  • PACS用 DICOM storage (C-STORE) SCU
  • 2D图片浏览用  QGraphicsView
  • 插件:多平面重建(MPR)用   QVTKOpenGLNativeWidget
  • 插件:三维重建-体渲染(VR)  QVTKOpenGLNativeWidget + ITK
  • 插件:前处理  Opencv

3) 程序架构

  想了下好像也没啥功能,只是个图片浏览器。简单的事件驱动就够了。

4) 代码规范

  目前还在开发阶段,而且是空余时间,没做代码优化逻辑很乱也不是很规范,到处抄的代码,命名也一塌糊涂,等想做的功能都实现了在Reviewer

5) Modality支持

  目前适配的Modality包括CT、XA、IVUS、OCT、US,其余的可以浏览影像,但是注释等设置和交互参数只能为默认值。这个已经封装成XML配置,后续慢慢加。

实现方法

  记录下实现的办法,方便日后查找。如果有一样需求的也可以帮助大家快速实现。

1) 显示ui — 屏幕分割显示布局

  Qt 实现 屏幕分割显示布局,可以任意拖拽显示

2) Dicom数据结构 ---- DicomImage --> QSharedData

  把DicomImage封装成 QSharedData 使用 (显式共享)

   把DicomImage封装成 QSharedData ,让后利用Qt实现可视化。
      ├── PATIENT (病人)
      │ │ └── STUDY (检查)
      │ │ │ │ └── SERIES (序列)
      │ │ │ │ │ │ └── IMAGE (影像 高度为未知)
      │ │ │ │ └── SERIES (序列)
      │ │ │ │ │ │ └── IMAGE (影像 高度为1)
      │ │ │ │ │ │ └── IMAGE (影像 高度为1)
      │ │ └── STUDY (检查)
      │ │ │ │ └── SERIES (序列)
      │ │ │ │ │ │ └── IMAGE (影像)

3) Dicom数据结构 ---- DicomImage --> Series

  Dicom数据结构 ---- DicomImage --> SeriesInstance

   根据协议可以知道每个Series中可以有单帧或多帧。
   多帧时 每帧影像尺寸高度是1
   单帧时 每帧影像尺寸高度未知

  • 单帧模式高度代表当前时间 !
  • 多帧模式高度代表空间位置 !
    enum  SeriesPattern {Empty_Frame,  //Single_Frame, // 单帧Multi_Frame,  // 多帧};

   涉及到Series,2D可视化肯定会有方向
  (多帧模式下)区分平面
  (单帧模式下)只有XY平面显示模式,另外两个平面表示时间密度曲线,与其相关打算作为插件用opencv做,所以这里封装的Series其余两个平面均指多帧模式。

4) 打开数据 ---- 打开 dcm 文件、打开 dcm 文件夹

  Qt 实现 打开 文件/文件夹 同一个接口
  Qt 实现一个批量加载线程(单线程)
  Qt 实现一个 文件监听线程
如何打开一个dcm影像
  把DicomImage封装成 QSharedData 使用 (显式共享) 2.4 DcmFileFormat 获取 常用标签/图片

5) 图片浏览器交互 ---- 框选ROI 自适应窗位窗宽

  Qt 实现 RubberBandDrag 框选

6) 图片浏览器交互 ---- 浏览序列

  QGraphicsView 按住鼠标实现帧数切换

7) Dcmtk Pacs 开发:小型dicom数据库(sqlite)

  Dcmtk Pacs 开发:小型dicom数据库(sqlite)

8) Dcmtk Pacs 开发:StoreScp 实现

   Dcmtk Pacs 开发:StoreScp 实现

9) Dcmtk Pacs 开发:Echo 实现

   Dcmtk Pacs 开发:Echo 实现

10) DCMTK 遍历 DICOM 标签/Tags 并 可视化

   DCMTK 遍历 DICOM 标签/Tags 并 可视化

11) 利用QTimer实现 Dicom 播放功能

   利用QTimer实现 Dicom 播放功能

12) KISS Dicom Viewer:插件实现方法

   KISS Dicom Viewer:插件实现方法

13) 仿照小蚂蚁实现 sharpen smooth Edge Emboss

   仿照小蚂蚁实现 sharpen smooth Edge Emboss

x) 慢慢完善…

KISS Dicom Viewer相关推荐

  1. RadiAnt DICOM Viewer CD/DVD -U盘版

    RadiAnt DICOM Viewer CD/DVD - 用于患者 CD/DVD/USB(32 位和 64 位)的自动运行包. 此版本旨在通过 DICOM 研究在 CD/DVD 或 USB 闪存介质 ...

  2. RadiAnt DICOM Viewer Crack by Xacker

    不管你以前安装过什么版都可以使用,一次购买永久用,绿色版,复制到电脑或者U盘即可使用 New features:Ω578867473 Send studies to PACS (add-on pack ...

  3. RadiAnt DICOM Viewer 2021.1中文版

    RadiAnt DICOM Viewer破解版是医学数字成像和通信软件,轻松处理和显示DICOM格式的医学图像,RadiAnt DICOM Viewer使用可显示从不同成像方式获得的检查结果,包括数字 ...

  4. DICOM:基于fo-dicom的简易DICOM Viewer

    背景 正如段子所言,"春节"副本已通关,您的属性有如下变化:力量 0,智力 0,敏捷 0,体重 15,金钱-999.您已被传送回出发点,系统时间从"初八"切换到 ...

  5. RadiAnt DICOM Viewer 2022.2 BETA #25311

    RadiAnt DICOM 查看器 2022.2 BETA #29905 建于 2022 年 10 月 26 日 新的功能: 长度比计算. 椭球/子弹体积计算. 在 DICOM 标签窗口中添加了颜色和 ...

  6. INOBITEC PRO DICOM VIEWER 2.9.0 Crack

    inobitec dicom高级 3D 重建,以 OBJ.STL.PLY 格式导出表面,先进的多计划重建,添加标记和标记线,将系列与高级工具相结合,具有多种选择的虚拟内窥镜检查,从视口录制视频(仅限 ...

  7. 正版软件,官方授权。RadiAnt DICOM Viewer - 软件版 / CD/DVD版

    灵活.简单.快速 RadiAnt 是一个医学图像的 PACS DICOM 浏览器 设计是为了给您独特体验,它界面直观,性能无与伦比,您的体验感一定爆棚! RadiAnt DICOM Viewer是一款 ...

  8. RadiAnt DICOM Viewer 2021 永久版

    一款非常好用的多功能医学图像查看工具,相关用户通过这款软件可以一键打开dicom图片,然后可以进行浏览操作,这样就能够很好的满足了相关用户的使用需求.另外,该软件还内置了破解补丁,相关用户安装之后便可 ...

  9. RadiAnt DICOM Viewer 2021.1 Crack

    RadiAnt DICOM Viewer灵活.简单.快速Ω578867473 RadiAnt 是一个医学图像的PACS DICOM浏览器 设计是为了给您独特体验 它界面直观,性能无与伦比 您一定会流连 ...

最新文章

  1. dSploitzANTI渗透教程之启动zANTI工具
  2. 水文特点是什么意思_一级建造师是什么意思?一级建造师报考指南
  3. 概要设计和详细设计区别_一体化工程设计:打破前期工程设计与详细设计之间的藩篱...
  4. 打造自己的装机U盘(二)
  5. 引入静态变量_Common Lisp变量的一些事情
  6. Visual Studio 插件的开发
  7. js之数据类型的比较
  8. android学习日记15--WebView(网络视图)
  9. spring web.xml配置服务启动后执行文件
  10. OpenGL超级宝典(第7版)之第八章基元处理
  11. linux rm 文件找回_Linux下用rm删除的文件的恢复方法
  12. 你只是看起来很努力-阅读记录
  13. COPC酞菁钴,cAS号:3317-67-7磺化酞菁钴 催化剂 深蓝色粉末 磺化酞菁钴
  14. 台式计算机排行榜2018,CPU天梯图性能排行榜 台式电脑CPU天梯图2018年4月最新版...
  15. lcx端口转发工具的使用
  16. 【读书笔记】数学之美
  17. 面试中一些较为复杂的常见的算法
  18. BNET通信区块链项目CEO刘建军受邀参加2018“区块链共识大会”
  19. 关于hive数据的导入
  20. 任务管理器结束任务进程

热门文章

  1. iOS的蓝牙连接 数据接收及发送
  2. 简单实用的漏洞扫描工具!(如何给单位做一个渗透测试/网络安全测试)?(๑•̀ㅂ•́)و✧ 演示篇
  3. 收集 Linux 相关专业术语发音
  4. 免费的IP地址查询API接口
  5. 代码(软件)是怎么和硬件发生联系的?
  6. 51单片机PCA9685控制16路舵机(代码可直接使用)
  7. Word 2007 不显示回车符
  8. Python遍历json文件,并更换变量
  9. python的matmul_在Python中TensorFlow tf.sparse_tensor_dense_matmul
  10. SaaS创业路线图(三):创业公司核心营销团队招募