1 /*=========================================================================
4 Module: $RCSfile: gdcmDocEntrySet.h,v $
6 Date: $Date: 2004/09/14 16:47:08 $
7 Version: $Revision: 1.17 $
9 Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
10 l'Image). All rights reserved. See Doc/License.txt or
11 http://www.creatis.insa-lyon.fr/Public/Gdcm/License.htm for details.
13 This software is distributed WITHOUT ANY WARRANTY; without even
14 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 PURPOSE. See the above copyright notices for more information.
17 =========================================================================*/
19 #ifndef GDCMDOCENTRYSET_H
20 #define GDCMDOCENTRYSET_H
22 #include "gdcmException.h"
23 #include "gdcmDocEntry.h"
25 typedef std::string gdcmBaseTagKey;
26 //-----------------------------------------------------------------------------
28 class GDCM_EXPORT gdcmDocEntrySet
32 gdcmDocEntrySet(int depth = 0);
33 virtual ~gdcmDocEntrySet();
35 /// \brief adds any type of entry to the entry set (pure vitual)
36 virtual bool AddEntry(gdcmDocEntry *Entry) = 0; // pure virtual
38 /// \brief prints any type of entry to the entry set (pure vitual)
39 virtual void Print (std::ostream & os = std::cout) = 0;// pure virtual
41 /// \brief write any type of entry to the entry set
42 virtual void Write (FILE *fp, FileType filetype) = 0;// pure virtual
44 /// \brief Gets the depth level of a Dicom Header Entry embedded in a
46 int GetDepthLevel() { return SQDepthLevel; }
48 /// \brief Sets the depth level of a Dicom Header Entry embedded in a
50 void SetDepthLevel(int depth) { SQDepthLevel = depth; }
52 void SetBaseTagKey( gdcmBaseTagKey key ) { BaseTagKey = key; }
53 gdcmBaseTagKey GetBaseTagKey( ) { return BaseTagKey; }
55 virtual gdcmDocEntry* GetDocEntryByNumber(uint16_t group,
56 uint16_t element) = 0;
57 gdcmDocEntry *GetDocEntryByName(std::string const & name);
58 virtual std::string GetEntryByNumber(uint16_t group,uint16_t element) = 0;
59 std::string GetEntryByName(TagName const & name);
60 gdcmDictEntry *NewVirtualDictEntry(uint16_t group,
62 std::string const & vr = "unkn",
63 std::string const & fourth = "unkn",
64 std::string const & name = "unkn");
68 // DocEntry related utilities
69 gdcmValEntry* NewValEntryByNumber(uint16_t group,
71 gdcmBinEntry* NewBinEntryByNumber(uint16_t group,
73 gdcmDocEntry* NewDocEntryByNumber(uint16_t group,
75 gdcmDocEntry* NewDocEntryByNumber(uint16_t group,
77 std::string const & VR);
78 gdcmDocEntry* NewDocEntryByName (std::string const & name);
79 gdcmSeqEntry* NewSeqEntryByNumber(uint16_t group,
82 // DictEntry related utilities
83 gdcmDictEntry *GetDictEntryByName (std::string const & name);
84 gdcmDictEntry *GetDictEntryByNumber(uint16_t, uint16_t);
86 /// Gives the depth level of the element set inside SeQuences
89 /// \brief A TagKey of a gdcmDocEntry nested in a sequence is prepended
90 /// with this BaseTagKey.
91 gdcmBaseTagKey BaseTagKey;
96 //-----------------------------------------------------------------------------