diff --git a/src/src/Common/ImageSetStore.cpp b/src/src/Common/ImageSetStore.cpp index 05b23b5..a05554f 100644 --- a/src/src/Common/ImageSetStore.cpp +++ b/src/src/Common/ImageSetStore.cpp @@ -6,7 +6,6 @@ #include "SeriesImageSet.h" #include "IO/DICOM/DicomLoader.h" -#include "IO/DICOM/ExtendMedicalImageProperties.h" SeriesImageSet *ImageSetStore::getSeriesImageSet(const string &uniqueID) { //only user key to the series level @@ -81,10 +80,13 @@ void ImageSetStore::addImageSet(ExtendMedicalImageProperties* property) { } //TODO:need add Image set logic if (study->series->count(series_uid)>0){ - + study->series->at(series_uid)->insert({property->GetUniqueID(),property}); + imageProperties.push_back(property); } else { - study->series->insert({series_uid,property}); + ImageSetMapType* v = new ImageSetMapType; + v->insert({property->GetUniqueID(),property}); + study->series->insert({series_uid,v}); imageProperties.push_back(property); } } diff --git a/src/src/Common/ImageSetStore.h b/src/src/Common/ImageSetStore.h index 3d9515a..47f5eec 100644 --- a/src/src/Common/ImageSetStore.h +++ b/src/src/Common/ImageSetStore.h @@ -5,7 +5,10 @@ #ifndef OMEGAV_IMAGESETSTORE_H #define OMEGAV_IMAGESETSTORE_H -#include "Common/QGlobals.h" +#include +#include + +#include "IO/Common/DICOMTypes.h" class SeriesImageSet; class ExtendMedicalImageProperties; typedef std::map StoreMap; diff --git a/src/src/Common/QGlobals.h b/src/src/Common/QGlobals.h index 7b5dd5e..7145775 100644 --- a/src/src/Common/QGlobals.h +++ b/src/src/Common/QGlobals.h @@ -340,37 +340,5 @@ private: }; -typedef std::map SeriesMapType; -typedef struct StudyInfo -{ - std::string study_date; - std::string study_time; - std::string study_description; - QPushButton *study_label; - SeriesMapType *series; - StudyInfo():study_label(nullptr), series(nullptr) {} - ~StudyInfo(){ - delete series; - } -}StudyInfo_t; -typedef std::map StudiesMapType; - -typedef struct PatientInfo -{ - std::string patient_name; - std::string birth_date; - QPushButton *patient_label; - StudiesMapType *studies; - PatientInfo():patient_label(nullptr), studies(nullptr){ - - } - ~PatientInfo(){ - for(auto item: *studies){ - delete item.second; - } - delete studies; - } -}PatientInfo_t; -typedef std::map PatientsMapType; #endif OMEGAV_QGLOBALS_H diff --git a/src/src/Common/SeriesImageSet.cpp b/src/src/Common/SeriesImageSet.cpp index 6d8147e..52d11f8 100644 --- a/src/src/Common/SeriesImageSet.cpp +++ b/src/src/Common/SeriesImageSet.cpp @@ -1,12 +1,12 @@ #include "SeriesImageSet.h" -#include -#include "UI/Widget/ImageView/dicomimageview.h" -#include "IO/DICOM/DicomLoader.h" + #include #include -#include "IO/DICOM/ExtendMedicalImageProperties.h" #include +#include "UI/Widget/ImageView/dicomimageview.h" +#include "IO/DICOM/DicomLoader.h" + //---------------------------------------------------------------- diff --git a/src/src/IO/Common/DICOMTypes.h b/src/src/IO/Common/DICOMTypes.h new file mode 100644 index 0000000..7874c5c --- /dev/null +++ b/src/src/IO/Common/DICOMTypes.h @@ -0,0 +1,44 @@ +// +// Created by Krad on 2022/9/21. +// + +#ifndef OMEGAV_DICOMTYPES_H +#define OMEGAV_DICOMTYPES_H +#include +#include + +class ExtendMedicalImageProperties; + +typedef std::map ImageSetMapType; +typedef std::map SeriesMapType; + +typedef struct StudyInfo +{ + std::string study_date; + std::string study_time; + std::string study_description; + SeriesMapType *series; + StudyInfo(): series(nullptr) {} + ~StudyInfo(){ + delete series; + } +}StudyInfo_t; +typedef std::map StudiesMapType; + +typedef struct PatientInfo +{ + std::string patient_name; + std::string birth_date; + StudiesMapType *studies; + PatientInfo(): studies(nullptr){ + + } + ~PatientInfo(){ + for(auto item: *studies){ + delete item.second; + } + delete studies; + } +}PatientInfo_t; +typedef std::map PatientsMapType; +#endif //OMEGAV_DICOMTYPES_H diff --git a/src/src/UI/Widget/Thumbnail/thumbnailbarwidget.cpp b/src/src/UI/Widget/Thumbnail/thumbnailbarwidget.cpp index a588e9b..90f8a03 100644 --- a/src/src/UI/Widget/Thumbnail/thumbnailbarwidget.cpp +++ b/src/src/UI/Widget/Thumbnail/thumbnailbarwidget.cpp @@ -118,15 +118,18 @@ void ThumbnailBarWidget::updateThumbnailBar() DicomLoader::InitCodecs(); for (SeriesMapType::const_iterator it_se = series->cbegin(); it_se != series->cend(); it_se++) { - thumbnailImage *thumbnail = createThumbnailImage(seriesPanel, it_se->second); + auto imageSetMap = (*it_se).second; + for(ImageSetMapType::const_iterator it_is = imageSetMap->cbegin(); it_is != imageSetMap->cend(); it_is++ ){ + thumbnailImage *thumbnail = createThumbnailImage(seriesPanel, it_is->second); - seriesPanel->layout()->addWidget(thumbnail); - if (firstThumbnail){ - setCurrentImageLabel(thumbnail); - firstThumbnail = false; + seriesPanel->layout()->addWidget(thumbnail); + if (firstThumbnail){ + setCurrentImageLabel(thumbnail); + firstThumbnail = false; + } + //save all thumbnail in one list + LabelList << thumbnail; } - //save all thumbnail in one list - LabelList << thumbnail; } DicomLoader::FinalizeCodecs(); }