您的位置:首页 > 其它

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

2011-09-06 22:42 501 查看
服务器端,把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表示的值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: