Fix ExtendMedicalImageProperties SetFileNames & GetFileNames buf.

This commit is contained in:
Krad
2022-06-29 10:42:08 +08:00
parent 75a145e0c5
commit 21958db474
4 changed files with 14 additions and 13 deletions

View File

@@ -174,7 +174,7 @@ void DICOMDirectoryHelper::Update() {
} }
); );
if (iterator < seriesProperties.end()){ if (iterator < seriesProperties.end()){
auto files = (*iterator)->GetFileNames(); std::vector<std::string> files;
std::vector<DICOMFileRefValue> vector; std::vector<DICOMFileRefValue> vector;
for (auto f : pair.second) { for (auto f : pair.second) {
vector.emplace_back(std::move(f.second)); vector.emplace_back(std::move(f.second));
@@ -185,9 +185,10 @@ void DICOMDirectoryHelper::Update() {
(v1.AcquisitionNumber != v2.AcquisitionNumber ? (v1.AcquisitionNumber < v2.AcquisitionNumber) : (v1.AcquisitionNumber != v2.AcquisitionNumber ? (v1.AcquisitionNumber < v2.AcquisitionNumber) :
(v1.InstanceNumber < v2.InstanceNumber)); (v1.InstanceNumber < v2.InstanceNumber));
}); });
std::for_each(vector.begin(), vector.end(),[=](auto v){ std::for_each(vector.begin(), vector.end(),[&](auto v){
files->emplace_back(std::move(v.FilePath)); files.emplace_back(std::move(v.FilePath));
}); });
(*iterator)->SetFileNames(files);
readImageProperty(*iterator); readImageProperty(*iterator);
} }
} }
@@ -219,11 +220,11 @@ void DICOMDirectoryHelper::Clear() {
} }
void DICOMDirectoryHelper::readImageProperty(ExtendMedicalImageProperties* property) { void DICOMDirectoryHelper::readImageProperty(ExtendMedicalImageProperties* property) {
std::vector<std::string> *files = property->GetFileNames(); const std::vector<std::string>& files = property->GetFileNames();
DcmFileFormat file1; DcmFileFormat file1;
// read success! // read success!
std::cout<<files->at(0)<<std::endl; std::cout<<files.at(0)<<std::endl;
if (file1.loadFile(files->at(0)).good()) { if (file1.loadFile(files.at(0)).good()) {
DcmDataset *dataset = file1.getDataset(); DcmDataset *dataset = file1.getDataset();
std::string SeriesUID; std::string SeriesUID;
@@ -276,10 +277,10 @@ void DICOMDirectoryHelper::readImageProperty(ExtendMedicalImageProperties* prope
vtkMatrix4x4::Invert(matrix, property->GetWorldToModelMatrix() ); vtkMatrix4x4::Invert(matrix, property->GetWorldToModelMatrix() );
matrix = property->GetWorldToModelMatrix(); matrix = property->GetWorldToModelMatrix();
DcmFileFormat file2; DcmFileFormat file2;
std::cout<<files->at(1)<<std::endl; std::cout<<files.at(1)<<std::endl;
// read success! // read success!
if (file2.loadFile(files->at(1)).good()) { if (file2.loadFile(files.at(1)).good()) {
DcmDataset *dataset = file2.getDataset(); DcmDataset *dataset = file2.getDataset();
std::string SeriesUID; std::string SeriesUID;
dataset->findAndGetOFString(DcmTagKey(0x0020, 0x000e), SeriesUID); dataset->findAndGetOFString(DcmTagKey(0x0020, 0x000e), SeriesUID);

View File

@@ -131,7 +131,7 @@ SeriesImageSet* DicomLoader::getSeriesImageSet(const std::string& uniqueID)//, D
}); });
if (iter==imageProperties.end()) return nullptr; if (iter==imageProperties.end()) return nullptr;
reader->SetFileNames(*(*iter)->GetFileNames()); reader->SetFileNames((*iter)->GetFileNames());
reader->Update(); reader->Update();
auto imageData = reader->GetOutput(); auto imageData = reader->GetOutput();
SeriesImageSet* result = new SeriesImageSet((*iter),imageData); SeriesImageSet* result = new SeriesImageSet((*iter),imageData);

View File

@@ -39,8 +39,8 @@ public:
vtkSetVector3Macro(Position,double); vtkSetVector3Macro(Position,double);
vtkGetVector3Macro(Position,double); vtkGetVector3Macro(Position,double);
std::vector<std::string>* GetFileNames(){ const std::vector<std::string>& GetFileNames(){
return &FileNames; return FileNames;
} }
void SetFileNames(std::vector<std::string>& files){ void SetFileNames(std::vector<std::string>& files){
@@ -56,7 +56,7 @@ public:
void SetSeriesNumber(long value){ void SetSeriesNumber(long value){
char buffer [sizeof(long)*8+1]; char buffer [sizeof(long)*8+1];
const char* s = ltoa(value, buffer, 10); const char* s = _ltoa(value, buffer, 10);
vtkMedicalImageProperties::SetSeriesNumber(s); vtkMedicalImageProperties::SetSeriesNumber(s);
} }

View File

@@ -1361,7 +1361,7 @@ void infinitiViewer::initCornerInfo(ExtendMedicalImageProperties* pSeries)
} }
char buffer[sizeof(long) * 8 + 1]; char buffer[sizeof(long) * 8 + 1];
const char* s = ltoa(pSeries->GetFileNames()->size(), buffer, 10); const char* s = ltoa(pSeries->GetFileNames().size(), buffer, 10);
m_cornerInfo.ConstAnno[TOP_LEFT].clear(); m_cornerInfo.ConstAnno[TOP_LEFT].clear();
m_cornerInfo.ConstAnno[TOP_LEFT].append(buffer); m_cornerInfo.ConstAnno[TOP_LEFT].append(buffer);
m_cornerInfo.ConstAnno[TOP_LEFT].append(" "); m_cornerInfo.ConstAnno[TOP_LEFT].append(" ");