题记:

DICOM医学图像处理专栏撰写已有两个年头,积累了近百篇文章。起初只是用于记录自己科研、工作中遇到的疑难问题,专注于图像处理(主要是医学图像,这也正是专栏名称最初的由来);后来逐渐延伸到了DICOM数据传输方向,专注于医院内影像数据的传输和管理,遂将博文标题按照【DICOM医学图像处理:XXX】和【DICOM:XXX】划分,分别介绍图像处理和数据传输;到最后又添加了开源工具分析部分,诸如DICOM开源实现库(dcmtk、dcm4che、fo-dicom)、开源PACS系统(Orthanc、dcm4chee、ClearCanvas)。

背景:

近期多次收到网友邮件或私信希望给出一个简单的说明,方便由简到难的来逐步浏览和阅读专栏中的博文。自己按照上述的主线来写,一直以为逻辑还算清晰,但自己回想起来,对于初学者甚至外行来说,专栏整体还不够清晰,一时很难找到切入点进行学习。因此近期一直在考虑写一篇关于“DICOM学习路线图”的博文,构思许久仍感充满纰漏,如何能够让初学者快速掌握DICOM相关知识?如何能够学习知识点的同时展开实际编程训练?还有许许多多的问题没有想好、想明白……
今天暂时整理初稿,大致对专栏文章进行一个简单分类,以便初学者快速归类定位相关博文,后续会持续更新完善,希望达到自己当初“深入浅出,引领DICOM学习”的设想。

DICOM整体思维导图:

DICOM协议属于开放式系统互联OSI七层模型中的应用层,与我们日常最常用的HTTP协议(HTTP,几乎等同于互联网的代名词,当然由于其安全性问题正在逐渐被HTTPS取代)类似。两者有着诸多相似的地方,想必大家对HTTP协议都有所了解,因此决定通过类比DICOM与HTTP来介绍DICOM协议,让大家快速对DICOM协议有一个宏观的把握。

对比 HTTP DICOM
OSI层 应用层 应用层
数据 HTML文件 .DCM文件
服务 GET、POST、HEAD、PUT
PUT、DELETE、TRACE、CONNECT、OPTIONS
C-ECHO、C-FIND、C-STORE、C-MOVE、C-GET
N-GET、N-SET、N-ACTION、N-CREATE、N-DELETE、N-EVENT-REPORT
应用 互联网B/S模式,
也可以用于C/S模式
C/S模式,
也可以用于WADO(B/S模式)

简而言之:将DICOM协议当做是专属于医疗领域的“HTTP”传输协议,常见的HTTP协议是通过上表中的各种服务来实现浏览器服务器之间HTML格式数据的传输;DICOM协议是通过上表中的各种服务实现了医疗设备数据中心之间DCM格式数据的传输。

虽然在互联网中经常会混淆HTTP与HTML两个概念(详情可以参考HTTP vs HTML),但从缩写上来看还是比较好区分:一个是网络传输协议(HTTP),一个是数据格式标记语言(HTML),在HTTP协议中发送的正是HTML格式的数据。进入到DICOM领域可能更容易混淆,因为在DICOM领域传输使用的协议和协议上传输的数据都叫做DICOM,一个称之为DICOM协议,一个称之为DICOM图像(即.dcm后缀的文件)。之前HTTP与HTML同属于互联网但是由不同的组织机构制定和发布,而DICOM协议和DICOM数据同时包含在DICOM标准中(最新的标准是DICOM3.0)。

如是,为了更好的学习DICOM标准,按照类似HTTP(协议)和HTML(数据)的方式将DICOM标准进行一个划分。整体的思维导图如下:

DICOM专栏博文分类:

按照以上思维导图的划分方法,将DICOM医学图像处理专栏中的博文对应进行一个简单的分类。大致如下:

DICOM标准介绍篇:

