Error in the network protocol

Hello,
I’m getting this error while trying to download .zip files of ultrasound videos through the localhost:8042 interface. I noticed that sometimes when I clicked to download the .zip it wouldn’t “take” and I had to request again. I’m pretty sure thats what this log is reflecting but I’m not certain if this may suggest that my images/videos have not downloaded in completion or if they are in some way damaged/corrupted. Guidance is appreciated!

`
W0430 10:49:47.838786 main.cpp:1436] Orthanc version: 1.5.6

W0430 10:49:47.839786 OrthancConfiguration.cpp:113] Scanning folder “Configuration” for configuration files

W0430 10:49:47.839786 OrthancConfiguration.cpp:61] Reading the configuration from: “Configuration\dicomweb.json”

W0430 10:49:47.842786 OrthancConfiguration.cpp:61] Reading the configuration from: “Configuration\mysql.json”

W0430 10:49:47.845786 OrthancConfiguration.cpp:61] Reading the configuration from: “Configuration\orthanc.json”

W0430 10:49:47.849786 OrthancConfiguration.cpp:61] Reading the configuration from: “Configuration\postgresql.json”

W0430 10:49:47.853786 OrthancConfiguration.cpp:61] Reading the configuration from: “Configuration\serve-folders.json”

W0430 10:49:47.856786 OrthancConfiguration.cpp:61] Reading the configuration from: “Configuration\transfers.json”

W0430 10:49:47.858786 OrthancConfiguration.cpp:61] Reading the configuration from: “Configuration\webviewer.json”

W0430 10:49:47.862786 OrthancConfiguration.cpp:61] Reading the configuration from: “Configuration\worklists.json”

W0430 10:49:47.907786 main.cpp:700] Loading plugin(s) from: Configuration../Plugins/

W0430 10:49:47.938786 PluginsManager.cpp:269] Registering plugin ‘worklists’ (version 1.5.6)

W0430 10:49:47.938786 PluginsManager.cpp:168] Sample worklist plugin is initializing

W0430 10:49:47.938786 PluginsManager.cpp:168] Worklist server is disabled by the configuration file

W0430 10:49:48.103786 PluginsManager.cpp:269] Registering plugin ‘dicom-web’ (version 0.6)

W0430 10:49:48.104786 PluginsManager.cpp:168] URI to the DICOMweb REST API: /dicom-web/

W0430 10:49:48.104786 PluginsManager.cpp:168] URI to the WADO-URI API: /wado

W0430 10:49:48.133786 PluginsManager.cpp:269] Registering plugin ‘mysql-index’ (version 2.0)

W0430 10:49:48.134786 PluginsManager.cpp:168] The MySQL index is currently disabled, set “EnableIndex” to “true” in the “MySQL” section of the configuration file of Orthanc

W0430 10:49:48.162786 PluginsManager.cpp:269] Registering plugin ‘mysql-storage’ (version 2.0)

W0430 10:49:48.163786 PluginsManager.cpp:168] The MySQL storage area is currently disabled, set “EnableStorage” to “true” in the “MySQL” section of the configuration file of Orthanc

W0430 10:49:48.188786 PluginsManager.cpp:269] Registering plugin ‘postgresql-index’ (version 3.2)

W0430 10:49:48.188786 PluginsManager.cpp:168] The PostgreSQL index is currently disabled, set “EnableIndex” to “true” in the “PostgreSQL” section of the configuration file of Orthanc

W0430 10:49:48.213786 PluginsManager.cpp:269] Registering plugin ‘postgresql-storage’ (version 3.2)

W0430 10:49:48.213786 PluginsManager.cpp:168] The PostgreSQL storage area is currently disabled, set “EnableStorage” to “true” in the “PostgreSQL” section of the configuration file of Orthanc

W0430 10:49:48.236786 PluginsManager.cpp:269] Registering plugin ‘transfers’ (version 1.0)

W0430 10:49:48.397786 PluginsManager.cpp:269] Registering plugin ‘web-viewer’ (version 2.5)

W0430 10:49:48.397786 PluginsManager.cpp:168] Initializing the Web viewer

W0430 10:49:48.397786 PluginsManager.cpp:168] Web viewer using 4 threads for the decoding of the DICOM images

W0430 10:49:48.397786 PluginsManager.cpp:168] Storing the cache of the Web viewer in folder: C:\Active Study Data/TRANSEPPACS-A1\WebViewerCache

W0430 10:49:48.402786 PluginsManager.cpp:168] Web viewer using a cache of 100 MB

W0430 10:49:48.402786 PluginsManager.cpp:168] Using GDCM instead of the DICOM decoder that is built in Orthanc

W0430 10:49:48.425786 PluginsManager.cpp:269] Registering plugin ‘wsi’ (version 0.6)

W0430 10:49:48.425786 PluginsManager.cpp:168] The whole-slide imaging plugin will use at most 8 threads to transcode the tiles

W0430 10:49:48.577786 PluginsManager.cpp:269] Registering plugin ‘osimis-web-viewer’ (version 1.2.0.0-0d4bfbd5)

W0430 10:49:48.577786 PluginsManager.cpp:168] Initializing the Web viewer

W0430 10:49:48.577786 PluginsManager.cpp:168] Using GDCM instead of the DICOM decoder that is built in Orthanc

W0430 10:49:48.609786 PluginsManager.cpp:269] Registering plugin ‘serve-folders’ (version 1.5.6)

W0430 10:49:48.609786 PluginsManager.cpp:168] ServeFolders: Empty configuration file: No additional folder will be served!

W0430 10:49:48.609786 OrthancInitialization.cpp:301] SQLite index directory: “C:\Active Study Data/TRANSEPPACS-A1”

W0430 10:49:48.612786 OrthancInitialization.cpp:376] Storage directory: “C:\Active Study Data/TRANSEPPACS-A1”

W0430 10:49:48.616786 HttpClient.cpp:744] HTTPS will use the CA certificates from this file: Configuration

W0430 10:49:48.617786 LuaContext.cpp:103] Lua says: Lua toolbox installed

W0430 10:49:48.617786 LuaContext.cpp:103] Lua says: Lua toolbox installed

W0430 10:49:48.618786 ServerContext.cpp:316] Disk compression is disabled

W0430 10:49:48.618786 ServerIndex.cpp:1613] No limit on the number of stored patients

W0430 10:49:48.618786 ServerIndex.cpp:1630] No limit on the size of the storage area

W0430 10:49:48.618786 ServerContext.cpp:168] Reloading the jobs from the last execution of Orthanc

W0430 10:49:48.619786 JobsEngine.cpp:283] The jobs engine has started with 8 threads

W0430 10:49:48.622786 main.cpp:932] DICOM server listening with AET TRANSEPPACS-A on port: 4242

W0430 10:49:48.622786 HttpServer.cpp:1155] HTTP compression is enabled

W0430 10:49:48.625786 HttpServer.cpp:1062] HTTP server listening on port: 8042 (HTTPS encryption is disabled, remote access is allowed)

W0430 10:49:48.625786 main.cpp:712] Orthanc has started

E0430 11:01:42.188187 PluginsManager.cpp:197] Exception while invoking plugin service 2000: Error in the network protocol

E0430 11:01:42.188187 HttpOutput.cpp:79] This HTTP answer has not sent the proper number of bytes in its body

E0430 11:03:39.223187 HttpOutput.cpp:79] This HTTP answer has not sent the proper number of bytes in its body

E0430 11:09:57.675187 PluginsManager.cpp:197] Exception while invoking plugin service 2000: Error in the network protocol

E0430 11:09:57.675187 HttpOutput.cpp:79] This HTTP answer has not sent the proper number of bytes in its body

E0430 11:09:58.609187 PluginsManager.cpp:197] Exception while invoking plugin service 2000: Error in the network protocol

E0430 11:09:58.609187 HttpOutput.cpp:79] This HTTP answer has not sent the proper number of bytes in its body

E0430 11:09:59.575187 PluginsManager.cpp:197] Exception while invoking plugin service 2000: Error in the network protocol

E0430 11:09:59.575187 HttpOutput.cpp:79] This HTTP answer has not sent the proper number of bytes in its body

E0430 11:10:00.557187 PluginsManager.cpp:197] Exception while invoking plugin service 2000: Error in the network protocol

E0430 11:10:00.557187 HttpOutput.cpp:79] This HTTP answer has not sent the proper number of bytes in its body

E0430 11:10:01.581187 PluginsManager.cpp:197] Exception while invoking plugin service 2000: Error in the network protocol

E0430 11:10:01.581187 HttpOutput.cpp:79] This HTTP answer has not sent the proper number of bytes in its body

E0430 11:10:02.762187 PluginsManager.cpp:197] Exception while invoking plugin service 2000: Error in the network protocol

E0430 11:10:02.763187 HttpOutput.cpp:79] This HTTP answer has not sent the proper number of bytes in its body

E0430 11:10:07.419187 HttpOutput.cpp:79] This HTTP answer has not sent the proper number of bytes in its body

W0430 11:29:07.549593 main.cpp:774] Orthanc is stopping

W0430 11:29:07.627593 main.cpp:858] HTTP server has stopped

W0430 11:29:08.094393 main.cpp:948] DICOM server has stopped

W0430 11:29:08.294393 JobsEngine.cpp:324] The jobs engine has stopped

W0430 11:29:08.574393 PluginsManager.cpp:219] Unregistering plugin ‘dicom-web’ (version 0.6)

W0430 11:29:08.574393 PluginsManager.cpp:219] Unregistering plugin ‘mysql-index’ (version 2.0)

W0430 11:29:08.574393 PluginsManager.cpp:168] MySQL index is finalizing

W0430 11:29:08.574393 PluginsManager.cpp:219] Unregistering plugin ‘mysql-storage’ (version 2.0)

W0430 11:29:08.574393 PluginsManager.cpp:168] MySQL storage area is finalizing

W0430 11:29:08.574393 PluginsManager.cpp:219] Unregistering plugin ‘osimis-web-viewer’ (version 1.2.0.0-0d4bfbd5)

W0430 11:29:08.574393 PluginsManager.cpp:168] Finalizing the Web viewer

W0430 11:29:08.584393 PluginsManager.cpp:219] Unregistering plugin ‘postgresql-index’ (version 3.2)

W0430 11:29:08.584393 PluginsManager.cpp:168] PostgreSQL index is finalizing

W0430 11:29:08.584393 PluginsManager.cpp:219] Unregistering plugin ‘postgresql-storage’ (version 3.2)

W0430 11:29:08.584393 PluginsManager.cpp:168] PostgreSQL storage area is finalizing

W0430 11:29:08.584393 PluginsManager.cpp:219] Unregistering plugin ‘serve-folders’ (version 1.5.6)

W0430 11:29:08.584393 PluginsManager.cpp:219] Unregistering plugin ‘transfers’ (version 1.0)

W0430 11:29:08.584393 PluginsManager.cpp:168] Transfers accelerator plugin is finalizing

W0430 11:29:08.584393 PluginsManager.cpp:219] Unregistering plugin ‘web-viewer’ (version 2.5)

W0430 11:29:08.584393 PluginsManager.cpp:168] Finalizing the Web viewer

W0430 11:29:09.847193 PluginsManager.cpp:219] Unregistering plugin ‘worklists’ (version 1.5.6)

W0430 11:29:09.847193 PluginsManager.cpp:168] Sample worklist plugin is finalizing

W0430 11:29:09.847193 PluginsManager.cpp:219] Unregistering plugin ‘wsi’ (version 0.6)

W0430 11:29:09.847193 main.cpp:1495] Orthanc has stopped

`

