// CGrpsDlg.cpp : implementation file // #include "stdafx.h" #include "CGrpsDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CContextGroupsDlg dialog CContextGroupsDlg::CContextGroupsDlg(ILEADDicomDS& DicomDS, CWnd* pParent /*=NULL*/) : CDialog(CContextGroupsDlg::IDD, pParent), m_DicomDS(DicomDS) { //{{AFX_DATA_INIT(CContextGroupsDlg) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT } void CContextGroupsDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CContextGroupsDlg) DDX_Control(pDX, IDC_LIST_CODEDCONCEPTS, m_CodedConceptsListCtrl); DDX_Control(pDX, IDC_COMBO_CONTEXTID, m_ContextIDComboBox); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CContextGroupsDlg, CDialog) //{{AFX_MSG_MAP(CContextGroupsDlg) ON_WM_DESTROY() ON_CBN_SELCHANGE(IDC_COMBO_CONTEXTID, OnSelChangeComboContextID) ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST_CODEDCONCEPTS, OnItemChangedListCodedConcepts) //}}AFX_MSG_MAP END_MESSAGE_MAP() void CContextGroupsDlg::Update(int iContextIDIndex) { // Reset SetDlgItemText(IDC_EDIT_NAME, ""); SetDlgItemText(IDC_EDIT_TYPE, ""); SetDlgItemText(IDC_EDIT_VERSION, ""); m_CodedConceptsListCtrl.DeleteAllItems(); SetDlgItemText(IDC_EDIT_CSD, ""); SetDlgItemText(IDC_EDIT_CSV, ""); SetDlgItemText(IDC_EDIT_CV, ""); SetDlgItemText(IDC_EDIT_CM, ""); CString sContextID; m_ContextIDComboBox.GetLBText(iContextIDIndex, sContextID); VARIANT_BOOL bRet; bRet = m_DicomDS.FindContextGroup(LPCSTR(sContextID)); if (!bRet) { return; } CString sVersion; // Set the Context Group info SetDlgItemText(IDC_EDIT_NAME, m_DicomDS.CurrentContextGroup->Name); SetDlgItemText(IDC_EDIT_TYPE, m_DicomDS.CurrentContextGroup->Extensible ? "Extensible" : "Non-Extensible"); sVersion.Format("%04i%02i%02i", m_DicomDS.CurrentContextGroup->ContextGroupVersion->Year, m_DicomDS.CurrentContextGroup->ContextGroupVersion->Month, m_DicomDS.CurrentContextGroup->ContextGroupVersion->Day); SetDlgItemText(IDC_EDIT_VERSION, sVersion); int iIndex = 0; // Display the Coded Concepts of the Context Group bRet = m_DicomDS.MoveFirstCodedConcept(); while (bRet) { m_CodedConceptsListCtrl.InsertItem(iIndex, m_DicomDS.CurrentCodedConcept->CodingSchemeDesignator); m_CodedConceptsListCtrl.SetItemText(iIndex, 1, m_DicomDS.CurrentCodedConcept->CodingSchemeVersion); m_CodedConceptsListCtrl.SetItemText(iIndex, 2, m_DicomDS.CurrentCodedConcept->CodeValue); m_CodedConceptsListCtrl.SetItemText(iIndex, 3, m_DicomDS.CurrentCodedConcept->CodeMeaning); iIndex++; bRet = m_DicomDS.MoveNextCodedConcept(); } if (m_CodedConceptsListCtrl.GetItemCount()) { m_CodedConceptsListCtrl.SetItemState(0, LVIS_SELECTED, LVIS_SELECTED); UpdateCodedConceptEditBoxes(0); } } void CContextGroupsDlg::UpdateCodedConceptEditBoxes(int iCodedConceptIndex) { SetDlgItemText(IDC_EDIT_CSD, m_CodedConceptsListCtrl.GetItemText(iCodedConceptIndex, 0)); SetDlgItemText(IDC_EDIT_CSV, m_CodedConceptsListCtrl.GetItemText(iCodedConceptIndex, 1)); SetDlgItemText(IDC_EDIT_CV, m_CodedConceptsListCtrl.GetItemText(iCodedConceptIndex, 2)); SetDlgItemText(IDC_EDIT_CM, m_CodedConceptsListCtrl.GetItemText(iCodedConceptIndex, 3)); } ///////////////////////////////////////////////////////////////////////////// // CContextGroupsDlg message handlers BOOL CContextGroupsDlg::OnInitDialog() { CDialog::OnInitDialog(); m_DicomDS.ResetContextGroup(); m_DicomDS.LoadContextGroup(""); // Fill the combo box of Context IDs VARIANT_BOOL bRet = m_DicomDS.MoveFirstContextGroup(); while (bRet) { m_ContextIDComboBox.AddString(m_DicomDS.CurrentContextGroup->ContextIdentifier); bRet = m_DicomDS.MoveNextContextGroup(); } // Prepare the Coded Concepts list control m_CodedConceptsListCtrl.InsertColumn(0, "Coding Scheme Designator", LVCFMT_LEFT, 70); m_CodedConceptsListCtrl.InsertColumn(1, "Coding Scheme Version", LVCFMT_LEFT, 70); m_CodedConceptsListCtrl.InsertColumn(2, "Code Value", LVCFMT_LEFT, 70); m_CodedConceptsListCtrl.InsertColumn(3, "Code Meaning", LVCFMT_LEFT, 200); m_CodedConceptsListCtrl.SetExtendedStyle(m_CodedConceptsListCtrl.GetExtendedStyle() | LVS_EX_FULLROWSELECT); m_ContextIDComboBox.SetCurSel(0); Update(0); return TRUE; } void CContextGroupsDlg::OnDestroy() { CDialog::OnDestroy(); m_DicomDS.ResetContextGroup(); } void CContextGroupsDlg::OnSelChangeComboContextID() { Update(m_ContextIDComboBox.GetCurSel()); } void CContextGroupsDlg::OnItemChangedListCodedConcepts(NMHDR* pNMHDR, LRESULT* pResult) { NM_LISTVIEW* pNMListView = (NM_LISTVIEW*) pNMHDR; if (pNMListView->uNewState & LVIS_SELECTED) { UpdateCodedConceptEditBoxes(pNMListView->iItem); } *pResult = 0; }