该部分从整体上对DICOM标准进行介绍,此外还会涉及到其他医疗领域的信息化标准,诸如HL7、IHE等,使得读者对DICOM标准有一个整体宏观上的把握。
1. DICOM医学图像处理:全面分析DICOM3.0标准中的通讯服务模块 
2. DICOM医学图像处理:浅析SWF、WML、SPS、MPPS 
3. DICOM医学图像处理:DICOM网络传输 
4. DICOM:DICOM3.0网络通信协议(续)

DICOM数据篇:

该部分主要以.dcm后缀的文件为目标,即通常所说的医学影像(当然DICOM标准不单单存储二维影像,还可以存储一维的心电数据、动态影像、四维超声/CT等等),介绍文件的常规操作(解析、写入、格式转换)和高级处理(常见的图像处理算法,诸如去噪、增强、分割、融合等等)。
1. DCMTK开源库类继承结构与DICOM3.0标准元素定义的对应关系图 
2. DCMTK开源库的学习笔记1:将DCM文件保存成BMP文件或数据流(即数组) 
3. DCMTK 开源库的学习笔记2:直接操作dcm文件中像素数据的尝试 
4. DCMTK开源库的学习笔记3:dcmtk文件中数据元的修改 
5. DCMTK开源库类继承结构与DICOM3.0标准元素定义的对应关系图 
6. DICOM医学图像处理:Dcmtk与fo-dicom保存文件的不同设计模式之“同步VS异步”+“单线程VS多线程” 
7. DICOM医学图像处理:DICOM存储操作之“多幅BMP图像数据存入DCM文件” 
8. DICOM医学图像处理:DICOM存储操作之 “多幅JPG图像数据存入DCM文件” 
9. DICOM:基于fo-dicom的简易DICOM Viewer 
10. DICOM:Transfer Syntax传输语义之奇葩GE Private TS 
11. DICOM:DICOM三大开源库对比分析之“数据加载”

DICOM协议篇:

该部分以医学设备与数据中心的实际交互为目标,介绍设备与PACS(当然也会涉及到RIS、HIS等系统)之间数据的具体传输,例如常见的Q/R(查询/提取)操作、数据存储操作等等。
1. DICOM:基于DCMTK实现C-FIND SCU 
2. DICOM医学图像处理:基于DCMTK工具包学习和分析worklist 
3. DICOM医学图像处理:利用fo-dicom发送C-Find查询Worklist 
4. DICOM医学图像处理:storescp.exe与storescu.exe源码剖析,学习C-STORE请求 
5. DICOM医学图形处理:storescp.exe与storescu.exe源码剖析,学习C-STORE请求(续) 
6. DICOM医学图像处理:AETitle在C-FIND和C-MOVE请求中的设置问题 
7. DICOM医学图像处理:fo-dicom网络传输之 C-Echo and C-Store 
8. DICOM医学图像处理:fo-dicom网络传输之C-FIND and C-MOVE 
9. DICOM医学图像处理:DIMSE消息发送与接收“大同小异”之DCMTK fo-dicom mDCM 
10. DICOM:dcmqrscp.exe与storescu.exe中C-STORE服务的差别 
11. DICOM:fo-dicom之C-STORE再分析‘解决System.ObjectDisposedException异常’ 
12. DICOM:DICOM Print服务中PresentationContext协商之 MetaSOPClass与SOPClass对比分析 
13. DICOM:DICOM Print 服务详细介绍 
14. DICOM:参考dcm4che2扩展fo-dicom(mDCM)中的UserIdentity字段

DICOM应用篇:

