Browse Source

Removed file with xnat constants. The respective constants are now located in
the according xnat object implementation

Andreas Fetzer 10 years ago
parent
commit
b7325a560e

+ 0 - 1
Libs/XNAT/Core/CMakeLists.txt

@@ -8,7 +8,6 @@ set(KIT_export_directive "CTK_XNAT_CORE_EXPORT")
 
 set(KIT_SRCS
   ctkXnatAPI.cpp
-  ctkXnatConstants.cpp
   ctkXnatDataModel.cpp
   ctkXnatDefaultSchemaTypes.cpp
   ctkXnatException.cpp

+ 2 - 3
Libs/XNAT/Core/ctkXnatAssessorFolder.cpp

@@ -22,7 +22,6 @@
 #include "ctkXnatAssessorFolder.h"
 
 #include "ctkXnatAssessor.h"
-#include "ctkXnatConstants.h"
 #include "ctkXnatDefaultSchemaTypes.h"
 #include "ctkXnatExperiment.h"
 #include "ctkXnatObjectPrivate.h"
@@ -49,8 +48,8 @@ ctkXnatAssessorFolder::ctkXnatAssessorFolder(ctkXnatObject* parent)
   : ctkXnatObject(*new ctkXnatAssessorFolderPrivate(), parent, QString::null)
 {
   
-  this->setProperty(ctkXnatObjectFields::ID, "assessors");
-  this->setProperty(ctkXnatObjectFields::LABEL, "Assessments");
+  this->setProperty(ID, "assessors");
+  this->setProperty(LABEL, "Assessments");
 }
 
 //----------------------------------------------------------------------------

+ 0 - 45
Libs/XNAT/Core/ctkXnatConstants.cpp

@@ -1,45 +0,0 @@
-/*=============================================================================
-
- Library: XNAT/Core
-
- Copyright (c) German Cancer Research Center,
-   Division of Medical and Biological Informatics
-
- 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 "ctkXnatConstants.h"
-
-QString ctkXnatObjectFields::ID = "ID";
-QString ctkXnatObjectFields::NAME = "name";
-QString ctkXnatObjectFields::LABEL = "label";
-
-QString ctkXnatObjectFields::SECONDARY_ID = "secondary_ID";
-QString ctkXnatObjectFields::DESCRIPTION = "description";
-QString ctkXnatObjectFields::PI_FIRSTNAME = "pi_firstname";
-QString ctkXnatObjectFields::PI_LASTNAME = "pi_lastname";
-
-QString ctkXnatObjectFields::INSERT_DATE = "insert_date";
-QString ctkXnatObjectFields::INSERT_USER = "insert_user";
-
-QString ctkXnatObjectFields::QUALITY = "quality";
-QString ctkXnatObjectFields::SERIES_DESCRIPTION = "series_description";
-QString ctkXnatObjectFields::TYPE = "type";
-
-QString ctkXnatObjectFields::ABSTRACT_RESOURCE_ID = "xnat_abstractresource_id";
-
-QString ctkXnatObjectFields::FILE_NAME = "Name";
-QString ctkXnatObjectFields::FILE_TAGS = "file_tags";
-QString ctkXnatObjectFields::FILE_FORMAT = "file_format";
-QString ctkXnatObjectFields::FILE_CONTENT = "file_content";

+ 0 - 63
Libs/XNAT/Core/ctkXnatConstants.h

@@ -1,63 +0,0 @@
-/*=============================================================================
-
- Library: XNAT/Core
-
- Copyright (c) German Cancer Research Center,
-   Division of Medical and Biological Informatics
-
- 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.
-
-=============================================================================*/
-
-#ifndef CTKXNATCONSTANTS_H
-#define CTKXNATCONSTANTS_H
-
-#include "ctkXNATCoreExport.h"
-
-#include <QString>
-
-/**
- * @ingroup XNAT_Core
- */
-
-struct CTK_XNAT_CORE_EXPORT ctkXnatObjectFields
-{
-  static QString ID;
-  static QString NAME;
-  static QString LABEL;
-
-  // XnatProject specific
-  static QString SECONDARY_ID;
-  static QString DESCRIPTION;
-  static QString PI_FIRSTNAME;
-  static QString PI_LASTNAME;
-
-  // XnatSubject specific
-  static QString INSERT_DATE;
-  static QString INSERT_USER;
-
-  // XnatScan specific
-  static QString TYPE;
-  static QString QUALITY;
-  static QString SERIES_DESCRIPTION;
-
-  // XnatResource specific
-  static QString ABSTRACT_RESOURCE_ID;
-
-  // XnatFile specific
-  static QString FILE_NAME;
-  static QString FILE_TAGS;
-  static QString FILE_FORMAT;
-  static QString FILE_CONTENT;
-};
-#endif // CTKXNATCONSTANTS_H

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

@@ -71,6 +71,30 @@ QString ctkXnatExperiment::resourceUri() const
 }
 
 //----------------------------------------------------------------------------
