摘要:DICOM 網(wǎng)關(guān)是醫(yī)學(xué)圖像存檔與通信系統(tǒng)(PACS) 的關(guān)鍵部分,用于接收、存儲、轉(zhuǎn)發(fā)DICOM 醫(yī)學(xué)圖像。本文實(shí)踐了DICOM 網(wǎng)關(guān)的詳細(xì)設(shè)計(jì)過程以及在Windows2k/XP系統(tǒng)下利用DCMTK工具包實(shí)現(xiàn)DICOM 網(wǎng)關(guān)的具體方法,并進(jìn)行了對比測試和結(jié)果分析。
關(guān)鍵詞: PACS;DICOM;網(wǎng)關(guān)
1. DICOM 網(wǎng)關(guān)總體設(shè)計(jì)
1. 1 圖像存儲方案
PACS 圖像有兩個(gè)特點(diǎn): ①數(shù)據(jù)量大;②訪問頻率高。由于關(guān)系數(shù)據(jù)庫支持海量圖像數(shù)據(jù)的高頻率訪問能力差, 直接在關(guān)系數(shù)據(jù)庫中存儲DICOM 圖像,無法滿足 以上兩點(diǎn)要求。本文采用如下圖像存儲方案:將DICOM 圖像相關(guān)信息存儲在關(guān)系數(shù)據(jù)庫,將圖像主體數(shù)據(jù)以文件的形式存儲在圖像存檔服務(wù)器( Picture Archiving Server ,簡稱PAS) 中,通過DICOM 圖像所包含的病人、檢查等信息為數(shù)據(jù)庫和PAS 建立對應(yīng)關(guān)系。
1. 2 圖像傳輸流程
PACS 中DICOM 圖像流程如下:
①在數(shù)據(jù)庫中建立電子病歷reg;②病人信息登記到醫(yī)療設(shè)備中并檢查reg;③DICOM 網(wǎng)關(guān)從設(shè)備獲取圖像reg;④DICO網(wǎng)關(guān)將圖像轉(zhuǎn)發(fā)到PAS reg;⑤DICOM 網(wǎng)關(guān)將圖像在PAS 的存儲目錄寫入電子病歷reg; ⑥診斷工作站訪問電子病歷,獲取DICOM 圖像在PAS 中的存儲位置reg; ⑦診斷工作站根據(jù)存儲位置以FTP 方式獲取PAS 上的圖像。
1. 3 DICOM 網(wǎng)關(guān)工作流程
根據(jù)PACS 中圖像傳輸流程,自行設(shè)計(jì)的DICOM網(wǎng)關(guān)用于實(shí)現(xiàn)圖像采集和圖像存儲功能。DICOM 網(wǎng)關(guān)負(fù)責(zé)完成前述③④⑤步工作,需要實(shí)現(xiàn)的功能包括: ①與醫(yī)療設(shè)備實(shí)現(xiàn)DICOM 通訊并存儲DICOM 圖像; ②轉(zhuǎn)發(fā)DICOM 圖像到PAS ; ③訪問數(shù)據(jù)庫。
2 DICOM 網(wǎng)關(guān)詳細(xì)設(shè)計(jì)
2. 1 圖像采集機(jī)制設(shè)計(jì)
連接的雙方通過應(yīng)用實(shí)體(Application Entity ,簡稱AE) 進(jìn)行通訊, AE必須擁有物理網(wǎng)絡(luò)中唯一的網(wǎng)絡(luò)地址,即表示層地址。由于DICOM 采用TCP/ IP 作為底層協(xié)議,AE映射到表示層地址就是IP 地址和TCP 端口號。在進(jìn)行實(shí)際的DICOM 設(shè)備連接時(shí),必須設(shè)置AETitle、IP 和端口號這三個(gè)參數(shù),才能接收DICOM圖像。
2. 2 圖像存儲機(jī)制設(shè)計(jì)
DICOM 網(wǎng)關(guān)按照分級目錄進(jìn)行圖像存儲。
各級目錄的命名由對應(yīng)的DICOM 圖像中與病人、醫(yī)療設(shè)備相關(guān)的信息確定。這些信息包括檢查號( ExamNo) 、設(shè)備類型(Modality) 、檢查日期(StudyDate) 、病人ID ( Patient ID) 、病人姓名拼音(PatientName) 、檢查序列號(Series Number) 、傳輸語法( Transfer Syntax UID) 等。
目錄結(jié)構(gòu)需要便于查找、備份、導(dǎo)出等日常文件操作。為了保證文件操作的效率,目錄結(jié)構(gòu)設(shè)計(jì)為四級: ①圖像類型; ②采集時(shí)間; ③病人信息;④圖像序列號。其中第一級目錄命名為圖像中Modality 的屬性值; 第二級目錄命名為圖像中StudyDate 的屬性值; 第三級目錄命名為圖像中Patient ID 屬性值和PatientName 屬性值的組合,從而保證病人信息的唯一性;第四級目錄命名為圖像中SeriesNumber 的屬性值。
2. 3 圖像轉(zhuǎn)發(fā)機(jī)制設(shè)計(jì)
DICOM網(wǎng)關(guān)負(fù)責(zé)轉(zhuǎn)發(fā)DICOM圖像到PAS 上。首先網(wǎng)關(guān)將接收到的圖像按照四級目錄結(jié)構(gòu)存儲在本地,然后再轉(zhuǎn)發(fā)到PAS ,并按照相同的四級目錄結(jié)構(gòu)存儲。
另外,在三甲醫(yī)院中,還需要在不同的科室建立多個(gè)科室PAS 作為中央PAS 在科室的備份。科室內(nèi)部的診斷工作站可以直接訪問科室PAS 中的圖像而不必直接訪問中央PAS ,從而減少主干網(wǎng)絡(luò)訪問量,提高檢索速率。因此DICOM 網(wǎng)關(guān)還必須能夠同時(shí)向多個(gè)PAS 發(fā)送圖像,即實(shí)現(xiàn)“預(yù)分配”機(jī)制。
2. 4 數(shù)據(jù)庫訪問機(jī)制設(shè)計(jì)
首先DICOM 圖像中含有的檢查號信息訪問數(shù)據(jù)庫,然后把從DICOM 圖像中獲得的設(shè)備類型、檢查日期、圖像序列號三項(xiàng)信息填寫到該檢查號對應(yīng)的數(shù)據(jù)庫記錄中。診斷工作站在訪問數(shù)據(jù)庫后,可以根據(jù)這些信息構(gòu)成對應(yīng)的圖像在PAS上的存儲目錄。
3 DICOM 網(wǎng)關(guān)實(shí)現(xiàn)
網(wǎng)關(guān)由三個(gè)模塊組成:接收模塊;發(fā)送模塊; 數(shù)據(jù)庫模塊。
接收模塊實(shí)現(xiàn)圖像采集和圖像存儲機(jī)制,采用DICOM 協(xié)議與醫(yī)療設(shè)備進(jìn)行通訊,接收DICOM 圖像,并在網(wǎng)關(guān)本地按照四級目錄結(jié)構(gòu)存儲。發(fā)送模塊實(shí)現(xiàn)圖像轉(zhuǎn)發(fā)機(jī)制并支持“預(yù)分配”機(jī)制,采用FTP協(xié)議轉(zhuǎn)發(fā)DICOM 圖像并存儲在PAS。數(shù)據(jù)庫模塊實(shí)現(xiàn)數(shù)據(jù)庫訪問機(jī)制,把從DICOM 圖像中獲得的信息填入數(shù)據(jù)庫記錄中相應(yīng)字段。
3. 1 接收模塊實(shí)現(xiàn)
根據(jù)DICOM 標(biāo)準(zhǔn)和PACS 設(shè)計(jì)要求,醫(yī)療設(shè)備對應(yīng)為C-STORE 存儲服務(wù)類的服務(wù)類使用者(Service Class Provider ,簡稱SCU) ,DICOM 網(wǎng)關(guān)接收模塊對應(yīng)為C-STORE 存儲服務(wù)類的服務(wù)類提供者(Service Class Provider ,簡稱SCP) 。醫(yī)療設(shè)備與網(wǎng)關(guān)接收模塊之間的通訊過程如圖3 所示:其中第①步到第④步是連接協(xié)商過程,其目的為了確定傳輸數(shù)據(jù)的數(shù)據(jù)類型和編碼方式。第⑤步到第⑥步是數(shù)據(jù)傳輸過程,協(xié)商數(shù)據(jù)類型和編碼方式成后,SCU 將DICOM 命令和DICOM數(shù)據(jù)封裝成協(xié)議數(shù)據(jù)單元( Protocol Date Unit ,簡稱PDU) ,然后以協(xié)商好的連接方式發(fā)送給SCP。第⑦到第⑧步是釋放連接過程,數(shù)據(jù)傳輸完畢或者傳輸出現(xiàn)錯(cuò)誤都需要釋放連接。
由于DCMTK是開放源代碼工具包,不能夠滿足具體的應(yīng)用需求, 因此對DCMTK進(jìn)行了二次開發(fā)。
接收模塊的具體實(shí)現(xiàn)函數(shù)流程如下:
①initializeNetwork:初始化網(wǎng)絡(luò)連接;②setParameter:設(shè)置網(wǎng)絡(luò)連接參數(shù);
③acceptAssociation:接收連接;④selectSyntax :確定傳輸語法;
⑤acknowledgeAssociation :確認(rèn)協(xié)商后連接成功;
⑥r(nóng)eceiveCommand,用于接收傳輸命令;
⑦storeSCP,用于實(shí)現(xiàn)C-STORE SCP 服務(wù),傳輸、存儲數(shù)據(jù);
⑧dropSCPAssociation :關(guān)閉SCP 連接;⑨dest royAssociation :釋放連接;
⑩dropNetwork ,釋放網(wǎng)絡(luò)連接。
在DCMTK中C-STORE SCP 服務(wù)需要指定相應(yīng)的傳輸語法才能工作。在selectSynatax 函數(shù)中修改了這一限制,從而能夠支持8 種傳輸語法。
另外, DCMTK 中按照DICOM 圖像中的StudyInstanceUID 信息和DateTime 信息構(gòu)成存儲目錄,不能滿足網(wǎng)關(guān)需要。接收模塊按照存儲機(jī)制設(shè)計(jì)要求修改了存儲目錄。網(wǎng)關(guān)獲取圖像之后,首先根據(jù)圖像的格式,提取出文件中的檢查號、設(shè)備類型、研究日期、病人ID、病人姓名拼音、檢查序列號六項(xiàng)信息,并按照“Modality \\ StudyDate \\ Patient ID PatientName \\ SeriesNumber”四級目錄結(jié)構(gòu)將圖像存儲在本地硬盤。
3. 2 發(fā)送模塊實(shí)現(xiàn)
網(wǎng)關(guān)獲取DICOM 圖像后,按照設(shè)定IP 地址、端口號、用戶名、密碼、存儲目錄等,將DICOM 圖像采用FTP 方式轉(zhuǎn)發(fā)到PAS。采用FTP 方式傳輸文件效率高、便于管理,因此網(wǎng)關(guān)作為FTP 客戶端,將采集到的DICOM 圖像以FTP 方式上傳到任意一個(gè)PAS。發(fā)送模塊以動態(tài)鏈接庫的形式供網(wǎng)關(guān)程序調(diào)用。
發(fā)送模塊傳輸文件的步驟是: 創(chuàng)建并初始化一個(gè)網(wǎng)絡(luò)會話;建立與服務(wù)器的連接;連接時(shí)查詢或設(shè)置網(wǎng)絡(luò)參數(shù);對FTP 服務(wù)器進(jìn)行操作,實(shí)現(xiàn)按照4級目錄結(jié)構(gòu)上傳文件功能;關(guān)閉FTP 連接。另外,為了實(shí)現(xiàn)“預(yù)分配”機(jī)制,發(fā)送模塊提供了INI 文件(配置文件) 接口,只要在INI 文件中設(shè)置目的PAS 的IP 地址、端口號、用戶名、密碼、目錄等,就可以將DICOM 圖像轉(zhuǎn)發(fā)到指定的PAS并按照四級目錄結(jié)構(gòu)存儲。
3. 3 數(shù)據(jù)庫模塊實(shí)現(xiàn)
數(shù)據(jù)庫模塊操作數(shù)據(jù)庫的步驟是:注冊和連接數(shù)據(jù)庫;根據(jù)檢查號打開數(shù)據(jù)庫記錄集;操作該檢查號對應(yīng)的數(shù)據(jù)記錄集,在設(shè)備類型、研究日期、檢查序列號這些字段中填入信息;關(guān)閉與數(shù)據(jù)庫的連接。
4. 結(jié)論
DICOM網(wǎng)關(guān)是PACS 的重要組成部分,自行設(shè)計(jì)的DICOM網(wǎng)關(guān)經(jīng)過實(shí)際測試,實(shí)現(xiàn)了:正確接收和存儲PACS圖像;正確地將PACS圖像發(fā)送到指定的一個(gè)或多個(gè)服務(wù)器;正確修改數(shù)據(jù)庫記錄中的相應(yīng)字段。目前,DICOM 網(wǎng)關(guān)已經(jīng)用于PACS 測試版本中,正在進(jìn)行進(jìn)一步的測評。
參考文獻(xiàn):
【1】Gerritsen, M.G.J.M.; van der Putten, N.; Dijk, W.A.; et al. General DICOM PACS server for echocardiography images[J].
【2】賈克斌,沈波. 實(shí)現(xiàn)醫(yī)學(xué)影像存檔和傳輸系統(tǒng)中的若干關(guān)鍵技術(shù)[J].中國圖像圖形學(xué)報(bào)