#include namespace creaImageIO { //================================================================ WxGimmickSettings::WxGimmickSettings() : mMergeStudySeries(false) { // Defaults colours mColour[DicomNode::Database] = wxColour(0,0,128); mBgColour[DicomNode::Database] = wxColour(230,230,255); mColour[DicomNode::Patient] = wxColour(255,0,0); mBgColour[DicomNode::Patient] = wxColour(255,200,200); mColour[DicomNode::Study] = wxColour(128,128,0); mBgColour[DicomNode::Study] = wxColour(220,255,220); mColour[DicomNode::Series] = wxColour(0,0,255); mBgColour[DicomNode::Series] = wxColour(200,255,255); mColour[DicomNode::Image] = wxColour(64,64,0); mBgColour[DicomNode::Image] = wxColour(255,255,200); mLoadedImageColour = wxColour(128,128,0); // Default columns // Database GetColumnList(DicomNode::Database).push_back(Column("Name","Collection")); GetColumnList(DicomNode::Database).push_back(Column("File name","File name")); // Patient GetColumnList(DicomNode::Patient).push_back(Column("A0010_0010","Patient's name")); GetColumnList(DicomNode::Patient).push_back(Column("A0010_0040","Sex")); GetColumnList(DicomNode::Patient).push_back(Column("A0010_0030","Birthday")); // Study GetColumnList(DicomNode::Study).push_back(Column("A0008_1030","Study Description")); GetColumnList(DicomNode::Study).push_back(Column("A0008_0020","Study Date")); GetColumnList(DicomNode::Study).push_back(Column("A0008_0030","Study Time")); GetColumnList(DicomNode::Study).push_back(Column("A0008_0005","Specific Character Set")); // Series GetColumnList(DicomNode::Series).push_back(Column("A0008_0060","Modality")); GetColumnList(DicomNode::Series).push_back(Column("A0008_103E","Description")); GetColumnList(DicomNode::Series).push_back(Column("A0018_1030","Protocol Name")); GetColumnList(DicomNode::Series).push_back(Column("A0008_0080","Institution Name")); GetColumnList(DicomNode::Series).push_back(Column("A0008_1010","Station Name")); // Image GetColumnList(DicomNode::Image).push_back(Column("A0004_1500","File name")); GetColumnList(DicomNode::Image).push_back(Column("A0020_0013","Image Number")); GetColumnList(DicomNode::Image).push_back(Column("A0020_1041","Slice Location")); GetColumnList(DicomNode::Image).push_back(Column("A0020_0032","Image Position Patient")); GetColumnList(DicomNode::Image).push_back(Column("A0020_0037","Image Orientation Patient")); GetColumnList(DicomNode::Image).push_back(Column("A0028_0010","Rows")); GetColumnList(DicomNode::Image).push_back(Column("A0028_0011","Columns")); // Default comparators LexicographicalDicomNodeComparator c(""); SetActiveComparatorIndex(DicomNode::Database,-1); // Patient c.SetName("Name"); c.Clear(); c.Add( new DicomNodePatientNameComparator ); GetComparatorsList(DicomNode::Patient).push_back(c); c.SetName("Sex"); c.Clear(); c.Add( new DicomNodePatientSexComparator ); GetComparatorsList(DicomNode::Patient).push_back(c); c.SetName("Birthday"); c.Clear(); c.Add( new DicomNodePatientBirthdayComparator ); GetComparatorsList(DicomNode::Patient).push_back(c); SetActiveComparatorIndex(DicomNode::Patient,0); // Study c.SetName("Description"); c.Clear(); c.Add( new DicomNodeStudyDescriptionComparator ); GetComparatorsList(DicomNode::Study).push_back(c); c.SetName("Date"); c.Clear(); c.Add( new DicomNodeStudyDateComparator ); GetComparatorsList(DicomNode::Study).push_back(c); SetActiveComparatorIndex(DicomNode::Study,0); // Series c.SetName("Modality"); c.Clear(); c.Add( new DicomNodeModalityComparator ); GetComparatorsList(DicomNode::Series).push_back(c); c.SetName("Description"); c.Clear(); c.Add( new DicomNodeSeriesDescriptionComparator ); GetComparatorsList(DicomNode::Series).push_back(c); c.SetName("Date"); c.Clear(); c.Add( new DicomNodeSeriesDateComparator ); GetComparatorsList(DicomNode::Series).push_back(c); SetActiveComparatorIndex(DicomNode::Series,0); // Image c.SetName("Ascending slice location"); c.Clear(); c.Add( new DicomNodeSliceLocationComparator ); c.Add( new DicomNodeFullFileNameComparator ); GetComparatorsList(DicomNode::Image).push_back(c); c.SetName("Descending slice location"); c.Clear(); c.Add( new DicomNodeSliceLocationComparator(true) ); c.Add( new DicomNodeFullFileNameComparator ); GetComparatorsList(DicomNode::Image).push_back(c); c.SetName("Ascending image number"); c.Clear(); c.Add( new DicomNodeImageNumberComparator ); c.Add( new DicomNodeFullFileNameComparator ); GetComparatorsList(DicomNode::Image).push_back(c); c.SetName("Descending image number"); c.Clear(); c.Add( new DicomNodeImageNumberComparator(true) ); c.Add( new DicomNodeFullFileNameComparator ); GetComparatorsList(DicomNode::Image).push_back(c); SetActiveComparatorIndex(DicomNode::Image,0); } //==================================================================== //==================================================================== WxGimmickSettings::~WxGimmickSettings() { for (int i=0;iDeleteComparators(); } } } //==================================================================== //==================================================================== int WxGimmickSettings::GetMaxNumberOfColumns() { unsigned int n = 0; for (int i=0; i<5; i++) { if ( mColumnList[i].size() > n) n = mColumnList[i].size(); } if (mMergeStudySeries) { unsigned int ss = mColumnList[DicomNode::Study].size() + mColumnList[DicomNode::Series].size() ; if (ss>n) n=ss; } return n; } //==================================================================== }