+QString ctkXnatExperiment::name() const
+{
+  return this->label();
+}
+
+//----------------------------------------------------------------------------
+void ctkXnatExperiment::setName(const QString &name)
+{
+  this->setLabel(name);
+}
+
+//----------------------------------------------------------------------------
+QString ctkXnatExperiment::label() const
+{
+  return this->property(LABEL);
+}
+
+//----------------------------------------------------------------------------
+void ctkXnatExperiment::setLabel(const QString &label)
+{
+  this->setProperty(LABEL, label);
+}
+
+//----------------------------------------------------------------------------
 void ctkXnatExperiment::reset()
 {
   ctkXnatObject::reset();

+ 9 - 0
Libs/XNAT/Core/ctkXnatExperiment.h

@@ -43,6 +43,15 @@ public:
 
   virtual QString resourceUri() const;
 
+  /// Sets the name, i.e. the label of the subject
+  virtual void setName(const QString &name);
+  /// Returns the name, i.e. the label of the subject
+  virtual QString name() const;
+
+  void setLabel(const QString &label);
+  QString label() const;
+
+
   void reset();
 
 private:

+ 12 - 9
Libs/XNAT/Core/ctkXnatFile.cpp

@@ -21,10 +21,13 @@
 
 #include "ctkXnatFile.h"
 
-#include "ctkXnatConstants.h"
 #include "ctkXnatObjectPrivate.h"
 #include "ctkXnatSession.h"
 
+const QString ctkXnatFile::FILE_NAME = "Name";
+const QString ctkXnatFile::FILE_TAGS = "file_tags";
+const QString ctkXnatFile::FILE_FORMAT = "file_format";
+const QString ctkXnatFile::FILE_CONTENT = "file_content";
 
 //----------------------------------------------------------------------------
 class ctkXnatFilePrivate : public ctkXnatObjectPrivate
@@ -59,46 +62,46 @@ ctkXnatFile::~ctkXnatFile()
 //----------------------------------------------------------------------------
 void ctkXnatFile::setName(const QString &name)
 {
-  this->setProperty(ctkXnatObjectFields::FILE_NAME, name);
+  this->setProperty(FILE_NAME, name);
 }
 
 //----------------------------------------------------------------------------
 QString ctkXnatFile::name() const
 {
-  return this->property(ctkXnatObjectFields::FILE_NAME);
+  return this->property(FILE_NAME);
 }
 
 //----------------------------------------------------------------------------
 void ctkXnatFile::setFileFormat(const QString &fileFormat)
 {
-  this->setProperty(ctkXnatObjectFields::FILE_FORMAT, fileFormat);
+  this->setProperty(FILE_FORMAT, fileFormat);
 }
 
 QString ctkXnatFile::fileFormat() const
 {
-  return this->property(ctkXnatObjectFields::FILE_FORMAT);
+  return this->property(FILE_FORMAT);
 }
 
 //----------------------------------------------------------------------------
 void ctkXnatFile::setFileContent(const QString &fileContent)
 {
-  this->setProperty(ctkXnatObjectFields::FILE_CONTENT, fileContent);
+  this->setProperty(FILE_CONTENT, fileContent);
 }
 
 QString ctkXnatFile::fileContent() const
 {
-  return this->property(ctkXnatObjectFields::FILE_CONTENT);
+  return this->property(FILE_CONTENT);
 }
 
 //----------------------------------------------------------------------------
 void ctkXnatFile::setFileTags(const QString &fileTags)
 {
-  this->setProperty(ctkXnatObjectFields::FILE_TAGS, fileTags);
+  this->setProperty(FILE_TAGS, fileTags);
 }
 
 QString ctkXnatFile::fileTags() const
 {
-  return this->property(ctkXnatObjectFields::FILE_TAGS);
+  return this->property(FILE_TAGS);
 }
 
 //----------------------------------------------------------------------------

+ 5 - 0
Libs/XNAT/Core/ctkXnatFile.h

@@ -61,6 +61,11 @@ public:
 
   void reset();
 
+  static const QString FILE_NAME;
+  static const QString FILE_TAGS;
+  static const QString FILE_FORMAT;
+  static const QString FILE_CONTENT;
+
 private:
 
   virtual void fetchImpl();

+ 1 - 2
Libs/XNAT/Core/ctkXnatListModel.cpp

@@ -21,7 +21,6 @@
 
 #include "ctkXnatDataModel.h"
 
-#include "ctkXnatConstants.h"
 #include "ctkXnatExperiment.h"
 #include "ctkXnatListModel.h"
 #include "ctkXnatProject.h"
@@ -71,7 +70,7 @@ QVariant ctkXnatListModel::data(const QModelIndex& index, int role) const
     QString displayData = child->name();
     if (displayData.isEmpty())
     {
-      displayData = child->property(ctkXnatObjectFields::LABEL);
+      displayData = child->property(ctkXnatObject::LABEL);
     }
     return displayData;
   }

