Error during retrieve

Hello
I am trying to get the study from modality to orthanc server. I added modality details in the configuration files. Test echo succeeded. And I am able to query and find the details of the patient. But when I try to retrieve the study it shows “Error during retrieve”. What could be the possible error?

Hello,

Please carefully read the documentation about query/retrieve:
https://book.orthanc-server.com/dicom-guide.html#c-move-query-retrieve

https://book.orthanc-server.com/faq/query-retrieve.html#query-retrieve

Summarizing, you most likely haven’t registered Orthanc in the configuration of your remote modality, which is necessary to retrieve images from this remote modality. This is by design of the DICOM protocol.

Sébastien-

I have followed the same steps given in the Orthanc book. Talking about remote modality, I have registered my Orthanc server there and when I click on test echo there also it says succeeded. I am sharing my log, perhaps that can help to find the error.

W0128 10:30:32.598032 main.cpp:1776] Orthanc version: 1.8.2
W0128 10:30:32.598032 OrthancConfiguration.cpp:114] Scanning folder “Configuration” for configuration files
W0128 10:30:32.598032 OrthancConfiguration.cpp:62] Reading the configuration from: “Configuration\dicomweb.json”
W0128 10:30:32.598996 OrthancConfiguration.cpp:62] Reading the configuration from: “Configuration\mysql.json”
W0128 10:30:32.598996 OrthancConfiguration.cpp:62] Reading the configuration from: “Configuration\orthanc.json”
W0128 10:30:32.600019 OrthancConfiguration.cpp:62] Reading the configuration from: “Configuration\postgresql.json”
W0128 10:30:32.602253 OrthancConfiguration.cpp:62] Reading the configuration from: “Configuration\serve-folders.json”
W0128 10:30:32.602253 OrthancConfiguration.cpp:62] Reading the configuration from: “Configuration\stone-webviewer.json”
W0128 10:30:32.602253 OrthancConfiguration.cpp:62] Reading the configuration from: “Configuration\transfers.json”
W0128 10:30:32.602253 OrthancConfiguration.cpp:62] Reading the configuration from: “Configuration\webviewer.json”
W0128 10:30:32.603253 OrthancConfiguration.cpp:62] Reading the configuration from: “Configuration\worklists.json”
W0128 10:30:32.831642 main.cpp:852] Loading plugin(s) from: C:\Program Files\Orthanc Server\Plugins
W0128 10:30:32.833637 PluginsManager.cpp:269] Registering plugin ‘connectivity-checks’ (version 1.8.2)
W0128 10:30:32.834634 PluginsManager.cpp:269] Registering plugin ‘stone-webviewer’ (version 1.0)
W0128 10:30:32.834634 PluginsManager.cpp:269] Registering plugin ‘worklists’ (version 1.8.2)
W0128 10:30:32.834634 PluginsManager.cpp:168] Sample worklist plugin is initializing
W0128 10:30:32.835632 PluginsManager.cpp:168] Worklist server is disabled by the configuration file
W0128 10:30:32.836629 PluginsManager.cpp:269] Registering plugin ‘authorization’ (version 0.2.4)
W0128 10:30:32.836629 PluginsManager.cpp:168] Initializing the authorization plugin
W0128 10:30:32.836629 PluginsManager.cpp:168] No section “Authorization” in the configuration file, the authorization plugin is disabled
W0128 10:30:32.838624 PluginsManager.cpp:269] Registering plugin ‘dicom-web’ (version 1.4)
W0128 10:30:32.838624 PluginsManager.cpp:168] URI to the DICOMweb REST API: /dicom-web/
W0128 10:30:32.839621 PluginsManager.cpp:168] URI to the WADO-URI API: /wado
W0128 10:30:32.854581 PluginsManager.cpp:269] Registering plugin ‘gdcm’ (version 1.2)
W0128 10:30:32.854581 PluginsManager.cpp:168] Version of GDCM: 3.0.8
W0128 10:30:32.854581 PluginsManager.cpp:168] GDCM throttling is disabled
W0128 10:30:32.856576 PluginsManager.cpp:269] Registering plugin ‘mysql-index’ (version 3.0)
W0128 10:30:32.857573 PluginsManager.cpp:168] The MySQL index is currently disabled, set “EnableIndex” to “true” in the “MySQL” section of the configuration file of Orthanc
W0128 10:30:32.858570 PluginsManager.cpp:269] Registering plugin ‘mysql-storage’ (version 3.0)
W0128 10:30:32.859568 PluginsManager.cpp:168] The MySQL storage area is currently disabled, set “EnableStorage” to “true” in the “MySQL” section of the configuration file of Orthanc
W0128 10:30:32.861562 PluginsManager.cpp:269] Registering plugin ‘osimis-cloud’ (version 0.2)
W0128 10:30:32.863557 PluginsManager.cpp:269] Registering plugin ‘postgresql-index’ (version 3.3)
W0128 10:30:32.863557 PluginsManager.cpp:168] The PostgreSQL index is currently disabled, set “EnableIndex” to “true” in the “PostgreSQL” section of the configuration file of Orthanc
W0128 10:30:32.864554 PluginsManager.cpp:269] Registering plugin ‘postgresql-storage’ (version 3.3)
W0128 10:30:32.865552 PluginsManager.cpp:168] The PostgreSQL storage area is currently disabled, set “EnableStorage” to “true” in the “PostgreSQL” section of the configuration file of Orthanc
W0128 10:30:32.866549 PluginsManager.cpp:269] Registering plugin ‘transfers’ (version 1.0)
W0128 10:30:32.867547 PluginsManager.cpp:269] Registering plugin ‘web-viewer’ (version 2.7)
W0128 10:30:32.867547 PluginsManager.cpp:168] Initializing the Web viewer
W0128 10:30:32.868544 PluginsManager.cpp:168] Web viewer using 2 threads for the decoding of the DICOM images
W0128 10:30:32.868544 PluginsManager.cpp:168] Storing the cache of the Web viewer in folder: E:\Orthanc Storage\WebViewerCache
W0128 10:30:32.869541 PluginsManager.cpp:168] Web viewer using a cache of 100 MB
W0128 10:30:32.872148 PluginsManager.cpp:269] Registering plugin ‘wsi’ (version 0.7)
W0128 10:30:32.872148 PluginsManager.cpp:168] The whole-slide imaging plugin will use at most 4 threads to transcode the tiles
W0128 10:30:32.886089 PluginsManager.cpp:269] Registering plugin ‘osimis-web-viewer’ (version 1.4.1.0-c6ca764)
W0128 10:30:32.886089 PluginsManager.cpp:168] Initializing the Web viewer
W0128 10:30:32.887086 PluginsManager.cpp:168] Using GDCM instead of the DICOM decoder that is built in Orthanc
W0128 10:30:32.888084 PluginsManager.cpp:269] Registering plugin ‘serve-folders’ (version 1.8.2)
W0128 10:30:32.888084 PluginsManager.cpp:168] ServeFolders: Empty configuration file: No additional folder will be served!
W0128 10:30:32.889109 OrthancInitialization.cpp:329] SQLite index directory: “E:\Orthanc Storage”
W0128 10:30:32.889109 OrthancInitialization.cpp:406] Storage directory: “E:\Orthanc Storage”
W0128 10:30:32.890079 HttpClient.cpp:1125] HTTPS will use the CA certificates from this file: C:\Program Files\Orthanc Server\Configuration\ca-certificates.crt
W0128 10:30:32.890079 LuaContext.cpp:93] Lua says: Lua toolbox installed
W0128 10:30:32.891076 LuaContext.cpp:93] Lua says: Lua toolbox installed
W0128 10:30:32.891076 ServerContext.cpp:452] Disk compression is disabled
W0128 10:30:32.891076 ServerIndex.cpp:1641] No limit on the number of stored patients
W0128 10:30:32.891076 ServerIndex.cpp:1658] No limit on the size of the storage area
W0128 10:30:32.891076 ServerContext.cpp:221] Reloading the jobs from the last execution of Orthanc
W0128 10:30:32.893098 JobsEngine.cpp:272] The jobs engine has started with 2 threads
W0128 10:30:32.895343 main.cpp:1218] DICOM server listening with AET ORTHANC on port: 4242
W0128 10:30:32.895343 HttpServer.cpp:1936] HTTP compression is enabled
W0128 10:30:32.895343 main.cpp:1110] Remote LUA script execution is disabled
W0128 10:30:32.896339 HttpServer.cpp:1713] HTTP server listening on port: 8042 (HTTPS encryption is disabled, remote access is not allowed)
W0128 10:30:32.896339 main.cpp:864] Orthanc has started
W0128 10:31:05.071405 OrthancRestModalities.cpp:717] Driving C-Move SCU on remote modality NCT to target modality ORTHANC
W0128 10:31:08.841263 OrthancRestModalities.cpp:717] Driving C-Move SCU on remote modality NCT to target modality ORTHANC
E0128 10:31:15.163673 OrthancException.cpp:57] Error in the network protocol: DicomAssociation - C-MOVE to AET “NCT”: DIMSE No data available (timeout in non-blocking mode)
E0128 10:31:19.168020 OrthancException.cpp:57] Error in the network protocol: DicomAssociation - C-MOVE to AET “NCT”: DIMSE No data available (timeout in non-blocking mode)
E0128 10:31:25.164475 OrthancException.cpp:57] Error in the network protocol: DicomAssociation - C-MOVE to AET “NCT”: DIMSE No data available (timeout in non-blocking mode)
E0128 10:31:29.169348 OrthancException.cpp:57] Error in the network protocol: DicomAssociation - C-MOVE to AET “NCT”: DIMSE No data available (timeout in non-blocking mode)

