Fix measure load bug.
This commit is contained in:
@@ -94,7 +94,7 @@ DICOMImageViewer::DICOMImageViewer()
|
||||
DICOMImageViewer::InstallPipeline();
|
||||
|
||||
uintptr_t handler = reinterpret_cast<uintptr_t>(this);
|
||||
sprintf(SOP_UID, "%llu", handler);
|
||||
sprintf(SERIES_UID, "%llu", handler);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -142,12 +142,13 @@ DICOMImageViewer::~DICOMImageViewer() {
|
||||
this->cornerAnnotation->Delete();
|
||||
this->cornerAnnotation = nullptr;
|
||||
}
|
||||
measureStore->RemoveAllInSeries(SOP_UID);
|
||||
measureStore->RemoveAllInSeries(SERIES_UID);
|
||||
// measureStore->Clear();
|
||||
//delete measureStore;
|
||||
}
|
||||
|
||||
void DICOMImageViewer::SetupImageViewer() {
|
||||
this->ClearCurrentSliceMeasure();
|
||||
this->SetColorLevel(m_cornerInfo.win_level);
|
||||
this->SetColorWindow(m_cornerInfo.win_width);
|
||||
this->Render(); //first render will call resetcamera
|
||||
@@ -1005,7 +1006,7 @@ void DICOMImageViewer::LoadMeasures(bool forceReload) {
|
||||
}
|
||||
|
||||
void DICOMImageViewer::ReloadCurrentSliceMeasure() {
|
||||
list = measureStore->GetMeasures(SOP_UID, this->SliceIJK, ImageMapper->GetSliceNumber());
|
||||
list = measureStore->GetMeasures(SERIES_UID, this->SliceIJK, ImageMapper->GetSliceNumber());
|
||||
|
||||
if (list) {
|
||||
for (int i = 0; i < list->length(); i++) {
|
||||
@@ -1029,7 +1030,7 @@ void DICOMImageViewer::ClearCurrentSliceMeasure() const {
|
||||
void DICOMImageViewer::AddMeasures(vtkObject *, unsigned long eventid, void *calldata) {
|
||||
auto m = static_cast<Measure *>(calldata);
|
||||
if (m->Valid()) {
|
||||
measureStore->Store(SOP_UID, this->SliceIJK, this->ImageMapper->GetSliceNumber(), m);
|
||||
measureStore->Store(SERIES_UID, this->SliceIJK, this->ImageMapper->GetSliceNumber(), m);
|
||||
}
|
||||
LoadMeasures(true);
|
||||
this->Render();
|
||||
@@ -1055,7 +1056,7 @@ void DICOMImageViewer::DeleteSelectedMeasure() {
|
||||
void DICOMImageViewer::DeleteCurrentSliceMeasure() {
|
||||
this->InteractorStyle->ClearSelectedProp();
|
||||
ClearCurrentSliceMeasure();
|
||||
measureStore->RemoveAllInSlice(SOP_UID, this->SliceIJK, this->ImageMapper->GetSliceNumber());
|
||||
measureStore->RemoveAllInSlice(SERIES_UID, this->SliceIJK, this->ImageMapper->GetSliceNumber());
|
||||
ReloadCurrentSliceMeasure();
|
||||
this->Render();
|
||||
}
|
||||
@@ -1063,7 +1064,7 @@ void DICOMImageViewer::DeleteCurrentSliceMeasure() {
|
||||
void DICOMImageViewer::DeleteCurrentSeriesMeasure() {
|
||||
this->InteractorStyle->ClearSelectedProp();
|
||||
ClearCurrentSliceMeasure();
|
||||
measureStore->RemoveAllInSeries(SOP_UID);
|
||||
measureStore->RemoveAllInSeries(SERIES_UID);
|
||||
ReloadCurrentSliceMeasure();
|
||||
this->Render();
|
||||
}
|
||||
@@ -1087,6 +1088,7 @@ public:
|
||||
};
|
||||
|
||||
void DICOMImageViewer::InitCornerInfo(ExtendMedicalImageProperties *pSeries) {
|
||||
sprintf(SERIES_UID, "%s", pSeries->GetUniqueID().c_str());
|
||||
// mono and has preset
|
||||
if (pSeries->GetNumberOfWindowLevelPresets() > 0 && pSeries->GetSamplePerPixel() == 1) {
|
||||
double *wwwl = pSeries->GetNthWindowLevelPreset(0);
|
||||
|
||||
@@ -465,7 +465,7 @@ private:
|
||||
vtkTypeBool firstFusion = true;
|
||||
double FusionOpacity = 0.5;
|
||||
bool rulerActive = false;
|
||||
char SOP_UID[20] = {0};
|
||||
char SERIES_UID[40] = {0};
|
||||
double defaultProjection[3][3] = {
|
||||
{1.,0.,0.},
|
||||
{0.,1.,0.},
|
||||
|
||||
Reference in New Issue
Block a user