+ 10 - 7
Libs/XNAT/Core/ctkXnatObject.cpp

@@ -22,7 +22,6 @@
 #include "ctkXnatObject.h"
 #include "ctkXnatObjectPrivate.h"
 
-#include "ctkXnatConstants.h"
 #include "ctkXnatDataModel.h"
 #include "ctkXnatDefaultSchemaTypes.h"
 #include "ctkXnatSession.h"
@@ -33,6 +32,10 @@
 #include <QVariant>
 
 
+const QString ctkXnatObject::ID = "ID";
+const QString ctkXnatObject::NAME = "name";
+const QString ctkXnatObject::LABEL = "label";
+
 //----------------------------------------------------------------------------
 ctkXnatObject::ctkXnatObject(const ctkXnatObject&)
 {
@@ -68,25 +71,25 @@ ctkXnatObject::~ctkXnatObject()
 //----------------------------------------------------------------------------
 QString ctkXnatObject::id() const
 {
-  return this->property(ctkXnatObjectFields::ID);
+  return this->property(ID);
 }
 
 //----------------------------------------------------------------------------
 void ctkXnatObject::setId(const QString& id)
 {
-  this->setProperty(ctkXnatObjectFields::ID, id);
+  this->setProperty(ID, id);
 }
 
 //----------------------------------------------------------------------------
 QString ctkXnatObject::name() const
 {
-  return this->property(ctkXnatObjectFields::NAME);
+  return this->property(NAME);
 }
 
 //----------------------------------------------------------------------------
 void ctkXnatObject::setName(const QString& name)
 {
-  this->setProperty(ctkXnatObjectFields::NAME, name);
+  this->setProperty(NAME, name);
 }
 
 //----------------------------------------------------------------------------
@@ -326,13 +329,13 @@ void ctkXnatObject::fetchResources(const QString& path)
 
   foreach (ctkXnatObject* resource, resources)
   {
-    QString label = resource->property(ctkXnatObjectFields::LABEL);
+    QString label = resource->name();
     if (label.isEmpty())
     {
       label = "NO NAME";
     }
 
-    resource->setProperty(ctkXnatObjectFields::LABEL, label);
+    resource->setName(label);
     this->add(resource);
   }
 }

+ 4 - 0
Libs/XNAT/Core/ctkXnatObject.h

@@ -145,6 +145,10 @@ public:
   // throws ctkXnatTimeoutException
   //bool waitForDownloadFinished(const QString&);
 
+  static const QString ID;
+  static const QString NAME;
+  static const QString LABEL;
+
 protected:
 
   ctkXnatObject(const ctkXnatObject&);

+ 14 - 11
Libs/XNAT/Core/ctkXnatProject.cpp