The important part of the log is:

W0128 10:31:05.071405 OrthancRestModalities.cpp:717] Driving C-Move SCU on remote modality NCT to target modality ORTHANC
W0128 10:31:08.841263 OrthancRestModalities.cpp:717] Driving C-Move SCU on remote modality NCT to target modality ORTHANC
E0128 10:31:15.163673 OrthancException.cpp:57] Error in the network protocol: DicomAssociation - C-MOVE to AET “NCT”: DIMSE No data available (timeout in non-blocking mode)
E0128 10:31:19.168020 OrthancException.cpp:57] Error in the network protocol: DicomAssociation - C-MOVE to AET “NCT”: DIMSE No data available (timeout in non-blocking mode)
E0128 10:31:25.164475 OrthancException.cpp:57] Error in the network protocol: DicomAssociation - C-MOVE to AET “NCT”: DIMSE No data available (timeout in non-blocking mode)
E0128 10:31:29.169348 OrthancException.cpp:57] Error in the network protocol: DicomAssociation - C-MOVE to AET “NCT”: DIMSE No data available (timeout in non-blocking mode)

This indicates that Orthanc cannot contact the remote “NCT” modality. This might indicate an issue with your firewall, with your routers, or with your modality. The first place to look at is in the logs of your “NCT” modality.

