当前位置: 首页 > 期刊 > 《北京生物医学工程》 > 2000年第4期
编号:10257716
医学图像DICOM格式转换软件的设计与实现
http://www.100md.com 《北京生物医学工程》 2000年第4期
     作者:胡阳秋 高小榕 高上凯

    单位:清华大学电机系生物医学工程研究所 北京 100084

    关键词:PACS;DICOM;医学图像

    北京生物医学工程000401 摘 要 PACS(图像存档与通讯系统)应遵循DICOM(医学数字图像通讯)标准。目前国内存在大量不符合DICOM标准的影像设备,为了使这些设备也能应用于PACS,我们使用面向对象方法设计和实现了一个具有良好扩充性的格式转换工具包,可进行DICOM格式与各种通用图像格式之间的转换,并具有视频输入与扫描仪输入的接口。该工具包提供一组DICOM API,可供Windows平台的各种编程环境使用。

    The Design and Implementation of DICOM Medical Image Format Conversion Tool-kit
, 百拇医药
    Hu Yangqiu,Gao Xiaorong,Gao Shangkai

    (Dept. of Electrical Engineering and Applied Electronics, Tsinghua University, Beijing 100084)

    Abstract DICOM is the standard of PACS. However, there still exist many medical imaging equipment which do not conform to DICOM. To connect these equipment to DICOM-based PACS, we designed and implemented a tool-kit for conversion of image formats between DICOM and non-DICOM medical equipment. Like the DICOM standard itself, Object-Oriented Method is used in our software to achieve features including explicity, modularity and portability. Based on several Core Classes, the tool-kit is written with Visual C+ + for Windows Platforms, and provides a set of APIs in Dynamic Link Library(DLL), which can be easily used by most Windows Applications. These Core Classes deal with such processes as image data encapsulation and compression, hiding users from the complexity of DICOM. With Object-Oriented Method, existing modules can be modified and new modules can be added without affecting other parts. The software also has interfaces for standard video or scanner output. At present, our DICOM format conversion tool-kit is being put into clinical use.
, 百拇医药
    Key words:PACS, DICOM, Medical image

    0 概 述

    图像存档与通讯系统(picture archiving and communication system,简称PACS)在近年来随着数字成像技术、计算机技术和通信技术的进步得到了迅速的发展。PACS实现了医学图像的获取、存储、通信、管理和显示等过程的数字化,其发展趋势是减少直至完全取代胶片。医学数字成像与通讯(digital imaging and communication in medicine,简称DICOM)标准旨在促进医学影像设备之间的互操作性,它提供了一种用于医学信息的开放性的数据交换标准,使得不同厂商生产的设备所形成的图像的统一存档与通讯成为可能。目前,各种最新生产的CT、MRI、B超、X光机等一般都遵循DICOM 3.0标准,DICOM标准已经成为建造PACS
, http://www.100md.com
    图1 DICOM格式转换的功能

    必须遵循的国际标准。

    DICOM标准是图像格式的标准,也是图像通讯的标准,它适用于点到点环境和网络环境。符合DICOM标准的设备能够作为独立的节点连入PACS网络,与其它符合DICOM标准的节点进行信息交换。然而在我国,由于历史的原因,各医院里真正符合DICOM 3.0标准的影像设备只占所有影像设备的一部分(尽管这个比例越来越大)。大量的老式影像设备往往只能输出胶片,或者只有普通的视频输出,或者使用专用的图像格式。因此,目前在建设PACS的时候必须考虑到这一点。为了使现有的大量不符合DICOM的影像设备进入PACS网络,我们设计并实现了一个通用的DICOM格式转换工具包。我们在软件的设计中突出了面向对象的方法,以最大限度地与DICOM标准的设计思路相一致。本软件主要具有以下功能(图1):

    (1)DICOM格式与通用图像格式(如BMP、TIFF、GIF、JPEG和AVI等)之间相互转换;
, http://www.100md.com
    (2)直接从标准视频输入获取图像数据并存为DICOM格式;

    (3)直接从扫描仪获取图像并存为DICOM格式。

    其中第一项功能使得非DICOM应用程序能够读取、显示、处理DICOM图像,第二项功能使得一些不具备DICOM接口的老式影像设备能够连入PACS网络,第三项功能使现有的胶片通过扫描就直接进入PACS。

    本文第二部分将介绍DICOM标准及其面向对象特点,第三部分介绍格式转换软件的设计与实现,最后是对全文的总结。

    1 DICOM标准与面向对象方法

    DICOM标准的前身ACR-NEMA(american college of radiology-national equipment manufacturer association)标准早在1985年就出现了,经过不断的发展与完善,到90年代初期更名为DICOM标准,并把版本号定为3.0。从ACR-NEMA标准的出现到DICOM标准的正式出台,DICOM工作组(及其前身ACR-NEMA委员会)从其他的一些国际组织(如IEEE、HL7和ANSI等)借鉴了许多有益的经验,并且得到了国际上主要的医学影像设备制造商的合作与协助。
