Conquest DICOM server 1.5.0 released

  • Hi Conquest users,

    Finally here is release 1.5.0. This is the first fully open source version of Conquest DICOM server.

    You can download the release here:…ver/

    This is the corresponding Github commit for 1.5.0:…9e86b28be121f7c0913479ec4

    Several beta versions have been used and tested, so it should be very stable. But of course, reporting of any issues will be greatly appreciated.

    As usual you can update by extracting dgate.exe or dgate64.exe and conquestdicomserver.exe, but also quite a few other files have changed - mainly in the web interface, lua code and installer.

    20200691 A fix for the failure to compress received data has just been put on github. Windows executables can be found there too!

    The latest source code (1.5.0+) can be browsed on:


  • This is the buglist, starting with leftover bugs from earlier versions, per catagory:

    Documentation bugs

    D1) Publish about Docker release of Lance

    D2) Document limitations of strings (e.g. 360 for process by xxx)

    D3) Document source of contributions, in particular the Papaya redistributable


    D4) The readme file in github was updated after the release

    D5) Nightlymove is stated to work for service/linux while it does not

    GUI bugs

    G1) browse tab does not work if user of server service and server gui are differerent.


    G2) GUI queries from the browser contain case errors e.g. DicomPatients i.s.o DICOMPatients - fail when mixing linux sql (docker) and windows GUI

    G3) (related to G1) document that GUI should be installed as normal user, then closed and opened as admin to install service

    Web interface bugs

    W1) web viewers are not properly started when there are spaces in the patient ID


    W2) arrow buttons on viewer and keys for slicing can be out of sync

    W3) exceptions list is truncated at 255 characters, should be 511

    DICOM Communication bugs

    C1) Check these changes: 20140608 mvh Added BYTE PCid to CStoreRSP::Write; This change is under review: pcid does not seem to get the right value

    C2) Multiple instance matching incomplete

    Installer bugs or limitations (low priority)

    I1) sql server and access database ODBC install only work for 32 bits of dgate (e.g. disable 64 bits or create ODBC entry by hand)

    I2) last line of dicom.ini does not read if no CR (IndexDBF = 50) - futured

    I3) use BaseDir on dgate to find all folders (now many use current folder, complicating installer development). Implemented for web interface and lua in 1.5.0beta

    I4) web installer should copy html folders as well

    I5) Fedora uses /var/www, and nohup has an issue. Therefore provide specific web install scripts for other linux flavours, e.g. Once started the same web installer should run. Fedura also requires "sudo setenforce Permissive" for the web server and install to work; also must be copied locally to the cgi-bin/newweb folder rather than pointing to the server folder.

    I6) Web installer on windows does not offer a 'regen' by itself


    I7) Oracle linux issues see below; add mysql/mariadb option

    18 ) default incoming folder is not created in linux

    Unconfirmed bugs:

    U1) overlapvirtualget=0 breaks the virtual server operation (hardw) - Not confirmed by testing

    U2) color print server does not work. - futured, awaiting more information.

    U3) Forward compressed as j2(?) does not set transfer syntax UID correctly in transmitted image. This is an issue on dcm4che but has not been seen in conquest to conquest transmission.

    U4) enpq reported random failure in 'process by after' mechanism (not confirmed)

    U5) GUI fails to run as user after install as service on server2012; does run as admin - not confirmed

    U6) I was also expecting DicomObject:Read('stu\ser\sop') to work with virtual servers but I tested it again and sadly no luck there

    U7) Show header in wadoviewer (wado text) open as dgate.exe downloads instead of as text viewer

    Below ---- newly found bugs for 1.5.0 will be collected (also see above)

    N1) Bridges like lunatic-python require a global lua instance, add doglobalua: with critical section around this and other global instance callers. Added in 1.5.0a.

    N2) e.g. Addimagefile opens a database for each image - try to make this and other database connections more global for speed. Fixed for incoming folder in 1.5.0a.

    N3) the exceptions string in cgi-bin/dicom.ini is truncated to 256 characters. Fixed, now 511 characters in 1.5.0a.

    N4) pivoglot: Please change GetAtoi() in nkiqrsop.cpp line 4359 to GetUINT16(), because Bits Allocated Attribute Tag (0028,0100) has Unsigned Short type. Otherwise, atoi() in GetAtoi() olways return zero. Fixed in 1.5.0a; blocked jpeg compression of all images.

    ----- released to Github -------

    N5) On Centos (only), socket data buffering changes cause corruption of large images. MrJohnBravo

    Marcel van Herk is developer of the Conquest DICOM server together with Lambert Zijp.

    Edited 18 times, last by marcelvanherk: Layout and order ().

  • Here feature requests will be collected

    1) add LittleEndianExplicit to GUI connecting to dgate. Futured. Partly in 1.5.0beta1

    2) Improve safety of sqlite by regular flushing. Futured, but users can change SqLite startup pragma for safer operation in 1.4.19c

    3) install second server when service of first runs gives trouble - do an echo on the install button and fail if found - futured

    4) wish: OperatorConsole.printf ("*** multiplex: connection terminated [%s]\n", CallingApTitle); Impossible - AE would not have been read

    5) Implement web interface for batch anonymisation - futured

    6) Make max PDU size configurable. Futured.

    7) request for time stamp in ms. Futured.

    8 ) Use conquestdicomserver.lua from gui

    9) Modify lua weasis starter for non-jnlp version

    10) optionally allow 2 viewers from web client, add selection in web installer. One selection in 1.4.19c1

    11) Use flag to avoid error messages from install controller (*** Not enough rights; ***Error loading)

    12) Provide dgateserv service installers in web install

    13) Update SqLite version to latest


    14) Add lunatic-python lua-python bridge to the release

  • Hi,

    Tip for installation: During installation windows10 gives several AUC messages that should be overriden. The easiest way is to right click on the different applications (e.g. ConquestDicomServer.exe) show properties, and unblock.


  • Hi Marcel,

    thanks for Your very great work. Over 10 years ago i've used Conquest linux server (on PLD and Gentoo distros) and they were working nearly 7 years without any touch so super dear. Today i'm comming back to make fresh install (on Oracle 8.1) with Conquest 1.5.0 (from 15.03.2020) but there are few installation problems that stopped me, despite i was doing according to linux manual (looked pretty simple), but :)

    1. The first is that maklinux script by default is using lua=-llua5.1 (as external) but it doesn't work in my situation (i have default ver 5.3.4 and only one *.so file in repo package). So i changed the lines to use and compile src from Your package and with sqlite3 (for test only) it compiled and worked (however there were problem that AESKULAP couldn't get test images). Ok i didn't check more and moved to maklinux and pick mariadb option, where

    2. it gave another errors with mysql no directories and files descriptions. I can see now that Mariadb and Mysql are not compatible, unfortunately on Oracle Linux 8.1 there is no /var/lib64/mysql but /var/lib64/mariadb so no linking here and some packages are different also so i've changed my mind to go back and try to install mysql8.

    3. The last error after picking mariadb in maklinux (despite i've reinstalled to change on mysql8) is i think some missed line after we're linking mysql lib64 catalog so script is no comming back to conquest installation pwd and then we have errors with 'directory/file no exist'

    4. Of course g++ with -I flags i have to change from mariadb to mysql, maybe it would be better to just add another options in picking user database

    Finally i did my compilation successful and instance working, but by this post i want to help somehow anyone trying to install and especially to help You with some hints for next updates.

    ps. i'm doing bigger infrastructure config, so perhaps i'll come back with some bigger questions ;)

  • Hi thanks for your report,

    This time I spent more time on depth (tested one Linux in depth), so I appreciate your efforts on another one. If you can post your fixed maklinux I can add it as e.g. maklinux_oracle.

    For lua: I installed lua5.1 and lua 5.3 side by side. Since conquest and its extensions are all based on lua5.1 I would suggest to so the same. Nothing has been tested against Lua5.3., such as web server and anonymisation.

    For mariadb/mysql: I maintain multiple search paths in maklinux, so you may be able to add paths rather than edit them. Of course I can add another choice as well.



  • Hi,

    please find the attached file. Please also notice it was just for my scenario configuration. As reminder, i'm using Oracle Linux 8.1 with MySql 8. Maybe it will help even a little other members. Anyway it's not my job but Yours Marcel! :)

  • Marcel

    Running Cent 7.6 and I've managed to compile dgate by changing some of the lines in the maklinux script regarding mysql/mariadb. Locations of headers and .so mostly . But now that I've compiled and run I'm getting a couple of errors that are confusing.

    First is that the server is telling me that I don't have enough rights to MAG0 when I I'm using the same user to start dgate as created that directory and also I have rwx set for ugo on that directory as well.

    error is :

    Wed May 13 17:03:39 2020 *** Not enough rights to write in MAG0

    directory config:

    drwxrwxrwx. 2 root root 21 May 13 16:55 data


    I started dgate as follows:

    ./dgate -v

    Second is the following error ... which i assume is telling me that somehow dgate hasn't been able to connect to the mysql / maridb driver?

    Database type: NULL driver (black hole)

    Any hints or suggestions would be appreciated .

    Thanks in advance

    MrJohnathan Bravo

  • Started using version 1.5.0.

    OS version - Win XP SP3.

    I did not immediately notice after use - the selected compression method of the received files does not work ...

    Checked on two different computers with WinXP ...

    Also checked on Win7 - also does not work!

    JPEG compression does not work!

    Is this a bug?

    Or am I doing something wrong?

  • Marcel

    I'm seeing an issue tranmitting DX images , whereby a DX has corrupted data after being transmitted from 1.5.0 . Not a lot of corruption , but definite and absolutely traceable to 1.5.0 . I've reverted back to 1.14.19b and the issue is not present there. I can provide more information and potentially a debuglog if you would like to track this down. It seems very specific in 1.5.0 to only affect DX transmissions. I had seen this type of corruption after transmission in 1.14.19c , d, d2 but it was more prevalent in those versions affecting more modalities. Please let me know what I can do to assist tracking this down.


  • Hi,

    OK this is strange socket error on Linux that depends on the used buffer sizes. I had tested it but aparently not on big enough images.

    This issue is in pdu.cxx and buffer.cxx (and potentially pdata.cxx) in the dicomlib. I can use help to track this down.


Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!