Web interface on Linux (w/ mysql)

  • So following bookworm's great efforts in this thread, I've also got conquest up on Linux and using MySQL. I can start the server, and send dicom images to it using storescu from the dcmtk. Dumping the conquest database shows that there is indeed the dicom info getting stored in there, and the dicom files themsleves have made a patient id folder and the images are there, so all seems well there.


    I do seem to have trouble with the web version of dgate however. It does find the conquest server, but I can't make it find any patients or images. Is there a wildcard other than "*" or blank? (I've also entered the full patient ID, but no luck). [/url]

  • Hrm I thought it had detected the actual server by spitting out this above the search fields:


    DICOM server 'CONQUESTSRV1' (port 5678) was started on Mon Feb 12 12:42:21 2007
    Run time (s) total 1, query 0, load 0, save 0, compress 0, process 0
    Associations=0; Images sent=0, recieved=90, forwarded=0
    Images printed=0, in color=0
    Activity: Echo:0, Find:0, Move:0, Unknown:0
    Images (de)compressed: NKI 0, JPEG 0, RLE 0, Downsize 0
    Space on MAG0 : 1665788 MByte


    So it does know some basics like it was started, and also that I've sent it 90 images (which I'm trying to search for).

  • The URL would be:
    http://titanic-stroke.stanford…dmatch=&patientnamematch=
    but its firewalled away from the general populace, so I'll just have to paste the page contents below:


    Conquest DICOM server - version 1.4.12
    List of all patients Patient ID Name Sex Birth date


    The page's html source:


    <HEAD><TITLE>Conquest DICOM server - version 1.4.12</TITLE></HEAD>
    <H2>Conquest DICOM server - version 1.4.12</H2>
    <table RULES=ALL BORDER=1>
    <Caption>List of all patients</caption>
    <TR><TD>Patient ID<TD>Name<TD>Sex<TD>Birth date</TR>
    </table>

  • Digging deeper, the server definitely runs, and they talk to each other. I figured out --debuglevel:9 to make the logging a bit more verbose.


    Searching via the web interface generates:
    0000,0002 18 UI AffectedSOPClassUID "1.2.840.10008.1.1"
    0000,0100 2 US CommandField 48
    0000,0110 2 US MessageID 1
    0000,0800 2 US DataSetType 257
    9999,0400 176 UN "query:dicompatients|patientid,patientnam,patientsex,patientbir||"


    which doesn't help much, but if I call dgate directly with, e.g. --studyfinder, I get something like:
    Query On Series
    Issue Query on Columns: DICOMSeries.SeriesTime, DICOMSeries.Modality, DICOMSeries.SeriesInst, DICOMStudies.StudyDate, DICOMStudies.PatientNam, DICOMStudies.PatientID, DICOMStudies.StudyInsta
    Values: DICOMStudies.StudyDate = '(null)' and DICOMSeries.StudyInsta = DICOMStudies.StudyInsta
    Tables: DICOMSeries, DICOMStudies
    Records = 0
    Virtualquery: removed 0 duplicates out of 0 entries



    So it does try to search, but simply finds no records. I'm thinking there's a mysql problem.....but I don't know where. The mysql databases do exist, and are filling up with information (for testing, I've now sent it several hundred random images from several dozen separate studies).

  • So if I restart dgate with:

    Code
    ./dgate -v


    And then get it logging with:

    Code
    ./dgate -v --debuglog_on:log


    If I try a search like:

    Code
    ./dgate -v --patientfinder:'CONQUESTSRV1|||'


    it seems to find something, as the log gives:


    So I think it found 77 patients in the database (likely correct). It never spits anything back at me, but I might be missing an option there. The web interface still always returns nothing.

  • I'm afraid I'm not smart enough to know how to fix that. :oops:


    I THINK you would specify it in dicom.ini, but I don't use such a line. If it helps, my dicom.ini:

  • Sorry, I was wrong. The query searches on name and or ID and then removes doubles - using the same routine as virtualserver - that confused me. It should just work! Maybe you have hit a mysql problem under linux - I have never tested that. Could you setup another server using a dbaseIII database and see what happens then - that is like my test system.


    Marcel

  • SOLVED


    The db3 driver worked fine, so it was something in mysql.


    After inserting lots of printf's around in odbci.cpp for the mysql calls, I noticed that the tables it was trying to select were always the lowercase versions of what they should be (DICOMPatients was dicompatients). Since the table name is case-sensitive, mysql was properly reporting that no such table existed (though this error message was never logged anywhere). I've changed all my table names to be the same as the variable name in dicom.ini, using all lowercase letters, and suddenly it works!

Participate now!

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