文献标识码:A
文章编号: 0258-7998(2013)12-0145-04
随着CT(X射线)、MR(核磁共振)等医学影像设备的迅速发展,拍摄出来的医学影像清晰度显著提高,但所占空间也明显增大[1]。与此同时,重大疾病发生率的增高等因素导致医学影像数据量增加迅速。目前,一个大型医院每天将产生50 GB以上的数据,全院总数据量已经达到了30 TB级别,医生每天都需要频繁地读取影像数据来辅助诊断。因此,一个性能良好的医学影像传输及存储系统显得格外重要。近年来云计算技术正逐步从理论研究走向实际应用,作为一种新型的体系架构,云计算是一个充分利用信息资源的平台。对于对应用平台高要求、且资金受限的医院来说,云计算有望为其提供一个新的解决方案。
1 系统技术概述
1.1 云计算
云计算(Cloud computing)融合了分布式并行计算、网络存储、负载均衡等多种传统计算机和网络技术,以其独特的扩展性、廉价性及容错力受到广泛关注。Hadoop是Apache开发的一个云计算的开源平台,主要包括分布式文件系统(HDFS)和并行计算框架(MapReduce)。Hadoop集群的规模少则几台,多则可上千台,其存储与计算能力也随着规模的扩大而稳步提高。
HDFS是Hadoop的文件存储系统,适合于大规模数据集上的应用。HDFS将一个大文件分成若干个数据块,并创建多份复制保存在多个数据节点集合中,避免发生单点故障。因此利用HDFS能使系统实现:大规模数据存储、高冗余、轻松扩容、负载均衡[2]等功能。
MapReduce是Hadoop在HDFS基础上的并行计算框架,为用户提供方便实用的并行编程模式,实现大规模数据的并行计算。MapReduce的主节点根据输入数据的键(key),通过映射函数(Mapper)将输入数据映射给不同的从节点进行并行运算,随后再通过规约函数(Reducer)将各个从节点的运行结果进行归约合并,形成最终的计算结果[3]。
1.2 DICOM概述
数字影像和通信标准3.0(DICOM3.0)是由美国放射学会与美国国家电器制造商协会联合制定的标准,规定了不同的医疗影像设备标准化的数据格式,从而使数字影像更有效率地传输和交换。DICOM主要的操作协议有C_STORE、C_FIND、C_MOVE,分别执行存储、查找与获取。
2 系统架构
目前医院采用PACS来进行医学影像数据存储与传输。数据读写速度和冗余性、系统扩展性、负载均衡等都是设计PACS所要考虑的重要方面。由于当前医院数据全部存储于光纤存储局域网络(FC-SAN)集中式存储服务器中,因此在使用PACS过程中尚存以下问题:(1)数据读写速度慢。由于资金的限制,医院将使用频率较低的数据转移到二级存储设备中,导致读写效率十分低下。(2)服务器负载重。PACS依靠影像中心服务器和集中式存储服务器进行数据调度和读写,而大量来自工作站的请求对影像中心服务器的处理器性能和存储服务器的读写能力带来极大的考验。(3)计算能力差。工作站目前只能在单机环境下进行有限的图像处理,无法提供大规模运算的服务。(4)不同医院间数据难以共享。
2.1 架构设计
为了解决上述问题,本文设计了一种将分布式与集中式存储相结合的混合式PACS架构。在各医院园区网内部搭建Hadoop云集群,利用Hadoop集群的HDFS分布式存储数据,采用MapReduce进行大规模数据计算。系统整体示意图如图1所示。
系统将所有原有的数据移至HDFS,集中式存储服务器只保留近期数据。而新产生的图像数据同时保存于集中式存储服务器和HDFS中。通过这样的方式节省集中式存储服务器的空间,解决原二级存储读写速度慢的问题,同时将数据存储在HDFS中也有利于使用Hadoop的MapReduce框架进行并行计算。在后期系统升级过程中,只需要简单地增加Hadoop集群的节点数目,即可提升系统存储容量与计算性能。为了实现不同医疗组织间的资源共享,医院园区网可以通过防火墙连接公网。对于来自公网上的工作站的请求,防火墙需要先对其进行安全认证和访问控制,只有符合安全规定的请求才被递交至影像中心服务器。
此外,本文开发了SDCMO组件与WDO组件。作为中间件,它们屏蔽底层操作细节,为上层的应用系统提供统一的图像写入、读取和查询接口。系统架构图如图2所示。
2.2 SDCMO组件
由于每个医学影像文件不大,而HDFS会为每个文件分配固定的内存空间,因此处理大量的医学影像文件会造成极大的内存开销[4]。本文采用文件序列化技术(Sequence File),将储存于HDFS的每个DICOM数据映射成键值对(Key/Value)的形式。其中Key是DICOM数据文件名,而Value保存DICOM数据内容。每个DICOM数据被视为一条记录,将每一组DICOM图像合并成一个包含多条记录的序列化的文件SDCM(Sequence-DICOM),从而减少文件数目,节省内存空间,同时还利用了图像序列之间的相关性进行无损压缩。
SDCMO(SDCM Operator)组件提供对SDCM文件操作的方法。主要包括4个部分:(1)SDCM定位器,负责获取文件位置信息;(2)SDCM写入器,负责向HDFS写入SDCM数据;(3)SDCM读取器,向HDFS读取SDCM数据;(4)SDCMO Converter负责DICOM与SDCM之间的类型转换。
2.3 WDO组件
为了实现不同设备之间数据的透明交换与传输,本文开发了适配于DICOM 3.0数据标准的WDO(Web DICOM Operator)组件,该组件能够解析、响应和封装来自HTTP的C_STORE,C_MOVE和C_FIND报文,使HDFS能够在接收存储、获取、查找请求报文时可执行相应操作[5]。该组件主要包括6个部分:(1)HTTP请求接收器, 负责接收和发送HTTP报文;(2)释义器,负责解析HTTP的请求报文,并将其转换为DICOM 3.0标准的请求;(3)DICOM请求器负责发送和处理DICOM响应报文;(4)STORE封装器,提供封装DICOM3.0标准的C_STORE报文的方法;(5)FIND封装器,提供封装DICOM3.0标准的C_FIND报文的方法;(6)MOVE封装器,提供封装DICOM3.0标准的C_MOVE报文的方法。
2.4 工作流程
2.4.1 图像写入流程
考虑到安全问题,只有园区网内的影像设备和内部工作站有写入权限。而对于来自公网的外部工作站无权对HDFS和FC-SAN进行写入操作。图像写入流程如下:
(1)工作站向影像中心服务器发送写入请求(C_STORE)
报文;
(2)影像中心服务器根据业务需求的不同选择文件存储位置,并修改索引表。若要存储到HDFS,则执行步骤(3)、步骤(4),若存储到FC-SAN则执行步骤(5);
(3)Hadoop名称节点创建文件,分配存放数据各分块的数据节点列表;
(4)调用SDCMO组件中的数据转换器,将DICOM文件转换为SDCM类型,并调用SDCMO组件中的文件写入器,将文件写入HDFS的数据节点中,返回写入成功信息,写入过程结束。
(5)直接写入FC-SAN,写入过程结束。
对于需要从FC-SAN迁移备份至HDFS的数据,需递归地遍历源文件夹下的所有子文件夹,不断执行步骤(3)、步骤(4)执行写入,完成数据迁移。文件写入流程图如图3所示。
2.4.2 读取/查询流程
文件读取/查询流程如下:
(1)来自公网的外部工作站与医院园区网关建立SSL连接,发出查询请求。
(2)网关的请求接收器与外部建立合法的SSL
连接,接收HTTP请求。
(3)网关的释义器将HTTP请求转化为DICOM3.0标准的C_FIND报文。
(4)DICOM请求器将C_FIND报文发送给影像中心服务器,影像中心服务器接收C_FIND请求,查找索引表中文件的位置信息。根据文件位置的不同跳至步骤(5)或步骤(6)。
(5)接收来自FC-SAN的数据,跳至步骤(8)。
(6)接收来自HDFS的数据名称节点根据元数据,调度文件分块所在的数据节点。
(7)根据名称节点中元数据的分块信息,利用SDCMO组件中的文件读取器得到SDCM数据,使用SDCMO组件中的数据转换器将SDCM数据转换为DICOM数据,并调用WDO组件中C_FIND报文的封装接口FIND,将DICOM数据封装为DICOM的响应报文。
(8)释义器将响应报文转为HTTP报文。
(9)将HTTP报文发送给HTTP请求器。
(10)请求接收器将HTTP报文通过SSL连接发送给外部工作站,读取过程结束。
对于来自局域网的内部工作站的请求,由于其已在局域网环境中,且请求报文已经是DICOM3.0格式,只需直接将请求发送给DICOM请求器,并从步骤(4)开始执行即可。文件读取/查询流程如图4所示。
2.4.3 图像检索流程
当工作站需要执行图像检索等大规模运算时,执行流程与图4大体一致,在步骤(4)的过程中还需要利用MapReduce进行特征计算、匹配以获取检索结果。
3 实验测试
3.1系统配置
在实验环境中,采用Hadoop集群为基本配置,其中1台作为HDFS的名称节点兼MapReduce的主节点,4台为HDFS的数据节点兼MapReduce的从节点。集群工作站配置一致,使用Intel(R) Core(TM) i3-2310M的CPU,内存2 GB,硬盘500 GB,并在Ubuntu操作系统上搭建Hadoop-1.1.2。
3.2 实验结果分析
(1)写入与读取测试:从图5可以看出,HDFS的平均写入、读取速度分别为4.72 Mb/s和27 Mb/s,相比原系统FC-SAN的1.5 Mb/s和2.26 Mb/s,读写速度有了明显的提升。
(2)压缩比测试:将一个病人产生的大约306 MB的MR图像数据转换为SDCM后,数据只有125 MB,压缩率为40.8%;全系统平均压缩率为40.6%。而采用SDCM不仅将原有数据进行无损压缩,同时还将数据转换为键值对的形式,有利于后期利用MapReduce对数据直接进行处理运算,省去了重新格式化数据的时间,提高了运算效率。
(3)计算测试:由于特征提取是图像计算的基本步骤,本系统就一个4.2 GB的DICOM数据(10 290个图像文件)进行全局特征提取计算,以测试系统计算性能。在集群数目为1、2、3、4(集群数目为1时,即为原系统的单机运算模式)各自执行5次测试计算,取各自的平均计算时间。从图6的实验结果可以看出,对于较复杂的运算,多节点比单机下运行速度有了明显的提高。
云计算是一项新兴技术,但目前并未广泛地应用到医疗机构中。本文首先利用HDFS分布式文件系统与MapReduce计算框架技术设计了一个基于云计算技术的PACS混合架构,为原有PACS提供了一个低成本、易扩展、高效的技术方案;设计和实现了SDCMO组件和WDO组件,并简述了系统在公网环境下的读写流程;然后通过硬件部署的设计讨论其可行性;最后在实验环境中测试了本系统的存储传输、压缩和计算性能。经测试,系统初步达到了节省存储空间、提高读写效率、提升计算能力的目的,为云计算技术真正应用到医院信息化建设中提供了理论基础。
参考文献
[1] 樊一鸣.云计算技术与区域医学影像系统结合的探讨[J]. 中国卫生信息管理, 2011,8(1):21-22.
[2] 高林,宋相倩,王洁萍.云计算及其关键技术研究[J].微型机与应用, 2011,30(10):5-7.
[3] 赵凯.基于云存储的医院PACS系统存储设计[J].信息安全与技术, 2012,3(4):92-93.
[4] 李彭军,陈光杰,郭文明,等.基于HDFS的区域医学影像分布式存储架构设计[J].南方医科大学学报,2011,31(3):495-498.
[5] LUÍS A,SILVA B. A PACS archive architecture supported on Cloud services[C].International Journal of Computer Assisted Radiology and Surgery,2011.