diff --git a/src/src/IO/DICOM/DicomLoader.cpp b/src/src/IO/DICOM/DicomLoader.cpp index 2ea83c4..6c9dbdd 100644 --- a/src/src/IO/DICOM/DicomLoader.cpp +++ b/src/src/IO/DICOM/DicomLoader.cpp @@ -3,7 +3,7 @@ #include "Common/SeriesImageSet.h" #include "DICOMHeaderHelper.h" #include "ExtendMedicalImageProperties.h" -#include "vtkDICOMImageReader2.h" +#include "vtkDCMTKImageReader.h" #include "vtkImageData.h" #include #include @@ -125,7 +125,7 @@ SeriesImageSet* DicomLoader::getSeriesImageSet(const std::string& uniqueID)//, D return store[uniqueID]; } if (reader) reader->Delete(); - reader = vtkDICOMImageReader2::New(); + reader = vtkDCMTKImageReader::New(); auto iter = std::find_if(imageProperties.begin(), imageProperties.end(),[&uniqueID](auto property){ return property->GetUniqueID()==uniqueID; }); diff --git a/src/src/IO/DICOM/DicomLoader.h b/src/src/IO/DICOM/DicomLoader.h index 8a2a2b0..3021e6b 100644 --- a/src/src/IO/DICOM/DicomLoader.h +++ b/src/src/IO/DICOM/DicomLoader.h @@ -21,7 +21,7 @@ class SeriesImageSet; class DICOMHeaderHelper; class ExtendMedicalImageProperties; -class vtkDICOMImageReader2; +class vtkDCMTKImageReader; typedef std::map ImageSetStore; class DicomLoader { @@ -67,7 +67,7 @@ private: ExtendMedicalImageProperties * currentImageProperty = nullptr; std::vector imageProperties; - vtkDICOMImageReader2 * reader = nullptr; + vtkDCMTKImageReader * reader = nullptr; ImageSetStore store; std::string defaultUniqueID; PatientsMapType m_patients; diff --git a/src/src/IO/DICOM/vtkDICOMImageReader2.cpp b/src/src/IO/DICOM/vtkDCMTKImageReader.cpp similarity index 79% rename from src/src/IO/DICOM/vtkDICOMImageReader2.cpp rename to src/src/IO/DICOM/vtkDCMTKImageReader.cpp index 2b2fa42..ce83afd 100644 --- a/src/src/IO/DICOM/vtkDICOMImageReader2.cpp +++ b/src/src/IO/DICOM/vtkDCMTKImageReader.cpp @@ -2,27 +2,29 @@ // Created by Krad on 2022/2/8. // -#include -#include "vtkDICOMImageReader2.h" -#include "vtkDataArray.h" -#include "vtkImageData.h" -#include "vtkObjectFactory.h" -#include "vtkPointData.h" +#include "vtkDCMTKImageReader.h" +#include +#include +#include +#include +#include + +#include "ExtendMedicalImageProperties.h" #include "IO/DICOM/DICOMPixelDataHelper.h" -vtkStandardNewMacro(vtkDICOMImageReader2); +vtkStandardNewMacro(vtkDCMTKImageReader); -vtkDICOMImageReader2::vtkDICOMImageReader2():vtkDICOMImageReader() { +vtkDCMTKImageReader::vtkDCMTKImageReader(): vtkImageReader2() { } -vtkDICOMImageReader2::~vtkDICOMImageReader2() { +vtkDCMTKImageReader::~vtkDCMTKImageReader() { } //---------------------------------------------------------------------------- -void vtkDICOMImageReader2::SetupOutputInformation(int num_slices) +void vtkDCMTKImageReader::SetupOutputInformation(int num_slices) { int width = this->properties->GetColumns(); @@ -66,7 +68,7 @@ void vtkDICOMImageReader2::SetupOutputInformation(int num_slices) } -void vtkDICOMImageReader2::ExecuteInformation() { +void vtkDCMTKImageReader::ExecuteInformation() { if (!properties) { vtkErrorMacro( << "No image properties set for the reader."); @@ -76,7 +78,7 @@ void vtkDICOMImageReader2::ExecuteInformation() { this->SetupOutputInformation(static_cast(properties->GetFileNames().size())); } -void vtkDICOMImageReader2::ExecuteDataWithInformation(vtkDataObject *output, +void vtkDCMTKImageReader::ExecuteDataWithInformation(vtkDataObject *output, vtkInformation *outInfo) { vtkImageData *data = this->AllocateOutputData(output, outInfo); if (!properties) { @@ -152,28 +154,11 @@ void vtkDICOMImageReader2::ExecuteDataWithInformation(vtkDataObject *output, DICOMPixelDataHelper::FinalizeCodecs(); } -double* vtkDICOMImageReader2::GetPixelSpacing() +double* vtkDCMTKImageReader::GetPixelSpacing() { return this->properties->GetSpacing(); } -void vtkDICOMImageReader2::SetFileNames(const std::vector& files) { - - this->DICOMFileNames->clear(); - for (vtkIdType i = 0; i < files.size(); i++) - { - if (strcmp(files[i].c_str(), ".") == 0 || - strcmp(files[i].c_str(), "..") == 0) - { - continue; - } - - std::string fileString = files[i]; - vtkDebugMacro( << "Adding " << fileString.c_str() << " to DICOMFileNames."); - this->DICOMFileNames->push_back(fileString); - } -} - -vtkImageData *vtkDICOMImageReader2::GetOutputOverLayData() { +vtkImageData *vtkDCMTKImageReader::GetOutputOverLayData() { return OverLayData; } diff --git a/src/src/IO/DICOM/vtkDICOMImageReader2.h b/src/src/IO/DICOM/vtkDCMTKImageReader.h similarity index 52% rename from src/src/IO/DICOM/vtkDICOMImageReader2.h rename to src/src/IO/DICOM/vtkDCMTKImageReader.h index 093d5ba..44dc88a 100644 --- a/src/src/IO/DICOM/vtkDICOMImageReader2.h +++ b/src/src/IO/DICOM/vtkDCMTKImageReader.h @@ -6,33 +6,26 @@ #define DCMV_VTKDICOMIMAGEREADER2_H -#include +#include #include #include -#include "ExtendMedicalImageProperties.h" -class vtkDICOMImageReaderVector : public std::vector -{ +class ExtendMedicalImageProperties; -}; -class vtkDICOMImageReader2: public vtkDICOMImageReader { +class vtkDCMTKImageReader: public vtkImageReader2 { public: //@{ /** * Static method for construction. */ - static vtkDICOMImageReader2 *New(); - vtkTypeMacro(vtkDICOMImageReader2,vtkDICOMImageReader); + static vtkDCMTKImageReader *New(); + vtkTypeMacro(vtkDCMTKImageReader, vtkImageReader2); //@} - - void SetFileNames(const std::vector& files); void SetImageProperties(ExtendMedicalImageProperties* p){ this->properties = p; } - vtkDICOMImageReaderVector* GetDICOMFileNames(){ - return DICOMFileNames; - } + double* GetPixelSpacing(); vtkGetMacro(HasOverlay, bool); @@ -44,21 +37,20 @@ protected: void SetupOutputInformation(int num_slices); void ExecuteInformation() override; - void ExecuteDataWithInformation(vtkDataObject *output, - vtkInformation *outInfo) override ; + void ExecuteDataWithInformation(vtkDataObject *output,vtkInformation *outInfo) override ; // // Constructor // - vtkDICOMImageReader2(); + vtkDCMTKImageReader(); // // Destructor // - ~vtkDICOMImageReader2() override; + ~vtkDCMTKImageReader() override; private: - vtkDICOMImageReader2(const vtkDICOMImageReader2&) = delete; - void operator=(const vtkDICOMImageReader2&) = delete; + vtkDCMTKImageReader(const vtkDCMTKImageReader&) = delete; + void operator=(const vtkDCMTKImageReader&) = delete; ExtendMedicalImageProperties* properties = nullptr; vtkImageData* OverLayData = nullptr; bool HasOverlay = false;