64-bit installation on Linux

  • Hello,


    I downloaded and installed 1.50.b from the website and things work well when I install the 32bit versions of the lua programs. However, during testing I've run into crashes with very large (>500mb) files during transfer. Looking at some previous posts I see we expect the 64 bit version of dgate to fix this. But how do I install the 64bit version on linux? I only see .exe versions of dgate that are 64bit.


    Thanks,
    Jason

  • 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

  • Hi,


    This indicates a failed DICOM transfer, It is not expecting an ItemType 217. It could be that it fails to parse the message because it it too long. e.g. the length of a BufferSpace is passed as an UINT, which is max 4294967295. It the file bigger than that? This may be hard to fix, requiring hundreds of changes in the code.


    Marcel

  • This (UINT) is exactly the problem. File size is given above, and is 4305879424 > 4294967295 by 10912129 bytes. Vendors are now switching to EnhancedImageStorage format resulting in larger files at least for research data sets. Clinical whole body dynamic scans and functional MRI scans may also face this problem in future.

    There is an option to take the EnhancedImageStorage format and split it as individual smaller DICOM files before sending, but that is inefficient. Looks like I will have to change receiver from dgate to storescp for now. Please let us know if the code changes in future. Thanks.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!