Example #1
0
int ctkDICOMModelTest1( int argc, char * argv [] )
{
  QApplication app(argc, argv);
  
  if (argc <= 2)
    {
    std::cerr << "Warning, no sql file given. Test stops" << std::endl;
    std::cerr << "Usage: qctkDICOMModelTest1 <scratch.db> <dumpfile.sql>" << std::endl;
    return EXIT_FAILURE;
    }
  
  try
  {
    ctkDICOMDatabase myCTK( argv[1] );

    if (!myCTK.initializeDatabase(argv[2]))
    {
      std::cerr << "Error when initializing the data base: " << argv[2]
          << " error: " << myCTK.lastError().toStdString();
    }
    /*
  QSqlQuery toto("SELECT PatientsName as 'Name tt' FROM Patients ORDER BY \"Name tt\" ASC", myCTK.database());
  qDebug() << "toto: " << myCTK.lastError() ;
  qDebug()<< toto.seek(0) << myCTK.lastError();
  qDebug() << toto.value(0).toString() << myCTK.lastError();

  QSqlQuery titi("SELECT StudyID as UID, StudyDescription as Name, ModalitiesInStudy as Scan, StudyDate as Date, AccessionNumber as Number, ReferringPhysician as Institution, ReferringPhysician as Referrer, PerformingPysiciansName as Performer FROM Studies WHERE PatientsUID='14'", myCTK.database());
  qDebug() << "titi: " << titi.seek(0) << myCTK.lastError();
  QSqlQuery tata("SELECT SeriesInstanceUID as UID, BodyPartExamined as Scan, SeriesDate as Date, AcquisitionNumber as Number FROM Series WHERE StudyInstanceUID='1.2.826.0.1.3680043.2.1125.1.73379483469717886505187028001198162'", myCTK.database());
  qDebug() << "tata: " << tata.seek(0) << myCTK.lastError();
  QSqlQuery tutu("SELECT SOPInstanceUID as UID, Filename as Name, SeriesInstanceUID as Date FROM Images WHERE SeriesInstanceUID='%1'", myCTK.database());
  qDebug() << "tutu: " << tutu.seek(0) << myCTK.lastError();
  */

    ctkModelTester tester;
    tester.setNestedInserts(true);
    tester.setThrowOnError(false);
    ctkDICOMModel model;
    tester.setModel(&model);

    model.setDatabase(myCTK.database());

    model.setDatabase(QSqlDatabase());

    model.setDatabase(myCTK.database());

    QTreeView viewer;
    viewer.setModel(&model);
    viewer.setSortingEnabled(true);

    model.rowCount();
    qDebug() << model.rowCount() << model.columnCount();
    qDebug() << model.index(0,0);
    viewer.show();
    if (argc > 3 && QString(argv[3]) == "-I")
    {
      return app.exec();
    }
    return EXIT_SUCCESS;
  }
  catch (std::exception e)
  {
    std::cerr << "Error when opening the data base file: " << argv[1]
        << " error: " << e.what();
    return EXIT_FAILURE;
  }
}
Example #2
0
int ctkDICOMModelTest2( int argc, char * argv [] )
{
  QApplication app(argc, argv);

  if (argc <= 2)
    {
    std::cerr << "Warning, no sql file given. Test stops" << std::endl;
    std::cerr << "Usage: qctkDICOMModelTest1 <scratch.db> <dumpfile.sql>" << std::endl;
    return EXIT_FAILURE;
    }

  try
  {
    ctkDICOMDatabase myCTK( argv[1] );

    if (!myCTK.initializeDatabase(argv[2]))
    {
      std::cerr << "Error when initializing the data base: " << argv[2]
          << " error: " << myCTK.lastError().toStdString();
    }

    ctkDICOMModel model;
    model.setDatabase(myCTK.database());

    QWidget topLevel;
    QTreeView viewer;
    QHBoxLayout* layout = new QHBoxLayout;
    layout->addWidget(&viewer);
    topLevel.setLayout(layout);
    viewer.setModel(&model);

    QHeaderView* previousHeaderView = viewer.header();
    qDebug() << "previous: " << previousHeaderView->isHidden();
    ctkCheckableHeaderView* headerView = new ctkCheckableHeaderView(Qt::Horizontal, &viewer);
#if QT_VERSION < QT_VERSION_CHECK(5,0,0)
    headerView->setClickable(previousHeaderView->isClickable());
    headerView->setMovable(previousHeaderView->isMovable());
#else
    headerView->setSectionsClickable(previousHeaderView->sectionsClickable());
    headerView->setSectionsMovable(previousHeaderView->sectionsMovable());
#endif
    headerView->setHighlightSections(previousHeaderView->highlightSections());
    headerView->checkableModelHelper()->setPropagateDepth(-1);
    headerView->checkableModelHelper()->setForceCheckability(true);
    viewer.setHeader(headerView);
    model.setHeaderData(0, Qt::Horizontal, Qt::Checked, Qt::CheckStateRole);
    qDebug() << "new: " << headerView->isHidden();
    topLevel.show();
    if (argc <= 3 || QString(argv[3]) != "-I")
      {
      QTimer::singleShot(200, &app, SLOT(quit()));
      }
    return app.exec();
  }
  catch (std::exception e)
    {
    std::cerr << "Error when opening the data base file: " << argv[1]
        << " error: " << e.what();
    return EXIT_FAILURE;
    }
}