using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using CLIP.eForm.Consent.UI.HospitalSvcRef; using System.Windows.Forms; namespace CLIP.eForm.Consent.UI { /// /// 환자목록 클래스 /// /// ///

[설계자]

///

클립소프트 연구소 홍지철 (jchong@clipsoft.co.kr)

///

[원본 작성자]

///

클립소프트 기술부 이인희

///

[수정 작성자]

///

///

----------------------------------------------------------------------------------------

///

[HISTORY]

///

2016-06-21 : 최초작성

///

----------------------------------------------------------------------------------------

///
public partial class PatientListCtrl : PatientListCtrlBase { private IConsentMain consentMain = null; private ConsentCommandCtrl commandControl = null; public PatientListCtrl() { InitializeComponent(); } private void PatientListCtrl_Load(object sender, EventArgs e) { if (this.DesignMode || LicenseManager.UsageMode == LicenseUsageMode.Designtime) { return; } consentMain = ConsentMainControl.GetConsentMainInterface(this); commandControl = consentMain.ConsentCommandCtrl as ConsentCommandCtrl; consentMain.OnLoadPartControls += ConsentMain_OnLoadPartControls; } private void ConsentMain_OnLoadPartControls(object sender, EventArgs e) { if (this.DesignMode) { return; } IConsentMain consentMain = ConsentMainControl.GetConsentMainInterface(this); // Ku2.0 연동 시에는 이벤트 태우지 않음 if (consentMain.ConsentExecuteInfo["printYN"].Equals("Y")) { return; } pageMove_tabPageOutPatient(consentMain); SetPatientListSplitPanelVisibility(consentMain); } /// /// patientListView 의 값에 따라 PatientList 패널 활성화 여부 설정 /// /// patientListView 를 가지고 있는 consentMain 인스턴스 private static void SetPatientListSplitPanelVisibility(IConsentMain consentMain) { if (!(string.IsNullOrEmpty(consentMain.ConsentExecuteInfo["enablePatientList"])) && consentMain.ConsentExecuteInfo["enablePatientList"].Equals("Y")) { consentMain.SetPatientListSplitPanelVisibility(true); } else { consentMain.SetPatientListSplitPanelVisibility(false); } } /// /// 탭 변경 이벤트 /// /// The source of the event. /// The instance containing the event data. private void tabControlPatientSelect_SelectedIndexChanged(object sender, EventArgs e) { // 탭 선택을 할때마다 선택된 체크박스는 초기화 한다. tabPageClearCheckBox(tabControlPatientSelect.SelectedIndex); bool isVisible = false; int tabIdx = this.getSelectedTabIndex(); if (tabIdx == 4 || tabIdx == 0) { isVisible = true; } commandControl.setCompleteSaveButton(isVisible); consentMain.ReInitializeViewer(); } /// /// 탭 페이지 내의 체크박스 초기화 /// /// 현재 선택된 탭 페이지 private void tabPageClearCheckBox(int tabIndex) { if (tabIndex == 0) { if (this.tabControlPatientSelect.TabPages["tabPageSearchPatient"].Controls.Count > 0) { PatientSelectTabSearchPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageSearchPatient"].Controls[0] as PatientSelectTabSearchPatient; //searchPatient.ClearCheckBox(); } } else if (tabIndex == 1) { if (this.tabControlPatientSelect.TabPages["tabPageEmergencyPatient"].Controls.Count > 0) { PatientSelectTabEmergencyPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageEmergencyPatient"].Controls[0] as PatientSelectTabEmergencyPatient; searchPatient.ClearCheckBox(); } } else if (tabIndex == 2) { if (this.tabControlPatientSelect.TabPages["tabPageOperatePatient"].Controls.Count > 0) { PatientSelectTabOperatePatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageOperatePatient"].Controls[0] as PatientSelectTabOperatePatient; searchPatient.ClearCheckBox(); } } else if (tabIndex == 3) { if (this.tabControlPatientSelect.TabPages["tabPageInPatient"].Controls.Count > 0) { PatientSelectTabInPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageInPatient"].Controls[0] as PatientSelectTabInPatient; searchPatient.ClearCheckBox(); } } else if (tabIndex == 4) { if (this.tabControlPatientSelect.TabPages["tabPageOutPatient"].Controls.Count > 0) { PatientSelectTabOutPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageOutPatient"].Controls[0] as PatientSelectTabOutPatient; searchPatient.ClearCheckBox(); } } } public override int getSelectedTabIndex() { return tabControlPatientSelect.SelectedIndex; } public override Hashtable getQueryString(int selectedIndex) { Hashtable queryString = new Hashtable(); if (tabControlPatientSelect.SelectedIndex == 0) { if (this.tabControlPatientSelect.TabPages["tabPageSearchPatient"].Controls.Count > 0) { PatientSelectTabSearchPatient tabObj = this.tabControlPatientSelect.TabPages["tabPageSearchPatient"].Controls[0] as PatientSelectTabSearchPatient; queryString = tabObj.getQueryString(); } } else if (tabControlPatientSelect.SelectedIndex == 1) { if (this.tabControlPatientSelect.TabPages["tabPageEmergencyPatient"].Controls.Count > 0) { PatientSelectTabEmergencyPatient tabObj = this.tabControlPatientSelect.TabPages["tabPageEmergencyPatient"].Controls[0] as PatientSelectTabEmergencyPatient; queryString = tabObj.getQueryString(); } } else if (tabControlPatientSelect.SelectedIndex == 2) { if (this.tabControlPatientSelect.TabPages["tabPageOperatePatient"].Controls.Count > 0) { PatientSelectTabOperatePatient tabObj = this.tabControlPatientSelect.TabPages["tabPageOperatePatient"].Controls[0] as PatientSelectTabOperatePatient; queryString = tabObj.getQueryString(); } } else if (tabControlPatientSelect.SelectedIndex == 3) { if (this.tabControlPatientSelect.TabPages["tabPageInPatient"].Controls.Count > 0) { PatientSelectTabInPatient tabObj = this.tabControlPatientSelect.TabPages["tabPageInPatient"].Controls[0] as PatientSelectTabInPatient; queryString = tabObj.getQueryString(); } } else if (tabControlPatientSelect.SelectedIndex == 4) { if (this.tabControlPatientSelect.TabPages["tabPageOutPatient"].Controls.Count > 0) { PatientSelectTabOutPatient tabObj = this.tabControlPatientSelect.TabPages["tabPageOutPatient"].Controls[0] as PatientSelectTabOutPatient; queryString = tabObj.getQueryString(); } } else if (tabControlPatientSelect.SelectedIndex == 5) { if (this.tabControlPatientSelect.TabPages["patientSelectTabExam"].Controls.Count > 0) { PatientSelectTabExam tabObj = this.tabControlPatientSelect.TabPages["patientSelectTabExam"].Controls[0] as PatientSelectTabExam; queryString = tabObj.getQueryString(); } } return queryString; } /// /// 클래스 외부에서 tabPageClearCheckBox 를 호출하기 위한 메서드 /// public override void SetClearCheckBox() { // 선택된 탭의 그리드 체크박스를 해제한다. tabPageClearCheckBox(tabControlPatientSelect.SelectedIndex); } /// /// 탭의 그리드에서 더블클릭하여 선택한 환자정보로 동의서 관리를 한다. /// /// The vo. public override void SetChangePID(PatListVO vo) { if (vo != null) { consentMain.ClearPreviewConsent(false); consentMain.ConsentExecuteInfo["patientId"] = vo.pid; consentMain.ConsentExecuteInfo["patientClnDate"] = vo.inDd.Replace("/", "").Replace("-", ""); consentMain.ConsentExecuteInfo["patientClnDept"] = vo.ordDeptCd; consentMain.ConsentExecuteInfo["patientOrdtype"] = vo.ordType; consentMain.ConsentExecuteInfo["cretno"] = vo.cretNo.ToString(); consentMain.ConsentExecuteInfo["userId"] = consentMain.ConsentExecuteInfo["loginUserId"]; consentMain.ConsentExecuteInfo["userName"] = consentMain.ConsentExecuteInfo["loginUserName"]; consentMain.ConsentExecuteInfo["opRsrvNo"] = vo.opRsrvNo; consentMain.UIControlsRefeash(vo.ordType); } } /// /// 탭의 그리드에서 체크된 환자리스트를 갖고 온다. /// /// public override List GetSelectedPatientList() { List patList = null; if (tabControlPatientSelect.SelectedIndex == 0) { if (this.tabControlPatientSelect.TabPages["tabPageSearchPatient"].Controls.Count > 0) { PatientSelectTabSearchPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageSearchPatient"].Controls[0] as PatientSelectTabSearchPatient; patList = searchPatient.GetCheckPatList(); } } else if (tabControlPatientSelect.SelectedIndex == 1) { if (this.tabControlPatientSelect.TabPages["tabPageEmergencyPatient"].Controls.Count > 0) { PatientSelectTabEmergencyPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageEmergencyPatient"].Controls[0] as PatientSelectTabEmergencyPatient; patList = searchPatient.GetCheckPatList(); } } else if (tabControlPatientSelect.SelectedIndex == 2) { if (this.tabControlPatientSelect.TabPages["tabPageOperatePatient"].Controls.Count > 0) { PatientSelectTabOperatePatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageOperatePatient"].Controls[0] as PatientSelectTabOperatePatient; patList = searchPatient.GetCheckPatList(); } } else if (tabControlPatientSelect.SelectedIndex == 3) { if (this.tabControlPatientSelect.TabPages["tabPageInPatient"].Controls.Count > 0) { PatientSelectTabInPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageInPatient"].Controls[0] as PatientSelectTabInPatient; patList = searchPatient.GetCheckPatList(); } } else if (tabControlPatientSelect.SelectedIndex == 4) { if (this.tabControlPatientSelect.TabPages["tabPageOutPatient"].Controls.Count > 0) { PatientSelectTabOutPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageOutPatient"].Controls[0] as PatientSelectTabOutPatient; patList = searchPatient.GetCheckPatList(); } } return patList; } /// /// 외래 탭으로 이동 /// /// The consent main. public override void pageMove_tabPageOutPatient(IConsentMain consentMain) { if (consentMain.ConsentExecuteInfo["userIOFlag"].Equals("I")) { this.tabControlPatientSelect.SelectedTab = this.tabControlPatientSelect.TabPages["tabPageInPatient"]; } else { this.tabControlPatientSelect.SelectedTab = this.tabControlPatientSelect.TabPages["tabPageOutPatient"]; } } } }