孔 俊, 唐厚君
(上海交通大學(xué)信息與控制工程系,上海200240)
摘 要: DICOM3.0標(biāo)準(zhǔn)作為目前通用的醫(yī)學(xué)圖像標(biāo)準(zhǔn),最重要的特性之一在于其面向?qū)ο笮浴1狙芯恳?br />
據(jù)這一重要特性,描述了如何使用面向?qū)ο蟮腏ava語(yǔ)言實(shí)現(xiàn)該標(biāo)準(zhǔn)的接口軟件。從而解決了DICOM硬件設(shè)備與
后繼PACS處理軟件的接口問(wèn)題。同時(shí),為了克服現(xiàn)有PACS系統(tǒng)的硬件瓶頸,對(duì)數(shù)據(jù)讀入方式采取了優(yōu)化,大大
降低了CPU運(yùn)行時(shí)間和內(nèi)存占用空間,提高了系統(tǒng)的運(yùn)行質(zhì)量和性能。
關(guān)鍵詞: 醫(yī)學(xué)數(shù)字成像和通訊;圖像存儲(chǔ)和傳輸系統(tǒng);接口;面向?qū)ο?br />
中圖分類號(hào): R318.19文獻(xiàn)標(biāo)識(shí)碼:A
引言
原始數(shù)據(jù)的進(jìn)入是進(jìn)行圖像分析的第一步。但是專用醫(yī)學(xué)圖像(如CT,MRI)不采用BMP,JPEG等
般格式,而是以DICOM格式[1]存放的。因此需要通過(guò)一個(gè)通用數(shù)據(jù)接口提供雙向服務(wù);(1)實(shí)現(xiàn)DICO
數(shù)據(jù)的解碼,得到圖像及相關(guān)病歷信息。(2)提供DICOM圖像數(shù)據(jù)向BMP、JPEG等普通格式轉(zhuǎn)化的功能
(3)經(jīng)計(jì)算機(jī)處理后的圖像數(shù)據(jù)及其他一些非DICOM圖像數(shù)據(jù)編碼為DICOM格式,亦即形成新的CT/
MRI文件,從而可以進(jìn)入DICOM專用網(wǎng)絡(luò)。
1 DICOM標(biāo)準(zhǔn)
DICOM協(xié)議主要是針對(duì)PACS系統(tǒng)中的圖像格式的定義和圖像通信的規(guī)范。其作為目前通用的醫(yī)學(xué)圖
標(biāo)準(zhǔn),最重要的特性之一在于其面向?qū)ο笮。這就決定了在該標(biāo)準(zhǔn)的軟件實(shí)現(xiàn)中,Java具有獨(dú)特的優(yōu)越性。
DICOM標(biāo)準(zhǔn)的面向?qū)ο笮允腔谝唤M顯式的、細(xì)節(jié)化的實(shí)體-關(guān)系模型(Entity-Relation模型)。模
具有以下三要素:(1)各種實(shí)體如患者(patient)、圖像(image)、研究(studies)等代表對(duì)象。(2)屬性
描述了對(duì)象的特性。屬性賦值以后,抽象的實(shí)體成為實(shí)例(Instance)。(3)服務(wù)處理信息對(duì)象的方法,
文件的存儲(chǔ)和傳輸操作。E-R模型可用關(guān)系圖來(lái)表示:
圖1 E-R模型關(guān)系圖
例如源實(shí)體名為貓,目標(biāo)實(shí)體名為老鼠,關(guān)系為抓,則該模型的意思為一只貓抓0只或多只老鼠。
2 用Java實(shí)現(xiàn)接口的優(yōu)勢(shì)
Java具有以下幾個(gè)特點(diǎn)[2]:(1)面向?qū)ο笮?(2)與平臺(tái)無(wú)關(guān)性,(3)方便的網(wǎng)絡(luò)移植性。用Java來(lái)實(shí)
DICOM接口,可以體現(xiàn)良好的數(shù)據(jù)抽象和數(shù)據(jù)封裝,這與DICOM標(biāo)準(zhǔn)的基本設(shè)計(jì)思想完全吻合。最終
標(biāo)是建立起一個(gè)與平臺(tái)無(wú)關(guān),同時(shí)基于網(wǎng)絡(luò)運(yùn)行的醫(yī)學(xué)圖像分析系統(tǒng)。因此這套用Java開(kāi)發(fā)的DICOM
據(jù)接口以Java包的形式向整個(gè)系統(tǒng)提供無(wú)縫連接,同時(shí)對(duì)其它基于Java的醫(yī)學(xué)軟件提供通用服務(wù)。
3 軟件設(shè)計(jì)與實(shí)現(xiàn)
已有的同類型軟件具有的主要問(wèn)題在于:(1)通用性不夠,只適用于特定范圍。(2)功能的實(shí)用性沒(méi)有
收稿日期:2003-06-13
好的貼近醫(yī)院的使用習(xí)慣。(3)無(wú)法保證效率。具體而言,就是指運(yùn)算時(shí)間和內(nèi)存占用這兩方面的性能
標(biāo)。由于一般情況下,對(duì)軟件性能的要求不是基于單個(gè)文件,醫(yī)院通常對(duì)每個(gè)患者的一次病理分析會(huì)產(chǎn)生
十兆的DICOM文件序列,軟件的算法結(jié)構(gòu)和內(nèi)存分配是否合理會(huì)對(duì)軟件的性能有非常明顯的影響。
3.1 通用性設(shè)計(jì)分析
目前很多DICOM軟件之所以通用性不是很好,是由于設(shè)計(jì)時(shí)沒(méi)有能夠充分考慮到DICOM數(shù)據(jù)編碼
靈活性,因而沒(méi)有在程序中作相應(yīng)處理。
DICOM文件是標(biāo)準(zhǔn)的二進(jìn)制流文件,它實(shí)際上是對(duì)各種對(duì)象的屬性信息和對(duì)應(yīng)值進(jìn)行編碼,其結(jié)構(gòu)層
為:數(shù)據(jù)元素(Data Element)數(shù)據(jù)集(Data Set)消息(Message)。作為最小單位的每一個(gè)數(shù)據(jù)元素在DI
COM的數(shù)據(jù)字典中都有明確定義:惟一性標(biāo)志(TAG),名稱(NAME)和類型表示(VR)。數(shù)據(jù)字典以靜態(tài)屬
的形式封裝進(jìn)獨(dú)立的Java類。從局部看,按照TAG值升序,DICOM文件順次存放如下結(jié)構(gòu)的數(shù)據(jù)元素:
標(biāo)志類型表示長(zhǎng)度值域
圖2 文件結(jié)構(gòu)
整體來(lái)講,文件分為信息頭和圖像兩大部分。前者存放患者信息和圖像的總體指標(biāo),后者存放圖像的
素信息。DICOM標(biāo)準(zhǔn)規(guī)定:信息頭中一些關(guān)鍵屬性值的設(shè)置非常靈活,而且對(duì)其它相關(guān)方面有直接影響。
一些文獻(xiàn)中試圖對(duì)這種靈活性進(jìn)行歸納,本研究認(rèn)為這些歸納并不全面。而一個(gè)全面的總結(jié)正是通
型程序結(jié)構(gòu)的設(shè)計(jì)基礎(chǔ),具體如下:
(1)傳輸語(yǔ)法對(duì)信息頭和圖像部分編碼的影響。傳輸語(yǔ)法(Transfer Syntax)屬性的值控制整個(gè)文件
編碼結(jié)構(gòu)。程序必須據(jù)此判斷:
①類型表示(VR)在編碼時(shí)顯式(exlicit)還是隱式(implicit)列出,相應(yīng)“長(zhǎng)度”項(xiàng)的位置(距“標(biāo)志”項(xiàng)的
移量)會(huì)有不同。而“值”的讀取一般依賴于正確的“長(zhǎng)度”。
②字節(jié)順序(byte ordering)是低位地址低位字節(jié)順序(Little Endian)還是低位地址高位字節(jié)順序(Bi
Endian)。從根本上影響到JAVA I/O中對(duì)二進(jìn)制字節(jié)流的組合方式。
③圖像數(shù)據(jù)是否經(jīng)過(guò)壓縮。大部分DICOM圖像是沒(méi)有經(jīng)過(guò)壓縮的原始數(shù)據(jù),對(duì)于壓縮圖像,可以
JPEG壓縮和游程編碼壓縮(RLE)兩大類,并下分有損和無(wú)損情況。Sun公司提供了處理JPEG壓縮/解
縮包.com.sun.image.codec.jpeg。RLE的壓縮/解壓縮算法包也是外掛的,可以很方便實(shí)現(xiàn)。
(2)信息頭部分對(duì)圖像部分編碼的影響
①圖像類別。圖像類別(Modality)屬性直接影響后面象素值的讀取,對(duì)于MRI灰度圖像,沒(méi)有CT灰
圖像所具有的斜率,截距概念,也就沒(méi)有相關(guān)的預(yù)處理過(guò)程。同時(shí)MRI灰度圖像沒(méi)有預(yù)定義窗寬、窗位,
11 第1期孔 俊等:DICOM醫(yī)學(xué)圖像數(shù)據(jù)接口的Java實(shí)現(xiàn)
|
|