This DICOM file can not be viewed with the web-viewer plugin, neither with OHIF's viewer

The attached DICOM file’s contents can not be viewed by the web-viewer plugin of Orthanc.
I didn’t see any error logs when the viewer makes a request to the dicom-web endpoints for the images.

Interestingly, we also have an OHIF viewer hooked up to our Orthanc server which also can’t display the image in this DICOM file!
In the case of OHIF however, we get an Internal Server Error from the dicom-web endpoint and Orthanc logs an error message as well:

I0115 21:10:17.443848 HttpServer.cpp:822] GET /dicom-web/studies/1.2.276.0.26.1.1.1.2.2020.45.52293.1506048/series
I0115 21:10:17.443909 OrthancPlugins.cpp:1628] Delegating HTTP request to plugin for URI: /dicom-web/studies/1.2.276.0.26.1.1.1.2.2020.45.52293.1506048/series
I0115 21:10:17.443927 PluginsManager.cpp:172] Arguments of QIDO-RS request:
I0115 21:10:17.443972 OrthancPlugins.cpp:2115] Plugin making REST POST call on URI /tools/find (built-in API)
I0115 21:10:17.445771 ServerContext.cpp:847] Number of candidate resources after fast DB filtering on main DICOM tags: 1
I0115 21:10:17.446865 ServerContext.cpp:944] Number of matching resources: 1
I0115 21:10:17.446966 OrthancPlugins.cpp:2048] Plugin making REST GET call on URI /series/7f1b8dd0-503d97c5-889a98f5-ee584a8d-2acf0a59/instances (built-in API)
I0115 21:10:17.448425 OrthancPlugins.cpp:2048] Plugin making REST GET call on URI /instances/da3e1026-7dc4d6f1-c2dd8be7-081b8a6f-4235b995/tags?short (built-in API)
I0115 21:10:17.448794 FilesystemStorage.cpp:155] Reading attachment “d045f258-64b5-4c81-9258-86c26f7ab183” of “JSON summary of DICOM” content type
I0115 21:10:17.449596 OrthancPlugins.cpp:2048] Plugin making REST GET call on URI /series/7f1b8dd0-503d97c5-889a98f5-ee584a8d-2acf0a59/instances (built-in API)
I0115 21:10:17.467617 HttpServer.cpp:822] GET /dicom-web/studies/1.2.276.0.26.1.1.1.2.2020.45.52293.1506048/series/1.2.276.0.26.1.1.1.2.2020.45.52293.6384450/metadata
I0115 21:10:17.467845 OrthancPlugins.cpp:1628] Delegating HTTP request to plugin for URI: /dicom-web/studies/1.2.276.0.26.1.1.1.2.2020.45.52293.1506048/series/1.2.276.0.26.1.1.1.2.2020.45.52293.6384450/metadata
I0115 21:10:17.469021 OrthancPlugins.cpp:2048] Plugin making REST GET call on URI /series/7f1b8dd0-503d97c5-889a98f5-ee584a8d-2acf0a59/study (built-in API)
I0115 21:10:17.470408 OrthancPlugins.cpp:2048] Plugin making REST GET call on URI /series/7f1b8dd0-503d97c5-889a98f5-ee584a8d-2acf0a59/instances (built-in API)
I0115 21:10:17.472082 OrthancPlugins.cpp:2048] Plugin making REST GET call on URI /instances/da3e1026-7dc4d6f1-c2dd8be7-081b8a6f-4235b995/tags?short (built-in API)
I0115 21:10:17.472856 FilesystemStorage.cpp:155] Reading attachment “d045f258-64b5-4c81-9258-86c26f7ab183” of “JSON summary of DICOM” content type
I0115 21:10:17.473965 OrthancPlugins.cpp:2048] Plugin making REST GET call on URI /instances/da3e1026-7dc4d6f1-c2dd8be7-081b8a6f-4235b995/file (built-in API)
I0115 21:10:17.474735 FilesystemStorage.cpp:155] Reading attachment “cbb134c3-69c4-4ed3-b568-8a5e7a87b6e2” of “DICOM” content type
I0115 21:10:17.519561 HttpServer.cpp:822] GET /dicom-web/studies/1.2.276.0.26.1.1.1.2.2020.45.52293.1506048/series/1.2.276.0.26.1.1.1.2.2020.45.52293.6384450/instances/1.2.276.0.26.1.1.1.2.2020.45.52366.2551599.179568640/frames/1
I0115 21:10:17.519643 OrthancPlugins.cpp:1628] Delegating HTTP request to plugin for URI: /dicom-web/studies/1.2.276.0.26.1.1.1.2.2020.45.52293.1506048/series/1.2.276.0.26.1.1.1.2.2020.45.52293.6384450/instances/1.2.276.0.26.1.1.1.2.2020.45.52366.2551599.179568640/frames/1
I0115 21:10:17.520941 OrthancPlugins.cpp:2048] Plugin making REST GET call on URI /instances/da3e1026-7dc4d6f1-c2dd8be7-081b8a6f-4235b995/series (built-in API)
I0115 21:10:17.523231 OrthancPlugins.cpp:2048] Plugin making REST GET call on URI /instances/da3e1026-7dc4d6f1-c2dd8be7-081b8a6f-4235b995/study (built-in API)
I0115 21:10:17.524651 OrthancPlugins.cpp:2048] Plugin making REST GET call on URI /instances/da3e1026-7dc4d6f1-c2dd8be7-081b8a6f-4235b995/file (built-in API)
I0115 21:10:17.524988 FilesystemStorage.cpp:155] Reading attachment “cbb134c3-69c4-4ed3-b568-8a5e7a87b6e2” of “DICOM” content type
I0115 21:10:17.533707 OrthancPlugins.cpp:2048] Plugin making REST GET call on URI /instances/da3e1026-7dc4d6f1-c2dd8be7-081b8a6f-4235b995/header?simplify (built-in API)
I0115 21:10:17.534190 FilesystemStorage.cpp:155] Reading attachment “cbb134c3-69c4-4ed3-b568-8a5e7a87b6e2” of “DICOM” content type
I0115 21:10:17.539708 PluginsManager.cpp:172] DICOMweb RetrieveFrames on da3e1026-7dc4d6f1-c2dd8be7-081b8a6f-4235b995, frames: 1
I0115 21:10:17.539755 PluginsManager.cpp:172] DICOMweb RetrieveFrames: Transcoding instance da3e1026-7dc4d6f1-c2dd8be7-081b8a6f-4235b995 from transfer syntax 1.2.840.10008.1.2.4.50 to 1.2.840.10008.1.2
E0115 21:10:20.050828 PluginsErrorDictionary.cpp:111] Exception inside the plugin engine: Internal error

