Przeglądaj źródła

Fixed some warnings about DCMTK tag problems

Logic fix: do not copy tags to ourself in ctkDICOMDataset
Marco Nolden 13 lat temu
rodzic
commit
cc043889b5
1 zmienionych plików z 4 dodań i 14 usunięć
  1. 4 14
      Libs/DICOM/Core/ctkDICOMDataset.cpp

+ 4 - 14
Libs/DICOM/Core/ctkDICOMDataset.cpp

@@ -84,20 +84,11 @@ void ctkDICOMDataset::InitializeFromDataset(DcmDataset* dataset, bool takeOwners
     if (!d->m_DICOMDataSetInitialized)
     {
       d->m_DICOMDataSetInitialized = true;
-      // remember "specific character set" tag for conversion of strings to the right encoding
-      //std::cerr << "** " << (void*)this << " ctkDICOMDataset: Initialized DcmDataset" << std::endl;
-      if ( CopyElement( dataset, DCM_SpecificCharacterSet, 3 ) )
+      OFString encoding;
+      if ( CheckCondition( dataset->findAndGetOFString(DCM_SpecificCharacterSet, encoding) ) )
       {
-        OFString encoding;
-        if ( CheckCondition( dataset->findAndGetOFString(DCM_SpecificCharacterSet, encoding) ) )
-        {
-          d->m_SpecificCharacterSet = encoding.c_str();
-        }
-        else
-        {
-          std::cerr << "Some implementation error in DCMTK. We put something into a box and now the box is empty. This is not ok." << std::endl;
-          //throw std::logic_error("Some implementation error in DCMTK. We put something into a box and now the box is empty. This is not ok.");
-        }
+        d->m_SpecificCharacterSet = encoding.c_str();
+      }
       }
       if (d->m_SpecificCharacterSet.isEmpty())
       {
@@ -113,7 +104,6 @@ void ctkDICOMDataset::InitializeFromDataset(DcmDataset* dataset, bool takeOwners
       }
     }
   }
-}
 
 
 void ctkDICOMDataset::InitializeFromFile(const QString& filename,