| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743 | 
							- /*=============================================================================
 
-   Plugin: org.commontk.xnat
 
-   Copyright (c) University College London,
 
-     Centre for Medical Image Computing
 
-   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
 
-   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.
 
- =============================================================================*/
 
- #include "ctkXnatConnection.h"
 
- #include "ctkXnatException.h"
 
- #include "ctkXnatExperiment.h"
 
- #include "ctkXnatObject.h"
 
- #include "ctkXnatObjectPrivate.h"
 
- #include "ctkXnatProject.h"
 
- #include "ctkXnatReconstruction.h"
 
- #include "ctkXnatReconstructionFolder.h"
 
- #include "ctkXnatReconstructionResource.h"
 
- #include "ctkXnatReconstructionResourceFile.h"
 
- #include "ctkXnatScan.h"
 
- #include "ctkXnatScanFolder.h"
 
- #include "ctkXnatScanResource.h"
 
- #include "ctkXnatScanResourceFile.h"
 
- #include "ctkXnatServer.h"
 
- #include "ctkXnatSubject.h"
 
- #include <QDebug>
 
- #include <QScopedPointer>
 
- #include <QStringBuilder>
 
- #include <qXnatAPI.h>
 
- #include <qRestResult.h>
 
- class ctkXnatConnectionPrivate
 
- {
 
- public:
 
-   QString profileName;
 
-   QString url;
 
-   QString userName;
 
-   QString password;
 
-   qXnatAPI* xnat;
 
-   qXnatAPI::RawHeaders rawHeaders;
 
-   QSharedPointer<ctkXnatServer> server;
 
- };
 
- // ctkXnatConnection class
 
- ctkXnatConnection::ctkXnatConnection()
 
- : d_ptr(new ctkXnatConnectionPrivate())
 
- {
 
-   Q_D(ctkXnatConnection);
 
-   d->xnat = new qXnatAPI();
 
- //  d->xnat->setSuppressSslErrors(true);
 
-   d->rawHeaders["User-Agent"] = "Qt";
 
-   d->xnat->setDefaultRawHeaders(d->rawHeaders);
 
-   d->server = ctkXnatServer::Create(this);
 
-   createConnections();
 
- }
 
- ctkXnatConnection::~ctkXnatConnection()
 
- {
 
-   Q_D(ctkXnatConnection);
 
-   delete d->xnat;
 
- }
 
- void ctkXnatConnection::createConnections()
 
- {
 
- //  Q_D(ctkXnatConnection);
 
- //  connect(d->xnat, SIGNAL(resultReceived(QUuid,QList<QVariantMap>)),
 
- //           this, SLOT(processResult(QUuid,QList<QVariantMap>)));
 
- //  connect(d->xnat, SIGNAL(progress(QUuid,double)),
 
- //           this, SLOT(progress(QUuid,double)));
 
- }
 
- void ctkXnatConnection::progress(QUuid queryId, double progress)
 
- {
 
-   qDebug() << "ctkXnatConnection::progress(QUuid queryId, double progress)";
 
-   qDebug() << "query id:" << queryId;
 
-   qDebug() << "progress:" << (progress * 100.0) << "%";
 
- }
 
- QString ctkXnatConnection::profileName() const
 
- {
 
-   Q_D(const ctkXnatConnection);
 
-   return d->profileName;
 
- }
 
- void ctkXnatConnection::setProfileName(const QString& profileName)
 
- {
 
-   Q_D(ctkXnatConnection);
 
-   d->profileName = profileName;
 
-   d->server->setProperty("name", profileName);
 
- }
 
- QString ctkXnatConnection::url() const
 
- {
 
-   Q_D(const ctkXnatConnection);
 
-   return d->url;
 
- }
 
- void ctkXnatConnection::setUrl(const QString& url)
 
- {
 
-   Q_D(ctkXnatConnection);
 
-   d->url = url;
 
-   d->xnat->setServerUrl(d->url);
 
-   d->server->setProperty("ID", url);
 
- }
 
- QString ctkXnatConnection::userName() const
 
- {
 
-   Q_D(const ctkXnatConnection);
 
-   return d->userName;
 
- }
 
- void ctkXnatConnection::setUserName(const QString& userName)
 
