Am I missing something from the setup?

I just ran through what seems to be a completely successful install from source on linux. I followed the instructions here: https://bitbucket.org/sjodogne/orthanc/src/default/LinuxCompilation.txt - which were really helpful.

Then I installed the plugin for dicom-web since I plan to have a viewer sit on top of this and need the wado protocols enabled (not sure if I’m using the right terminology there). The install seemed successful as well.

Next I generated a config file and added the noted lines for dicom-web noted here: https://book.orthanc-server.com/plugins/dicomweb.html

My problem is, I can’t get this to load in the browser. I don’t have physical access to this machine, so I’ve tried the ip with the port of 8042. I’ve verified that the port is open with ufw and setup correctly in the configuration.json file.

So now I’m wondering if I’ve gotten the install done correctly. I don’t seem to be able to start/stop Orthanc as a service. I can call it directly from the build folder in the instruction, "~/OrthancBuild/ with the command: sudo ./Orthanc ./Configuration.json – verbose

This outputs:

W0110 11:13:31.594831 main.cpp:1524] Orthanc version: 1.5.8

W0110 11:13:31.596868 OrthancConfiguration.cpp:61] Reading the configuration from: “./Configuration.json”

I0110 11:13:31.598063 Toolbox.cpp:1450] Using locale: “en_US.UTF-8” for case-insensitive comparison of strings

I0110 11:13:31.598282 Enumerations.cpp:2253] Default encoding for DICOM was changed to: Latin1

I0110 11:13:31.598506 FromDcmtkBridge.cpp:233] Using DCTMK version: 364

I0110 11:13:31.598591 FromDcmtkBridge.cpp:241] Loading the embedded dictionaries

I0110 11:13:31.612494 FromDcmtkBridge.cpp:253] Loading the embedded dictionary of private tags

I0110 11:13:31.621793 FromDcmtkBridge.cpp:2175] Registering JPEG Lossless codecs in DCMTK

I0110 11:13:31.621850 FromDcmtkBridge.cpp:2180] Registering JPEG codecs in DCMTK

W0110 11:13:31.628881 main.cpp:703] Loading plugin(s) from: /home/[userhidden]/OrthancDicomWeb/Build/libOrthancDicomWeb.so

W0110 11:13:31.644863 PluginsManager.cpp:269] Registering plugin ‘dicom-web’ (version 1.0)

W0110 11:13:31.645522 PluginsManager.cpp:168] URI to the DICOMweb REST API: /dicom-web/

I0110 11:13:31.645565 OrthancPlugins.cpp:1721] Plugin has registered a REST callback for chunked streams on: /dicom-web/studies

I0110 11:13:31.645607 OrthancPlugins.cpp:1721] Plugin has registered a REST callback for chunked streams on: /dicom-web/studies/([^/]*)

I0110 11:13:31.645640 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/instances

I0110 11:13:31.645674 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/series

I0110 11:13:31.645707 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/studies/([^/]*)/instances

I0110 11:13:31.645741 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/studies/([^/]*)/metadata

I0110 11:13:31.645775 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/studies/([^/]*)/series

I0110 11:13:31.645809 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/studies/([^/])/series/([^/])

I0110 11:13:31.645855 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/studies/([^/])/series/([^/])/instances

I0110 11:13:31.645890 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/studies/([^/])/series/([^/])/instances/([^/]*)

I0110 11:13:31.645928 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/studies/([^/])/series/([^/])/instances/([^/])/bulk/(.)

I0110 11:13:31.645972 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/studies/([^/])/series/([^/])/instances/([^/]*)/metadata

I0110 11:13:31.646015 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/studies/([^/])/series/([^/])/metadata

I0110 11:13:31.646052 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/studies/([^/])/series/([^/])/instances/([^/]*)/frames

I0110 11:13:31.646098 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/studies/([^/])/series/([^/])/instances/([^/])/frames/([^/])

I0110 11:13:31.646142 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/servers

I0110 11:13:31.646184 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/servers/([^/]*)

I0110 11:13:31.646218 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/servers/([^/]*)/stow

I0110 11:13:31.646252 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/servers/([^/]*)/wado

I0110 11:13:31.646295 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/servers/([^/]*)/get

I0110 11:13:31.646333 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/servers/([^/]*)/retrieve

I0110 11:13:31.646371 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/servers/([^/]*)/qido

I0110 11:13:31.646412 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/servers/([^/]*)/delete

I0110 11:13:31.646454 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/app/libs/(.*)

I0110 11:13:31.646491 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/info

I0110 11:13:31.646527 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/studies/([^/])/series/([^/])/instances/([^/]*)/rendered

I0110 11:13:31.646573 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/studies/([^/])/series/([^/])/instances/([^/])/frames/([^/])/rendered

I0110 11:13:31.646639 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /dicom-web/app/client/(.*)

W0110 11:13:31.646912 PluginsManager.cpp:168] URI to the WADO-URI API: /wado

I0110 11:13:31.646943 OrthancPlugins.cpp:1707] Plugin has registered a REST callback without mutual exclusion on: /wado

W0110 11:13:31.646996 OrthancInitialization.cpp:301] SQLite index directory: “./OrthancStorage”

W0110 11:13:31.647487 OrthancInitialization.cpp:376] Storage directory: “./OrthancStorage”

