Conquest on a Virtual Machine

  • Hello Marcel,


    When calling getScu from DCMTK, this is the following output. It is trying to save the dicom data which is shipped with Conquest.


    Johns-MBP:Dicom johnbell$ getscu -k PatientID="0009703828" 127.0.0.1 5678 -aet CONQUESTSRV1 -v -pdu 56032

    I: Requesting Association

    I: Association Accepted (Max Send PDV: 32756)

    I: Sending C-GET Request (MsgID 1)

    I: Received C-STORE Request (MsgID 7299)

    W: DcmItem: Invalid Element (0002,0001) found in data set

    W: DcmItem: Invalid Element (0002,0002) found in data set

    W: DcmItem: Invalid Element (0002,0003) found in data set

    W: DcmItem: Invalid Element (0002,0010) found in data set

    W: DcmItem: Invalid Element (0002,0012) found in data set

    W: DcmItem: Invalid Element (0002,0013) found in data set

    W: DcmItem: Length of element (7fe0,0010) is not a multiple of 2 (VR=OW)

    E: cannot write DICOM file: CT.1.3.46.670589.5.2.10.2156913941.892665339.718742

    I: Sending C-STORE Response (Error: CannotUnderstand)

    I: Releasing Association

    E: Association Release Failed: 0006:0316 DUL P-Data PDU arrived

    I: Aborting Association


    Any thoughts on this?


    Regards,


    Daniel

  • Thanks for that. I believe conquest fails to strip the header and maybe is sending compressed data? I will try to fix this very soon. We have only tested cget with pynetdicom and conquest itself.

    Marcel van Herk is developer of the Conquest DICOM server together with Lambert Zijp.

  • Yes indeed,


    it fails to decompress or strip the header. Can you try this:


    In nkiqrsop.cxx, around line 665, replace this code:


    Code
    1. else
    2. {
    3. AcceptedCompress = UsedPDU->GetAcceptedCompressionType(iUID);
    4. StripGroup2 = memicmp(AcceptedCompress, "as", 2)!=0 && memicmp(AcceptedCompress, "is", 2)!=0;

    By:


    Code
    1. else
    2.             {
    3.             if (!cget) AcceptedCompress = UsedPDU->GetAcceptedCompressionType(iUID);
    4.             else AcceptedCompress = "un";
    5. StripGroup2 = memicmp(AcceptedCompress, "as", 2)!=0 && memicmp(AcceptedCompress, "is", 2)!=0;

    This should fix the issue.


    Marcel

    Marcel van Herk is developer of the Conquest DICOM server together with Lambert Zijp.