OrthancExplorer2 not being used as default UI

Hi,

I have two somewhat related questions about the Orthanc Explorer 2 UI.

  1. Is it possible to disable the legacy UI altogether and ONLY use OE2?
  2. Even if the former isn’t possible, I have OE2 set as the default Orthanc UI but when I access Orthanc in the browser it always opens into the Legacy UI

Here is the relevant config:

{
  ...,
  "OrthancExplorer2" : {
    "Enable": true,
    "IsDefaultOrthancUI": true,
    "Theme": "light"
  }
}

And I don’t see anything in the logging that suggests any issues loading the config files. Any ideas? Happy to provide any other relevant info about my setup.

Here is the log:

W1129 01:13:19.425963             MAIN main.cpp:2174] Orthanc version: 1.12.10
W1129 01:13:19.426076             MAIN OrthancConfiguration.cpp:110] Scanning folder "/etc/orthanc/" for configuration files
W1129 01:13:19.426131             MAIN OrthancConfiguration.cpp:59] Reading the configuration from: /etc/orthanc/credentials.json
W1129 01:13:19.426243             MAIN OrthancConfiguration.cpp:59] Reading the configuration from: /etc/orthanc/http.json
W1129 01:13:19.426298             MAIN OrthancConfiguration.cpp:59] Reading the configuration from: /etc/orthanc/orthanc.json
W1129 01:13:19.426353             MAIN OrthancConfiguration.cpp:59] Reading the configuration from: /etc/orthanc/dicom.json
W1129 01:13:19.616628             MAIN main.cpp:966] Loading plugin(s) from: "/usr/share/orthanc/plugins/libOrthancWebViewer.so"
W1129 01:13:19.618719             MAIN PluginsManager.cpp:287] Registering plugin 'web-viewer' (version 2.8)
W1129 01:13:19.618747             MAIN PluginsManager.cpp:159] Initializing the Web viewer
W1129 01:13:19.618836             MAIN PluginsManager.cpp:159] Web viewer using 2 threads for the decoding of the DICOM images
W1129 01:13:19.618846             MAIN PluginsManager.cpp:159] Storing the cache of the Web viewer in folder: /home/matt/Orthanc/storage/WebViewerCache
W1129 01:13:19.619320             MAIN PluginsManager.cpp:159] Web viewer using a cache of 100 MB
W1129 01:13:19.619364             MAIN main.cpp:966] Loading plugin(s) from: "/usr/share/orthanc/plugins/libStoneWebViewer.so"
W1129 01:13:19.619800             MAIN PluginsManager.cpp:287] Registering plugin 'stone-webviewer' (version mainline)
W1129 01:13:19.619852             MAIN main.cpp:966] Loading plugin(s) from: "/usr/share/orthanc/plugins/libOrthancDicomWeb.so"
W1129 01:13:19.622011             MAIN PluginsManager.cpp:287] Registering plugin 'dicom-web' (version 1.7)
W1129 01:13:19.622122             MAIN PluginsManager.cpp:159] URI to the DICOMweb REST API: /dicom-web/
W1129 01:13:19.622310             MAIN PluginsManager.cpp:159] URI to the WADO-URI API: /wado
W1129 01:13:19.622319             MAIN main.cpp:966] Loading plugin(s) from: "/usr/share/orthanc/plugins/libOrthancExplorer2.so"
W1129 01:13:19.622587             MAIN PluginsManager.cpp:287] Registering plugin 'orthanc-explorer-2' (version mainline)
W1129 01:13:19.622833             MAIN PluginsManager.cpp:159] Root URI to the Orthanc-Explorer 2 application: /ui/
W1129 01:13:19.622935             MAIN OrthancInitialization.cpp:445] SQLite index directory: /home/matt/Orthanc/storage
W1129 01:13:19.623071             MAIN OrthancInitialization.cpp:531] Storage directory: /home/matt/Orthanc/storage
W1129 01:13:19.633272             MAIN HttpClient.cpp:1201] No certificates are provided to validate peers.  Orthanc will use the native CA store. Set "HttpsCACertificates" if you need to do HTTPS requests and use custom CAs.
W1129 01:13:19.633568             MAIN LuaContext.cpp:95] Lua says: Lua toolbox installed
W1129 01:13:19.633706             MAIN LuaContext.cpp:95] Lua says: Lua toolbox installed
W1129 01:13:19.633942             MAIN ServerContext.cpp:610] Disk compression is disabled
W1129 01:13:19.633994             MAIN ServerIndex.cpp:402] No limit on the number of stored patients
W1129 01:13:19.633998             MAIN ServerIndex.cpp:422] No limit on the size of the storage area
W1129 01:13:19.634310             MAIN ServerContext.cpp:285] Reloading the jobs from the last execution of Orthanc
W1129 01:13:19.634379             MAIN JobsEngine.cpp:276] The jobs engine has started with 2 threads
W1129 01:13:19.634640             MAIN main.cpp:1389] DICOM server listening with AET ORTHANC on port: 4242
W1129 01:13:19.634781             MAIN HttpServer.cpp:2191] HTTP compression is disabled
W1129 01:13:19.634812             MAIN main.cpp:1237] Remote LUA script execution is disabled
W1129 01:13:19.634854             MAIN main.cpp:1249] REST API cannot write to the file system because the "RestApiWriteToFileSystemEnabled" configuration is set to false.  The URI /instances/../export is disabled.  This is the most secure configuration.
W1129 01:13:19.637059             MAIN HttpServer.cpp:1936] HTTP server listening on port: 8042 (HTTPS encryption is disabled, remote access is allowed)
W1129 01:13:19.637138             MAIN main.cpp:978] Orthanc has started

Hello,

What is the URL you use to reach Orthanc?

Do you have something in front of Orthanc (Nginx,…) ?

Regards,

Hello,

No, because some plugins depend on JavaScript libraries that are shipped with the Orthanc Explorer user interface. The latter interface is used throughout the core development of Orthanc.

By default, the Orthanc Explorer 2 plugin will replace the Orthanc Explorer (i.e., there is no need to explicitly set IsDefaultOrthancUI to true), by replacing the / path in the REST API of Orthanc as a redirection to itself. You are presumably observing a cache effect in your Web browser (try to start the browser in private mode), or a bad configuration of a reverse proxy that overwrites the redirection to the root path of Orthanc.

Regards,
Sébastien-

Hi both - thanks for the responses.

Indeed, I do have nginx in front of Orthanc as a reverse proxy. Is this potentially causing an issue?

Here is my current nginx.conf:

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    server {
    listen 80 default_server;
    location /orthanc/ {
        proxy_pass http://127.0.0.1:8042;
        proxy_set_header HOST $host;
        proxy_set_header X-Real-IP $remote_addr;
        rewrite /orthanc(.*) $1 break;
        }
    }
}

Any obvious issues that might be redirecting to the Legacy UI? My guess is I need to change proxy_pass http://127.0.0.1:8042 to proxy_pass http://127.0.0.1:8042/ui/app/

Update: Looks like that worked. nginx is now redirecting to OE2.