第一章 與影像設備互連
PACS(Picture Archiving and Communication System) ,譯爲醫學影像歸檔與通訊系統,關於該名詞更多詳細的解釋,請參考網絡。
一、接收影像
1 、目的:接收影像設備發送的影像,並顯示。
2 、實驗平臺: Windows XP Professional SP2 ,其他 Windows 系統筆者未驗證,希望驗證過的朋友添加進來。
3 、前置條件
在您的電腦上新建文件夾如下
C:\PACS ,用於存放相關文檔
C:\DCMTK ,用於存放 dcmtk 工具包及源代碼
C:\DICOM ,
C:\DICOM\Source 用於存放實驗過程中用到的源圖片
C:\DICOM\Dest ,用於存放實驗過程中接收到的圖片,如接收的圖片
4 、所需工具:
1 ) dcmtk 中 storescp.exe 、 storescu.exe 、 dcm2pnm.exe
已編譯的 dcmtk 工具包下載鏈接:
ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk354/bin/dcmtk-3.5.4-win32-i386.zip
下載預編譯的 Dcmtk 工具包至 C:\DCMTK ,並解壓,解壓後的目錄爲 C:\DCMTK\dcmtk-3.5.4-win32-i386 。
2 ) DICOM ( Digital Imaging and Communication in Medicine )圖片,鏈接爲本人的資源,不需積分:
http://download.csdn.net/source/2218931
將下載到圖片拷貝至 C:\DICOM\Source 文件夾並解壓,解壓後的目錄爲 C:\DICOM\Source\CT01 ,包含文件 CT.dcm 和 ct.bmp 。
5 、前置知識
要完成本節的實驗,您得具備 Windows 系列操作的使用經驗,具備命令行方式程序的使用經驗則更好,當然不具備後者的使用經驗也沒關係,跟着筆者的腳步我們一起來學習它,沒想象中的那麼難 ;-) 。在本文中,新手朋友們可能會遇到很多不熟悉的名詞, Take it easy ,我們的宗旨是【應用爲王】 ,先撇開它們,書讀百遍,其義自現嘛。
6 、實驗步驟
1 )將 C:\DCMTK\dcmtk-3.5.4-win32-i386\bin 目錄下的所有 exe 文件拷貝至 %windir%( 一般爲您的硬盤中 C:\Windows 文件夾 ) 。這樣我們的命令行解釋器(下文簡稱 cmd.exe ,可以通過“開始” à 運行 à 輸入 ”cmd.exe” à 確定來啓動)啓動後,處於任何一個當前目錄,都可以使用 dcmtk 工具包。
2 )啓動 storescp
啓動 cmd.exe ,依次鍵入以下命令
C:>cd C:\DICOM\Dest
C:\DICOM\Dest >storescp.exe 104
3 )發送影像
再啓動一個 cmd.exe ,鍵入
C:\>storescu.exe 127.0.0.1 104 C:\DICOM\Source\CT1\CT.dcm
如果一切正常,在目錄 C:\DICOM\Dest 將出現文件 CT.1.2.840.113704.9.4021.3.1.1.200927949440 ,文件名有點長,不是嗎?
4 )啓動 cmd.exe ,依次鍵入以下命令,將 DICOM 文件轉換爲 bmp 文件。
C:>cd C:\DICOM\Dest
C:\DICOM\Dest> dcm2pnm.exe +ob CT.1.2.840.113704.9.4021.3.1.1.200927949440 CT.1.2.840.113704.9.4021.3.1.1.200927949440.bmp
然後,雙擊打開 CT.1.2.840.113704.9.4021.3.1.1.200927949440.bmp ,將看到一張典型的肺部平掃的 CT 圖片。
7 、與影像設備互連初步
有讀者朋友問了,到此爲止,你都沒有提到影像設備的事,你做了以上一大堆事情到底有什麼意義呢?筆者想說的是意義太大了,通過以上實驗,您已經跨入 PACS 開發的大門,列位看官莫急,且聽筆者慢慢道來。
讓我們在 6 中的實驗基礎上學習一個稍微複雜點的命令先。
啓動 cmd.exe ,鍵入
C:>storescp.exe –aet myaet 104
下面,筆者對這個命令做點解釋:
1 )如名稱所示, storescp.exe 是 Dcmtk 工具包中用於接收 DICOM 影像並進行保存的服務端程序, store 是個英文單詞(廢話一句 ;- )),表保存; scp 是指 Service Class Provider ,字面意思爲服務類提供者,即 DICOM 標準中所說的服務端程序。
2 ) -aet myaet 中的 aet 爲 Application Entity Title ,翻譯爲中文:應用程序實體標題,有點生硬,呵呵; -aet myaet 意即設置 storescp.exe 的 AET 爲 myaet 。
3 ) 104 ,指該服務程序監聽的端口,具備網絡基礎的朋友們可能會了解端口的意義,不清楚的朋友可以先跳過,【應用爲王】嘛。
這個稍微複雜點的命令先解釋到這,如果您有點雲裏霧裏,沒關係,多看幾遍,或者先放過意義的理解,隨着後面和筆者一起學習,一定會理解的,自信和耐心是我們學習的首要條件。
到此,有機會實際接觸醫院影像科設備的朋友已經可以自信的說:我可以接收影像設備發送的影像了!
8 、與影像設備互連
1 )按照 3 和 4 的描述,在您的電腦上部署好目錄和工具,通過交換機或者 HUB 將您的電腦和影像設備進行連接,並將您電腦的 IP 設置爲與影像設備在同一個網段,比如:
影像設備 IP : 192.168.1.10
則您電腦 IP : 192.168.1.11
具體如何設置可以上網查詢,或者聯繫系統管理員。
2 )將您電腦的 IP (此處假定爲 192.168.1.11 ,請根據實際情況)、端口( 104 )、 AET ( myaet )告知影像設備維護人員(什麼?您就是影像設備維護人員,那太好了),並請影像設備維護人員在影像設備上添加到您電腦的接收節點。
3 )在您的電腦上啓動 cmd.exe ,依次鍵入命令
C:\DICOM\Dest
C:\DICOM\Dest>storescp.exe –aet myaet 104 ,然後請影像醫師手工發送一幅影像到您的電腦節點。
OK ,在 C:\DICOM\Dest 目錄有新的影像嗎?恭喜你!什麼,還沒有?仔細檢查上述步驟,細心點,你會成功的
第二章 打印影像(膠片)
1 、目的:將 DICOM 影像提交至相機(乾式膠片打印機),並打印。
2 、實驗平臺: Windows XP Professional SP2 ,其他 Windows 系統筆者未驗證,希望驗證過的朋友添加進來。
3 、前置條件
在您的電腦上新建文件夾如下
C:\PACS ,用於存放相關文檔
C:\DCMTK ,用於存放 dcmtk 工具包及源代碼
C:\DICOM ,
C:\DICOM\Source 用於存放實驗過程中用到的源圖片
以下 3 個文件夾用於存放“提交影像”過程中的產生的臨時文件,注意大小寫,並確認爲其屬性爲“可寫”。
C:\DICOM\Source\database
C:\DICOM\Source\spool
C:\DICOM\Source\log
C:\DICOM\Dest ,用於存放實驗過程中接收到的圖片,
以下 3 個文件夾用於存放“模擬影像打印”過程中的產生的臨時文件,注意大小寫,並確認爲其屬性爲“可寫”。
C:\DICOM\Dest\database
C:\DICOM\Dest\spool
C:\DICOM\Dest\log
4 、所需工具:
1 ) dcmtk 中 dcmprscp.exe 、 dcmprscu.exe 、 dcmpsprt.exe 、 dcmpstat.cfg
已編譯的 dcmtk 工具包下載鏈接:
ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk354/bin/dcmtk-3.5.4-win32-i386.zip
下載預編譯的 Dcmtk 工具包至 C:\DCMTK ,並解壓,解壓後的目錄爲 C:\DCMTK\dcmtk-3.5.4-win32-i386 。
2 )請至以下鏈接下載測試用的 DICOM 圖片,不需積分:
http://download.csdn.net/source/2218931
將下載到圖片拷貝至 C:\DICOM\Source 文件夾並解壓,解壓後的目錄爲 C:\DICOM\Source\CT01 ,包含文件 CT.dcm 和 ct.bmp 。
5 、前置知識
要完成本節的實驗,您得具備 Windows 系列操作的使用經驗,具備命令行方式程序的使用經驗則更好。
6 、實驗步驟
1 )將 dcmpstat.cfg 分別拷貝至 C:\DICOM\Source 目錄和 C:\DICOM\Dest 目錄
2 )啓動 dcmprscp
啓動 cmd.exe ,依次鍵入以下命令
C:>cd C:\DICOM\Dest
C:\DICOM\Dest >dcmprscp.exe -c dcmpstat.cfg -p IHEFULL ( 命令到此結束,注意大小寫 ) ,將出現類似如下的提示,否則,請檢查您的操作步驟:
$dcmtk: dcmprscp v3.5.4 2005-12-20 $
2010-08-0517:30:43
started
3 )提交影像
再啓動一個 cmd.exe ,依次鍵入
C:\>cd C:\DICOM\Source
C:\DICOM\Source>dcmpsprt.exe -s -c dcmpstat.cfg -p IHEFULL C:\DICOM\Source\CT01\CT.dcm --filmsize 8INX10IN (命令到此結束,注意大小寫,另外 8IN 和 10IN 之間的字符爲字母 x,y,z 中的 x 的大寫)
如果一切正常,在目錄 C:\DICOM\Dest\database 將出現文件名類似 HG_4c5a89d3397d8c09.dcm 和 SP_4c5a89d3397d8c09.dcm 的文件,你的電腦上文件名應該稍有區別,但是開頭的 HG_ 和 SP_ 應是一致的,其中 HG_4c5a89d3397d8c09.dcm 的大小較大,在我的電腦上約爲 2049KB 。
4 )查看影像
啓動 cmd.exe ,依次鍵入以下命令,將 DICOM 文件轉換爲 bmp 文件。
C:>cd C:\DICOM\Dest\database
C:\DICOM\Dest\database>dcm2pnm.exe +ob HG_4c5a89d3397d8c09.dcm HG_4c5a89d3397d8c09.bmp
雙擊打開 HG_4c5a89d3397d8c09.bmp ,將看到一張典型的肺部平掃的 CT 圖片,與第一章中的圖片一致。
7 、提交影像至相機
1 )按照 3 和 4 的描述,在您的電腦上部署好目錄和工具,通過交換機或者 HUB 將您的電腦和相機進行連接,並將您電腦的 IP 設置爲與相機在同一個網段,比如:
相機 IP : 192.168.1.12
則您電腦 IP : 192.168.1.11
具體如何設置可以上網查詢,或者聯繫系統管理員。
2 )諮詢您的系統管理員,得到相機的 IP 地址、打印膠片的端口號、 AE Title 和相機支持的膠片尺寸(如 8INX10IN , 10INX12IN 等)
3 )用“寫字板”打開 C:\DICOM\Source\dcmpstat.cfg ,按 Ctrl+F ,搜索定位至如下所示:
[IHEFULL]
Aetitle = IHEFULL
Description = IHE Full Print SCP
Hostname = localhost
Port = 10005
將 Aetitle= 後面的 IHEFULL 修改爲 2) 中得到的相機的 aetitle ,
將 Hostname= 後面的 localhost 修改爲 2 )中得到的相機的 IP 地址,
將 Port= 後面的 10005 修改爲 2 )中得到的相機打印膠片的端口號。
保存後退出。
4 )在您的電腦上啓動 cmd.exe ,依次鍵入命令
C:\>cd C:\DICOM\Source
C:\DICOM\Source>dcmpsprt.exe -s -c dcmpstat.cfg -p IHEFULL C:\DICOM\Source\CT01\CT.dcm --filmsize 8INX10IN (命令到此結束, 8INX10IN 修改您的相機支持的膠片尺寸。)
如無意外,您的相機應該根據您的指示打印出了一張膠片,內容爲 6 中顯示的圖片。如果還沒有,仔細檢查上述步驟,細心點,相信自己,你會成功的。
8 、總結
1 、命令解釋
1 ) dcmprscp.exe -c dcmpstat.cfg -p IHEFULL
-c dcmpstat.cfg 表 dcmprscp.exe 引用的配置文件;
-p IHEFULL 表 dcmprscp.exe 引用的相機
2 ) dcmpsprt.exe -s -c dcmpstat.cfg -p IHEFULL C:\DICOM\Source\CT01\CT.dcm --filmsize 8INX10IN
-s 表生成待打印的 DICOM 文件的臨時文件後,提交至相機, s 即 spool ;
-c dcmpstat.cfg 表 dcmpsprt.exe 引用的配置文件;
-p IHEFULL 表 dcmpsprt.exe 引用的相機;
C:\DICOM\Source\CT01\CT.dcm 爲待打印的 DICOM 文件;
--filmsize 8INX10IN 表打印的膠片的尺寸。
2 、 dcmpstat.cfg 爲打印引用的配置文件,打印膠片所需的參數都在該文件中,待您熟悉後可以自定義很多參數。
3 、應用爲王,如果過程中有不懂的地方,可以先跳過,實驗成功就是勝利
第三章 工作列表( Work List )(一)
1 、目的
在工作站上登記患者,影像設備通過 DICOM 標準中的 Work List 獲取登記的患者信息。
2 、實驗平臺
Windows XP Professional SP2 ,其他 Windows 系統筆者未驗證,希望驗證過的朋友添加進來。
3 、前置條件
在您的電腦上新建文件夾如下
C:\PACS ,用於存放相關文檔
C:\DCMTK ,用於存放 dcmtk 工具包及源代碼
C:\DICOM ,
C:\DICOM\Worklist ,用於存放工作列表測試所需的文件。
C:\DICOM\Worklist\wlistdb\OFFIS ,用於存放工作列表文件數據庫;
C:\DICOM\Worklist\wlistqry ,用於存放工作列表查詢文件。
4 、所需工具
1 ) dcmtk 中 wlmscpfs.exe 、 findscu.exe 、 dcmdump.exe , dump2dcm.exe
已編譯的 dcmtk 工具包下載鏈接:
ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk354/bin/dcmtk-3.5.4-win32-i386.zip
下載預編譯的 Dcmtk 工具包至 C:\DCMTK ,並解壓,解壓後的目錄爲 C:\DCMTK\dcmtk-3.5.4-win32-i386 。
2 )請至以下鏈接下載測試用的工作列表文件,不需積分:
http://download.csdn.net/source/2608448
解壓後,將 wlistqry.wl 拷貝至 C:\DICOM\Worklist\wlistqry ;
將 wklist.wl 拷貝至 C:\DICOM\Worklist\wlistdb\OFFIS 。
5 、前置知識
要完成本節的實驗,您得具備 Windows 系列操作的使用經驗,具備命令行方式程序的使用經驗則更好。
6 、實驗步驟
1 )啓動 wlmscpfs
啓動 cmd.exe ,依次鍵入以下命令
C:>cd C:\DICOM\Worklist
C:\DICOM\Worklist>wlmscpfs.exe -dfr -dfp wlistdb 104 ( 命令到此結束,注意大小寫 ) ,將出現類似如下的提示,否則,請檢查您的操作步驟:
$dcmtk: wlmscpfs v3.5.4 2005-12-20 $
(notice: dcmdata auto correction disabled.)
2 )查詢患者信息
再啓動一個 cmd.exe ,依次鍵入
C:\>cd C:\DICOM\Worklist
C:\DICOM\Worklist>findscu 127.0.0.1 104 wlistqry\wlistqry.wl -aec OFFIS (命令到此結束,注意大小寫)
如果一切正常,在將出現類似如下的提示
RESPONSE: 1 (Pending)
# Dicom-Data-Set
# Used TransferSyntax: LittleEndianExplicit
(0008,0050) SH [00009 ] # 6, 1 AccessionNumber
(0010,0010) PN [MOZART^WOLFGANG^AMADEUS ] # 24, 1 PatientsName
(0010,0020) LO [MWA484763 ] # 10, 1 PatientID
(0010,0030) DA [17911205] # 8, 1 PatientsBirthDa
te 。
……
這些顯示內容應該比較好懂, # 號後的內容爲註釋。
比如 (0010,0010) PN [MOZART^WOLFGANG^AMADEUS ] # 24, 1 PatientsName
其中, (0010,0010) PN 爲 DICOM 標準中“患者姓名”字段的字段名, MOZART^WOLFGANG^AMADEUS 爲患者姓名。 # 24, 1 PatientsName 是這個字段的註釋。
7 、影像設備查詢工作列表
1 )按照 3 和 4 的描述,在您的電腦上部署好目錄和工具,通過交換機或者 HUB 將您的電腦和相機進行連接,並將您電腦的 IP 設置爲與相機在同一個網段,比如:
影像設備 IP : 192.168.1.10
則您電腦 IP : 192.168.1.11
具體如何設置可以上網查詢,或者聯繫系統管理員。
2 )諮詢您的系統管理員或者設備維護廠商,在影像設備上添加 Worklist 節點,節點屬性如下:
IP:192.168.1.11( 根據您電腦的實際情況修改 )
Port:104
AETitle:OFFIS
3 )在您的電腦上啓動 cmd.exe ,依次鍵入命令
C:>cd C:\DICOM\Worklist
C:\DICOM\Worklist>wlmscpfs.exe -dfr -dfp wlistdb 104 (命令到此結束)
諮詢系統管理員如何在影像設備上獲取工作列表,如無意外,您的影像設備應獲取到“姓名”爲 MOZART^WOLFGANG^AMADEUS 的患者信息。如果還沒有,仔細檢查上述步驟。
8 、總結
1 、命令解釋
wlmscpfs.exe -dfr -dfp wlistdb 104
-dfr 表接受字段不完整的 DICOM 文件作爲查詢內容;
-dfp wlistdb 表 wlmscpfs.exe 搜索的文件夾的路徑,可以爲絕對路徑;
104 爲工作列表程序的端口號;
wlistdb 文件夾下的 OFFIS 表 AETITLE 。
2 、應用爲王,如果過程中有不懂的地方,可以先跳過,實驗成功就是勝利,如有不清楚,歡迎討論,共同提高。
第四章 工作列表( Work List )(二)
1 、目的
書接前文:http://blog.csdn.net/pachleng/archive/2010/08/10/5800513.aspx,自定義患者信息,影像設備通過 DICOM 標準中的 Work List 獲取登記的患者信息,並能對影像設備與“工作列表”服務器通訊過程進行診斷。
2 、實驗平臺
Windows XP Professional SP2 ,其他 Windows 系統筆者未驗證,希望驗證過的朋友添加進來。
3 、前置條件
在您的電腦上新建文件夾如下
C:\PACS ,用於存放相關文檔
C:\DCMTK ,用於存放 dcmtk 工具包及源代碼
C:\DICOM ,
C:\DICOM\Worklist ,用於存放工作列表測試所需的文件。
C:\DICOM\Worklist\wlistdb\OFFIS ,用於存放工作列表文件數據庫;
C:\DICOM\Worklist\wlistqry ,用於存放工作列表查詢文件。
4 、所需工具
1 ) dcmtk 中 wlmscpfs.exe 、 findscu.exe 、 dcmdump.exe , dump2dcm.exe
已編譯的 dcmtk 工具包下載鏈接:
ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk354/bin/dcmtk-3.5.4-win32-i386.zip
下載預編譯的 Dcmtk 工具包至 C:\DCMTK ,並解壓,解壓後的目錄爲 C:\DCMTK\dcmtk-3.5.4-win32-i386 。
2 )請至以下鏈接下載測試用的“工作列表文件”,不需積分:
http://download.csdn.net/source/2608448
解壓後,將 wlistqry.wl 拷貝至 C:\DICOM\Worklist\wlistqry ;
將 wklist.wl 拷貝至 C:\DICOM\Worklist\wlistdb\OFFIS 。
請至以下鏈接下載測試用的工作列表“文本文件”,不需積分:
http://download.csdn.net/source/2635124
解壓後,將 wklist-2.dump 拷貝至 C:\DICOM\Worklist\wlistdb\OFFIS ,該文件來自於 dcmtk ,你也可以自己下載 dcmtk ,並獲得相似文件。
5 、前置知識
要完成本節的實驗,您得具備 Windows 系列操作的使用經驗,具備命令行方式程序的使用經驗則更好。
6 、實驗步驟
1 )啓動 wlmscpfs
啓動 cmd.exe ,依次鍵入以下命令
C:>cd C:\DICOM\Worklist
C:\DICOM\Worklist>wlmscpfs.exe -v -dfr -dfp wlistdb 104 ( 命令到此結束,注意大小寫 ) ,將出現類似如下的提示,否則,請檢查您的操作步驟:
$dcmtk: wlmscpfs v3.5.4 2005-12-20 $
(notice: dcmdata auto correction disabled.)
2 )生成患者信息
用“寫字板”打開 wklist.dump ,會看到如下所示的文本行:
(0008,0050) SH 00009
(0008,0005) CS [ISO_IR 100]
(0010,0010) PN A^B^C
(0010,0020) LO 123456
(0010,0030) DA 20000101
……
對於應用來講,爲了使影像設備能夠獲取到我們登記的患者信息,我們需要將注意力集中於以下幾個字段:
(0010,0010)(患者編號)、(0010,0020)(患者姓名)、(0010,0030)(出生日期)、(0010,0040) (性別)、(0020,000d)(檢查號)、(0008,0060)(設備Modality)、(0040,0001)(AE Title)、
(0040,0002)(檢查、預約日期)和(0040,0003)(檢查、預約時間)。
注意:
(1)、對於影像檢查來說,(0020,000d)(檢查號)是唯一標識符,任意2次檢查的檢查號必須不同;
(2)、(0010,0030)(出生日期)和(0040,0002)(檢查、預約日期)必須是8位前導格式,即如果是2000年1月1日,須表示爲20000101;
(3)、(0040,0003)(檢查、預約時間)必須是6位前導格式,即8時3分3秒,須表示爲080303;
( 4 )、 重點 : (0040,0002)(檢查、預約日期)必須與影像設備上設置的時間範圍一致,否則可能造成登記的患者,影像設備上檢索不到;一般來說,該字段填寫當天的日期;
(5) 重點 : (0008,0060)(設備Modality)必須與影像設備的Modality一致,如果設備是CT,則該字段應填CT,如果設備是磁共振(MR),則該字段應填MR,其他更多的Modality請查閱DICOM標準;
(6) 重點: (0040,0001)(AE Title)應與設備上訪問工作列表服務的AE Title一致,可以聯繫影像設備的系統管理員;
3 )生成患者信息 dicom 文件;
啓動 cmd.exe ,依次鍵入
C:\>cd C:\DICOM\Worklist\wlistdb\OFFIS
C:\DICOM\Worklist\wlistdb\OFFIS>dump2dcm.exe wklist-2.dump wklist-2.wl
4 )模擬影像設備檢索登記的患者信息
C:\DICOM\Worklist>findscu 127.0.0.1 104 wlistqry\wlistqry.wl -aec OFFIS (命令到此結束,注意大小寫)
如果一切正常,在將出現類似如下的提示
RESPONSE: 1 (Pending)
(0008,0050) SH [00009 ] # 6, 1 AccessionNumber
(0010,0010) PN [A^B^C ] # 6, 1 PatientsName
(0010,0020) LO [123456] # 6, 1 PatientID
(0010,0030) DA [20000101] # 8, 1 PatientsBirthDa
te ……
同時,啓動 wlmscpfs.exe 的命令行界面將出現類似如下的提示:
RESPONSE: 1 (Pending)
# Dicom-Data-Set
# Used TransferSyntax: LittleEndianExplicit
(0008,0050) SH [00009 ] # 6, 1 AccessionNumber
(0010,0010) PN [MOZART^WOLFGANG^AMADEUS ] # 24, 1 PatientsName
(0010,0020) LO [MWA484763 ] # 10, 1 PatientID
(0010,0030) DA [17911205] # 8, 1 PatientsBirthDa
te
(0010,0040) CS [M ] # 2, 1 PatientsSex
(0010,2000) LO [ABZESS] # 6, 1 MedicalAlerts
(0010,2110) LO [BARIUMSULFAT] # 12, 1
……
說明我們登記的患者信息已被檢索到。
7 、影像設備查詢工作列表
參照第三章 工作列表( Work List )(一)的第 7 節,完成本節實驗。
8 、總結
1 、命令解釋
wlmscpfs.exe -v -dfr -dfp wlistdb 104
多出來的 -v 選項是向用戶顯示詳細的通訊過程信息, v 即 verbose 。
2 、標註重點 的地方是影像設備能否正確檢索到登記的患者信息的關鍵所在