PostgreSQL 10.0, Python 7.0 & DICOMWeb 1.22

Hi everyone,

A few small updates for these 3 plugins.

PostgreSQL 10.0 and Python 7.0 updates are mainly providing new Reserve and Acknowledge primitives for Queues in plugins

DICOMweb 1.22 brings improved stability.

Note that, for PostgreSQL, this version comes with an updated DB schema (rev 10) so check the Orthanc book if you have a large system with multiple Orthanc instances connected to the same DB.


All these releases are available

Enjoy !

Alain

2 Likes

DICOMweb 1.22 brings improved stability.

Hi Alain

dicomweb fails to build:

[ 47s] /var/lib/build/ccache/bin/c++ -DBOOST_ATOMIC_DYN_LINK -DBOOST_ATOMIC_NO_LIB -DBOOST_CHARCONV_DYN_LINK -DBOOST_CHARCONV_NO_LIB -DBOOST_CHRONO_DYN_LINK -DBOOST_CHRONO_NO_LIB -DBOOST_CO
NTAINER_DYN_LINK -DBOOST_CONTAINER_NO_LIB -DBOOST_DATE_TIME_DYN_LINK -DBOOST_DATE_TIME_NO_LIB -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_FILESYSTEM_NO_LIB -DBOOST_FILESYSTEM_VERSION=3 -DBOOST_HAS_FI
LESYSTEM_V3=1 -DBOOST_IOSTREAMS_DYN_LINK -DBOOST_IOSTREAMS_NO_LIB -DBOOST_LOCALE_DYN_LINK -DBOOST_LOCALE_NO_LIB -DBOOST_RANDOM_DYN_LINK -DBOOST_RANDOM_NO_LIB -DBOOST_REGEX_DYN_LINK -DBOOST_RE
GEX_NO_LIB -DBOOST_THREAD_DYN_LINK -DBOOST_THREAD_NO_LIB -DDICOMWEB_CLIENT_PATH=\“/home/abuild/rpmbuild/BUILD/orthanc-dicomweb-1.22-build/OrthancDicomWeb-1.22/WebApplication/\” -DHAS_ORTHANC_
EXCEPTION=1 -DJSONCPP_DEPRECATED_STACK_LIMIT=5000 -DORTHANC_API_VERSION=29 -DORTHANC_BUILDING_FRAMEWORK_LIBRARY=0 -DORTHANC_DATABASE_VERSION=6 -DORTHANC_DEFAULT_DICOM_ENCODING=Encoding_Latin1
-DORTHANC_DICOM_WEB_NAME=\“dicom-web\” -DORTHANC_DICOM_WEB_VERSION=\“1.22\” -DORTHANC_ENABLE_BASE64=1 -DORTHANC_ENABLE_CIVETWEB=0 -DORTHANC_ENABLE_CURL=0 -DORTHANC_ENABLE_DCMTK=0 -DORTHANC_E
NABLE_DCMTK_JPEG=0 -DORTHANC_ENABLE_DCMTK_JPEG_LOSSLESS=0 -DORTHANC_ENABLE_DCMTK_NETWORKING=0 -DORTHANC_ENABLE_DCMTK_TRANSCODING=0 -DORTHANC_ENABLE_JPEG=0 -DORTHANC_ENABLE_LOCALE=1 -DORTHANC_
ENABLE_LOGGING=1 -DORTHANC_ENABLE_LOGGING_PLUGIN=1 -DORTHANC_ENABLE_LOGGING_STDIO=0 -DORTHANC_ENABLE_LUA=0 -DORTHANC_ENABLE_MD5=1 -DORTHANC_ENABLE_MONGOOSE=0 -DORTHANC_ENABLE_PKCS11=0 -DORTHA
NC_ENABLE_PNG=0 -DORTHANC_ENABLE_PROTOBUF=0 -DORTHANC_ENABLE_PUGIXML=1 -DORTHANC_ENABLE_SQLITE=0 -DORTHANC_ENABLE_SSL=0 -DORTHANC_ENABLE_ZLIB=1 -DORTHANC_MAXIMUM_TAG_LENGTH=256 -DORTHANC_SAND
BOXED=0 -DORTHANC_STANDALONE=1 -DORTHANC_VERSION=\“1.12.10\” -DORTHANC_VERSION_MAJOR=1 -DORTHANC_VERSION_MINOR=12 -DORTHANC_VERSION_REVISION=10 -DOrthancDicomWeb_EXPORTS -D_FILE_OFFSET_BITS=6
4 -D_LARGEFILE64_SOURCE=1 -D__ORTHANC_FILE__=\“WadoRs.cpp\” -I/home/abuild/rpmbuild/BUILD/orthanc-dicomweb-1.22-build/OrthancDicomWeb-1.22/build/AUTOGENERATED -I/usr/src/orthanc/OrthancFramew
ork/Sources -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -Wall
-Wno-long-long -Wno-variadic-macros -O2 -g -DNDEBUG -fPIC -MD -MT CMakeFiles/OrthancDicomWeb.dir/Plugin/WadoRs.cpp.o -MF CMakeFiles/OrthancDicomWeb.dir/Plugin/WadoRs.cpp.o.d -o CMakeFiles/Or
thancDicomWeb.dir/Plugin/WadoRs.cpp.o -c /home/abuild/rpmbuild/BUILD/orthanc-dicomweb-1.22-build/OrthancDicomWeb-1.22/Plugin/WadoRs.cpp
[ 47s] /home/abuild/rpmbuild/BUILD/orthanc-dicomweb-1.22-build/OrthancDicomWeb-1.22/Plugin/WadoRs.cpp:35:10: fatal error: MultiThreading/BlockingSharedMessageQueue.h: No such file or direct
ory
[ 47s] 35 | #include <MultiThreading/BlockingSharedMessageQueue.h>
[ 47s] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ 47s] compilation terminated.
[ 47s] make[2]: *** [CMakeFiles/OrthancDicomWeb.dir/build.make:1160: CMakeFiles/OrthancDicomWeb.dir/Plugin/WadoRs.cpp.o] Error 1
[ 47s] make[2]: Leaving directory ‘/home/abuild/rpmbuild/BUILD/orthanc-dicomweb-1.22-build/OrthancDicomWeb-1.22/build’
[ 47s] make[2]: *** Waiting for unfinished jobs…
[ 47s] make[2]: Entering directory ‘/home/abuild/rpmbuild/BUILD/orthanc-dicomweb-1.22-build/OrthancDicomWeb-1.22/build’

