涂鐵
(安徽商貿(mào)職業(yè)技術(shù)學(xué)院,安徽蕪湖,241002)
混合現(xiàn)實(shí)(MR)技術(shù)作為一種新興技術(shù),能夠?qū)?shù)字對(duì)象和現(xiàn)實(shí)世界進(jìn)行有效融合,從而使用戶可以構(gòu)建成虛擬與現(xiàn)實(shí)交互反饋回路,達(dá)到虛擬與現(xiàn)實(shí)的有效互動(dòng)?;旌犀F(xiàn)實(shí)技術(shù)憑借其實(shí)時(shí)交互和精準(zhǔn)匹配的特點(diǎn)在醫(yī)療場(chǎng)景中有著廣闊的發(fā)展情景。其在外科手術(shù)、醫(yī)學(xué)研究、康復(fù)醫(yī)學(xué)、遠(yuǎn)程會(huì)診等方面都能夠發(fā)揮重要的作用?;诨旌犀F(xiàn)實(shí)手術(shù)規(guī)劃系統(tǒng)(圖1)是借助三維建模技術(shù)、混合現(xiàn)實(shí)技術(shù)、人機(jī)交互技術(shù)等將患者身體三維化呈現(xiàn)在相關(guān)設(shè)備中,使手術(shù)醫(yī)生可以借助相關(guān)數(shù)字模擬工具在患者的三維數(shù)據(jù)基礎(chǔ)上進(jìn)行手術(shù)模擬,從而制定手術(shù)方案,降低手術(shù)風(fēng)險(xiǎn)。同時(shí)相關(guān)手術(shù)醫(yī)生在手術(shù)過程中還可以通過混合現(xiàn)實(shí)眼鏡方便的查閱相關(guān)圖像資料并可以將病人的3d模型投影在患者身體上,從而可以幫助醫(yī)生進(jìn)行精確定位。
圖1 系統(tǒng)基本流程圖
對(duì)于數(shù)據(jù)中心來說來說其主要用來存儲(chǔ)相關(guān)病例資料和大量的來自不同設(shè)備(CT、X-Ray、MRI等)的醫(yī)學(xué)圖像數(shù)據(jù),這些數(shù)據(jù)每天可能以幾GB到幾十GB進(jìn)行增長(zhǎng),如何有效地進(jìn)行存儲(chǔ)設(shè)計(jì),直接影響到整個(gè)模擬系統(tǒng)的有效性和工作效率。本文提出一種醫(yī)學(xué)圖像數(shù)據(jù)存儲(chǔ)的設(shè)計(jì)方案,該方案采取分布式數(shù)據(jù)庫系統(tǒng)+分層存儲(chǔ)的思路,能夠提高圖像數(shù)據(jù)的傳輸效率,符合終端各種設(shè)備的需求。
在本模擬系統(tǒng)當(dāng)中,隨著用戶可預(yù)見性的增長(zhǎng),對(duì)云端數(shù)據(jù)的讀取、寫入等操作頻率會(huì)持續(xù)增加,當(dāng)多個(gè)用戶并發(fā)訪問特定數(shù)據(jù)時(shí),傳統(tǒng)的單點(diǎn)數(shù)據(jù)庫系統(tǒng)通常使用事務(wù)和鎖來保證數(shù)據(jù)的完整性,這樣會(huì)大大導(dǎo)致響應(yīng)延遲,降低用戶體驗(yàn)。
分布式數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)存儲(chǔ)在不同數(shù)據(jù)點(diǎn)中,這些數(shù)據(jù)點(diǎn)物理上分布于不同的位置并用高速網(wǎng)絡(luò)將其連接從而可以實(shí)現(xiàn)統(tǒng)一管理和調(diào)度,同時(shí)每個(gè)數(shù)據(jù)點(diǎn)都有獨(dú)立處理事務(wù)的能力。這種特點(diǎn)可以使整個(gè)系統(tǒng)在硬件成本增加相對(duì)較低的基礎(chǔ)上可以大幅提高數(shù)據(jù)庫的并發(fā)訪問能力,符合商業(yè)邏輯[1]。MySQL作為一種常用的開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng),其免費(fèi)靈活、動(dòng)態(tài)可擴(kuò)展等特性,使其適合搭建分布式數(shù)據(jù)庫系統(tǒng)。
MySQL分布式集群作為一種分布式節(jié)點(diǎn)架構(gòu)的存儲(chǔ)方案,其具有高性能、低成本、提供容錯(cuò)性等特點(diǎn),其被廣泛應(yīng)用在各種存儲(chǔ)系統(tǒng)中,如京東公司的分布式數(shù)據(jù)庫系統(tǒng)就是基于MySQL分布式集群為主體框架。本模擬系統(tǒng)數(shù)據(jù)存儲(chǔ)亦可以使用此方案予以搭建。本模擬系統(tǒng)的數(shù)據(jù)來源于醫(yī)院信息系統(tǒng)(HIS)、醫(yī)學(xué)圖像系統(tǒng)(PACS)等醫(yī)院信息化系統(tǒng)中的若干種,其可以分為結(jié)構(gòu)化數(shù)據(jù)(字符、數(shù)值等)和非結(jié)構(gòu)化數(shù)據(jù)(圖像、DICOM圖像數(shù)據(jù))兩大類。其中結(jié)構(gòu)化數(shù)據(jù)可以直接轉(zhuǎn)換成關(guān)系型數(shù)據(jù)庫中的各種表,而對(duì)于非結(jié)構(gòu)化數(shù)據(jù)在轉(zhuǎn)換的時(shí)候要保證其結(jié)構(gòu)和內(nèi)容完整。本文重點(diǎn)論述DICOM圖像數(shù)據(jù)這一非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)設(shè)計(jì)思路。
圖2 分解示意圖
對(duì)于本系統(tǒng)來說,DICOM醫(yī)學(xué)圖像數(shù)據(jù)的存儲(chǔ)至關(guān)重要。一方面,它是三維重建系統(tǒng)的數(shù)據(jù)來源,另一方面各種終端設(shè)備也需要調(diào)取它進(jìn)行查閱分析,所以如何準(zhǔn)確快速的讀取醫(yī)學(xué)圖像數(shù)據(jù)成為本方案需要重點(diǎn)考慮的問題。
DICOM(Digital Imaging and Communications in Medicine)即醫(yī)學(xué)數(shù)字成像和通信,是醫(yī)學(xué)圖像和相關(guān)信息的國(guó)際標(biāo)準(zhǔn)(ISO 12052),相對(duì)于其它類型數(shù)據(jù)而言,DICOM圖像數(shù)據(jù)具有高分辨率、高精度和大數(shù)據(jù)量的特點(diǎn),其數(shù)據(jù)之間存儲(chǔ)在很強(qiáng)的關(guān)聯(lián)性和規(guī)律性[2]。同時(shí)在DICOM醫(yī)學(xué)圖像數(shù)據(jù)中醫(yī)生通常感興趣的可能只是病癥部分的信息,而其它部分的則很少注意。針對(duì)上述特點(diǎn)可以采取分層存儲(chǔ)的思路去存儲(chǔ)相關(guān)醫(yī)學(xué)圖像數(shù)據(jù)。所謂分層存儲(chǔ)就是根據(jù)醫(yī)學(xué)圖像數(shù)據(jù)的任務(wù)用途來分別建立不同的圖像數(shù)據(jù)庫,從而提高整個(gè)模擬系統(tǒng)的數(shù)據(jù)讀取效率。
在本模擬系統(tǒng)中,使用三維建模工具使用患者的圖像數(shù)據(jù)進(jìn)行數(shù)據(jù)建模是其中一個(gè)重要環(huán)節(jié),這些圖像數(shù)據(jù)的來源就是原始圖像數(shù)據(jù)庫。當(dāng)DICOM醫(yī)學(xué)圖像數(shù)據(jù)從PACS中傳輸過來后,首先要經(jīng)過解析然后將DICOM 格式的信息部分和圖像數(shù)據(jù)部分進(jìn)行分離并將它們存儲(chǔ)到數(shù)據(jù)庫中,從而建立成原始圖像數(shù)據(jù)庫。該數(shù)據(jù)庫可以設(shè)計(jì)如下幾個(gè)數(shù)據(jù)表:Patients(患者表 )、Studies(檢查表)、Series(序列表)、Images(圖像表)、linktable(連接表)這些表通過外鍵相互關(guān)聯(lián),其中在linktable表是用來提高查詢效率的。
表1 原始圖像數(shù)據(jù)庫設(shè)計(jì)
通常情況下,當(dāng)醫(yī)學(xué)圖像數(shù)據(jù)生成后,相關(guān)的醫(yī)生可能會(huì)在圖像上對(duì)相關(guān)區(qū)域進(jìn)行標(biāo)注,將病變部分和疑似病變部分和其他部分區(qū)分開從而有利于制定手術(shù)方案。原始圖像數(shù)據(jù)庫中的圖像數(shù)據(jù)可以通過格式轉(zhuǎn)換成統(tǒng)一格式的醫(yī)學(xué)圖像,這些轉(zhuǎn)換后的醫(yī)學(xué)圖像就可以按照下面的表結(jié)構(gòu)存儲(chǔ)到標(biāo)注圖像數(shù)據(jù)庫中。標(biāo)注圖像數(shù)據(jù)庫除Patients表、Studies表、Series表、Images表、linktable表外還應(yīng)加上 Mark(標(biāo)注表)。其表結(jié)構(gòu)為 Mark(PatientID、ImageID、Position、Information、Doctor)。其中 PatientID列對(duì)應(yīng)的病人的ID,ImageID列對(duì)應(yīng)圖像的圖像號(hào),Position列表示標(biāo)注在圖像上顯示的位置,Information表示標(biāo)注的內(nèi)容,Doctor指明增加該標(biāo)注的醫(yī)生。Mark表同對(duì)應(yīng)的圖像數(shù)據(jù)在物理上是獨(dú)立的,從而保證了圖像數(shù)據(jù)的完整性。
圖3 數(shù)據(jù)傳輸示意圖
醫(yī)學(xué)圖像通常包含更多的紋理信息,常見的醫(yī)學(xué)影像數(shù)據(jù)所需的存儲(chǔ)空間較大,故數(shù)據(jù)傳輸在即時(shí)移動(dòng)端的各個(gè)應(yīng)用場(chǎng)景下都面臨著巨大的挑戰(zhàn)。本文提出一種采用經(jīng)典的RLE無損壓縮方法對(duì)影像數(shù)據(jù)進(jìn)行壓縮的思路。RLE算法的主要思想是:用一個(gè)表示塊數(shù)的屬性加上一個(gè)數(shù)據(jù)塊代表原來連續(xù)的若干塊數(shù)據(jù),達(dá)到縮小存儲(chǔ)空間的效果。本文采用一個(gè)真實(shí)影像數(shù)據(jù)來解釋RLE算法的壓縮步驟。首先關(guān)注到原圖相鄰的局部區(qū)域內(nèi)存在像素值相同的像素點(diǎn),故RLE對(duì)同一行連續(xù)相同的像素塊進(jìn)行分解,I1中記錄某一像素值連續(xù)出現(xiàn)的次數(shù),I2中記錄同一行連續(xù)出現(xiàn)的像素值,I3中記錄每一行存在的不同像素值總個(gè)數(shù)。由此將原圖分解為I1、I2、I3三個(gè)矩陣,在實(shí)際操作中本文利用png格式進(jìn)行無壓縮矩陣存儲(chǔ)??梢杂^察到由于醫(yī)學(xué)影像數(shù)據(jù)存在大量相同數(shù)據(jù)塊的特殊性,RLE無損壓縮算法能夠極大的對(duì)其進(jìn)行壓縮,則能夠有效解決影像數(shù)據(jù)在即時(shí)移動(dòng)端的應(yīng)用場(chǎng)景中完成高速傳輸?shù)哪康摹?/p>
本文針對(duì)基于混合現(xiàn)實(shí)手術(shù)規(guī)劃模擬系統(tǒng)圖像數(shù)據(jù)的存儲(chǔ)需要, 提出了以MySQL分布式集群作為整體存儲(chǔ)架構(gòu),并根據(jù)醫(yī)學(xué)圖像數(shù)據(jù)的特點(diǎn),提出了分層存儲(chǔ)的思路。對(duì)于本模擬系統(tǒng)來說,MySQL分布式集群這一分布式數(shù)據(jù)庫系統(tǒng)具有低成本、高性能等優(yōu)點(diǎn),而采用分層存儲(chǔ)的圖像數(shù)據(jù)庫的設(shè)計(jì)思路,又可以提高醫(yī)學(xué)圖像文件的傳輸效率,從而能夠匹配移動(dòng)端APP和微信小程序的實(shí)時(shí)訪問需求。