- {
 
-   Q_D(ctkXnatConnection);
 
-   d->userName = userName;
 
-   d->rawHeaders["Authorization"] = "Basic " +
 
-       QByteArray(QString("%1:%2").arg(d->userName).arg(d->password).toAscii()).toBase64();
 
-   d->xnat->setDefaultRawHeaders(d->rawHeaders);
 
- }
 
- QString ctkXnatConnection::password() const
 
- {
 
-   Q_D(const ctkXnatConnection);
 
-   return d->password;
 
- }
 
- void ctkXnatConnection::setPassword(const QString& password)
 
- {
 
-   Q_D(ctkXnatConnection);
 
-   d->password = password;
 
-   d->rawHeaders["Authorization"] = "Basic " +
 
-       QByteArray(QString("%1:%2").arg(d->userName).arg(d->password).toAscii()).toBase64();
 
-   d->xnat->setDefaultRawHeaders(d->rawHeaders);
 
- }
 
- ctkXnatServer::Pointer ctkXnatConnection::server() const
 
- {
 
-   Q_D(const ctkXnatConnection);
 
-   return d->server;
 
- }
 
- void ctkXnatConnection::fetch(const ctkXnatServer::Pointer& server)
 
- {
 
-   Q_D(ctkXnatConnection);
 
-   QString query("/data/archive/projects");
 
-   QUuid queryId = d->xnat->get(query);
 
-   qRestResult* restResult = d->xnat->takeResult(queryId);
 
-   QList<ctkXnatProject*> projects = restResult->results<ctkXnatProject>();
 
-   foreach (ctkXnatProject* project, projects)
 
-   {
 
-     qDebug() << "Found project:" << project->getName();
 
-     ctkXnatObject::Pointer ptr(project);
 
-     ptr->d_func()->selfPtr = ptr;
 
-     server->addChild(ptr);
 
-   }
 
-   delete restResult;
 
- }
 
- void ctkXnatConnection::fetch(const ctkXnatProject::Pointer& project)
 
- {
 
-   const QString& projectTitle = project->getId();
 
-   Q_D(ctkXnatConnection);
 
-   QString query = QString("/data/projects/%1/subjects").arg(projectTitle);
 
-   QUuid queryId = d->xnat->get(query);
 
-   qRestResult* restResult = d->xnat->takeResult(queryId);
 
-   QList<ctkXnatSubject*> subjects = restResult->results<ctkXnatSubject>();
 
-   foreach (ctkXnatSubject* subject, subjects)
 
-   {
 
-     ctkXnatObject::Pointer ptr(subject);
 
-     ptr->d_func()->selfPtr = ptr;
 
-     project->addChild(ptr);
 
-   }
 
-   delete restResult;
 
- }
 
- void ctkXnatConnection::fetch(const QSharedPointer<ctkXnatSubject>& subject)
 
- {
 
-   const QString& subjectName = subject->getId();
 
-   const QString& projectName = subject->getParent()->getId();
 
-   Q_D(ctkXnatConnection);
 
-   QString query = QString("/REST/projects/%1/subjects/%2/experiments").arg(projectName, subjectName);
 
-   QUuid queryId = d->xnat->get(query);
 
-   qRestResult* restResult = d->xnat->takeResult(queryId);
 
-   //QList<ctkXnatExperiment*> experiments = restResult->results<ctkXnatExperiment>();
 
-   //foreach (ctkXnatExperiment* experiment, experiments)
 
-   //{
 
-   //  subject->addChild(experiment->id(), experiment);
 
-   //}
 
-   delete restResult;
 
- }
 
- //void ctkXnatConnection::fetch(ctkXnatExperiment* experiment)
 
- //{
 
- //  const QString& experimentName = experiment->getName();
 
- //  ctkXnatObject* subject = experiment->getParent();
 
- //  const QString& subjectName = subject->getName();
 
- //  ctkXnatObject* project = subject->getParent();
 
- //  const QString& projectName = project->getName();
 
- //  Q_D(ctkXnatConnection);
 
- //  QString query = QString("/REST/projects/%1/subjects/%2/experiments/%3/scans").arg(projectName, subjectName, experimentName);
 
- //  QList<QVariantMap> result;
 
- //  bool success = d->xnat->sync(d->xnat->get(query), result);
 
- //  if (!success)
 
- //  {
 
- //    throw ctkXnatException("Error occurred while retrieving scan list from XNAT.");
 
- //  }
 
