+#include <creaImageIOPACSConnection.h>
+#include <creaImageIOWxPACSConnectionPanel.h>
#include <creaImageIOWxGimmickView.h>
#include <creaImageIOWxTreeView.h>
#include <creaImageIOSystem.h>
#include <creaImageIOWxListenerPanel.h>
#include <creaImageIOWxEditFieldsPanel.h>
#include <creaImageIOWxAttributeSelectionPanel.h>
-#include <creaImageIOWxPACSConnectionPanel.h>
#include <creaImageIOWxDescriptorPanel.h>
using namespace crea;
#include "bruker2dicom.h"
#endif
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
namespace creaImageIO
{
TOOL_SETTINGS_ID = 7,
TOOL_TOOLS_ID = 8,
TOOL_CREATEDB_ID = 9,
+ TOOL_PACS_ID = 10
};
//======================================================================
//======================================================================
// CTor
- WxGimmickView::WxGimmickView(Gimmick* gimmick,
+ WxGimmickView::WxGimmickView(boost::shared_ptr<Gimmick> gimmick,
wxWindow *parent,
const wxWindowID id,
const wxPoint& pos,
mCurrentDirectory = std2wx(gimmick->GetHomeDirectory());
// Connect the AddProgress callback
- gimmick->ConnectAddProgressObserver
- ( boost::bind( &WxGimmickView::OnAddProgress , this, _1 ) );
+ gimmick->ConnectAddProgressObserver
+ ( boost::bind( &WxGimmickView::OnAddProgress , this, _1 ) );
// Create the list of icons (mIcon)
CreateIconList();
// Create the tool bar
CreateToolBar();
- sizer->Add( mToolBar ,0, wxGROW ,0);
+ sizer->Add( mToolBar, 0, wxGROW, 0);
// Split part below toolbar into notebook for views and panel
// for preview, messages...
mSplitter = new wxSplitterWindow( this , -1);
-
-
+
// Notebook
mNotebook = new wxNotebook(mSplitter,
- -1,wxDefaultPosition, wxDefaultSize, 0);
+ -1, wxDefaultPosition, wxDefaultSize, 0);
//Gimmick
mGimmick=gimmick;
-
- mSelectionMaxDimension= max_dim;
- mSelectionMinDimension= min_dim;
+ mSelectionMaxDimension = max_dim;
+ mSelectionMinDimension = min_dim;
// Create the views
CreateTreeViews();
// Previewer
mViewer = new WxViewer(mBottomPanel, wxID_ANY, wxT("Gimmick! Viewer"),wxDefaultPosition, wxDefaultSize );
- pointers.push_back(new ImagePointerHolder(GetDefaultImage()));
- mViewer->SetImageVector(pointers);
- mViewer->StartPlayer();
+ //pointers.push_back(new ImagePointerHolder(GetDefaultImage())
+ pointers.push_back(boost::shared_ptr<creaImageIO::ImagePointerHolder>(new ImagePointerHolder(GetDefaultImage())));
+
+ mViewer->SetImageVector(pointers);
+ mViewer->StartPlayer();
bottom_sizer->Add(mViewer,1,wxGROW,1);
mSplitter->SplitHorizontally( mNotebook, mBottomPanel,
top_minsize);
- sizer->Add( mSplitter,1,wxGROW ,0);
+ sizer->Add( mSplitter, 1, wxGROW, 0);
mProgressDialog=0;
SetSizer( sizer );
SetAutoLayout(true);
Layout();
- mListener=new Listener();
- mListener->ConnectObserver(boost::bind( &WxGimmickView::OnDriveMount , this, _1 ) );
- mListener->Create();
- mListener->Run();
- mListener->Pause();
+ //mListener=new Listener();
+ //mListener->ConnectObserver(boost::bind( &WxGimmickView::OnDriveMount, this, _1 ) );
+ //mListener->Create();
+ // mListener->Run();
+ // mListener->Pause();
mConstructed = true;
}
mViewer->StopPlayer();
GimmickDebugMessage(1,"WxGimmickView::~WxGimmickView"
<<std::endl);
- if(mListener->IsAlive())
- {
- mListener->Delete();
- }
+ delete mIcon;
+ //if(mListener->IsAlive()) { mListener->Delete(); }
}
//======================================================================
mIcon->GetBitmap(Icon_create_database),
_T("Create DB from an Attributes Descriptor file")
);
-
+#if defined(BUILD_PACS)
+ mToolAddFile = mToolBar->AddTool( TOOL_PACS_ID,
+ _T("PACS Connection,"),
+ mIcon->GetBitmap(Icon_create_database),
+ _T("Echo, Find and Get to a PACS")
+ );
+#endif
//const wxBitmap& bitmap1, const wxString& shortHelpString = "", wxItemKind kind = wxITEM_NORMAL)
mToolBar->Realize();
GimmickMessage(2,"Creating the tree view for '"<<
name<<"'"<<std::endl);
// Create the WxTreeView
- WxTreeView* view = new WxTreeView(h,this,mNotebook,-1);
+ WxTreeView* view = new WxTreeView(h, this, mNotebook, -1);
// TO DO : TEST THAT A VIEW WITH SAME NAME IS NOT
// ALREADY IN THE MAP
{
std::vector<std::string> files;
GetTreeViewMap()[crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection()))]->GetSelectedAsString(files);
- ReadImagesNotThreaded(s,files,dim);
+ ReadImagesNotThreaded(s, files, dim);
+ }
+
+ //======================================================================
+ void WxGimmickView::GetSelectedImagesInVector(std::vector<vtkImageData*>& s, int dim)
+ {
+ std::vector<std::string> files;
+ GetTreeViewMap()[crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection()))]->GetSelectedAsString(files);
+ ReadImagesNotThreadedInVector(s, files, dim);
}
//======================================================================
wxIcon icons[20];
// should correspond to Icon_xxx enum
- icons[Icon_accept] = wxIcon(accept_xpm);
- icons[Icon_add] = wxIcon(add_xpm);
- icons[Icon_folder_down] = wxIcon(folder_down_xpm);
- icons[Icon_page_down] = wxIcon(page_down_xpm);
- icons[Icon_remove] = wxIcon(remove_xpm);
- icons[Icon_database_add] = wxIcon(database_add_xpm);
- icons[Icon_help] = wxIcon(help_xpm);
- icons[Icon_synchronize] = wxIcon(synchronize_xpm);
+ icons[Icon_accept] = wxIcon(accept_xpm);
+ icons[Icon_add] = wxIcon(add_xpm);
+ icons[Icon_folder_down] = wxIcon(folder_down_xpm);
+ icons[Icon_page_down] = wxIcon(page_down_xpm);
+ icons[Icon_remove] = wxIcon(remove_xpm);
+ icons[Icon_database_add] = wxIcon(database_add_xpm);
+ icons[Icon_help] = wxIcon(help_xpm);
+ icons[Icon_synchronize] = wxIcon(synchronize_xpm);
icons[Icon_create_database] = wxIcon(create_database_xpm);
- icons[Icon_settings] = wxIcon(settings_xpm);
- icons[Icon_tools] = wxIcon(tools_xpm);
+ icons[Icon_settings] = wxIcon(settings_xpm);
+ icons[Icon_tools] = wxIcon(tools_xpm);
// unsigned int NbIcons = 8;
// Make an image list containing small icons
1000,
this,
wxPD_ELAPSED_TIME |
- // wxPD_ESTIMATED_TIME |
- // wxPD_REMAINING_TIME |
+ // wxPD_ESTIMATED_TIME |
+ // wxPD_REMAINING_TIME |
wxPD_CAN_ABORT );
// TO DO : select the current tree handler
if (FD->ShowModal()==wxID_OK)
{
-
-
std::string dirname = wx2std (FD->GetPath());
bool recurse = isNeedRecursive(dirname);
if (recurse)
{
- recurse = wxMessageBox(_T("Recurse into sub-directories ?"), _T("Scan directory"), wxYES_NO,this ) == wxYES ? true : false;
+ recurse = wxMessageBox(_T("Recurse into sub-directories ?"), _T("Scan directory"), wxYES_NO,this ) == wxYES ? true : false;
}
-
+
wxBusyCursor busy;
wxString title(_T("Adding directory"));
if (recurse)
this,
wxPD_ELAPSED_TIME |
wxPD_SMOOTH |
- // wxPD_ESTIMATED_TIME |
- // wxPD_REMAINING_TIME |
+ // wxPD_ESTIMATED_TIME |
+ // wxPD_REMAINING_TIME |
wxPD_CAN_ABORT );
-
+
mCurrentDirectory = FD->GetPath();
mGimmick->AddDir(crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection())),dirname,recurse);
mProgressDialog->Pulse(_T("Updating view..."));
-
+
UpdateTreeViewLevel(crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection())),1);
delete mProgressDialog;
DisplayAddSummary();
-
}
mViewer->StartPlayer();
}
- //=================================================
+ //=================================================
// Determines number of files potentially to add to database
int WxGimmickView::NumberFilesToAdd(const std::string &dirpath, bool recursive)
{
}
}
return nb;
-
}
- //=================================================
+ //=================================================
// Test a directory to know if contains sub-directory to analyze
bool WxGimmickView::isNeedRecursive(std::string i_name)
{
ClearSelection();
}*/
ReadImageThreaded(sel);
-
-
}
//==================================================
"Requesting image from selected "
<<(*selected)->GetAttribute("FullFileName")
<<std::endl);
- ImagePointerHolder* ph=new ImagePointerHolder(GetDefaultImage());
+ //ImagePointerHolder* ph=new ImagePointerHolder(GetDefaultImage());
+ boost::shared_ptr<ImagePointerHolder> ph(new ImagePointerHolder(GetDefaultImage()));
pointers.push_back(ph);
RequestReading(*selected,prio,index,ph);
// AddEntryToMap(*selected);
"Requesting image from neighbors up "
<<(*iterUp)->GetAttribute("FullFileName")
<<std::endl);
- ImagePointerHolder* ph=new ImagePointerHolder(GetDefaultImage());
+// ImagePointerHolder* ph=new ImagePointerHolder(GetDefaultImage());
+ boost::shared_ptr<ImagePointerHolder> ph(new ImagePointerHolder(GetDefaultImage()));
RequestReading(*iterUp,prio,-1,ph);
// AddEntryToMap(*iterUp);
prio--;
"Requesting image from neighbors down "
<<(*iterDown)->GetAttribute("FullFileName")
<<std::endl);
- ImagePointerHolder* ph=new ImagePointerHolder(GetDefaultImage());
+ //ImagePointerHolder* ph=new ImagePointerHolder(GetDefaultImage());
+ boost::shared_ptr<ImagePointerHolder> ph(new ImagePointerHolder(GetDefaultImage()));
RequestReading(*iterDown,prio,-1,ph);
// AddEntryToMap(*iterDown);
prio--;
else
{
pointers.clear();
- ImagePointerHolder* ph=new ImagePointerHolder(GetDefaultImage());
+ //ImagePointerHolder* ph=new ImagePointerHolder(GetDefaultImage());
+ boost::shared_ptr<ImagePointerHolder> ph(new ImagePointerHolder(GetDefaultImage()));
pointers.push_back(ph);
mViewer->SetImageVector(pointers);
}
void WxGimmickView::ClearSelection()
{
pointers.clear();
- pointers.push_back(new ImagePointerHolder(GetDefaultImage()));
+ pointers.push_back(boost::shared_ptr<creaImageIO::ImagePointerHolder>(new ImagePointerHolder(GetDefaultImage())));
+ //pointers.push_back(new ImagePointerHolder(GetDefaultImage()));
mViewer->SetImageVector(pointers);
mViewer->RefreshIfNecessary();
ResetExtent();
}
-
+
//=================================================
//=================================================
{
//TODO Select current tree handler
wxBusyCursor busy;
- GetTreeViewMap()[crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection()))]->RemoveSelected();
+ std::string remove;
+ mGimmick->GetSetting(SETTINGS_REMOVE_PATIENT_DISPLAY,remove);
+ GetTreeViewMap()[crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection()))]->RemoveSelected(remove);
+ mGimmick->UpdateSetting(SETTINGS_REMOVE_PATIENT_DISPLAY,remove);
ClearSelection();
}
//=================================================
-
+
//=================================================
void WxGimmickView::AddIgnoreFile(tree::Node* toRemove)
{
mGimmick->RemoveFile(crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection())),toRemove);
- GetTreeViewMap()[crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection()))]->UpdateLevel(1);
+ // GetTreeViewMap()[crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection()))]->UpdateLevel(1);
}
//=================================================
if (dialog.ShowModal() == wxID_OK)
{
+ wxBusyCursor busy;
int sel=dialog.GetSelection();
bool repair=false;
bool checkAttributes=false;
dial->SetSizer(siz);
dial->ShowModal();
}
+
//=================================================
void WxGimmickView::OnImportExport(wxCommandEvent &Event)
{
std::string inputDir = crea::wx2std(gimmickTools->getInputDir());
std::string outputDir = crea::wx2std(gimmickTools->getOutputDir());
- bool addToDB = gimmickTools->getCheckBoxValue();
+ bool addToDB = gimmickTools->getAddToDBCheckBoxValue();
if (inputDir.compare("")!=0 && outputDir.compare("")!=0)
{
}
}
}
-
else
{
wxMessageBox(_T("One or both of the directory fields are empty"),_T("Empty Fields"),wxOK,this);
delete gimmickTools;
#endif
}
-
mViewer->StartPlayer();
}
+
//=================================================
void WxGimmickView::CreateSettingsDialog(wxNotebook* nb, wxDialog* dial)
//////////////////////////////////////////////////
void WxGimmickView::OnCreateDB(wxCommandEvent& event)
{
+ // PACSConnection("");
WxDescriptorPanel * DescriptorPan = new WxDescriptorPanel(this, mGimmick->GetHomeDirectory());
DescriptorPan->Layout();
if ( DescriptorPan->ShowModal() == ID_DSCP_APPLY)
} // EO namespace creaImageIO
-