, 百拇医药
    DICOM标准与ACR-NEMA标准的最大差别在于建立标准的模型不同。ACR-NEMA标准的前两个版本建立在隐式的放射科信息模型基础上,数据元素是根据标准制订者的经验确定的。相比之下,DICOM标准基于一组显式的实体-关系模型(Entity-Relationship model,简称E-R模型),这些模型详细地描述了事物(包括病人、图像和记录等)在放射科内部的操作与相互关系。使用这些模型有助于制造商和用户理解DICOM标准中的数据结构,因为它们清楚地表明了实际应用中所需要的数据元素以及这些元素之间的关系。

    面向对象方法是一种系统设计的常用方法,要遵循几个原则:数据抽象,数据封装,模块化,层次化。使用面向对象方法进行软件设计有助于增强软件模块的可重用性,提高系统对设计变化的适应能力,并且在结构上清晰易懂。DICOM标准的实体-关系模型与面向对象方法有机地结合在一起。在DICOM标准中,对象是由模型定义的实体(或实体集),属性描述了对象的特性。这些对象被称为信息对象,而该模型以及属性表(属性的集合)被称为信息对象定义(IODs)。模型中的实体是抽象的,在其属性有了具体的值之后,该实体就成为一个实例(Instance)。
, http://www.100md.com
    面向对象方法不仅描述了信息本身,同时说明了处理这些信息的方法。DICOM标准将一些操作(如“存储图像”)定义为服务,这些服务由不同的DICOM消息服务元素(DIMSE)组成。信息对象与特定服务的组合构成了服务-对象对(SOP)。同一信息对象与多个服务相联系,形成了SOP类。SOP类是DICOM标准的基本功能单位,由参与服务的双方构成:服务类提供者(SCP)与服务类使用者(SCU)。

    通过对DICOM标准的设计模型和设计思想的分析可以看出,关系-实体模型和面向对象方法是其突出特点。例如,DICOM标准关于数据元素的抽象定义与分组有利于软件设计中的模块化。这些特点是我们在设计DICOM格式转换软件中应该注意的。

    2 DICOM格式转换软件的设计与实现

    2.1 DICOM数据格式

    数据集(Data Set)与对这个数据集的操作(即命令)组成了消息(Message),消息是影像设备之间相互交换的信息。消息的组成单位是数据元素(Data Element),其按照逻辑关系分成不同的组,由相应的组号标识。同一组内不同的元素具有不同的元素号,组号与元素号
, http://www.100md.com
    表1 DICOM数据元素(无VR) 组号

    元素号

    长度

    值

    0010

    0010

    000E0000

    (12字节)

    4A6F 686E 736F 6E5D

    526F 6265 7274

    (Johnson^Robert)

    构成了数据元素的标志(Tag)。Tag后面是类型表示(value representation,简称VR),这是一个可选的域,是否出现由传输语法决定。其后是数据元素的长度与值。例如,病人的姓名就表示为表1(十六进制数)。
, http://www.100md.com
    关于DICOM格式目前已经有许多文章作过介绍,在此不再详述。不过,我们在编写DICOM格式转换软件中发现有以下几个值得注意的问题:

    (1)字节顺序(byte ordering)

    字节顺序同样有传输语法决定。不同的计算机系统有以下两种字节顺序:

    ①Little Endian:低位地址低位字节顺序

    ②Bit Endian:低位地址高位字节顺序

    DICOM格式转换软件的输入/输出流模块应该能正确地进行字节交换。

    (2)嵌套数据集(nested data set)

    嵌套数据集中数据元素的值又是由零个或多个数据元素构成的。这样的数据集称为条目(item),往往用于重复的简单数据集,或者构成复杂IOD的folder。条目的VR(类型表示)为SQ(sequence of items)。如果条目中的数据元素的VR也是SQ,则构成了递归嵌套。
, 百拇医药
    由于嵌套数据的存在,格式转换软件应该使用一种树型的数据结构以存储递归嵌套的数据元素,并且程序也应该具有递归遍历功能。

    (3)压缩图像数据(encapsulated pixel data)

    图像数据可以是非压缩的(native format),也可以是压缩的(encapsulated format)。图像的编码方式也是由传输语法规定的。DICOM目前支持两种压缩方式:

    ①JPEG压缩,包括基于离散余弦变换(DCT)的有损(lossy)压缩和基于差分脉冲编码调制的无损(lossless)压缩。JPEG压缩图像的传输语法UID是以1.2.840.10008.1.2.4开始的。

    ②游程编码(RLE lossless),传输语法UID为1.2.8.840.10008.1.2.5。
