]> Creatis software - gdcm.git/blobdiff - src/gdcmTS.cxx
fix mistyping
[gdcm.git] / src / gdcmTS.cxx
index 96e9cb562ccfa99d3809d8f54915dbf9c0e27090..93e9ef3b1b3bf317f9c81b9441db48799e1e9c93 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmTS.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/10/26 08:04:16 $
-  Version:   $Revision: 1.52 $
+  Date:      $Date: 2009/03/04 08:57:42 $
+  Version:   $Revision: 1.56 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
 #include <ctype.h> // for isdigit
 
 // TODO
-// a lot of troubles expected with TS : 1.2.840.113619.5.2
+// troubles expected with TS : 1.2.840.113619.5.2
 // Implicit VR - Big Endian
 // http://www.gemedicalsystemseurope.com/euen/it_solutions/pdf/lsqxi_rev2.pdf
-// 
+// G.E. deliberately violated a lot of Dicom rules are
+// (probabely to avoid other people to read their images)
+// Just try and error on new images :
+// PrintFile debug filein=...
+// and fix the bugs
 
-namespace gdcm 
+namespace GDCM_NAME_SPACE 
 {
 //-----------------------------------------------------------------------------
 /// \brief Transfer Syntaxes gdcm deals with (internal use only)
 static const char *SpecialStrings[] =  {
   // Implicit VR Little Endian
   "1.2.840.10008.1.2",
-  // Implicit VR Big Endian DLX (G.E Private)
+  // Implicit VR Big Endian (G.E Private)
   "1.2.840.113619.5.2",
   // Explicit VR Little Endian
   "1.2.840.10008.1.2.1",
@@ -74,6 +78,11 @@ static const char *SpecialStrings[] =  {
   "1.2.840.10008.1.2.5",
   // MPEG2 Main Profile @ Main Level
   "1.2.840.10008.1.2.4.100",
+  
+  // The following are *not* t.s. but SOP uid
+  // Ultrasound Image Storage (Retired)
+  "1.2.840.10008.5.1.4.1.1.6",
+     
   // Unknown
   "Unknown Transfer Syntax", // Pretty sure we never use this case...
   NULL // Compilers have no obligation to finish by NULL, do it ourself
@@ -88,6 +97,7 @@ void FillDefaultTSDict(TSHT &ts);
 // Constructor / Destructor
 TS::TS() 
 {
+
    std::string filename = DictSet::BuildDictPath() + DICT_TS;
    std::ifstream from(filename.c_str());
    if ( !from )
@@ -111,6 +121,7 @@ TS::TS()
             TsMap[key] = name;
          }
       }
+
       from.close();
    }
 }
@@ -307,6 +318,24 @@ bool TS::IsMPEG(TSKey const &key)
    return r;
 }
 
+/**
+ * \brief   Determines if the SOP id corresponds to any form
+ *          of UltrasoundImageStorage_Retired.
+ * @return  True when Ultrasound Image Storage Retired. False otherwise.
+ */
+bool TS::IsUltrasoundImageStorage_Retired(TSKey const &key)
+{
+   bool r = false;
+   // First check this is an actual SOP id
+   if ( IsTransferSyntax(key) )
+   {
+      if ( key == SpecialStrings[UltrasoundImageStorage_Retired] ) 
+      {
+         r = true;
+      }
+   }
+   return r;
+}
 /**
  * \brief   GetSpecialTransferSyntax ??
  * @param  key TSKey const &key ??
@@ -329,7 +358,7 @@ TS::SpecialType TS::GetSpecialTransferSyntax(TSKey const &key)
  * @param  t SpecialType t ??
  * @return  char* TS : SpecialStrings[t] ??.
  */
-const charTS::GetSpecialTransferSyntax(SpecialType t)
+const char *TS::GetSpecialTransferSyntax(SpecialType t)
 {
    return SpecialStrings[t];
 }