// Page3.cpp : implementation file // #include "stdafx.h" #include "DicomMWL.h" #include "Page3.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CPage3 property page IMPLEMENT_DYNCREATE(CPage3, CPropertyPage) CPage3::CPage3() : CPropertyPage(CPage3::IDD, IDS_PAGE3) { //{{AFX_DATA_INIT(CPage3) m_strAccessionNumber = CGlobals::m_strAccessionNumber ; m_strPatientID = CGlobals::m_strPatientID ; m_strPatientName = CGlobals::m_strPatientName ; m_strRequestedProcedureID = CGlobals::m_strRequestedProcedureID ; m_strStaticInstructions = _T(""); //}}AFX_DATA_INIT m_nQueryType = CGlobals::m_nQueryType; m_pSheet = NULL; m_bCheckModality = FALSE; m_bCheckDate = FALSE; NO_PAGE_HELP(); } CPage3::~CPage3() { } void CPage3::DoDataExchange(CDataExchange* pDX) { CPropertyPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CPage3) DDX_Control(pDX, IDC_CHECK_DATE, m_CheckDate); DDX_Control(pDX, IDC_CHECK_MODALITY, m_CheckModality); DDX_Control(pDX, IDC_SCHEDULED_DATE, m_ScheduledDate); DDX_Control(pDX, IDC_COMBO_MODALITY, m_ComboModality); DDX_Text(pDX, IDC_EDIT_ACCESSION_NUMBER, m_strAccessionNumber); DDX_Text(pDX, IDC_EDIT_PATIENT_ID, m_strPatientID); DDX_Text(pDX, IDC_EDIT_PATIENT_NAME, m_strPatientName); DDX_Text(pDX, IDC_EDIT_REQUESTED_PROCEDURE_ID, m_strRequestedProcedureID); DDX_Text(pDX, IDC_STATIC_INSTRUCTIONS, m_strStaticInstructions); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CPage3, CPropertyPage) //{{AFX_MSG_MAP(CPage3) ON_BN_CLICKED(IDC_RADIO_QUERY_PATIENTBASED, OnRadioQueryPatientbased) ON_BN_CLICKED(IDC_RADIO_QUERY_BROADY_MODALITY, OnRadioQueryBroadyModality) ON_BN_CLICKED(IDC_CHECK_MODALITY, OnCheckModality) ON_BN_CLICKED(IDC_CHECK_DATE, OnCheckDate) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CPage3 message handlers void CPage3::OnRadioQueryPatientbased() { m_nQueryType = QUERY_PATIENT_BASE; EnableDialogItems(m_nQueryType); } void CPage3::OnRadioQueryBroadyModality() { m_nQueryType = QUERY_BROAD_MODALITY_WORK_LIST; EnableDialogItems(m_nQueryType); } void CPage3::EnableDialogItems(int nType) { int bPatient = nType == QUERY_PATIENT_BASE; //Patient Based Query GetDlgItem(IDC_STATIC_PATIENT)->EnableWindow(bPatient); GetDlgItem(IDC_STATIC_PATIENT_NAME)->EnableWindow(bPatient); GetDlgItem(IDC_STATIC_PATIENT_ID)->EnableWindow(bPatient); GetDlgItem(IDC_STATIC_ACCESSION_NUMBER)->EnableWindow(bPatient); GetDlgItem(IDC_STATIC_REQUESTED_PROCEDURE_ID)->EnableWindow(bPatient); GetDlgItem(IDC_EDIT_PATIENT_NAME)->EnableWindow(bPatient); GetDlgItem(IDC_EDIT_PATIENT_ID)->EnableWindow(bPatient); GetDlgItem(IDC_EDIT_ACCESSION_NUMBER)->EnableWindow(bPatient); GetDlgItem(IDC_EDIT_REQUESTED_PROCEDURE_ID)->EnableWindow(bPatient); //Broad Modality Work List Query GetDlgItem(IDC_STATIC_BROAD_MODALITY)->EnableWindow(!bPatient); GetDlgItem(IDC_CHECK_DATE)->EnableWindow(!bPatient); GetDlgItem(IDC_CHECK_MODALITY)->EnableWindow(!bPatient); GetDlgItem(IDC_SCHEDULED_DATE)->EnableWindow(!bPatient && m_CheckDate.GetCheck()); GetDlgItem(IDC_COMBO_MODALITY)->EnableWindow(!bPatient && m_CheckModality.GetCheck()); } BOOL CPage3::OnSetActive() { m_pSheet->SetWizardButtons(PSWIZB_BACK | PSWIZB_NEXT); return CPropertyPage::OnSetActive(); } LRESULT CPage3::OnWizardNext() { if (UpdateData(TRUE) == 0) return -1; // Modality CGlobals::m_strModality = ""; char *pszModality = NULL; CGlobals::m_bCheckModality = m_CheckModality.GetCheck(); if (CGlobals::m_bCheckModality) { int nIndex = m_ComboModality.GetCurSel(); if (nIndex >= 0) { pszModality = (char *)m_ComboModality.GetItemData(nIndex); if (pszModality) CGlobals::m_strModality = pszModality; } } // Date CGlobals::m_strScheduleDate = ""; CGlobals::m_bCheckDate = m_CheckDate.GetCheck(); if (CGlobals::m_bCheckDate) { CGlobals::m_strScheduleDate = m_ScheduledDate.GetDateString(); } CGlobals::m_strAccessionNumber = m_strAccessionNumber; CGlobals::m_strPatientID = m_strPatientID; CGlobals::m_strPatientName = m_strPatientName; CGlobals::m_strRequestedProcedureID = m_strRequestedProcedureID; CGlobals::m_nQueryType = m_nQueryType; CGlobals::SaveRegKeys(); return CPropertyPage::OnWizardNext(); } BOOL CPage3::OnKillActive() { return CPropertyPage::OnKillActive(); } void CPage3::InitializeComboBoxModality() { int i; int nIndex; CString strDesc; for (i=0; i= 0) m_ComboModality.SetItemDataPtr(nIndex, CGlobals::m_ModalityTable[i].pszValue); } nIndex = m_ComboModality.SetCurSel(0); nIndex = m_ComboModality.SelectString(-1, CGlobals::m_strModality); } void CPage3::OnCheckModality() { EnableModality(m_CheckModality.GetCheck()); } void CPage3::EnableModality(int bEnable) { m_ComboModality.EnableWindow(bEnable); } void CPage3::OnCheckDate() { EnableDate(m_CheckDate.GetCheck()); } void CPage3::EnableDate(int bEnable) { m_ScheduledDate.EnableWindow(bEnable); } BOOL CPage3::OnInitDialog() { CPropertyPage::OnInitDialog(); m_pSheet = (CMyPropertySheet *)GetParent(); CButton *pRadioButton = (CButton *)GetDlgItem(IDC_RADIO_QUERY_PATIENTBASED); m_nQueryType = CGlobals::m_nQueryType; pRadioButton->SetCheck(m_nQueryType == QUERY_PATIENT_BASE); pRadioButton = (CButton *)GetDlgItem(IDC_RADIO_QUERY_BROADY_MODALITY); pRadioButton->SetCheck(m_nQueryType != QUERY_PATIENT_BASE); if (m_ComboModality.GetCount() == 0) { InitializeComboBoxModality(); } m_ScheduledDate.SetFormat("MM/dd/yyy"); m_ScheduledDate.SetDate(CGlobals::m_strScheduleDate); EnableDialogItems(m_nQueryType); m_CheckModality.SetCheck(CGlobals::m_bCheckModality); //EnableModality(m_CheckModality.GetCheck()); m_CheckDate.SetCheck(CGlobals::m_bCheckDate); //EnableDate(m_CheckDate.GetCheck()); m_strStaticInstructions.LoadString(IDS_PAGE3_INSTR); if (m_nQueryType == QUERY_PATIENT_BASE ) OnRadioQueryPatientbased(); else OnRadioQueryBroadyModality(); UpdateData(FALSE); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }