I am trying to send from latest orthanc, running inside docker on ubuntu, to a PACS server running on Windows. I can successfully complete a c-Echo, but the c-Store fails saying that there is an error in the network protocol. I have followed the troubleshooting guide and do not know how to debug further, so if you could point me in the right direction, that would be great.
I am seeing this issue with c-Store, not c-Move. I don't think the same issue applies.
Alain Mazy / CTO
a...@osimis.io / +32 494 31 67 27
| OSIMIS S.A. |
No, I have not tried to perform a C-Move. Only a C-Store via the web ui. [...] Here is the configuration of the PACS server. It is more of a proxy (CTXNode) provided by CortechLabs. I have also attached a usage guide they provided. From what I see, it makes sense that they would expect a C-Store
I can not determine how to retrieve logs from CTXNode, I will ask them and get back to you if I can find any.Here are the Orthanc Logs:root@ip-172-31-32-57:~# docker logs orthancW1207 05:52:09.195584 main.cpp:1235] Orthanc version: mainline (20161207T012352)W1207 05:52:09.198087 OrthancInitialization.cpp:173] Scanning folder "/etc/orthanc" for configuration filesW1207 05:52:09.198325 OrthancInitialization.cpp:125] Reading the configuration from: "/etc/orthanc/orthanc.json"W1207 05:52:09.200222 FromDcmtkBridge.cpp:141] Loading the external DICOM dictionary "/usr/share/libdcmtk2/dicom.dic"W1207 05:52:09.208372 FromDcmtkBridge.cpp:141] Loading the external DICOM dictionary "/usr/share/libdcmtk2/private.dic"W1207 05:52:09.215190 OrthancInitialization.cpp:488] Registering JPEG Lossless codecsW1207 05:52:09.215383 OrthancInitialization.cpp:493] Registering JPEG codecsW1207 05:52:09.222794 main.cpp:632] Loading plugin(s) from: /usr/share/orthanc/pluginsI1207 05:52:09.222926 PluginsManager.cpp:287] Scanning folder /usr/share/orthanc/plugins for pluginsW1207 05:52:09.223071 main.cpp:632] Loading plugin(s) from: /usr/local/share/orthanc/pluginsI1207 05:52:09.223189 PluginsManager.cpp:287] Scanning folder /usr/local/share/orthanc/plugins for pluginsI1207 05:52:09.223347 PluginsManager.cpp:310] Found a shared library: "/usr/local/share/orthanc/plugins/libServeFolders.so"W1207 05:52:09.224399 PluginsManager.cpp:268] Registering plugin 'serve-folders' (version mainline)I1207 05:52:09.224539 OrthancPlugins.cpp:1010] Plugin has registered a REST callback witout mutual exclusion on: /app/plugin-serve-folders.htmlW1207 05:52:09.225201 PluginsManager.cpp:167] ServeFolders: Empty configuration file: No additional folder will be served!I1207 05:52:09.225307 PluginsManager.cpp:310] Found a shared library: "/usr/local/share/orthanc/plugins/libModalityWorklists.so"W1207 05:52:09.226123 PluginsManager.cpp:268] Registering plugin 'worklists' (version mainline)W1207 05:52:09.226223 PluginsManager.cpp:167] Sample worklist plugin is initializingW1207 05:52:09.226402 PluginsManager.cpp:167] Worklists server is disabled, no suitable configuration section was providedW1207 05:52:09.226491 OrthancInitialization.cpp:986] SQLite index directory: "/var/lib/orthanc/db"W1207 05:52:09.227231 OrthancInitialization.cpp:1056] Storage directory: "/var/lib/orthanc/db"I1207 05:52:09.228160 DatabaseWrapper.cpp:306] Version of the Orthanc database: 6W1207 05:52:09.247711 LuaContext.cpp:103] Lua says: Lua toolbox installedW1207 05:52:09.247885 HttpClient.cpp:680] No certificates are provided to validate peers, set "HttpsCACertificates" if you need to do HTTPS requestsI1207 05:52:09.247982 HttpClient.cpp:151] Setting the default timeout for HTTP client connections: 10 secondsI1207 05:52:09.248055 HttpClient.cpp:135] Setting the default proxy for HTTP client connections:I1207 05:52:09.248120 DicomUserConnection.cpp:1201] Default timeout for DICOM connections if Orthanc acts as SCU (client): 10 seconds (0 = no timeout)W1207 05:52:09.248188 ServerContext.cpp:181] Disk compression is disabledI1207 05:52:09.248229 ServerContext.cpp:495] Storing MD5 for attachments: yesW1207 05:52:09.248300 ServerIndex.cpp:1392] No limit on the number of stored patientsW1207 05:52:09.248353 ServerIndex.cpp:1409] No limit on the size of the storage areaI1207 05:52:09.248720 DicomServer.cpp:125] Setting timeout for DICOM connections if Orthanc acts as SCP (server): 30 seconds (0 = no timeout)W1207 05:52:09.249315 main.cpp:822] DICOM server listening with AET ORTHANC on port: 4242W1207 05:52:09.249424 MongooseServer.cpp:887] This version of OpenSSL is vulnerable to the Heartbleed exploitI1207 05:52:09.249479 MongooseServer.cpp:1001] HTTP keep alive is disabledW1207 05:52:09.249552 MongooseServer.cpp:1027] HTTP compression is enabledW1207 05:52:09.249677 ServerScheduler.cpp:134] The server scheduler has startedW1207 05:52:09.250779 main.cpp:757] HTTP server listening on port: 8042W1207 05:52:09.250995 main.cpp:644] Orthanc has startedI1207 05:52:09.251057 ServerIndex.cpp:1877] Starting the monitor for stable resources (stable age = 60)I1207 05:52:09.251162 DicomServer.cpp:63] DICOM server startedI1207 05:52:09.252002 ServerIndex.cpp:363] Starting the database flushing thread (sleep = 10)I1207 05:52:54.796376 MongooseServer.cpp:726] GET /systemI1207 05:52:54.881588 MongooseServer.cpp:726] GET /modalitiesI1207 05:52:57.047582 MongooseServer.cpp:726] POST /modalities/AGE-RELATED-ATROPHY-REPORT/echoI1207 05:52:57.047841 DicomUserConnection.cpp:889] Opening a DICOM SCU connection from AET "ORTHANC" to AET "neuroquant_age" on host XX.XXX.XX.XXX:4242 (manufacturer: Generic)I1207 05:52:57.124277 ReusableDicomUserConnection.cpp:94] Closing the global SCU connection after timeoutI1207 05:52:58.508044 MongooseServer.cpp:726] GET /systemI1207 05:52:58.589449 MongooseServer.cpp:726] GET /patientsI1207 05:53:00.629044 MongooseServer.cpp:726] GET /systemI1207 05:53:00.708836 MongooseServer.cpp:726] GET /patients/252ab8d0-b40538a7-a134472d-0f42f307-a14bb028I1207 05:53:00.788703 MongooseServer.cpp:726] GET /patients/252ab8d0-b40538a7-a134472d-0f42f307-a14bb028/studiesI1207 05:53:00.878184 MongooseServer.cpp:726] GET /patients/252ab8d0-b40538a7-a134472d-0f42f307-a14bb028/protectedI1207 05:53:01.789552 MongooseServer.cpp:726] GET /systemI1207 05:53:01.868100 MongooseServer.cpp:726] GET /studies/8074b5b7-43976d9a-28e58dec-b002d3ca-df4bfc34I1207 05:53:01.958039 MongooseServer.cpp:726] GET /patients/252ab8d0-b40538a7-a134472d-0f42f307-a14bb028I1207 05:53:02.040215 MongooseServer.cpp:726] GET /studies/8074b5b7-43976d9a-28e58dec-b002d3ca-df4bfc34/seriesI1207 05:53:06.900914 MongooseServer.cpp:726] GET /systemI1207 05:53:06.988287 MongooseServer.cpp:726] GET /series/35691131-781f17c6-812c0fff-4d40ff59-b0092706I1207 05:53:07.089875 MongooseServer.cpp:726] GET /studies/8074b5b7-43976d9a-28e58dec-b002d3ca-df4bfc34I1207 05:53:07.171477 MongooseServer.cpp:726] GET /patients/252ab8d0-b40538a7-a134472d-0f42f307-a14bb028I1207 05:53:07.258558 MongooseServer.cpp:726] GET /series/35691131-781f17c6-812c0fff-4d40ff59-b0092706/instancesI1207 05:53:09.368221 MongooseServer.cpp:726] GET /modalitiesI1207 05:53:09.449555 MongooseServer.cpp:726] GET /peersI1207 05:53:10.619103 MongooseServer.cpp:726] POST /modalities/AGE-RELATED-ATROPHY-REPORT/storeI1207 05:53:10.624404 ServerScheduler.cpp:189] New job submitted (HTTP request: Store-SCU to peer "AGE-RELATED-ATROPHY-REPORT")I1207 05:53:10.624559 DicomUserConnection.cpp:889] Opening a DICOM SCU connection from AET "ORTHANC" to AET "neuroquant_age" on host XX.XXX.XX.XXX:4242 (manufacturer: Generic)I1207 05:53:10.630489 StoreScuCommand.cpp:61] Sending resource 6cfd8c43-a066ecdb-acd793b4-60c229a6-c7b25c8c to modality "neuroquant_age"I1207 05:53:10.630641 FilesystemStorage.cpp:154] Reading attachment "9c7882cd-c1c6-411d-b321-1a80def1c19f" of "DICOM" content typeE1207 05:53:10.654839 DicomUserConnection.cpp:165] DicomUserConnection: Peer aborted Association (or never connected)E1207 05:53:10.655420 StoreScuCommand.cpp:78] Unable to forward to a modality in a Lua script (instance 6cfd8c43-a066ecdb-acd793b4-60c229a6-c7b25c8c): Error in the network protocolE1207 05:53:10.655635 ServerScheduler.cpp:122] Job has failed (HTTP request: Store-SCU to peer "AGE-RELATED-ATROPHY-REPORT")I1207 05:53:10.755696 ReusableDicomUserConnection.cpp:94] Closing the global SCU connection after timeout
Orthanc:
IP: localhost
Port:4242
AET: ORTHANC
CTXNode:
IP: localhost (testing on same machine at this point)
Port:4567
AET: neuroquant_age
Remote modality settings on Orthanc:
"neuroquant-ctxnode" : [ "neuroquant_age", "localhost", 4567 ]
Can echo CTXNode from Orthanc successfully but when trying to send an MR study over we get the attached error (pretty much instantly). Log messages on the Orthanc side are:
E0106 16:38:20.034551 DicomUserConnection.cpp:166] DicomUserConnection: Peer aborted Association (or never connected)
E0106 16:38:20.050446 StoreScuCommand.cpp:86] Unable to forward to a modality in a Lua script (instance 91b9d396-cbf9846c-7d095904-67148e62-bd5300df): Error in the network protocol
E0106 16:38:20.055924 ServerScheduler.cpp:122] Job has failed (HTTP request: Store-SCU to peer "neuroquant-ctxnode")
On CTXNode there is no sign of a connection being made - nothing in the logs at all. tcpdump shows traffic to port 4567 however.
CTXNode can send to Orthanc.
Orthanc can send to a dummy server (dcmtk) on the same system and port.
Every other PACS, viewer etc we have ever tested can send to CTXNode (which uses dcm4chee to receive DICOM objects).
Seems like there is a network protocol incompatibility of some kind. What transfer syntax does Orthanc use by default when sending? Anything else you can think of?
Thanks,
Chris
On Tuesday, December 6, 2016 at 10:05:18 PM UTC-8, haydn....@gmail.com wrote:
> echo:
> I1207 05:58:17.028517 MongooseServer.cpp:726] GET /system
> I1207 05:58:17.114411 MongooseServer.cpp:726] GET /modalities
> I1207 05:58:18.510131 MongooseServer.cpp:726] POST /modalities/AGE-RELATED-ATROPHY-REPORT/echo
> I1207 05:58:18.510403 DicomUserConnection.cpp:889] Opening a DICOM SCU connection from AET "ORTHANC" to AET "neuroquant_age" on host xx.xxx.xx.xxx:4242 (manufacturer: Generic)
> I1207 05:58:18.694446 ReusableDicomUserConnection.cpp:94] Closing the global SCU connection after timeout
>
> c-store:
> I1207 05:52:58.508044 MongooseServer.cpp:726] GET /system
> I1207 05:52:58.589449 MongooseServer.cpp:726] GET /patients
> I1207 05:53:00.629044 MongooseServer.cpp:726] GET /system
> I1207 05:53:00.708836 MongooseServer.cpp:726] GET /patients/252ab8d0-b40538a7-a134472d-0f42f307-a14bb028
> I1207 05:53:00.788703 MongooseServer.cpp:726] GET /patients/252ab8d0-b40538a7-a134472d-0f42f307-a14bb028/studies
> I1207 05:53:00.878184 MongooseServer.cpp:726] GET /patients/252ab8d0-b40538a7-a134472d-0f42f307-a14bb028/protected
> I1207 05:53:01.789552 MongooseServer.cpp:726] GET /system
> I1207 05:53:01.868100 MongooseServer.cpp:726] GET /studies/8074b5b7-43976d9a-28e58dec-b002d3ca-df4bfc34
> I1207 05:53:01.958039 MongooseServer.cpp:726] GET /patients/252ab8d0-b40538a7-a134472d-0f42f307-a14bb028
> I1207 05:53:02.040215 MongooseServer.cpp:726] GET /studies/8074b5b7-43976d9a-28e58dec-b002d3ca-df4bfc34/series
> I1207 05:53:06.900914 MongooseServer.cpp:726] GET /system
> I1207 05:53:06.988287 MongooseServer.cpp:726] GET /series/35691131-781f17c6-812c0fff-4d40ff59-b0092706
> I1207 05:53:07.089875 MongooseServer.cpp:726] GET /studies/8074b5b7-43976d9a-28e58dec-b002d3ca-df4bfc34
> I1207 05:53:07.171477 MongooseServer.cpp:726] GET /patients/252ab8d0-b40538a7-a134472d-0f42f307-a14bb028
> I1207 05:53:07.258558 MongooseServer.cpp:726] GET /series/35691131-781f17c6-812c0fff-4d40ff59-b0092706/instances
> I1207 05:53:09.368221 MongooseServer.cpp:726] GET /modalities
> I1207 05:53:09.449555 MongooseServer.cpp:726] GET /peers
> I1207 05:53:10.619103 MongooseServer.cpp:726] POST /modalities/AGE-RELATED-ATROPHY-REPORT/store
> I1207 05:53:10.624404 ServerScheduler.cpp:189] New job submitted (HTTP request: Store-SCU to peer "AGE-RELATED-ATROPHY-REPORT")
> I1207 05:53:10.624559 DicomUserConnection.cpp:889] Opening a DICOM SCU connection from AET "ORTHANC" to AET "neuroquant_age" on host xx.xxx.xx.xxx:4242 (manufacturer: Generic)
> I1207 05:53:10.630489 StoreScuCommand.cpp:61] Sending resource 6cfd8c43-a066ecdb-acd793b4-60c229a6-c7b25c8c to modality "neuroquant_age"
> I1207 05:53:10.630641 FilesystemStorage.cpp:154] Reading attachment "9c7882cd-c1c6-411d-b321-1a80def1c19f" of "DICOM" content type
> E1207 05:53:10.654839 DicomUserConnection.cpp:165] DicomUserConnection: Peer aborted Association (or never connected)
> E1207 05:53:10.655420 StoreScuCommand.cpp:78] Unable to forward to a modality in a Lua script (instance 6cfd8c43-a066ecdb-acd793b4-60c229a6-c7b25c8c): Error in the network protocol
> E1207 05:53:10.655635 ServerScheduler.cpp:122] Job has failed (HTTP request: Store-SCU to peer "AGE-RELATED-ATROPHY-REPORT")
> I1207 05:53:10.755696 ReusableDicomUserConnection.cpp:94] Closing the global SCU connection after timeout
>
>
> Hi,
> I am trying to send from latest orthanc, running inside docker on ubuntu, to a PACS server running on Windows. I can successfully complete a c-Echo, but the c-Store fails saying that there is an error in the network protocol. I have followed the troubleshooting guide and do not know how to debug further, so if you could point me in the right direction, that would be great.
> Thanks