Hi Marcel
Did you get any insight on how to fix this?
Hi Marcel
Did you get any insight on how to fix this?
Yes, conquest is storing the images as j2.
If i send uncompressed images to conquest, it compresses it to j2.
If i send j2 images, it stores it as is.
I dont think there is any decompression after orthanc tells to send uncompressed as there are no logs about it in Conquest. Also, in the acrnema.map I have declared orthanc as j2.
I think the image is going as j2 only.
I guess there is an issue during negotiation of association. Orthanc is sending the wrong transfer syntax?
Also, I couldnt find much on this issue except this post from years ago.
Re: JPEG encoded image transfert problem
Let me know if your have any ideas, I am unable to find a solution to this problem and its a critical aspect of my ongoing work.
Conquest to Orthanc Request:
A-ASSOCIATE request CONQUESTSRV2 --> ORTHANC
Protocol Version: 1
Called AE Title: ORTHANC
Calling AE Title: CONQUESTSRV2
Application Context: DICOM Application Context Name (1.2.840.10008.3.1.1.1)
Presentation Context: CT Image Storage (1.2.840.10008.5.1.4.1.1.2)
Item Type: Presentation Context (0x20)
Item Length: 106
Context ID: 0xeb
Abstract Syntax: CT Image Storage (1.2.840.10008.5.1.4.1.1.2)
Transfer Syntax: JPEG Lossless, Non-Hierarchical (Process 14) (1.2.840.10008.1.2.4.57)
Transfer Syntax: JPEG Lossless, Non-Hierarchical, First-Order Prediction (Process 14 [Selection Value 1]): Default Transfer Syntax for Lossless JPEG Image Compression (1.2.840.10008.1.2.4.70)
Transfer Syntax: Implicit VR Little Endian: Default Transfer Syntax for DICOM (1.2.840.10008.1.2)
User Info: Max PDU Length 32768, Implementation UID 1.2.826.0.1.3680043.2.135.1066.101, Version 1.5.0/WIN32
Orthanc to Conquest Response:
A-ASSOCIATE accept CONQUESTSRV2 <-- ORTHANC
Protocol Version: 1
Called AE Title: ORTHANC
Calling AE Title: CONQUESTSRV2
Application Context: DICOM Application Context Name (1.2.840.10008.3.1.1.1)
Presentation Context: ID 0xeb, Accept, Implicit VR Little Endian: Default Transfer Syntax for DICOM, CT Image Storage
Item Type: Presentation Context Reply (0x21)
Item Length: 25
Context ID: 0xeb
Result: Accept (0x0)
Transfer Syntax: Implicit VR Little Endian: Default Transfer Syntax for DICOM (1.2.840.10008.1.2)
User Info: Max PDU Length 16384, Implementation UID 1.2.276.0.7230010.3.0.3.6.6, Version OFFIS_DCMTK_366
Orthanc to Orthanc Request:
A-ASSOCIATE request ROUTER --> ORTHANC
Protocol Version: 1
Called AE Title: ORTHANC
Calling AE Title: ROUTER
Application Context: DICOM Application Context Name (1.2.840.10008.3.1.1.1)
Presentation Context: CT Image Storage (1.2.840.10008.5.1.4.1.1.2)
Item Type: Presentation Context (0x20)
Item Length: 59
Context ID: 0x01
Abstract Syntax: CT Image Storage (1.2.840.10008.5.1.4.1.1.2)
Transfer Syntax: JPEG Lossless, Non-Hierarchical (Process 14) (1.2.840.10008.1.2.4.57)
Presentation Context: CT Image Storage (1.2.840.10008.5.1.4.1.1.2)
Item Type: Presentation Context (0x20)
Item Length: 54
Context ID: 0x03
Abstract Syntax: CT Image Storage (1.2.840.10008.5.1.4.1.1.2)
Transfer Syntax: Implicit VR Little Endian: Default Transfer Syntax for DICOM (1.2.840.10008.1.2)
Presentation Context: CT Image Storage (1.2.840.10008.5.1.4.1.1.2)
Item Type: Presentation Context (0x20)
Item Length: 56
Context ID: 0x05
Abstract Syntax: CT Image Storage (1.2.840.10008.5.1.4.1.1.2)
Transfer Syntax: Explicit VR Little Endian (1.2.840.10008.1.2.1)
.
.
.
User Info: Max PDU Length 16384, Implementation UID 1.2.276.0.7230010.3.0.3.6.5, Version OFFIS_DCMTK_365
Orthanc to Orthanc Response:
A-ASSOCIATE accept ROUTER <-- ORTHANC
Protocol Version: 1
Called AE Title: ORTHANC
Calling AE Title: ROUTER
Application Context: DICOM Application Context Name (1.2.840.10008.3.1.1.1)
Presentation Context: ID 0x01, Accept, JPEG Lossless, Non-Hierarchical (Process 14), CT Image Storage
Item Type: Presentation Context Reply (0x21)
Item Length: 30
Context ID: 0x01
Result: Accept (0x0)
Transfer Syntax: JPEG Lossless, Non-Hierarchical (Process 14) (1.2.840.10008.1.2.4.57)
Presentation Context: ID 0x03, Accept, Implicit VR Little Endian: Default Transfer Syntax for DICOM, CT Image Storage
Item Type: Presentation Context Reply (0x21)
Item Length: 25
Context ID: 0x03
Result: Accept (0x0)
Transfer Syntax: Implicit VR Little Endian: Default Transfer Syntax for DICOM (1.2.840.10008.1.2)
Presentation Context: ID 0x05, Accept, Explicit VR Little Endian, CT Image Storage
Item Type: Presentation Context Reply (0x21)
Item Length: 27
Context ID: 0x05
Result: Accept (0x0)
Transfer Syntax: Explicit VR Little Endian (1.2.840.10008.1.2.1)
.
.
.
User Info: Max PDU Length 16384, Implementation UID 1.2.276.0.7230010.3.0.3.6.6, Version OFFIS_DCMTK_366
I tried to do a Orthanc To Orthanc transfer of JpegLossless image and it was successful (no transcoding involved).
Captured packets here, may be this can shed some light on what is happening. There is difference in Association request sent out by Conquest and Orthanc.
The only configuration as per their docs is this:
// The transfer syntaxes that are accepted by Orthanc C-Store SCP
"DeflatedTransferSyntaxAccepted" : true,
"JpegTransferSyntaxAccepted" : true,
"Jpeg2000TransferSyntaxAccepted" : true,
"JpegLosslessTransferSyntaxAccepted" : true,
"JpipTransferSyntaxAccepted" : true,
"Mpeg2TransferSyntaxAccepted" : true,
"RleTransferSyntaxAccepted" : true,
// Whether Orthanc accepts to act as C-Store SCP for unknown storage
// SOP classes (aka. "promiscuous mode")
"UnknownSopClassAccepted" : true,
We have to keep all of it as true to accept all listed transfer syntaxes. That's it.
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?
Here is the dgatesop.lst: https://we.tl/t-N2S3DKZHwm
File length is long for the post so sent the download link.
I have tried by uncommenting transfer syntaxes also but it still fails.
Hi Marcel,
Thanks for the advice, I have captured the data during transfer attempt here : https://we.tl/t-zNpxNLvfNK
Please have a look.
Is it possible for you to test a transfer between Conquest and Orthanc?
I have asked this same question in Orthanc community as well and waiting for a response since 2 days.
Link of debug log at level 3: https://we.tl/t-dFtt5GRyza
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
With j2, I am getting same error as above on both Conquest and Orthanc.
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.
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
Currently I am using Conquest to autoforward studies (from multiple modalities at one imaging center) to my cloud PACS on AWS, it is working very smoothly.
Now, I want to upgrade my setup and implement a way to create patient on the website and send it via Worklist to the modalities via same Conquest (or another Conquest server) from cloud. The Conquest server is running at the imaging center with access to internet and modalities in LAN. The IP address of imaging center are not static.
I have limited experience with coding and HL7, can you advise me on the implementation?