I’m attaching the configuration file as well

`
{
/**

  • General configuration of Orthanc
    **/

// The logical name of this instance of Orthanc. This one is
// displayed in Orthanc Explorer and at the URI “/system”.
“Name” : “TRANSEPPACS-A”,

// Path to the directory that holds the heavyweight files (i.e. the
// raw DICOM instances). Backslashes must be either escaped by
// doubling them, or replaced by forward slashes “/”.
“StorageDirectory” : “C:\Active Study Data/TRANSEPPACS-A1”,

// Path to the directory that holds the SQLite index (if unset, the
// value of StorageDirectory is used). This index could be stored on
// a RAM-drive or a SSD device for performance reasons.
“IndexDirectory” : “C:\Active Study Data/TRANSEPPACS-A1”,

// Enable the transparent compression of the DICOM instances
“StorageCompression” : false,

// Maximum size of the storage in MB (a value of “0” indicates no
// limit on the storage size)
“MaximumStorageSize” : 0,

// Maximum number of patients that can be stored at a given time
// in the storage (a value of “0” indicates no limit on the number
// of patients)
“MaximumPatientCount” : 0,

// List of paths to the custom Lua scripts that are to be loaded
// into this instance of Orthanc
“LuaScripts” : [
],

// List of paths to the plugins that are to be loaded into this
// instance of Orthanc (e.g. “./libPluginTest.so” for Linux, or
// “./PluginTest.dll” for Windows). These paths can refer to
// folders, in which case they will be scanned non-recursively to
// find shared libraries. Backslashes must be either escaped by
// doubling them, or replaced by forward slashes “/”.
“Plugins” : [ “…/Plugins/” ],

// Maximum number of processing jobs that are simultaneously running
// at any given time. A value of “0” indicates to use all the
// available CPU logical cores. To emulate Orthanc <= 1.3.2, set
// this value to “1”.
“ConcurrentJobs” : 0,

/**

  • Configuration of the HTTP server
    **/

// Enable the HTTP server. If this parameter is set to “false”,
// Orthanc acts as a pure DICOM server. The REST API and Orthanc
// Explorer will not be available.
“HttpServerEnabled” : true,

// HTTP port for the REST services and for the GUI
“HttpPort” : 8042,

// When the following option is “true”, if an error is encountered
// while calling the REST API, a JSON message describing the error
// is put in the HTTP answer. This feature can be disabled if the
// HTTP client does not properly handles such answers.
“HttpDescribeErrors” : true,

// Enable HTTP compression to improve network bandwidth utilization,
// at the expense of more computations on the server. Orthanc
// supports the “gzip” and “deflate” HTTP encodings.
“HttpCompressionEnabled” : true,

/**

  • Configuration of the DICOM server
    **/

// Enable the DICOM server. If this parameter is set to “false”,
// Orthanc acts as a pure REST server. It will not be possible to
// receive files or to do query/retrieve through the DICOM protocol.
“DicomServerEnabled” : true,

// The DICOM Application Entity Title
“DicomAet” : “TRANSEPPACS-A”,

// Check whether the called AET corresponds to the AET of Orthanc
// during an incoming DICOM SCU request
“DicomCheckCalledAet” : false,

// The DICOM port
“DicomPort” : 4242,

// The default encoding that is assumed for DICOM files without
// “SpecificCharacterSet” DICOM tag, and that is used when answering
// C-Find requests (including worklists). The allowed values are
// “Ascii”, “Utf8”, “Latin1”, “Latin2”, “Latin3”, “Latin4”,
// “Latin5”, “Cyrillic”, “Windows1251”, “Arabic”, “Greek”, “Hebrew”,
// “Thai”, “Japanese”, and “Chinese”.
“DefaultEncoding” : “Latin1”,

// 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,

// Set the timeout (in seconds) after which the DICOM associations
// are closed by the Orthanc SCP (server) if no further DIMSE
// command is received from the SCU (client).
“DicomScpTimeout” : 60,

/**

  • Security-related options for the HTTP server
    **/

// Whether remote hosts can connect to the HTTP server
“RemoteAccessAllowed” : true,

// Whether or not SSL is enabled
“SslEnabled” : false,

// Path to the SSL certificate in the PEM format (meaningful only if
// SSL is enabled)
“SslCertificate” : “certificate.pem”,

// Whether or not the password protection is enabled
“AuthenticationEnabled” : false,

// The list of the registered users. Because Orthanc uses HTTP
// Basic Authentication, the passwords are stored as plain text.
“RegisteredUsers” : {
// “alice” : “alicePassword”
},

/**

  • Network topology
    **/

// The list of the known DICOM modalities
“DicomModalities” : {
“CartoQuery” : [ “CARTO3Q”, “192.168.123.3”, 4242],
“CartoRestore” : [ “CARTO3R”, “192.168.123.3”, 4242],
“CartoStore” : [ “CARTO3S”, “192.168.123.3”, 4242],
“CLSWS1234” : [ “CLSWS1234”, “192.168.123.7”, 1225]

/**

  • Uncommenting the following line would enable Orthanc to
  • connect to an instance of the “storescp” open-source DICOM
  • store (shipped in the DCMTK distribution) started by the
  • command line “storescp 2000”.
    **/
    // “sample” : [ “STORESCP”, “127.0.0.1”, 2000 ]

/**

  • A fourth parameter is available to enable patches for
  • specific PACS manufacturers. The allowed values are currently:
    • “Generic” (default value),
    • “GenericNoWildcardInDates” (to replace “*” by “” in date fields
  • in outgoing C-Find requests originating from Orthanc),
    • “GenericNoUniversalWildcard” (to replace “*” by “” in all fields
  • in outgoing C-Find SCU requests originating from Orthanc),
    • “StoreScp” (storescp tool from DCMTK),
    • “ClearCanvas”,
    • “Dcm4Chee”,
    • “Vitrea”,
    • “GE” (Enterprise Archive, MRI consoles and Advantage Workstation
  • from GE Healthcare).

Hello,

Please post your full logs in “–verbose” mode:
http://book.orthanc-server.com/faq/log.html

Also, please provide sample DICOM files (possibly anonymized) and a way for us to reproduce your issue.

Sébastien-

Hello,
Attached is my verbose log and a copy of the DICOM file. I am able to reproduce this error by quickly clicking “download zip” a couple of time. In this instance, 3 of my clicks registered and succesfully downloaded whereas 1 failed and gives the same error as mentioned before in the logs.

The DICOM file is simply 1 blank ultrasound picture.

I can’t seem to reproduce the “Exception while invoking plugin service 2000: Error in the network protocol” Although if I remember corrently I was connected to the computer running Orthanc via remote desktop and then logging into localhost from there. I’ll keep attempting to reproduce and.

Log:

`

