ソースを参照

ENH: Fix sorting, and change simple quotes to double quotes around fields

Julien Finet 15 年 前
コミット
598357423f
共有2 個のファイルを変更した13 個の追加8 個の削除を含む
  1. 8 4
      Libs/DICOM/Core/Testing/qCTKDCMTKModelTest1.cxx
  2. 5 4
      Libs/DICOM/Core/qCTKDCMTKModel.cxx

+ 8 - 4
Libs/DICOM/Core/Testing/qCTKDCMTKModelTest1.cxx

@@ -22,9 +22,12 @@ int qCTKDCMTKModelTest1( int argc, char * argv [] )
   qCTKDCMTK myCTK;
   myCTK.openDatabase( argv[1] );
   myCTK.initializeDatabase(argv[2]);
-  /*
-  QSqlQuery toto("SELECT * FROM Patients", myCTK.database());
-  qDebug() << "toto: " << myCTK.GetLastError() << toto.seek(0) << myCTK.GetLastError();
+    /*
+  QSqlQuery toto("SELECT PatientsName as 'Name tt' FROM Patients ORDER BY \"Name tt\" ASC", myCTK.database());
+  qDebug() << "toto: " << myCTK.GetLastError() ;
+  qDebug()<< toto.seek(0) << myCTK.GetLastError();
+  qDebug() << toto.value(0).toString() << myCTK.GetLastError();
+
   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.GetLastError();
   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());
@@ -44,5 +47,6 @@ int qCTKDCMTKModelTest1( int argc, char * argv [] )
   qDebug() << model.rowCount() << model.columnCount();
   qDebug() << model.index(0,0);
   viewer.show();
-  return app.exec();
+  //return app.exec();
+  return EXIT_SUCCESS;
 }

+ 5 - 4
Libs/DICOM/Core/qCTKDCMTKModel.cxx

@@ -143,7 +143,7 @@ QString qCTKDCMTKModelPrivate::generateQuery(const QString& fields, const QStrin
     {
     res += QString(" WHERE ") + conditions;
     }
-  if (this->Sort.isEmpty())
+  if (!this->Sort.isEmpty())
     {
     res += QString(" ORDER BY ") + this->Sort;
     }
@@ -161,7 +161,7 @@ void qCTKDCMTKModelPrivate::updateQueries(Node* node)const
       break;
     case qCTKDCMTKModelPrivate::RootType:
       //query = QString("SELECT  FROM ");
-      query = this->generateQuery("UID as UID, PatientsName as Name, PatientsAge as Age, PatientsBirthDate as Date, PatientID as 'Subject ID'","Patients");
+      query = this->generateQuery("UID as UID, PatientsName as Name, PatientsAge as Age, PatientsBirthDate as Date, PatientID as \"Subject ID\"","Patients");
       break;
     case qCTKDCMTKModelPrivate::PatientType:
       //query = QString("SELECT  FROM Studies WHERE PatientsUID='%1'").arg(node->UID);
@@ -272,12 +272,13 @@ QVariant qCTKDCMTKModel::data ( const QModelIndex & index, int role ) const
     {      
     const_cast<qCTKDCMTKModelPrivate *>(d)->fetch(index, index.row());
     }
-
+/*
   if (!node->Query.seek(index.row())) 
     {
     qDebug() << node->Query.lastError();
     return QVariant();
     }
+    */
   int field = node->Query.record().indexOf(d->Headers[index.column()]);
   if (field < 0)
     {
@@ -405,7 +406,7 @@ void qCTKDCMTKModel::sort(int column, Qt::SortOrder order)
 {
   QCTK_D(qCTKDCMTKModel);
   emit layoutAboutToBeChanged();
-  d->Sort = QString("'%1' %2")
+  d->Sort = QString("\"%1\" %2")
     .arg(d->Headers[column])
     .arg(order == Qt::AscendingOrder ? "ASC" : "DESC");
   d->updateQueries(d->RootNode);