我使用 dcmtk3.6.3 向 pacs 发送 c-move 命令。
并且 dcmtk 接收到 c-move-rsp,其中出现“(0000, 0902)”错误。
我知道错误的原因,但我不知道为什么PACS可以通过c-move-rsp返回0000,0092的值?
据我所知,C-move-rsp在dicom中只有status 0000,0090,没有标签“(0000, 0902)”
“(0000, 0902)”的错误信息是通过c-move-rsp传递的吗?
好吧,我不确定是否在 (0000,0900) 中没有正确传达状态,因为省略了 dcmtk 输出中最有趣的部分。尝试对movescu 使用-ll TRACE 选项并查找“收到的DIMSE 命令:”。然后可以看到 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。状态必须始终存在。根据状态代码,附加属性可用于传达有关状态的附加信息(例如,操作失败的原因或受影响的对象)。上面引用的表格列出了哪些状态允许使用哪些附加属性。