W0510 14:42:41.729705 main.cpp:1436] Orthanc version: 1.5.6

W0510 14:42:41.729705 OrthancConfiguration.cpp:61] Reading the configuration from: “orthanc.json”

I0510 14:42:41.729705 Toolbox.cpp:1370] Using locale: “” for case-insensitive comparison of strings

I0510 14:42:41.729705 Enumerations.cpp:2217] Default encoding for DICOM was changed to: Latin1

I0510 14:42:41.729705 FromDcmtkBridge.cpp:233] Using DCTMK version: 364

I0510 14:42:41.729705 FromDcmtkBridge.cpp:241] Loading the embedded dictionaries

I0510 14:42:41.760905 FromDcmtkBridge.cpp:253] Loading the embedded dictionary of private tags

I0510 14:42:41.776505 FromDcmtkBridge.cpp:2175] Registering JPEG Lossless codecs in DCMTK

I0510 14:42:41.776505 FromDcmtkBridge.cpp:2180] Registering JPEG codecs in DCMTK

W0510 14:42:41.792105 main.cpp:700] Loading plugin(s) from: …/Plugins/

E0510 14:42:41.792105 PluginsManager.cpp:242] Inexistent path to plugins: …/Plugins/

W0510 14:42:41.792105 OrthancInitialization.cpp:301] SQLite index directory: “C:\Active Study Data/TRANSEPPACS-A1”

