]> Creatis software - gdcm.git/commitdiff
Jean-Pierre Roux
authorjpr <jpr>
Tue, 15 Jun 2004 10:06:10 +0000 (10:06 +0000)
committerjpr <jpr>
Tue, 15 Jun 2004 10:06:10 +0000 (10:06 +0000)
   *  gdcmSeqEntry.cxx
   - fix the display of Sequence Delimitor (SQDepthLevel pb)
- fix the display of SQItem ordinal number
      - add the GetSQItemByOrdinalNumber method
- remove some useless never written private methods

src/gdcmDocument.cxx
src/gdcmSeqEntry.cxx
src/gdcmSeqEntry.h

index 7476b4b0aeabbb27836db6a8a80650092f0c568c..ea6119c465bb2e0e7cb721e98d5a76c935a1d023 100644 (file)
@@ -1442,6 +1442,7 @@ long gdcmDocument::ParseDES(gdcmDocEntrySet *set, long offset, long l_max, bool
  */ 
 long gdcmDocument::ParseSQ(gdcmSeqEntry *set, long offset, long l_max, bool delim_mode) {
    int SQItemNumber = 0;
+               
    gdcmDocEntry *NewDocEntry = (gdcmDocEntry *)0;
    gdcmSQItem *itemSQ;
    bool dlm_mod;
@@ -1468,7 +1469,7 @@ long gdcmDocument::ParseSQ(gdcmSeqEntry *set, long offset, long l_max, bool deli
          dlm_mod = true;
       else
          dlm_mod=false;
-      
+   
       lgr=ParseDES(itemSQ, NewDocEntry->GetOffset(), l, dlm_mod);
       
       set->AddEntry(itemSQ,SQItemNumber);       
index e7e56832f28c1de3d9c36b8b77d014984f561211..2273a11f31ad7325f883a789cf841aad7ac55203 100644 (file)
@@ -60,16 +60,16 @@ void gdcmSeqEntry::Print(std::ostream &os){
  
     // Then, Print each SQ Item   
      for(ListSQItem::iterator cc = items.begin();cc != items.end();++cc)
-   {   
-       
-       std::cout << "SQItemNumber " << (*cc)->GetSQItemNumber() << std::endl;
-                       
+   {                           
       (*cc)->Print(os);   
    }
    // at end, print the sequence terminator item, if any
 
    if (delimitor_mode) {
-      s2 << "   | " ;  // FIXME : cout the right number of | ! 
+      if (SQDepthLevel>0) {
+         for (int i=0;i<SQDepthLevel;i++)
+            s2 << "   | " ;
+      }                
       os << s2.str();
       if (seq_term != NULL) {
          seq_term->Print(os);
@@ -95,6 +95,22 @@ void gdcmSeqEntry::SetDepthLevel(int depth) {
    SQDepthLevel = depth;
 }
 
+/// \brief return a pointer to th SQItem referenced by its ordinal number
+/// (returns the first one if ordinal number is <0
+///  returns the last  one if ordinal number is > item number
+
+gdcmSQItem *gdcmSeqEntry::GetSQItemByOrdinalNumber(int nb) {
+   if (nb<0)
+               return (*(items.begin()));
+       int count = 0 ;
+   for(ListSQItem::iterator cc = items.begin();
+           cc != items.end();
+                count ++, ++cc){       
+      if (count==nb)
+                  return (*cc);      
+   }
+       return (*(items.end()));                 
+}
 //-----------------------------------------------------------------------------
 // Protected
 
@@ -102,31 +118,4 @@ void gdcmSeqEntry::SetDepthLevel(int depth) {
 //-----------------------------------------------------------------------------
 // Private
 
-// end-user intended : the guy *wants* to create his own SeQuence ?!?
-
-/// \brief to be written, if really usefull
-gdcmDocEntry *gdcmSeqEntry::NewDocEntryByNumber(guint16 group,
-                                                guint16 element) {
-// TODO
-   std::cout << "TODO : gdcmSeqEntry::NewDocEntryByNumber " << std::endl;
-   gdcmDocEntry *a;   
-   return a;
-}
-
-/// \brief to be written, if really usefull
-gdcmDocEntry *gdcmSeqEntry::NewDocEntryByName  (std::string Name) {
-// TODO
-   std::cout << "TODO : gdcmSeqEntry::NewDocEntryByName " << std::endl;
-   gdcmDocEntry *a;   
-   return a;   
-}
-
-/// \brief to be written, if really usefull
-gdcmDocEntry *gdcmSeqEntry::GetDocEntryByNumber(guint16 group,
-                                                guint16 element) {
-// TODO
-   std::cout << "TODO : gdcmSeqEntry::GetDocEntryByNumber " << std::endl;
-   gdcmDocEntry *a;   
-   return a;
-}
 //-----------------------------------------------------------------------------
index 91c373b484f47aa2c5b69a15dee52729a4918f00..69aae0401b9699d99fa47eca876a9c0d1c7d6a27 100644 (file)
@@ -29,14 +29,8 @@ public:
    /// \brief Sets the Sequence Delimitation Item
    inline void SetSequenceDelimitationItem(gdcmDocEntry * e) { seq_term = e;}
        
-    void AddEntry(gdcmSQItem *it, int itemNumber); 
-
-   /// \brief creates a new SQITEM for this SeQuence.
-   gdcmSQItem * NewItem(void);
-    
-   gdcmDocEntry *NewDocEntryByNumber(guint16 group, guint16 element);    
-   gdcmDocEntry *NewDocEntryByName  (std::string Name); 
-   gdcmDocEntry *GetDocEntryByNumber(guint16 group, guint16 element);
+   void AddEntry(gdcmSQItem *it, int itemNumber);      
+   gdcmSQItem *GetSQItemByOrdinalNumber(int itemNumber);       
 
    void SetDepthLevel(int depth);