, http://www.100md.com
    (4)光度表示(photometric interpretation)

    光度表示规定了图像的显示特性,常见的值有:

    ①MONOCHROME1:灰度图像,象素最小值显示为白色;

    ②MONOCHROME2:灰度图像,象素最小值显示为黑色;

    ③RGB:RGB彩色图像;

    ④HSV:HSV彩色图像;

    ⑤PALLETE COLOR:使用调色板的彩色图像。

    此外还有ARGB、CMYK、YBR-FULL等。格式转换软件在输出图像数据时,必须根据光度表示进行调整。
, 百拇医药
    2.2 软件结构

    Windows(95/98/NT)操作系统是目前应用最广泛的平台,我们设计的软件也定位于该系统。我们选用Visual C+ +开发环境,因为其支持面向对象编程。整个设计的核心是一组对DICOM数据集进行编码与解码的C+ +类,它们完成了主要的工作。为了进一步方便使用,我们将这些核心类封装在一组应用程序编程接口(Application Programming Inter-face,简称API)之内,最终的DICOM API以动态连接库(DLL)的形式提供,可供Windows平台的各种开发系统使用。加入DICOM API这一中间层在很大程度上简化了访问DICOM数据的方法,因为应用程序开发者无须了解DICOM标准的细节,而可以将主要精力集中在较高层次的设计上。图2是本软件的结构模块示意图。

    图2 软件结构模块
, 百拇医药
    2.3 软件实现

    2.3.1 核心类 根据DICOM数据元素编码/解码的流程,设计了以下的C+ +类来完成从DICOM数据元素到输入/输出流的转换(图3)。

    图3 DICOM格式转换的核心类

    其中Ccodec类提供了一个可扩展的压缩/解压缩模块接口,使得新的压缩算法可以很容易地加入,而无须对其余部分作修改。

    2.3.2 API API是通过调用核心类实现的,因此具有很大的灵活性,可以根据具体的需求进行定制。这里采用Windows标准DLL形式,以方便各种编程语言调用。

    2.3.3 视频捕捉 由于大多数视频捕捉设备都符合Video for Windows(VFW)标准,所以这里通过VFW接口实现视频捕捉。先将视频(单帧、多帧和连续)图像存为AVI,再通过核心类将AVI文件转换成为DICOM格式。
, http://www.100md.com
    2.3.4 扫描图像 通过TWAIN API获取扫描图像,然后转换成DICOM格式。

    3 结 论

    本文提供的DICOM格式转换软件在设计和实现中使用了面向对象方法和编程语言,与DICOM标准的面向对象特点相符合,增加了软件结构的清晰性、灵活性和软件模块的可重用性;通过加入DICOM API这一中间层,提供了简便的编程接口。分别在Visual C+ +、Visual Basic、Power Builder等开发环境下调用DICOM API,编写的应用程序都能高效率地运行。

    我们对该软件包进行了两个方面的测试:从DICOM图像格式到通用图像格式的转换和相反方向的转换。我们从Internet下载了大量全球各大医学影像设备制造商(包括GE、Picker、ATL、Philips、Siemens、Toshiba等)的DICOM图像,成像模式包括CT、MRI、CR、XA、NM和超声等,图像大小从数十kB到数十MB,压缩方法包括JPEG和RLE,光度表示包括MONOCHROME1、MONOCHROME2、RGB和PALLETE COLOR,传输语法包括Implicit VR和Explicit VR。实验结果证明本软件能够顺利地打开所有这些图像并将结果存为通用图像格式,而一些常见的DICOM共享软件(如CTN、OSIRIS、DICOM2、DICOM3和HIPAX等)则往往无法识别某类图像。反之,利用本软件反向转换(从通用格式到DICOM格式的转换)功能得到的符合DICOM标准的图像,上述共享软件都能够正确读取。
, 百拇医药
    目前,这个DICOM格式转换工具包正式进入了试用阶段。我们把利用DICOM API编写的程序集成到以病人为中心的多媒体数据库中,该系统即将投入临床试运行。在该系统中,通过HIS/RIS获取病人的一般信息,然后将非DICOM格式的图像(视频捕捉或扫描仪输入)转换成DICOM格式的图像。这样得到的DICOM文件中的病人ID与HIS/RIS中的病人ID是完全一致的,有利于将来这几个系统的集成。

    作者简介:胡阳秋(1974—),男,硕士研究生。

    参考文献

    [1] NEMA,Digital imaging and communication in medical (DICOM),draft standard, 1998,from ftp:∥ftp.nema.org/medical/dicom/

    [2] Horri S C, et al. DICOM:An introduction to the standard, from http:∥www.xray.psu.edu.cn

    [3] Bas Revet. DICOM Cook Book-for Implementations in Modalities, chapter 1 and 2, Philips Medical Systems Nederland, 1997

    [4] Kruglinski D J著,潘爱民等译. Visual C++技术内幕(第四版).清华大学出版社,1999

    (1999-09-07收稿), 百拇医药