Check out the following pages:
https://book.orthanc-server.com/users/support.html

https://book.orthanc-server.com/faq/proprietary.html

Hi Sébastien,

I’m experiencing the same timeout error for all C-MOVEs, but all C-FINDs are succeeding against the same modality in the same time frame. That would suggest it is not a firewall or routing issue.

If I restart Orthanc, the issues goes away temporarily but eventually comes back, hours or days later. That would suggest it probably isn’t a remote modality issue.

I’ve seen this with versions 1.9.3, 1.9.6 and 1.9.7.

In the trace logs, the associations are setting 60 second send & receive timeouts but the “DIMSE No data available” errors are triggered by our 30-second DICOM SCU timeout. (That is our only non-default timeout setting).

Does the DICOM SCU timeout need to be 60 seconds? How is that 60 second association timeout being established? Any ideas are appreciated.

Regards,
Tristan

Dear Tristan,

The same answer holds for you: Check out the logs of your modality, and/or provide a minimal working example for us to reproduce and solve your issue:
https://book.orthanc-server.com/faq/proprietary.html
https://book.orthanc-server.com/users/support.html#discussing-a-minimal-working-example

Quoting the first of these pages: “If you encounter difficulties while interfacing Orthanc with some proprietary software, contact the commercial support of your supplier. As Orthanc is free and open-source, the support team of your supplier can download Orthanc, and can help you solve your problem.”

Regards,
Sébastien-

Ok, thanks for the links.

–Tristan

Feedback to the community:

After investigations, we found out that 6 C-Move were ordered in parallel (C-Move ordered by Orthanc from a remote modality to Orthanc). The first 4 C-Move connections were consuming a DICOM thread leaving no room for the last 2 C-Move which then timed out. There are 4 Dicom threads by default in Orthanc !

We increased the DicomThreadsCount to 10 and the problem has not been observed anymore. Note that DicomThreadsCount is a new configuration that will be available in the next Orthanc release (1.10).

Alain.

Yes. Thank you, Alain, for informing us about the hardcoded thread count and the new configuration parameter pending release.

Cheers,
Tristan