W0510 14:42:41.792105 OrthancInitialization.cpp:376] Storage directory: “C:\Active Study Data/TRANSEPPACS-A1”

I0510 14:42:41.792105 SQLiteDatabaseWrapper.cpp:394] Version of the Orthanc database: 6

W0510 14:42:41.792105 HttpClient.cpp:739] No certificates are provided to validate peers, set “HttpsCACertificates” if you need to do HTTPS requests

I0510 14:42:41.792105 HttpClient.cpp:152] Setting the default timeout for HTTP client connections: 10 seconds

I0510 14:42:41.792105 HttpClient.cpp:136] Setting the default proxy for HTTP client connections:

I0510 14:42:41.792105 DicomUserConnection.cpp:1346] Default timeout for DICOM connections if Orthanc acts as SCU (client): 10 seconds (0 = no timeout)

I0510 14:42:41.792105 ServerIndex.cpp:481] Starting the database flushing thread (sleep = 10)

I0510 14:42:41.792105 ServerIndex.cpp:2069] Starting the monitor for stable resources (stable age = 60)

I0510 14:42:41.792105 LuaJobManager.cpp:76] Lua: DICOM associations will be closed after 0 seconds of inactivity

I0510 14:42:41.792105 LuaScripting.cpp:616] Initializing Lua for the event handler

