New release 1.4.17alpha (beta2 May 2013 update below)

  • Dear Conquest users,


    here is an alpha release of 1.4.17. It is a modest update compared to 1.4.16k (see the bug list there) and should be very stable. But please report anything problem you find in operation, installation or packaging of the files.


    I thank all users for their help in augmenting this system.


    Complete DICOM server + documentation + sample data (9.5 Mb download):
    ftp://ftp-rt.nki.nl/outbox/Mar…/dicomserver1417alpha.zip


    Updated source code of the UCMDC/NKI DICOM server process, for windows (1.9 Mb download):
    ftp://ftp-rt.nki.nl/outbox/Mar…server/dgate1417alpha.zip


    Updated source code of the UCMDC dicom library and sample client programs, for windows (0.9 Mb download)
    ftp://ftp-rt.nki.nl/outbox/Mar…ver/dicomlib1417alpha.zip


    Binary and source of dicom server without GUI for <B>Linux, Unix</B> (9.5 Mb download):
    ftp://ftp-rt.nki.nl/outbox/Mar…uestlinux1417alpha.tar.gz


    The beta2 update (2 may 2013) is here:


    ftp://ftp-rt.nki.nl/outbox/Mar…nquestUpdate1417beta2.zip


    See the next two posts for changes and fixes made.


    With kind regards,


    Marcel van Herk

  • I will be collecting bugs and fixes in this post (last edited 23 May 2013).


    1) Setting Global.DebugLevel from a script needs to be done twice before it affects the running program (first time does write into dicom.ini). Fixed in 1.4.17beta


    2) Delayed forwarding (e.g. forward series) of an invalid DICOM object (missing UIDs) is not caught. Fixed in 1.4.17beta


    3) All delayed forward failures are collected in one file, and retry always starts from the top of the file. This means that one delayed forwarder continuous failure will block all others. Futured


    4) Non RGB or YBR images where Planar Configuration is set are scrambled; fixed in 1.4.17beta


    5) It looks like gc() is trying to clean up Data running in the global lua context crashing dgate when running from from ZBS; using a local dicomdataobject is more stable. The debugger is quite stable in 1.4.17beta2.


    6) Set linger of in socket.cpp. (I changed l_onoff = 1 to 0 on lines 138, 332, and 453 in socket.cxx. The capture station software is Canon RICS. ). Fixed in 1.4.17beta


    7) Forward compressed as bug: http://forum.image-systems.biz/viewtopic.php?f=33&t=15588. Fixed in 1.4.17beta


    8 ) The new DIcomObject:new() breaks Data:Read() when no data is loaded yet. Fixed in 1.4.17beta


    9) Added OpenClinica stuff to default webserver install; add patientID modification to submit script. In 1.4.17.


    10) Incorrect behavior of cleanup thread? See this topic. Futured.


    11) browsethroughdbf scrambles russian characters. Futured.


    12) J1 and J2 mixup. http://forum.image-systems.biz…c.php?f=33&t=15757#p24694. Fixed in 1.4.17beta


    13) jasper does not compile under Ubuntu 12.04. Futured.


    14) make anonymization scripts part of the release; use this script when anonymizing from the GUI; In 1.4.17.


    15) in this topic there is some code to pass success or fail of dgate -- commands that should be evaluated. Included in 1.4.17beta.


    16) x:Read(name) changes name in lua .... Fixed in 1.4.17beta


    17) process series after 5 by test.lua %i:%o --> .lua not recognized. Fixed in 1.4.17beta


    18 ) DoubleBackSlashToDB = 1 may happen when installing MS SQL server. Fixed in 1.4.17.


    19) There is drag and drop limit of 3996 files, just bit me! I do not how to change this. Futured.


    20) malformed dgate -- commands can crash the server. Futured.


    21) source = name.lua does not work anymore in cgi, header entry ignored for lua scripts (document). Fixed in 1.4.17beta.


    22) lua dicommove maps parameter 4 onto script and patientrootquery. I.e, it is not well possible to switch to a patientroot move. Fixed in 1.4.17beta2.


    23) lua CGI variable 'webscriptad(d)ress' is spelled wrong. Fixed in 1.4.17beta2 by allowing both spellings.


    24) WADO generated DICOM images have a 0 byte appended. Fixed in 1.4.17beta2.


    25) not all import and export operators log, maybe require debuglevel 1 to do so. Fixed in 1.4.17beta2.


    26) In lua Data.Item = string uses the 'set xxxx to "string"' script command that has %m etc substitution enabled in the string. Typically this means that strings with a % in them will be misinterpreted. Fixed in 1.4.17beta2.


    27) Ubuntu12.04 socket failure and DEFAULT_BREAK_SIZE in buffer.cxx. Fixed in 1.4.17beta2.


    28 ) Anoymize series etc in the GUI is broken, needs to be urgently replaced with calling of lua script. In 1.4.17.


    29) Added optional Access-Control-Allow-Origin: item to be added to WADO generated pages. In 1.4.17beta2 non-optional add Access-Control-Allow-Origin: * to all WADO generated messages with or without a space before * to make the header even. Keep it so in 1.4.17.


    30) dicomworklist is addressed once with wrong case. Fixed in 1.4.17.


    31) DicomArray:new() should return a sequence, it does not now; removed DicomArray:new from the code completion; it does not exist. In 1.4.17


    32) calling a lua script from an importconverter crashed on beta2 due to invalid retained values of dummyddo. Fixed in 1.4.17


    33) dgate --anonymize: now calls anoymize_script.cq but replaces patientid before rather than during anonymization: i.e. uids are updated twice and patient ID is not set as requested. Fixed in 1.4.17


    Marcel

  • I will be collecting wishes here. Last updated 23 May 2013.


    1) Include luasocket to allow lua debugging. In 1.4.17beta(2) for windows only.


    2) Add current yyyymmdd as filename option. Fixed in 1.4.17beta


    3) Add a sequence reader to the dicom.sql code. This will be rejected for now (too major change); you can generate private tags from an importconverter script (I suggest to use 0x9999,0x0001 etc) and add these to the database.


    4) Allow configurable incoming folder. Fixed in 1.4.17beta


    5) Implement lua __tostring for dicomobject and sequence for better debugging. Fixed in 1.4.17beta


    6) Use regular zip for submit command to improve speed. In 1.4.17beta


    7) Add working Association.ConnectedIP. In 1.4.17beta


    8 ) Create auto completion for ZBS. In 1.4.17beta


    9) add a pure lua startup option to allow using conquest as DICOM workhorse from within ZBS. In 1.4.17beta


    10) add a private sequence in move select data whose contents gets copied into each outgoing object. Futured.


    11) Make case sensitive search/move an option. This is a major change that will be rejected for now, try yo use a global collation on your server to make this happen. Futured.


    12) Make lua GetVr and SetVr create a string instead of a table or add an option for that. This to efficiently set/get all pixel data and read/write it from/to a binary file. In 1.4.17beta


    13) use external DLL or lua proxy dll to allow external modules to be loaded. Of the record, lua library DLLs do load but be careful. Added readme file to this extent in 1.4.17.


    14) Add lua pack utility to allow writing binary image files. In 1.4.17beta


    15) Add studyviewer option but with external (lua) viewer code. In 1.4.17beta


    16) Put the weasis interface in the release. In 1.4.17.


    17) Create a ZBS welcome page, autoinstall and scripting demo's. In 1.4.17.


    18 ) script command that runs backgroundexec. Lua system() call in 1.4.17beta2.


    19) Add nifty conversion stuff to the release; putting all lua scripts in subfolder lua. In 1.4.17.


    20) Resize patient table in browser rather than image table. Futured.


    21) kpacs viewer and multiframe objects.... Futured.


    22) Follow up an advise from Japanese server safety tests. Futured.


    23) Add BaseDir\clibs to path for Lua DLLs. In 1.4.17beta2.


    24) lua calleable worklist processing to interface e.g,. DicomAutomaton. Futured.


    Marcel

  • Dear Marcel,
    First of all, thank you very much for the great software.
    I've used Conquest Dicom Server since 2009. And I have the only one wish: could you please change the way of storing dicom files on a server's file system? Storing the whole repository in one directory is not good I think.
    For example: each year increases my DICOM archive in 1.5Tb. And regarding by rules of our clinic I have to keep the files in my DICOM archive during next 5 year. I can't backup all of the previous years it's very large amount of data for weekly backup.
    Because of it, I've made a folders 2009....2012 and manually change the directory to store dicom images every year.
    It would be great If you made it possible to store dicom images automatically in this way: Root directory\Year\Month\Day. Backup operations will be much faster.
    Thanks!

  • Great wish,


    if you want to use the studydate, of course you can already do this. For the actual date, I would need to add an item that returns yyyymmdd to the filename generation. A substring of this would give you the required flexibility.


    By the way, in 1.4.17alpha you can use a lua script to generare the filename. This may work now:


    FileNameSyntax=lua:os.date('%Y)..'\'..os.date('%m)..'\'..Data.SOPInstanceUID..'.dcm'


    Marcel

  • Marcel,


    To be honest, I'm a little bit hesitating using alpha version in production.
    I'll be waiting a stable version of the software.
    My current version is 1.4.14.


    BTW, are you planning to change ActiveX WebViewer on something else, e.g., Java applet or Flash Viewer?

  • Hi,


    sure, just thought you might like to try it out on a separate server. Lua scripting gives awesome flexibility.


    The ActiveX viewer has received a few alternatives in newer versions (search the forum), but there is no clear winner there: serverside viewer is very basic, AiViewer is buggy, imagejaviewer is awesome in functionality (image processing) but is not really a medical viewer. Several people reported using third party WADO viewers but some of these are very complex to install.


    Marcel

  • Hello Marcel,


    When using forwarding on this release, if the "zip and cleanup" thread runs it seems to destroy the queued images/studies for forwarding.


    Can the cleanup thread be disabled? Setting ZipTime to "invalid" in the .ini file doesn't seem to work.


    If it's a bug, can the cleanup thread not destroy the queue?


    Thanks in advance!

  • Wishlist request. Dear Marcel,
    Maybe it's impossible, but it would be great if you changed the way of connection to database server in Windows. I spent a lot of time trying to connect to MSSQL Database Server using ODBC. I had to install some additional components such as Sql Native Client and so on.
    I think it will be much easy if you change ODBC to ADO.

  • Hi,


    This is a request thats unlikely to happen. Most users use mysql, sqlite or postgres nowadays. But if you could find someone to code it. All db access is centered in file odbci.cpp


    Marcel

  • Hi Marcel,


    I don't know if this post is the place to post this, however, I made a change in release 1.4.17alpha in Ubuntu 12.04.


    I'm not a C++ expertise, but I need that the dgate command --movestudy returns something to me.


    So I change the fucntion DcmMove editing the line:

    Code
    if(DCOR.GetUINT16(0x0000, 0x0900)=0x0000){ rc = FALSE; goto EXIT; // completed OK, no retry}


    to

    Code
    if(DCOR.GetUINT16(0x0000, 0x0900)=0x0000){ rc = TRUE; goto EXIT; // completed OK, no retry}


    I don't know if this change can be made because the function have the comment:

    Quote


    // move data from this to other server: returns TRUE is meaningful to retry


    I also edit the else if that detects the command --movestudy: changing the line:

    Code
    DcmMove(r1, SilentText+10, p, q, "", "", "", "", "", "", "", 7, "");


    To


    Code
    if(DcmMove(r1, SilentText+10, p, q, "", "", "", "", "", "", "", 7, "")==FALSE)
    sprintf(Response, "FAILED.FROM %s TO %s", SilentText+10, p);
    else
    sprintf(Response, "SUCESS.FROM %s TO %s", SilentText+10, p);


    This way when I send the dgate command --movestudy I get the final status of it, but as I said before, I would like your opinion about that.


    Thank you.


    Best Regards,

  • Hi Marcel,


    I manually deleted some images on the MAG device


    Regeneration of the mysql db works fine with:
    dgate -v -r


    However with:
    dgate --regen:
    it failes. The data in the mysql db are not changed


    The serverstatus.log claimes "SUCCES" for all images in the latter case.


    Using 1.4.17alpha on a Linux Debian system.


    Chris

  • We are running 1.4.17alpha for both Conquest server and the web piece too.


    Using the default viewer=serversideviewer works fine.


    I'm trying to get the imagejaviewer working correctly. I'm using the following settings


    [webdefaults]
    size = 560
    dsize = 0


    compress = un
    iconsize = 48
    graphic = gif
    viewer = imagejaviewer


    [imagejaviewer]
    source = imagejaviewer.cq


    However, when I click to "view" I get a java error


    <Error: java net.ConnectException: Connection refulsed: connect>


    Any my Apache error log has


    [Tue Feb 12 22:20:02 2013] [error] [client x.x.x.x] script not found or unable to stat: /var/www/cgi-bin/StartupMacros.txt


    Can you assist as to what the Startupmacros.txt is?


    Thanks so much,


    Robby


Participate now!

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