- //  int scanNumber = result.size();
 
- //  query = QString("/REST/projects/%1/subjects/%2/experiments/%3/reconstructions").arg(projectName, subjectName, experimentName);
 
- //  success = d->xnat->sync(d->xnat->get(query), result);
 
- //  if (!success)
 
- //  {
 
- //    throw ctkXnatException("Error occurred while retrieving reconstruction list from XNAT.");
 
- //  }
 
- //  int reconstructionNumber = result.size();
 
- //  if (scanNumber > 0)
 
- //  {
 
- //    ctkXnatScanFolder* scanFolder = new ctkXnatScanFolder(experiment);
 
- //    experiment->addChild("Scan", scanFolder);
 
- //  }
 
- //  if (reconstructionNumber > 0)
 
- //  {
 
- //    ctkXnatReconstructionFolder* reconstructionFolder = new ctkXnatReconstructionFolder(experiment);
 
- //    experiment->addChild("Reconstruction", reconstructionFolder);
 
- //  }
 
- //}
 
- //void ctkXnatConnection::fetch(ctkXnatScanFolder* scanFolder)
 
- //{
 
- //  ctkXnatObject* experiment = scanFolder->getParent();
 
- //  const QString& experimentName = experiment->getName();
 
- //  ctkXnatObject* subject = experiment->getParent();
 
- //  const QString& subjectName = subject->getName();
 
- //  ctkXnatObject* project = subject->getParent();
 
- //  const QString& projectName = project->getName();
 
- //  Q_D(ctkXnatConnection);
 
- //  QString query = QString("/REST/projects/%1/subjects/%2/experiments/%3/scans").arg(projectName, subjectName, experimentName);
 
- //  QList<QVariantMap> result;
 
- //  bool success = d->xnat->sync(d->xnat->get(query), result);
 
- //  if (!success)
 
- //  {
 
- //    throw ctkXnatException("Error occurred while retrieving scan list from XNAT.");
 
- //  }
 
- //  foreach (QVariantMap map, result)
 
- //  {
 
- //    ctkXnatScan* scan = new ctkXnatScan(scanFolder);
 
- //    QString scanID = map["ID"].toString();
 
- //    scanFolder->addChild(scanID, scan);
 
- //  }
 
- ////  QUuid queryId = d->xnat->get(query);
 
- ////  qRestResult* restResult = d->xnat->takeResult(queryId);
 
- ////  QList<ctkXnatScan*> scans = restResult->results<ctkXnatScan>();
 
- ////
 
- ////  foreach (ctkXnatScan* scan, scans)
 
- ////  {
 
- ////    experiment->addChild(scan->id(), scan);
 
- ////  }
 
- ////  delete restResult;
 
- //}
 
- //void ctkXnatConnection::fetch(ctkXnatScan* scan)
 
- //{
 
- //  const QString& scanName = scan->getName();
 
- //  ctkXnatObject* experiment = scan->getParent()->getParent();
 
- //  const QString& experimentName = experiment->getName();
 
- //  ctkXnatObject* subject = experiment->getParent();
 
- //  const QString& subjectName = subject->getName();
 
- //  ctkXnatObject* project = subject->getParent();
 
- //  const QString& projectName = project->getName();
 
- //  Q_D(ctkXnatConnection);
 
- //  QString query = QString("/REST/projects/%1/subjects/%2/experiments/%3/scans/%4/resources").arg(projectName, subjectName, experimentName, scanName);
 
- //  QList<QVariantMap> result;
 
- //  bool success = d->xnat->sync(d->xnat->get(query), result);
 
- //  if (!success)
 
- //  {
 
- //    throw ctkXnatException("Error occurred while retrieving scan resource list from XNAT.");
 
- //  }
 
- //  foreach (QVariantMap map, result)
 
- //  {
 
- //    QString scanResourceLabel = map["label"].toString();
 
- //    ctkXnatScanResource* scanResource = new ctkXnatScanResource(scan);
 
- //    scan->addChild(scanResourceLabel, scanResource);
 
- //  }
 
- //}
 
- //void ctkXnatConnection::fetch(ctkXnatScanResource* scanResource)
 
- //{
 
- //  const QString& resourceName = scanResource->getName();
 
- //  ctkXnatObject* scan = scanResource->getParent();
 
- //  const QString& scanName = scan->getName();
 
