Hi All,
Currently I use OrthanC and Cornerstone to view dicom. However seems like Orthanc cannot handle multi frame instance when Cornerstone makes request a WADO-RS to it. I tried to debug the Orthanc Dicom Web plugin and observed that it failed at the following stacks:
Orthanc: /home/phongtd/workingspace/orthanc-dicomweb/build/GDCM-prefix/src/GDCM/Source/DataStructureAndEncodingDefinition/gdcmExplicitDataElement.txx:479: const ostream& gdcm::ExplicitDataElement::Write(std::ostream&) const [with TSwap = gdcm::SwapperNoOp; std::ostream = std::basic_ostream]: Assertion `ValueField->GetLength() == ValueLengthField’ failed.
[1] 9325 abort (core dumped) ./Orthanc Configuration.json
Currently OrthanC Dicom Web is using GDCM version 2.8.8, but the newest version 3.0.4 already fixed the multiframe issue. In this link: https://book.orthanc-server.com/faq/supported-images.html , it said that “multiframe (notably cine) DICOM instances are currently not supported by the Web viewer plugin”. So is there any plan that gets OrthanC Dicom Web plugin fixed ?
jodogne
December 24, 2019, 10:41am
2
Hello,
Please would you kindly share a sample (possibly anonymized) DICOM image, together with command lines that lead to this backtrace, so that we can independently reproduce your issue?
Regards,
Sébastien-
Hi Sebastien,
Attachment is the sample MRI exported to us. I tried to use this url to access frames from OrthanC, and it threw exceptions as I post previously
localhost:8042/dicom-web/studies/1.3.46.670589.11.83128.5.0.13336.2019121008390581002/series/1.3.46.670589.11.83128.5.0.2832.2019121009172415354/instances/1.3.46.670589.11.83128.5.20.1.1.2832.2019121009172415354/frames/1
Orthanc: /home/phongtd/workingspace/orthanc-dicomweb/build/GDCM-prefix/src/GDCM/Source/DataStructureAndEncodingDefinition/gdcmExplicitDataElement.txx:479: const ostream& gdcm::ExplicitDataElement::Write(std::ostream&) const [with TSwap = gdcm::SwapperNoOp; std::ostream = std::basic_ostream]: Assertion `ValueField->GetLength() == ValueLengthField’ failed.
[1] 30132 abort (core dumped) ./Orthanc Configuration.json
MR000000.dcm (3.53 MB)
Hello,
Thanks for sharing this file.
I have just upgraded GDCM from 2.8.8 to 3.0.4 in the static builds of the DICOMweb plugin, and I confirm that the issue vanishes thanks to this single update:
https://bitbucket.org/sjodogne/orthanc-dicomweb/commits/dfec31bf370f91483cac911013d809a01aba2792
Regards,
Sébastien-
Hi Sébastien,
Can we please get a new “latest” release of the orthanc-plugins docker image at dockerhub with these changes?
BTW, is it something only you can access, or can other people initiate a docker image release there?
Thanks,
András
jodogne
January 24, 2020, 12:07pm
6
Hello,
The “jodogne/orthanc-plugins:latest” Docker image is now updated with this modification (i.e. the DICOMweb plugin using GDCM 3.0.4).
If you want to rebuild the Docker images by yourself, check out this repository:
https://github.com/jodogne/OrthancDocker
Sébastien-
Hi Sebastien,
I see another error when trying use them new lib OrthanCDicomWeb
http://localhost:8042/dicom-web/studies/1.3.46.670589.11.83128.5.0.13336.2019121008390581002/series/1.3.46.670589.11.83128.5.0.2832.2019121009172415354/instances/1.3.46.670589.11.83128.5.20.1.1.2832.2019121009172415354/frames/1
{
"HttpError" : "Bad Request",
"HttpStatus" : 400,
"Message" : "Parameter out of range",
"Method" : "GET",
"OrthancError" : "Parameter out of range",
"OrthancStatus" : 3,
"Uri" : "/dicom-web/studies/1.3.46.670589.11.83128.5.0.13336.2019121008390581002/series/1.3.46.670589.11.83128.5.0.2832.2019121009172415354/instances/1.3.46.670589.11.83128.5.20.1.1.2832.2019121009172415354/frames/1"
}
This is exception from log:
E0201 10:46:12.903453 PluginsErrorDictionary.cpp:111] Exception inside the plugin engine: Parameter out of range
Can you please help to elaborate ?
I think I’ve already seen this error when I forgot to include -H “Accept: multipart/related” in the curl command.
BTW, this reminded me that I forgot to commit this change to improve the error report: https://bitbucket.org/sjodogne/orthanc-dicomweb/commits/b5faee100a744eb0c3117a710b882baedf61c003
Hello,
Your command works properly on my computer using the latest Docker image.
In some terminal, start Orthanc as follows:
$ docker pull jodogne/orthanc-plugins:latest
$ docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc-plugins:latest
In another terminal, it can be seen that the requested frame is properly decoded by the DICOMweb plugin:
$ curl -u orthanc:orthanc http://localhost:8042/instances --data-binary @/tmp/MR000000.dcm
{
“ID” : “04382407-24c4f5bb-463c5341-3daa9b93-043bc785”,
“ParentPatient” : “3ea6c91e-241f256e-5e3a88eb-d6473720-22323a53”,
“ParentSeries” : “0a8b1b5d-99969812-a612784d-915d7d7a-d9e79906”,
“ParentStudy” : “be147f72-d17ebd8d-01290ce0-f80553ed-e4499f00”,
“Path” : “/instances/04382407-24c4f5bb-463c5341-3daa9b93-043bc785”,
“Status” : “Success”
}
$ curl -s -v -u orthanc:orthanc http://localhost:8042/dicom-web/studies/1.3.46.670589.11.83128.5.0.13336.2019121008390581002/series/1.3.46.670589.11.83128.5.0.2832.2019121009172415354/instances/1.3.46.670589.11.83128.5.20.1.1.2832.2019121009172415354/frames/1 > a
GET /dicom-web/studies/1.3.46.670589.11.83128.5.0.13336.2019121008390581002/series/1.3.46.670589.11.83128.5.0.2832.2019121009172415354/instances/1.3.46.670589.11.83128.5.20.1.1.2832.2019121009172415354/frames/1 HTTP/1.1
Host: localhost:8042
Authorization: Basic b3J0aGFuYzpvcnRoYW5j
User-Agent: curl/7.58.0
Accept: /
< HTTP/1.1 200 OK
< Connection: keep-alive
< Content-Type: multipart/related; type=“application/octet-stream; transfer-syntax=1.2.840.10008.1.2.1”; boundary=04648276-bc03-47d1-b8d2-ca61fb7040ff-3ba29520-cd4e-4d4f-b25e-1a82b5bdf
< Content-Length: 131593
<
{ [65285 bytes data]
Connection #0 to host localhost left intact
Sébastien-