ctkDICOMModelTest1.cpp 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. // Qt includes
  2. #include <QApplication>
  3. #include <QDebug>
  4. #include <QFileInfo>
  5. #include <QTreeView>
  6. #include <QSqlQuery>
  7. // ctkDICOMCore includes
  8. #include "ctkDICOMDatabase.h"
  9. #include "ctkDICOMModel.h"
  10. #include "ctkModelTester.h"
  11. // STD includes
  12. #include <iostream>
  13. /* Test from build directory:
  14. ./CTK-build/bin/CTKDICOMCoreCxxTests ctkDICOMModelTest1 test.db ../CTK/Libs/DICOM/Core/Resources/dicom-sample.sql
  15. */
  16. int ctkDICOMModelTest1( int argc, char * argv [] )
  17. {
  18. QApplication app(argc, argv);
  19. if (argc <= 2)
  20. {
  21. std::cerr << "Warning, no sql file given. Test stops" << std::endl;
  22. std::cerr << "Usage: qctkDICOMModelTest1 <scratch.db> <dumpfile.sql>" << std::endl;
  23. return EXIT_FAILURE;
  24. }
  25. try
  26. {
  27. ctkDICOMDatabase myCTK( argv[1] );
  28. if (!myCTK.initializeDatabase(argv[2]))
  29. {
  30. std::cerr << "Error when initializing the data base: " << argv[2]
  31. << " error: " << myCTK.lastError().toStdString();
  32. }
  33. /*
  34. QSqlQuery toto("SELECT PatientsName as 'Name tt' FROM Patients ORDER BY \"Name tt\" ASC", myCTK.database());
  35. qDebug() << "toto: " << myCTK.lastError() ;
  36. qDebug()<< toto.seek(0) << myCTK.lastError();
  37. qDebug() << toto.value(0).toString() << myCTK.lastError();
  38. 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());
  39. qDebug() << "titi: " << titi.seek(0) << myCTK.lastError();
  40. 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());
  41. qDebug() << "tata: " << tata.seek(0) << myCTK.lastError();
  42. QSqlQuery tutu("SELECT SOPInstanceUID as UID, Filename as Name, SeriesInstanceUID as Date FROM Images WHERE SeriesInstanceUID='%1'", myCTK.database());
  43. qDebug() << "tutu: " << tutu.seek(0) << myCTK.lastError();
  44. */
  45. ctkModelTester tester;
  46. tester.setNestedInserts(true);
  47. tester.setThrowOnError(false);
  48. ctkDICOMModel model;
  49. tester.setModel(&model);
  50. model.setDatabase(myCTK.database());
  51. model.setDatabase(QSqlDatabase());
  52. model.setDatabase(myCTK.database());
  53. QTreeView viewer;
  54. viewer.setModel(&model);
  55. viewer.setSortingEnabled(true);
  56. model.rowCount();
  57. qDebug() << model.rowCount() << model.columnCount();
  58. qDebug() << model.index(0,0);
  59. viewer.show();
  60. if (argc > 3 && QString(argv[3]) == "-I")
  61. {
  62. return app.exec();
  63. }
  64. return EXIT_SUCCESS;
  65. }
  66. catch (std::exception e)
  67. {
  68. std::cerr << "Error when opening the data base file: " << argv[1]
  69. << " error: " << e.what();
  70. return EXIT_FAILURE;
  71. }
  72. }