experimental 64 bits upgrade for 1.4.14

  • If you run 64 bits windows (xp or vista), you might want to try this experimental upgrade which makes the server core 64 bits. The server is not faster, but can handle bigger DICOM objects, although the size limit is not yet known. For the 32 bits version it is around 500 MB. For this version it may be 2 GB or more.


    Download it here:


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


    Please read the enclosed readme.txt. I believe it works with all databases, but mysql requires some tweaking. The version is set to 1.4.14a, and it fixes some issues raised on 1.4.14.


    Have fun,


    Marcel

  • Hi,


    The 1.4.14 release can also work for linux 64 bits, but requires some fixes:


    1) edit odbci.hpp and replace in struct dbase_header (line 141-171) all "long" keywords by "int".


    2) edit dbsql.cpp and add at line 1310:


    Code
    char dum[256];
    BindField(1, SQL_C_CHAR, dum, 255, &sdword);


    3) edit odbci.cpp and change *(long *) in *(int *) in the lines with SQL_C_LONG in them.


    Then recompile.


    Good luck!


    Marcel

  • Hi,


    this error occurs when a DICOM image is corrupted on disk: the reader gets out of sync, and reads a really large number as VR length. Normally IgnoreOutOfMemoryErrors gets you past that - you did restart after changing the flag?. The other option is to locate and remove the corrupted file(s).


    Marcel

  • Hi,


    From the log you can see the last succeeded file during regen .. and go from there. You can test suspicious files with OFFIS tool DCMDUMP. Or you can run dgate --testimages:MAG0 (if you have a database). But that will crash just like regen on the first corrupt file. But probably there are just a few (power failure is the most common file corruptor).


    In the next release, the readers will be better in detecting and skipping corrupt files.


    Marcel

  • Hi,


    if you pm me your mail address I can send you a version of dgate with extended checks. It would be good to know that it catches your problem files and works with all normal files.


    Marcel

  • Hi Marcel,


    I'm was thinking of using your 1.4.14 on 64 bits linux machine. My question is how stable is that? I tested with 32 bit linux and it has been stable. Due feel it could be a risky move to 64 bit?



    Also you mentioned the following fix


    1) edit dbsql.cpp and add at line 1310:


    Code: Select all
    char dum[256];
    BindField(1, SQL_C_CHAR, dum, 255, &sdword);


    so in that file should it the go before return(False) on line 1310 within the if statement, like shown below?


    1307 for (i=1; i<=lastfield; i++)
    1308 {
    1309 if(!DB.BindField (i+1, SQL_C_CHAR, s[i-1], 255, &sdword)){
    char dum[256];
    BindField(1, SQL_C_CHAR, dum, 255, &sdword);
    1310 return ( FALSE );
    }
    1311 s[i-1][0] = 0;
    1312 }


    Thanks
    -Vinod

Participate now!

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