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

服务器端,把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表示的值。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在命令行中使用 DCMTK 工具向 Worklist 服务发送病人信息,你可以按照以下步骤进行操作: 1. 打开命令提示符(cmd)。 2. 导航到 DCMTK 工具的安装目录。DCMTK 提供了多个可用的工具,其中包括 `movescu` 和 `findscu`,你可以根据自己的需求选择适当的工具。 3. 使用以下命令行格式来发送病人信息: ``` <工具名称> -v -aet <本地AE标题> -aec <服务端AE标题> -a <服务端IP地址> -p <服务端端口号> -k "<标签1>=<值1>" -k "<标签2>=<值2>" ... ``` - `<工具名称>`:替换为你选择的 DCMTK 工具的名称,例如 `movescu` 或 `findscu`。 - `-v`:可选参数,用于启用详细的日志输出。 - `-aet <本地AE标题>`:替换为你的应用程序在 DICOM 网络中的 AE 标题。 - `-aec <服务端AE标题>`:替换为 Worklist 服务的 AE 标题。 - `-a <服务端IP地址>`:替换为 Worklist 服务的 IP 地址。 - `-p <服务端端口号>`:替换为 Worklist 服务的端口号。 - `<标签1>, <标签2>, ...`:替换为你要发送的病人信息的 DICOM 标签。例如,患者姓名是 `PatientName`,患者ID 是 `PatientID`,你可以使用 `-k "PatientName=John Doe" -k "PatientID=12345"` 来发送这些信息。 举个例子,假设你选择使用 `movescu` 工具,本地 AE 标题是 `MY_APP`,Worklist 服务的 AE 标题是 `WL_SERVER`,IP 地址是 `192.168.0.100`,端口号是 `1234`,你要发送的病人姓名是 John Doe,患者ID 是 12345,你可以使用以下命令: ``` movescu -v -aet MY_APP -aec WL_SERVER -a 192.168.0.100 -p 1234 -k "PatientName=John Doe" -k "PatientID=12345" ``` 此命令将连接到指定的 Worklist 服务并发送病人信息。确保提供正确的参数和标签值以发送准确的病人信息。 请注意,这只是一个基本示例,实际操作中可能需要根据工具的文档或帮助指南提供其他参数和查询条件。确保按照工具的要求进行操作,并根据需要处理返回的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值