该部分是对DICOM数据篇和DICOM应用篇的实际操作,以DICOM标准为主线,着重介绍各种DICOM开源实现库(包括dcmtk、fo-dicom(mDCM)、dcm4che),以及常见的开源信息系统,诸如Orthanc、ClearCanvas、dcm4chee。
1. DCMTK开源库的学习笔记4:利用ini配置文件对dcm影像进行归档 
2. Web版PACS开发纪要一:关闭动态库中创建的线程 
3. Web版PACS开发纪要二:解决文件传输数据“丢失”问题
4. DICOM医学图像处理:DCMTK在VS2012中的配置 
5. DICOM医学图像处理:开源库mDCM与DCMTK的比较分析(一),JPEG无损压缩DCM图像 
6. DICOM医学图像处理:开源库mDCM与DCMTK的比较分析(一),JPEG无损压缩DCM图像(续) 
7. DICOM医学图像处理:DCMTK的wiki资料学习之PACS调试 
8. DICOM医学图像处理:WEB PACS初谈 
9. DICOM医学图像处理:WEB PACS初谈二,图像的传输 
10. DICOM医学图像处理:WEB PACS初谈三,PHP扩展骨架 
11. DICOM医学图像处理:WEB PACS初谈四,PHP DICOM Class 
12. DICOM医学图像处理:Deconstructed PACS之Orthanc 
13. DICOM医学图像处理:Deconstructed PACS之Orthanc,Modification & Anonymization 
14. DICOM医学图像处理:Orthanc Plugin SDK实现WADO服务 
15. DICOM医学图像处理:深入剖析Orthanc的SQLite,了解WADO & RESTful API 
16. DICOM:DCMTK工具包分析之dcmqrscp.exe、dcmqridx.exe、dcmqrti.exe 
17. DICOM:剖析Orthanc中的Web Server, Mongoose 
18. DICOM:剖析Orthanc中的Web Server,Mongoose之“连接请求触发的事件序列”(二) 
19. DICOM:剖析Orthanc中的Web Server,Mongoose之 Flag bit & Event(三) 
20. DICOM:开源DICOM服务框架DCM4CHE构建的准备 
21. DICOM:开源DICOM服务框架DCM4CHE 安装 
22. DICOM:开源DICOM服务框架DCM4CHE 构建 
23. DICOM:再次剖析fo-dicom中DicomService的自定义事件绑定 
24. DICOM:Ubuntu14环境下安装dcm4chee+oviyam2.1 
25. DICOM:dcm4chee奇葩逻辑浅析之UID修改 
26. DICOM:C-GET与C-MOVE对比剖析 
27. DICOM:DICOM万能编辑工具之Sante DICOM Editor 
28. DICOM:dcm4che工具包如何压缩dcm文件探讨(前篇) 
29. DICOM:dcm4che工具包如何压缩dcm文件探讨(续篇) 
30. DICOM:基于JMeter+dcm4che2测试PACS服务器性能的解决方案(前篇) 
31. DICOM:基于JMeter+dcm4che2测试PACS服务器性能的解决方案(续篇)

DICOM翻译篇:

该部分是本人在Github上发起的DICOM3.0标准中文版开源书籍项目,由于目前大多数DICOM相关的资料(如上述思维导图中提到的官方网站、开源论坛)都是英文版,中文资料甚少,因此决定发起该项目,以DICOM标准的中文翻译为基础,介绍并普及医疗领域的信息化技术,关注医疗改革的发展。
1. DICOM:DICOM3.0标准中文版开源书籍之”本地版本管理方案 
2. DICOM:DICOM3.0标准中文版开源书籍之“git版本库合并 
3. DICOM:DICOM3.0标准中文版开源书籍编辑之”github仓库合并“ 
4. DICOM:DICOM3.0标准中文版开源书籍协同编辑之“Github Pull Requests” 
5. DICOM:开源书籍之『DICOM标准中文版』启动计划

PS: 整体博文的分类也可以参考之前总结的一篇DICOM医学图像处理:二零一四▪DICOM专栏一览

备注:

由于DICOM标准复杂,体量很大,因此本博文仅作为DICOM标准学习路线图的初稿,对初学者起到一个简单的引导作用。后续会逐步更新完善,敬请期待!

