Pynetdicom3 传输语法
Pynetdicom3 transfer syntax
我正在尝试通过 pynetdicom3 创建一个 c-STORE,但每次都会出现
ValueError:'dataset'
没有接受的演示上下文
我在pynetdicom3代码里面找了一下,比较了dcm的SOPclassUID和一堆传输语法,没有一个和SOPclassUID一样,留下语法None.
我该如何解决这个问题?
SOPclassUID 是什么,它与语法有什么关系?
代码:
ae = AE(config.get('move', 'aet'), port=pynetport, scu_sop_class=QueryRetrieveSOPClassList)
assocstore = ae.associate(configworkstationaddress, int(configworkstationport))
*stuff*
dsstore = dcmread(dcmfilenames[0])
status = assocstore.send_c_store(dsstore)
print(status)
assocstore.release()
看来,您正在尝试将 DICOM 文件发送到另一个 DICOM 应用程序。这意味着您的应用程序必须充当相关存储 SOP class 的 SCU(服务 Class 用户,客户端的 DICOM 术语)。目前您的 AE 初始化正在声明 scu_sop_class=QueryRetrieveSOPClassList
,这意味着您的应用程序告诉另一方 "I want to make queries to you and nothing else"。由于您实际上想通过网络发送 DICOM 对象,因此您应该改为声明相关功能。
总而言之,首先尝试使用存储功能设置您的 AE,看看会发生什么:
ae = AE(config.get('move', 'aet'), port=pynetport, scu_sop_class=StorageSOPClassList)
我正在尝试通过 pynetdicom3 创建一个 c-STORE,但每次都会出现
ValueError:'dataset'
没有接受的演示上下文我在pynetdicom3代码里面找了一下,比较了dcm的SOPclassUID和一堆传输语法,没有一个和SOPclassUID一样,留下语法None.
我该如何解决这个问题? SOPclassUID 是什么,它与语法有什么关系?
代码:
ae = AE(config.get('move', 'aet'), port=pynetport, scu_sop_class=QueryRetrieveSOPClassList)
assocstore = ae.associate(configworkstationaddress, int(configworkstationport))
*stuff*
dsstore = dcmread(dcmfilenames[0])
status = assocstore.send_c_store(dsstore)
print(status)
assocstore.release()
看来,您正在尝试将 DICOM 文件发送到另一个 DICOM 应用程序。这意味着您的应用程序必须充当相关存储 SOP class 的 SCU(服务 Class 用户,客户端的 DICOM 术语)。目前您的 AE 初始化正在声明 scu_sop_class=QueryRetrieveSOPClassList
,这意味着您的应用程序告诉另一方 "I want to make queries to you and nothing else"。由于您实际上想通过网络发送 DICOM 对象,因此您应该改为声明相关功能。
总而言之,首先尝试使用存储功能设置您的 AE,看看会发生什么:
ae = AE(config.get('move', 'aet'), port=pynetport, scu_sop_class=StorageSOPClassList)