Fix ExtendMedicalImageProperties SetFileNames & GetFileNames buf.
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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(" ");
|
||||||
|
|||||||
Reference in New Issue
Block a user