Export problem from machine to orthanc

Hi,

I am using orthanc on windows platform. I am experiencing a few problems which are listed below: -

  1. I transferred one study from an echo machine to Orthanc and then did few more measurements on the same study. When again I sent the study with additional images machine said exported but not seen in the folder. Tried to send the entire study again but have not seen the additional images. So, is there an option or configuration to do this??

  2. A study with 3D images doesn’t get SR data exported from the echo machine to the orthanc along with images, also study gets exported only if it is open and all images are selected. Normally I just have to select study and export from echo machine to orthanc.

  3. Is there any option to change length measurement from pixel to cm or mm unit on osimis web
    viewer plugin.

Thanks,
Avijit

Hello,

1- You are most probably looking for the OverwriteInstances configuration option of Orthanc:

  // Specifies how Orthanc reacts when it receives a DICOM instance
  // whose SOPInstanceUID is already stored. If set to "true", the new
  // instance replaces the old one. If set to "false", the new
  // instance is discarded and the old one is kept. Up to Orthanc
  // 1.4.1, the implicit behavior corresponded to "false".
  "OverwriteInstances" : false,

2- If your imaging modality doesn’t send the SR series, you should get in touch with the technical support of your vendor. You pay them to solve such configuration issues.

3- The Osimis Web viewer has been unmaintained for several years now. You should be using the Stone Web viewer.

Kind Regards,
Sébastien-

Hi Sébastien,

Apologies for the delayed reply.

  1. It is now functioning.

  2. We will consult the technician.

  3. We switched to the Osimis WebViewer due to slow performance with the Stone WebViewer on our network. However, I have recently begun integrating the OHIF WebViewer on my local orthanc server. While the OHIF WebViewer has many advantages, I am currently experiencing some issues, such as: -

i. Cross Origin Isolation
Cross Origin Isolation is not enabled, volume rendering will not work (e.g., MPR)
ii. DICOM SR
OHIF only supports TID1500 Imaging Measurement Report Structured Reports. The SR you’re trying to view is not supported.

I have already explored forums, but I am struggling to understand how to execute it on localhost.
Could you please guide me on the most straightforward way to address the above concerns.

Thanks,

Hello @jodogne,

I have resolved the issue of i. Cross Origin Isolation by using localhost in the local URL and HTTPS in the domain URL. However, I am still encountering difficulties with ii. DICOM SR. I have been facing this for quite some time, and I am stuck in my work. I understand you have a busy schedule, but could you please assist me in resolving this issue as well? Your help would be greatly appreciated.

Thanks,

Hello,

If you don’t provide us with a minimal working example (which includes sample DICOM files), nobody will be able to assist you, including myself.

Regards,
Sébastien-

Hello,

Apologies for the delayed response. I will do my best to explain the issue.

I am currently using Windows 11 OS, and I have installed Orthanc version 1.12.1.

When attempting to view a study on the OHIF web viewer, I encounter an error: -

ii. DICOM SR
OHIF only supports TID1500 Imaging Measurement Report Structured Reports. The SR you’re trying to view is not supported.

For your assistance, I have included the complete logs generated by Orthanc in verbose mode, along with a screenshot and the dcm file that I am attempting to view.

Dicom File: -

SR000000.dcm (296.2 KB)

Logs: -