W0510 14:42:41.792105 LuaContext.cpp:103] Lua says: Lua toolbox installed

I0510 14:42:41.792105 LuaJobManager.cpp:76] Lua: DICOM associations will be closed after 0 seconds of inactivity

I0510 14:42:41.792105 LuaScripting.cpp:616] Initializing Lua for the event handler

W0510 14:42:41.792105 LuaContext.cpp:103] Lua says: Lua toolbox installed

W0510 14:42:41.792105 ServerContext.cpp:316] Disk compression is disabled

I0510 14:42:41.792105 ServerContext.cpp:676] Storing MD5 for attachments: yes

W0510 14:42:41.792105 ServerIndex.cpp:1613] No limit on the number of stored patients

W0510 14:42:41.792105 ServerIndex.cpp:1630] No limit on the size of the storage area

W0510 14:42:41.792105 ServerContext.cpp:168] Reloading the jobs from the last execution of Orthanc

I0510 14:42:41.792105 JobsEngine.cpp:136] Worker thread 0 has started

I0510 14:42:41.792105 JobsEngine.cpp:136] Worker thread 1 has started

I0510 14:42:41.792105 JobsEngine.cpp:136] Worker thread 2 has started

I0510 14:42:41.792105 JobsEngine.cpp:136] Worker thread 3 has started

