我正在开发一个MPPS SCP,正如这里所描述的:MPPS SCP作为一个基本框架。
我已经能够使用这里提供的一些工具用DVTk测试它:DVTk
它的大部分似乎都正常工作,但我似乎遇到的问题是,响应应该在“命令集”中返回组为0000的标记,而不是在返回的DataSet本身中:我实际上在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我不确定Command Group Length、Command Field和Command Data Set Type应该是什么,但更重要的是,我不知道如何正确设置它们。我认为它们不应该在Dataset中设置,而应该是N_CREATE响应的命令集对象的一部分:
# 'N-CREATE-RSP': (
# 'CommandGroupLength', 'AffectedSOPClassUID', 'CommandField',
# 'MessageIDBeingRespondedTo', 'CommandDataSetType', 'Status',
# 'AffectedSOPInstanceUID',
# 'ErrorID', 'ErrorComment'
# ),使用DVTk作为测试工具,即示例脚本中的MPPS.SCU脚本,除了未在响应中发送命令集值之外,一切似乎都正常。经过一些挖掘后,我认为这些必须以另一种方式设置,但我不确定如何设置。
pynetdicom文档可能有更多关于这方面的信息(第一个链接),但我一直无法找到它。
发布于 2021-07-05 14:10:27
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操作来说,这是很重要的。
https://stackoverflow.com/questions/68247938
复制相似问题