@@ -21,13 +21,16 @@
 
 #include "ctkXnatProject.h"
 
-#include "ctkXnatConstants.h"
 #include "ctkXnatDataModel.h"
 #include "ctkXnatDefaultSchemaTypes.h"
 #include "ctkXnatObjectPrivate.h"
 #include "ctkXnatSession.h"
 #include "ctkXnatSubject.h"
 
+const QString ctkXnatProject::SECONDARY_ID = "secondary_ID";
+const QString ctkXnatProject::DESCRIPTION = "description";
+const QString ctkXnatProject::PI_FIRSTNAME = "pi_firstname";
+const QString ctkXnatProject::PI_LASTNAME = "pi_lastname";
 
 //----------------------------------------------------------------------------
 class ctkXnatProjectPrivate : public ctkXnatObjectPrivate
@@ -74,49 +77,49 @@ QString ctkXnatProject::childDataType() const
 //----------------------------------------------------------------------------
 const QString ctkXnatProject::secondaryId() const
 {
-  return this->property(ctkXnatObjectFields::SECONDARY_ID);
+  return this->property(SECONDARY_ID);
 }
 
 //----------------------------------------------------------------------------
 void ctkXnatProject::setSecondaryId(const QString& secondaryId)
 {
-  this->setProperty(ctkXnatObjectFields::SECONDARY_ID, secondaryId);
+  this->setProperty(SECONDARY_ID, secondaryId);
 }
 
 //----------------------------------------------------------------------------
 const QString ctkXnatProject::piFirstName() const
 {
-  return this->property(ctkXnatObjectFields::PI_FIRSTNAME);
+  return this->property(PI_FIRSTNAME);
 }
 
 //----------------------------------------------------------------------------
 void ctkXnatProject::setPiFirstName(const QString& piFirstName)
 {
-  this->setProperty(ctkXnatObjectFields::PI_FIRSTNAME, piFirstName);
+  this->setProperty(PI_FIRSTNAME, piFirstName);
 }
 
 //----------------------------------------------------------------------------
 const QString ctkXnatProject::piLastName() const
 {
-  return this->property(ctkXnatObjectFields::PI_LASTNAME);
+  return this->property(PI_LASTNAME);
 }
 
 //----------------------------------------------------------------------------
 void ctkXnatProject::setPiLastName(const QString& piLastName)
 {
-  this->setProperty(ctkXnatObjectFields::PI_LASTNAME, piLastName);
+  this->setProperty(PI_LASTNAME, piLastName);
 }
 
 //----------------------------------------------------------------------------
 QString ctkXnatProject::projectDescription() const
 {
-  return this->property(ctkXnatObjectFields::DESCRIPTION);
+  return this->property(DESCRIPTION);
 }
 
 //----------------------------------------------------------------------------
 void ctkXnatProject::setProjectDescription(const QString& description)
 {
-  this->setProperty(ctkXnatObjectFields::DESCRIPTION, description);
+  this->setProperty(DESCRIPTION, description);
 }
 
 //----------------------------------------------------------------------------
