瀏覽代碼

Add utility and tests for tag ushort/string conversion

Also expose these as Q_INVOKABLE for use from python.
Steve Pieper 13 年之前
父節點
當前提交
796452e3bc

+ 8 - 1
Libs/DICOM/Core/Testing/Cpp/ctkDICOMDatabaseTest2.cpp

@@ -97,6 +97,14 @@ int ctkDICOMDatabaseTest2( int argc, char * argv [] )
     return EXIT_FAILURE;
     }
 
+  if ( database.groupElementToTag(group, element) != tag )
+    {
+    std::cerr << "ctkDICOMDatabase: could not convert a uints to tag string" << std::endl;
+    return EXIT_FAILURE;
+    }
+
+
+
   //
   // Basic test:
   // - insert the file specified on the command line
@@ -124,7 +132,6 @@ int ctkDICOMDatabaseTest2( int argc, char * argv [] )
     return EXIT_FAILURE;
     }
 
-
   //
   // Test the tag cache
   //

+ 6 - 0
Libs/DICOM/Core/ctkDICOMDatabase.cpp

@@ -534,6 +534,12 @@ bool ctkDICOMDatabase::tagToGroupElement(const QString tag, unsigned short& grou
 }
 
 //------------------------------------------------------------------------------
+QString ctkDICOMDatabase::groupElementToTag(const unsigned short& group, const unsigned short& element)
+{
+  return QString("%1,%2").arg(group,4,16,QLatin1Char('0')).arg(element,4,16,QLatin1Char('0'));
+}
+
+//------------------------------------------------------------------------------
 void ctkDICOMDatabase::insert( DcmDataset *dataset, bool storeFile, bool generateThumbnail)
 {
   if (!dataset)

+ 2 - 1
Libs/DICOM/Core/ctkDICOMDatabase.h

@@ -171,7 +171,8 @@ public:
   Q_INVOKABLE QString instanceValue (const QString sopInstanceUID, const unsigned short group, const unsigned short element);
   Q_INVOKABLE QString fileValue (const QString fileName, const QString tag);
   Q_INVOKABLE QString fileValue (const QString fileName, const unsigned short group, const unsigned short element);
-  bool tagToGroupElement (const QString tag, unsigned short& group, unsigned short& element);
+  Q_INVOKABLE bool tagToGroupElement (const QString tag, unsigned short& group, unsigned short& element);
+  Q_INVOKABLE QString groupElementToTag (const unsigned short& group, const unsigned short& element);
 
   ///
   /// \brief store values of previously requested instance elements