X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmFile.h;h=dd48d1c53a419deba2f89bc83ae78d6a2afb4e67;hb=f5c24f2018ff4775ff6ae006de753a394d8cae0f;hp=477b55e9376507fa5b43c08b8253880e4610a6d5;hpb=86db5f0e37e40668ff8afea3f65f3b5213707115;p=gdcm.git diff --git a/src/gdcmFile.h b/src/gdcmFile.h index 477b55e9..dd48d1c5 100644 --- a/src/gdcmFile.h +++ b/src/gdcmFile.h @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmFile.h,v $ Language: C++ - Date: $Date: 2005/01/26 17:17:31 $ - Version: $Revision: 1.100 $ + Date: $Date: 2005/02/06 14:39:35 $ + Version: $Revision: 1.103 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -74,6 +74,7 @@ enum ModalityType { }; //----------------------------------------------------------------------------- + /** * \brief DICOM elements and their corresponding values (and * additionaly the corresponding DICOM dictionary entry) of the header @@ -91,55 +92,48 @@ enum ModalityType { * protected due to Swig limitations for as Has_a dependency between * File and FileHelper. */ - -//----------------------------------------------------------------------------- class GDCM_EXPORT File : public Document { -protected: - /// \brief In some cases (e.g. for some ACR-NEMA images) the 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. - uint16_t NumPixel; - /// \brief 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. - uint16_t GrPixel; - public: File(); File( std::string const &filename ); - ~File(); // Standard values and informations contained in the header bool IsReadable(); // Some heuristic based accessors, end user intended + int GetImageNumber(); + ModalityType GetModality(); + + int GetXSize(); + int GetYSize(); + int GetZSize(); + + float GetXSpacing(); + float GetYSpacing(); + float GetZSpacing(); + + float GetXOrigin(); + float GetYOrigin(); + float GetZOrigin(); + + void GetImageOrientationPatient( float iop[6] ); + int GetBitsStored(); int GetBitsAllocated(); + int GetHighBitPosition(); int GetSamplesPerPixel(); int GetPlanarConfiguration(); int GetPixelSize(); - int GetHighBitPosition(); + std::string GetPixelType(); bool IsSignedPixelData(); bool IsMonochrome(); bool IsPaletteColor(); bool IsYBRFull(); - std::string GetPixelType(); - size_t GetPixelOffset(); - size_t GetPixelAreaLength(); - - //Some image informations needed for third package imaging library - int GetXSize(); - int GetYSize(); - int GetZSize(); - - float GetXSpacing(); - float GetYSpacing(); - float GetZSpacing(); + bool HasLUT(); + int GetLUTNbits(); // For rescaling graylevel: float GetRescaleIntercept(); @@ -148,33 +142,30 @@ public: int GetNumberOfScalarComponents(); int GetNumberOfScalarComponentsRaw(); - // To organize DICOM files based on their x,y,z position - void GetImageOrientationPatient( float iop[6] ); - - int GetImageNumber(); - ModalityType GetModality(); - - float GetXOrigin(); - float GetYOrigin(); - float GetZOrigin(); - - bool HasLUT(); - int GetLUTNbits(); - /// Accessor to \ref File::GrPixel uint16_t GetGrPixel() { return GrPixel; } - /// Accessor to \ref File::NumPixel uint16_t GetNumPixel() { return NumPixel; } - /// Replace patient's specific information by 'anonymous' - bool AnonymizeFile(); - - bool Write(std::string fileName, FileType filetype); + size_t GetPixelOffset(); + size_t GetPixelAreaLength(); + /// returns the RLE info RLEFramesInfo *GetRLEInfo() { return RLEInfo; } + /// Returns the JPEG Fragments info JPEGFragmentsInfo *GetJPEGInfo() { return JPEGInfo; } +// Anonymization process + void AddAnonymizeElement (uint16_t group, uint16_t elem, + std::string const &value); + /// Clears the list of elements to be anonymized + void ClearAnonymizeList() { AnonymizeList.clear(); } + void AnonymizeNoLoad(); + /// Replace patient's own information by info from the Anonymization list + bool AnonymizeFile(); + + bool Write(std::string fileName, FileType filetype); + protected: /// Initialize DICOM File when none void InitializeDefaultFile(); @@ -184,12 +175,24 @@ protected: /// Store the JPEG fragments info obtained during parsing of pixels. JPEGFragmentsInfo *JPEGInfo; + /// \brief In some cases (e.g. for some ACR-NEMA images) the 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. + uint16_t NumPixel; + /// \brief 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. + uint16_t GrPixel; + private: void ComputeRLEInfo(); void ComputeJPEGFragmentInfo(); - void ReadAndSkipEncapsulatedBasicOffsetTable(); bool ReadTag(uint16_t, uint16_t); uint32_t ReadTagLength(uint16_t, uint16_t); + void ReadAndSkipEncapsulatedBasicOffsetTable(); + }; } // end namespace gdcm