- //  ctkXnatObject* experiment = scan->getParent()->getParent();
 
- //  const QString& experimentName = experiment->getName();
 
- //  ctkXnatObject* subject = experiment->getParent();
 
- //  const QString& subjectName = subject->getName();
 
- //  ctkXnatObject* project = subject->getParent();
 
- //  const QString& projectName = project->getName();
 
- //  Q_D(ctkXnatConnection);
 
- //  QString query = QString("/REST/projects/%1/subjects/%2/experiments/%3/scans/%4/resources/%5/files").arg(projectName, subjectName, experimentName, scanName, resourceName);
 
- //  QList<QVariantMap> result;
 
- //  bool success = d->xnat->sync(d->xnat->get(query), result);
 
- //  if (!success)
 
- //  {
 
- //    throw ctkXnatException("Error occurred while retrieving scan resource file list from XNAT.");
 
- //  }
 
- //  foreach (QVariantMap map, result)
 
- //  {
 
- //    QString scanResourceFileName = map["Name"].toString();
 
- //    ctkXnatScanResourceFile* scanResourceFile = new ctkXnatScanResourceFile(scanResource);
 
- //    scanResource->addChild(scanResourceFileName, scanResourceFile);
 
- //  }
 
- //}
 
- //void ctkXnatConnection::fetch(ctkXnatReconstructionFolder* reconstructionFolder)
 
- //{
 
- //  ctkXnatObject* experiment = reconstructionFolder->getParent();
 
- //  const QString& experimentName = experiment->getName();
 
- //  ctkXnatObject* subject = experiment->getParent();
 
- //  const QString& subjectName = subject->getName();
 
- //  ctkXnatObject* project = subject->getParent();
 
- //  const QString& projectName = project->getName();
 
- //  Q_D(ctkXnatConnection);
 
- //  QString query = QString("/REST/projects/%1/subjects/%2/experiments/%3/reconstructions").arg(projectName, subjectName, experimentName);
 
- //  QList<QVariantMap> result;
 
- //  bool success = d->xnat->sync(d->xnat->get(query), result);
 
- //  if (!success)
 
- //  {
 
- //    throw ctkXnatException("Error occurred while retrieving reconstruction list from XNAT.");
 
- //  }
 
- //  foreach (QVariantMap map, result)
 
- //  {
 
- //    QString reconstructionID = map["ID"].toString();
 
- //    ctkXnatReconstruction* reconstruction = new ctkXnatReconstruction(reconstructionFolder);
 
- //    reconstructionFolder->addChild(reconstructionID, reconstruction);
 
- //  }
 
- //}
 
- //void ctkXnatConnection::fetch(ctkXnatReconstruction* reconstruction)
 
- //{
 
- //  const QString& reconstructionName = reconstruction->getName();
 
- //  ctkXnatObject* experiment = reconstruction->getParent()->getParent();
 
- //  const QString& experimentName = experiment->getName();
 
- //  ctkXnatObject* subject = experiment->getParent();
 
- //  const QString& subjectName = subject->getName();
 
- //  ctkXnatObject* project = subject->getParent();
 
- //  const QString& projectName = project->getName();
 
- //  Q_D(ctkXnatConnection);
 
- //  QString query = QString("/REST/projects/%1/subjects/%2/experiments/%3/reconstructions/%4/ALL/resources").arg(projectName, subjectName, experimentName, reconstructionName);
 
- //  QList<QVariantMap> result;
 
- //  bool success = d->xnat->sync(d->xnat->get(query), result);
 
- //  if (!success)
 
- //  {
 
- //    throw ctkXnatException("Error occurred while retrieving reconstruction resource list from XNAT.");
 
- //  }
 
- //  foreach (QVariantMap map, result)
 
- //  {
 
- //    QString reconstructionResourceLabel = map["label"].toString();
 
- //    ctkXnatReconstructionResource* reconstructionResource = new ctkXnatReconstructionResource(reconstruction);
 
- //    reconstruction->addChild(reconstructionResourceLabel, reconstructionResource);
 
- //  }
 
- //}
 
- //void ctkXnatConnection::fetch(ctkXnatReconstructionResource* reconstructionResource)
 
- //{
 
- //  const QString& resourceName = reconstructionResource->getName();
 
- //  ctkXnatObject* reconstruction = reconstructionResource->getParent();
 
