我使用dcmtk3.6.3将c-move命令发送到pacs。
并且dcmtk接收到c-move-rsp,并显示“(0000,0902)”错误。
我知道错误的原因,但我不知道为什么PACS可以通过c-move-rsp返回0000,0092个值?
据我所知,C-move-rsp在dicom中的状态仅为0000,0090,而没有标签为“(0000,0902)”
错误消息“(0000,0902)”是否通过c-move-rsp传递?
答案 0 :(得分:1)
好吧,由于不确定dcmtk输出中最有趣的部分,因此我不确定在(0000,0900)中无法正确传达状态。尝试将-ll TRACE选项用于movescu,然后查找“ DIMSE Command Received:”。然后,您可以看到C-MOVE SCP发送的原始数据集。它应该是这样的:
T: DIMSE Command Received:
T:
T: # Dicom-Data-Set
T: # Used TransferSyntax: Little Endian Implicit
T: (0000,0002) UI =MOVEPatientRootQueryRetrieveInformationModel # 28, 1 AffectedSOPClassUID
T: (0000,0100) US 32801 # 2, 1 CommandField
T: (0000,0120) US 1 # 2, 1 MessageIDBeingRespondedTo
T: (0000,0800) US 0 # 2, 1 CommandDataSetType
T: (0000,0900) US 43009 # 2, 1 Status
T: (0000,1021) US 0 # 2, 1 NumberOfCompletedSuboperations
T: (0000,1022) US 3 # 2, 1 NumberOfFailedSuboperations
但是,由于在您发布的屏幕截图中正确报告了有效状态0xa702,因此我强烈怀疑 出现在MOVE-SCP的响应中。
但是,对于该特定状态代码,不允许属性(0000,0902),这是正确的。参见PS3.4,表C.4-2。该状态必须始终存在。取决于状态代码,可以使用其他属性来传达有关状态的其他信息(例如,操作失败的原因或受影响的对象)。上面引用的表列出了允许在哪种状态下使用的其他属性。
答案 1 :(得分:-1)