基于Hadoop分布式存储的区域医联体云PACS的研究与应用
2021-12-31岑星星汤钦华马群圣
岑星星,汤钦华,马群圣
上海市胸科医院(上海交通大学附属胸科医院) 信息中心,上海 200030
引言
医联体是一种由不同级别医疗机构组成,实现区域内医疗资源多方位整合的联合体[1]。医联体的建设对于优化医疗资源、提升医疗质量、控制医疗费用等有着显著作用[2]。在医联体建设中,医学影像的信息化无疑起着重要作用,相应水平的提升对于影像资源的多方位整合、临床诊断能力的提升等有着直接影响[3]。近年来,随着医联体平台的快速发展,医联体框架下关于医学影像的信息化建设得到长足进步。
医学影像平台开发是医院信息化发展的热点。Griebel等[4]和孙雪梅[5]通过Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)的使用,实现了不同医疗机构间医学影像的存储及共享。Goli-Malekabadi等[6]和李芹等[7]通过云技术的使用,建立起了医疗影像储存系统(Picture Archiving and Communication System,PACS)的云服务。肖美华等[8]讨论了云PACS的数据安全性问题,并提出了基于医学数字成像与通信(Digital Imaging and Communications in Medicine,DICOM)标准的安全通信框架。杨晓光等[9]着眼于医联体的信息化建设,实现了脑卒中系统化干预医疗协同的云计算系统。然而,从近几年医学影像的信息化发展情况来看,鲜有关于医联体框架下分布式存储医学影像云PACS的具体技术实现及应用的相关报道。
本文旨在介绍基于Hadoop分布式存储的区域医联体医学影像云平台的设计和实现。基于先前的研究基础[10-11],结合Hadoop分布式存储技术,实现区域医联体框架下的云PACS,优化并串联上海某区中心医院与社区卫生医疗机构之间的影像资源分配流程,进而实现区域医院医学影像资源利用率及影像存储设备利用率、读写性能的最大化。
1 材料与方法
1.1 Hadoop
Hadoop是由Apache软件基金会开发的一种高度可扩展的开源分布式应用程序开发框架,能让开发人员专注于数据集的逻辑设计,而不是处理细节,极大地提升了分布式应用程序的开发效率[12]。Hadoop由众多组件分工协作而成,包括底层的HDFS分布式文件系统、中间层的MapReduce分布式计算框架、以及实时分布式数据库HBase和数据仓库Hive等的支持,相应的Hadoop生态圈及各组件功能的展示如图1所示。
图1 Hadoop生态圈及各组件功能
1.2 HDFS
分布式文件系统HDF S作为Hadoop的核心组件之一,为开发系统的海量数据存储提供了有效支持[13]。构成上,HDFS由数据节点群集构建而成,每个数据节点使用块协议并通过网络为数据块提供服务,拥有较好的文件存储性能。另外,HDFS的每个数据节点相互连接,用于重新平衡数据、移动副本并确保数据的高度可复制,以提升数据存储的可靠性。此外,HDFS还通过HTTP提供数据,允许从Web浏览器或其他客户端访问所有内容,提升了数据存储的便携及可扩展性。从实现原理上看,HDFS通过名称节点(NameNode)、数据节点(DataNode)和客户机(Client)等结构元素的使用实现数据的读写功能,具体流程如图2所示。
图2 分布式文件系统的数据读写流程
通过图2观察可以发现,HDFS需要唯一客户机及名称节点,这可能引起HDFS数据读写的单点故障。例如当名称节点发生故障时,将导致HDFS的脱机,即使备份后,名称节点也必须重播所有未完成的操作,而对于大型群集,此重播过程可能需要半小时以上。针对上述问题,HDFS联邦(Federation)集群聚合多个HDFS,通过多个名称节的引入,可降低单点故障的风险[14]。
2 系统设计与实现
区域医联体的云PACS,主要用于上海某区域中心医院与各社区医院肺癌早筛合作开展过程,相关医学影像数据的存储及共享。在存储技术上,通过Hadoop多组HDFS的使用,实现云PACS的分布式存储。在系统结构分布上,在中心医院与社区医院分别设置存储组件,并以200 Mbps带宽数据传输的网络实现组间设备的连接,整体分布如图3所示。
图3 医联体云医疗影像储存系统的结构分布
2.1 系统架构
课题组首先对区域医联体医学影像的协同内容及各医疗机构的医疗信息化现状等进行了调研。通过对各级医疗机构的相关医学影像数据以及业务流程整合及集成,以患者为中心,建立了区域医联体医学云PACS的整体架构。医联体云PACS的架构共分五个部分,依次为Web用户接口、中间接口、HDFS分布式存储、虚拟化容错和虚拟化,见图4。用户可通过浏览器访问云PACS的Web服务器,用于医学影像数据的查询及操作。中间部分提供一系列接口服务:如基于NanoDicom[15]开发的DICOM标准图像接口和基于hdfs-over-ftp开发的HDFS接口,以分配和获取分布式文件系统的最佳传输路径,提升影像云系统数据传输的性能。此外,在分布式存储的监控方面,提供基于Gangkia[16]存储监控的接口服务,通过Hadoop各节点的Ganglia安装,确定所有存储节点的实时状态,以获得最佳传输数据策略。最后,该系统还包含数据复制服务,当医学图像被上传到云平台后,该服务会自动将相应数据从一个云复制到另外一个云,以降低数据库之间数据流通的复杂性和传输成本。HDFS分布式存储通过NameNode、DataNode等结构的使用,拥有硬件容错、流式访问、适合大型文件存储、跨平台等的优点。例如:能将文件分块存储至不同的节点,适合大文件的存储、支持错误检测,能实现服务的快速、自动恢复。虚拟化的容错通过Heartbeat+Brdb的设计方案[17-18],以提升业务的连续性。当计划外的中断出现时,可通过备份虚拟机执行任务,以减少对于服务的影响。虚拟化使用OpenNebula[19],选择功能强大且易于使用的开源解决方案,避免供应商的锁定。
图4 医联体云医疗影像储存系统的架构
2.2 用户图形界面
本系统充分考虑医联体医学影像云系统相关工作人员的操作习惯,基于C++语言,结合ASP.NET开发框架,旨在实现系统操作界面的友好及高效化。具体展示以影像云系统的单点登录、患者信息管理及影像显示界面为例,见图5。医联体影像云PACS提供了基于Web的单点登录服务,用于操作人员的身份信息验证,见图5a。当技师、医生等操作人员完成身份验证后,便可进入系统完成后续操作。该系统的医学影像由医学成像设备进行采集,包括肺癌筛查过程的CT图片,并使用患者信息列表界面进行相应数据的管理,具体操作界面如图5b所示。此外,该系统提供专业化的医学影像显示界面,包含缩略图查看器等功能,具体如图5c所示。
图5 医联体云医疗影像储存系统的操作界面
3 文件下载性能测试
本系统的性能测试在1台PC机、3台服务器组成的硬件环境上完成。设置PC机为医学影像系统的客户端,选择其中的1台服务器为名称节点、剩余的2台服务器为数据节点,并使用100 Mbps的网络完成所有设备的信息互联。实验所用PC机和服务器的配置信息如表1所示。
表1 PC机和服务器的配置信息
该实验分别测试单客户端医联体影像云系统基于Hadoop分布式文件下载和基于网络文件系统(Network File System,NFS)顺序下载的速度并进行对比。本研究的文件下载性能测试使用iozone工具[20]。在测试过程中,将测试集文件的大小设置从64 kb变化到512 Mb,iozone的记录大小从4 kb变化到16 Mb。Hadoop分布式文件存储和NFS存储的测试结果,见图6。
图6 单客户端文件下载性能测试结果
通过图6观察可以发现,基于Hadoop分布式存储的文件下载速率要高于NFS的速率。通过改变实验集文件、记录的大小,观察文件下载的最高速率,发现基于Hadoop分布式存储的文件下载速率最高可达46 Mb/s,远高于NFS的最高下载速率17 Mb/s。对于测试文件大小的影响,在测试文件数据量逐渐增大时,基于Hadoop分布式存储和基于NFS的文件下载速度均呈现先增大再减小的情况,并在测试集达到一定大小时趋于稳定。对于平稳段文件下载速度的对比,基于Hadoop分布式存储的文件下载速率稳定为15 ~20 Mb/s,远大于NFS的稳定下载速率6~8 Mb/s。可以得出客户端的读写交互过程设计合理,能为Hadoop分布式存储的云PACS带来良好的文件下载性能。
4 应用效果
区域医联体的云PACS于2019年10月开始在我院正式上线使用,用于医联体框架下肺癌早期筛查过程CT影像图片的存储及管理。使用至今,该系统存储及管理的数据包含了4165位患者的影像图片,并自2021年1月份以来达到增长平稳,月增长率为14.8%。为验证该系统在真实业务中的表现,同时避免影响业务,本文在系统使用空闲时段,和NFS的系统进行CT影像数据下载速度对比。在测试前,本文先将所研究系统的检查序列导入NFS系统,然后分别选取影像文件数量较少、居中和最多的5组CT数据为实验用例,进行下载性能对比测试。测试对象及实验用例的具体设置情况如表2所示。
表2 测试对象及实验用例的设置情况
实验通过后台脚本记录测试信息,存储每组文件下载的开始、结束时间,经重复5次测试后,计算出各序列的平均下载速度。通过结果观察可以发现,对于包含不同文件数、文件大小的测试影像文件,使用Hadoop分布存储的TS_M1相较于使用NFS的TS_M2,在文件下载速度方面有着更佳的表现。TS_M1的平均速率达到19.7 Mb/s,远大于TS_M2的8.2 Mb/s,且两者比较差异有统计学意义(t=82.6,P<0.01)。
5 讨论
本研究基于Hadoop分布式存储的区域医联体云PACS相较于传统的NFS的PACS有着更为复杂的存储结构。具体性能验证,通过基本的文件下载性能测试和真实业务中的下载测试实验来对所研究的系统进行评估。实验测试结果表明,基于Hadoop分布式存储的PACS相较于传统的NFS系统有着更佳的文件下载速度表现,平均2.4倍的速度提升。上述实验验证了所研究系统的有效性,同时也显现出该系统在区域医联体肺癌早期筛查过程中能更好进行医学影像数据下载及共享的巨大潜能。该系统以Hadoop分布式存储技术为核心,以Web用户接口、中间接口、HDFS分布式存储、虚拟化容错和虚拟化为系统架构组成,对提升区域医联体医学影像调阅、管理等工作有着实用价值。
6 总结
该研究以区域医联体的肺癌早期筛查流程优化为背景,以信息化技术为手段,以Hadoop分布式存储为核心,搭建了区域医联体的医学影像云PACS,相应系统的搭建对于医联体的信息化发展、医学影像信息共享共用的促进等有着积极作用。在系统实现方面,该研究描述了一种基于Hadoop分布式存储云PACS的核心实现方法、架构、部件及用户界面,旨在构建一种兼具存储、资源共享及操作体验高性能的医学影像系统。理论上,该系统的使用继承了Hadoop架构的各项优势:① 可扩展:能通过计算机集群进行数据分配、存储和相关计算,相关集群可方便添加至系统的各个节点;② 经济:使用节点无需额外的硬件、操作系统花费;③ 高效:能在各节点间动态转移数据,并能使各节点保持数据动态平衡,有着快速的处理速度。在系统性能评估方面,该研究通过文件下载实验、应用效果分析,相较于传统的基于NFS技术的文件下载测试结果,验证了所搭建系统的可用性,并初步论证了所设计、实现的基于Hadoop分布式存储云PACS的较好使用及推广价值。
基于Hadoop分布式存储的云PACS,也是我们在不断总结、改进与完善的系统。总体而言,该系统还存在一系列需要完善的地方。① 所能存储、管理的医学影像资源单一,只含CT 图像一种,该系统不支持肺癌早期筛查过程中其他医学影像资源的管理及共享;② 在共用可扩展性上的思考及设计有所欠缺,该系统专门构建用于肺癌早期筛查,无法直接将其用于医联体下其他医疗合作项目的医学影像管理;③ 系统使用对于网络的性能有着更高要求,特别是中心医院与社区医院的网络连接有使用院外的网络,对于数据传输、网络安全性等有着更多影响因素。针对可能存在的不足,在今后的研究中,本课题组将把工作重点集中于以下几处:① 增进系统的数据包容性,在该系统中整合更多种类医学影像的管理,如增加MRI、超声、PET等数据的管理;② 提升该系统的业务可扩展能力,对系统接口、数据规范性等进行改善,向可插件式系统进行转变;③ 加强系统使用的网络安全性,系统使用过程中应持续加强各类安全风险的监控。