#include "vvPacsSettingsDialog.h"
#include "vvUtils.h"
#include <algorithm>
+#include <itkGDCMImageIO.h>
+#include <itkGDCMSeriesFileNames.h>
vvQPacsConnection::vvQPacsConnection(QWidget *i_parent)
:QDialog(i_parent)
{
ui.setupUi(this);
- setWindowTitle(QString::fromUtf8("PACS CONNECTIONHHHH"));
+ setWindowTitle(QString::fromUtf8("PACS CONNECTION"));
createTreeView();
ui.tabFilter->setTabText(0,QString(tr("Modality")));
ui.tabFilter->setTabText(1,QString(tr("Date")));
connect(ui.networkCombo,SIGNAL(currentIndexChanged(int)),this,SLOT(chooseServer(int)));
connect(ui.removeNetworkButton,SIGNAL(clicked()),this,SLOT(removeServer()));
connect(ui.NetworkButton,SIGNAL(clicked()),this,SLOT(modifyServer()));
+ connect(ui.exitButton,SIGNAL(clicked()),this,SLOT(close()));
update();
}
+// Exit window
+bool vvQPacsConnection::close()
+{
+ QApplication::restoreOverrideCursor();
+ return QWidget::close();
+}
+
// remote a Dicom Server in VV settings
void vvQPacsConnection::removeServer()
{
// modify a Dicom Server in VV settings
void vvQPacsConnection::modifyServer()
{
+ int indexCombo = ui.networkCombo->currentIndex();
+ removeDicomServer(m_nickname);
AddDicomServer(ui.NameEdit->text().toStdString(),ui.AETitleEdit->text().toStdString(),ui.AdressEdit->text().toStdString(),ui.PortEdit->text().toStdString());
- removeServer();
+ ui.networkCombo->clear();
+ ui.networkCombo->addItem(QString());
+ ui.networkCombo->addItems(getDicomServers());
+ ui.networkCombo->setCurrentIndex(indexCombo);
}
// refresh the list of Dicom Servers available from VV settings
//gdcm::Tag tagsdc(8,1030);
//keys.push_back(std::make_pair(tagsdc, ""));
- //// Accession n°
+ //// Accession
//gdcm::Tag tagacc(8,50);
//keys.push_back(std::make_pair(tagacc, ""));
void vvQPacsConnection::on_importButton_clicked()
{
setCursor(QCursor(Qt::WaitCursor));
- QString path = QDir::homePath() +QString::fromStdString("/.move");
+ QString path = QString::fromStdString(getCMoveDirectory());
QDir dirpath (path);
if (dirpath.exists())
{
dirpath.mkdir(path);
}
bool didItWork = gdcm::CompositeNetworkFunctions::CMove(m_adress.c_str(),atoi(m_port.c_str()),
- gdcm::CompositeNetworkFunctions::ConstructQuery(mQFactory.getMoveQuery().theRoot, mQFactory.getMoveQuery().theLevel ,mQFactory.getMoveQuery().keys,true),
+ gdcm::CompositeNetworkFunctions::ConstructQuery(mQFactory.getMoveQuery().theRoot, mQFactory.getMoveQuery().theLevel ,mQFactory.getMoveQuery().keys, gdcm::eMove),
getDicomClientPort(), getDicomClientAETitle().c_str(), m_aetitle.c_str(), path.toStdString().c_str() );
gdcm::Directory theDir;
theDir.Load(path.toStdString().c_str());
- m_files = theDir.GetFilenames();
- std::sort (m_files.begin(), m_files.end()); // make sure names are in lexicographical order
+ //m_files = theDir.GetFilenames();
+
+ typedef itk::GDCMSeriesFileNames NamesGeneratorType;
+ NamesGeneratorType::Pointer nameGenerator = NamesGeneratorType::New();
+ nameGenerator->SetUseSeriesDetails(true);
+
+ //ds gerer recursive moi-meme pour progress ...
+ nameGenerator->SetInputDirectory(path.toStdString());
+
+ // insert in table
+ typedef std::vector<std::string> SeriesIdContainer;
+ const SeriesIdContainer & seriesUID = nameGenerator->GetSeriesUIDs();
+ std::map<std::string, std::vector<std::string>* > mListOfSeriesFilenames;
+
+
+ m_fileseries.clear();
+
+ for (unsigned int i=0; i<seriesUID.size(); i++) {
+ m_fileseries.push_back( nameGenerator->GetFileNames(seriesUID[i]));
+ }
accept();
setCursor(QCursor(Qt::ArrowCursor));
-std::vector <std::string> vvQPacsConnection::getFileNames()
+std::vector <std::string> vvQPacsConnection::getFileNames(int i_series)
{
std::vector <std::string> filenames;
- gdcm::Directory::FilenamesType::iterator it = m_files.begin();
- for (;it != m_files.end(); it++)
+ gdcm::Directory::FilenamesType::iterator it = m_fileseries[i_series].begin();
+ for (;it != m_fileseries[i_series].end(); it++)
filenames.push_back(it->c_str());
return filenames;
}