我使用dcmtk3.6.3向pacs发送c-move命令。
dcmtk接收c-move rsp,得到一个错误"(0000,0902)“。
我知道错误的原因,但我不知道为什么PACS可以通过c移动rsp返回00000092个值?



据我所知,C移动rsp在dicom中只有状态00000090,并且没有标签"(0000,0902)“。
"(0000,0902)“的错误信息是否通过传递?
发布于 2018-10-16 10:34:57
嗯,我不确定状态是否在(00000900)中正确传递,因为dcmtk输出中最有趣的部分被省略了。尝试对movescu使用-ll跟踪选项,并查找“:”。然后,您可以看到原始数据集发送的C移动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的回复中。
但是,对于该特定的状态代码不允许使用attribte (0000,0902),这是正确的。见表C.4-2,PS3.4。状态必须始终存在。根据状态代码,可以使用其他属性来传递有关状态的附加信息(例如操作失败的原因或受影响的对象)。上面引用的表列出了允许哪些附加属性用于哪种状态。
发布于 2018-10-17 11:45:45

我从dicom3.0中找到了答案。
https://stackoverflow.com/questions/52829234
复制相似问题