Transfer JPEG2000 Lossless image fails from Conquest to Orthanc

  • Hi

    I am testing transferring compressed images from Conquest to Orthanc using various compression schemes, Only uncompressed images are being transferred and all other compression fails with the following error:


    Conquest Log:


    [CONQUESTSRV1] c-move from GUI
    [CONQUESTSRV1]
    [CONQUESTSRV1] UPACS THREAD 10: STARTED AT: Fri Mar 12 12:08:16 2021
    [CONQUESTSRV1] Calling Application Title : "CONQUESTSRV1 "
    [CONQUESTSRV1] Called Application Title : "CONQUESTSRV1 "
    [CONQUESTSRV1] Application Context : "1.2.840.10008.3.1.1.1", PDU length: 32768
    [CONQUESTSRV1] Presentation Context 0 "1.2.840.10008.5.1.4.1.2.1.2" 1
    [CONQUESTSRV1] Presentation Context 1 "1.2.840.10008.5.1.4.1.2.2.2" 1
    [CONQUESTSRV1] C-Move Destination: "ROUTER "
    [CONQUESTSRV1] Number of images to send: 1
    [CONQUESTSRV1] Accepted compression: ui
    [CONQUESTSRV1] Sending file : c:\dicomserver150\data\1008199\1.2.392.200036.9116.2.5.1.16.1613454267.1604801902.648263_0003_000001_16155297260000.dcm
    [CONQUESTSRV1] C-Move (PatientRoot)
    [CONQUESTSRV1] ***preretrieve/forward xxx to: remote DICOM error
    [CONQUESTSRV1] UPACS THREAD 10: ENDED AT: Fri Mar 12 12:08:16 2021
    [CONQUESTSRV1] UPACS THREAD 10: TOTAL RUNNING TIME: 0 SECONDS



    Orthanc Log:


    E0312 11:44:05.217373 StoreScp.cpp:294] Store SCP Failed: DIMSE Failed to receive message
    W: DIMSE Warning: (CONQUESTSRV1,ROUTER): DIMSE receiveDataSetInMemory: dset->read() Failed (Illegal call, perhaps wrong parameters)
    E0312 11:46:02.661522 StoreScp.cpp:294] Store SCP Failed: DIMSE Failed to receive message


    Orthanc Detailed Log:


    I0314 10:24:52.743776 CommandDispatcher.cpp:327] Association Received from AET CONQUESTSRV1 on IP 127.0.0.1

    I0314 10:24:52.743776 main.cpp:287] Incoming connection from AET CONQUESTSRV1 on IP 127.0.0.1, calling AET ROUTER

    I0314 10:24:52.743776 CommandDispatcher.cpp:680] Association Acknowledged (Max Send PDV: 32756)

    I0314 10:24:52.754380 main.cpp:307] Incoming Store request from AET CONQUESTSRV1 on IP 127.0.0.1, calling AET ROUTER

    W: DIMSE Warning: (CONQUESTSRV1,ROUTER): DIMSE receiveDataSetInMemory: dset->read() Failed (Illegal call, perhaps wrong parameters)

    E0314 10:24:52.755416 StoreScp.cpp:294] Store SCP Failed: DIMSE Failed to receive message

    I0314 10:24:52.755416 CommandDispatcher.cpp:919] DIMSE Failed to receive message

    0006:020f DIMSE: Command PDV Expected

    I0314 10:24:52.755416 CommandDispatcher.cpp:936] DIMSE failure (aborting association): DIMSE Failed to receive message

    0006:020f DIMSE: Command PDV Expected




    Sample Image Link (JPEG2000 Lossless) + Orthanc Config + Conquest Config: https://we.tl/t-LaYeYETX4s
    Using: Orthanc 1.7.2 (Windows), Conquest: 1.5.0 (Windows)


    Any help will be appreciated.

  • Hi Marcel,

    If I use un or ul, the transfer is successful. But for jk or any other type its not working. I tested by sending to Radiant, there I got accepted compression: jk and transfer was successful. But with orthanc accepted compression coming is ui.


    I have tried changing multiple configurations but couldnt find success.


    Orthanc does support jpeglossless as per their docs and I have tried directly uploading jpeglossless file through orthanc web interface, it was successful.


    The failure is between conquest and orthanc.

  • It still says accepted compression: ui


    Below is the log:


    [CONQUESTSRV2] UPACS THREAD 103: STARTED AT: Mon Mar 15 13:40:53 2021

    [CONQUESTSRV2] Calling Application Title : "CONQUESTSRV2 "

    [CONQUESTSRV2] Called Application Title : "CONQUESTSRV2 "

    [CONQUESTSRV2] Application Context : "1.2.840.10008.3.1.1.1", PDU length: 32768

    [CONQUESTSRV2] Presentation Context 0 "1.2.840.10008.5.1.4.1.2.1.2" 1

    [CONQUESTSRV2] Presentation Context 1 "1.2.840.10008.5.1.4.1.2.2.2" 1

    [CONQUESTSRV2] C-Move Destination: "ROUTER "

    [CONQUESTSRV2] Number of images to send: 1

    [CONQUESTSRV2] Accepted compression: ui

    [CONQUESTSRV2] Sending file : c:\dicomserver150b\data\267\1.2.840.113704.9.1000.16.1.2021031413342302500020002_0003_000001_16157957530000.dcm

    [CONQUESTSRV2] C-Move (PatientRoot)

    [CONQUESTSRV2] ***preretrieve/forward xxx to: remote DICOM error

    [CONQUESTSRV2] UPACS THREAD 103: ENDED AT: Mon Mar 15 13:40:53 2021

    [CONQUESTSRV2] UPACS THREAD 103: TOTAL RUNNING TIME: 0 SECONDS

  • Hm,


    That is incorrect. Orthanc apparantly does not accept the right one, or conquest misunderstands the response. Can you post conquest response with debug logging at the highest level? To understand fully what goes wrong one would have to use a packet sniffer - not trivial.


    Can you ask in the Orthanc community first?


    Marcel

  • Sorry, no orthanc experience; and not enough time anytime soon...


    The log shows it does not even consider jpeg, i.e.,


    Connected by address: 0100007f

    [CONQUESTSRV2] Testing transfer: '1.2.840.10008.1.2' against list #0 = '1.2.840.10008.1.2'

    [CONQUESTSRV2] Testing transfer: '1.2.840.10008.1.2' against list #0 = '1.2.840.10008.1.2'

    [CONQUESTSRV2]

    [CONQUESTSRV2] UPACS THREAD 128: STARTED AT: Mon Mar 15 14:26:42 2021

    [CONQUESTSRV2] A-ASSOCIATE-RQ Packet Dump

    [CONQUESTSRV2] Calling Application Title : "CONQUESTSRV2 "

    [CONQUESTSRV2] Called Application Title : "CONQUESTSRV2 "

    [CONQUESTSRV2] Application Context : "1.2.840.10008.3.1.1.1", PDU length: 32768

    [CONQUESTSRV2] Number of Proposed Presentation Contexts: 2

    [CONQUESTSRV2] Presentation Context 0 "1.2.840.10008.5.1.4.1.2.1.2" 1

    [CONQUESTSRV2] Presentation Context 1 "1.2.840.10008.5.1.4.1.2.2.2" 1

    [CONQUESTSRV2] Server Command := 0021

    [CONQUESTSRV2] Message ID := 000a

    [CONQUESTSRV2] C-Move Destination: "ROUTER "

    [CONQUESTSRV2] 0000,0002 28 UI AffectedSOPClassUID "1.2.840.10008.5.1.4.1.2.1.2"

    [CONQUESTSRV2] 0000,0100 2 US CommandField 33

    [CONQUESTSRV2] 0000,0110 2 US MessageID 10

    [CONQUESTSRV2] 0000,0600 16 AE MoveDestination "ROUTER "

    [CONQUESTSRV2] 0000,0700 2 US Priority 0

    [CONQUESTSRV2] 0000,0800 2 US DataSetType 258

    [CONQUESTSRV2] 0002,0010 17 UI TransferSyntaxUID "1.2.840.10008.1.2"

    [CONQUESTSRV2] (QualifyOn) (mapped) IP:127.0.0.1, PORT:4244

    [CONQUESTSRV2] MyPatientRootRetrieveGeneric :: SearchOn

    [CONQUESTSRV2] 0002,0010 17 UI TransferSyntaxUID "1.2.840.10008.1.2"

    [CONQUESTSRV2] 0008,0052 8 CS QueryRetrieveLevel "PATIENT "

    [CONQUESTSRV2] 0010,0020 4 LO PatientID "267 "

    [CONQUESTSRV2] Query On Image

    [CONQUESTSRV2] Issue Query on Columns: DICOMImages.SOPClassUI, DICOMImages.SOPInstanc, DICOMSeries.SeriesInst, DICOMStudies.PatientID, DICOMStudies.StudyInsta,DICOMImages.ObjectFile,DICOMImages.DeviceName

    [CONQUESTSRV2] Values: DICOMStudies.PatientID = '267' and DICOMSeries.StudyInsta = DICOMStudies.StudyInsta and DICOMImages.SeriesInst = DICOMSeries.SeriesInst

    [CONQUESTSRV2] Tables: DICOMImages, DICOMSeries, DICOMStudies

    [CONQUESTSRV2] Records = 1

    [CONQUESTSRV2] Number of images to send: 1

    [CONQUESTSRV2] Accepted compression: ui

    [CONQUESTSRV2] MyPatientRootRetrieveGeneric :: RetrieveOn

    [CONQUESTSRV2] Locating file:MAG0 267\1.2.840.113704.9.1000.16.1.2021031413342302500020002_0003_000001_16157957530000.dcm

    [CONQUESTSRV2] ReadAheadThread: readahead > 0000

    [CONQUESTSRV2] RetrieveOn: givenout < 0000

    [CONQUESTSRV2] Sending file : c:\dicomserver150b\data\267\1.2.840.113704.9.1000.16.1.2021031413342302500020002_0003_000001_16157957530000.dcm

    [CONQUESTSRV2] Image Loaded from Read Ahead Thread, returning TRUE

    [CONQUESTSRV2] Retrieve: remote connection dropped after 0 images, 1 not sent

    [CONQUESTSRV2] C-Move (PatientRoot)

    [CONQUESTSRV2] ***preretrieve/forward xxx to: remote DICOM error


    If you can use wireshark to collect the association request and acceptance packets (these are small), I may shed some light, maybe next weekend.


    Marcel

  • Hm


    [CONQUESTSRV2] Testing transfer: '1.2.840.10008.1.2.4.57' against list #0 = '1.2.840.10008.1.2'

    [CONQUESTSRV2] Testing transfer: '1.2.840.10008.1.2.4.70' against list #0 = '1.2.840.10008.1.2'

    [CONQUESTSRV2] Testing transfer: '1.2.840.10008.1.2' against list #0 = '1.2.840.10008.1.2'

    [CONQUESTSRV2] Accepted compression: ui


    Conquest's log shows UI, but the image is sent jpeg encoded. Can you post your dgatesop.lst?


    Marcel

  • the only thing tyhe button does is change dgatesop.lst:


    LittleEndianImplicit 1.2.840.10008.1.2 transfer

    #LittleEndianExplicit 1.2.840.10008.1.2.1 transfer

    #BigEndianExplicit 1.2.840.10008.1.2.2 transfer

    #JPEGBaseLine1 1.2.840.10008.1.2.4.50 transfer LittleEndianExplicit

    #JPEGExtended2and4 1.2.840.10008.1.2.4.51 transfer LittleEndianExplicit

    #JPEGExtended3and5 1.2.840.10008.1.2.4.52 transfer LittleEndianExplicit

    #JPEGSpectralNH6and8 1.2.840.10008.1.2.4.53 transfer LittleEndianExplicit

    #JPEGSpectralNH7and9 1.2.840.10008.1.2.4.54 transfer LittleEndianExplicit

    #JPEGFulllNH10and12 1.2.840.10008.1.2.4.55 transfer LittleEndianExplicit

    #JPEGFulllNH11and13 1.2.840.10008.1.2.4.56 transfer LittleEndianExplicit

    #JPEGLosslessNH14 1.2.840.10008.1.2.4.57 transfer LittleEndianExplicit

    #JPEGLosslessNH15 1.2.840.10008.1.2.4.58 transfer LittleEndianExplicit

    #JPEGExtended16and18 1.2.840.10008.1.2.4.59 transfer LittleEndianExplicit

    #JPEGExtended17and19 1.2.840.10008.1.2.4.60 transfer LittleEndianExplicit

    #JPEGSpectral20and22 1.2.840.10008.1.2.4.61 transfer LittleEndianExplicit

    #JPEGSpectral21and23 1.2.840.10008.1.2.4.62 transfer LittleEndianExplicit


    #means its off


    Marcel

  • I manually changed dgatesop.lst now removing # from the following:

    LittleEndianExplicit

    JPEGLosslessNH14


    And now transfer from Conquest to itself via j2 says accepted compression: j2


    But with Orthanc it is still UI.


    I analysed the wireshark transfer to "itself", "Radiant" and "Orthanc.


    Conquest is sending association request as jpeglossless as first priority and Implicit VR Endian as default.


    For transfers to "itself" and "Radiant": Conquest is receiving A-associate accept as Jpeglossless.


    But from Orthanc it is Implicit VR Endian. I think this is the issue. Thats why for transfer to Orthanc it is accepted compression: UI.


    Is there a way around this?

Participate now!

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