- //  const QString& reconstructionName = reconstruction->getName();
 
- //  ctkXnatObject* experiment = reconstruction->getParent()->getParent();
 
- //  const QString& experimentName = experiment->getName();
 
- //  ctkXnatObject* subject = experiment->getParent();
 
- //  const QString& subjectName = subject->getName();
 
- //  ctkXnatObject* project = subject->getParent();
 
- //  const QString& projectName = project->getName();
 
- //  Q_D(ctkXnatConnection);
 
- //  QString query = QString("/REST/projects/%1/subjects/%2/experiments/%3/reconstructions/%4/ALL/resources/%5/files").arg(projectName, subjectName, experimentName, reconstructionName, resourceName);
 
- //  QList<QVariantMap> result;
 
- //  bool success = d->xnat->sync(d->xnat->get(query), result);
 
- //  if (!success)
 
- //  {
 
- //    throw ctkXnatException("Error occurred while retrieving reconstruction resource file list from XNAT.");
 
- //  }
 
- //  foreach (QVariantMap map, result)
 
- //  {
 
- //    QString reconstructionResourceFileName = map["Name"].toString();
 
- //    ctkXnatReconstructionResourceFile* reconstructionResourceFile = new ctkXnatReconstructionResourceFile(reconstructionResource);
 
- //    reconstructionResource->addChild(reconstructionResourceFileName, reconstructionResourceFile);
 
- //  }
 
- //}
 
- //void ctkXnatConnection::create(ctkXnatProject* project)
 
- //{
 
- //  const QString& projectName = project->name();
 
- //  Q_D(ctkXnatConnection);
 
- //  QString query = QString("/REST/projects/%1").arg(projectName);
 
- //  bool success = d->xnat->sync(d->xnat->put(query));
 
- //  if (!success)
 
- //  {
 
- //    throw ctkXnatException("Error occurred while creating the project.");
 
- //  }
 
- //}
 
- //void ctkXnatConnection::remove(ctkXnatProject* project)
 
- //{
 
- //  const QString& projectName = project->name();
 
- //  Q_D(ctkXnatConnection);
 
- //  QString query = QString("/REST/projects/%1").arg(projectName);
 
- //  bool success = d->xnat->sync(d->xnat->del(query));
 
- //  if (!success)
 
- //  {
 
- //    throw ctkXnatException("Error occurred while removing the project.");
 
- //  }
 
- //}
 
- //void ctkXnatConnection::create(ctkXnatSubject* subject)
 
- //{
 
- //  const QString& subjectName = subject->getName();
 
- //  ctkXnatObject* project = subject->getParent();
 
- //  const QString& projectName = project->getName();
 
- //  Q_D(ctkXnatConnection);
 
- //  QString query = QString("/REST/projects/%1/subjects/%2").arg(projectName, subjectName);
 
- //  bool success = d->xnat->sync(d->xnat->put(query));
 
- //  if (!success)
 
- //  {
 
- //    throw ctkXnatException("Error occurred while creating the subject.");
 
- //  }
 
- //}
 
- //void ctkXnatConnection::downloadScanFiles(ctkXnatExperiment* experiment, const QString& fileName)
 
- //{
 
- ////  qDebug() << "ctkXnatConnection::downloadScanFiles(ctkXnatExperiment* experiment, const QString& zipFilename)";
 
- //  const QString& experimentName = experiment->getName();
 
- //  ctkXnatObject* subject = experiment->getParent();
 
- //  const QString& subjectName = subject->getName();
 
- //  ctkXnatObject* project = subject->getParent();
 
- //  const QString& projectName = project->getName();
 
- //  Q_D(ctkXnatConnection);
 
- //  QString query = QString("/REST/projects/%1/subjects/%2/experiments/%3/scans/ALL/files").arg(projectName, subjectName, experimentName);
 
- //  qRestAPI::Parameters parameters;
 
- //  parameters["format"] = "zip";
 
- //  QUuid queryId = d->xnat->download(fileName, query, parameters);
 
- //  d->xnat->sync(queryId);
 
- //}
 
- //void ctkXnatConnection::downloadReconstructionFiles(ctkXnatExperiment* experiment, const QString& fileName)
 
- //{
 
- //  const QString& experimentName = experiment->getName();
 
- //  ctkXnatObject* subject = experiment->getParent();
 
