我们有一个客户端向PACS服务器发出C-MOVE请求。我的理解是,在关闭C-MOVE协会并返回成功状态之前,将打开辅助关联并完成C-STORE操作。
对于一个特定的PACS,我们只有在实际发生了C-STORE子操作之后才接收到C-MOVE成功完成状态。成功消息的状态表明它们都已发生。
(0000,0002) UI =Study Root Query/Retrieve Information Model - MOVE # 28 Affected SOP Class UID 1
(0000,0100) US 32801 # 2 Command Field 1
(0000,0120) US 1 # 2 Message ID Being Responded To 1
(0000,0800) US 257 # 2 Data Set Type 1
(0000,0900) US 0 # 2 Status 1
(0000,0902) LO (no value available) # 0 Error Comment 1
(0000,1020) US (no value available) # 0 Number of Remaining Sub-operations 1
(0000,1021) US 248 # 2 Number of Completed Sub-operations 1
(0000,1022) US 0 # 2 Number of Failed Sub-operations 1
(0000,1023) US 0 # 2 Number of Warning Sub-operations 1
在我们收到此状态后,剩余的C-STORE操作就完成了。
根据我对DICOM标准第7部分的理解,在所有C-STORE子操作实际完成之前,我们不应该收到成功状态的C-MOVE响应。我是否正确地解释了这个PACS是否遵循标准?
如果这是正常的,那么C-MOVE请求者如何知道传输何时成功完成?
答案 0 :(得分:5)
C-MOVE SCP应该等到C-STORE子操作完成后再回复最终的C-MOVE-RSP。虽然在DICOM标准的第4部分中没有明确说明这一点,但是这样的陈述暗示最终状态是在子操作完成后发送的:
“当剩余子操作的数量达到零时,SCP将生成状态等于成功,警告,失败或拒绝的最终响应。该响应应指示已完成的子操作的数量,该数量失败的子操作,以及带有警告状态的子操作的数量。“
也许您遇到问题的PACS有一个架构可以将请求排队,也许在它确保请求排队后,它会返回,但是谁知道。
在任何情况下,关于如何确定何时完成所有操作,成功操作的数量返回的计数是否正确?您可以将此计数与C-STORE-SCP收到的实例数相关联,并确保计数等于知道何时完成所有操作。如果您的C-MOVE目的地是第三方服务器,这不起作用,但如果您控制C-MOVE-SCU和C-STORE-SCP,它应该可以工作。或者,如果您的目的地C-STORE-SCP也是C-FIND-SCP,您可以查询它以检查正在移动的研究的实例计数(即,检查研究相关实例数量标签)以确保计数匹配