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