]> Creatis software - gdcm.git/blob - src/gdcmSQItem.h
Last commit before the final(?) one, for the new version.
[gdcm.git] / src / gdcmSQItem.h
1 // gdcmSQItem.h
2 //-----------------------------------------------------------------------------
3 #ifndef GDCMSQITEM_H
4 #define GDCMSQITEM_H
5
6 #include <list>
7
8 #include "gdcmDocEntry.h"
9 #include "gdcmDocEntrySet.h"
10 #include "gdcmDocument.h"
11 //-----------------------------------------------------------------------------
12 typedef std::list<gdcmDocEntry *> ListDocEntry;
13 //-----------------------------------------------------------------------------
14 class GDCM_EXPORT gdcmSQItem : public gdcmDocEntrySet
15 {
16 public:
17    gdcmSQItem(int);
18    ~gdcmSQItem(void);
19
20    virtual void Print(std::ostream &os = std::cout); 
21
22  /// \brief   returns the DocEntry chained List for this SQ Item.
23    inline ListDocEntry &GetDocEntries() 
24       {return docEntries;};   
25    
26  /// \brief   adds the passed DocEntry to the DocEntry chained List for this SQ Item.      
27    inline void AddDocEntry(gdcmDocEntry *e) 
28       {docEntries.push_back(e);};         
29
30    virtual bool AddEntry(gdcmDocEntry *Entry); // add to the List
31   
32    gdcmDocEntry *GetDocEntryByNumber(guint16 group, 
33                                      guint16 element);
34    gdcmDocEntry *GetDocEntryByName  (std::string Name);
35    
36    bool SetEntryByNumber(std::string val,guint16 group,
37                                          guint16 element);                   
38     
39    std::string GetEntryByNumber(guint16 group, guint16 element);
40    std::string GetEntryByName(TagName name);
41       
42 protected:
43
44    // DocEntry related utilities 
45          
46    virtual gdcmDocEntry *NewDocEntryByNumber(guint16 group,
47                                              guint16 element); // TODO
48    virtual gdcmDocEntry *NewDocEntryByName  (std::string Name); //TODO 
49
50 // Variables
51
52 /// \brief chained list of (Elementary) Doc Entries
53   ListDocEntry docEntries;
54   
55 /// \brief SQ Item ordinal number 
56   int SQItemNumber;
57
58 /**
59 * \brief pointer to the HTable of the gdcmDocument,
60 *        (because we don't know it within any gdcmObject nor any gdcmSQItem) 
61 */
62   TagDocEntryHT *ptagHT;
63        
64 private:
65
66
67 };
68
69
70 //-----------------------------------------------------------------------------
71 #endif
72