Any new dependency I missed?

Found the reason - it is missing in Orthanc 1.12.10:

MultiThreading/SharedMessageQueue.h is in the sources, MultiThreading/BlockingSharedMessageQueue.h not

Hi @COOGOR

Actually, the DICOMweb plugin is not using the Orthanc Framework 1.12.10 but a “temporary” framework that has been released later. Only this later framework contains the BlockingSharedMessageQueue.

Could you paste the cmake command that you use to initiate the build ? It seems that, somehow, you enforce using the 1.12.10 Orthanc framework - and maybe there’s a rule on OpenSuse to force using only official releases of libraries and not ones that are download during the build process. If it is so, I’m afraid you’ll have to stick with the previous version of the DICOMweb plugin…

Hope this helps,

Alain.

Hello Alain,

thanks for the update. In Build Service, downloads at build time are generally not allowed. On the other hand, during configuration, it did not ask for an additional download (of the new framework). All other files are stored in the download directory:

%cmake ../ \
       -DALLOW_DOWNLOADS=OFF \
       -DUSE_SYSTEM_GOOGLE_TEST=ON \
       -DUSE_SYSTEM_ORTHANC_SDK=ON \
       -DORTHANC_FRAMEWORK_SOURCE=path \
       -DBoost_NO_BOOST_CMAKE=ON \
       -DORTHANC_FRAMEWORK_ROOT=/usr/src/orthanc/OrthancFramework/Sources \
       -DLIB_INSTALL_DIR=%{_libdir}/share/orthanc/plugins/

I finally found the preversion of the framework, need to check how I can include this in the build.

(BTW, it’s not OpenSuse, but openSUSE…since 15 +years)

Basically, if you are able to include the preversion of the framework within the DICOMweb source and uncompress it somewhere, you’ll only have to change the ORTHANC_FRAMEWORK_ROOT to reference that preversion folder.

:crossed_fingers:

Dear Axel,

Thanks again for your work on packaging Orthanc for openSUSE!

In GNU/Linux distros, it is generally a bad practice to ship additional downloads if the source code is already part of another package (in this case, the orthanc package).

Here is a patch that fixes backward compatibility with the latest official release of Orthanc: orthanc-dicomweb: f91a925218f2

The latter patch will soon be included in the official Debian package of the DICOMweb plugin that I maintain.

Kind Regards,
Sébastien-

Thank you Sebastien!

With this fix it builds again.