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*/)
- {
- }
|