Rename vtkDICOMImageReader2 to vtkDCMTKImageReader.

This commit is contained in:
Krad
2022-09-16 16:07:15 +08:00
parent a4e90dfd1d
commit e7cb4eb7ba
4 changed files with 31 additions and 54 deletions

View File

@@ -3,7 +3,7 @@
#include "Common/SeriesImageSet.h"
#include "DICOMHeaderHelper.h"
#include "ExtendMedicalImageProperties.h"
#include "vtkDICOMImageReader2.h"
#include "vtkDCMTKImageReader.h"
#include "vtkImageData.h"
#include <map>
#include <algorithm>
@@ -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;
});

View File

@@ -21,7 +21,7 @@ class SeriesImageSet;
class DICOMHeaderHelper;
class ExtendMedicalImageProperties;
class vtkDICOMImageReader2;
class vtkDCMTKImageReader;
typedef std::map<std::string, SeriesImageSet*> ImageSetStore;
class DicomLoader {
@@ -67,7 +67,7 @@ private:
ExtendMedicalImageProperties * currentImageProperty = nullptr;
std::vector<ExtendMedicalImageProperties*> imageProperties;
vtkDICOMImageReader2 * reader = nullptr;
vtkDCMTKImageReader * reader = nullptr;
ImageSetStore store;
std::string defaultUniqueID;
PatientsMapType m_patients;

View File

@@ -2,27 +2,29 @@
// Created by Krad on 2022/2/8.
//
#include <vtkErrorCode.h>
#include "vtkDICOMImageReader2.h"
#include "vtkDataArray.h"
#include "vtkImageData.h"
#include "vtkObjectFactory.h"
#include "vtkPointData.h"
#include "vtkDCMTKImageReader.h"
#include <vtkErrorCode.h>
#include <vtkDataArray.h>
#include <vtkImageData.h>
#include <vtkObjectFactory.h>
#include <vtkPointData.h>
#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<int>(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<std::string>& 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;
}

View File

@@ -6,33 +6,26 @@
#define DCMV_VTKDICOMIMAGEREADER2_H
#include <vtkDICOMImageReader.h>
#include <vtkImageReader2.h>
#include <vector>
#include <string>
#include "ExtendMedicalImageProperties.h"
class vtkDICOMImageReaderVector : public std::vector<std::string>
{
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<std::string>& 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;