Is there something wrong with the DICOM file?
Are we missing some plugin or configuration?

Any help is greatly appreciated!

US000000.dcm (3.58 MB)

Hi,

This dicom file's Photometric Interpretations is 'YBR_FULL_422'
Maybe it is rare and i am not familiar with this format.
See: http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.7.6.3.html#sect_C.7.6.3.1.2

Anyone knows how to decode it?

Hi,

My DICOM Viewer can read the dicom file but cannot be viewed correctly.

I will fix it if i have time.

Hiroaki Inomata, MD
PHAZOR, LLC
https://phazor.info

US_YRM_FULL_422.jpg

Hi András

Thanks for reporting the issue. I’ve filed an orthanc issue mainly for the DicomWeb problem : https://bitbucket.org/sjodogne/orthanc/issues/164/jpeg-ybr_422-generates-a-500-in-the

Note that the file can currently be viewed with the Osimis WebViewer.

Best regards,

Further information that might help: the images can be viewed with an older version of orthanc (1.3.1) webviewer 2.3.

  1. január 15., szerda 23:10:05 UTC+1 időpontban András Sallai a következőt írta:

Could it be coming from this line?
https://bitbucket.org/sjodogne/orthanc-dicomweb/annotate/8b8b8cef7722779ac10a0ac1480b2eed7513844e/Plugin/WadoRsRetrieveFrames.cpp?at=default&fileviewer=file-view-default#WadoRsRetrieveFrames.cpp-421

Note that I have updated the issue tracker with some info about the 2 sub-issues (https://bitbucket.org/sjodogne/orthanc/issues/164/jpeg-ybr_422-generates-a-500-in-the ).

Unfortunately, I currently do not have any workaround for the DicomWeb issue since it’s lying quite deep in GDCM.

For the WebViewer issue, a workaround is to use this configuration:

I had no time to get in deeper … As a workaround, you can configure the viewer with this config to use GDCM only for JP2K decoding and use DCMTK for all other decoding. That’s actually the ideal configuration.

"WebViewer" : {
    "EnableGdcm" : true,
    "RestrictTransferSyntaxes" : [
      "1.2.840.10008.1.2.4.90",   // JPEG 2000 Image Compression (Lossless Only)
      "1.2.840.10008.1.2.4.91",   // JPEG 2000 Image Compression
      "1.2.840.10008.1.2.4.92",   // JPEG 2000 Part 2 Multicomponent Image Compression (Lossless Only)
      "1.2.840.10008.1.2.4.93"    // JPEG 2000 Part 2 Multicomponent Image Compression
    ]
  }

Hello,

A fix to this issue is now pending in the mainline of the DICOMweb plugin:
https://bitbucket.org/sjodogne/orthanc/issues/164/

https://bitbucket.org/sjodogne/orthanc-dicomweb/commits/2977ef0eabbb0700a593e58ef23ab284acd95b83

HTH,
Sébastien-