I0510 14:42:41.792105 JobsEngine.cpp:136] Worker thread 4 has started

I0510 14:42:41.792105 JobsEngine.cpp:136] Worker thread 5 has started

W0510 14:42:41.792105 JobsEngine.cpp:283] The jobs engine has started with 8 threads

I0510 14:42:41.792105 JobsEngine.cpp:136] Worker thread 6 has started

I0510 14:42:41.792105 JobsEngine.cpp:136] Worker thread 7 has started

I0510 14:42:41.792105 DicomServer.cpp:125] Setting timeout for DICOM connections if Orthanc acts as SCP (server): 60 seconds (0 = no timeout)

W0510 14:42:41.792105 main.cpp:932] DICOM server listening with AET TRANSEPPACS-A on port: 4242

I0510 14:42:41.792105 HttpServer.cpp:967] This Orthanc server uses CivetWeb as its embedded HTTP server

I0510 14:42:41.792105 HttpServer.cpp:1206] The embedded HTTP server will use 50 threads

I0510 14:42:41.792105 HttpServer.cpp:1122] HTTP keep alive is disabled

W0510 14:42:41.792105 HttpServer.cpp:1155] HTTP compression is enabled

I0510 14:42:41.792105 HttpServer.cpp:1214] TCP_NODELAY for the HTTP sockets is set to true

I0510 14:42:41.807705 HttpServer.cpp:999] Starting embedded Web server using Civetweb

I0510 14:42:41.792105 DicomServer.cpp:62] DICOM server started

W0510 14:42:41.807705 HttpServer.cpp:1062] HTTP server listening on port: 8042 (HTTPS encryption is disabled, remote access is allowed)

W0510 14:42:41.807705 main.cpp:712] Orthanc has started

I0510 14:42:41.807705 LuaScripting.cpp:673] Starting the Lua engine

I0510 14:43:05.344705 HttpServer.cpp:788] GET /app/explorer.html

I0510 14:43:05.362705 HttpServer.cpp:788] GET /app/libs/jquery.mobile.min.css

I0510 14:43:05.595705 HttpServer.cpp:788] GET /app/libs/jqtree.css

I0510 14:43:05.663705 HttpServer.cpp:788] GET /app/libs/jquery.mobile.simpledialog.min.css

I0510 14:43:05.663705 HttpServer.cpp:788] GET /app/libs/jquery-file-upload/css/style.css

I0510 14:43:05.670705 HttpServer.cpp:788] GET /app/libs/jquery-file-upload/css/jquery.fileupload-ui.css

I0510 14:43:05.671705 HttpServer.cpp:788] GET /app/libs/slimbox2/slimbox2.css

I0510 14:43:05.673705 HttpServer.cpp:788] GET /app/explorer.css

I0510 14:43:05.900705 HttpServer.cpp:788] GET /app/libs/jquery.min.js

I0510 14:43:05.968705 HttpServer.cpp:788] GET /app/libs/jquery.mobile.min.js

I0510 14:43:05.973705 HttpServer.cpp:788] GET /app/libs/jqm.page.params.js

I0510 14:43:05.975705 HttpServer.cpp:788] GET /app/libs/tree.jquery.js

