diff --git a/src/src/QDicomViewer.cpp b/src/src/QDicomViewer.cpp index 4c920b9..c4b8385 100644 --- a/src/src/QDicomViewer.cpp +++ b/src/src/QDicomViewer.cpp @@ -22,6 +22,7 @@ #include "cine/pqVCRToolbar.h" #include +#include "measure/ActorDraggableInteractorStyle.h"" /************************************************************************ * Consider: @@ -267,6 +268,7 @@ void QDicomViewer::SetupAnnoTool(QToolButton* annoBtn) { //主要设置了四角标签的操作逻辑 annoBtn->setToolTip(QString("Toggle annotations")); + //视窗操作,显隐脚注 connect(annoBtn, &QToolButton::clicked, this, [=] { AnnoHelper::toggleAnno(); QList viewers = ui->viewContainer->getViewList(); @@ -275,6 +277,7 @@ void QDicomViewer::SetupAnnoTool(QToolButton* annoBtn) }); }); + //视窗操作,显隐测量 QMenu* m; m = new QMenu(this); connect(m, &QMenu::triggered, this, [=] @@ -282,7 +285,7 @@ void QDicomViewer::SetupAnnoTool(QToolButton* annoBtn) //load data m_measure_hidden_action->setChecked(Measure::GetHidden()); }); - + //视窗操作,显隐测量 m_measure_hidden_action = m->addAction(tr("Hide all measurements"), this, [=](bool value) { //QPixmap map(":/InfiniteViewer/Icon/hidden.png"); //m_cur_measure = AnnotationActorType::HiddenAnn; @@ -298,6 +301,7 @@ void QDicomViewer::SetupAnnoTool(QToolButton* annoBtn) m->addSeparator(); + //视窗操作,匿名化 m_patient_hidden_action = m->addAction(tr("Hide patient data"), this, [=] { if (m_patient_hidden_action->isChecked()) { @@ -415,7 +419,7 @@ void QDicomViewer::executeActiveMeasure(ViewContainerWidget* Container, Annotati } -//AnnotationActor新增相关 +//视窗操作,AnnotationActor新增相关 void QDicomViewer::SetupMeasureTool(QToolButton* measureBtn) { measureBtn->setToolTip(QString("Measurements")); @@ -568,6 +572,7 @@ void QDicomViewer::createVCRToolbar(DicomImageView* v) v->setVCRToolbar(vcr_toolbar); } +//视窗操作,播放相关 void QDicomViewer::SetupCineTool(QToolButton* cineBtn) { cineBtn->setToolTip(QString("Cine")); @@ -592,6 +597,8 @@ void QDicomViewer::SetupCineTool(QToolButton* cineBtn) } + +//视窗操作,fusion相关 void QDicomViewer::SetupFusionTool(QToolButton* fusionBtn) { fusionBtn->setToolTip(QString("Fusion")); @@ -609,7 +616,7 @@ void QDicomViewer::SetupFusionTool(QToolButton* fusionBtn) fusionBtn->setPopupMode(QToolButton::MenuButtonPopup); fusionBtn->setMenu(m); } - +//视窗操作,slice void QDicomViewer::SetupSliceTool(QToolButton* sliceBtn) { sliceBtn->setToolTip(QString("Browse series")); @@ -618,6 +625,7 @@ void QDicomViewer::SetupSliceTool(QToolButton* sliceBtn) ui->viewContainer->SetInteractionMode(VTKIS_IMAGE_SLICING); }); } +//视窗操作,pan void QDicomViewer::SetupPanTool(QToolButton* panBtn) { panBtn->setToolTip(QString("Pan image")); @@ -626,6 +634,7 @@ void QDicomViewer::SetupPanTool(QToolButton* panBtn) ui->viewContainer->SetInteractionMode(VTKIS_IMAGE_PAN); }); } +//视窗操作,zoom void QDicomViewer::SetupZoomTool(QToolButton* zoomBtn) { zoomBtn->setToolTip(QString("Zoom image")); @@ -635,6 +644,7 @@ void QDicomViewer::SetupZoomTool(QToolButton* zoomBtn) }); } +//视窗操作,wwwl void QDicomViewer::SetupAdjustTool(QToolButton* winlevelBtn) { winlevelBtn->setToolTip(QString("Adjust window level")); @@ -674,6 +684,7 @@ void QDicomViewer::SetupAdjustTool(QToolButton* winlevelBtn) } +//视窗操作,clear void QDicomViewer::SetupEmptyTool(QToolButton* emptyBtn) { emptyBtn->setToolTip(QString("Delete current series")); @@ -682,6 +693,7 @@ void QDicomViewer::SetupEmptyTool(QToolButton* emptyBtn) }); } +//视窗操作,flip and rotation void QDicomViewer::SetupFlipTool(QToolButton* flipBtn) { flipBtn->setToolTip(QString("Transformations")); @@ -753,6 +765,7 @@ void QDicomViewer::SetupFlipTool(QToolButton* flipBtn) }); } +//视窗操作,sync mode void QDicomViewer::SetupSyncTool(QToolButton* syncBtn) { syncBtn->setToolTip(QString("Toggle series synchronization")); @@ -844,6 +857,7 @@ void QDicomViewer::SetupSyncTool(QToolButton* syncBtn) }); } +//视窗操作?,file open相关 void QDicomViewer::SetupFileTool(QToolButton* fileBtn) { // Menu fileBtn->setToolTip(QString("Open Dicom series from directory")); @@ -952,7 +966,6 @@ void QDicomViewer::SetupGridTool(QToolButton* gridBtn) { }); } - void QDicomViewer::SetupConnections() { //通知左侧的缩略图bar ,当前选中series的变换 diff --git a/src/src/base/DicomLoader.cpp b/src/src/base/DicomLoader.cpp index cf00d75..629bcb6 100644 --- a/src/src/base/DicomLoader.cpp +++ b/src/src/base/DicomLoader.cpp @@ -145,36 +145,6 @@ SeriesImageSet* DicomLoader::getSeriesImageSet(const std::string& uniqueID)//, D } -ExtendMedicalImageProperties* DicomLoader::getSerieInfo(const std::string& seriesUnique) -{ - auto idx = seriesUnique.find('_'); - std::string patient_name= seriesUnique.substr(0,idx); - PatientsMapType::iterator cur_patient_iter = m_patients.find(patient_name); - if (cur_patient_iter == m_patients.end()) - { - return nullptr; - } - auto begin = idx; - idx = seriesUnique.find('_',begin); - std::string study_uid= seriesUnique.substr(idx,idx); - StudiesMapType::iterator cur_study_iter = cur_patient_iter->second->studies->find(study_uid); - if (cur_study_iter == cur_patient_iter->second->studies->end()) - { - return nullptr; - } - begin = idx; - idx = seriesUnique.find('_',begin); - std::string series_uid= seriesUnique.substr(idx,idx); - SeriesMapType::iterator the_series = cur_study_iter->second->series->find(series_uid); - if (the_series == cur_study_iter->second->series->end()) - { - return nullptr; - } - - return the_series->second; -} - - void DicomLoader::readTags(const std::string &dir, SeriesOpenMode openMode) { DICOMDirectoryHelper DICOMHelper; @@ -202,15 +172,6 @@ void DicomLoader::readTags(const std::string &dir, SeriesOpenMode openMode) } -SeriesImageSet* DicomLoader::createSeries(const std::string& uniqueID) -{ - - SeriesImageSet* series = instance->getSeriesImageSet(uniqueID); - - series->setUpSeriesInstance(); - return series; -} - void DicomLoader::readSeries() { for (ExtendMedicalImageProperties* property: imageProperties){ diff --git a/src/src/base/DicomLoader.h b/src/src/base/DicomLoader.h index a0fd8fe..a7aa0b6 100644 --- a/src/src/base/DicomLoader.h +++ b/src/src/base/DicomLoader.h @@ -25,12 +25,6 @@ class DicomLoader { public: static DicomLoader *GetInstance(); - - -// static void itkReaderProCallbackFunction_FILE(itk::ProcessObject* obj, const itk::ProgressEvent&, void* data); -// static void itkReaderProCallbackFunction_DIR(itk::ProcessObject* obj, const itk::ProgressEvent&, void* data); -// static void itkReaderEndCallbackFunction(itk::ProcessObject* obj, const itk::ProgressEvent&, void* data); - /** * 读取数据Tag @@ -43,17 +37,15 @@ public: return defaultUniqueID; } - SeriesImageSet *createSeries(const std::string& uniqueID); - const PatientsMapType &getPatientsList() + const PatientsMapType &getPatientsList() { return m_patients; } SeriesImageSet* getSeriesImageSet(const std::string& uniqueID); - ExtendMedicalImageProperties* getSerieInfo(const std::string& seriesUnique); + void reset(); - void reset(); private: explicit DicomLoader(); ~DicomLoader(); diff --git a/src/src/base/SeriesImageSet.cpp b/src/src/base/SeriesImageSet.cpp index ddedc00..d8c0ead 100644 --- a/src/src/base/SeriesImageSet.cpp +++ b/src/src/base/SeriesImageSet.cpp @@ -6,7 +6,7 @@ #include #include "ExtendMedicalImageProperties.h" -qint32 SeriesImageSet::image_label_size = 100; + //---------------------------------------------------------------- SeriesImageSet::SeriesImageSet(ExtendMedicalImageProperties* property, vtkImageData* imagedata) @@ -28,24 +28,6 @@ SeriesImageSet::~SeriesImageSet() { void SeriesImageSet::setUpSeriesInstance() { - -// m_imageViewer->SetInputData(m_image); -// m_imageViewer->SetRenderWindow(m_glrenWin); -// m_imageViewer->SetupInteractor(m_glrenWin->GetInteractor()); -// -// m_imageViewer->initCornerInfo(m_pSeriesTags); -// m_imageViewer->setUpImageViewer(); -// -// -// vtkCamera* cam = m_imageViewer->GetRenderer()->GetActiveCamera(); -// m_extent = m_image->GetDimensions()[0] * m_pSeriesTags->spacing[0] * 0.5; -// cam->SetParallelScale(m_extent); -// -// -// //remember -// m_imageViewer->GetRenderer()->GetActiveCamera()->GetViewUp(m_vup); -// m_imageViewer->GetRenderer()->GetActiveCamera()->GetPosition(m_cameraPosition); - } diff --git a/src/src/base/SeriesImageSet.h b/src/src/base/SeriesImageSet.h index c32be22..4210769 100644 --- a/src/src/base/SeriesImageSet.h +++ b/src/src/base/SeriesImageSet.h @@ -1,13 +1,7 @@ #pragma once -#include "global/include_all.h" -#include "global/QGlobals.h" -#include "measure/ActorDraggableInteractorStyle.h" #include "global/include_vitk.h" -//#include "QVTKWidget.h" #include - - class ExtendMedicalImageProperties; class SeriesImageSet : public QObject @@ -31,7 +25,6 @@ public: const char* getCurSeriesName() const; - int GetSeriesNumber()const { return 0; @@ -48,8 +41,6 @@ public: return m_property; }; - - //camera config double GetExtent() { @@ -64,24 +55,13 @@ public: } } -//protected: -// vtkNew m_imageViewer; -// vtkNew m_image; - - private: - QSize labelSizeHint() const { - return QSize(image_label_size, image_label_size); - } + vtkSmartPointer m_image; ExtendMedicalImageProperties* m_property = nullptr; std::string m_pUniqueID; - - - static qint32 image_label_size; - double m_extent; double m_cameraPosition[3]; double m_vup[3]; diff --git a/src/src/view/viewcontainerwidget.cpp b/src/src/view/viewcontainerwidget.cpp index dd742c8..28c39b2 100644 --- a/src/src/view/viewcontainerwidget.cpp +++ b/src/src/view/viewcontainerwidget.cpp @@ -11,6 +11,7 @@ #include "qpainter.h" #include "cine/pqVCRToolbar.h" #include +#include "measure/ActorDraggableInteractorStyle.h" //------------------------------------------------------- @@ -404,7 +405,7 @@ void ViewContainerWidget::replaceViewWithSerie(const std::string& uniqueid, Dico } curV->removeViewWithFusion(); DicomLoader *helper = DicomLoader::GetInstance(); - curV->setDicomImageView(helper->createSeries(uniqueid)); + curV->setDicomImageView(helper->getSeriesImageSet(uniqueid)); curV->Render(); }