I have a "4.1 GB" single DICOM file (no-PHI) from Bruker animal scanner to send to Conquest/dgate. This is a dynamic scan with EnhancedPETImageStorage. Conquest dgate(64-bit) fails to receive this file. But DCMTK's storescp received this file fine on the same commandline.
I have dgate 1.5.0a 64-bit in linux (RHEL7), with DB as NULL driver. dgate's purpose is only to receive and store. Nothing odd in dicom.ini file; storing as "as" is.
dgate: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=72f8f701116ba429eb8b09134f049c9f1cb8092d, not stripped
This machine has 8 GB RAM.
I also tried 1.5.0.b 64-bit dgate on different machine with 16 GB RAM. Still the same problem. Is there a fix for this in dgate?
Culprit seems to be in: "Protocol error 217 in PDU:Read". Details below.
File:
-rw-r--r-- 1 user group 4305879424 Feb 22 16:23 EnIm1_1.dcm
Sending:
storescu -R -d -aec CTP localhost 4143 EnIm1_1.dcm
Sender with verbose <trimmed>:
..............................................................................................................................................................................................................................
E: Store Failed, file: EnIm1_1.dcm:
E: 0006:0317 Peer aborted Association (or never connected)
I: Peer Aborted Association
Sender with debug <trimmed>:
D: ======================= END A-ASSOCIATE-AC ======================
I: Association Accepted (Max Send PDV: 4084)
I: Sending file: EnIm1_1.dcm
D: DcmMetaInfo::checkAndReadPreamble() TransferSyntax="Little Endian Explicit"
D: DcmDataset::read() TransferSyntax="Little Endian Explicit"
I: Converting transfer syntax: Little Endian Explicit -> Little Endian Explicit
I: Sending Store Request (MsgID 1, PIe)
D: ===================== OUTGOING DIMSE MESSAGE ====================
D: Message Type : C-STORE RQ
D: Message ID : 1
D: Affected SOP Class UID : EnhancedPETImageStorage
D: Affected SOP Instance UID : 2.16.756.5.5.100.8323328.43296.1644938863.35.0
D: Data Set : present
D: Priority : medium
D: ======================= END DIMSE MESSAGE =======================
E: Store Failed, file: EnIm1_1.dcm:
E: 0006:0317 Peer aborted Association (or never connected)
I: Peer Aborted Association
Conquest (--debuglevel:4 on screen):
Before sending data:
Arena 0:
system bytes = 1056768
in use bytes = 738864
Arena 1:
system bytes = 516096
in use bytes = 379840
Total (incl. mmap):
system bytes = 1708032
in use bytes = 1253872
max mmap regions = 3
max mmap bytes = 16936960
At failure when sending:
Arena 0:
system bytes = 1056768
in use bytes = 738864
Arena 1:
system bytes = 111824896
in use bytes = 96233744
Total (incl. mmap):
system bytes = 113016832
in use bytes = 97107776
max mmap regions = 3
max mmap bytes = 16936960
debug log from file <trimmed>:
UPACS THREAD 4: STARTED AT: Fri Feb 25 11:49:42 2022
A-ASSOCIATE-RQ Packet Dump
Calling Application Title : "STORESCU "
Called Application Title : "CTP "
Application Context : "1.2.840.10008.3.1.1.1", PDU length: 16384
Number of Proposed Presentation Contexts: 2
Presentation Context 0 "1.2.840.10008.5.1.4.1.1.130" 1
Presentation Context 1 "1.2.840.10008.5.1.4.1.1.130" 1
Server Command := 0001
Message ID := 0001
0000,0002 28 UI AffectedSOPClassUID "1.2.840.10008.5.1.4.1.1.130"
0000,0100 2 US CommandField 1
0000,0110 2 US MessageID 1
0000,0700 2 US Priority 0
0000,0800 2 US DataSetType 1
0000,1000 46 UI AffectedSOPInstanceU "2.16.756.5.5.100.8323328.43296.1644938863.35.0"
0002,0010 19 UI TransferSyntaxUID "1.2.840.10008.1.2.1"
Protocol error 217 in PDU:Read <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Culprit?
Failed STORAGE
Link.Connected false in PDU:Read
UPACS THREAD 4: ENDED AT: Fri Feb 25 11:49:58 2022
UPACS THREAD 4: TOTAL RUNNING TIME: 16 SECONDS
DCMTS's storescp receives fine:
D: ======================= END A-ASSOCIATE-AC ======================
D: DcmDataset::read() TransferSyntax="Little Endian Implicit"
I: Received Store Request
D: ===================== INCOMING DIMSE MESSAGE ====================
D: Message Type : C-STORE RQ
D: Presentation Context ID : 1
D: Message ID : 1
D: Affected SOP Class UID : EnhancedPETImageStorage
D: Affected SOP Instance UID : 2.16.756.5.5.100.8323328.43296.1644938863.35.0
D: Data Set : present
D: Priority : medium
D: ======================= END DIMSE MESSAGE =======================
D: DcmDataset::read() TransferSyntax="Little Endian Explicit"
I: storing DICOM file: ./PIe.2.16.756.5.5.100.8323328.43296.1644938863.35.0
D: DcmFileFormat::checkMetaHeaderValue() Version of MetaHeader is ok: 0x0001
D: DcmFileFormat::checkMetaHeaderValue() use SOPClassUID [1.2.840.10008.5.1.4.1.1.130] from Dataset
D: DcmFileFormat::checkMetaHeaderValue() use SOPInstanceUID [2.16.756.5.5.100.8323328.43296.1644938863.35.0] from Dataset
D: DcmFileFormat::checkMetaHeaderValue() use new TransferSyntaxUID [Little Endian Explicit] on writing following Dataset
D: DcmFileFormat::validateMetaInfo() found 8 Elements in DcmMetaInfo 'metinf'
I: Association Release
Sender command:
storescu -R -d -aec CTP localhost 4112 EnIm1_1.dcm
Sender's debug:
D: ======================= END A-ASSOCIATE-AC ======================
I: Association Accepted (Max Send PDV: 16372)
I: Sending file: EnIm1_1.dcm
D: DcmMetaInfo::checkAndReadPreamble() TransferSyntax="Little Endian Explicit"
D: DcmDataset::read() TransferSyntax="Little Endian Explicit"
I: Converting transfer syntax: Little Endian Explicit -> Little Endian Explicit
I: Sending Store Request (MsgID 1, PIe)
D: ===================== OUTGOING DIMSE MESSAGE ====================
D: Message Type : C-STORE RQ
D: Message ID : 1
D: Affected SOP Class UID : EnhancedPETImageStorage
D: Affected SOP Instance UID : 2.16.756.5.5.100.8323328.43296.1644938863.35.0
D: Data Set : present
D: Priority : medium
D: ======================= END DIMSE MESSAGE =======================
D: DcmDataset::read() TransferSyntax="Little Endian Implicit"
I: Received Store Response
D: ===================== INCOMING DIMSE MESSAGE ====================
D: Message Type : C-STORE RSP
D: Presentation Context ID : 1
D: Message ID Being Responded To : 1
D: Affected SOP Class UID : EnhancedPETImageStorage
D: Affected SOP Instance UID : 2.16.756.5.5.100.8323328.43296.1644938863.35.0
D: Data Set : none
D: DIMSE Status : 0x0000: Success
D: ======================= END DIMSE MESSAGE =======================
I: Releasing Association
Receiver command:
storescp -d +xa 4112
Receiver's debug:
I: Association Accepted (Max Send PDV: 16372)
I: Sending file: EnIm1_1.dcm
D: DcmMetaInfo::checkAndReadPreamble() TransferSyntax="Little Endian Explicit"
D: DcmDataset::read() TransferSyntax="Little Endian Explicit"
I: Converting transfer syntax: Little Endian Explicit -> Little Endian Explicit
I: Sending Store Request (MsgID 1, PIe)
D: ===================== OUTGOING DIMSE MESSAGE ====================
D: Message Type : C-STORE RQ
D: Message ID : 1
D: Affected SOP Class UID : EnhancedPETImageStorage
D: Affected SOP Instance UID : 2.16.756.5.5.100.8323328.43296.1644938863.35.0
D: Data Set : present
D: Priority : medium
D: ======================= END DIMSE MESSAGE =======================
D: DcmDataset::read() TransferSyntax="Little Endian Implicit"
I: Received Store Response
D: ===================== INCOMING DIMSE MESSAGE ====================
D: Message Type : C-STORE RSP
D: Presentation Context ID : 1
D: Message ID Being Responded To : 1
D: Affected SOP Class UID : EnhancedPETImageStorage
D: Affected SOP Instance UID : 2.16.756.5.5.100.8323328.43296.1644938863.35.0
D: Data Set : none
D: DIMSE Status : 0x0000: Success
D: ======================= END DIMSE MESSAGE =======================
I: Releasing Association
Received file with DCMTK's storescp:
-rw-rw-r-- 1 user group 4304155776 Feb 25 13:46 PIe.2.16.756.5.5.100.8323328.43296.1644938863.35.0
I prefer to use Conquest's dgate than DCMTK's storescp. Please suggest a fix. Thanks.
Sundar