1 /*=========================================================================
4 Module: $RCSfile: wxMaracasFrame02.h,v $
6 Date: $Date: 2008/10/31 16:32:10 $
7 Version: $Revision: 1.1 $
9 Copyright: (c) 2002, 2003
12 This software is distributed WITHOUT ANY WARRANTY; without even
13 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14 PURPOSE. See the above copyright notice for more information.
16 =========================================================================*/
18 #ifndef __WX__MARACAS__FRAME02__HXX__
19 #define __WX__MARACAS__FRAME02__HXX__
22 //#include <wx/dialog.h>
23 //#include <vtkCamera.h>
25 #include "wxMaracasPathology_01.h"
27 #include "wxMaracas3DBrowser.h"
28 #include "wxMaracasQuantification.h"
29 #include "widgets/wxSurfaceSTLWidget.h"
30 #include "wxMaracasMPR.h"
31 #include "wxMaracasProcessingCT.h"
32 #include "wxMaracasEmptyPanel.h"
33 #include "wxMaracasEmptyPanel_2.h"
34 #include "wxMaracasEmptyPanel_3.h"
35 #include "wxMaracasQuantificationCT.h"
36 #include "wxMaracasImageBrowser02.h"
37 #include "wxMaracas_ManualTree_MPR.h"
38 #include "wxMaracas_ManualContour_Panel.h"
39 #include "widgets/wxManualRegistration3D.h"
41 #include "widgets/wxManualRegistration3D.h"
42 #include "wxMaracas_SegmentationFM3D.h"
43 #include "wxMaracas_ManualSegmentation_MPR.h"
45 //EED 15Avril2008 using namespace std;
46 //EED 15Avril2008 #include "ILPD/src/wxInterface/wxILPD.h"
47 #include "wxILPDwithImage.h"
60 FileInfoNode(string filename, string dirfile);
64 string GetFileNameParent();
65 void SetFileNameParent(string parent);
70 std::string _filename;
71 std::string _filenameParent;
72 FileInfoNode *_parentNode;
73 std::vector <FileInfoNode *> _lstFileInfoNodeChildrens;
79 class FileInformationModel
82 FileInformationModel();
83 ~FileInformationModel();
86 void ReadModel(string dirFile);
89 string GetFileName(int i);
91 int GetSizeLstFile_filter();
92 string GetFileName_filter(int i);
96 void Filtre_1(string filtre);
101 std::vector <FileInfoNode *> _lstFileInfoNodes;
106 class wxReadWriteConf: public wxDialog
109 wxReadWriteConf(wxWindow *parent,string parentFile);
112 void eventBtnWorkDirectory(wxCommandEvent &event);
113 void eventBtnReadFile(wxCommandEvent &event);
114 void eventBtnWriteFile(wxCommandEvent &event);
115 void eventBtnReWriteFile(wxCommandEvent &event);
117 void OnShowFile01(wxCommandEvent &event);
118 void OnShowFile02(wxCommandEvent &event);
120 string GetNameWriteFile();
121 string GetNameReadFile();
122 string GetWorkDirectory();
123 string GetParentFile();
129 static string _workDirectory;
130 string _nameWriteFile;
131 string _nameReadFile;
133 wxStaticText *_directoryTXT;
134 FileInformationModel *_fim;
136 wxListBox *_wxlstFiles;
137 wxListBox *_wxlstAllFiles;
138 wxTextCtrl *_wxviewinfo;
140 wxWindow *CreateReadModule(wxWindow *parent);
141 wxWindow *CreateListFilesModule(wxWindow *parent);
142 wxWindow *CreateReadFileModule(wxWindow *parent);
143 wxWindow *CreateListAllFilesModule(wxWindow *parent);
147 void RefreshReadFilesList();
148 void RefreshAllFilesList();
149 void ShowInformation(wxListBox *wxlistbox , wxTextCtrl* wxtextctrl );
160 * \brief Principal Frame of the application
161 * MARACAS: MAgnetic Resonance Angiography Computer ASsisted analysis
166 class MAR_INTERFACEWX_EXPORT wxMaracasFrame02: public wxFrame
169 wxMaracasFrame02( wxFrame *parent, wxWindowID id = -1,
170 marInterface* mar = NULL, marInterfaceCT* marCT = NULL, char *dictionaryFileName=NULL,
171 const wxString& title = wxT("MARACAS: MAgnetic Resonance Angiography Computer ASsisted analysis"),
172 const wxPoint& pos = wxDefaultPosition,
173 const wxSize& size = wxDefaultSize,
174 long style = wxDEFAULT_FRAME_STYLE);
175 void RecreateToolbar( );
176 void OnQuit( wxCloseEvent& event );
177 void OnLoadPatientData( wxCommandEvent& event );
178 void OnParameters( wxCommandEvent& event );
180 // EED Borrme not used
181 void OnLoadImageData( wxListEvent& event );
183 void OnLoadImageData02( wxCommandEvent& event );
184 void OnStartExperiment( wxCommandEvent& event );
185 void OnHelp (wxCommandEvent& event );
186 void OnQuant (wxCommandEvent& event );
187 void OnQuantificationCT (wxCommandEvent& event );
188 void OnAboutCreatis( wxCommandEvent& event );
190 void OnStl (wxCommandEvent& event );
191 void OnNewAxis(wxCommandEvent &WXUNUSED(event));
192 void OnDeleteAxis(wxCommandEvent &WXUNUSED(event));
194 void OnRegenerateAll( wxCommandEvent& event );
195 void OnRegenerateSplineAxe( wxCommandEvent& event );
196 void OnCleanContours( wxCommandEvent& event );
197 void OnRegenerateSignal( wxCommandEvent& event );
199 void OnMPR(wxCommandEvent& event );
200 void OnProcessingCT(wxCommandEvent& event );
202 void OnEmptyPanel(wxCommandEvent& event );
203 void OnEmptyPanel_2(wxCommandEvent& event );
208 wxMaracas3DBrowser *_wxmaracas3dbrowser;
209 wxMaracasQuantification *_wxmaracasquantification;
210 wxMaracasQuantificationCT *_wxmaracasquantification_ct;
211 wxSurfaceSTLWidget *_wxmaracassurfaceSTLwidget;
212 wxMaracasMPR *_wxMaracasMPR;
213 wxMaracasProcessingCT *_wxMaracasProcessingCT;
215 wxMaracasEmptyPanel *_wxMaracasEmptyPanel;
216 wxMaracasEmptyPanel_2 *_wxMaracasEmptyPanel_2;
218 wxPanel* _actual_panel;
219 wxGauge* _progressGauge;
221 marInterfaceCT* _marCT;
223 DECLARE_EVENT_TABLE( );
229 static const long TOOLBAR_STYLE = wxNO_BORDER | wxTB_FLAT | wxTB_DOCKABLE | wxTB_HORIZONTAL;
233 //! Toolbar & menu buttons
235 ID_TOOLBAR_DATA_BROWSER,
236 ID_TOOLBAR_PARAMETERS,
237 ID_TOOLBAR_IMAGE_BROWSER,
238 ID_TOOLBAR_3D_BROWSER,
242 ID_TOOLBAR_PROCESSING_CT,
243 ID_TOOLBAR_QUANTIFICATION_CT,
244 ID_TOOLBAR_EMPTY_PANEL,
245 ID_TOOLBAR_EMPTY_PANEL_2,
251 ID_TOOLBAR_INTENSITY,
257 //----------------------------------------------------------------------------
258 //----------------------------------------------------------------------------
259 //----------------------------------------------------------------------------
262 class wxMaracasNoteBookPatientLstVoi: public wxPanel
265 wxMaracasNoteBookPatientLstVoi(wxWindow *parent);
266 ~wxMaracasNoteBookPatientLstVoi();
268 void OnChangePageToVOI(wxNotebookEvent& event);
269 void OnChangePage(wxNotebookEvent& event);
270 void OnSelectPatientStudySerieImage(wxCommandEvent& event);
271 void OnReadWriteConf_Maracas(wxCommandEvent& event);
273 void SetMarInterface(marInterface *mar);
274 wxMaracasImageBrowser02* GetWxMaracasImageBrowser02();
277 void OnPersistence_Read(wxCommandEvent& event);
278 void OnPersistence_Write(wxCommandEvent& event);
279 void Persistence_Read_Images();
280 void Persistence_Read_VOI();
282 void Persistence_Write_Images_Database();
283 void Persistence_Write_Images_ManualReadFileList();
285 void Persistence_Write_VOI();
287 string GetRWCM_namefileVOI();
289 wxNotebook *GetNoteBook();
291 DECLARE_EVENT_TABLE();
296 marRAWFiles *_marRAWFiles;
297 marRAW2Files *_marRAW2Files;
298 marRAW2AsciiFiles *_marRAW2AsciiFiles;
299 marGdcmDicomILPD *_marGdcmDicomILPD;
302 wxReadWriteConf *_wxreadwriteconf;
305 string _RWCM_namefileReadImages;
306 string _RWCM_namefileVOI;
311 wxNotebook *_noteBook;
312 string _backStringFirstFile;
313 string _backStringFirstFile2;
317 wxMaracasImageBrowser02 *_wxMaracasImageBrowser02;
318 wxMaracasMPR *_wxMaracasMPR;
320 wxListView *_dicomPanelListView;
322 wxWidgetMesure2D *_widgetMesure;
324 //EED 15Avril2008 wxVtk2DBaseView *_wxvtk2Dbaseview;
325 //EED 15Avril2008 vtkBaseData *_vtkbasedata;
326 //EED 15Avril2008 wxPanel *_panelImage;
328 //EED 15Avril2008 wxSplitterWindow *_pnlSplitter_ViewImage_wxILPD;
329 //EED 15Avril2008 wxSplitterWindow *_pnlSplitter_Image_DicomList;
331 //EED 15Avril2008 void SetItem( wxListView *wxlistview, int line, int col, wxString text ) ;
333 //EED 15Avril2008 void ResetwxListView();
334 //EED 15Avril2008 void SelectedPatient();
335 //EED 15Avril2008 void SelectedSerie();
336 //EED 15Avril2008 void SelectedImage();
337 //EED 15Avril2008 void ShowDicomInformation(string *fileImageName);
338 //EED 15Avril2008 void ShowDicomImage(string *fileImageName);
340 void CreateMPRPanel();
346 //----------------------------------------------------------------------------
347 //----------------------------------------------------------------------------
348 //----------------------------------------------------------------------------
351 class wxMaracasNoteBookIRMQuantification: public wxPanel
354 wxMaracasNoteBookIRMQuantification(wxWindow *parent, marInterface *mar);
355 ~wxMaracasNoteBookIRMQuantification();
356 void OnChangePageQuantification(wxNotebookEvent& event);
357 void OnChangePage(wxNotebookEvent& event);
358 void OnNewAxis(wxCommandEvent &WXUNUSED(event));
359 void OnDeleteAxis(wxCommandEvent &WXUNUSED(event));
360 void OnQuantification(wxCommandEvent & event);
362 DECLARE_EVENT_TABLE();
366 wxMaracas3DBrowser *_wxmaracas3dbrowser;
367 wxMaracasQuantification *_wxmaracasquantification;
368 wxNotebook *_noteBook;
371 //----------------------------------------------------------------------------
372 //----------------------------------------------------------------------------
373 //----------------------------------------------------------------------------
376 class wxMaracasNoteBookCTQuantification: public wxPanel
379 wxMaracasNoteBookCTQuantification(wxWindow *parent, marInterface *mar, string _namefileParentRWCM);
380 ~wxMaracasNoteBookCTQuantification();
381 void OnChangePageQuantification(wxNotebookEvent& event);
382 void OnChangePage(wxNotebookEvent& event);
383 void OnQuantification(wxCommandEvent& event);
385 void OnReadWriteConf_Maracas(wxCommandEvent& event);
386 void OnPersistence_Read(wxCommandEvent& event);
387 void OnPersistence_Write(wxCommandEvent& event);
388 void Persistence_Read_MPR();
389 void Persistence_Read_ProcessingCT();
390 void Persistence_Read_ContourQauntificationCT();
391 void Persistence_Write_MPR();
392 void Persistence_Write_ProcessingCT();
393 void Persistence_Write_ContourQuantificationCT();
396 DECLARE_EVENT_TABLE();
399 string _namefileParentRWCM;
400 string _RWCM_namefileMPR;
401 string _RWCM_namefileProcessingCT;
402 string _RWCM_namefileContourQuantificationCT;
403 wxReadWriteConf *_wxreadwriteconf;
405 bool _readyQuantification;
406 marInterfaceCT *_mar;
407 wxMaracasMPR *_wxMaracasMPR;
408 wxMaracasProcessingCT *_wxMaracasProcessingCT;
409 wxMaracasQuantificationCT *_wxmaracasquantification_ct;
410 wxNotebook *_noteBook;
415 //----------------------------------------------------------------------------
416 //----------------------------------------------------------------------------
417 //----------------------------------------------------------------------------
420 class wxMaracasNoteBookVascularTreeExtraction: public wxPanel
423 wxMaracasNoteBookVascularTreeExtraction(wxWindow *parent, marInterface *mar);
424 ~wxMaracasNoteBookVascularTreeExtraction();
425 void OnChangePageQuantification(wxNotebookEvent& event);
426 void OnChangePage(wxNotebookEvent& event);
428 DECLARE_EVENT_TABLE();
431 wxMaracasEmptyPanel_2 *_wxMaracasEmptyPanel_2;
432 wxMaracasPathology_01 *_wxMaracasPathology_01;
433 wxNotebook *_noteBook;
438 //----------------------------------------------------------------------------
439 //----------------------------------------------------------------------------
440 //----------------------------------------------------------------------------
443 class wxMaracasNoteBookSTLFormat: public wxPanel
446 wxMaracasNoteBookSTLFormat(wxWindow *parent, marInterface *mar);
447 ~wxMaracasNoteBookSTLFormat();
448 void OnChangePageSTLFormat(wxNotebookEvent& event);
449 void OnChangePage(wxNotebookEvent& event);
450 void OnNewAxis(wxCommandEvent &WXUNUSED(event));
451 void OnDeleteAxis(wxCommandEvent &WXUNUSED(event));
453 wxPanel *CreateSTLFormat_01(wxWindow *parent,marInterface *mar);
454 wxPanel *CreateSTLFormat_02(wxWindow *parent,marInterface *mar);
455 wxPanel *CreateSTLFormat_03(wxWindow *parent,marInterface *mar);
457 DECLARE_EVENT_TABLE();
464 wxMaracas3DBrowser *_wxmaracas3dbrowser;
465 wxSurfaceSTLWidget *_wxmaracassurfaceSTLwidget;
466 wxNotebook *_noteBook_01;
469 wxMaracasMPR *_wxMaracasMPR;
472 wxNotebook *_noteBook_general;
475 //----------------------------------------------------------------------------
476 //----------------------------------------------------------------------------
477 //----------------------------------------------------------------------------
480 class wxMaracasNoteBookTests: public wxPanel
483 wxMaracasNoteBookTests(wxWindow *parent, marInterface *mar);
484 ~wxMaracasNoteBookTests();
485 void OnChangePageTests(wxNotebookEvent& event);
486 void OnChangePage(wxNotebookEvent& event);
488 DECLARE_EVENT_TABLE();
491 wxMaracasEmptyPanel_3 *_wxMaracasEmptyPanel_3;
492 wxMaracasEmptyPanel_4 *_wxMaracasEmptyPanel_4;
494 wxMaracas_ManualContour_Panel *_wxmanualcontourpanel;
495 wxMaracas_ManualTree_MPR *_wxMaracas_ManualTree_MPR;
496 wxMaracas_ManualSegmentation_MPR *_wxMaracas_ManualSegmentation_MPR;
497 wxMaracas_SegmentationFM3D *_wxMaracas_SegmentationFM3D;
499 wxNotebook *_noteBook;
502 class wxMaracasNoteBookManualRegistration: public wxPanel
505 wxMaracasNoteBookManualRegistration(wxWindow *parent, marInterface *mar);
506 ~wxMaracasNoteBookManualRegistration();
507 void OnChangePageTests(wxNotebookEvent& event);
508 void OnChangePage(wxNotebookEvent& event);
510 bool GetIfSecondVolumeExist();
511 void GenerateSecondVolume(marInterface *mar);
515 DECLARE_EVENT_TABLE();
519 wxNotebook *_noteBook;
521 wxManualRegistration3D *_wxmanualregistration3D;
526 //----------------------------------------------------------------------------
527 //----------------------------------------------------------------------------
528 //----------------------------------------------------------------------------
531 class wxMaracasGenericChiFra: public wxMDIChildFrame
534 wxMaracasGenericChiFra(wxMDIParentFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size, const long style);
535 ~wxMaracasGenericChiFra();
536 void OnClose(wxCloseEvent& event);
537 void SetBlockCloseEvent(bool blockClose);
538 DECLARE_EVENT_TABLE();
544 //----------------------------------------------------------------------------
545 //----------------------------------------------------------------------------
546 //----------------------------------------------------------------------------
548 class wxProcessingImagesControl: public wxPanel
551 wxProcessingImagesControl(wxWindow *parent);
552 void OnActiveIRMQuantificationFrame(wxCommandEvent& event);
553 void OnActiveCTQuantificationFrame(wxCommandEvent& event);
554 void OnActiveVascularTreeExtractionFrame(wxCommandEvent& event);
555 void OnActiveSTLFormatFrame(wxCommandEvent& event);
556 void OnActiveTestsFrame(wxCommandEvent& event);
557 void OnActiveTests2Frame(wxCommandEvent& event);
559 ~wxProcessingImagesControl();
562 //----------------------------------------------------------------------------
563 //----------------------------------------------------------------------------
564 //----------------------------------------------------------------------------
566 class wxProcessingImagesTabControl: public wxPanel
569 wxProcessingImagesTabControl(wxWindow *parent,marInterface *mar,wxMaracasNoteBookPatientLstVoi *patientlstvoi);
570 ~wxProcessingImagesTabControl();
571 void OnChangingPage(wxNotebookEvent& event);
572 void OnChangePage(wxNotebookEvent& event);
576 wxMaracasNoteBookPatientLstVoi *_patientlstvoi;
577 wxMaracasNoteBookIRMQuantification *_irmQuantification;
578 wxMaracasNoteBookCTQuantification *_ctQuantification;
579 wxMaracasNoteBookVascularTreeExtraction *_vascularTreeExtraction;
580 wxMaracasNoteBookSTLFormat *_stlFormat;
582 wxNotebook *_noteBook;
586 //----------------------------------------------------------------------------
587 //----------------------------------------------------------------------------
588 //----------------------------------------------------------------------------
590 class MAR_INTERFACEWX_EXPORT wxMaracasFrame03: public wxMDIParentFrame
593 wxMaracasFrame03( wxFrame *parent, wxWindowID id = -1,
594 marInterface* mar = NULL, char *dictionaryFileName=NULL,
595 const wxString& title = wxT("MARACAS: MAgnetic Resonance Angiography Computer ASsisted analysis"),
596 const wxPoint& pos = wxDefaultPosition,
597 const wxSize& size = wxDefaultSize,
598 long style = wxDEFAULT_FRAME_STYLE);
600 void OnActivePatientListVoiFrame(wxCommandEvent& event);
601 void OnActiveProcessingFrame(wxCommandEvent& event);
602 void OnActiveParams(wxCommandEvent& event);
603 void OnActiveAbout(wxCommandEvent& event);
604 void OnActiveProcessingModules(wxCommandEvent& event);
605 void OnActiveIRMQuantificationFrame(wxCommandEvent& event);
606 void OnActiveCTQuantificationFrame(wxCommandEvent& event);
607 void OnActiveVascularTreeExtractionFrame(wxCommandEvent& event);
608 void OnActiveSTLFormatFrame(wxCommandEvent& event);
609 void OnActiveTestsFrame(wxCommandEvent& event);
610 void OnActiveTests2Frame(wxCommandEvent& event);
611 void OnActiveQuit(wxCommandEvent& event);
612 void CreateWindowMDI( int type );
613 void Configure_WindowMDI( int type );
615 void eventMenuDeleteAllPatientInDB(wxCommandEvent& event);
616 void eventMenuDeletePatientInDB(wxCommandEvent& event);
617 void OnFilterInDB(wxCommandEvent& event);
618 void OnOrderingInDB(wxCommandEvent& event);
619 void OnEditColumnsInDB(wxCommandEvent& event);
621 DECLARE_EVENT_TABLE();
625 // wxMaracasGenericChiFra *_frame_ListPatieint_Voi;
626 wxFrame *_frame_ListPatieint_Voi;
627 wxMaracasNoteBookPatientLstVoi *_patientlstvoi;
628 wxMaracasNoteBookManualRegistration *_manualRegistrationPanel;
631 wxBitmapButton *_btnProcessingData;
632 wxBitmapButton *_btnCTQuant;
633 wxBitmapButton *_btnIRMQuant;
634 wxBitmapButton *_btnTreeExtrac;
635 wxBitmapButton *_btnSTLFormat;
637 wxMenu *_option_menu;
639 wxMenuBar *CreateMenuBarBase();
640 void InitToolBar(wxToolBar* toolBar);
661 #endif // __WX__MARACAS__FRAME02__HXX__