3
#include "pacsuploaddialog.h"
4
#include <main/controllers/dcmtk/dicomservers.h>
5
#include <main/controllers/configurationcontroller.h>
6
#include <main/controllers/historycontroller.h>
7
#include <wx/ginkgostyle/ginkgostyle.h>
11
#define COLUMNA_DCMDIR_FECHA 2
12
#define COLUMNA_DCMDIR_MODALIDAD 1
13
#define COLUMNA_DCMDIR_MEDICO 3
14
#define COLUMNA_DCMDIR_ACCNUMBER 4
15
#define COLUMNA_DCMDIR_UID 5
20
PACSUploadDialog::PACSUploadDialog(wxWindow* pParent, const std::list<long>& seriesId, const std::list<long>& selectedSeriesId) : PACSUploadDialogBase(pParent)
22
wxArrayString pacsList;
23
DicomServerList::TServerList ListOfServers = DicomServerList::Instance()->GetServerList();
24
for (DicomServerList::TServerList::iterator it = ListOfServers.begin(); it != ListOfServers.end(); ++it)
26
pacsList.push_back(wxString::FromAscii((*it)->ID.c_str()));
28
m_pServer->Append(pacsList);
30
if(m_pServer->GetCount()>0){
31
m_pServer->SetSelection(0);
33
GNC::GCS::ConfigurationController::Instance()->readStringUser("/GinkgoCore/SubirPACS", "PACSDefecto", pacsDef);
35
for (unsigned int i =0; i< m_pServer->GetCount(); ++i) {
36
if (m_pServer->GetString(i) == wxString::FromUTF8(pacsDef.c_str())) {
42
m_pServer->AppendString(_("There aren't any PACS configured"));
43
m_pServer->SetSelection(0);
45
m_pOkButton->Disable();
48
m_pPanelMessage->Layout();
51
std::set<long> setOfSelected;
52
setOfSelected.insert(selectedSeriesId.begin(), selectedSeriesId.end());
54
for (std::list<long>::const_iterator itSeries = seriesId.begin(); itSeries != seriesId.end(); ++itSeries)
56
GNC::GCS::HistoryController::SeriesModel sm = GNC::GCS::HistoryController::Instance()->GetSeriesModel((*itSeries));
57
std::ostringstream ostr;
58
ostr << sm.series_desc << " - " << sm.series_modality << " (" << sm.num_instances << ") ";
59
wxDateTime seriesDate;
60
seriesDate.ParseFormat(wxString::FromUTF8( sm.series_datetime.c_str() ).GetData(), wxT("%Y-%m-%dT%H:%M:%S"), wxDefaultDateTime);
62
if(seriesDate.IsValid()){
63
ostr << wxString(seriesDate.Format(_("%m/%d/%Y %H:%M:%S"), wxDateTime::TimeZone(wxDateTime::GMT1))).ToUTF8();
66
ostr << _Std("0000/00/00 00:00:00");
69
int position = m_pSeriesList->Append(wxString::FromUTF8(ostr.str().c_str()));
70
m_positionsId[position] = (*itSeries);
71
if (setOfSelected.empty() || setOfSelected.find((*itSeries)) != setOfSelected.end()) {
72
m_pSeriesList->Check(position);
76
PACSUploadDialog::~PACSUploadDialog()
81
std::string PACSUploadDialog::GetSelectedServer()
83
int selection = m_pServer->GetSelection();
85
std::string idServer(m_pServer->GetString(selection).ToUTF8());
86
GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/SubirPACS", "PACSDefecto", idServer);
93
std::list<long> PACSUploadDialog::GetSelectedSeries()
95
std::list<long> series;
96
for (int i = 0; i < m_pSeriesList->GetCount(); ++i) {
97
if (m_positionsId.find(i) != m_positionsId.end()) {
98
series.push_back(m_positionsId[i]);