Update 1.4.17d released

  • Hi all,

    Here are full updates to the 1.4.17d system, that were pre-released March 9, 2013.

    The DICOM server for windows:

    The DICOM server for Linux with full scripting and web interface and source code:

    Source code of the server core executable (without libraries):

    Source code of the DICOM library:

    This release fixes several bugs. See the post below as well as the 1.4.17c announcement for bugs fixed and features added.

    Please report any bugs or issues you find.

    Thanks, Marcel

  • Bugs for 1.4.17d will be collected here.

    From 1.4.17c

    1) "forward study" sees images with and without patient ID (only possible if AllowEmptyPatientID = 1) as coming from different studies. As workaround use something like "ifnotempty %VPatientID; forward study to DEST". Futured.

    2) writing directly into dicom.ini as in: Global.ForwardAssociationLevel = 'SERIES' is not thread safe and may crash the server if done by multiple threads at the same time. Futured.

    3) there may be an issue with non-standard DICOM objects and compression. To be investigated. As workaround detect these objects in importconverter and use "destroy: to make sure they do not enter the database. Futured.

    4) forward compressed as j2 to a certain system shows accepted compression j1. This is probably normal behavior, any lossless jpeg is accepted if one is proposed.

    7) service control manager loses contact during shutdown from 'services' on wsv 2008 or win7. Workaround: ignore the error message, the server did stop. Futured.

    14) Table names are hardcoded in some queries, e.g., DicomImages.SOPInstanceUID. Also holds for DICOMWorklist (this is fiex in 1.4.19alpha). Futured.

    17) Virtual query does not combine the results of computed fields like NumberOfPatientRelatedInstances but only returns a single one. Futured.

    26) IU-22 ultrasound machines hang in the connection after 1.4.17. Needs to be reconfirmed

    28 ) check why defer does not work on e.g., delayed forward study

    31) j2 compressed data has the wrong transfer syntax in the file, and sending it out with j2 transmits this wrong syntax. At least this is reported when running with efilm. NOT CONFIRMED

    45) FL in headerlister should be an array. Futured. May be in 1.4.17e, need to check. Is in 1.4.19alpha

    47) Update with cppcheck reports linux distro. Some in 1.4.17d, all in 1.4.17e, 1.4.19alpha

    50) Data:Read(file) (reading into global data object) crashes the server (if Data is yet undefined - it is fine when receiving a DICOM object), while readdicom(file) works OK. Partly fixed in 1.4.17d, rest futured.

    58 ) Document required encoding for postgres (e.g., LATIN1 or Win1251). More or less in 1.4.17d

    59) extend return codes for -- commands; addimagefile has one in 1.4.17d, fixes in 1.4.17e but not all commands implemented


    New list for 1.4.17d

    1) Update overview.lua
    2) include some form of nifty.lua
    3) fix array copy constructor in array.thh (reason for broken print in cqdicom, no problem in release as old cqdicom used). In 1.4.17e
    4) update mismatched new and delete [] in buffer.cxx, rtc.cxx, farray.thh, device.cxx and dbsql.cxx. Part in 1.4.17e, all in 1.4.19alpha
    5) update command line help for dgate -un. In 1.4.19alpha
    6) update SQLite. In 1.4.19alpha
    7) a certain ping program kills dgate once in a while. Futured.
    8 ) In conquest-pacs.sh + --chuid $PACSUSER --chdir $HOME --exec $DAEMON -- $ARGS
    9) Set require('mobdebug').checkcount = 1 in interpreter. In 1.4.19alpha
    10) luiz DGATE CPP WEBSERVER CLONE DONE WITH LUA SCRIPTS uses old dictionary names ImageDate and ImageNumber; check link to thumbnails includes correct web server address. In 1.4.19alpha
    11) return code should be zero for normal operation (toskrip). 1.4.19alpha
    12) remove :done call in ZBS interpreter. 1.4.19alpha
    13) accelerate <array> for large queries. 1.4.19alpha
    14) allow regen of files with arbitrary extension
    15) DicomObject:Read('p:sop') does not access virtual servers while DicomObject:Read('stu\ser\sop') does. To document.
    16) dicommove code completion in zbs is incorrect. In 1.4.19alpha
    17) mirror operation seems to be conflicting/enabling virtual server functions; mirror copy retry not functional ?
    it is functional but contains no mkdir - works for flat patient folder only. Fixed in 1.4.19alpha
    18 ) ZBS install for ZBS060 should now put wordwrap plugin in packages and has trouble setting project. In 1.4.19alpha
    19) Documentation error: NightlyCleanThreshhold is no longer windows only.
    20) Add VirtualServerFor0 to Alea/config page. In 1.4.19alpha
    21) Block .partial files in incoming. In 1.4.19alpha
    22) context ID of cstore-response does not match the one of incoming c-store. In 1.4.17e, 1.4.19alpha
    23) anonymize_script does not work when PatientID is not defined, add or 'unknown'. In 1.4.19alpha
    24) check list of supported sop classes see mail McDonagh. In 1.4.19alpha
    25) web server issues for server with full anonymized access
    26) bitmap conversion fixes: crash on corrupt data and enhanced MR: in 1.4.19alpha
    27) increase default large bitmap size limit in dicom.ini. In 1.4.19alpha
    28 ) PresentationContextID for c-store reponse misfit with the incoming c-store request. In 1.4.17e, 1.4.19alpha
    29) properly include Luiz's scripted server pages. In 1.4.19alpha
    30) GUI query proposes four contexts at one transfer syntax. Maybe this should be revised as Aria refuses this. It only accepts explicit transfer. Being tested but will likely not be released now. This is actually a parse issue in Aria responses. Fixed In 1.4.17e, 1.4.19alpha
    31) Update table is not multi-user safe: the record might be in process of creation when another one arrives as well. This gives a ***SQLITEExec error: column SeriesInst is not unique. In sqlite this error is not silently ignored, and probably in most other db drivers as well. This means that a high load multi-threaded store of one series fails once in so many times. A fix in 1.4.19alpha
    32) Incorrect error message in readaheadthread (strange error) when VPN blocks part of the traffic.
    33) DGate64 --moveaccession:Source,Destination,patientID:acc# parsing incorrect. In 1.4.19alpha
    34) very long queries (4000 images) crash the cgi application. Fixed in 1.4.19alpha
    35) Aria responds with rejected abstrcat syntaxes first which are parsed incorrectly - fix in 1.4.17e, 1.4.19alpha
    36) TOC in manual is incorrect
    37) RejectedImageConverter0 should also trigger for failed Incoming images. In 1.4.19alpha
    38 ) forward compressed as XXnn does not keep the nn bit. In 1.4.19alpha
    39) new cqdicom progress function requires server gui change. In 1.4.19alpha
    40) CC does not alllow relational queries: alea scripts need some changes. In 1.4.19alpha
    41) CC does not return MoveOriginatorMessageID: wado bridge does not function for CC - confirmed bug of CC
    42) alea: check show header links, and wado viewer header string passed without quotes. In 1.4.19alpha
    43) VR type OF (32 bits length) is unsupported; deformable registration object cannot be loaded. In 1.4.17e, 1.4.19alpha
    44) make sure addimagefile, deletestudy:patid:studyuid and deleteimagefile:file return a success status
    45) check presence of curl in release. In 1.4.19alpha
    46) writing files in bigendian is definitively broken - tag lengths are not swapped. Make sure bigendian is not enabled. BigEndian is fixed in 1.4.17e, 1.4.19alpha
    47) method to iterate over all tags and get type is missing
    48 ) weasis update see weasis sticky one of the last posts
    49) SQLite disable unsafe mode except when regen
    50) ixelPaddingValue misses a P. 1.4.19alpha
    51) Inconsistency reporting burned a lot of cpu-power. I introduced in dbsql.cpp a if(strcmp(saved_patid,Patid))goto cont; // already reported hph - return true strcpy(saved_patid,Patid); // new one hph around the TroubleLog.printf
    52) dicom.ini.www in Linux release is really old - remove it and the autocopy
    53) Introduce CP1066: in explicit length data set vr type to UN for strings>64k. In 1.4.19alpha
    54) aarq issue showing incorrect debug message (lennert). In 1.4.19alpha
    55) Patient, Study and Series I can view it. Anyway, I manage to view the worklist now. But with some modification on dgate.cpp. I had to change the word dicomworklist to DICOMWorkList and run again maklinux_mysql script. There are few lines I had changed. in 1.4.19alpha?
    56) maklinux_mysql file. Misses -ldl argument in g++ .... line
    57) open up retrying export converter to lua
    58 ) hardcoded field names in dgate -as option: SELECT DISTINCT DICOMPatients.PatientID, DICOMPatients.AccessTime
    FROM DICOMImages, DICOMSeries, DICOMStudies_view, DICOMPatients WHERE ... DICOMSeries.StudyInsta = DICOMStudies.StudyInsta. In 1.4.19alpha
    59) folder browser in config page can take minutes to fill when there are lots of patient folders; temp fix use unc path for MAG0. Removed browser in In 1.4.19alpha
    60) 32 bits dose data is not correctly converted to bitmap
    61) blocks in lossy jpeg2000
    62) holding message should not trigger mailer

  • Feature requests will be collected here.

    1) start wado based lua viewer from 'find xxx on yyyy' on web page
    2) integrate Stanislaw Adaszewski's HTML5 niftyviewer
    3) Automatically add QueryRetrieveLevel item to dicomquery. Check in 1.4.17d
    4) Add option to create DICOMDIR
    5) allow moving of printer_files and dbase folder (very low priority)
    6) new GUI that also works for Linux
    7) allow lua servercommand to other port {as workaround use os.execute('dgate -pNNN --...'}
    8 ) a lua callback to process (and filter) serverstatus logging
    9) keep patient/study/series layout inside exported zip file
    10) enable virtual MWL.
    11) use l/w of header in jpeg generation
    12) Add support for MPEG and other transfer syntaxes that cannot be modified by the server (requires complex change in outgoing c-store)
    13) exceptions clause for anypage. In 1.4.17e
    14) add mailer to scriptable options, e.g., mail protected web link if study recieved. Use external exe, in 1.4.17e
    15) zoom option in serverside viewer. Already implemented.

  • Sure. It's straight from the downloaded zip though.

  • Hi Marcel,

    we have currently found one bug. In a linux environment when we want to use provided conquest-pacs.sh script using the start option is just fine. However problem starts when you want to stop it and start it again (or restart). It somehow does not release resources because we are getting:

    Failed to listen() - bind error

    And this is not just a problem with the script but with conquest termination itself. When I run it directly with dgate -v & and then try to quit it dgate --quit:

    Try to start again will give me the same Failed to listen() error. It seems like during quitting something went wrong and it does not return standard exit code 0.

    any ideas?

    best Tomas

  • Hi Marcel

    When I used the new LUA Web interface, the thumbnail images are not showing up and Date/Image Number values as well in queryimages.

    And how do I add "push" button just like the old interface?

    Thanks for your help!

  • Hi,

    the thumbnails work for me, use the 'thumbs' shortcut. The image date and image number are programmed using their names in an old dictionary (dgate.doc). Their correct new names is InstanceNumber and ContentDate as stated in the new dictionary. You would have to change all instances of ImageNumber and ImageDate in the nh_queryallimages and nh_queryimages accordingly. I have added it to the buglist.


  • Hi,

    Actually I thought that the fact that it is not returning 0 after quitting is not a cause but a symptom that something went wrong during closing of the program.

    Currently it is not a big issue, because operating system will clean up and after cca 1 minute and it is possible to start conquest again. However it prevents to fully use conquest-pacs.sh because the restart option will never work properly (unless we introduce quite a log sleep to give OS time to clean up).

    I just thought that we should document this bug (I have it reproduced on multiple linux environments).



  • Thanks, Marcel.
    I have fixed the missing imagenumber and date issue. However, I don't understand about the thumbnails, how to implement the "thumbs" shortcut?

    In addition, how do I add a "push" button? Sorry for these basic questions.


    Quote from marcelvanherk


    the thumbnails work for me, use the 'thumbs' shortcut. The image date and image number are programmed using their names in an old dictionary (dgate.doc). Their correct new names is InstanceNumber and ContentDate as stated in the new dictionary. You would have to change all instances of ImageNumber and ImageDate in the nh_queryallimages and nh_queryimages accordingly. I have added it to the buglist.


  • Hi,

    I see on the series list shortcuts labeled 'thumbs', you don't? The push function requires you to do some lua programming. See the last pages of the windows manual about which commands are available.


  • Hi Marcel

    I do have the "thumbs" link on the series page. However, when I click on it, it returns the list of images but the "Icon" column show "X" signs.


    Quote from marcelvanherk


    I see on the series list shortcuts labeled 'thumbs', you don't? The push function requires you to do some lua programming. See the last pages of the windows manual about which commands are available.


  • Hm,

    maybe the lua script generating the thumbs is incorrect.

    This is what the property of one of my thumbs is:…830.1&size=48&graphic=gif

    yours showed address=localhost, which comes from the top page:


    How do you start the lua main page?


  • I started the main page with index.php and dgatewrap.php

    Another question, is there a way to turn off the old web server from /cgi-bin/dgate.exe ?


Participate now!

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