* \note 0 for Light Print; 1 for 'medium' Print, 2 for Heavy
*/
void SetPrintLevel(int level) { printLevel = level; };
+ virtual void Print (std::ostream &os = std::cout) {PrintEntry(os);};
virtual void PrintEntry (std::ostream &os = std::cout);
virtual void PrintPubDict (std::ostream &os = std::cout);
virtual void PrintShaDict (std::ostream &os = std::cout);
// System access
inline int GetSwapCode(void) { return sw; }
+ guint16 GetGrPixel(void) {return GrPixel;}
+ guint16 GetNumPixel(void) {return NumPixel;}
+
guint16 SwapShort(guint16); // needed by gdcmFile
guint32 SwapLong(guint32); // needed by gdcmFile
guint16 UnswapShort(guint16); // needed by gdcmFile
virtual bool SetEntryByName (std::string content, std::string tagName);
virtual bool SetEntryByNumber(std::string content, guint16 group, guint16 element);
- virtual bool SetEntryLengthByNumber(guint32 l, guint16 group, guint16 element);
+ virtual bool SetEntryLengthByNumber(guint32 length, guint16 group, guint16 element);
virtual size_t GetEntryOffsetByNumber (guint16 Group, guint16 Elem);
virtual void *GetEntryVoidAreaByNumber(guint16 Group, guint16 Elem);
void LoadHeaderEntrySafe(gdcmHeaderEntry *);
void UpdateGroupLength(bool SkipSequence = false, FileType type = ImplicitVR);
- void WriteEntries(FileType type, FILE *);
+ void WriteEntries(FILE *_fp,FileType type);
// Variables
FILE *fp;
static const unsigned int HEADER_LENGTH_TO_READ;
static const unsigned int MAX_SIZE_LOAD_ELEMENT_VALUE;
+ static const unsigned int MAX_SIZE_PRINT_ELEMENT_VALUE;
protected:
+ TagHeaderEntryHT tagHT; // H Table (multimap), to provide fast access
+ ListTag listEntries; // chained list, to keep the 'spacial' ordering
+
int enableSequences;
int printLevel;
- TagHeaderEntryHT tagHT; // H Table (multimap), to provide fast access
- ListTag listEntries; // chained list, to keep the 'spacial' ordering
-
+ // For some ACR-NEMA images, it's *not* 7fe0, 0010 ...
+ guint16 GrPixel;
+ guint16 NumPixel;
+ // some files may contain icons; GrPixel,NumPixel appears several times
+ // Let's remember how many times!
+ int countGrPixel;
+
private:
// Read
- void Parse(bool exception_on_error = false) throw(gdcmFormatError);
+ bool ParseHeader(bool exception_on_error = false) throw(gdcmFormatError);
void LoadHeaderEntries (void);
void LoadHeaderEntry (gdcmHeaderEntry *);
void SkipBytes(guint32);
void Initialise(void);
- void CheckSwap(void);
+ bool CheckSwap(void);
void SwitchSwapToBigEndian(void);
void SetMaxSizeLoadEntry(long);
+ void SetMaxSizePrintEntry(long);
// DictEntry related utilities
gdcmDictEntry *GetDictEntryByName (std::string Name);
gdcmDictEntry *GetDictEntryByNumber(guint16, guint16);
gdcmDictEntry *NewVirtualDictEntry(guint16 group,
guint16 element,
- std::string vr = "Unknown",
- std::string fourth = "Unknown",
- std::string name = "Unknown");
+ std::string vr = "unkn",
+ std::string fourth = "unkn",
+ std::string name = "unkn");
gdcmDictEntry *NewVirtualDictEntry(gdcmHeaderEntry *);
// HeaderEntry related utilities
gdcmHeaderEntry *NewHeaderEntryByName (std::string Name);
- // Deprecated (Not used)
- gdcmHeaderEntry *NewManualHeaderEntryToPubDict(std::string NewTagName,
- std::string VR);
+ // Deprecated (Not used) --> commented out
+ //gdcmHeaderEntry *NewManualHeaderEntryToPubDict(std::string NewTagName,
+ // std::string VR);
guint32 GenerateFreeTagKeyInGroup(guint16 group);
// Refering underlying filename.
// this upper bound is fixed to 1024 bytes (which might look reasonable
// when one considers the definition of the various VR contents).
guint32 MaxSizeLoadEntry;
+ // Size treshold above which an element value will NOT be *printed* in
+ // order no to polute the screen output. By default,
+ // this upper bound is fixed to 64 bytes.
+ guint32 MaxSizePrintEntry;
+
};
//-----------------------------------------------------------------------------