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

View File

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

View File

@@ -1361,7 +1361,7 @@ void infinitiViewer::initCornerInfo(ExtendMedicalImageProperties* pSeries)
}
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].append(buffer);
m_cornerInfo.ConstAnno[TOP_LEFT].append(" ");