W1228 12:11:00.492025 main.cpp:2034] Orthanc version: 1.12.1
I1228 12:11:00.494023 main.cpp:2066] Architecture: 64-bit, little endian
W1228 12:11:00.495023 OrthancConfiguration.cpp:57] Reading the configuration from: "Configuration/orthanc.json"
I1228 12:11:00.748639 PluginsManager.cpp:303] (plugins) Found a shared library: "C:\Program Files\Orthanc Server\Plugins\libOrthancOHIF-Windows64.dll"
W1228 12:11:00.753645 PluginsManager.cpp:261] Registering plugin 'ohif' (version 1.0)
I1228 12:11:00.757639 OrthancPlugins.cpp:2739] (plugins) Plugin has registered a REST callback without mutual exclusion on: /ohif
I1228 12:11:00.760527 OrthancPlugins.cpp:2739] (plugins) Plugin has registered a REST callback without mutual exclusion on: /ohif/(.*)
I1228 12:11:00.763528 OrthancPlugins.cpp:2739] (plugins) Plugin has registered a REST callback without mutual exclusion on: /studies/([0-9a-f-]+)/ohif-dicom-json
I1228 12:11:00.866630 PluginsManager.cpp:303] (plugins) Found a shared library: "C:\Program Files\Orthanc Server\Plugins\OrthancDicomWeb.dll"
W1228 12:11:00.870782 PluginsManager.cpp:261] Registering plugin 'dicom-web' (version 1.14)
I1228 12:11:00.872630 PluginsManager.cpp:161] (plugins) The DICOMweb plugin reads the DICOMweb servers from the configuration file
I1228 12:11:00.933414 OrthancPlugins.cpp:2739] (plugins) Plugin has registered a REST callback without mutual exclusion on: /dicom-web/servers
I1228 12:11:00.938437 OrthancPlugins.cpp:2739] (plugins) Plugin has registered a REST callback without mutual exclusion on: /dicom-web/servers/([^/]*)
I1228 12:11:00.941413 OrthancPlugins.cpp:2739] (plugins) Plugin has registered a REST callback without mutual exclusion on: /dicom-web/servers/([^/]*)/stow
I1228 12:11:00.944659 OrthancPlugins.cpp:2739] (plugins) Plugin has registered a REST callback without mutual exclusion on: /dicom-web/servers/([^/]*)/wado
I1228 12:11:00.947658 OrthancPlugins.cpp:2739] (plugins) Plugin has registered a REST callback without mutual exclusion on: /dicom-web/servers/([^/]*)/get
I1228 12:11:00.950658 OrthancPlugins.cpp:2739] (plugins) Plugin has registered a REST callback without mutual exclusion on: /dicom-web/servers/([^/]*)/retrieve
I1228 12:11:00.955989 OrthancPlugins.cpp:2739] (plugins) Plugin has registered a REST callback without mutual exclusion on: /dicom-web/servers/([^/]*)/qido
I1228 12:11:00.957988 OrthancPlugins.cpp:2739] (plugins) Plugin has registered a REST callback without mutual exclusion on: /dicom-web/servers/([^/]*)/delete
I1228 12:11:00.961988 OrthancPlugins.cpp:2739] (plugins) Plugin has registered a REST callback without mutual exclusion on: /dicom-web/app/libs/(.*)
I1228 12:11:00.964988 OrthancPlugins.cpp:2739] (plugins) Plugin has registered a REST callback without mutual exclusion on: /dicom-web/info
I1228 12:11:00.968990 OrthancPlugins.cpp:2739] (plugins) Plugin has registered a REST callback without mutual exclusion on: /dicom-web/studies/([^/]*)/rendered
I1228 12:11:00.975991 OrthancPlugins.cpp:2739] (plugins) Plugin has registered a REST callback without mutual exclusion on: /dicom-web/studies/([^/]*)/series/([^/]*)/rendered
I1228 12:11:01.419883 LuaJobManager.cpp:68] (lua) Lua: DICOM associations will be closed after 5 seconds of inactivity
I1228 12:11:01.423885 LuaScripting.cpp:774] Initializing Lua for the event handler
W1228 12:11:01.424884 LuaContext.cpp:94] Lua says: Lua toolbox installed
I1228 12:11:01.426883 ServerContext.cpp:410] Automated transcoding of incoming DICOM instances is disabled
I1228 12:11:01.428882 ServerContext.cpp:417] (dicom) Deidentification of log contents (notably for DIMSE queries) is enabled
I1228 12:11:01.431884 ServerContext.cpp:421] (dicom) Version of DICOM standard used for deidentification is 2023b
I1228 12:11:01.433882 ServerContext.cpp:440] (dicom) Preferred transfer syntax for Orthanc C-STORE SCU: 1.2.840.10008.1.2.1
I1228 12:11:01.436884 ServerContext.cpp:457] Your platform does not support malloc_trim(), not starting the memory trimming thread
I1228 12:11:01.440152 DcmtkTranscoder.cpp:76] Quality for lossy transcoding using DCMTK is set to: 90
W1228 12:11:01.442149 ServerContext.cpp:527] Disk compression is disabled
I1228 12:11:01.444057 ServerContext.cpp:1318] Storing MD5 for attachments: yes
W1228 12:11:01.446079 ServerIndex.cpp:381] No limit on the number of stored patients
W1228 12:11:01.447079 ServerIndex.cpp:401] No limit on the size of the storage area
W1228 12:11:01.449079 ServerIndex.cpp:420] Maximum Storage mode: Recycle
W1228 12:11:01.451079 ServerContext.cpp:256] Reloading the jobs from the last execution of Orthanc
W1228 12:11:01.453220 JobsEngine.cpp:272] The jobs engine has started with 2 threads
I1228 12:11:01.454390 JobsEngine.cpp:126] (jobs) Worker thread 0 has started
I1228 12:11:01.454390 JobsEngine.cpp:126] (jobs) Worker thread 1 has started
I1228 12:11:01.456427 DicomServer.cpp:134] (dicom) Setting timeout for DICOM connections if Orthanc acts as SCP (server): 30 seconds (0 = no timeout)
I1228 12:11:01.463406 DicomServer.cpp:422] (dicom) Orthanc SCP will *not* use DICOM TLS
I1228 12:11:01.464408 DicomServer.cpp:430] (dicom) The embedded DICOM server will use 4 threads
W1228 12:11:01.467389 main.cpp:1317] DICOM server listening with AET ORTHANC on port: 4242
I1228 12:11:01.468406 DicomServer.cpp:64] (dicom) DICOM server started
I1228 12:11:01.470390 HttpServer.cpp:1604] (http) This Orthanc server uses CivetWeb as its embedded HTTP server
I1228 12:11:01.477560 HttpServer.cpp:2112] (http) The embedded HTTP server will use 50 threads
I1228 12:11:01.479562 HttpServer.cpp:1953] (http) HTTP keep alive is enabled
I1228 12:11:01.481559 HttpServer.cpp:1967] (http) HTTP keep alive Timeout is now 1 seconds
W1228 12:11:01.484719 HttpServer.cpp:2036] HTTP compression is enabled
I1228 12:11:01.485717 HttpServer.cpp:2125] (http) TCP_NODELAY for the HTTP sockets is set to true
I1228 12:11:01.487715 HttpServer.cpp:2145] (http) Request timeout in the HTTP server is set to 30 seconds
I1228 12:11:01.489715 main.cpp:1161] Version of Lua: Lua 5.3
W1228 12:11:01.490715 main.cpp:1172] Remote LUA script execution is disabled
W1228 12:11:01.492884 main.cpp:1184] REST API cannot write to the file system.
I1228 12:11:01.493884 HttpServer.cpp:2192] (http) Branching WebDAV bucket at: /webdav
I1228 12:11:01.495885 HttpServer.cpp:1649] (http) Starting embedded Web server using Civetweb
I1228 12:11:01.498885 OrthancWebDav.cpp:1696] Starting the WebDAV upload thread
W1228 12:11:01.501190 HttpServer.cpp:1794] HTTP server listening on port: 8042 (HTTPS encryption is disabled, remote access is not allowed)
W1228 12:11:01.504386 main.cpp:923] Orthanc has started
I1228 12:11:01.505393 PluginsManager.cpp:161] (plugins) Started the OHIF preload thread
I1228 12:11:01.507392 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /plugins/dicom-web (built-in API)
W1228 12:11:01.519394 PluginsManager.cpp:157] When using OE2 and the authorization plugin together, you must set 'Authorization.CheckedLevel' to 'studies'.  Unless you are using this orthanc only to generate tokens.
I1228 12:11:01.599597 LuaScripting.cpp:868] Starting the Lua engine
I1228 12:11:10.743410 HttpServer.cpp:1262] (http) GET /ohif/viewer
I1228 12:11:10.747279 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/viewer
I1228 12:11:10.771563 HttpServer.cpp:1262] (http) GET /ohif/app-config.js
I1228 12:11:10.779559 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/app-config.js
I1228 12:11:10.772559 HttpServer.cpp:1262] (http) GET /ohif/init-service-worker.js
I1228 12:11:10.787557 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/init-service-worker.js
I1228 12:11:10.785560 HttpServer.cpp:1262] (http) GET /ohif/app.bundle.css
I1228 12:11:10.802565 HttpServer.cpp:1262] (http) GET /ohif/app.bundle.599d31514539ffe1c788.js
I1228 12:11:10.803563 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/app.bundle.css
I1228 12:11:10.805562 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/app.bundle.599d31514539ffe1c788.js
I1228 12:11:11.269930 HttpServer.cpp:1262] (http) GET /ohif/935.bundle.deeffff0e4f7b528e3c3.js
I1228 12:11:11.270928 HttpServer.cpp:1262] (http) GET /ohif/151.bundle.31ea35044218837bf73f.js
I1228 12:11:11.271927 HttpServer.cpp:1262] (http) GET /ohif/82.bundle.e4f525e07cf2c10d9fc8.js
I1228 12:11:11.274927 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/935.bundle.deeffff0e4f7b528e3c3.js
I1228 12:11:11.280925 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/151.bundle.31ea35044218837bf73f.js
I1228 12:11:11.287928 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/82.bundle.e4f525e07cf2c10d9fc8.js
I1228 12:11:11.301935 HttpServer.cpp:1262] (http) GET /ohif/806.css
I1228 12:11:11.316448 HttpServer.cpp:1262] (http) GET /ohif/707.css
I1228 12:11:11.330445 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/806.css
I1228 12:11:11.331445 HttpServer.cpp:1262] (http) GET /ohif/780.bundle.fd0f13dc92e9caa0581e.js
I1228 12:11:11.334444 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/707.css
I1228 12:11:11.342445 HttpServer.cpp:1262] (http) GET /ohif/381.bundle.0905e683605fcbc0895f.js
I1228 12:11:11.346446 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/780.bundle.fd0f13dc92e9caa0581e.js
I1228 12:11:11.353446 HttpServer.cpp:1262] (http) GET /ohif/331.bundle.bd0c13931a21d53086c9.js
I1228 12:11:11.358443 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/381.bundle.0905e683605fcbc0895f.js
I1228 12:11:11.372445 HttpServer.cpp:1262] (http) GET /ohif/270.bundle.4564621556b0f963a004.js
I1228 12:11:11.373445 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/331.bundle.bd0c13931a21d53086c9.js
I1228 12:11:11.384444 HttpServer.cpp:1262] (http) GET /ohif/728.bundle.d13856835357400fef82.js
I1228 12:11:11.388445 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/270.bundle.4564621556b0f963a004.js
I1228 12:11:11.402450 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/728.bundle.d13856835357400fef82.js
I1228 12:11:11.451476 HttpServer.cpp:1262] (http) GET /ohif/707.bundle.f094a10c961fc8e152de.js
I1228 12:11:11.455474 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/707.bundle.f094a10c961fc8e152de.js
I1228 12:11:11.612984 HttpServer.cpp:1262] (http) GET /ohif/664.bundle.09abae984223969d1bde.js
I1228 12:11:11.612984 HttpServer.cpp:1262] (http) GET /ohif/351.bundle.2d4bc19d8b493879dbbe.js
I1228 12:11:11.615982 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/664.bundle.09abae984223969d1bde.js
I1228 12:11:11.617982 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/351.bundle.2d4bc19d8b493879dbbe.js
I1228 12:11:11.714903 HttpServer.cpp:1262] (http) GET /ohif/192.bundle.7d856cb20aba84cf8768.js
I1228 12:11:11.717925 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/192.bundle.7d856cb20aba84cf8768.js
I1228 12:11:11.715902 HttpServer.cpp:1262] (http) GET /ohif/973.bundle.7d9109d7a665f3be07cc.js
I1228 12:11:11.723903 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/973.bundle.7d9109d7a665f3be07cc.js
I1228 12:11:11.715902 HttpServer.cpp:1262] (http) GET /ohif/404.bundle.2108f848f8046ea1418f.js
I1228 12:11:11.729900 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/404.bundle.2108f848f8046ea1418f.js
I1228 12:11:11.745904 HttpServer.cpp:1262] (http) GET /ohif/606.bundle.5d876f5f3dd8287f0a28.js
I1228 12:11:11.745904 HttpServer.cpp:1262] (http) GET /ohif/531.bundle.2a82fb1d69e5b57cc72b.js
I1228 12:11:11.746902 HttpServer.cpp:1262] (http) GET /ohif/984.bundle.8037db02455809293521.js
I1228 12:11:11.746902 HttpServer.cpp:1262] (http) GET /ohif/744.bundle.94a8214a295a2b44450d.js
I1228 12:11:11.746902 HttpServer.cpp:1262] (http) GET /ohif/616.bundle.6a8bba390a0bd1e8a74c.js
I1228 12:11:11.757993 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/616.bundle.6a8bba390a0bd1e8a74c.js
I1228 12:11:11.750900 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/531.bundle.2a82fb1d69e5b57cc72b.js
I1228 12:11:11.753901 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/984.bundle.8037db02455809293521.js
I1228 12:11:11.755901 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/744.bundle.94a8214a295a2b44450d.js
I1228 12:11:11.748903 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/606.bundle.5d876f5f3dd8287f0a28.js
I1228 12:11:11.763706 HttpServer.cpp:1262] (http) GET /ohif/199.bundle.5641e23dd77145e03338.js
I1228 12:11:11.775707 HttpServer.cpp:1262] (http) GET /ohif/642.bundle.01de8ebc3f28ade76fe0.js
I1228 12:11:11.787705 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/642.bundle.01de8ebc3f28ade76fe0.js
I1228 12:11:11.779712 HttpServer.cpp:1262] (http) GET /ohif/569.bundle.0ed8d8178ffd43fe1c34.js
I1228 12:11:11.786707 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/199.bundle.5641e23dd77145e03338.js
I1228 12:11:11.775707 HttpServer.cpp:1262] (http) GET /ohif/917.bundle.b0a513987ccda76b9bac.js
I1228 12:11:11.791706 HttpServer.cpp:1262] (http) GET /ohif/953.bundle.9e3a7225f07336bfcb41.js
I1228 12:11:11.792705 HttpServer.cpp:1262] (http) GET /ohif/799.bundle.ca18bdf4abe4d9abea26.js
I1228 12:11:11.795714 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/569.bundle.0ed8d8178ffd43fe1c34.js
I1228 12:11:11.800710 HttpServer.cpp:1262] (http) GET /ohif/295.bundle.957b1159fec14b9199a1.js
I1228 12:11:11.802712 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/917.bundle.b0a513987ccda76b9bac.js
I1228 12:11:11.805709 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/953.bundle.9e3a7225f07336bfcb41.js
I1228 12:11:11.807727 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/799.bundle.ca18bdf4abe4d9abea26.js
I1228 12:11:11.813734 HttpServer.cpp:1262] (http) GET /ohif/581.bundle.360d26f97b37da8faec3.js
I1228 12:11:11.813734 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/295.bundle.957b1159fec14b9199a1.js
I1228 12:11:11.820024 HttpServer.cpp:1262] (http) GET /ohif/205.bundle.b5a473c200dcf2bbcdb4.js
I1228 12:11:11.837019 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/205.bundle.b5a473c200dcf2bbcdb4.js
I1228 12:11:11.830020 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/581.bundle.360d26f97b37da8faec3.js
I1228 12:11:11.825022 HttpServer.cpp:1262] (http) GET /studies/8db0295f-7d17dc62-69d2f591-ec70c696-5512cef5/ohif-dicom-json
I1228 12:11:11.848018 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /studies/8db0295f-7d17dc62-69d2f591-ec70c696-5512cef5/ohif-dicom-json
I1228 12:11:11.851017 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /studies/8db0295f-7d17dc62-69d2f591-ec70c696-5512cef5/instances (built-in API)
I1228 12:11:11.856039 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/2e8389d1-fef587b2-d9bef3fb-19606f3f-83d598cc/metadata/4202 (built-in API)
I1228 12:11:11.860021 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/6f6a68fd-aa33a125-c7f83586-ba090fdc-633870c7/metadata/4202 (built-in API)
I1228 12:11:11.864338 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/4e83281f-ac7707e3-22d807c9-ea5965c6-20931cac/metadata/4202 (built-in API)
I1228 12:11:11.867342 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/d826adf6-1075948e-9e9ac81c-cbbda2d1-e7cc904a/metadata/4202 (built-in API)
I1228 12:11:11.871796 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/76a059dd-c68af667-3c86d012-7ed3da1a-e1b7b2e8/metadata/4202 (built-in API)
I1228 12:11:11.875796 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/cf5ecfcf-66823dbe-c1829cea-dd0fb1b2-bd84123b/metadata/4202 (built-in API)
I1228 12:11:11.879797 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/363a0256-a49e8a17-c0e2fd86-f57fc87f-abd346a1/metadata/4202 (built-in API)
I1228 12:11:11.883796 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/6b8cf35b-ebea13be-ac470ed0-821c7b7c-2efdd6cb/metadata/4202 (built-in API)
I1228 12:11:11.887649 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/5299c659-c56ae763-d0425282-003e7a7a-b6c9ecc3/metadata/4202 (built-in API)
I1228 12:11:11.891652 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/83fcaecf-084239ba-0ca5f20a-9a6dd7ac-f7fd393c/metadata/4202 (built-in API)
I1228 12:11:11.896661 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/6c163a47-c9511c81-a5171e51-4880897e-3efa1331/metadata/4202 (built-in API)
I1228 12:11:11.899661 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/2872705b-bf4a2a03-bee98eb0-fb3f760c-a0ca558a/metadata/4202 (built-in API)
I1228 12:11:11.903679 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/3a830e0c-33cffc98-6e227adf-27fdceef-643acc45/metadata/4202 (built-in API)
I1228 12:11:11.908921 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/69e60ab7-51a52a24-e956d63b-f2776b91-ff923da7/metadata/4202 (built-in API)
I1228 12:11:11.912921 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/12fce05c-1b1654d9-76227560-a83e76a1-46c5b8a7/metadata/4202 (built-in API)
I1228 12:11:11.915926 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/e2a9c452-6a21a67c-e3e8b97e-37063bc2-2f120be2/metadata/4202 (built-in API)
I1228 12:11:11.921921 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/dc8aedf6-ac0a191b-4f9f52d9-5d1d47c4-f511d4be/metadata/4202 (built-in API)
I1228 12:11:11.925922 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/fde45ae9-c507e86e-3b18b60a-d57daecd-2c0be302/metadata/4202 (built-in API)
I1228 12:11:11.928926 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/8ef1a0c5-c7f3c389-2de0a33f-f0377b29-eaac8f6d/metadata/4202 (built-in API)
I1228 12:11:11.932922 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/11ea871a-b5f1a0a9-259d0fbc-aa56ead0-c6c9cb5e/metadata/4202 (built-in API)
I1228 12:11:11.937921 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/10d3b0c5-15f15013-745390c6-b9b39899-5a726e97/metadata/4202 (built-in API)
I1228 12:11:11.940921 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/541e2455-66367713-f73290ba-7a9a1849-335114b1/metadata/4202 (built-in API)
I1228 12:11:11.946939 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/f94fc2b4-4b65dd48-08c24eb2-a6767611-7f16e6e2/metadata/4202 (built-in API)
I1228 12:11:11.949938 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/8d5d52e9-79bddb04-8b6ded5a-af2ff4c7-5628511b/metadata/4202 (built-in API)
I1228 12:11:11.956922 OrthancPlugins.cpp:3172] (plugins) Plugin making REST GET call on URI /instances/1157ba77-fc8250b0-195eeefa-b0454ca0-cbf64df9/metadata/4202 (built-in API)
I1228 12:11:11.983957 HttpServer.cpp:1262] (http) GET /instances/3a830e0c-33cffc98-6e227adf-27fdceef-643acc45/file
I1228 12:11:11.985955 FilesystemStorage.cpp:161] Reading attachment "7dcd5157-a77b-4cce-8280-22fd36cdc02e" of "DICOM" content type
I1228 12:11:12.013606 HttpServer.cpp:1262] (http) GET /ohif/manifest.json
I1228 12:11:12.015608 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/manifest.json
I1228 12:11:12.023609 HttpServer.cpp:1262] (http) GET /assets/android-chrome-144x144.png
I1228 12:11:12.027611 HttpServer.cpp:1262] (http) GET /ohif/351.css
I1228 12:11:12.032618 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/351.css
I1228 12:11:12.070874 HttpServer.cpp:1262] (http) GET /instances/2e8389d1-fef587b2-d9bef3fb-19606f3f-83d598cc/file
I1228 12:11:12.075837 FilesystemStorage.cpp:161] Reading attachment "70216406-e879-48fb-ba9c-b4e089cf069b" of "DICOM" content type
I1228 12:11:12.094454 HttpServer.cpp:1262] (http) GET /ohif/index.worker.ea71efba2ce63c499055.worker.js
I1228 12:11:12.100402 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/index.worker.ea71efba2ce63c499055.worker.js
I1228 12:11:12.124186 HttpServer.cpp:1262] (http) GET /ohif/index.worker.ea71efba2ce63c499055.worker.js
I1228 12:11:12.131183 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/index.worker.ea71efba2ce63c499055.worker.js
I1228 12:11:12.184428 HttpServer.cpp:1262] (http) GET /instances/6f6a68fd-aa33a125-c7f83586-ba090fdc-633870c7/file
I1228 12:11:12.185428 HttpServer.cpp:1262] (http) GET /instances/4e83281f-ac7707e3-22d807c9-ea5965c6-20931cac/file
I1228 12:11:12.185428 HttpServer.cpp:1262] (http) GET /instances/d826adf6-1075948e-9e9ac81c-cbbda2d1-e7cc904a/file
I1228 12:11:12.186430 HttpServer.cpp:1262] (http) GET /instances/76a059dd-c68af667-3c86d012-7ed3da1a-e1b7b2e8/file
I1228 12:11:12.187430 HttpServer.cpp:1262] (http) GET /instances/cf5ecfcf-66823dbe-c1829cea-dd0fb1b2-bd84123b/file
I1228 12:11:12.187430 HttpServer.cpp:1262] (http) GET /instances/363a0256-a49e8a17-c0e2fd86-f57fc87f-abd346a1/file
I1228 12:11:12.189428 FilesystemStorage.cpp:161] Reading attachment "ea305b3d-a206-49cc-ba6a-1047a23732f4" of "DICOM" content type
I1228 12:11:12.194437 FilesystemStorage.cpp:161] Reading attachment "476b3306-9891-4684-9c12-71f289bd7356" of "DICOM" content type
I1228 12:11:12.201442 FilesystemStorage.cpp:161] Reading attachment "1f9d0cb1-c43f-4256-9b52-91a67e183b2a" of "DICOM" content type
I1228 12:11:12.212400 FilesystemStorage.cpp:161] Reading attachment "8f9a7aa1-b31c-48b4-8b60-70e75a3faec5" of "DICOM" content type
I1228 12:11:12.220456 FilesystemStorage.cpp:161] Reading attachment "fdb55c1a-68d2-4865-b8fd-5eb00903be2b" of "DICOM" content type
I1228 12:11:12.226454 FilesystemStorage.cpp:161] Reading attachment "54b733cc-01fc-4177-b02b-6ec7a4e01691" of "DICOM" content type
I1228 12:11:12.267488 HttpServer.cpp:1262] (http) GET /instances/6b8cf35b-ebea13be-ac470ed0-821c7b7c-2efdd6cb/file
I1228 12:11:12.285355 HttpServer.cpp:1262] (http) GET /instances/5299c659-c56ae763-d0425282-003e7a7a-b6c9ecc3/file
I1228 12:11:12.290117 HttpServer.cpp:1262] (http) GET /instances/83fcaecf-084239ba-0ca5f20a-9a6dd7ac-f7fd393c/file
I1228 12:11:12.301331 FilesystemStorage.cpp:161] Reading attachment "930d29c6-c5c5-40ae-bbfc-b5b79ac5beab" of "DICOM" content type
I1228 12:11:12.306529 FilesystemStorage.cpp:161] Reading attachment "808832db-3cae-432c-ac92-af1c83550833" of "DICOM" content type
I1228 12:11:12.313145 FilesystemStorage.cpp:161] Reading attachment "09bd4266-69da-4cff-93f2-753128c5f5b3" of "DICOM" content type
I1228 12:11:12.333523 HttpServer.cpp:1262] (http) GET /instances/6c163a47-c9511c81-a5171e51-4880897e-3efa1331/file
I1228 12:11:12.342524 FilesystemStorage.cpp:161] Reading attachment "bc20ffc5-f825-4b55-aef8-4715f37233e6" of "DICOM" content type
I1228 12:11:12.344015 HttpServer.cpp:1262] (http) GET /instances/2872705b-bf4a2a03-bee98eb0-fb3f760c-a0ca558a/file
I1228 12:11:12.356779 HttpServer.cpp:1262] (http) GET /instances/69e60ab7-51a52a24-e956d63b-f2776b91-ff923da7/file
I1228 12:11:12.356779 HttpServer.cpp:1262] (http) GET /instances/12fce05c-1b1654d9-76227560-a83e76a1-46c5b8a7/file
I1228 12:11:12.357772 FilesystemStorage.cpp:161] Reading attachment "50fea69a-e98a-4c5a-9710-75e36748aec7" of "DICOM" content type
I1228 12:11:12.361771 HttpServer.cpp:1262] (http) GET /instances/e2a9c452-6a21a67c-e3e8b97e-37063bc2-2f120be2/file
I1228 12:11:12.362771 FilesystemStorage.cpp:161] Reading attachment "78610b7c-1e44-45dc-a9e8-a8bc70096157" of "DICOM" content type
I1228 12:11:12.367769 FilesystemStorage.cpp:161] Reading attachment "3fe027b7-8d95-49ba-bdc6-be68f02d4ec2" of "DICOM" content type
I1228 12:11:12.380979 FilesystemStorage.cpp:161] Reading attachment "2f6701af-84c7-4f62-a191-22e64bb193c2" of "DICOM" content type
I1228 12:11:12.392130 HttpServer.cpp:1262] (http) GET /instances/dc8aedf6-ac0a191b-4f9f52d9-5d1d47c4-f511d4be/file
I1228 12:11:12.398552 HttpServer.cpp:1262] (http) GET /instances/fde45ae9-c507e86e-3b18b60a-d57daecd-2c0be302/file
I1228 12:11:12.405990 HttpServer.cpp:1262] (http) GET /instances/8ef1a0c5-c7f3c389-2de0a33f-f0377b29-eaac8f6d/file
I1228 12:11:12.412849 FilesystemStorage.cpp:161] Reading attachment "59165fc9-9bfa-44c7-bea3-db1fca591db8" of "DICOM" content type
I1228 12:11:12.413861 HttpServer.cpp:1262] (http) GET /instances/11ea871a-b5f1a0a9-259d0fbc-aa56ead0-c6c9cb5e/file
I1228 12:11:12.419081 FilesystemStorage.cpp:161] Reading attachment "31316d8e-6489-45bf-b6d6-d093fd9f8739" of "DICOM" content type
I1228 12:11:12.419081 HttpServer.cpp:1262] (http) GET /instances/541e2455-66367713-f73290ba-7a9a1849-335114b1/file
I1228 12:11:12.423455 FilesystemStorage.cpp:161] Reading attachment "9abe102b-7ccd-459b-b556-f85e66a195f3" of "DICOM" content type
I1228 12:11:12.429457 HttpServer.cpp:1262] (http) GET /instances/f94fc2b4-4b65dd48-08c24eb2-a6767611-7f16e6e2/file
I1228 12:11:12.434637 FilesystemStorage.cpp:161] Reading attachment "dadb3da8-e60b-475d-9faf-53662166f3c1" of "DICOM" content type
I1228 12:11:12.444725 FilesystemStorage.cpp:161] Reading attachment "f826c006-9eed-4185-bf11-9e6570568008" of "DICOM" content type
I1228 12:11:12.452726 HttpServer.cpp:1262] (http) GET /instances/8d5d52e9-79bddb04-8b6ded5a-af2ff4c7-5628511b/file
I1228 12:11:12.456724 FilesystemStorage.cpp:161] Reading attachment "6f1aa27c-8095-45cf-bffd-25c1065fd69f" of "DICOM" content type
I1228 12:11:12.462318 HttpServer.cpp:1262] (http) GET /instances/10d3b0c5-15f15013-745390c6-b9b39899-5a726e97/file
I1228 12:11:12.477215 HttpServer.cpp:1262] (http) GET /ohif/index.worker.ea71efba2ce63c499055.worker.js
I1228 12:11:12.478560 FilesystemStorage.cpp:161] Reading attachment "c87c52c3-6a51-4f5e-82be-4c216a24a255" of "DICOM" content type
I1228 12:11:12.491634 FilesystemStorage.cpp:161] Reading attachment "a2709652-a963-4f0b-97d4-f76e66520fe6" of "DICOM" content type
I1228 12:11:12.498638 OrthancPlugins.cpp:2447] (plugins) Delegating HTTP request to plugin for URI: /ohif/index.worker.ea71efba2ce63c499055.worker.js

