在 N_CREATE 响应中设置命令集的问题,pydicom
Issue with Setting the Command Set in N_CREATE Response, pydicom
我正在按照此处所述开发 MPPS SCP:MPPS SCP 作为基本框架。
我已经能够使用 DVTk 对其进行一些测试,这里提供了一些工具:DVTk
它的大部分似乎都工作正常,但我似乎遇到的问题是响应假设在“命令集”中返回组 0000 的标签,而不是返回的数据集本身:我实际上确实在 DataSet 中设置了它们只是为了验证我得到了正确的值,例如:
python_mpps_1 | (0000, 0000) Command Group Length ????
python_mpps_1 | (0000, 0002) Affected SOP Class UID UI: Modality Performed Procedure Step SOP Class
python_mpps_1 | (0000, 0100) Command Field US: 33088
python_mpps_1 | (0000, 0120) Message ID Being Responded To US: 2
python_mpps_1 | (0000, 0800) Command Data Set Type US: 0
python_mpps_1 | (0000, 0900) Status US: 0
python_mpps_1 | (0008, 0016) SOP Class UID UI: Modality Performed Procedure Step SOP Class
我不确定命令组长度、命令字段和命令数据集类型应该是什么,但更重要的是,我不知道如何适当地设置它们。我不认为它们应该在数据集中设置,而是 N_CREATE 响应的命令集对象的一部分:
# 'N-CREATE-RSP': (
# 'CommandGroupLength', 'AffectedSOPClassUID', 'CommandField',
# 'MessageIDBeingRespondedTo', 'CommandDataSetType', 'Status',
# 'AffectedSOPInstanceUID',
# 'ErrorID', 'ErrorComment'
# ),
使用 DVTk 作为测试工具,在他们的示例脚本中使用 MPPS.SCU 脚本,除了命令集值未在响应中发送外,一切似乎都正常。经过一番挖掘,我认为这些必须以另一种方式设置,但我不确定如何设置。
pynetdicom 文档可能有更多相关信息(第一个 link),但我找不到它。
Command Group Length (0000,0000)
是二进制编码消息的总字节数。这通常应由您使用的工具包设置(请参阅 Scaramillion 的评论)。
您的命令类型是 N-CREATE
响应,通常没有任何数据集。不知道 DVT 脚本,我假设您的脚本不希望将数据集附加到命令集。
即SOP Class UID (0008, 0016)
不应存在(它已经是命令集的一部分,如 Affected SOP Class UID (0000,0002)
),并且 Command Data Set Type (0000, 0800)
应设置为 0x0101
以指示没有数据集跟随命令集。
至少这算作一次成功的 N-CREATE
操作。
我正在按照此处所述开发 MPPS SCP:MPPS SCP 作为基本框架。
我已经能够使用 DVTk 对其进行一些测试,这里提供了一些工具:DVTk
它的大部分似乎都工作正常,但我似乎遇到的问题是响应假设在“命令集”中返回组 0000 的标签,而不是返回的数据集本身:我实际上确实在 DataSet 中设置了它们只是为了验证我得到了正确的值,例如:
python_mpps_1 | (0000, 0000) Command Group Length ????
python_mpps_1 | (0000, 0002) Affected SOP Class UID UI: Modality Performed Procedure Step SOP Class
python_mpps_1 | (0000, 0100) Command Field US: 33088
python_mpps_1 | (0000, 0120) Message ID Being Responded To US: 2
python_mpps_1 | (0000, 0800) Command Data Set Type US: 0
python_mpps_1 | (0000, 0900) Status US: 0
python_mpps_1 | (0008, 0016) SOP Class UID UI: Modality Performed Procedure Step SOP Class
我不确定命令组长度、命令字段和命令数据集类型应该是什么,但更重要的是,我不知道如何适当地设置它们。我不认为它们应该在数据集中设置,而是 N_CREATE 响应的命令集对象的一部分:
# 'N-CREATE-RSP': (
# 'CommandGroupLength', 'AffectedSOPClassUID', 'CommandField',
# 'MessageIDBeingRespondedTo', 'CommandDataSetType', 'Status',
# 'AffectedSOPInstanceUID',
# 'ErrorID', 'ErrorComment'
# ),
使用 DVTk 作为测试工具,在他们的示例脚本中使用 MPPS.SCU 脚本,除了命令集值未在响应中发送外,一切似乎都正常。经过一番挖掘,我认为这些必须以另一种方式设置,但我不确定如何设置。
pynetdicom 文档可能有更多相关信息(第一个 link),但我找不到它。
Command Group Length (0000,0000)
是二进制编码消息的总字节数。这通常应由您使用的工具包设置(请参阅 Scaramillion 的评论)。
您的命令类型是 N-CREATE
响应,通常没有任何数据集。不知道 DVT 脚本,我假设您的脚本不希望将数据集附加到命令集。
即SOP Class UID (0008, 0016)
不应存在(它已经是命令集的一部分,如 Affected SOP Class UID (0000,0002)
),并且 Command Data Set Type (0000, 0800)
应设置为 0x0101
以指示没有数据集跟随命令集。
至少这算作一次成功的 N-CREATE
操作。