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.