DICOM:DICOM标准学习路线图(初稿)的更多相关文章

  1. SAP ABAP学习路线图--标准教程

    SAP ABAP学习路线图--标准教程 摘自:http://www.cnblogs.com/clsoho/archive/2010/07/05/1771400.html

  2. Hadoop学习路线图

    Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括, ...

  3. Node.JS 学习路线图

    转载自:http://www.admin10000.com/document/4624.html 从零开始nodejs系列文章, 将介绍如何利Javascript做为服务端脚本,通过Nodejs框架w ...

  4. Hive学习路线图(转)

    Hadoophivehqlroadmap学习路线图   1 Comment Hive学习路线图 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig ...

  5. R语言书籍的学习路线图

    现在对R感兴趣的人越来越多,很多人都想快速的掌握R语言,然而,由于目前大部分高校都没有开设R语言课程,这就导致很多人不知道如何着手学习R语言. 对于初学R语言的人,最常见的方式是:遇到不会的地方,就跑 ...

  6. 转】Mahout学习路线图

    原博文出自于: http://blog.fens.me/hadoop-mahout-roadmap/ 感谢! Mahout学习路线图 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目 ...

  7. 【转】Hive学习路线图

    原文博客出自于:http://blog.fens.me/hadoop-hive-roadmap/ 感谢! Hive学习路线图 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Ha ...

  8. Hadoop家族学习路线图--转载

    原文地址:http://blog.fens.me/hadoop-family-roadmap/ Sep 6, 2013 Tags: Hadoophadoop familyroadmap Comment ...

  9. Hadoop家族学习路线图

    主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项 ...

随机推荐

  1. ThinkPHP中简单的CURD操作

    前言 我们通过一个简答例子来简述CURD的操作.首先看一下数据库的样子,其中id为自增行,其它是varchar 一.查询操作 首先,创建在Controller文件夹下创建一个User控制器,在该控制器 ...

  2. 小记:事务(进程 ID 56)与另一个进程被死锁在 锁 | 通信缓冲区 资源上,并且已被选作死锁牺牲品。

    今天在做SQL并发UPDATE时遇到一个异常:(代码如下) //Parallel 类可产生并发操作(即多线程) Parallel.ForEach(topics, topic => { //DBH ...

  3. java 获取主机IP

    public class Chat extends JFrame { public static JTextField jt; public Chat(){ setLayout(new FlowLay ...

  4. poj3237 树链剖分 暴力

    NEGATE a,b 将a b间的线段取反,这题应该用线段树+成段更新.我成段更新写的挫了,试了暴力修改过了(数据水). 也是简单的题目.不过要注意点和边的区别. #include<queue& ...

  5. VB中的属性、方法和事件概念解析

    Visual Basic 语言中的所有对象都有它们自己的属性.方法和事件,其中包括窗体和控件.可以将属性视为对象的特性,将方法视为对象的操作,而将事件视为对象的响应. 日常生活中的对象(如氦气球)也具 ...

  6. 【BZOJ-2295】我爱你啊 暴力

    2295: [POJ Challenge]我爱你啊 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 202  Solved: 141[Submit][St ...

  7. 【poj3608】 Bridge Across Islands

    http://poj.org/problem?id=3608 (题目链接) 题意 求两凸包间最短距离 Solution 难写难调,旋转卡壳,还真是卡死我了. 先分别选出两凸包最上点和最下点,从这两点开 ...

  8. [NOIP2010] 提高组 洛谷P1514 引水入城

    题目描述 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好构成一个N 行M 列的矩形,如上图所示,其中每个格子都代表一座城市,每座城市都有一个海拔高度. ...

  9. ECSHOP \admin\edit_languages.php GETSHELL Based On Injection PHP Code Into /languages/zh_cn/user.php

    目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 对于很多CMS网站来说,它们都需要保存很多的网站META信息,最常用的最佳实践是以 ...

  10. MyEclipse------黑科技

    自动计算器(+,-,*,/) <form method="post" oninput="o.value = parseInt(a.value) + parseInt ...