I0110 11:13:31.648490 SQLiteDatabaseWrapper.cpp:394] Version of the Orthanc database: 6

W0110 11:13:31.648557 HttpClient.cpp:1045] HTTPS will use the CA certificates from this file: .

I0110 11:13:31.648595 HttpClient.cpp:489] Setting the default timeout for HTTP client connections: 60 seconds

I0110 11:13:31.648629 HttpClient.cpp:473] Setting the default proxy for HTTP client connections:

I0110 11:13:31.648651 DicomUserConnection.cpp:1353] Default timeout for DICOM connections if Orthanc acts as SCU (client): 10 seconds (0 = no timeout)

I0110 11:13:31.648960 ServerIndex.cpp:481] Starting the database flushing thread (sleep = 10)

I0110 11:13:31.649016 ServerIndex.cpp:2069] Starting the monitor for stable resources (stable age = 60)

I0110 11:13:31.649308 LuaJobManager.cpp:76] Lua: DICOM associations will be closed after 5 seconds of inactivity

I0110 11:13:31.649336 LuaScripting.cpp:625] Initializing Lua for the event handler

W0110 11:13:31.649536 LuaContext.cpp:104] Lua says: Lua toolbox installed

I0110 11:13:31.649686 LuaJobManager.cpp:76] Lua: DICOM associations will be closed after 5 seconds of inactivity

I0110 11:13:31.649707 LuaScripting.cpp:625] Initializing Lua for the event handler

W0110 11:13:31.649834 LuaContext.cpp:104] Lua says: Lua toolbox installed

W0110 11:13:31.649916 ServerContext.cpp:318] Disk compression is disabled

I0110 11:13:31.649932 ServerContext.cpp:678] Storing MD5 for attachments: yes

W0110 11:13:31.649947 ServerIndex.cpp:1613] No limit on the number of stored patients

W0110 11:13:31.649967 ServerIndex.cpp:1630] No limit on the size of the storage area

W0110 11:13:31.650384 ServerContext.cpp:168] Reloading the jobs from the last execution of Orthanc

I0110 11:13:31.650570 JobsEngine.cpp:136] Worker thread 0 has started

W0110 11:13:31.650581 JobsEngine.cpp:283] The jobs engine has started with 2 threads

I0110 11:13:31.650885 JobsEngine.cpp:136] Worker thread 1 has started

I0110 11:13:31.650923 DicomServer.cpp:125] Setting timeout for DICOM connections if Orthanc acts as SCP (server): 30 seconds (0 = no timeout)

W0110 11:13:31.651589 main.cpp:1008] DICOM server listening with AET ORTHANC on port: 4242

I0110 11:13:31.651608 DicomServer.cpp:62] DICOM server started

I0110 11:13:31.651655 HttpServer.cpp:1083] This Orthanc server uses CivetWeb as its embedded HTTP server

I0110 11:13:31.651683 HttpServer.cpp:1327] The embedded HTTP server will use 50 threads

I0110 11:13:31.651714 HttpServer.cpp:1243] HTTP keep alive is enabled

W0110 11:13:31.651737 HttpServer.cpp:1276] HTTP compression is enabled

I0110 11:13:31.651760 HttpServer.cpp:1335] TCP_NODELAY for the HTTP sockets is set to true

I0110 11:13:31.651782 HttpServer.cpp:1350] Request timeout in the HTTP server is set to 30 seconds

W0110 11:13:31.651813 main.cpp:912] Remote LUA script execution is disabled

I0110 11:13:31.651831 HttpServer.cpp:1115] Starting embedded Web server using Civetweb

W0110 11:13:31.655697 HttpServer.cpp:1183] HTTP server listening on port: 8042 (HTTPS encryption is disabled, remote access is not allowed)

W0110 11:13:31.655760 main.cpp:715] Orthanc has started

I0110 11:13:31.655779 LuaScripting.cpp:682] Starting the Lua engine

which seems to be working. There is a possibility that something else is blocking my access, but I’m not sure what that would be or how I could identify it. I’m hoping that someone here can help me on the right path. I’d first like to verify that my install is complete. Then figure out how to see if it’s running from the browser. Like I said, my biggest challenge is that I have to do everything remotely.

The server is already running apache and tomcat, it does have access to the web. Those two services are running on port 80, tomcat has a reverse proxy setup. I think I’m going to need to do the same just to test this possibly.

Hi John.

Your demore access is disabled. Show the log output:

HTTP server listening on port: 8042 (HTTPS encryption is disabled, remote access is not allowed)

You can enable the http access on your .json config file changing RemoteAccessAllowed" to true.

Best regards.

Hi Fernando, I tried setting RemoteAccessAllowed = true, but I’m still having no luck. I’d like to be able to reach it by IP:port, do I need to specify the incoming source anywhere? Or should anything coming into the machine on port 8042 (the default port) load up orthanc? Right now when I try it in my browser, the request seems to time out.

And before it’s asked, I’m making the requests while Orthanc is running. I feel like I’ve likely got something very small that’s causing me these issues.

The server is already running apache and tomcat, - errr is there some clash with the installed Tomcat?

I would start with a fresh VM without any existing install. I may be very wrong.

can you post the .json config file? And can you try to request orthanc inside the server? Try something like “curl http://localhost:8042” inside server to make sure that issue is not on orthanc configuration.