我看过pynetdicom的官方文档,但是我还没有合适的事件处理程序(用于SCU)来接收图像。在
首先,我创建了所需的.dcm文件数据集并使用了C-GET命令,该命令实际上应该提供.dcm文件,但我还没有指定图像在SCU上的存储位置。我需要使用C-MOVE命令来实际获取图像还是代码不完整(在某种意义上,没有为SCU onReceiveStore指定事件处理程序)?在from pydicom.dataset import Dataset
import pydicom
from pynetdicom import (
AE, evt, build_role,
PYNETDICOM_IMPLEMENTATION_UID,
PYNETDICOM_IMPLEMENTATION_VERSION
)
from pynetdicom.sop_class import (
PatientRootQueryRetrieveInformationModelGet,
CTImageStorage
)
ae = AE()
ae.add_requested_context(PatientRootQueryRetrieveInformationModelGet)
ae.add_requested_context(CTImageStorage)
role = build_role(CTImageStorage, scp_role=True)
ds = Dataset()
ds.QueryRetrieveLevel = 'SERIES'
ds.PatientID = '0009703828'
ds.StudyInstanceUID = '1.3.46.670589.5.2.10.2156913941.892665384.993397'
ds.SeriesInstanceUID = '1.3.46.670589.5.2.10.2156913941.892665339.860724'
assoc = ae.associate('127.0.0.1', 5678)
if assoc.is_established:
responses = assoc.send_c_get(ds, PatientRootQueryRetrieveInformationModelGet)
for (status,dataset) in responses:
if status:
print('C-GET query status: 0x{0:04x}'.format(status.Status))
# If the status is 'Pending' then `identifier` is the C-GET response
if status.Status in (0x0000, 0x1022):
print(dataset)
else:
print('Connection timed out, was aborted or received invalid response')
assoc.release()
else:
print('Association rejected, aborted or never connected')
我希望.dcm从DICOM服务器(在我的例子中是ConQuest服务器)发送,但是我只收到DICOM标记,确认这个数据集(作为对ConQuest服务器的查询)存在!我想知道如何使用此应用程序实体(ae)在SCU上接收图像
这是来自征服服务器的响应
^{pr2}$
征服服务器正在发送文件,但SCU无法接收!在