Can store study but not send study

Hi Team,

Orthanc can store large multi-frame instances without issue, however it is failing to send these instances to other DICOM devices.

I have attached a test DICOM file and part of the Orthanc logs when the error is encountered. The test file is 400MB, but I also ran into the same issue for real patients where the multi-frame instances sizes were 2-4x the size. Link to attachment is: https://sendgb.com/6EodDusCjNQ

The issue arises regardless of whether you initiate the C-Store with Orthanc as SCU using Rest API, or more simply via Orthanc Explorer or Explorer 2.

Sending the multi-frame instance from Device_A → Orthanc = Success
But sending from Orthanc → Device_A = Fail (Even after deleting the study from Device_A first).
Although sending from OTHER_SOFTWARE → Device_A = Success

I noticed that the server CPU and Memory usage was only at 50% peak during the transfer.

Relevant excerpts of the logs (Latest version of Orthanc and on Windows):

T0411 18:09:33.392423 JOBS-WORKER-1 DicomStoreUserConnection.cpp:48] (dicom) Sending Store Request:
===================== OUTGOING DIMSE MESSAGE ====================
Message Type : C-STORE RQ
Message ID : 1
Affected SOP Class UID : UltrasoundImageStorage
Affected SOP Instance UID : 1.2.840.114089.1.0.1.176581977.1636431193.8060.15
Data Set : present
Priority : medium
======================= END DIMSE MESSAGE =======================
T0411 18:09:33.723445 DB-FLUSH Connection.cpp:405] (sqlite) SQLite::Connection::FlushToDisk
E0411 18:09:33.863455 JOBS-WORKER-1 OrthancException.cpp:61] Error in the network protocol: DicomAssociation - C-STORE to AET “REDACTEDAET”: DIMSE Failed to send message (0006:031d TCP I/O Error (An existing connection was forcibly closed by the remote host.) occurred in routine: writeDataPDU)
I0411 18:09:33.873428 HTTP-28 FilesystemStorage.cpp:170] Read attachment “cf506974-ea97-43d1-a027-3f5e1fcd2d70” (400.02MB in 1.26s = 2.66Gbps)
I0411 18:09:34.042423 JOBS-WORKER-1 DicomAssociation.cpp:111] (dicom) Closing DICOM association
I0411 18:09:34.043429 JOBS-WORKER-1 JobsRegistry.cpp:504] Job has completed with failure: 44fab0bf-b1ed-4804-86a6-927179555663

Thanks for any advice,
Mex

Hi,

This indicates that the device closes the connection without providing any error message to Orthanc. So I would first look in the device logs for more info …

Alain.

Hi Alain,

Thanks for your guidance.

To get more detailed logs while reproducing the issue (since the real receiving device logs did not reveal anything useful), I tried to send the problematic study (uploaded in original post) from Orthanc_A to Orthanc_B.

Orthanc_A has loaded the the full set of images without hiccups. However even though Orthanc_A has all the dicom images-- the transfer to Orthanc_B still fails.

Orthanc_B trace logs show the following error (at the very end).

Thanks again for any help you can provide.

Full logs attached here, but small excerpt below:

======================= END A-ASSOCIATE-AC ======================
T0416 08:46:14.792285 DICOM-1 CommandDispatcher.cpp:760] (dicom) Received Command:
===================== INCOMING DIMSE MESSAGE ====================
Message Type : C-STORE RQ
Presentation Context ID : 1
Message ID : 1
Affected SOP Class UID : UltrasoundImageStorage
Affected SOP Instance UID : 1.2.840.114089.1.0.1.176581977.1636431193.8060.15
Data Set : present
Priority : medium
======================= END DIMSE MESSAGE =======================
I0416 08:46:14.792285 DICOM-1 main.cpp:353] Incoming Store request from AET ORTHANC on IP 10.XXX.XXX.XXX, calling AET ORTHANC
E0416 08:46:15.180099 DICOM-1 StoreScp.cpp:273] Store SCP Failed: DIMSE Read PDV failed
0006:0321 Unrecognized PDU type: 0
I0416 08:46:15.181109 DICOM-1 CommandDispatcher.cpp:931] (dicom) Finishing association with AET ORTHANC on IP 10.XXX.XXX.XXX: DIMSE Failed to receive message
0006:020c DIMSE Read PDV failed
0006:0321 Unrecognized PDU type: 0
I0416 08:46:15.181109 DICOM-1 CommandDispatcher.cpp:949] (dicom) DIMSE failure (aborting association with AET ORTHANC on IP 10.XXX.XXX.XXX): DIMSE Failed to receive message
0006:020c DIMSE Read PDV failed
0006:0321 Unrecognized PDU type: 0

orthanc_error_logs2.txt (54.9 KB)

Hi Max,

I was not able to reproduce your transfer issues between 2 orthancs (starting from this setup).

Could you update this setup to simulate your configuration/environment ?

Alain.

Thanks Alain, let me investigate how to use and get Docker running and I’ll get back to you.

I managed to get Docker running, very impressive technology, and very impressive what you did with the minimal reproducible environment and short instructions.

There was a small typo in the docker-compose.yml file. Line 4 and 18 should say “image: orthancteam/orthanc”. In order for the build phase to work.

The sample DICOM file actually sends without error in the docker environment.

So I think there’s a configuration change that I have made that is potentially the issue.

Where do I go to inspect the orthanc.json file in these docker environments? I can sort of browse the file structure in the Docker Desktop GUI but I could not find where it is stored (I was always running Orthanc on Windows, instead of Linux)?

EDIT:

I upgraded both orthancs to the latest version and started with a bare orthanc.json.
Just a thought, is it working in docker because of Linux vs Windows?

Thanks again!

Thanks, it’s not fixed !

The configuration is generated in /tmp/orthanc.json or you can also print it in the logs by adding this:

    environment:
      VERBOSE_STARTUP: "true"

I don’t think so. There are currently no known differences between Linux and Windows versions.