DVT和ADVT - 为数不多的DICOM测试工具说明AND下载
1、 前言
做DICOM研究、開發和應用的人,最頭疼的就是沒有充分的工具和手段來進行測試,所以無法知道自己的程序、軟件是否正確,能否正確地與其他設備進行DICOM連接?連接出錯的原因在哪里?改正的話該從哪里下手?實在自己搞不定的話如何尋求別人的幫助?如何向別的人正確描述自己,能夠讓別人正確的理解和明白你的真正問題所在?你總不能直接找到某臺設備去連接和進行測試吧?事實上絕大多數人并沒有這樣的條件,即使有,你又怎么能保證這太機器測成功,另臺機器也必然會成功呢?你又怎么能接更多的實際的設備呢?
說到底,以上問題可以匯集成一個問題:如何找到一套很好的工具來幫助自己進行DICOM的測試?這樣的工具并不很多,但是還是有一些的,例如 CTN (Central Testing Nodes),這是一個基于Unix平臺的開放源代碼的測試包,對開發者來說可以直接用其源代碼開發出自己的DICOM應用來(當然,版權或者是否能夠用于商業用途這里不討論),如果只是用來測試的,也可以找一臺Unix或者Linux主機,把ctn包安裝配置好,來作為測試工具。不過,很多人并不熟悉 Unix/Linux更不用說使用了。更通用的操作系統平臺自然是Microsoft Windows,而windows下大家經常能聽到的一個DICOM測試工具就是DVT(也有advt)的。
DICOM Validation Tool (DVT)是一個DICOM有效性測試工具,用來測試產品的DICOM兼容性。ADVT顧名思義就是Agfa提供的DICOM Validation Tool。那么ADVT和DVT的關系是什么呢?號稱DVT是Agfa在其Advt 2.61版本上發展出來的一個完全免費共享的工具,目的是提供一套獨立的工具,任何人都可以用來測試DICOM設備。所以二者雖然有不同,但基本上是可以通用的。DVT比ADVT多了不少擴展功能和有效法則的支持,以方便地支持DICOM標準的發展和擴展,例如它支持DICOM標準里新增加的安全相關的內容,另外DVT也提供了宏定義和更詳細的信息提示。
DVT目前的最高版本是1.4(14002),可以在這里Dvt (14002)下載到關于二者的詳細說明,可以參考agfa網站如下網頁 http://www.agfa.com/healthcare/us/support/dicomconnectivity/ 和 DICOM Validation Tool (DVT) - Version 1.4 .
2、 介紹
DVT采用腳本方式,這樣就可以讓使用者通過自己定義的腳本來進行DICOM兼容性測試,它預定義了許多測試用例可以來檢測不同的DICOM服務。
簡單地說,DVT可以認為是一個DICOM服務類的模擬器(我稱作模擬器或者虛擬機),可以當作SCU和/或SCP來用,當然,它也可以創建和檢測 DICOM格式的文件。它最大的好處是可以詳細地顯示相關的各種信息(包括通訊、消息、錯誤/警告、提示、語法、數據、屬性、參數等信息),通過這些信息,使用者可以找到問題所在,也可以作為學習DICOM的參考,這在極大程度上為開發測試人員提供了方便。綜上所述,DVT既可以用做DICOM測試工具,也可以用做DICOM開發工具,還可以用做DICOM學習參考。
DVT的主要特性包括:
ü Data driven - tool core is independent of specific DICOM SOP Classes and Test Cases - allows future extension as the DICOM Standard evolves.
ü Capable of playing the role of SCU and SCP.
ü Generate / send and receive / validate DICOM encoded messages appropriate to the SOP Class being tested.
ü The conditions specified in DICOM are used for Module / Attribute validation where possible. During validation, when the condition cannot be evaluated logically, DVT displays the condition text to the User.
ü Provides clear test results - including a summary of errors / warnings.
ü High flexibility - access is provided to every single DICOM attribute and parameter.
ü Received image data can be stored in Media Storage Format (DICOM - part 10) or in raw Dataset Format.
ü Provides an Image(Object) Relationship Analysis for received objects.
ü Allows tests to be repeated exactly as before - regression tests to check backward compatibility issues.
ü Multi-platform support (Windows NT/2K) as Command-line and GUI applications.
ü Media File Validation.
ü Emulation for Verification, Storage and Print SOP Classes.
ü Support for TLS and SSL secure sockets.
以上內容可以從dvt附帶的DvtGui.hlp幫助文件里獲知。DVT軟件同時也附帶了PDF格式的DICOM Conformance Statement文檔和使用手冊。
3、 使用
我們從一個實際的例子來看看如何使用,一個DICOM接收的例子(Storage SCP),這是一個Emulator的例子
1、 系統要求
要求Windows 2000/NT操作系統/64M以上內存/100M以上剩余空間/以太網(TCP/IP網絡協議)/如果你還需要測試DICOM光盤,還需要有個CD ROM驅動器
2、 安裝系統
在機器上安裝DVT V14002,安裝完成后,應有可執行程序(.exe)、一套標準的SOP類定義文件(.DEF)和一套測試示例(.DS/.TS/.DSS),以及各種腳本和幫助文檔等
3、 執行dvtgui.exe
a) 開始-)程序-》DICOM Validation Tool
b) 進入后,Session菜單-》Open-> DVT\emulators\storage\scp\test001.ses,把系統預設的Storage SCP裝載進來(注:系統預設了3個emulator,分別是Storage SCU(即DICOM發送),Storage SCP(即DICOM接收)和Print SCP(模擬DICOM打印機)
c) 裝載成功后,左邊欄顯示該模擬器的全部相關定義(.DEF)文件,你可以通過鼠標右鍵點擊查看該文件的內容
d) 設置參數:Session菜單-》Session Properties
這里的一些基本參數,可以不用理會,主要的參數是Product Role參數,這里設置成Requester,具體什么意思和如何設置可以查看幫助,單擊ACSE Properties按鈕,這里是設置DICOM的通訊參數,主要是設置AE Title和端口號(local listen)。注意Called AE和Calling AE這兩個AE Title分別對應對方和自己的AE Title,一般AE Title可以隨便設置,很多設備并不對此加以檢查,但是DVT檢查到AE不正確是,會有一個錯誤提示“WRN Calling AE Title not correct - expected "DVT" - received "AAA"。設置完成后就可以啟動運行。
e) 開始運行:Action菜單-》Emulators-》Run Storage SCP Emulator
DICOM接收程序開始運行,這時你可以將與本機器連接的DICOM發送設備上的圖象發送過來
f) 查看結果:在dvt右邊欄里會顯示詳細的網絡連接和接收信息,主要包括以下幾條:
i. 接收到的ASSOCIATE-RQ消息
ii. 接收到的ASSOCIATE-AC消息
iii. 如果成果接收,文件保存在emulators\storage\scp\xxxxxx.dcm
iv. File Meta Information
v. 接收到的C-STORE-RQ CT Image Storage SOP Class
vi. 發送的C-STORE-RSP消息
vii. 接收到的RELEASE-RQ消息
viii. 發送的RELEASE-RP
結果信息保存在emulators\storage\scp\001_001_em_res.txt文件里,可以查看獲得更詳細的信
4、 配置
a) 可以在Session菜單的Test Properties里配置模擬器的各種信息,包括要記錄哪些信息、文件編碼和存儲格式、以及支持的消息和Transfer Syntax(傳輸句法)等
b) 可以在Session菜單的Enviroment里修改環境設置,主要是各種路
5、 Script例子
前面是一個emulator的例子,現在說Script例子。顧名思義,script就是要你自己來寫腳本。Dvt已經附帶了很多腳本可以供你參考,這里簡單說明
a) Script模式下,首先需要有一個運行的session,在session里首先有預先裝載(load)的預定義文件Definition Files(.DEF),在該定義文件的支持下,需要運行某個預先寫好的腳本文件(.DS/.TS/.DSS),就可以起到相同的測試作用
b) 可以打開一個已有的session,例如scripts\storage\scp\test001.ses,可以看到其Definitions包括三個預定義,分別是CharacterSet.def,SecondaryCaptureImage Storage.def,FileMeta.def。它還有9個腳本文件(scripts下的.ds和.dss)
在Action菜單里通過Execute DICOM (super)Script來選擇執行其中的一個腳本,或者通過Parse DICOM (super)Script來選擇分析其中的一個腳本。
同樣,在左欄Scripts下具體一個腳本文件(.cs/.css)上單擊右鍵可以查看該腳本,雙擊左鍵可以直接運行該腳本。需要注意的是,腳本打開查看情況下不能運行,不許關閉該腳本的查看模式才可以運行,關閉方法是File菜單的Close
c) 可以新建一個新的session,例如scripts\storage\scp\test002.ses,首先需要加載預定義(.def),在Action菜單里通過Load Definitions來選擇加載的定義文件(注意:加載后要保存)。
對腳本的加載,則需要在Session菜單里設置該Session的腳本路徑(DICOM Script Directory),然后把需要的腳本文件(.ds/.ts/.dss)直接放到該路徑下就可以。同樣地,在Action菜單里通過Execute DICOM (super)Script來選擇執行其中的一個腳本,或者通過Parse DICOM (super)Script來選擇分析其中的一個腳本。
4、 深入
4.1 配置文件(5種:.SES/.DEF/.DS(.TS)/.DSS/.H)
4.1.1 Session File:每個測試Session的描述和配置定義文件(.SES),是執行測試的最基本平臺,這里我把它稱作模擬器(虛擬機),它包括三種不同類型
ü Emulator:模擬形式的模擬器
ü Scripting:腳本形式的模擬器
ü Media:DICOM文件格式模擬器
4.1.2 Definition File:定義文件(.DEF)
根據DICOM標準第3、4章,定義一個DICOM(Meta)SOP Class的DIMES命令及其IODs,這是模擬器運行所需要的前提條件。
4.1.3 DICOMScript:腳本文件(.DS/.TS)
測試所用腳本,劃分為SCU/SCU/FSC三種不同角色的腳本,是模擬器運行的腳本
4.1.4 DICOMSuperScript:腳本集(.DSS)
列出測試所需要的一系列腳本文件名,是模擬器運行的腳本集
4.1.5 IncludeFiles:頭文件(.h)
定義模擬器運行所包含的各種映射
4.2 工作模式
無論是哪一種運行模式(Emulator/Scripting/Media),DVT都是以腳本形式工作,腳本按Send和Receive命令形式,可以處理ACSE(6個低層R/R請求/響應消息)或DIMSE(高層C/N請求/響應消息)消息。發送時每個參數/屬性都是可控制的,并且錯誤和異常也是可控的,這對測試非常有用。
為了方便使用,DVT已經將所有的ACSE/DIMSE/DICOM Command/Data Object數據保存在其數據倉庫里,可方便地調用維護和更新。并且有一套管理(創建/刪除/導入/導出/讀/寫/重用)的命令。
4.3 工作
除非你明白了DVT怎么工作,否則它看上去還是比較復雜的,你的主要工作包括3部分,配置運行參數,調整腳本和檢查運行結果。
4.3.1 配置運行參數
4.3.2 調整腳本
主要是修改腳本文件,以滿足你自己的測試需要,腳本文件可以從dvt的數據倉庫里提取、復制和修改,當然如果你足夠牛的話也可以自己來修改,但是這絕對是費力不討好的事情,既然已經有現成的,還何必什么都要自己重頭做起來呢,要知道,人類文明的進步是靠懶人推動的。
腳本調整的主要內容包括對Command和IOD內容的調整,因為你要接的不同設備和產品對DICOM的規定是有差異的,比如A設備要求某個字段是必須的 (TYPE 1)的,而在B設備里該字段則可能是不需要的(TYPE 3)的,那么在DICOM標準里呢?它是Type 2的,這時候你就要根據不同設備,調整這樣的參數和屬性。同時調整不同的參數和屬性,也可以檢測對方或者你的軟件的穩定性和寬容性。
4.3.3 檢查運行結果
運行結果詳細地寫入到Result File里,你可以從其中看到運行中全部的需要信息,理解這些信息需要一些DICOM知識。
4.4 dvt已有腳本
目前dvt附帶的腳本包括了主要的DICOM服務的測試,基本已經可以滿足一般的測試需要,包括
ü Storage Commit的SCU/SCP
ü Mpps的SCU/SCP
ü Print的SCU/SCP
ü Query/Retrieve的SCU/SCP
ü SR Report的SCU/SCP
ü Storage的SCU/SCP
ü verification的SCU/SCP
ü worklist的SCU/SCP
5、 后記
本文的主要目的是為了概述DVT,讓大家能有個整體的了解后,能夠知道該怎么去使用它。DVT自帶的腳本和模擬器基本能夠滿足一個不很理解DICOM的人達到其用來測試DICOM通訊連接的目的,但是并不能保證他/她能夠完全理解其中的意義。完整的DVT文檔和幫助可以在DVT安裝軟件里的幫助信息和DVT 自帶的示范腳本里學習到,這里不做更深入詳細的說明。更深入的理解和更熟練的使用(例如:如何自己編寫腳本)等需要對DICOM的深入學習和理解,冰凍三尺,非一日之寒,這里沒有捷徑,想熟悉了解DICOM還是要通過自己的不斷努力。如果朋友們有什么意見、建議、更正和補充,非常歡迎大家與我交流,讓我能夠完善它,能夠給更多的朋友提供更多更好的資源和幫助。
(原作者聯系方式是dyjia@163.net, QQ:2670136, MSN:gladacer@hotmail.com)
6、 相關資源
感謝Agfa公司提供這樣好的工具和資源,以及他們無私的共享精神,我從他們的網站上獲得了許多幫助和學習的啟示,以下是一些有用的資源連接:
http://www.agfa.com/healthcare/us/support/dicomconnectivity/
DVT說明:http://www.agfa.com/en/he/landing/index.jsp?table=NAVSUPPORT&navguid=E032400677486E3D3A3065AC4BA09646&contentguid=A98DA0B71423C0D9A27EE7A0D844680A
DVT軟件下載站點:http://www.agfa.com/en/he/landing/index.jsp?table=NAVSUPPORT&navguid=E032400677486E3D3A3065AC4BA09646&contentguid=92140F7CC50F4CB1E0D12B3D58BBB387
?
?
?
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/CS_D_N/archive/2009/05/18/4195974.aspx
轉載于:https://www.cnblogs.com/okaimee/archive/2010/12/17/1909102.html
總結
以上是生活随笔為你收集整理的DVT和ADVT - 为数不多的DICOM测试工具说明AND下载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 硬币回收价格
- 下一篇: linq 解决winForm中控件Che