背景:前段时间着重从dcmtk和fo-dicom(mDCM)源码角度进行剖析,期望加深对DICOM协议的理解。知其然,知其所以然。如果“所以然”很不好懂,那我们还是先多多“知其然”吧。搞清楚原理的目的不也是为了更好的运用于实践么?所以理论和实践应该彼此交错进行,理论搞不动了就搞搞应用,应用久了就钻研钻研理论。...
分类:
其他好文 时间:
2014-10-03 22:51:25
阅读次数:
1051
背景:最近去医院部署设备,调试PACS系统,遇到了一个奇葩的问题。基本场景是:医院内部网络情况复杂,多个楼层的诊室都安装了看图端,都需要访问顶楼机房的PACS服务器。起初为了调试关闭了防火墙,并确保各楼层的看图端与PACS服务器之间可以ping通,端口也顺利开放。但是具体部署调试过程中发现“有些楼层可正常进行worklist查询和Query/Retrieve查询,而有些楼层只能正常进行worklist查询,Query/Retrieve查询后本地并未获得图像数据”;第二天尝试后发现“原本正常进行worklis...
分类:
其他好文 时间:
2014-09-28 00:25:50
阅读次数:
826
背景:最近一直在做DCM相关的编程工作,以前项目使用C++居多,所以使用DCMTK开源库,而目前团队使用C#居多,所以需要转向使用fo-dicom库,由于前一篇专栏文章DICOM医学图像处理:利用fo-dicom发送C-Find查询Worklist在调试过程中需要对DIMSE信息进行手动保存,偶然间发现了dcmtk开源库与fo-dicom开源库在保存dcm文件时使用的方式差异很大,因此决定研究一下,期望通过对比分析来看一下孰优孰劣。...
分类:
编程语言 时间:
2014-09-22 16:33:58
阅读次数:
876
背景:上一篇博文中,在对storescp工具源文件storescp.cc和DcmSCP类的源文件scp.cc进行剖析后,得出了两者都可以实现响应C-ECHO和C-STORE(需要对DcmSCP类进行扩展)请求的功能。但是在对DcmSCP类进行扩展,期望模拟实现自己的storescp.exe工具时遇到了问题,客户端提示服务中断链接,而服务端显示保存失败,如下图所示。此次博文通过排除该问题再一次对storescp.cc和scp.cc进行对比,主要从Presentation Context、AbstractSyn...
分类:
其他好文 时间:
2014-09-13 00:50:14
阅读次数:
384
背景:上一篇专栏博文中针对PACS终端(或设备终端,如CT设备)与RIS系统之间worklist查询进行了介绍,并着重对比分析了DICOM3.0中各部分对DICOM网络通讯服务的定义。此次通过结合早些时间的博文DICOM医学图像处理:基于DCMTK工具包学习和分析worklist,对DCMTK开源库中提供的storescp.exe和storescu.exe工具的源码进行剖析,从底层深入了解C-STORE服务的触发及响应。...
分类:
其他好文 时间:
2014-09-11 23:52:12
阅读次数:
638
背景:
紧随上一篇博文,通过利用RawCap.exe和WireShark等抓包工具从数据流最底层角度来分析一下DICOM3.0标准中的网络通讯服务,并且查看分析了DCMTK和fo-dicom开源库源码的相关实现,使得对DICOM3.0标准的网络通讯部分(第7、8、9等部分)有一个更直观、更全面的认识。...
分类:
其他好文 时间:
2014-09-06 09:47:13
阅读次数:
441
背景:
DICOM3.0协议中有介绍关于worklist的部分。简而言之,worklist可以看做是放射科设备从医院RIS系统中自动读取患者信息的一种“通信协议”,可以指存储在RIS系统中的患者数据库,主要包括患者的基本信息(如年龄、性别、身高、体重、出生年月等),这与DCM文件信息头MetaInfo中的多数字段重合。因此从RIS系统中自动获取worklist是医院信息化的必要组成部分。...
分类:
其他好文 时间:
2014-08-23 10:03:10
阅读次数:
424
背景:
上周通过单步调试,找出了开源库mDCM与DCMTK在对DICOM图像进行JPEG无损压缩时的细小区别,并顺利实现了在C++和C#环境下对DICOM图像的压缩。但是问题接踵而至啊,随着项目的深入,发现在单独的测试工程中可以实现的mDCM版本,在嵌入到项目整体中后,却意外地出现了错误,并未顺利实现DICOM图像的JPEG无损压缩。因此需要继续详细对比分析mDCM与DCMTK两者,期望寻找原因。...
分类:
其他好文 时间:
2014-08-17 22:53:53
阅读次数:
432
背景介绍: 最近项目需求,需要使用C#进行最新的UI和相关DICOM3.0医学图像模块的开发。在C++语言下,我使用的是应用最广泛的DCMTK开源库,在本专栏的起初阶段的大多数博文都是对DCMTK开源库的介绍和学习。目前由于项目需要,现开始对mDCM开源库继续学习分析,因此本专栏接下来的文章会大多以mDCM开源库为例进行医学图像的讲解,DCMTK作为我学习和剖析mDC的依据。...
分类:
其他好文 时间:
2014-08-11 17:58:02
阅读次数:
530
背景: 最近由于项目需要,将原本的开发IDE环境由VS2008升级到了VS2012。本以为编译完成后的DCMTK开源库可以直接从VS2008移植到VS2012。但是通过项目属性添加完包含目录和依赖库后,编译会出现大量的链接错误(大多是跟dcmdata.lib、oflog.lib有关)。 解决方法: 重新按照原本的博客前辈柳北风儿(大神目前已经博客转移到网易:http://blog.163.c...
分类:
其他好文 时间:
2014-08-09 23:24:09
阅读次数:
636