+ bool SetPubEntryByName (std::string content, std::string tagName);
+ bool SetPubEntryByNumber(std::string content, guint16 group, guint16 element);
+ bool SetPubEntryLengthByNumber(guint32 lgr, guint16 group, guint16 element);
+
+ inline ListTag & GetPubListEntry(void) { return PubEntrySet.GetListEntry();};
+ inline TagHeaderEntryHT & GetPubEntry(void) { return PubEntrySet.GetTagHT(); };
+
+ void PrintPubEntry(std::ostream & os = std::cout);
+ void PrintPubDict (std::ostream & os = std::cout);
+
+// Element value
+ std::string GetEntryByName (std::string tagName);
+ std::string GetEntryVRByName (std::string tagName);
+ std::string GetEntryByNumber (guint16 group, guint16 element);
+ std::string GetEntryVRByNumber(guint16 group, guint16 element);
+
+ bool SetEntryByName(std::string content,std::string tagName);
+// bool SetEntryByNumber(std::string content,guint16 group, guint16 element);
+
+// inline ListTag & GetListEntry(void) { return PubHeaderEntrySet.GetListElem();};
+// inline TagHeaderEntryHT & GetListEntry(void) { return PubHeaderEntrySet.GetTagHt(); };
+
+// Read (used in gdcmFile)
+ FILE *OpenFile(bool exception_on_error = false) throw(gdcmFileError);
+ bool CloseFile(void);
+ virtual void ParseHeader(bool exception_on_error = false) throw(gdcmFormatError);
+
+// Write (used in gdcmFile)
+ bool Write(FILE *, FileType);
+ void SetImageDataSize(size_t ExpectedSize);
+
+ bool ReplaceOrCreateByNumber(std::string Value, guint16 Group, guint16 Elem);
+ bool ReplaceOrCreateByNumber( char * Value, guint16 Group, guint16 Elem);
+ bool ReplaceIfExistByNumber ( char * Value, guint16 Group, guint16 Elem);
+
+// System access
+ inline int GetSwapCode(void) { return sw; }
+ guint16 SwapShort(guint16); // needed by gdcmFile
+ guint32 SwapLong(guint32); // for JPEG Files
+
+protected:
+ bool CheckIfExistByNumber(guint16 Group, guint16 Elem );
+
+ gdcmHeaderEntry *GetHeaderEntryByName (std::string Name);
+ gdcmHeaderEntry *GetHeaderEntryByNumber(guint16 group, guint16 element);
+
+ int write(std::ostream&);
+ int anonymize(std::ostream&); // FIXME : anonymize should be a friend ?
+
+ size_t GetPubEntryOffsetByNumber (guint16 Group, guint16 Elem);
+ void * GetPubEntryVoidAreaByNumber(guint16 Group, guint16 Elem);
+ void * LoadEntryVoidArea (guint16 Group, guint16 Element);
+
+
+// Variables
+ FILE * fp;
+ FileType filetype; // ACR, ACR_LIBIDO, ExplicitVR, ImplicitVR, Unknown