Not implemented yet: Multipart answers are not implemented together with keep-alive connections if using Mongoose

Hi there,

I’ve just installed orthanc-dicomweb from my Debian/stable system (*), and I wanted to try out WADO-RS implementation. So I figured I would follow:

Which states:

[…]
A study can be retrieved through WADO-RS. Here is a sample using the VIX dataset:
$ curl http://localhost:8042/dicom-web/studies/2.16.840.1.113669.632.20.1211.10000315526/
[…]

For some reason here is what I get on my side:

% curl -s http://localhost:8042/dicom-web/studies/ | grep -A 1 0020000D
“0020000D” : {
“Value” : [ “1.2.840.113619.2.5.1762386977.1328.985934491.590” ],

then:

% curl http://localhost:8042/dicom-web/studies/1.2.840.113619.2.5.1762386977.1328.985934491.590/
{
“HttpError” : “Internal Server Error”,
“HttpStatus” : 500,
“Message” : “Error in the network protocol”,
“Method” : “GET”,
“OrthancError” : “Error in the network protocol”,
“OrthancStatus” : 9,
“Uri” : “/dicom-web/studies/1.2.840.113619.2.5.1762386977.1328.985934491.590/”
}

Logs reveal:

[…]

E0203 15:12:04.165178 OrthancException.h:85] Not implemented yet: Multipart answers are not implemented together with keep-alive connections if using Mongoose
E0203 15:12:04.165282 PluginsManager.cpp:197] Exception while invoking plugin service 2008: Not implemented yet
E0203 15:12:04.165328 PluginsErrorDictionary.cpp:111] Exception inside the plugin engine: Error in the network protocol

[…]

What did I miss from the documentation and/or installation step ?

Thanks much,

(*)
% apt-cache policy orthanc-dicomweb
orthanc-dicomweb:
Installed: 0.6+dfsg-1
Candidate: 0.6+dfsg-1
Version table:
*** 0.6+dfsg-1 500
500 http://deb.debian.org/debian buster/main amd64 Packages
100 /var/lib/dpkg/status

Hi Mathieu,

The versions of Orthanc in Debian Buster are quite outdated (Orthanc 1.5.6 and DICOMweb plugin 0.6, both from early 2019).

I guess that the error you observe comes from the fact that “orthanc 1.5.6+dfsg-1” wasn’t using the recommended Civetweb library, which was corrected by “1.5.8+dfsg-3”:
https://salsa.debian.org/med-team/orthanc/-/commit/5c42f204b088a9abb345ee5ceb5e67ed5a6060d0

Our demo server that runs up-to-date Orthanc 1.9.0 and DICOMweb plugin 1.5 works correctly if facing your WADO-RS request:

$ curl -s https://demo.orthanc-server.com/dicom-web/studies/2.16.840.1.113669.632.20.1211.10000315526/ | less

The two possible solutions would be to backport from Debian Sid (that is also up-to-date), or to compile the Orthanc 1.5.6 package using “-DENABLE_CIVETWEB=ON” in the call to CMake in d/rules:
https://salsa.debian.org/med-team/orthanc/-/blob/b02677aa707fccfc96c783bc7863cd9b10a54da6/debian/rules

Note that the former solution would require to also backport “libcivetweb-dev” for Buster, and the latter solution would necessitate to reimplement the patch from “1.5.8+dfsg-3”. Evidently, alternative solutions do exist (using Docker, using Linux Standard Base binaries, or evidently recompiling from source).

HTH,
Sébastien-

Thanks Sébastien for the quick help !

I’ll go with the ‘latter’ solution because of #981753 at least for now.