I0510 14:43:05.976705 HttpServer.cpp:788] GET /app/libs/date.js

I0510 14:43:05.977705 HttpServer.cpp:788] GET /app/libs/jquery.mobile.simpledialog2.js

I0510 14:43:06.209705 HttpServer.cpp:788] GET /app/libs/slimbox2.js

I0510 14:43:06.274705 HttpServer.cpp:788] GET /app/libs/jquery.blockui.js

I0510 14:43:06.277705 HttpServer.cpp:788] GET /app/libs/jquery-file-upload/js/vendor/jquery.ui.widget.js

I0510 14:43:06.281705 HttpServer.cpp:788] GET /app/libs/jquery-file-upload/js/jquery.iframe-transport.js

I0510 14:43:06.281705 HttpServer.cpp:788] GET /app/libs/jquery-file-upload/js/jquery.fileupload.js

I0510 14:43:06.281705 HttpServer.cpp:788] GET /app/file-upload.js

I0510 14:43:06.512705 HttpServer.cpp:788] GET /app/explorer.js

I0510 14:43:06.577705 HttpServer.cpp:788] GET /app/query-retrieve.js

I0510 14:43:06.580705 HttpServer.cpp:788] GET /plugins/explorer.js

I0510 14:43:06.585705 HttpServer.cpp:788] GET /app/orthanc-logo.png

I0510 14:43:06.586705 HttpServer.cpp:788] GET /app/libs/images/ajax-loader.gif

I0510 14:43:06.934705 HttpServer.cpp:788] GET /system

I0510 14:43:07.187705 HttpServer.cpp:788] GET /app/libs/images/icons-18-white.png

I0510 14:43:07.244705 HttpServer.cpp:788] GET /favicon.ico

I0510 14:43:14.255905 HttpServer.cpp:788] GET /system

I0510 14:43:14.560905 HttpServer.cpp:788] GET /patients

I0510 14:43:18.097105 HttpServer.cpp:788] GET /system

I0510 14:43:18.402105 HttpServer.cpp:788] GET /patients/a91fe9b6-afd090c0-30c592d2-e83c8305-89f38911

I0510 14:43:18.654105 HttpServer.cpp:788] GET /patients/a91fe9b6-afd090c0-30c592d2-e83c8305-89f38911/studies

I0510 14:43:18.706105 HttpServer.cpp:788] GET /patients/a91fe9b6-afd090c0-30c592d2-e83c8305-89f38911/protected

I0510 14:43:21.792305 HttpServer.cpp:788] GET /patients/a91fe9b6-afd090c0-30c592d2-e83c8305-89f38911/archive

I0510 14:43:21.792305 ArchiveJob.cpp:78] Creating a ZIP file with 1 files of size 0MB using the ZIP32 file format

I0510 14:43:21.792305 JobsRegistry.cpp:712] New job submitted with priority 0: b648514a-4dcf-432a-a539-9d247785a8ac

I0510 14:43:21.792305 JobsEngine.cpp:144] Executing job with priority 0 in worker thread 6: b648514a-4dcf-432a-a539-9d247785a8ac

I0510 14:43:21.792305 FilesystemStorage.cpp:155] Reading attachment “1c9db3aa-6ae6-46c8-80f3-92c741ddbd72” of “DICOM” content type

I0510 14:43:21.818905 JobsRegistry.cpp:486] Job has completed with success: b648514a-4dcf-432a-a539-9d247785a8ac

I0510 14:43:22.094105 HttpServer.cpp:788] GET /patients/a91fe9b6-afd090c0-30c592d2-e83c8305-89f38911/archive

I0510 14:43:22.095105 ArchiveJob.cpp:78] Creating a ZIP file with 1 files of size 0MB using the ZIP32 file format

I0510 14:43:22.095105 JobsRegistry.cpp:712] New job submitted with priority 0: a2eaeb11-f5a9-49f7-be2d-1e4ffd4dac74

I0510 14:43:22.095105 JobsEngine.cpp:144] Executing job with priority 0 in worker thread 3: a2eaeb11-f5a9-49f7-be2d-1e4ffd4dac74

I0510 14:43:22.096105 FilesystemStorage.cpp:155] Reading attachment “1c9db3aa-6ae6-46c8-80f3-92c741ddbd72” of “DICOM” content type

