| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 | 
							- /*=========================================================================
 
-   Library:   CTK
 
-   Copyright (c) Kitware Inc.
 
-   Licensed under the Apache License, Version 2.0 (the "License");
 
-   you may not use this file except in compliance with the License.
 
-   You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0.txt
 
-   Unless required by applicable law or agreed to in writing, software
 
-   distributed under the License is distributed on an "AS IS" BASIS,
 
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
-   See the License for the specific language governing permissions and
 
-   limitations under the License.
 
- =========================================================================*/
 
- // ctkDICOMWidgets includes
 
- #include "ctkDICOMQueryWidget.h"
 
- #include "ui_ctkDICOMQueryWidget.h"
 
- // STD includes
 
- #include <iostream>
 
- // Qt includes
 
- #include <QTimer>
 
- //logger
 
- #include <ctkLogger.h>
 
- static ctkLogger logger("org.commontk.DICOM.Widgets.ctkDICOMQueryWidget");
 
- //----------------------------------------------------------------------------
 
- class ctkDICOMQueryWidgetPrivate: public Ui_ctkDICOMQueryWidget
 
- {
 
- public:
 
-   ctkDICOMQueryWidgetPrivate();
 
-   ~ctkDICOMQueryWidgetPrivate();
 
-   QTimer* SearchTimer;
 
-   int SearchIdleTime;
 
- };
 
- //----------------------------------------------------------------------------
 
- // ctkDICOMQueryWidgetPrivate methods
 
- //----------------------------------------------------------------------------
 
- ctkDICOMQueryWidgetPrivate::ctkDICOMQueryWidgetPrivate(){
 
-   // set default of search idle time to 500 ms
 
-   this->SearchIdleTime = 500;
 
-   // Initialize search timer
 
-   this->SearchTimer = new QTimer();
 
-   this->SearchTimer->setSingleShot(true);
 
- }
 
- //----------------------------------------------------------------------------
 
- ctkDICOMQueryWidgetPrivate::~ctkDICOMQueryWidgetPrivate(){
 
-   this->SearchTimer->deleteLater();
 
- }
 
- //----------------------------------------------------------------------------
 
- // ctkDICOMQueryWidget methods
 
- //----------------------------------------------------------------------------
 
- ctkDICOMQueryWidget::ctkDICOMQueryWidget(QWidget* _parent):Superclass(_parent), 
 
-   d_ptr(new ctkDICOMQueryWidgetPrivate)
 
- {
 
-   Q_D(ctkDICOMQueryWidget);
 
-   
 
-   d->setupUi(this);
 
-   d->NameSearch->setFocus(Qt::PopupFocusReason);
 
-   connect(d->NameSearch, SIGNAL(textChanged(QString)), this, SLOT(startTimer()));
 
-   connect(d->StudySearch, SIGNAL(textChanged(QString)), this, SLOT(startTimer()));
 
-   connect(d->SeriesSearch, SIGNAL(textChanged(QString)), this, SLOT(startTimer()));
 
-   connect(d->IdSearch, SIGNAL(textChanged(QString)), this, SLOT(startTimer()));
 
-   connect(d->DateRangeWidget, SIGNAL(endDateTimeChanged(QDateTime)), this, SLOT(startTimer()));
 
-   connect(d->DateRangeWidget, SIGNAL(startDateTimeChanged(QDateTime)), this, SLOT(startTimer()));
 
-   connect(d->ModalityWidget, SIGNAL(selectedModalitiesChanged(QStringList)), this, SLOT(startTimer()));
 
-   connect(d->SearchTimer, SIGNAL(timeout()), this, SIGNAL(parameterChanged()));
 
-   connect(d->NameSearch, SIGNAL(returnPressed()), this, SLOT(onReturnPressed()));
 
-   connect(d->StudySearch, SIGNAL(returnPressed()), this, SLOT(onReturnPressed()));
 
-   connect(d->SeriesSearch, SIGNAL(returnPressed()), this, SLOT(onReturnPressed()));
 
-   connect(d->IdSearch, SIGNAL(returnPressed()), this, SLOT(onReturnPressed()));
 
- }
 
- //----------------------------------------------------------------------------
 
- ctkDICOMQueryWidget::~ctkDICOMQueryWidget()
 
- {
 
-   Q_D(ctkDICOMQueryWidget);
 
-   disconnect(d->NameSearch, SIGNAL(textChanged(QString)), this, SLOT(startTimer()));
 
-   disconnect(d->StudySearch, SIGNAL(textChanged(QString)), this, SLOT(startTimer()));
 
-   disconnect(d->SeriesSearch, SIGNAL(textChanged(QString)), this, SLOT(startTimer()));
 
-   disconnect(d->IdSearch, SIGNAL(textChanged(QString)), this, SLOT(startTimer()));
 
-   disconnect(d->DateRangeWidget, SIGNAL(endDateTimeChanged(QDateTime)), this, SLOT(startTimer()));
 
-   disconnect(d->DateRangeWidget, SIGNAL(startDateTimeChanged(QDateTime)), this, SLOT(startTimer()));
 
-   disconnect(d->ModalityWidget, SIGNAL(selectedModalitiesChanged(QStringList)), this, SLOT(startTimer()));
 
-   disconnect(d->SearchTimer, SIGNAL(timeout()), this, SIGNAL(parameterChanged()));
 
-   disconnect(d->NameSearch, SIGNAL(returnPressed()), this, SLOT(onReturnPressed()));
 
-   disconnect(d->StudySearch, SIGNAL(returnPressed()), this, SLOT(onReturnPressed()));
 
-   disconnect(d->SeriesSearch, SIGNAL(returnPressed()), this, SLOT(onReturnPressed()));
 
-   disconnect(d->IdSearch, SIGNAL(returnPressed()), this, SLOT(onReturnPressed()));
 
- }
 
- //----------------------------------------------------------------------------
 
- QMap<QString,QVariant> ctkDICOMQueryWidget::parameters()
 
- {
 
-   Q_D(ctkDICOMQueryWidget);
 
-   QMap<QString,QVariant> parameters;
 
-   parameters["Name"] = d->NameSearch->text();
 
-   parameters["Study"] = d->StudySearch->text();
 
-   parameters["Series"] = d->SeriesSearch->text();
 
-   parameters["ID"] = d->IdSearch->text();
 
-   if ( !d->ModalityWidget->areAllModalitiesSelected() )
 
-   { // some PACS (conquest) don't seem to accept list of modalities,
 
-     // so don't include the list at all when all modalities are desired
 
-     // TODO: think about how to fix this for conquest at the query level
 
-     parameters["Modalities"] = d->ModalityWidget->selectedModalities();
 
-   }
 
-   if ( !d->DateRangeWidget->isAnyDate() )
 
-   {
 
-     QDate startDate = d->DateRangeWidget->startDateTime().date();
 
-     QDate endDate = d->DateRangeWidget->endDateTime().date();
 
-     parameters["StartDate"] = startDate.toString("yyyyMMdd");
 
-     parameters["EndDate"] = endDate.toString("yyyyMMdd");
 
-   }
 
-   return parameters;
 
- }
 
- //----------------------------------------------------------------------------
 
- void ctkDICOMQueryWidget::startTimer()
 
- {
 
-   Q_D(ctkDICOMQueryWidget);
 
-   d->SearchTimer->stop();
 
-   d->SearchTimer->start(d->SearchIdleTime);
 
- }
 
- //----------------------------------------------------------------------------
 
- void ctkDICOMQueryWidget::onReturnPressed()
 
- {
 
-   emit returnPressed();
 
- }
 
 
  |