// UID.cpp : implementation file // #include "stdafx.h" #include "netapp.h" #include "UID.h" ///////////////////////////////////////////////////////////////////////////// // CNetUIDDlg dialog CNetUIDDlg::CNetUIDDlg(CWnd* pParent /*=NULL*/) : CDialog(CNetUIDDlg::IDD, pParent) { //{{AFX_DATA_INIT(CNetUIDDlg) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CNetUIDDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CNetUIDDlg) DDX_Control(pDX, IDC_TYPE, m_Type); DDX_Control(pDX, IDC_LIST, m_List); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CNetUIDDlg, CDialog) //{{AFX_MSG_MAP(CNetUIDDlg) ON_BN_CLICKED(IDC_INSERT, OnInsert) ON_BN_CLICKED(IDC_MODIFY, OnModify) ON_BN_CLICKED(IDC_DELETE, OnDelete) ON_BN_CLICKED(IDC_DEFAULT, OnDefault) ON_NOTIFY(TVN_SELCHANGED, IDC_LIST, OnSelchangedList) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CNetUIDDlg message handlers BOOL CNetUIDDlg::OnInitDialog() { CDialog::OnInitDialog(); // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon pDICOMUID pUID; HTREEITEM hItem; L_INT nItem; nItem = m_Type.AddString("Other"); m_Type.SetItemData(nItem, UID_TYPE_OTHER); nItem = m_Type.AddString("Transfer Syntax - Uncompressed Image"); m_Type.SetItemData(nItem, UID_TYPE_TRANSFER1); nItem = m_Type.AddString("Transfer Syntax - Compressed Image"); m_Type.SetItemData(nItem, UID_TYPE_TRANSFER2); nItem = m_Type.AddString("SOP Class"); m_Type.SetItemData(nItem, UID_TYPE_CLASS); nItem = m_Type.AddString("Meta SOP Class"); m_Type.SetItemData(nItem, UID_TYPE_META_CLASS); nItem = m_Type.AddString("SOP Instance"); m_Type.SetItemData(nItem, UID_TYPE_INSTANCE); nItem = m_Type.AddString("Application Context Name"); m_Type.SetItemData(nItem, UID_TYPE_APPLICATION); pUID = LDicomUID::GetFirst(); while (pUID != NULL) { hItem = m_List.InsertItem(pUID->pszCode, TVI_ROOT, TVI_LAST); m_List.SetItemData(hItem, (DWORD)pUID); pUID = LDicomUID::GetNext(pUID); } m_List.SelectItem(m_List.GetFirstVisibleItem()); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CNetUIDDlg::OnInsert() { CString strCode; CString strName; L_INT nType; pDICOMUID pUID; HTREEITEM hItem; GetDlgItemText(IDC_CODE, strCode); GetDlgItemText(IDC_NAME, strName); nType = m_Type.GetItemData(m_Type.GetCurSel()); pUID = LDicomUID::Insert((L_CHAR *)(LPCTSTR)strCode, (L_CHAR *)(LPCTSTR)strName, nType); hItem = m_List.InsertItem(pUID->pszCode, TVI_ROOT, TVI_LAST); m_List.SetItemData(hItem, (DWORD)pUID); m_List.RedrawWindow(); m_List.SelectItem(hItem); } void CNetUIDDlg::OnModify() { CString strName; L_INT nType; pDICOMUID pUID; HTREEITEM hItem; hItem = m_List.GetSelectedItem(); if (hItem == NULL) { return; } pUID = (pDICOMUID)m_List.GetItemData(hItem); GetDlgItemText(IDC_NAME, strName); nType = m_Type.GetItemData(m_Type.GetCurSel()); LDicomUID::SetName(pUID, (L_CHAR *)(LPCTSTR)strName); pUID->nType = nType; } void CNetUIDDlg::OnDelete() { pDICOMUID pUID; HTREEITEM hItem; hItem = m_List.GetSelectedItem(); if (hItem == NULL) { return; } pUID = LDicomUID::Find((L_CHAR *)(LPCTSTR)m_List.GetItemText(hItem)); if (pUID == NULL) { return; } LDicomUID::Delete(pUID); m_List.DeleteItem(hItem); m_List.RedrawWindow(); } void CNetUIDDlg::OnDefault() { pDICOMUID pUID; HTREEITEM hItem; m_List.DeleteAllItems(); LDicomUID::Default(); pUID = LDicomUID::GetFirst(); while (pUID != NULL) { hItem = m_List.InsertItem(pUID->pszCode, TVI_ROOT, TVI_LAST); m_List.SetItemData(hItem, (DWORD)pUID); pUID = LDicomUID::GetNext(pUID); } m_List.SelectItem(m_List.GetFirstVisibleItem()); } void CNetUIDDlg::OnSelchangedList(NMHDR* pNMHDR, LRESULT* pResult) { NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; pDICOMUID pUID; HTREEITEM hItem; L_INT i; hItem = m_List.GetSelectedItem(); if (hItem == NULL) { return; } pUID = (pDICOMUID)m_List.GetItemData(hItem); SetDlgItemText(IDC_CODE, pUID->pszCode); SetDlgItemText(IDC_NAME, pUID->pszName); for (i = 0; i < m_Type.GetCount(); i++) { if ((L_INT)m_Type.GetItemData(i) == pUID->nType) { m_Type.SetCurSel(i); break; } } *pResult = 0; }