@@ -150,10 +153,10 @@ void ctkXnatProject::fetchImpl()
 
   foreach (ctkXnatObject* subject, subjects)
   {
-    QString label = subject->property(ctkXnatObjectFields::LABEL);
+    QString label = subject->name();
     if (!label.isEmpty())
     {
-      subject->setProperty(ctkXnatObjectFields::ID, label);
+      subject->setId(label);
     }
 
     this->add(subject);

+ 5 - 0
Libs/XNAT/Core/ctkXnatProject.h

@@ -60,6 +60,11 @@ public:
 
   void reset();
 
+  static const QString SECONDARY_ID;
+  static const QString DESCRIPTION;
+  static const QString PI_FIRSTNAME;
+  static const QString PI_LASTNAME;
+
 private:
 
   virtual void fetchImpl();

+ 3 - 3
Libs/XNAT/Core/ctkXnatReconstruction.cpp

@@ -21,8 +21,8 @@
 
 #include "ctkXnatReconstruction.h"
 
-#include "ctkXnatConstants.h"
 #include "ctkXnatDefaultSchemaTypes.h"
+#include "ctkXnatFile.h"
 #include "ctkXnatObjectPrivate.h"
 #include "ctkXnatReconstructionFolder.h"
 #include "ctkXnatSession.h"
@@ -82,10 +82,10 @@ void ctkXnatReconstruction::fetchImpl()
 
   foreach (ctkXnatObject* reconstructionResource, reconstructionResources)
   {
-    QString label = reconstructionResource->property(ctkXnatObjectFields::FILE_NAME);
+    QString label = reconstructionResource->name();
     if (!label.isEmpty())
     {
-      reconstructionResource->setProperty(ctkXnatObjectFields::ID, label);
+      reconstructionResource->setName(label);
     }
 
     this->add(reconstructionResource);

+ 1 - 2
Libs/XNAT/Core/ctkXnatReconstructionFolder.cpp

@@ -21,7 +21,6 @@
 
 #include "ctkXnatReconstructionFolder.h"
 
-#include "ctkXnatConstants.h"
 #include "ctkXnatDefaultSchemaTypes.h"
 #include "ctkXnatExperiment.h"
 #include "ctkXnatObjectPrivate.h"
@@ -52,7 +51,7 @@ public:
 ctkXnatReconstructionFolder::ctkXnatReconstructionFolder(ctkXnatObject* parent)
   : ctkXnatObject(*new ctkXnatReconstructionFolderPrivate(), parent, QString::null)
 {
-  this->setProperty(ctkXnatObjectFields::ID, "reconstructions");
+  this->setProperty(ID, "reconstructions");
 }
 
 //----------------------------------------------------------------------------

+ 5 - 5
Libs/XNAT/Core/ctkXnatResource.cpp

@@ -21,10 +21,10 @@
 
 #include "ctkXnatResource.h"
 
-#include "ctkXnatConstants.h"
 #include "ctkXnatObjectPrivate.h"
 #include "ctkXnatSession.h"
 
+const QString ctkXnatResource::ID = "xnat_abstractresource_id";
 //----------------------------------------------------------------------------
 class ctkXnatResourcePrivate : public ctkXnatObjectPrivate
 {
@@ -57,13 +57,13 @@ QString ctkXnatResource::resourceUri() const
 //----------------------------------------------------------------------------
 QString ctkXnatResource::id() const
 {
-  return this->property(ctkXnatObjectFields::ABSTRACT_RESOURCE_ID);
+  return this->property(ID);
 }
 
 //----------------------------------------------------------------------------
 void ctkXnatResource::setId(const QString &id)
 {
-  this->setProperty(ctkXnatObjectFields::ABSTRACT_RESOURCE_ID, id);
+  this->setProperty(ID, id);
 }
 
 //----------------------------------------------------------------------------
@@ -81,13 +81,13 @@ void ctkXnatResource::setName(const QString &name)
 //----------------------------------------------------------------------------
 QString ctkXnatResource::label() const
 {
-  return this->property(ctkXnatObjectFields::LABEL);
+  return this->property(LABEL);
 }
 
 //----------------------------------------------------------------------------
 void ctkXnatResource::setLabel(const QString &label)
 {
-  this->setProperty(ctkXnatObjectFields::LABEL, label);
+  this->setProperty(LABEL, label);
 }
 
 //----------------------------------------------------------------------------

+ 2 - 0
Libs/XNAT/Core/ctkXnatResource.h

@@ -60,6 +60,8 @@ public:
 
   void download(const QString& filename);
 
+  static const QString ID;
+
 private:
 
   friend class qRestResult;

+ 10 - 7
Libs/XNAT/Core/ctkXnatScan.cpp

@@ -21,13 +21,16 @@
 
 #include "ctkXnatScan.h"
 
-#include "ctkXnatConstants.h"
 #include "ctkXnatDefaultSchemaTypes.h"
 #include "ctkXnatObject.h"
 #include "ctkXnatObjectPrivate.h"
 #include "ctkXnatScanFolder.h"
 #include "ctkXnatSession.h"
 
+const QString ctkXnatScan::QUALITY = "quality";
+const QString ctkXnatScan::SERIES_DESCRIPTION = "series_description";
+const QString ctkXnatScan::TYPE = "type";
+
 //----------------------------------------------------------------------------
 class ctkXnatScanPrivate : public ctkXnatObjectPrivate
 {
@@ -61,37 +64,37 @@ ctkXnatScan::~ctkXnatScan()
 //----------------------------------------------------------------------------
 void ctkXnatScan::setQuality(const QString &quality)
 {
-  this->setProperty(ctkXnatObjectFields::QUALITY, quality);
+  this->setProperty(QUALITY, quality);
 }
 
 //----------------------------------------------------------------------------
 QString ctkXnatScan::quality() const
 {
-  return this->property(ctkXnatObjectFields::QUALITY);
+  return this->property(QUALITY);
 }
 
 //----------------------------------------------------------------------------
 void ctkXnatScan::setSeriesDescription(const QString &seriesDescription)
 {
-  this->setProperty(ctkXnatObjectFields::SERIES_DESCRIPTION, seriesDescription);
+  this->setProperty(SERIES_DESCRIPTION, seriesDescription);
 }
 
 //----------------------------------------------------------------------------
 QString ctkXnatScan::seriesDescription() const
 {
-  return this->property(ctkXnatObjectFields::SERIES_DESCRIPTION);
+  return this->property(SERIES_DESCRIPTION);
 }
 
 //----------------------------------------------------------------------------
 void ctkXnatScan::setType(const QString &type)
 {
-  this->setProperty(ctkXnatObjectFields::TYPE, type);
+  this->setProperty(TYPE, type);
 }
 
 //----------------------------------------------------------------------------
 QString ctkXnatScan::type() const
 {
-  return this->property(ctkXnatObjectFields::TYPE);
+  return this->property(TYPE);
 }
 
 //----------------------------------------------------------------------------

+ 4 - 0
Libs/XNAT/Core/ctkXnatScan.h

@@ -56,6 +56,10 @@ public:
 
   void reset();
 
+  static const QString QUALITY;
+  static const QString SERIES_DESCRIPTION;
+  static const QString TYPE;
+
 private:
 
   friend class qRestResult;

+ 4 - 6
Libs/XNAT/Core/ctkXnatScanFolder.cpp

@@ -21,14 +21,12 @@
 
 #include "ctkXnatScanFolder.h"
 
-#include "ctkXnatConstants.h"
 #include "ctkXnatDefaultSchemaTypes.h"
 #include "ctkXnatExperiment.h"
 #include "ctkXnatObjectPrivate.h"
 #include "ctkXnatScan.h"
 #include "ctkXnatSession.h"
 
-
 //----------------------------------------------------------------------------
 class ctkXnatScanFolderPrivate : public ctkXnatObjectPrivate
 {
@@ -53,7 +51,7 @@ ctkXnatScanFolder::ctkXnatScanFolder(ctkXnatObject* parent)
   : ctkXnatObject(*new ctkXnatScanFolderPrivate(), parent, QString::null)
 {
   this->setId("scans");
-  this->setProperty(ctkXnatObjectFields::LABEL, "Scans");
+  this->setProperty(LABEL, "Scans");
 }
 
 //----------------------------------------------------------------------------
@@ -85,10 +83,10 @@ void ctkXnatScanFolder::fetchImpl()
 
   foreach (ctkXnatObject* scan, scans)
   {
-    QString series_description = scan->property (ctkXnatObjectFields::SERIES_DESCRIPTION);
-    QString label = scan->property (ctkXnatObjectFields::LABEL);
+    QString series_description = scan->property (ctkXnatScan::SERIES_DESCRIPTION);
+    QString label = scan->property (LABEL);
     label = label.isEmpty() ? series_description : label;
-    scan->setProperty (ctkXnatObjectFields::LABEL, label);
+    scan->setProperty (LABEL, label);
     
     this->add(scan);
   }

+ 2 - 3
Libs/XNAT/Core/ctkXnatSession.cpp

@@ -22,7 +22,6 @@
 #include "ctkXnatSession.h"
 
 #include "ctkXnatAssessor.h"
-#include "ctkXnatConstants.h"
 #include "ctkXnatDataModel.h"
 #include "ctkXnatDefaultSchemaTypes.h"
 #include "ctkXnatException.h"
@@ -366,7 +365,7 @@ void ctkXnatSession::open()
   }
 
   d->dataModel.reset(new ctkXnatDataModel(this));
-  d->dataModel->setProperty(ctkXnatObjectFields::LABEL, this->url().toString());
+  d->dataModel->setProperty(ctkXnatObject::LABEL, this->url().toString());
   emit sessionOpened();
 }
 
@@ -569,7 +568,7 @@ void ctkXnatSession::save(ctkXnatObject* object)
   const QList<QVariantMap>& maps = result->results();
   if (maps.size() == 1 && maps[0].size() == 1)
   {
-    QVariant id = maps[0][ctkXnatObjectFields::ID];
+    QVariant id = maps[0][ctkXnatObject::ID];
     if (!id.isNull())
     {
       object->setId(id.toString());

+ 28 - 3
Libs/XNAT/Core/ctkXnatSubject.cpp

@@ -21,13 +21,14 @@
 
 #include "ctkXnatSubject.h"
 
-#include "ctkXnatConstants.h"
 #include "ctkXnatDefaultSchemaTypes.h"
 #include "ctkXnatExperiment.h"
 #include "ctkXnatObjectPrivate.h"
 #include "ctkXnatProject.h"
 #include "ctkXnatSession.h"
 
+const QString ctkXnatSubject::INSERT_DATE = "insert_date";
+const QString ctkXnatSubject::INSERT_USER = "insert_user";
 
 //----------------------------------------------------------------------------
 class ctkXnatSubjectPrivate : public ctkXnatObjectPrivate
@@ -67,6 +68,30 @@ ctkXnatSubject::~ctkXnatSubject()
 }
 
 //----------------------------------------------------------------------------
+QString ctkXnatSubject::name() const
+{
+  return this->label();
+}
+
+//----------------------------------------------------------------------------
+void ctkXnatSubject::setName(const QString &name)
+{
+  this->setLabel(name);
+}
+
+//----------------------------------------------------------------------------
+QString ctkXnatSubject::label() const
+{
+  return this->property(LABEL);
+}
+
+//----------------------------------------------------------------------------
+void ctkXnatSubject::setLabel(const QString &label)
+{
+  this->setProperty(LABEL, label);
+}
+
+//----------------------------------------------------------------------------
 const QString& ctkXnatSubject::insertDate() const
 {
   Q_D(const ctkXnatSubject);
@@ -118,10 +143,10 @@ void ctkXnatSubject::fetchImpl()
 
   foreach (ctkXnatObject* experiment, experiments)
   {
-    QString label = experiment->property (ctkXnatObjectFields::LABEL);
+    QString label = experiment->name();
     if (!label.isEmpty())
     {
-      experiment->setProperty (ctkXnatObjectFields::ID, label);
+      experiment->setId(label);
     }
 
     this->add(experiment);

+ 11 - 0
Libs/XNAT/Core/ctkXnatSubject.h

@@ -45,6 +45,14 @@ public:
   ctkXnatProject* getPrimaryProject() const;
   QList<ctkXnatProject*> getProjects() const;
 
+  /// Sets the name, i.e. the label of the subject
+  virtual void setName(const QString &name);
+  /// Returns the name, i.e. the label of the subject
+  virtual QString name() const;
+
+  void setLabel(const QString &label);
+  QString label() const;
+
   const QString& insertDate() const;
 
   /// @warning does not overwrite the insert date on the server, since this is read only
@@ -59,6 +67,9 @@ public:
 
   void reset();
 
+  static const QString INSERT_DATE;
+  static const QString INSERT_USER;
+
 private:
 
   friend class qRestResult;

+ 1 - 2
Libs/XNAT/Core/ctkXnatTreeModel.cpp

@@ -21,7 +21,6 @@
 
 #include "ctkXnatTreeModel.h"
 
-#include "ctkXnatConstants.h"
 #include "ctkXnatDataModel.h"
 #include "ctkXnatObject.h"
 #include "ctkXnatTreeItem_p.h"
@@ -78,7 +77,7 @@ QVariant ctkXnatTreeModel::data(const QModelIndex& index, int role) const
     QString displayData = xnatObject->name();
     if (displayData.isEmpty())
     {
-      displayData = xnatObject->property(ctkXnatObjectFields::LABEL);
+      displayData = xnatObject->property(ctkXnatObject::LABEL);
     }
     return displayData;
   }