X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmHeader.h;h=3d8564140d646e4667f2b6484dabee3427d903b1;hb=c5618e6b8276e1b21bbea354fe8bcba3c78eb4bd;hp=e8f6146cacba655eb001560fe3db4995eb5aca13;hpb=1bc5ccd72098866fc29ca8a786e8bb6852f388ea;p=gdcm.git diff --git a/src/gdcmHeader.h b/src/gdcmHeader.h index e8f6146c..3d856414 100644 --- a/src/gdcmHeader.h +++ b/src/gdcmHeader.h @@ -28,6 +28,25 @@ */ class GDCM_EXPORT gdcmHeader : public gdcmParser { +protected: + /// In some cases (e.g. for some ACR-NEMA images) the Header Entry Element + /// Number of the 'Pixel Element' is *not* found at 0x0010. In order to + /// make things easier the parser shall store the proper value in + /// NumPixel to provide a unique access facility. See also the constructor + /// \ref gdcmHeader::gdcmHeader + guint16 NumPixel; + /// In some cases (e.g. for some ACR-NEMA images) the header entry for + /// the group of pixels is *not* found at 0x7fe0. In order to + /// make things easier the parser shall store the proper value in + /// GrPixel to provide a unique access facility. See also the constructor + /// \ref gdcmHeader::gdcmHeader + guint16 GrPixel; + /// Some DICOM files may contain several images (e.g. a icon, followd by + /// the image itself. Hence the tag (GrPixel,NumPixel) might appear + /// several times. countGrPixel is the number of occurences of the + /// tag of pixels (i.e. (GrPixel,NumPixel)) contained in the header. + /// TODO : will be dealt with SQ tree-like stucture + int countGrPixel; public: gdcmHeader(bool exception_on_error = false); gdcmHeader(const char *filename, @@ -79,19 +98,17 @@ public: // TODO Swig int SetShaDict(std::string filename); // TODO Swig int SetPubDict(std::string filename); -// System access - /** - * \brief the Header Entry Group Number of the 'Pixel Group' - * is not allways 0x7fe0 - * @return GrPixel - */ + /// Accessor to \ref gdcmHeader::GrPixel guint16 GetGrPixel(void) {return GrPixel;} - /// Accessor to \ref gdcmParser::NumPixel + /// Accessor to \ref gdcmHeader::NumPixel guint16 GetNumPixel(void) {return NumPixel;} // Entry +// These functions are necessary for Python because +// there are protected in the parent class + inline virtual std::string GetEntryByNumber (guint16 group, guint16 element) { return(gdcmParser::GetEntryByNumber(group,element)); } @@ -107,13 +124,15 @@ public: inline virtual std::string GetEntryVRByName (std::string tagName) { return(gdcmParser::GetEntryVRByName(tagName)); } - inline virtual bool SetEntryByNumber(std::string content,guint16 group, guint16 element) + inline virtual bool SetEntryByNumber(std::string content, + guint16 group, guint16 element) { return(gdcmParser::SetEntryByNumber(content,group,element)); } inline virtual bool SetEntryByName(std::string content,std::string tagName) { return(gdcmParser::SetEntryByName(content,tagName)); } - inline virtual bool SetEntryLengthByNumber(guint32 l,guint16 group, guint16 element) + inline virtual bool SetEntryLengthByNumber(guint32 l, + guint16 group, guint16 element) { return(gdcmParser::SetEntryLengthByNumber(l,group,element)); } inline virtual void UpdateShaEntries(void) @@ -124,6 +143,12 @@ public: bool operator<(gdcmHeader &header); + bool WriteEntry(gdcmHeaderEntry *tag,FILE *_fp,FileType type); + + + virtual void PrintEntryNoSQ (std::ostream &os = std::cout); + virtual void PrintEntryNiceSQ(std::ostream &os = std::cout); + protected: //CLEANME int write(std::ostream&); //CLEANME int anonymize(std::ostream&);//FIXME: anonymize should be a friend