+ /// \brief Gets any type of DocEntry, identified by its (group,elem)
+ virtual DocEntry *GetDocEntry(uint16_t group, uint16_t elem) = 0;
+ /// \brief Gets a ValEntry, identified by its (group, elem)
+ ValEntry *GetValEntry(uint16_t group, uint16_t elem);
+ /// \brief Gets a BinEntry, identified by its (group,elem)
+ BinEntry *GetBinEntry(uint16_t group, uint16_t elem);
+ /// \brief Gets a SeqEntry, identified by its (group,elem)
+ SeqEntry *GetSeqEntry(uint16_t group, uint16_t elem);
+
+ bool SetValEntry(std::string const &content,
+ uint16_t group, uint16_t elem);
+ bool SetBinEntry(uint8_t *content, int lgth,
+ uint16_t group, uint16_t elem);
+ bool SetValEntry(std::string const &content, ValEntry *entry);
+ bool SetBinEntry(uint8_t *content, int lgth, BinEntry *entry);
+
+ ValEntry *InsertValEntry(std::string const &value,
+ uint16_t group, uint16_t elem,
+ TagName const &vr = GDCM_UNKNOWN);
+ BinEntry *InsertBinEntry(uint8_t *binArea, int lgth,
+ uint16_t group, uint16_t elem,
+ TagName const &vr = GDCM_UNKNOWN);
+ SeqEntry *InsertSeqEntry(uint16_t group, uint16_t elem);
+ /// tells us if the set contains no entry
+ virtual bool IsEmpty() = 0;
+ virtual bool CheckIfEntryExist(uint16_t group, uint16_t elem);
+
+// DocEntry related utilities
+ ValEntry *NewValEntry(uint16_t group,uint16_t elem,
+ TagName const &vr = GDCM_UNKNOWN);
+ BinEntry *NewBinEntry(uint16_t group, uint16_t elem,
+ TagName const &vr = GDCM_UNKNOWN);
+ SeqEntry *NewSeqEntry(uint16_t group, uint16_t elem);
+
+// DictEntry related utilities
+ DictEntry *NewVirtualDictEntry(uint16_t group,uint16_t elem,
+ TagName const &vr = GDCM_UNKNOWN,
+ TagName const &vm = GDCM_UNKNOWN,
+ TagName const &name = GDCM_UNKNOWN );