00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date: 2008-03-13 15:04:52 +0100 (Do, 13 Mrz 2008) $ 00006 Version: $Revision: 9098 $ 00007 00008 Copyright (c) German Cancer Research Center, Division of Medical and 00009 Biological Informatics. All rights reserved. 00010 See MITKCopyright.txt or https://www.mitk.org/copyright.html for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 00018 #ifndef MITK_DiffusionImageHeaderInformation_H 00019 #define MITK_DiffusionImageHeaderInformation_H 00020 00021 #include <itkObject.h> 00022 #include "vnl/vnl_vector_fixed.h" 00023 #include "mitkCommon.h" 00024 #include "itkObjectFactory.h" 00025 00026 namespace mitk 00027 { 00028 00029 enum DiffusionHeaderGroup{ 00030 DHG_NotYetGrouped, 00031 DHG_ZeroDiffusionWeighted, 00032 DHG_NonZeroDiffusionWeighted, 00033 DHG_Other, 00034 }; 00035 00036 class DiffusionImageHeaderInformation : public itk::Object 00037 { 00038 00039 public: 00040 00041 mitkClassMacro( DiffusionImageHeaderInformation, itk::Object ); 00042 itkNewMacro(Self); 00043 00044 typedef std::vector< std::string > FileNamesContainer; 00045 00046 //DiffusionImageHeaderInformation(int nRows, int nCols, float xRes, float yRes, float xOrigin, 00047 // float yOrigin, float zOrigin, float sliceThickness, float sliceSpacing, 00048 // int nSliceInVolume, float xRow, float yRow, float zRow, float xCol, 00049 // float yCol, float zCol, float xSlice, float ySlice, float zSlice, 00050 // float bValue, vnl_vector_fixed<double, 3> DiffusionVector, 00051 // std::string vendor, bool mosaic, DiffusionHeaderGroup headerGroup = DHG_NotYetGrouped): 00052 // nRows(nRows), nCols(nCols),xRes(xRes), 00053 // yRes(yRes),xOrigin(xOrigin),yOrigin(yOrigin),zOrigin(zOrigin), 00054 // sliceThickness(sliceThickness),sliceSpacing(sliceSpacing), 00055 // nSliceInVolume(nSliceInVolume), xRow(xRow), yRow(yRow), zRow(zRow), 00056 // xCol(xCol),yCol(yCol),zCol(zCol),xSlice(xSlice),ySlice(ySlice),zSlice(zSlice), 00057 // bValue(bValue), DiffusionVector(DiffusionVector), vendor(vendor),mosaic(mosaic), 00058 // headerGroup(headerGroup) {} 00059 00060 std::string seriesDescription; 00061 int seriesNumber; 00062 std::string patientName; 00063 int nRows; 00064 int nCols; 00065 float xRes; 00066 float yRes; 00067 float xOrigin; 00068 float yOrigin; 00069 float zOrigin; 00070 float sliceThickness; 00071 float sliceSpacing; 00072 int nSliceInVolume; 00073 float xRow; 00074 float yRow; 00075 float zRow; 00076 float xCol; 00077 float yCol; 00078 float zCol; 00079 float xSlice; 00080 float ySlice; 00081 float zSlice; 00082 float bValue; 00083 vnl_vector_fixed<double, 3> DiffusionVector; 00084 std::string vendor; 00085 bool mosaic; 00086 DiffusionHeaderGroup headerGroup; 00087 00088 FileNamesContainer m_DicomFilenames; 00089 00090 inline bool isIdentical(const DiffusionImageHeaderInformation::Pointer other) const { 00091 return nRows == other->nRows && 00092 nCols == other->nCols && 00093 xRes == other->xRes && 00094 yRes == other->yRes && 00095 xOrigin == other->xOrigin && 00096 yOrigin == other->yOrigin && 00097 zOrigin == other->zOrigin && 00098 sliceThickness == other->sliceThickness && 00099 sliceSpacing == other->sliceSpacing && 00100 nSliceInVolume == other->nSliceInVolume && 00101 xRow == other->xRow && 00102 yRow == other->yRow && 00103 zRow == other->zRow && 00104 xCol == other->xCol && 00105 yCol == other->yCol && 00106 zCol == other->zCol && 00107 xSlice == other->xSlice && 00108 ySlice == other->ySlice && 00109 zSlice == other->zSlice; 00110 } 00111 00112 protected: 00113 00114 DiffusionImageHeaderInformation(); 00115 virtual ~DiffusionImageHeaderInformation(); 00116 00117 }; 00118 00119 } // namespace 00120 00121 #endif // MITK_DiffusionImageHeaderInformation_H 00122 00123