Screeshot: -

Thanks,

Configuration: -

{
  /**
   * General configuration of Orthanc
   *
   * As a general recommendation, you should always favour absolute 
   * paths when you need to provide a path to a file or a directory.  
   * This is not done in this configuration file since we don't know 
   * where Orthanc is going to be installed.
   **/

  // The logical name of this instance of Orthanc. This one is
  // displayed in Orthanc Explorer and at the URI "/system".
  "Name" : "StandAlone Orthanc",

  // 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" : "D:\\Orthanc",

  // 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" : "D:\\Orthanc",



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

  // Action to take when the maximum storage is reached.
  // By default, the patients are recycled ("Recycle" mode).
  // In "Reject" mode, the sender will receive a 0xA700 DIMSE status code
  // if the instance was sent through C-Store, a 507 HTTP status code
  // if using the REST API and a 0xA700 Failure reason when using
  // DicomWeb Stow-RS 
  // Allowed values: "Recycle", "Reject"
  // (new in Orthanc 1.11.2)
  "MaximumStorageMode" : "Recycle",

  // Maximum size of the storage cache in MB.  The storage cache
  // is stored in RAM and contains a copy of recently accessed
  // files (written or read).  A value of "0" indicates the cache
  // is disabled.  (new in Orthanc 1.10.0)
  "MaximumStorageCacheSize" : 128,

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

  "LuaHeartBeatPeriod" : 0,

  "Plugins" : [ "C:\\Program Files\\Orthanc Server\\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" : 2,

  // Defines the number of threads that are used to execute each type of
  // jobs (for the jobs that can be parallelized).
  // A value of "0" indicates to use all the available CPU logical cores.
  // (new in Orthanc 1.11.3)
  "JobsEngineThreadsCount" : {
    "ResourceModification": 1     // for /anonymize, /modify
  },

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

  // Enable/disable the Orthanc Explorer Web user interface. This
  // option is only meaningful if the "HttpServerEnabled" option is
  // set to "true" (new in Orthanc 1.8.2).
  "OrthancExplorerEnabled" : 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,

  // Enable the publication of the content of the Orthanc server as a
  // WebDAV share (new in Orthanc 1.8.0). On the localhost, the WebDAV
  // share is mapped as "http://localhost:8042/webdav/".
  "WebDavEnabled" : true,

  // Whether to allow deletions through the WebDAV share. This is
  // disabled by default to avoid accidental loss of DICOM instances.
  "WebDavDeleteAllowed" : false,

  // Whether to allow uploads through the WebDAV share.
  "WebDavUploadAllowed" : 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 (cannot be longer than 16
  // characters)
  "DicomAet" : "ORTHANC",

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

  // The DICOM port
  "DicomPort" : 4242,

  "DefaultEncoding" : "Latin1",

  "AcceptedTransferSyntaxes" : [ "1.2.840.10008.1.*" ],

     "DeflatedTransferSyntaxAccepted"     : true,
     "JpegTransferSyntaxAccepted"         : true,
     "Jpeg2000TransferSyntaxAccepted"     : true,
     "JpegLosslessTransferSyntaxAccepted" : true,
     "JpipTransferSyntaxAccepted"         : true,
     "Mpeg2TransferSyntaxAccepted"        : true,
     "RleTransferSyntaxAccepted"          : true,
     "Mpeg4TransferSyntaxAccepted"        : true,  // New in Orthanc 1.6.0
     "H265TransferSyntaxAccepted"         : true,  // New in Orthanc 1.9.0
  **/

  "UnknownSopClassAccepted" : false,

  "DicomScpTimeout" : 30,



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

  // Whether remote hosts can connect to the HTTP server
  "RemoteAccessAllowed" : false,

  // Whether or not SSL is enabled
  "SslEnabled" : false,


  "SslCertificate" : "certificate.pem",

  "SslMinimumProtocolVersion" : 4,

  // Set the accepted ciphers for SSL connections. The ciphers must be
  // provided as a list of strings. If not set, this will default to
  // FIPS 140-2 ciphers. This option is only meaningful if
  // "SslEnabled" is true. (new in Orthanc 1.8.2)
  /**
    "SslCiphersAccepted" : [ "AES128-GCM-SHA256" ],
  **/

  // Whether or not peer client certificates shall be checked. This
  // option is only meaningful if "SslEnabled" is true.
  "SslVerifyPeers" : false,

  // Path to a file containing the concatenation of the client SSL
  // certificate(s) that are trusted to verify the identify of remote
  // HTTP clients. The individual certificate(s) must be stored in the
  // PEM format. This option is only meaningful if "SslVerifyPeers"
  // is true.
  "SslTrustedClientCertificates" : "trustedClientCertificates.pem",
  
     "AuthenticationEnabled" : false,
   **/

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



  /**
   * Security-related options for the DICOM connections (SCU/SCP)
   **/

  // Whether DICOM TLS is enabled in the Orthanc SCP (new in Orthanc 1.9.0)
  "DicomTlsEnabled" : false,


  /**
     "DicomTlsCertificate" : "orthanc.crt",
  **/

  // Path to the file containing the private key (in PEM format) that
  // corresponds to the TLS certificate specified in option
  // "DicomTlsCertificate". (new in Orthanc 1.9.0)
  /**
     "DicomTlsPrivateKey" : "orthanc.key",
  **/


  /**
     "DicomTlsTrustedCertificates" : "trusted.crt",
  **/
  

  "DicomTlsRemoteCertificateRequired" : true,

  // Whether the Orthanc SCP allows incoming C-ECHO requests, even
  // from SCU modalities it does not know about (i.e. that are not
  // listed in the "DicomModalities" option above). Orthanc 1.3.0
  // is the only version to behave as if this argument were set to "false".
  "DicomAlwaysAllowEcho" : true,

  // Whether the Orthanc SCP allows incoming C-STORE requests, even
  // from SCU modalities it does not know about (i.e. that are not
  // listed in the "DicomModalities" option above)
  "DicomAlwaysAllowStore" : true,

  // Whether the Orthanc SCP allows incoming C-FIND requests, even
  // from SCU modalities it does not know about (i.e. that are not
  // listed in the "DicomModalities" option above). Setting this
  // option to "true" implies security risks. (new in Orthanc 1.9.0)
  // Note: From Orthanc 1.10.0, this option only applies to C-FIND
  // requests for patients/studies/series/instances. Use option
  // "DicomAlwaysAllowFindWorklist" for worklists.
  "DicomAlwaysAllowFind" : false,

  // Whether the Orthanc SCP allows incoming C-FIND requests for worklists, 
  // even from SCU modalities it does not know about (i.e. that are not
  // listed in the "DicomModalities" option above). Setting this
  // option to "true" implies security risks. (new in Orthanc 1.10.0)
  "DicomAlwaysAllowFindWorklist" : false,

  // Whether the Orthanc SCP allows incoming C-GET requests, even
  // from SCU modalities it does not know about (i.e. that are not
  // listed in the "DicomModalities" option above). Setting this
  // option to "true" implies security risks. (new in Orthanc 1.9.0)
  "DicomAlwaysAllowGet" : false,

  // Whether the Orthanc SCP allows incoming C-MOVE requests, even
  // from SCU modalities it does not know about (i.e. that are not
  // listed in the "DicomModalities" option above). Setting this
  // option to "true" implies security risks. (new in Orthanc 1.9.7)
  "DicomAlwaysAllowMove" : false,

  // Whether Orthanc checks the IP/hostname address of the remote
  // modality initiating a DICOM connection (as listed in the
  // "DicomModalities" option above). If this option is set to
  // "false", Orthanc only checks the AET of the remote modality.
  "DicomCheckModalityHost" : false,



  /**
   * Network topology
   **/

  // The list of the known DICOM modalities. This option is ignored if
  // "DicomModalitiesInDatabase" is set to "true", in which case you
  // must use the REST API to define modalities.
  "DicomModalities" : {
    /**
     * Uncommenting the following line would enable Orthanc to
     * connect to an instance of the "storescp" open-source DICOM
     * store (shipped in the DCMTK distribution), as started by the
     * command line "storescp 2000". The first parameter is the
     * AET of the remote modality (cannot be longer than 16 
     * characters), the second one is the remote network address,
     * and the third one is the TCP port number corresponding
     * to the DICOM protocol on the remote modality (usually 104).
     **/
    // "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),
     * - "Vitrea",
     * - "GE" (Enterprise Archive, MRI consoles and Advantage Workstation
     *   from GE Healthcare).
     *
     * This parameter is case-sensitive.
     **/
    // "vitrea" : [ "VITREA", "192.168.1.1", 104, "Vitrea" ]

    
  },

  // Whether to store the DICOM modalities in the Orthanc database
  // instead of in this configuration file (new in Orthanc 1.5.0)
  "DicomModalitiesInDatabase" : false,

  // Whether the C-ECHO SCU is automatically followed by a C-FIND SCU,
  // while testing the connectivity from Orthanc to a remote DICOM
  // modality. This allows one to check that the remote modality does
  // accept C-FIND requests from Orthanc (new in Orthanc 1.8.1).
  "DicomEchoChecksFind" : false,

  // The timeout (in seconds) after which the DICOM associations are
  // considered as closed by the Orthanc SCU (client) if the remote
  // DICOM SCP (server) does not answer.
  "DicomScuTimeout" : 10,

 
  "DicomScuPreferredTransferSyntax" : "1.2.840.10008.1.2.1",

  "DicomThreadsCount" : 4,

  // The list of the known Orthanc peers. This option is ignored if
  // "OrthancPeersInDatabase" is set to "true", in which case you must
  // use the REST API to define Orthanc peers.
  "OrthancPeers" : {

  },

  // Whether to store the Orthanc peers in the Orthanc database
  // instead of in this configuration file (new in Orthanc 1.5.0)
  "OrthancPeersInDatabase" : false,

  // Parameters of the HTTP proxy to be used by Orthanc. If set to the
  // empty string, no HTTP proxy is used. For instance:
  //   "HttpProxy" : "192.168.0.1:3128"
  //   "HttpProxy" : "proxyUser:proxyPassword@192.168.0.1:3128"
  "HttpProxy" : "",

  // If set to "true", debug messages from libcurl will be issued
  // whenever Orthanc makes an outgoing HTTP request. This is notably
  // useful to debug HTTPS-related problems.
  "HttpVerbose" : false,

  // Set the timeout for HTTP requests issued by Orthanc (in seconds).
  "HttpTimeout" : 60,

  // Enable the verification of the peers during HTTPS requests. This
  // option must be set to "false" if using self-signed certificates.
  // Pay attention that setting this option to "false" results in
  // security risks!
  // Reference: http://curl.haxx.se/docs/sslcerts.html
  "HttpsVerifyPeers" : true,

  "HttpsCACertificates" : "C:\\Program Files\\Orthanc Server\\Configuration\\ca-certificates.crt",



  /**
   * Advanced options
   **/

  // Dictionary of symbolic names for the user-defined metadata. Each
  // entry must map an unique string to an unique number between 1024
  // and 65535. Reserved values:
  //  - The Orthanc whole-slide imaging plugin uses metadata 4200
  "UserMetadata" : {
    // "Sample" : 1024
  },

  // Dictionary of symbolic names for the user-defined types of
  // attached files. Each entry must map an unique string to an unique
  // number between 1024 and 65535. Optionally, a second argument can
  // provided to specify a MIME content type for the attachment.
  "UserContentType" : {
    // "sample" : 1024
    // "sample2" : [ 1025, "application/pdf" ]
  },

  // Number of seconds without receiving any instance before a
  // patient, a study or a series is considered as stable.
  "StableAge" : 60,

  // By default, Orthanc compares AET (Application Entity Titles) in a
  // case-insensitive way. Setting this option to "true" will enable
  // case-sensitive matching.
  "StrictAetComparison" : false,

  // When the following option is "true", the MD5 of the DICOM files
  // will be computed and stored in the Orthanc database. This
  // information can be used to detect disk corruption, at the price
  // of a small performance overhead.
  "StoreMD5ForAttachments" : true,

  // The maximum number of results for a single C-FIND request at the
  // Patient, Study or Series level. Setting this option to "0" means
  // no limit.
  "LimitFindResults" : 0,

  // The maximum number of results for a single C-FIND request at the
  // Instance level. Setting this option to "0" means no limit.
  "LimitFindInstances" : 0,

  // If this option is set to "true" (default behavior until Orthanc
  // 1.3.2), Orthanc will log the resources that are exported to other
  // DICOM modalities or Orthanc peers, inside the URI
  // "/exports". Setting this option to "false" is useful to prevent
  // the index to grow indefinitely in auto-routing tasks (this is the
  // default behavior since Orthanc 1.4.0).
  "LogExportedResources" : false,

  // Enable or disable HTTP Keep-Alive (persistent HTTP
  // connections). Setting this option to "true" prevents Orthanc
  // issue #32 ("HttpServer does not support multiple HTTP requests in
  // the same TCP stream"), but can possibly slow down HTTP clients
  // that do not support persistent connections. The default behavior
  // used to be "false" in Orthanc <= 1.5.1. Setting this option to
  // "false" is also recommended if Orthanc is compiled against
  // Mongoose.
  "KeepAlive" : true,

  // Defines the Keep-Alive timeout in seconds.
  // (new in Orthanc 1.11.3)
  "KeepAliveTimeout" : 1,

  // Enable or disable Nagle's algorithm. Only taken into
  // consideration if Orthanc is compiled to use CivetWeb. Experiments
  // show that best performance can be obtained by setting both
  // "KeepAlive" and "TcpNoDelay" to "true". Beware however of
  // caveats: https://eklitzke.org/the-caveats-of-tcp-nodelay
  "TcpNoDelay" : true,

  // Number of threads that are used by the embedded HTTP server.
  "HttpThreadsCount" : 50,

  // If this option is set to "false", Orthanc will run in index-only
  // mode. The DICOM files will not be stored on the drive: Orthanc
  // only indexes the small subset of the so-called "main DICOM tags"
  // in its SQL database. Note that this option might prevent the
  // upgrade to newer versions of Orthanc. Also note that this
  // behavior might not be available with the storage area plugins.
  "StoreDicom" : true,

  // DICOM associations initiated by Lua scripts are kept open as long
  // as new DICOM commands are issued. This option sets the number of
  // seconds of inactivity to wait before automatically closing a
  // DICOM association used by Lua. If set to 0, the connection is
  // closed immediately. This option is only used in Lua scripts.
  "DicomAssociationCloseDelay" : 5,

  // Maximum number of query/retrieve DICOM requests that are
  // maintained by Orthanc. The least recently used requests get
  // deleted as new requests are issued.
  "QueryRetrieveSize" : 100,

  // When handling a C-FIND SCP request, setting this flag to "true"
  // will enable case-sensitive match for PN value representation
  // (such as PatientName). By default, the search is
  // case-insensitive, which does not follow the DICOM standard.
  "CaseSensitivePN" : false,

  // Configure PKCS#11 to use hardware security modules (HSM) and
  // smart cards when carrying on HTTPS client authentication.
  /**
     "Pkcs11" : {
       "Module" : "/usr/local/lib/libbeidpkcs11.so",
       "Module" : "C:/Windows/System32/beidpkcs11.dll",
       "Pin" : "1234",
       "Verbose" : true
     }
   **/
  
  // If set to "false", Orthanc will not load its default dictionary
  // of private tags. This might be necessary if you cannot import a
  // DICOM file encoded using the Implicit VR Endian transfer syntax,
  // and containing private tags: Such an import error might stem from
  // a bad dictionary. You can still list your private tags of
  // interest in the "Dictionary" configuration option below.
  "LoadPrivateDictionary" : true,


  "Dictionary" : {
    // "0014,1020" : [ "DA", "ValidationExpiryDate", 1, 1 ]
    // "00e1,c2" : [ "UI", "PET-CT Multi Modality Name", 1, 1, "ELSCINT1" ]
    // "7053,03" : [ "ST", "Original Image Filename", 1, 1, "Philips PET Private Group" ]
    // "2001,5f" : [ "SQ", "StackSequence", 1, 1, "Philips Imaging DD 001" ]
  },

  // Load a set of external DICOM dictionaries in order to replace the
  // default dictionaries. This option must contain a set of files in
  // the DCMTK format. The order of the dictionaries *is*
  // important. This option can be used to turn Orthanc into a DICONDE
  // server. (new in Orthanc 1.9.4)
  /**
     "ExternalDictionaries" : [
     "/usr/share/libdcmtk12/dicom.dic",
     "/usr/share/libdcmtk12/diconde.dic"
     ]
  **/

  // Whether to run DICOM C-MOVE operations synchronously. If set to
  // "false" (asynchronous mode), each incoming C-MOVE request results
  // in the creation of a new background job. Up to Orthanc 1.3.2, the
  // implicit behavior was to use synchronous C-MOVE ("true"). Between
  // Orthanc 1.4.0 and 1.4.2, the default behavior was set to
  // asynchronous C-MOVE ("false"). Since Orthanc 1.5.0, the default
  // behavior is back to synchronous C-MOVE ("true", which ensures
  // backward compatibility with Orthanc <= 1.3.2).
  "SynchronousCMove" : true,

  // Maximum number of completed jobs that are kept in memory. A
  // processing job is considered as complete once it is tagged as
  // "Success" or "Failure". Since Orthanc 1.5.0, a value of "0"
  // indicates to keep no job in memory (i.e. jobs are removed from
  // the history as soon as they are completed), which prevents the
  // use of some features of Orthanc (typically, synchronous mode in
  // REST API) and should be avoided for non-developers.
  "JobsHistorySize" : 10,

  // Whether to save the jobs into the Orthanc database. If this
  // option is set to "true", the pending/running/completed jobs are
  // automatically reloaded from the database if Orthanc is stopped
  // then restarted (except if the "--no-jobs" command-line argument
  // is specified). This option should be set to "false" if multiple
  // Orthanc servers are using the same database (e.g. if PostgreSQL
  // or MariaDB/MySQL is used).
  "SaveJobs" : true,

  // Specifies how Orthanc reacts when it receives a DICOM instance
  // whose SOPInstanceUID is already stored. If set to "true", the new
  // instance replaces the old one. If set to "false", the new
  // instance is discarded and the old one is kept. Up to Orthanc
  // 1.4.1, the implicit behavior corresponded to "false".
  "OverwriteInstances" : false,

  // Maximum number of ZIP/media archives that are maintained by
  // Orthanc, as a response to the asynchronous creation of archives.
  // The least recently used archives get deleted as new archives are
  // generated. This option was introduced in Orthanc 1.5.0, and has
  // no effect on the synchronous generation of archives.
  "MediaArchiveSize" : 1,

  "StorageAccessOnFind" : "Always",

  // Whether Orthanc monitors its metrics (new in Orthanc 1.5.4). If
  // set to "true", the metrics can be retrieved at
  // "/tools/metrics-prometheus" formetted using the Prometheus
  // text-based exposition format.
  "MetricsEnabled" : true,

  // Whether calls to URI "/tools/execute-script" is enabled. Starting
  // with Orthanc 1.5.8, this URI is disabled by default for security.
  "ExecuteLuaEnabled" : false,

  // Whether the REST API can write to the filesystem (e.g. in 
  // /instances/../export route). Starting with Orthanc 1.12.0, 
  // this URI is disabled by default for security.
  "RestApiWriteToFileSystemEnabled": false,

  // Set the timeout while serving HTTP requests by the embedded Web
  // server, in seconds. This corresponds to option
  // "request_timeout_ms" of Mongoose/Civetweb. It will set the socket
  // options "SO_RCVTIMEO" and "SO_SNDTIMEO" to the specified value.
  "HttpRequestTimeout" : 30,

  // Set the default private creator that is used by Orthanc when it
  // looks for a private tag in its dictionary (cf. "Dictionary"
  // option), or when it creates/modifies a DICOM file (new in Orthanc 1.6.0).
  "DefaultPrivateCreator" : "",

  // Maximum number of storage commitment reports (i.e. received from
  // remote modalities) to be kept in memory (new in Orthanc 1.6.0).
  "StorageCommitmentReportsSize" : 100,

  // Whether Orthanc transcodes DICOM files to an uncompressed
  // transfer syntax over the DICOM protocol, if the remote modality
  // does not support compressed transfer syntaxes (new in Orthanc 1.7.0).
  "TranscodeDicomProtocol" : true,

  // If some plugin to decode/transcode DICOM instances is installed,
  // this option specifies whether the built-in decoder/transcoder of
  // Orthanc (that uses DCMTK) is applied before or after the plugins,
  // or is not applied at all (new in Orthanc 1.7.0). The allowed
  // values for this option are "After" (default value, corresponding
  // to the behavior of Orthanc <= 1.6.1), "Before", or "Disabled".
  "BuiltinDecoderTranscoderOrder" : "After",

  // If this option is set, Orthanc will transparently transcode any
  // incoming DICOM instance to the given transfer syntax before
  // storing it into its database. Beware that this might result in
  // high CPU usage (if transcoding to some compressed transfer
  // syntax), or in higher disk consumption (if transcoding to an
  // uncompressed syntax). Also, beware that transcoding to a transfer
  // syntax with lossy compression (notably JPEG) will change the
  // "SOPInstanceUID" DICOM tag, and thus the Orthanc identifier at
  // the instance level, which might break external workflow.
  /**
     "IngestTranscoding" : "1.2.840.10008.1.2",
  **/

  // Whether ingest transcoding is applied to incoming DICOM instances
  // that have an uncompressed transfer syntax, i.e. Little Endian
  // Implicit, Little Endian Explicit or Big Endian Explicit (new in
  // Orthanc 1.8.2).
  "IngestTranscodingOfUncompressed" : true,
  
  // Whether ingest transcoding is applied to incoming DICOM instances
  // that have a compressed transfer syntax (new in Orthanc 1.8.2).
  "IngestTranscodingOfCompressed" : true,
  
  // The compression level that is used when transcoding to one of the
  // lossy/JPEG transfer syntaxes (integer between 1 and 100).
  "DicomLossyTranscodingQuality" : 90,

  // Whether "fsync()" is called after each write to the storage area
  // (new in Orthanc 1.7.4). If this option is set to "true", Orthanc
  // will run more slowly, but the DICOM are guaranteed to be
  // immediately written to the disk. This option only makes sense if
  // the builtin filesystem storage area is used. It defaults to
  // "false" in Orthanc <= 1.7.3, and to "true" in Orthanc >= 1.7.4.
  "SyncStorageArea" : true,

  // If specified, on compatible systems, call "mallopt(M_ARENA_MAX,
  // ...)" while starting Orthanc. This has the same effect at setting
  // the environment variable "MALLOC_ARENA_MAX". This avoids large
  // growth in RES memory if the threads of the embedded HTTP server
  // have to allocate large chunks of memory (typically the case with
  // large DICOM files). By setting "MallocArenaMax" to "N", these
  // threads share "N" memory pools (known as "arenas"). Setting this
  // option to "0" doesn't call mallopt()", which was the behavior of
  // Orthanc <= 1.8.1.
  "MallocArenaMax" : 5,

  // Deidentify/anonymize the contents of the logs (notably C-FIND,
  // C-GET, and C-MOVE queries submitted to Orthanc) according to
  // Table E.1-1 of the DICOM standard (new in Orthanc 1.8.2)
  "DeidentifyLogs" : true,

  // If "DeidentifyLogs" is true, this sets the DICOM standard to
  // follow for the deidentification/anonymization of the query
  // contents. Possible values are "2008", "2017c", "2021b" (new
  // in Orthanc 1.8.2), and "2023b" (new in Orthanc 1.12.1)
  "DeidentifyLogsDicomVersion" : "2023b",

  // Maximum length of the PDU (Protocol Data Unit) in the DICOM
  // network protocol, expressed in bytes. This value affects both
  // Orthanc SCU and Orthanc SCP. It defaults to 16KB. The allowed
  // range is [4096,131072]. (new in Orthanc 1.9.0)
  "MaximumPduLength" : 16384,

  // Arbitrary identifier of this Orthanc server when storing its
  // global properties if a custom index plugin is used. This
  // identifier is only useful in the case of multiple
  // readers/writers, in order to avoid collisions between multiple
  // Orthanc servers. If unset, this identifier is taken as a SHA-1
  // hash derived from the MAC addresses of the network interfaces,
  // and from the AET and TCP ports used by Orthanc. Manually setting
  // this option is needed in Docker/Kubernetes environments. (new in
  // Orthanc 1.9.2)
  /**
     "DatabaseServerIdentifier" : "Orthanc1",
  **/

  // Whether Orthanc protects the modification of metadata and
  // attachments using revisions, which is done using the HTTP headers
  // "ETag", "If-Match" and "If-None-Match" in the calls to the REST
  // API. This is needed to handle collisions between concurrent
  // modifications in the case of multiple writers. The database
  // back-end must support this option, which is notably *not* yet the
  // case of the built-in SQLite index. (new in Orthanc 1.9.2)
  "CheckRevisions" : false,

  // Whether Orthanc streams ZIP archive/media to the HTTP
  // client. Setting this option to "false" corresponds to the
  // behavior of Orthanc <= 1.9.3: The ZIP is first entirely written
  // to a temporary file, then sent to the client (which necessitates
  // disk space and might lead to HTTP timeouts on large archives). If
  // set to "true", the chunks of the ZIP file are progressively sent
  // as soon as one DICOM file gets compressed (new in Orthanc 1.9.4)
  "SynchronousZipStream" : true,

  // Default number of loader threads when generating Zip archive/media.
  // A value of 0 means reading and writing are performed in sequence
  // (default behaviour).  A value > 1 is meaningful only if the storage
  // is a distributed network storage (e.g object storage plugin).
  // (new experimental feature in Orthanc 1.10.0)
  "ZipLoaderThreads": 0,

  // Extra Main Dicom tags that are stored in DB together with all default
  // Main Dicom tags that are already stored.
  // see https://book.orthanc-server.com/faq/main-dicom-tags.html 
  // (new in Orthanc 1.11.0)
  // Sequences tags are not supported.
  /**
  "ExtraMainDicomTags" : {
    "Instance" : [
      "Rows",
      "Columns",
      "ImageType",
      "SOPClassUID",
      "ContentDate",
      "ContentTime",
      "FrameOfReferenceUID",
      "PixelSpacing",
      "SpecificCharacterSet",
      "BitsAllocated"
    ],
    "Series" : [],
    "Study": [],
    "Patient": []
  },
  */

  // Enables/disables warnings in the logs.
  // "true" enables a warning.  All warnings are enabled by default
  // see https://book.orthanc-server.com/faq/main-dicom-tags.html#warnings
  // (new in Orthanc 1.11.0)
  "Warnings" : {
    // A "RequestedTags" has been read from storage which is slower than
    // reading it from DB.
    // You might want to store this tag in ExtraMainDicomTags to build
    // the response faster.
    "W001_TagsBeingReadFromStorage": true,
    
    // Retrieving a list of Main dicom tags from a resource that has been
    // saved with another "ExtraMainDicomTags" configuration which means that
    // your response might be incomplete/inconsistent.
    // You should call patients|studies|series|instances/../reconstruct to rebuild
    // the DB.  You may also check for the "Housekeeper" plugin
    "W002_InconsistentDicomTagsInDb": true
  }
}

Hello,

Your question should visibly be asked to the OHIF community, as explained here: Access segmentation viewer from OHIF - #34 by jodogne

If after investigation, the OHIF team answers that the issue is within Orthanc, please let us know.

Regards,
Sébastien-