我已经看过官方的 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 上接收图像
这是来自 ConQuest 服务器的响应
[CONQUESTSRV1] UPACS THREAD 11: STARTED AT: Fri Oct 25 06:56:23 2019
[CONQUESTSRV1] Calling Application Title : "PYNETDICOM "
[CONQUESTSRV1] Called Application Title : "ANY-SCP "
[CONQUESTSRV1] Application Context : "1.2.840.10008.3.1.1.1", PDU length: 16382
[CONQUESTSRV1] Presentation Context 0 "1.2.840.10008.5.1.4.1.2.1.3" 1
[CONQUESTSRV1] Presentation Context 1 "1.2.840.10008.5.1.4.1.1.2" 1
[CONQUESTSRV1] Number of images to send: 2
[CONQUESTSRV1] Sending file : c:\users\sagar\onedrive\desktop\dicomserver1419d1\data\0009703828\1.3.46.670589.5.2.10.2156913941.892665339.860724_0001_002000_14579035620000.dcm
[CONQUESTSRV1] [recompress]: recompressed with mode = un (strip=1)
[CONQUESTSRV1] C-Get (PatientRoot)
[CONQUESTSRV1] UPACS THREAD 11: ENDED AT: Fri Oct 25 06:56:23 2019
[CONQUESTSRV1] UPACS THREAD 11: TOTAL RUNNING TIME: 0 SECONDS
ConQuest 服务器正在发送文件,但 SCU 无法接收!