使用dcmtk进行worklist服务的测试方法

来源:互联网 发布:ubuntu新建文件 编辑:程序博客网 时间:2024/06/08 05:33
 

服务器端,把dcmtk-3.5.4/dcmwlm/wlistdb/OFFIS目录下的文件通过dump2dcm转换到L:/dcmtk/testWLMSCPFS/OFFIS目录下,用如下语句启动

wlmscpfs -v -dfp "L:/dcmtk/testWLMSCPFS" 666

 

客户端,把dcmtk-3.5.4/dcmwlm/wlistqry目录下的文件通过dump2dcm转换到L:/dcmtk/testWLMSCPFS/wlistqry目录下,用如下语句启动

findscu 127.0.0.1 666 -aec "OFFIS" -k 0010,0010="VIVALDI^ANTONIO" -k 0010,0020 -k 0010,0030  -v L:/dcmtk/testWLMSCPFS/wlistqry/wlistqry0.dcm

 

这时,不管-k使用什么参数,服务器都返回

C-Find RSP: MsgID: 1 [Status=Success]

  AffectedSOPClassUID: =FINDModalityWorklistInformationModel

  Data Set: Not Present

Releasing Association

 

跟踪服务器端代码,发现WlmFileSystemInteractionManager::DetermineMatchingRecords中288行,如下代码DatasetIsComplete总是返回False,

if( enableRejectionOfIncompleteWlFiles && !DatasetIsComplete( dataset ) )

导致不进行数据查询,感觉是enableRejectionOfIncompleteWlFiles 这个变量没有初始化,检查代码,发现它被初始化为True,检查初始化代码,原来在WlmDataSourceFileSystem::ConnectToDataSource中进行的初始化,而WlmConsoleEngineFileSystem::WlmConsoleEngineFileSystem初始化时就接受--disable-file-reject这个参数,因此决定添加--disable-file-reject这个参数,修改服务器启动参数如下:

wlmscpfs -v -dfp "L:/dcmtk/testWLMSCPFS" 666 --disable-file-reject

这样服务器就可以返回匹配-k的数据了

 

要注意:findscu 中的参数 -k 0010,0020 -k 0010,0030 是不带值的,作用是让服务器返回这两个-k表示的值。

原创粉丝点击