/*========================================================================= Program: gdcm Module: $RCSfile: vtkGdcmWriter.h,v $ Language: C++ Date: $Date: 2005/01/28 10:07:35 $ Version: $Revision: 1.5 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef __vtkGdcmWriter_h #define __vtkGdcmWriter_h #include "gdcmCommon.h" // To avoid warnings concerning the std #include #include #include //----------------------------------------------------------------------------- #define VTK_GDCM_WRITE_TYPE_EXPLICIT_VR 1 #define VTK_GDCM_WRITE_TYPE_IMPLICIT_VR 2 #define VTK_GDCM_WRITE_TYPE_ACR 3 #define VTK_GDCM_WRITE_TYPE_ACR_LIBIDO 4 //----------------------------------------------------------------------------- class VTK_EXPORT vtkGdcmWriter : public vtkImageWriter { public: static vtkGdcmWriter *New(); vtkTypeRevisionMacro(vtkGdcmWriter, vtkImageWriter); void PrintSelf(ostream& os, vtkIndent indent); vtkSetObjectMacro(LookupTable,vtkLookupTable); vtkGetObjectMacro(LookupTable,vtkLookupTable); void SetWriteTypeToDcmImplVR() { SetWriteType(VTK_GDCM_WRITE_TYPE_EXPLICIT_VR); }; void SetWriteTypeToDcmExplVR() { SetWriteType(VTK_GDCM_WRITE_TYPE_IMPLICIT_VR); }; void SetWriteTypeToAcr() { SetWriteType(VTK_GDCM_WRITE_TYPE_ACR); }; void SetWriteTypeToAcrLibido() { SetWriteType(VTK_GDCM_WRITE_TYPE_ACR_LIBIDO); }; vtkSetMacro(WriteType,int); vtkGetMacro(WriteType,int); const char *GetWriteTypeAsString(); void SetUIDPrefix(const char *prefix); const char *GetUIDPrefix(); void NewStudyInstanceUID(); void NewSeriesInstanceUID(); void NewFrameOfReferenceInstanceUID(); protected: vtkGdcmWriter(); ~vtkGdcmWriter(); virtual void RecursiveWrite(int axis, vtkImageData *image, ofstream *file); virtual void RecursiveWrite(int axis, vtkImageData *image, vtkImageData *cache, ofstream *file); void WriteDcmFile(char *fileName,vtkImageData *image); private: // Variables vtkLookupTable *LookupTable; int WriteType; //BTX std::string UIDPrefix; std::string StudyInstanceUID; std::string SeriesInstanceUID; std::string FrameOfReferenceInstanceUID; //ETX }; //----------------------------------------------------------------------------- #endif