Hi all,
I’m using a docker Orthanc image (osimis/orthanc:23.3.5) and trying to solve performance issues. We are using OHIF Viewer v3 but these issues are not related to the viewer for now).
Here are the benchmarks I’ve made(there’s only 3 studies and 13 series stored in Orthanc) :
The query:
http://localhost:3000/dicom-web/studies/<study_uid>/series/<series_uid>/metadata
1- When using the default Orthanc configuration, it can take up to 7,5 seconds to retrieve a series metadata.
2- To avoid Orthanc to read all series instances to retrieve a series metadata, I’ve enabled the PostgreSQL plugin (v4) and enabled only the index and not the storage. I’ve then set the StudiesMetadata and SeriesMetadata option to MainDicomTags in the DicomWeb setup and add ExtraMainDicomTags for Study, Series and Instance (by the way HouseKeeper is enabled so it reconstruct the DB).
But even with this configuration, it takes up to 4 seconds (with VERBOSE_ENABLED set to true) to retrieve the series metadata which is very long.
As I’ve set VERBOSE_ENABLED to true, I can see in the log that OrthancPlugins accesses to all instances (see below). Did I miss something to improve the performance of Orthanc? Should I set SeriesMetadata to Extrapolate and use SeriesMetadataExtrapolatedTags to avoid Orthanc retrieving informations from instances?
Any help would be really appreciated
Eric
Logs:
osimis-postgresql-orthanc-1 | I0413 13:54:05.289703 HttpServer.cpp:1262] (http) GET /dicom-web/studies/1.2.826.0.1.3680043.2.406.1.2.3754642702.36140.1668072150.577/series/1.2.826.0.1.3680043.2.406.1.3.3754642702.36140.1668072171.310/metadata
osimis-postgresql-orthanc-1 | I0413 13:54:05.289823 OrthancPlugins.cpp:2443] (plugins) Delegating HTTP request to plugin for URI: /dicom-web/studies/1.2.826.0.1.3680043.2.406.1.2.3754642702.36140.1668072150.577/series/1.2.826.0.1.3680043.2.406.1.3.3754642702.36140.1668072171.310/metadata
osimis-postgresql-orthanc-1 | I0413 13:54:05.289941 OrthancPlugins.cpp:3981] (plugins) Plugin making REST POST call to URI /tools/find (after plugins)
osimis-postgresql-orthanc-1 | I0413 13:54:05.301449 ServerContext.cpp:1445] Number of candidate resources after fast DB filtering on main DICOM tags: 1
osimis-postgresql-orthanc-1 | I0413 13:54:05.308148 ServerContext.cpp:1593] Number of matching resources: 1
osimis-postgresql-orthanc-1 | I0413 13:54:05.308396 OrthancPlugins.cpp:3144] (plugins) Plugin making REST GET call on URI /series/71e92b73-76291ad6-0c4ff86d-015544d2-5fc874ad (built-in API)
osimis-postgresql-orthanc-1 | I0413 13:54:05.315534 OrthancPlugins.cpp:3144] (plugins) Plugin making REST GET call on URI /instances/e97309ef-e8a756e1-f6410ef4-dc9eb924-6357906d?full (built-in API)
osimis-postgresql-orthanc-1 | I0413 13:54:05.321383 OrthancPlugins.cpp:3144] (plugins) Plugin making REST GET call on URI /series/71e92b73-76291ad6-0c4ff86d-015544d2-5fc874ad?full (built-in API)
osimis-postgresql-orthanc-1 | I0413 13:54:05.327321 OrthancPlugins.cpp:3144] (plugins) Plugin making REST GET call on URI /studies/20c4ab10-e5efe345-f1c7ee75-30f4c878-9a36b464?full (built-in API)
osimis-postgresql-orthanc-1 | I0413 13:54:05.334622 OrthancPlugins.cpp:3144] (plugins) Plugin making REST GET call on URI /instances/0a7ced74-2b799be8-dfa280cb-43d808a5-3e3d5a4e?full (built-in API)
osimis-postgresql-orthanc-1 | I0413 13:54:05.339044 OrthancPlugins.cpp:3144] (plugins) Plugin making REST GET call on URI /instances/09ebde41-c2bb253c-b218e620-127ba880-9c142412?full (built-in API)
osimis-postgresql-orthanc-1 | I0413 13:54:05.346502 OrthancPlugins.cpp:3144] (plugins) Plugin making REST GET call on URI /instances/39b5f065-cd8db184-7a895633-5909ba78-137d5a88?full (built-in API)
osimis-postgresql-orthanc-1 | I0413 13:54:05.352948 OrthancPlugins.cpp:3144] (plugins) Plugin making REST GET call on URI /instances/aef50cac-925fb71e-06e2452c-34325ef2-20e3f579?full (built-in API)