]> Creatis software - gdcm.git/blob - src/gdcmSQItem.h
Jean-Pierre Roux
[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    inline int GetSQItemNumber()
43            { return SQItemNumber;};
44
45    inline void SetSQItemNumber(int itemNumber)
46            {  SQItemNumber=itemNumber;};                     
47 protected:
48
49    // DocEntry related utilities 
50          
51    virtual gdcmDocEntry *NewDocEntryByNumber(guint16 group,
52                                              guint16 element); // TODO
53    virtual gdcmDocEntry *NewDocEntryByName  (std::string Name); //TODO 
54
55 // Variables
56
57 /// \brief chained list of (Elementary) Doc Entries
58   ListDocEntry docEntries;
59   
60 /// \brief SQ Item ordinal number 
61   int SQItemNumber;
62
63
64 ///\brief pointer to the HTable of the gdcmDocument,
65 ///       (because we don't know it within any gdcmObject nor any gdcmSQItem) 
66   TagDocEntryHT *ptagHT;
67        
68 private:
69
70
71 };
72
73
74 //-----------------------------------------------------------------------------
75 #endif
76