文獻標識碼: A
文章編號: 0258-7998(2013)12-0145-04
隨著CT(X射線),、MR(核磁共振)等醫(yī)學影像設(shè)備的迅速發(fā)展,拍攝出來的醫(yī)學影像清晰度顯著提高,但所占空間也明顯增大[1],。與此同時,,重大疾病發(fā)生率的增高等因素導致醫(yī)學影像數(shù)據(jù)量增加迅速,。目前,,一個大型醫(yī)院每天將產(chǎn)生50 GB以上的數(shù)據(jù),全院總數(shù)據(jù)量已經(jīng)達到了30 TB級別,,醫(yī)生每天都需要頻繁地讀取影像數(shù)據(jù)來輔助診斷,。因此,一個性能良好的醫(yī)學影像傳輸及存儲系統(tǒng)顯得格外重要,。近年來云計算技術(shù)正逐步從理論研究走向?qū)嶋H應(yīng)用,,作為一種新型的體系架構(gòu),云計算是一個充分利用信息資源的平臺,。對于對應(yīng)用平臺高要求,、且資金受限的醫(yī)院來說,云計算有望為其提供一個新的解決方案,。
1 系統(tǒng)技術(shù)概述
1.1 云計算
云計算(Cloud computing)融合了分布式并行計算,、網(wǎng)絡(luò)存儲、負載均衡等多種傳統(tǒng)計算機和網(wǎng)絡(luò)技術(shù),,以其獨特的擴展性,、廉價性及容錯力受到廣泛關(guān)注。Hadoop是Apache開發(fā)的一個云計算的開源平臺,,主要包括分布式文件系統(tǒng)(HDFS)和并行計算框架(MapReduce),。Hadoop集群的規(guī)模少則幾臺,多則可上千臺,其存儲與計算能力也隨著規(guī)模的擴大而穩(wěn)步提高,。
HDFS是Hadoop的文件存儲系統(tǒng),,適合于大規(guī)模數(shù)據(jù)集上的應(yīng)用。HDFS將一個大文件分成若干個數(shù)據(jù)塊,,并創(chuàng)建多份復制保存在多個數(shù)據(jù)節(jié)點集合中,,避免發(fā)生單點故障。因此利用HDFS能使系統(tǒng)實現(xiàn):大規(guī)模數(shù)據(jù)存儲,、高冗余,、輕松擴容、負載均衡[2]等功能,。
MapReduce是Hadoop在HDFS基礎(chǔ)上的并行計算框架,,為用戶提供方便實用的并行編程模式,實現(xiàn)大規(guī)模數(shù)據(jù)的并行計算,。MapReduce的主節(jié)點根據(jù)輸入數(shù)據(jù)的鍵(key),,通過映射函數(shù)(Mapper)將輸入數(shù)據(jù)映射給不同的從節(jié)點進行并行運算,隨后再通過規(guī)約函數(shù)(Reducer)將各個從節(jié)點的運行結(jié)果進行歸約合并,形成最終的計算結(jié)果[3],。
1.2 DICOM概述
數(shù)字影像和通信標準3.0(DICOM3.0)是由美國放射學會與美國國家電器制造商協(xié)會聯(lián)合制定的標準,,規(guī)定了不同的醫(yī)療影像設(shè)備標準化的數(shù)據(jù)格式,從而使數(shù)字影像更有效率地傳輸和交換,。DICOM主要的操作協(xié)議有C_STORE,、C_FIND、C_MOVE,分別執(zhí)行存儲,、查找與獲取,。
2 系統(tǒng)架構(gòu)
目前醫(yī)院采用PACS來進行醫(yī)學影像數(shù)據(jù)存儲與傳輸。數(shù)據(jù)讀寫速度和冗余性,、系統(tǒng)擴展性,、負載均衡等都是設(shè)計PACS所要考慮的重要方面。由于當前醫(yī)院數(shù)據(jù)全部存儲于光纖存儲局域網(wǎng)絡(luò)(FC-SAN)集中式存儲服務(wù)器中,,因此在使用PACS過程中尚存以下問題:(1)數(shù)據(jù)讀寫速度慢,。由于資金的限制,醫(yī)院將使用頻率較低的數(shù)據(jù)轉(zhuǎn)移到二級存儲設(shè)備中,,導致讀寫效率十分低下,。(2)服務(wù)器負載重。PACS依靠影像中心服務(wù)器和集中式存儲服務(wù)器進行數(shù)據(jù)調(diào)度和讀寫,,而大量來自工作站的請求對影像中心服務(wù)器的處理器性能和存儲服務(wù)器的讀寫能力帶來極大的考驗,。(3)計算能力差。工作站目前只能在單機環(huán)境下進行有限的圖像處理,,無法提供大規(guī)模運算的服務(wù),。(4)不同醫(yī)院間數(shù)據(jù)難以共享,。
2.1 架構(gòu)設(shè)計
為了解決上述問題,本文設(shè)計了一種將分布式與集中式存儲相結(jié)合的混合式PACS架構(gòu),。在各醫(yī)院園區(qū)網(wǎng)內(nèi)部搭建Hadoop云集群,利用Hadoop集群的HDFS分布式存儲數(shù)據(jù),采用MapReduce進行大規(guī)模數(shù)據(jù)計算,。系統(tǒng)整體示意圖如圖1所示。
系統(tǒng)將所有原有的數(shù)據(jù)移至HDFS,集中式存儲服務(wù)器只保留近期數(shù)據(jù),。而新產(chǎn)生的圖像數(shù)據(jù)同時保存于集中式存儲服務(wù)器和HDFS中,。通過這樣的方式節(jié)省集中式存儲服務(wù)器的空間,解決原二級存儲讀寫速度慢的問題,同時將數(shù)據(jù)存儲在HDFS中也有利于使用Hadoop的MapReduce框架進行并行計算,。在后期系統(tǒng)升級過程中,,只需要簡單地增加Hadoop集群的節(jié)點數(shù)目,即可提升系統(tǒng)存儲容量與計算性能,。為了實現(xiàn)不同醫(yī)療組織間的資源共享,,醫(yī)院園區(qū)網(wǎng)可以通過防火墻連接公網(wǎng)。對于來自公網(wǎng)上的工作站的請求,,防火墻需要先對其進行安全認證和訪問控制,,只有符合安全規(guī)定的請求才被遞交至影像中心服務(wù)器。
此外,,本文開發(fā)了SDCMO組件與WDO組件,。作為中間件,它們屏蔽底層操作細節(jié),,為上層的應(yīng)用系統(tǒng)提供統(tǒng)一的圖像寫入,、讀取和查詢接口。系統(tǒng)架構(gòu)圖如圖2所示,。
2.2 SDCMO組件
由于每個醫(yī)學影像文件不大,,而HDFS會為每個文件分配固定的內(nèi)存空間,因此處理大量的醫(yī)學影像文件會造成極大的內(nèi)存開銷[4],。本文采用文件序列化技術(shù)(Sequence File),將儲存于HDFS的每個DICOM數(shù)據(jù)映射成鍵值對(Key/Value)的形式,。其中Key是DICOM數(shù)據(jù)文件名,,而Value保存DICOM數(shù)據(jù)內(nèi)容。每個DICOM數(shù)據(jù)被視為一條記錄,,將每一組DICOM圖像合并成一個包含多條記錄的序列化的文件SDCM(Sequence-DICOM),,從而減少文件數(shù)目,節(jié)省內(nèi)存空間,,同時還利用了圖像序列之間的相關(guān)性進行無損壓縮,。
SDCMO(SDCM Operator)組件提供對SDCM文件操作的方法。主要包括4個部分:(1)SDCM定位器,,負責獲取文件位置信息;(2)SDCM寫入器,,負責向HDFS寫入SDCM數(shù)據(jù);(3)SDCM讀取器,,向HDFS讀取SDCM數(shù)據(jù);(4)SDCMO Converter負責DICOM與SDCM之間的類型轉(zhuǎn)換。
2.3 WDO組件
為了實現(xiàn)不同設(shè)備之間數(shù)據(jù)的透明交換與傳輸,,本文開發(fā)了適配于DICOM 3.0數(shù)據(jù)標準的WDO(Web DICOM Operator)組件,,該組件能夠解析、響應(yīng)和封裝來自HTTP的C_STORE,C_MOVE和C_FIND報文,,使HDFS能夠在接收存儲,、獲取、查找請求報文時可執(zhí)行相應(yīng)操作[5],。該組件主要包括6個部分:(1)HTTP請求接收器, 負責接收和發(fā)送HTTP報文,;(2)釋義器,負責解析HTTP的請求報文,,并將其轉(zhuǎn)換為DICOM 3.0標準的請求,;(3)DICOM請求器負責發(fā)送和處理DICOM響應(yīng)報文;(4)STORE封裝器,,提供封裝DICOM3.0標準的C_STORE報文的方法,;(5)FIND封裝器,提供封裝DICOM3.0標準的C_FIND報文的方法,;(6)MOVE封裝器,提供封裝DICOM3.0標準的C_MOVE報文的方法,。
2.4 工作流程
2.4.1 圖像寫入流程
考慮到安全問題,只有園區(qū)網(wǎng)內(nèi)的影像設(shè)備和內(nèi)部工作站有寫入權(quán)限,。而對于來自公網(wǎng)的外部工作站無權(quán)對HDFS和FC-SAN進行寫入操作,。圖像寫入流程如下:
(1)工作站向影像中心服務(wù)器發(fā)送寫入請求(C_STORE)
報文;
(2)影像中心服務(wù)器根據(jù)業(yè)務(wù)需求的不同選擇文件存儲位置,,并修改索引表,。若要存儲到HDFS,則執(zhí)行步驟(3),、步驟(4),若存儲到FC-SAN則執(zhí)行步驟(5),;
(3)Hadoop名稱節(jié)點創(chuàng)建文件,分配存放數(shù)據(jù)各分塊的數(shù)據(jù)節(jié)點列表,;
(4)調(diào)用SDCMO組件中的數(shù)據(jù)轉(zhuǎn)換器,將DICOM文件轉(zhuǎn)換為SDCM類型,,并調(diào)用SDCMO組件中的文件寫入器,將文件寫入HDFS的數(shù)據(jù)節(jié)點中,返回寫入成功信息,,寫入過程結(jié)束,。
(5)直接寫入FC-SAN,寫入過程結(jié)束,。
對于需要從FC-SAN遷移備份至HDFS的數(shù)據(jù),,需遞歸地遍歷源文件夾下的所有子文件夾,不斷執(zhí)行步驟(3),、步驟(4)執(zhí)行寫入,,完成數(shù)據(jù)遷移,。文件寫入流程圖如圖3所示。
2.4.2 讀取/查詢流程
文件讀取/查詢流程如下:
(1)來自公網(wǎng)的外部工作站與醫(yī)院園區(qū)網(wǎng)關(guān)建立SSL連接,,發(fā)出查詢請求,。
(2)網(wǎng)關(guān)的請求接收器與外部建立合法的SSL
連接,接收HTTP請求,。
(3)網(wǎng)關(guān)的釋義器將HTTP請求轉(zhuǎn)化為DICOM3.0標準的C_FIND報文,。
(4)DICOM請求器將C_FIND報文發(fā)送給影像中心服務(wù)器,影像中心服務(wù)器接收C_FIND請求,,查找索引表中文件的位置信息,。根據(jù)文件位置的不同跳至步驟(5)或步驟(6)。
(5)接收來自FC-SAN的數(shù)據(jù),,跳至步驟(8),。
(6)接收來自HDFS的數(shù)據(jù)名稱節(jié)點根據(jù)元數(shù)據(jù),調(diào)度文件分塊所在的數(shù)據(jù)節(jié)點,。
(7)根據(jù)名稱節(jié)點中元數(shù)據(jù)的分塊信息,,利用SDCMO組件中的文件讀取器得到SDCM數(shù)據(jù),使用SDCMO組件中的數(shù)據(jù)轉(zhuǎn)換器將SDCM數(shù)據(jù)轉(zhuǎn)換為DICOM數(shù)據(jù),,并調(diào)用WDO組件中C_FIND報文的封裝接口FIND,將DICOM數(shù)據(jù)封裝為DICOM的響應(yīng)報文,。
(8)釋義器將響應(yīng)報文轉(zhuǎn)為HTTP報文。
(9)將HTTP報文發(fā)送給HTTP請求器,。
(10)請求接收器將HTTP報文通過SSL連接發(fā)送給外部工作站,,讀取過程結(jié)束。
對于來自局域網(wǎng)的內(nèi)部工作站的請求,,由于其已在局域網(wǎng)環(huán)境中,,且請求報文已經(jīng)是DICOM3.0格式,只需直接將請求發(fā)送給DICOM請求器,并從步驟(4)開始執(zhí)行即可,。文件讀取/查詢流程如圖4所示,。
2.4.3 圖像檢索流程
當工作站需要執(zhí)行圖像檢索等大規(guī)模運算時,執(zhí)行流程與圖4大體一致,,在步驟(4)的過程中還需要利用MapReduce進行特征計算,、匹配以獲取檢索結(jié)果。
3 實驗測試
3.1系統(tǒng)配置
在實驗環(huán)境中,,采用Hadoop集群為基本配置,其中1臺作為HDFS的名稱節(jié)點兼MapReduce的主節(jié)點,,4臺為HDFS的數(shù)據(jù)節(jié)點兼MapReduce的從節(jié)點,。集群工作站配置一致,使用Intel(R) Core(TM) i3-2310M的CPU,,內(nèi)存2 GB,,硬盤500 GB,,并在Ubuntu操作系統(tǒng)上搭建Hadoop-1.1.2。
3.2 實驗結(jié)果分析
(1)寫入與讀取測試:從圖5可以看出,,HDFS的平均寫入,、讀取速度分別為4.72 Mb/s和27 Mb/s,相比原系統(tǒng)FC-SAN的1.5 Mb/s和2.26 Mb/s,讀寫速度有了明顯的提升,。
(2)壓縮比測試:將一個病人產(chǎn)生的大約306 MB的MR圖像數(shù)據(jù)轉(zhuǎn)換為SDCM后,,數(shù)據(jù)只有125 MB,壓縮率為40.8%,;全系統(tǒng)平均壓縮率為40.6%,。而采用SDCM不僅將原有數(shù)據(jù)進行無損壓縮,同時還將數(shù)據(jù)轉(zhuǎn)換為鍵值對的形式,,有利于后期利用MapReduce對數(shù)據(jù)直接進行處理運算,,省去了重新格式化數(shù)據(jù)的時間,提高了運算效率,。
(3)計算測試:由于特征提取是圖像計算的基本步驟,,本系統(tǒng)就一個4.2 GB的DICOM數(shù)據(jù)(10 290個圖像文件)進行全局特征提取計算,以測試系統(tǒng)計算性能,。在集群數(shù)目為1,、2、3,、4(集群數(shù)目為1時,,即為原系統(tǒng)的單機運算模式)各自執(zhí)行5次測試計算,取各自的平均計算時間,。從圖6的實驗結(jié)果可以看出,,對于較復雜的運算,多節(jié)點比單機下運行速度有了明顯的提高,。
云計算是一項新興技術(shù),,但目前并未廣泛地應(yīng)用到醫(yī)療機構(gòu)中。本文首先利用HDFS分布式文件系統(tǒng)與MapReduce計算框架技術(shù)設(shè)計了一個基于云計算技術(shù)的PACS混合架構(gòu),,為原有PACS提供了一個低成本,、易擴展、高效的技術(shù)方案,;設(shè)計和實現(xiàn)了SDCMO組件和WDO組件,,并簡述了系統(tǒng)在公網(wǎng)環(huán)境下的讀寫流程;然后通過硬件部署的設(shè)計討論其可行性,;最后在實驗環(huán)境中測試了本系統(tǒng)的存儲傳輸,、壓縮和計算性能。經(jīng)測試,系統(tǒng)初步達到了節(jié)省存儲空間,、提高讀寫效率,、提升計算能力的目的,,為云計算技術(shù)真正應(yīng)用到醫(yī)院信息化建設(shè)中提供了理論基礎(chǔ)。
參考文獻
[1] 樊一鳴.云計算技術(shù)與區(qū)域醫(yī)學影像系統(tǒng)結(jié)合的探討[J]. 中國衛(wèi)生信息管理, 2011,8(1):21-22.
[2] 高林,宋相倩,王潔萍.云計算及其關(guān)鍵技術(shù)研究[J].微型機與應(yīng)用, 2011,30(10):5-7.
[3] 趙凱.基于云存儲的醫(yī)院PACS系統(tǒng)存儲設(shè)計[J].信息安全與技術(shù), 2012,3(4):92-93.
[4] 李彭軍,陳光杰,,郭文明,,等.基于HDFS的區(qū)域醫(yī)學影像分布式存儲架構(gòu)設(shè)計[J].南方醫(yī)科大學學報,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.