Need help for dicom backup and routing

  • Hello, i try configuration Conquest to work for backup server and router together , read and test many infoa from threads in forum but not luck
    My work atm it's: CR system with station --> PC1 ( Onis2.6 pro) - here all it's fine, cr system autoroute to PC1


    I try connect to this system 2 PC with this parameters:
    Pc2 - conquest 1.4.19 beta
    PC3 - Onis2.6 pro
    I want PC2 with conquest take all modalityes from PC1 , store in conquest database and route to PC3.


    PC1:
    AET: ONIS_CR
    IP: 192.168.1.50
    port: 104


    Pc2
    AET: CONQUESTSRV1
    IP: 192.168.1.100
    port: 5678


    AET: ONIS_DOC
    IP: 192.168.1.101
    port: 104


    Many tnx for help :)

  • Hi,


    It is easiest is to send data to conquest, where it is stored; and then forward automatically to PC1 and PC3.


    What you want requires a query move which you can script but it is far from trivial. However, "find missing data" may do what you want. The issue is that you want to avoid copying everything everytime, so your proposal requires a comparison system, which is what @find missing data" does.


    Marcel

  • Tnx Marcel for replay,
    i'm wonder which commands need in dicom.ini for this stuff : Conquest ask and take all new modalitys from PC1.
    Btw - in Onis2.6 autoroute work very fine, sending to server without problem, but i dont wanna use this feature, wanna Conquest ask and take .


    Tnx:)

  • Ahhh, that is easy :)
    How conquest take data:


    Code
    ExportConverters = 1
    ExportModality0 = *
    ExportCalledAE0 = PACSTEST
    ExportCallingAE0 = ONIS26
    ForwardCollectDelay = 30
    MaximumExportRetries = 10
    MaximumDelayedFetchForwardRetries = 10


    Have question, with this commands conquest take only new data or download everything everytime ?

  • Hello


    I have a backup that worked well.



    But now I have the following message:
    [CONQUESTSRV1] MoveDataToDevice: *** could not create patient list
    And the backup stops
    Merci


    Conquest 1.4.17d

    Alain Godard Châtellerault France. Je parle très mal anglais et je ne suis pas informaticien. Soyez indulgent :)

  • Bonjour


    Code
    [CONQUESTSRV1] Archival: 2027 KB will be written for patient: D19032-13-08-14-1[CONQUESTSRV1] Archival: 10331 KB will be written for patient: 28899[CONQUESTSRV1] Archival: 5927 KB will be written for patient: 21692[CONQUESTSRV1] Archival: 10310 KB will be written for patient: 7294-13-08-15-1[CONQUESTSRV1] Archival: total archive amount: 8196628 KB[CONQUESTSRV1] Server command sent using DGATE -- option[CONQUESTSRV1] MoveDataToDevice: *** could not create patient list


    The backup will stop after that last line.


    I did not edit the file dicom.ini :


    Code
    # Configuration of disk(s) to store images
    MAGDeviceThreshhold = 0
    MAGDeviceFullThreshHold = 30
    IgnoreMAGDeviceThreshold = 0
    MAGDevices = 2
    MAGDevice0 = F:\VOLUSON\dicom_server\data\
    MAGDevice1 = F:\ARCHIVE\
    NightlyCleanThreshhold = 0
    NightlyMoveThreshhold = 0
    NightlyMoveTarget =


    Merci.

    Alain Godard Châtellerault France. Je parle très mal anglais et je ne suis pas informaticien. Soyez indulgent :)

  • This is the relevant code, it returns -1.


    Marcel


    sprintf(Tables, "%s, %s, %s, %s",
    ImageTableName, SeriesTableName, StudyTableName, PatientTableName);


    sprintf(QueryString, "%s.DeviceName %s and "
    "%s.PatientID = %s.PatientID and "
    "%s.SeriesInst = %s.SeriesInst and "
    "%s.StudyInsta = %s.StudyInsta",
    ImageTableName, DeviceValue, StudyTableName, PatientTableName, ImageTableName, SeriesTableName,
    SeriesTableName, StudyTableName);

    sprintf(FieldString, "%s.PatientID, %s.AccessTime", PatientTableName, PatientTableName);
    sprintf(SortString, "%s.AccessTime", PatientTableName);


    if (!DB.QueryDistinct(Tables, FieldString, QueryString, SortString))
    return -1;


    if(!DB.BindField (1, SQL_C_CHAR, PatientID, 255, &sdword))
    return -1;


    if(!DB.BindField (2, SQL_C_ULONG, &iTime, 4, &sdword1))
    return -1;


    *PatientIDList = (char *)malloc(256 * MAXPATIENTS);
    if (*PatientIDList==NULL)
    return -1;


    Patients = 0;


    while(DB.NextRecord())
    {
    if (Patients == MAXPATIENTS)
    break;


    strcpy(*PatientIDList + 256*Patients, PatientID);


    Patients++;
    }


    DB.Close();
    return Patients;
    }

  • hello
    with dgate --debuglevel:4



    Merci de votre aide.

    Alain Godard Châtellerault France. Je parle très mal anglais et je ne suis pas informaticien. Soyez indulgent :)

  • Hi,


    do you have a console for the sql server?


    Can you try to enter this query:


    SELECT DICOMPatients.PatientID, DICOMPatients.AccessTime from DICOMImages, DICOMSeries, DICOMStudies, DICOMPatients WHERE
    DICOMImages.DeviceName = 'MAG0.Archiving' and DICOMStudies.PatientID = DICOMPatients.PatientID and DICOMImages.SeriesInst = DICOMSeries.SeriesInst and DICOMSeries.StudyInsta = DICOMStudies.StudyInsta ORDER BY DICOMPatients.AccessTime


    and see what happens?


    Marcel

  • I truly don't know. The query is asked you to perform is the same one used in the server to make the list of patients to archive. It seems that that query fails. This is the code:



    It is this query:


    SELECT DISTINCT DICOMPatients.PatientID, DICOMPatients.AccessTime from DICOMImages, DICOMSeries, DICOMStudies, DICOMPatients WHERE
    DICOMImages.DeviceName = 'MAG0.Archiving' and DICOMStudies.PatientID = DICOMPatients.PatientID and DICOMImages.SeriesInst = DICOMSeries.SeriesInst and DICOMSeries.StudyInsta = DICOMStudies.StudyInsta ORDER BY DICOMPatients.AccessTime


    The same I asked you to do, but with the DISTINCT statement. Maybe there is some form of database or index corruption, therefore I asked you to try it out externally. Can you do it again with the DISTINCT added?


    Marcel

  • Ok,


    so we have a MySQL issue that is causing the conquest error. I suspect MySQL needs to make a temporary table for the DISTINCT query. Can you investigate on the MySQL side? I am not an expert.


    Marcel

Participate now!

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