- //  const QString& subjectName = subject->getName();
 
- //  ctkXnatObject* project = subject->getParent();
 
- //  const QString& projectName = project->getName();
 
- //  Q_D(ctkXnatConnection);
 
- //  QString query = QString("/REST/projects/%1/subjects/%2/experiments/%3/reconstructions/ALL/files").arg(projectName, subjectName, experimentName);
 
- //  qRestAPI::Parameters parameters;
 
- //  parameters["format"] = "zip";
 
- //  QUuid queryId = d->xnat->download(fileName, query, parameters);
 
- //  d->xnat->sync(queryId);
 
- //}
 
- //void ctkXnatConnection::addReconstruction(ctkXnatExperiment* /*experiment*/, const QString& /*reconstruction*/)
 
- //{
 
- ////  const QString& experimentName = experiment->getName();
 
- ////  ctkXnatObject* subject = experiment->getParent();
 
- ////  const QString& subjectName = subject->getName();
 
- ////  ctkXnatObject* project = subject->getParent();
 
- ////  const QString& projectName = project->getName();
 
- //  // TODO
 
- //}
 
- //void ctkXnatConnection::downloadReconstruction(ctkXnatReconstruction* reconstruction, const QString& fileName)
 
- //{
 
- //  const QString& reconstructionName = reconstruction->getName();
 
- //  ctkXnatObject* experiment = reconstruction->getParent();
 
- //  const QString& experimentName = experiment->getName();
 
- //  ctkXnatObject* subject = experiment->getParent();
 
- //  const QString& subjectName = subject->getName();
 
- //  ctkXnatObject* project = subject->getParent();
 
- //  const QString& projectName = project->getName();
 
- //  Q_D(ctkXnatConnection);
 
- //  QString query = QString("/REST/projects/%1/subjects/%2/experiments/%3/reconstructions/%4/ALL/files").arg(projectName, subjectName, experimentName, reconstructionName);
 
- //  qRestAPI::Parameters parameters;
 
- //  parameters["format"] = "zip";
 
- //  QUuid queryId = d->xnat->download(fileName, query, parameters);
 
- //  d->xnat->sync(queryId);
 
- //}
 
- //void ctkXnatConnection::addReconstructionResource(ctkXnatReconstruction* /*reconstruction*/, const QString& /*resourceName*/)
 
- //{
 
- ////  const QString& reconstructionName = reconstruction->getName();
 
- ////  ctkXnatObject* experiment = reconstruction->getParent()->getParent();
 
- ////  const QString& experimentName = experiment->getName();
 
- ////  ctkXnatObject* subject = experiment->getParent();
 
- ////  const QString& subjectName = subject->getName();
 
- ////  ctkXnatObject* project = subject->getParent();
 
- ////  const QString& projectName = project->getName();
 
- //  // TODO
 
- //}
 
- //void ctkXnatConnection::removeReconstruction(ctkXnatReconstruction* /*reconstruction*/)
 
- //{
 
- ////  const QString& reconstructionName = reconstruction->getName();
 
- ////  ctkXnatObject* experiment = reconstruction->getParent()->getParent();
 
- ////  const QString& experimentName = experiment->getName();
 
- ////  ctkXnatObject* subject = experiment->getParent();
 
- ////  const QString& subjectName = subject->getName();
 
- ////  ctkXnatObject* project = subject->getParent();
 
- ////  const QString& projectName = project->getName();
 
- //  // TODO
 
- //}
 
- //void ctkXnatConnection::downloadReconstructionResourceFiles(ctkXnatReconstructionResource* reconstructionResource, const QString& fileName)
 
- //{
 
- //  const QString& reconstructionResourceName = reconstructionResource->getName();
 
- //  ctkXnatObject* reconstruction = reconstructionResource->getParent();
 
- //  const QString& reconstructionName = reconstruction->getName();
 
- //  ctkXnatObject* experiment = reconstruction->getParent()->getParent();
 
- //  const QString& experimentName = experiment->getName();
 
- //  ctkXnatObject* subject = experiment->getParent();
 
- //  const QString& subjectName = subject->getName();
 
- //  ctkXnatObject* project = subject->getParent();
 
- //  const QString& projectName = project->getName();
 
- //  Q_D(ctkXnatConnection);
 
