Browse Source

Merge branch 'resource-uri-with-name' into xnat-resource-uri-with-name-integration

Conflicts:
	Libs/XNAT/Core/ctkXnatSession.cpp
Andreas Fetzer 9 years ago
parent
commit
7fe51d386b

+ 0 - 1
Libs/XNAT/Core/Testing/ctkXnatSessionTest.cpp

@@ -271,7 +271,6 @@ void ctkXnatSessionTestCase::testCreateSubject()
   ctkXnatSubject* subject = new ctkXnatSubject(project);
 
   QString subjectName = QString("CTK_S") + QUuid::createUuid().toString().mid(1, 8);
-  subject->setId(subjectName);
   subject->setName(subjectName);
 
   subject->save();

+ 4 - 0
Libs/XNAT/Core/ctkXnatExperiment.cpp

@@ -67,6 +67,10 @@ ctkXnatExperiment::~ctkXnatExperiment()
 //----------------------------------------------------------------------------
 QString ctkXnatExperiment::resourceUri() const
 {
+  if (this->id().isEmpty())
+  {
+    return QString("%1/experiments/%2").arg(parent()->resourceUri(), this->label());
+  }
   return QString("%1/experiments/%2").arg(parent()->resourceUri(), this->id());
 }
 

+ 1 - 1
Libs/XNAT/Core/ctkXnatObject.cpp

@@ -412,7 +412,7 @@ void ctkXnatObject::saveImpl(bool /*overwrite*/)
   const QList<QVariantMap> results = this->session()->httpSync(queryID);
 
   // If this xnat object did not exist before on the server set the ID returned by Xnat
-  if (results.size() == 1 && results[0].size() == 1)
+  if (results.size() == 1 && results[0].size() == 2)
   {
     QVariant id = results[0][ID];
     if (!id.isNull())

+ 4 - 0
Libs/XNAT/Core/ctkXnatSubject.cpp

@@ -124,6 +124,10 @@ void ctkXnatSubject::setInsertUser(const QString& insertUser)
 //----------------------------------------------------------------------------
 QString ctkXnatSubject::resourceUri() const
 {
+  if (this->id().isEmpty())
+  {
+    return QString("%1/subjects/%2").arg(parent()->resourceUri(), this->label());
+  }
   return QString("%1/subjects/%2").arg(parent()->resourceUri(), this->id());
 }