I0510 14:43:22.108105 JobsRegistry.cpp:486] Job has completed with success: a2eaeb11-f5a9-49f7-be2d-1e4ffd4dac74

I0510 14:43:22.291105 HttpServer.cpp:788] GET /patients/a91fe9b6-afd090c0-30c592d2-e83c8305-89f38911/archive

I0510 14:43:23.170105 HttpServer.cpp:788] GET /patients/a91fe9b6-afd090c0-30c592d2-e83c8305-89f38911/archive

I0510 14:43:23.184105 ArchiveJob.cpp:78] Creating a ZIP file with 1 files of size 0MB using the ZIP32 file format

I0510 14:43:23.184105 ArchiveJob.cpp:78] Creating a ZIP file with 1 files of size 0MB using the ZIP32 file format

I0510 14:43:23.185105 JobsRegistry.cpp:712] New job submitted with priority 0: 1445de5a-2056-49f5-97e8-27c295f315bc

I0510 14:43:23.185105 JobsEngine.cpp:144] Executing job with priority 0 in worker thread 6: 1445de5a-2056-49f5-97e8-27c295f315bc

I0510 14:43:23.185105 FilesystemStorage.cpp:155] Reading attachment “1c9db3aa-6ae6-46c8-80f3-92c741ddbd72” of “DICOM” content type

I0510 14:43:23.185105 JobsRegistry.cpp:712] New job submitted with priority 0: 8ef6b352-5b32-4cdc-9267-cdcdef6baf74

I0510 14:43:23.185105 JobsEngine.cpp:144] Executing job with priority 0 in worker thread 3: 8ef6b352-5b32-4cdc-9267-cdcdef6baf74

I0510 14:43:23.185105 FilesystemStorage.cpp:155] Reading attachment “1c9db3aa-6ae6-46c8-80f3-92c741ddbd72” of “DICOM” content type

I0510 14:43:23.197105 JobsRegistry.cpp:486] Job has completed with success: 8ef6b352-5b32-4cdc-9267-cdcdef6baf74

I0510 14:43:23.198105 JobsRegistry.cpp:486] Job has completed with success: 1445de5a-2056-49f5-97e8-27c295f315bc

E0510 14:43:23.199105 HttpOutput.cpp:79] This HTTP answer has not sent the proper number of bytes in its body

I0510 14:45:41.352106 LuaJobManager.cpp:106] Awaking trailing sleep

I0510 14:45:41.352106 LuaScripting.cpp:697] Stopping the Lua engine

I0510 14:45:41.461306 LuaScripting.cpp:699] The Lua engine has stopped

W0510 14:45:41.461306 main.cpp:774] Orthanc is stopping

W0510 14:45:41.617306 main.cpp:858] HTTP server has stopped

I0510 14:45:41.759706 DicomServer.cpp:83] DICOM server stopping

W0510 14:45:41.806506 main.cpp:948] DICOM server has stopped

I0510 14:45:41.915706 JobsEngine.cpp:300] Stopping the jobs engine

W0510 14:45:41.962506 JobsEngine.cpp:324] The jobs engine has stopped

I0510 14:45:42.212106 ServerIndex.cpp:2113] Closing the monitor thread for stable resources

I0510 14:45:42.212106 ServerIndex.cpp:501] Stopping the database flushing thread

W0510 14:45:42.227706 main.cpp:1495] Orthanc has stopped

`

a91fe9b6-afd090c0-30c592d2-e83c8305-89f38911.zip (78.9 KB)

Sorry, I can’t reproduce your issue.

Here is a sample bash script that quickly downloads your image 100 times in parallel: No error occurs, and the content of the archive is always the same:

STUDY=4e123ab4-e2ae86ab-8a97c4ca-c1439bf4-d9cf7010

seq 1 99 | while read i
do
curl -s http://localhost:8042/studies/$STUDY/archive > c${i} &
done

wait $(jobs -p)

ls -l c?*

This is most likely an issue related to your Web browser.

If your are downloading a large study, you might actually experience HTTP timeouts. Check out the following thread:
https://groups.google.com/d/msg/orthanc-users/IEVJdR-z-4Y/EUawQoowBAAJ

Sébastien-

Looking into the images themselves, there doesn’t seem to be anything missing. I agree it may be a bug with the web browser (Chrome) and it seems to be benign. Thanks for looking into it.