- //  QString query = QString("/REST/projects/%1/subjects/%2/experiments/%3/reconstructions/%4/ALL/resources/%5/files").arg(projectName, subjectName, experimentName, reconstructionName, reconstructionResourceName);
 
- //  qRestAPI::Parameters parameters;
 
- //  parameters["format"] = "zip";
 
- //  QUuid queryId = d->xnat->download(fileName, query, parameters);
 
- //  d->xnat->sync(queryId);
 
- //}
 
- //void ctkXnatConnection::uploadReconstructionResourceFiles(ctkXnatReconstructionResource* /*reconstructionResource*/, const QString& /*zipFilename*/)
 
- //{
 
- ////  const QString& resourceName = reconstructionResource->getName();
 
- ////  ctkXnatObject* reconstruction = reconstructionResource->getParent();
 
- ////  const QString& reconstructionName = reconstruction->getName();
 
- ////  ctkXnatObject* experiment = reconstruction->getParent()->getParent();
 
- ////  const QString& experimentName = experiment->getName();
 
- ////  ctkXnatObject* subject = experiment->getParent();
 
- ////  const QString& subjectName = subject->getName();
 
- ////  ctkXnatObject* project = subject->getParent();
 
- ////  const QString& projectName = project->getName();
 
- //  // TODO
 
- //}
 
- //void ctkXnatConnection::removeReconstructionResource(ctkXnatReconstructionResource* /*reconstructionResource*/)
 
- //{
 
- ////  const QString& resourceName = reconstructionResource->getName();
 
- ////  ctkXnatObject* reconstruction = reconstructionResource->getParent();
 
- ////  const QString& reconstructionName = reconstruction->getName();
 
- ////  ctkXnatObject* experiment = reconstruction->getParent()->getParent();
 
- ////  const QString& experimentName = experiment->getName();
 
- ////  ctkXnatObject* subject = experiment->getParent();
 
- ////  const QString& subjectName = subject->getName();
 
- ////  ctkXnatObject* project = subject->getParent();
 
- ////  const QString& projectName = project->getName();
 
- //  // TODO
 
- //}
 
- //void ctkXnatConnection::download(ctkXnatReconstructionResourceFile* reconstructionResourceFile, const QString& fileName)
 
- //{
 
- ////  qDebug() <<  "ctkXnatConnection::download(ctkXnatReconstructionResourceFile* reconstructionResourceFile, const QString& zipFilename)";
 
- //  const QString& reconstructionResourceFileName = reconstructionResourceFile->getName();
 
- //  ctkXnatObject* reconstructionResource = reconstructionResourceFile->getParent();
 
- //  const QString& reconstructionResourceName = reconstructionResource->getName();
 
- //  ctkXnatObject* reconstruction = reconstructionResource->getParent();
 
- //  const QString& reconstructionName = reconstruction->getName();
 
- //  ctkXnatObject* experiment = reconstruction->getParent()->getParent();
 
- //  const QString& experimentName = experiment->getName();
 
- //  ctkXnatObject* subject = experiment->getParent();
 
- //  const QString& subjectName = subject->getName();
 
- //  ctkXnatObject* project = subject->getParent();
 
- //  const QString& projectName = project->getName();
 
- //  Q_D(ctkXnatConnection);
 
- //  QString query = QString("/REST/projects/%1/subjects/%2/experiments/%3/reconstructions/%4/resources/%5/files/%6").arg(projectName, subjectName, experimentName, reconstructionName, reconstructionResourceName, reconstructionResourceFileName);
 
- //  qRestAPI::Parameters parameters;
 
- //  parameters["format"] = "zip";
 
- //  QUuid queryId = d->xnat->download(fileName, query, parameters);
 
- //  d->xnat->sync(queryId);
 
- //}
 
- //void ctkXnatConnection::remove(ctkXnatReconstructionResourceFile* /*reconstructionResourceFile*/)
 
- //{
 
- ////  const QString& filename = reconstructionResourceFile->getName();
 
- ////  ctkXnatObject* reconstructionResource = reconstructionResourceFile->getParent();
 
- ////  const QString& resourceName = reconstructionResource->getName();
 
- ////  ctkXnatObject* reconstruction = reconstructionResource->getParent();
 
- ////  const QString& reconstructionName = reconstruction->getName();
 
- ////  ctkXnatObject* experiment = reconstruction->getParent()->getParent();
 
- ////  const QString& experimentName = experiment->getName();
 
