]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOTreeDescriptor.cpp
_T
[creaImageIO.git] / src2 / creaImageIOTreeDescriptor.cpp
index 6849b10bd6740f84cc36774381a551473c0c25ff..d2cfd2fe593027d37120c3c9b417d1a02da3202a 100644 (file)
@@ -1,10 +1,11 @@
 #include <creaImageIOTreeDescriptor.h>
 #include <boost/algorithm/string/split.hpp>
+#include <boost/algorithm/string/replace.hpp>
 #include <creaImageIOSystem.h>
 #include <boost/filesystem.hpp>
 
 
-
+#include <fstream>
 
 
 namespace creaImageIO
@@ -18,6 +19,9 @@ namespace creaImageIO
     const unsigned int AttributeDescriptor::PRIVATE = 1;
     /// The attribute enters in unique identifier constitution 
     const unsigned int AttributeDescriptor::IDENTIFIER = 2;
+    /// The attribute can be edited
+    const unsigned int AttributeDescriptor::EDITABLE = 3;
+    /// the attribute describes the node
     const unsigned int AttributeDescriptor::LABEL = 4;
     //==================================================================
 
@@ -56,24 +60,24 @@ namespace creaImageIO
       
       // Patient level
       Add(LevelDescriptor("Patient"));
-         Add(AttributeDescriptor("NumberOfChildren","#Series",0),1);   // Number of Series
+      Add(AttributeDescriptor("NumberOfChildren","#Series",0),1);   // Number of Series
       Add(AttributeDescriptor(0x0010,0x0010,   // Patient name
                              AttributeDescriptor::LABEL),1);
       Add(AttributeDescriptor(0x0010,0x0040),1); // Patient sex
       Add(AttributeDescriptor(0x0010,0x0030),1); // Patient birthday
       Add(AttributeDescriptor(0x0010,0x0020,   // Patient ID
                              AttributeDescriptor::IDENTIFIER),1);
+
       // Study-series level
       Add(LevelDescriptor("Series"));
-         Add(AttributeDescriptor("NumberOfChildren","#Images",0),2);   // Number of images
+      Add(AttributeDescriptor("NumberOfChildren","#Images",0),2);   // Number of images
       Add(AttributeDescriptor(0x0008,0x0060,    // Modality
                              AttributeDescriptor::LABEL),2);
       Add(AttributeDescriptor(0x0008,0x1030),2); // Study Description
       Add(AttributeDescriptor(0x0008,0x103E),2); // Description
       Add(AttributeDescriptor(0x0008,0x0080),2); // Institution Name
       Add(AttributeDescriptor(0x0008,0x0081),2); // Institution Adress
-         Add(AttributeDescriptor(0x0008,0x1010),2); // Station Name
+      Add(AttributeDescriptor(0x0008,0x1010),2); // Station Name
       Add(AttributeDescriptor(0x0008,0x1048),2); // Physician of Record
       Add(AttributeDescriptor(0x0008,0x1050),2); // Performing Physician's Name
       Add(AttributeDescriptor(0x0018,0x1030),2); // Protocol Name
@@ -89,9 +93,9 @@ namespace creaImageIO
       Add(AttributeDescriptor(0x0020,0x000D   // Study Instance UID  
                                                    ),2);//AttributeDescriptor::IDENTIFIER),2);
       Add(AttributeDescriptor(0x0020,0x000E,   // Series Instance UID  
-                                                   AttributeDescriptor::IDENTIFIER),2);
+                               AttributeDescriptor::IDENTIFIER),2);
       // |
-      //                                                   AttributeDescriptor::LABEL),2);
+      //                       AttributeDescriptor::LABEL),2);
      
 
       // Image level
@@ -123,28 +127,27 @@ namespace creaImageIO
       Add(AttributeDescriptor(0x0020,0x4000),3); // Image Comments
 
       Add(AttributeDescriptor(0x0004,0x1500,   // File Name
-                                                   AttributeDescriptor::LABEL),3);
+                               AttributeDescriptor::LABEL),3);
       Add(AttributeDescriptor(0x0028,0x1052),3); // Rescale Intercept
       Add(AttributeDescriptor(0x0028,0x1053),3); // Rescale Slope
 
       Add(AttributeDescriptor(0x0050,0x0004),3); // Calibration Image
 
       Add(AttributeDescriptor(0x0020,0x0052   // Frame Reference UID
-                                                   ),3);
+                                          ),3);
       Add(AttributeDescriptor(0x0008,0x0016),3); // SOP Class UID
       Add(AttributeDescriptor("FullFileName",  // Full file name
-                                                   "Full file name",
-                                                   AttributeDescriptor::IDENTIFIER),3); 
-                                                                 
-     
+                               "Full file name",
+                               AttributeDescriptor::IDENTIFIER),3); 
+
     }
 
        //////////////////////////////////////////////////////////////
        // create a descriptor (name, attributes...) from a file)       //
-       // @param : file path                                                                           //
-       // return : -                                                                                           //
+       // @param : file path                                           //
+       // return : -                                                   //
        //////////////////////////////////////////////////////////////
-       void Descriptor::createDescriptorfromFile(std::string &i_name)
+       void Descriptor::createDescriptorfromFile(const std::string &i_name)
        {
                Clear();
                
@@ -205,15 +208,19 @@ namespace creaImageIO
                                        val2 >> std::hex >> element;
                                        Add(AttributeDescriptor( group,element,flag), ilevel);
                                }
-                               else // "O" means if user's own tag.
-                               {       
+
+                               else if(descriptors[0].find("#") != -1)
+                               {
+                                       // commented line continue to next line
+                               }
+                               else
+                               {       boost::algorithm::replace_all(descriptors[2],"_"," ");
                                        Add(AttributeDescriptor( descriptors[1].c_str(),descriptors[2].c_str(),flag), ilevel);
                                }
                        }
                }
        }
 
-
     //==================================================================
 
     //==================================================================
@@ -239,6 +246,7 @@ namespace creaImageIO
     {
       mLevelDescriptorList.clear();
     }
+
     //==================================================================
 
     //==================================================================
@@ -260,6 +268,5 @@ namespace creaImageIO
            }
        }
     }
   }
 }