+// Element value
+ std::string GetElValByName (std::string tagName);
+ std::string GetElValRepByName (std::string tagName);
+ std::string GetElValByNumber (guint16 group, guint16 element);
+ std::string GetElValRepByNumber(guint16 group, guint16 element);
+
+ bool SetElValueByName(std::string content,std::string tagName);
+// bool SetElValueByNumber(std::string content,guint16 group, guint16 element);
+
+// inline ListTag & GetListElem(void) { return PubElValSet.GetListElem();};
+// inline TagElValueHT & GetElVal(void) { return PubElValSet.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);
+
+// System access
+ inline int GetSwapCode(void) { return sw; }
+ guint16 SwapShort(guint16); // needed by gdcmFile
+ guint32 SwapLong(guint32); // for JPEG Files
+
+ // was protected
+ 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);
+
+protected:
+ bool CheckIfExistByNumber(guint16 Group, guint16 Elem );
+ gdcmElValue * GetElValueByNumber(guint16 group, guint16 element);
+
+ int write(std::ostream&);
+ int anonymize(std::ostream&); // FIXME : anonymize should be a friend ?
+
+ size_t GetPubElValOffsetByNumber (guint16 Group, guint16 Elem);
+ void * GetPubElValVoidAreaByNumber(guint16 Group, guint16 Elem);
+ void * LoadElementVoidArea (guint16 Group, guint16 Element);
+
+
+// Variables
+ FILE * fp;
+ FileType filetype; // ACR, ACR_LIBIDO, ExplicitVR, ImplicitVR, Unknown
+
+private:
+ // Read
+ void LoadElements (void);
+ void LoadElementValue (gdcmElValue *);
+ void LoadElementValueSafe(gdcmElValue *);
+ void FindLength (gdcmElValue *);
+ void FindVR (gdcmElValue *);
+
+ guint32 FindLengthOB(void);
+
+ void SkipElementValue (gdcmElValue *);
+ void FixFoundLength (gdcmElValue *, guint32);
+ bool IsAnInteger (gdcmElValue *);
+
+ guint16 ReadInt16(void);
+ guint32 ReadInt32(void);
+ void SkipBytes(guint32);
+
+ void Initialise(void);
+ void CheckSwap(void);
+ void SwitchSwapToBigEndian(void);
+ void SetMaxSizeLoadElementValue(long);
+
+ // Dict
+ gdcmDictEntry *GetDictEntryByName (std::string Name);
+ gdcmDictEntry *GetDictEntryByNumber(guint16, guint16);
+
+ // ElValue related utilities
+ gdcmElValue *ReadNextElement (void);
+ gdcmElValue *NewElValueByNumber(guint16 group, guint16 element);
+ gdcmElValue *NewElValueByName (std::string Name);
+ gdcmElValue* GetElementByName (std::string Name);
+
+ // Deprecated
+ gdcmElValue *NewManualElValToPubDict(std::string NewTagName,
+ std::string VR);
+
+// Variables
+ // Pointer to the Value Representation Hash Table which contains all
+ // the VR of the DICOM version3 public dictionary.
+ gdcmVR *dicom_vr; // Not a class member for thread-safety reasons
+
+ // Pointer to the Transfert Syntax Hash Table which contains all
+ // the TS of the DICOM version3 public dictionary.
+ gdcmTS *dicom_ts; // Not a class member for thread-safety reasons