- ////  ctkXnatObject* subject = experiment->getParent();
 
- ////  const QString& subjectName = subject->getName();
 
- ////  ctkXnatObject* project = subject->getParent();
 
- ////  const QString& projectName = project->getName();
 
- //  // TODO
 
- //}
 
- //void ctkXnatConnection::download(ctkXnatScan* scan, const QString& fileName)
 
- //{
 
- ////  qDebug() << "ctkXnatConnection::download(ctkXnatScan* scan, const QString& zipFilename)";
 
- //  const QString& scanName = scan->getName();
 
- //  ctkXnatObject* experiment = scan->getParent()->getParent();
 
- //  const QString& experimentName = experiment->getName();
 
- //  ctkXnatObject* subject = experiment->getParent();
 
- //  const QString& subjectName = subject->getName();
 
- //  ctkXnatObject* project = subject->getParent();
 
- //  const QString& projectName = project->getName();
 
- //  Q_D(ctkXnatConnection);
 
- //  QString query = QString("/REST/projects/%1/subjects/%2/experiments/%3/scans/%4/files").arg(projectName, subjectName, experimentName, scanName);
 
- //  qRestAPI::Parameters parameters;
 
- //  parameters["format"] = "zip";
 
- //  QUuid queryId = d->xnat->download(fileName, query, parameters);
 
- //  d->xnat->sync(queryId);
 
- //}
 
- //void ctkXnatConnection::download(ctkXnatScanResource* scanResource, const QString& fileName)
 
- //{
 
- ////  qDebug() << "ctkXnatConnection::download(ctkXnatScanResource* scanResource, const QString& zipFilename)";
 
- //  const QString& scanResourceName = scanResource->getName();
 
- //  ctkXnatObject* scan = scanResource->getParent();
 
- //  const QString& scanName = scan->getName();
 
- //  ctkXnatObject* experiment = scan->getParent()->getParent();
 
- //  const QString& experimentName = experiment->getName();
 
- //  ctkXnatObject* subject = experiment->getParent();
 
- //  const QString& subjectName = subject->getName();
 
- //  ctkXnatObject* project = subject->getParent();
 
- //  const QString& projectName = project->getName();
 
- //  Q_D(ctkXnatConnection);
 
- //  QString query = QString("/REST/projects/%1/subjects/%2/experiments/%3/scans/%4/resources/%5/files").arg(projectName, subjectName, experimentName, scanName, scanResourceName);
 
- //  qRestAPI::Parameters parameters;
 
- //  parameters["format"] = "zip";
 
- //  QUuid queryId = d->xnat->download(fileName, query, parameters);
 
- //  d->xnat->sync(queryId);
 
- //}
 
- //void ctkXnatConnection::download(ctkXnatScanResourceFile* scanResourceFile, const QString& fileName)
 
- //{
 
- ////  qDebug() << "ctkXnatConnection::download(ctkXnatScanResourceFile* scanResourceFile)";
 
- //  const QString& scanResourceFileName = scanResourceFile->getName();
 
- //  ctkXnatObject* scanResource = scanResourceFile->getParent();
 
- //  const QString& scanResourceName = scanResource->getName();
 
- //  ctkXnatObject* scan = scanResource->getParent();
 
- //  const QString& scanName = scan->getName();
 
- //  ctkXnatObject* experiment = scan->getParent()->getParent();
 
- //  const QString& experimentName = experiment->getName();
 
- //  ctkXnatObject* subject = experiment->getParent();
 
- //  const QString& subjectName = subject->getName();
 
- //  ctkXnatObject* project = subject->getParent();
 
- //  const QString& projectName = project->getName();
 
- //  Q_D(ctkXnatConnection);
 
- //  QString query = QString("/REST/projects/%1/subjects/%2/experiments/%3/scans/%4/resources/%5/files/%6").arg(projectName, subjectName, experimentName, scanName, scanResourceName, scanResourceFileName);
 
- //  qRestAPI::Parameters parameters;
 
- //  parameters["format"] = "zip";
 
- //  QUuid queryId = d->xnat->download(fileName, query, parameters);
 
- //  d->xnat->sync(queryId);
 
- //}
 
- void ctkXnatConnection::processResult(QUuid /*queryId*/, QList<QVariantMap> /*parameters*/)
 
- {
 
- }
 
 
  |