Good day to you all, (relatively) new Orthanc user here.
We got Siemens CT Dose screens in dicom format from our PACS (from a SOMATOM Drive, software version Syngo CT VB10A). Using Orthanc (via docker, jodogne/orthanc-plugins image) preview tool (weither to the instance level or with Orthanc Web viewer at the series level) shows a black image, which is unexpected. I searched to the best of my ability, but couldn’t find anything on the documentation, web or this forum. Any leads?
Importantly, all images are JPEG Lossless, Non-Hierarchical, First-Order Prediction (Process 14 [Selection Value 1]), which should be supported by pydicom (via libjpeg) and GDCM (I think?). Maybe my problem is related to this? Couldn’t find anything conclusive though.
Results with anonymized minimal example (given below)
anonymized_minimal_example.dcm (65.5 KB)
Observed result (example from the instance preview):
Expected result (visible with MicroDicom in this case):
Restarted the container in verbose mode, re-imported the example dicom (given below) and tried both preview methods. The relevant log is also given below. No relevant output since restart (maybe verbose mode wasn’t correctly setup). Logs from before restart do have these lines which could be related:
W1208 16:31:30.717393 PluginsManager.cpp:157] Cannot decode image using GDCM: Bad file format
E1208 16:31:30.721227 PluginsManager.cpp:188] Exception while invoking plugin service 6014: Not implemented yet
E1208 16:31:30.721474 PluginsManager.cpp:153] Trying to access a NULL image
But I’m not sure it’s about the dose screens and I couldn’t reproduce these calls.
Orthanc log
W0316 18:57:06.811533 main.cpp:2034] Orthanc version: mainline (20230830T022237)
W0316 18:57:06.811676 OrthancConfiguration.cpp:108] Scanning folder “/etc/orthanc/” for configuration files
W0316 18:57:06.811725 OrthancConfiguration.cpp:57] Reading the configuration from: “/etc/orthanc/orthanc.json”
W0316 18:57:07.000419 main.cpp:911] Loading plugin(s) from: /usr/share/orthanc/plugins
E0316 18:57:07.000449 PluginsManager.cpp:234] Inexistent path to plugins: /usr/share/orthanc/plugins
W0316 18:57:07.000454 main.cpp:911] Loading plugin(s) from: /usr/local/share/orthanc/plugins
W0316 18:57:07.004928 PluginsManager.cpp:261] Registering plugin ‘connectivity-checks’ (version mainline)
W0316 18:57:07.014821 PluginsManager.cpp:261] Registering plugin ‘delayed-deletion’ (version mainline)
W0316 18:57:07.015084 PluginsManager.cpp:157] DelayedDeletion - plugin is loaded but not enabled (no “DelayedDeletion” section found in configuration)
W0316 18:57:07.019291 PluginsManager.cpp:261] Registering plugin ‘housekeeper’ (version mainline)
W0316 18:57:07.019324 PluginsManager.cpp:157] Housekeeper plugin is initializing
W0316 18:57:07.019665 PluginsManager.cpp:157] Housekeeper plugin is disabled by the configuration file
W0316 18:57:07.023662 PluginsManager.cpp:261] Registering plugin ‘worklists’ (version mainline)
W0316 18:57:07.023693 PluginsManager.cpp:157] Sample worklist plugin is initializing
W0316 18:57:07.024024 PluginsManager.cpp:157] Worklist server is disabled by the configuration file
W0316 18:57:07.036529 PluginsManager.cpp:261] Registering plugin ‘multitenant-dicom’ (version mainline)
W0316 18:57:07.046350 PluginsManager.cpp:261] Registering plugin ‘serve-folders’ (version mainline)
W0316 18:57:07.046810 PluginsManager.cpp:157] ServeFolders: Empty configuration file: No additional folder will be served!
W0316 18:57:07.047352 PluginsManager.cpp:261] Registering plugin ‘authorization’ (version mainline)
W0316 18:57:07.047374 PluginsManager.cpp:157] Initializing the authorization plugin
W0316 18:57:07.047764 PluginsManager.cpp:157] No section “Authorization” in the configuration file, the authorization plugin is disabled
W0316 18:57:07.048356 PluginsManager.cpp:261] Registering plugin ‘dicom-web’ (version mainline)
W0316 18:57:07.048715 PluginsManager.cpp:157] URI to the DICOMweb REST API: /dicom-web/
W0316 18:57:07.048955 PluginsManager.cpp:157] DICOMWeb PublicRoot: /dicom-web/
W0316 18:57:07.048966 PluginsManager.cpp:157] URI to the WADO-URI API: /wado
W0316 18:57:07.049317 PluginsManager.cpp:261] Registering plugin ‘orthanc-explorer-2’ (version mainline)
W0316 18:57:07.049602 PluginsManager.cpp:157] Root URI to the Orthanc-Explorer 2 application: /ui/
W0316 18:57:07.059768 PluginsManager.cpp:261] Registering plugin ‘gdcm’ (version 1.5)
W0316 18:57:07.060032 PluginsManager.cpp:157] Version of GDCM: 3.0.10
W0316 18:57:07.060045 PluginsManager.cpp:157] GDCM throttling is disabled
W0316 18:57:07.060462 PluginsManager.cpp:261] Registering plugin ‘indexer’ (version mainline)
W0316 18:57:07.060818 PluginsManager.cpp:157] OrthancIndexer is disabled
W0316 18:57:07.067655 PluginsManager.cpp:261] Registering plugin ‘mysql-index’ (version mainline)
W0316 18:57:07.068216 PluginsManager.cpp:157] No available configuration for the MySQL index plugin
W0316 18:57:07.077607 PluginsManager.cpp:261] Registering plugin ‘mysql-storage’ (version mainline)
W0316 18:57:07.078205 PluginsManager.cpp:157] No available configuration for the MySQL storage area plugin
W0316 18:57:07.083531 PluginsManager.cpp:261] Registering plugin ‘neuro’ (version mainline)
W0316 18:57:07.087626 PluginsManager.cpp:261] Registering plugin ‘ohif’ (version mainline)
W0316 18:57:07.093375 PluginsManager.cpp:261] Registering plugin ‘odbc-index’ (version mainline)
W0316 18:57:07.093633 PluginsManager.cpp:157] No available configuration for the ODBC index plugin
W0316 18:57:07.093942 PluginsManager.cpp:261] Registering plugin ‘odbc-storage’ (version mainline)
W0316 18:57:07.094176 PluginsManager.cpp:157] No available configuration for the ODBC storage area plugin
W0316 18:57:07.094930 PluginsManager.cpp:261] Registering plugin ‘postgresql-index’ (version mainline)
W0316 18:57:07.095158 PluginsManager.cpp:157] No available configuration for the PostgreSQL index plugin
W0316 18:57:07.095791 PluginsManager.cpp:261] Registering plugin ‘postgresql-storage’ (version mainline)
W0316 18:57:07.096013 PluginsManager.cpp:157] No available configuration for the PostgreSQL storage area plugin
W0316 18:57:07.096367 PluginsManager.cpp:261] Registering plugin ‘tcia’ (version mainline)W0316 18:57:07.096566 PluginsManager.cpp:157] No available configuration for the TCIA plugin, disabling it
W0316 18:57:07.096916 PluginsManager.cpp:261] Registering plugin ‘transfers’ (version mainline)
W0316 18:57:07.097535 PluginsManager.cpp:261] Registering plugin ‘volview’ (version mainline)
W0316 18:57:07.097933 PluginsManager.cpp:261] Registering plugin ‘wsi’ (version mainline)
W0316 18:57:07.098000 PluginsManager.cpp:157] The whole-slide imaging plugin will use at most 4 threads to transcode the tiles
W0316 18:57:07.098430 PluginsManager.cpp:157] Support of IIIF is enabled in the whole-slide imaging plugin
W0316 18:57:07.098962 PluginsManager.cpp:261] Registering plugin ‘web-viewer’ (version mainline)
W0316 18:57:07.098990 PluginsManager.cpp:157] Initializing the Web viewer
W0316 18:57:07.099205 PluginsManager.cpp:157] Web viewer using 2 threads for the decoding of the DICOM images
W0316 18:57:07.099215 PluginsManager.cpp:157] Storing the cache of the Web viewer in folder: /var/lib/orthanc/db/WebViewerCache
W0316 18:57:07.099950 PluginsManager.cpp:157] Web viewer using a cache of 100 MB
W0316 18:57:07.106743 PluginsManager.cpp:261] Registering plugin ‘stone-rtviewer’ (version mainline)
W0316 18:57:07.107118 PluginsManager.cpp:261] Registering plugin ‘stone-webviewer’ (version mainline)
W0316 18:57:07.107204 OrthancInitialization.cpp:426] SQLite index directory: “/var/lib/orthanc/db”
W0316 18:57:07.107435 OrthancInitialization.cpp:525] Storage directory: “/var/lib/orthanc/db”
W0316 18:57:07.109015 HttpClient.cpp:1194] HTTPS will use the CA certificates from this file: /etc/ssl/certs/ca-certificates.crt
W0316 18:57:07.096566 PluginsManager.cpp:157] No available configuration for the TCIA plugin, disabling it
W0316 18:57:07.096916 PluginsManager.cpp:261] Registering plugin ‘transfers’ (version mainline)
W0316 18:57:07.097535 PluginsManager.cpp:261] Registering plugin ‘volview’ (version mainline)
W0316 18:57:07.097933 PluginsManager.cpp:261] Registering plugin ‘wsi’ (version mainline)
W0316 18:57:07.098000 PluginsManager.cpp:157] The whole-slide imaging plugin will use at most 4 threads to transcode the tiles
W0316 18:57:07.098430 PluginsManager.cpp:157] Support of IIIF is enabled in the whole-slide imaging plugin
W0316 18:57:07.098962 PluginsManager.cpp:261] Registering plugin ‘web-viewer’ (version mainline)
W0316 18:57:07.098990 PluginsManager.cpp:157] Initializing the Web viewer
W0316 18:57:07.099205 PluginsManager.cpp:157] Web viewer using 2 threads for the decoding of the DICOM images
W0316 18:57:07.099215 PluginsManager.cpp:157] Storing the cache of the Web viewer in folder: /var/lib/orthanc/db/WebViewerCache
W0316 18:57:07.099950 PluginsManager.cpp:157] Web viewer using a cache of 100 MB
W0316 18:57:07.106743 PluginsManager.cpp:261] Registering plugin ‘stone-rtviewer’ (version mainline)
W0316 18:57:07.107118 PluginsManager.cpp:261] Registering plugin ‘stone-webviewer’ (version mainline)
W0316 18:57:07.107204 OrthancInitialization.cpp:426] SQLite index directory: “/var/lib/orthanc/db”
W0316 18:57:07.107435 OrthancInitialization.cpp:525] Storage directory: “/var/lib/orthanc/db”
W0316 18:57:07.109015 HttpClient.cpp:1194] HTTPS will use the CA certificates from this file: /etc/ssl/certs/ca-certificates.crt
W0316 18:57:07.109407 LuaContext.cpp:94] Lua says: Lua toolbox installed
W0316 18:57:07.109575 LuaContext.cpp:94] Lua says: Lua toolbox installed
W0316 18:57:07.109812 ServerContext.cpp:527] Disk compression is disabled
W0316 18:57:07.109826 ServerIndex.cpp:381] No limit on the number of stored patients
W0316 18:57:07.109831 ServerIndex.cpp:405] At most 35000MB will be used for the storage area
W0316 18:57:07.109872 ServerIndex.cpp:420] Maximum Storage mode: Recycle
W0316 18:57:07.111003 JobsEngine.cpp:272] The jobs engine has started with 1 threads
W0316 18:57:07.111064 main.cpp:310] Security risk in DICOM SCP: C-MOOVE requests are always allowed, even from unknown modalities
W0316 18:57:07.111080 main.cpp:1311] The DICOM port is privileged (104 is below 1024), make sure you run Orthanc as root/administrator
W0316 18:57:07.111699 main.cpp:1317] DICOM server listening with AET PDR_ORTHANC on port: 104
W0316 18:57:07.111724 HttpServer.cpp:2036] HTTP compression is disabled
W0316 18:57:07.111736 main.cpp:1172] Remote LUA script execution is disabled
W0316 18:57:07.111742 main.cpp:1184] REST API cannot write to the file system.
W0316 18:57:07.113396 HttpServer.cpp:1794] HTTP server listening on port: 8042 (HTTPS encryption is disabled, remote access is allowed)
W0316 18:57:07.113417 main.cpp:923] Orthanc has started
W0316 18:57:07.113750 PluginsManager.cpp:157] When using OE2 and the authorization plugin together, you must set ‘Authorization.CheckedLevel’ to ‘studies’. Unless you are usi$
dciodvfy output for example dicom given (no errors, but warnings related to the anonymization)
Warning - Missing attribute or value that would be needed to build DICOMDIR - Patient ID
Warning - Missing attribute or value that would be needed to build DICOMDIR - Study Date
Warning - Missing attribute or value that would be needed to build DICOMDIR - Study Time
Warning - Missing attribute or value that would be needed to build DICOMDIR - Study ID
Warning - Retired attribute - (0x0010,0x1000) LO Other Patient IDs
Warning - Retired attribute - (0x0032,0x000a) CS Study Status ID
Warning - Retired attribute - (0x0032,0x000c) CS Study Priority ID
Warning - Retired attribute - (0x0032,0x4000) LT Study Comments
Warning - Dicom dataset contains retired attributes
SCImage
Warning - Attribute is not present in standard DICOM IOD - (0x0010,0x1000) LO Other Patient IDs
Warning - Attribute is not present in standard DICOM IOD - (0x0010,0x1040) LO Patient’s Address
Warning - Attribute is not present in standard DICOM IOD - (0x0010,0x1060) PN Patient’s Mother’s Birth Name
Warning - Attribute is not present in standard DICOM IOD - (0x0010,0x1080) LO Military Rank
Warning - Attribute is not present in standard DICOM IOD - (0x0010,0x2154) SH Patient’s Telephone Numbers
Warning - Attribute is not present in standard DICOM IOD - (0x0032,0x000a) CS Study Status ID
Warning - Attribute is not present in standard DICOM IOD - (0x0032,0x000c) CS Study Priority ID
Warning - Attribute is not present in standard DICOM IOD - (0x0032,0x1032) PN Requesting Physician
Warning - Attribute is not present in standard DICOM IOD - (0x0032,0x1033) LO Requesting Service
Warning - Attribute is not present in standard DICOM IOD - (0x0032,0x1060) LO Requested Procedure Description
Warning - Attribute is not present in standard DICOM IOD - (0x0032,0x4000) LT Study Comments
Warning - Attribute is not present in standard DICOM IOD - (0x0038,0x0300) LO Current Patient Location
Warning - Attribute is not present in standard DICOM IOD - (0x0040,0x1001) SH Requested Procedure ID
Warning - Attribute is not present in standard DICOM IOD - (0x0040,0x1008) LO Confidentiality Code
Warning - Attribute is not present in standard DICOM IOD - (0x6000,0x0015) IS Number of Frames in Overlay
Warning - Attribute is not present in standard DICOM IOD - (0x6000,0x0051) US Image Frame Origin
Warning - Dicom dataset contains attributes not present in standard DICOM IOD - this is a Standard Extended SOP Class
Any help would be appreciated! Feel also free to ask for any further details (or anything really).
I overshooted the forum’s character limit. The orthanc configuration will be in a reply below!