PatientListCtrl.cs.svn-base 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using CLIP.eForm.Consent.UI.HospitalSvcRef;
  6. using System.Windows.Forms;
  7. namespace CLIP.eForm.Consent.UI {
  8. /// <summary>
  9. /// 환자목록 클래스
  10. /// </summary>
  11. /// <remarks>
  12. /// <p>[설계자]</p>
  13. /// <p> 클립소프트 연구소 홍지철 (jchong@clipsoft.co.kr)</p>
  14. /// <p>[원본 작성자]</p>
  15. /// <p> 클립소프트 기술부 이인희</p>
  16. /// <p>[수정 작성자]</p>
  17. /// <p> </p>
  18. /// <p>----------------------------------------------------------------------------------------</p>
  19. /// <p>[HISTORY]</p>
  20. /// <p> 2016-06-21 : 최초작성</p>
  21. /// <p>----------------------------------------------------------------------------------------</p>
  22. /// </remarks>
  23. public partial class PatientListCtrl : PatientListCtrlBase {
  24. private IConsentMain consentMain = null;
  25. private ConsentCommandCtrl commandControl = null;
  26. public PatientListCtrl() {
  27. InitializeComponent();
  28. }
  29. private void PatientListCtrl_Load(object sender, EventArgs e) {
  30. if (this.DesignMode || LicenseManager.UsageMode == LicenseUsageMode.Designtime) {
  31. return;
  32. }
  33. consentMain = ConsentMainControl.GetConsentMainInterface(this);
  34. commandControl = consentMain.ConsentCommandCtrl as ConsentCommandCtrl;
  35. consentMain.OnLoadPartControls += ConsentMain_OnLoadPartControls;
  36. }
  37. private void ConsentMain_OnLoadPartControls(object sender, EventArgs e) {
  38. if (this.DesignMode) {
  39. return;
  40. }
  41. IConsentMain consentMain = ConsentMainControl.GetConsentMainInterface(this);
  42. // Ku2.0 연동 시에는 이벤트 태우지 않음
  43. if (consentMain.ConsentExecuteInfo["printYN"].Equals("Y")) {
  44. return;
  45. }
  46. pageMove_tabPageOutPatient(consentMain);
  47. SetPatientListSplitPanelVisibility(consentMain);
  48. }
  49. /// <summary>
  50. /// patientListView 의 값에 따라 PatientList 패널 활성화 여부 설정
  51. /// </summary>
  52. /// <param name="consentMain">patientListView 를 가지고 있는 consentMain 인스턴스</param>
  53. private static void SetPatientListSplitPanelVisibility(IConsentMain consentMain) {
  54. if (!(string.IsNullOrEmpty(consentMain.ConsentExecuteInfo["enablePatientList"])) && consentMain.ConsentExecuteInfo["enablePatientList"].Equals("Y")) {
  55. consentMain.SetPatientListSplitPanelVisibility(true);
  56. } else {
  57. consentMain.SetPatientListSplitPanelVisibility(false);
  58. }
  59. }
  60. /// <summary>
  61. /// 탭 변경 이벤트
  62. /// </summary>
  63. /// <param name="sender">The source of the event.</param>
  64. /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
  65. private void tabControlPatientSelect_SelectedIndexChanged(object sender, EventArgs e) {
  66. // 탭 선택을 할때마다 선택된 체크박스는 초기화 한다.
  67. tabPageClearCheckBox(tabControlPatientSelect.SelectedIndex);
  68. bool isVisible = false;
  69. int tabIdx = this.getSelectedTabIndex();
  70. if (tabIdx == 4 || tabIdx == 0) {
  71. isVisible = true;
  72. }
  73. commandControl.setCompleteSaveButton(isVisible);
  74. consentMain.ReInitializeViewer();
  75. }
  76. /// <summary>
  77. /// 탭 페이지 내의 체크박스 초기화
  78. /// </summary>
  79. /// <param name="tabIndex">현재 선택된 탭 페이지</param>
  80. private void tabPageClearCheckBox(int tabIndex) {
  81. if (tabIndex == 0) {
  82. if (this.tabControlPatientSelect.TabPages["tabPageSearchPatient"].Controls.Count > 0) {
  83. PatientSelectTabSearchPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageSearchPatient"].Controls[0] as PatientSelectTabSearchPatient;
  84. //searchPatient.ClearCheckBox();
  85. }
  86. } else if (tabIndex == 1) {
  87. if (this.tabControlPatientSelect.TabPages["tabPageEmergencyPatient"].Controls.Count > 0) {
  88. PatientSelectTabEmergencyPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageEmergencyPatient"].Controls[0] as PatientSelectTabEmergencyPatient;
  89. searchPatient.ClearCheckBox();
  90. }
  91. } else if (tabIndex == 2) {
  92. if (this.tabControlPatientSelect.TabPages["tabPageOperatePatient"].Controls.Count > 0) {
  93. PatientSelectTabOperatePatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageOperatePatient"].Controls[0] as PatientSelectTabOperatePatient;
  94. searchPatient.ClearCheckBox();
  95. }
  96. } else if (tabIndex == 3) {
  97. if (this.tabControlPatientSelect.TabPages["tabPageInPatient"].Controls.Count > 0) {
  98. PatientSelectTabInPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageInPatient"].Controls[0] as PatientSelectTabInPatient;
  99. searchPatient.ClearCheckBox();
  100. }
  101. } else if (tabIndex == 4) {
  102. if (this.tabControlPatientSelect.TabPages["tabPageOutPatient"].Controls.Count > 0) {
  103. PatientSelectTabOutPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageOutPatient"].Controls[0] as PatientSelectTabOutPatient;
  104. searchPatient.ClearCheckBox();
  105. }
  106. }
  107. }
  108. public override int getSelectedTabIndex() {
  109. return tabControlPatientSelect.SelectedIndex;
  110. }
  111. public override Hashtable getQueryString(int selectedIndex) {
  112. Hashtable queryString = new Hashtable();
  113. if (tabControlPatientSelect.SelectedIndex == 0) {
  114. if (this.tabControlPatientSelect.TabPages["tabPageSearchPatient"].Controls.Count > 0) {
  115. PatientSelectTabSearchPatient tabObj = this.tabControlPatientSelect.TabPages["tabPageSearchPatient"].Controls[0] as PatientSelectTabSearchPatient;
  116. queryString = tabObj.getQueryString();
  117. }
  118. } else if (tabControlPatientSelect.SelectedIndex == 1) {
  119. if (this.tabControlPatientSelect.TabPages["tabPageEmergencyPatient"].Controls.Count > 0) {
  120. PatientSelectTabEmergencyPatient tabObj = this.tabControlPatientSelect.TabPages["tabPageEmergencyPatient"].Controls[0] as PatientSelectTabEmergencyPatient;
  121. queryString = tabObj.getQueryString();
  122. }
  123. } else if (tabControlPatientSelect.SelectedIndex == 2) {
  124. if (this.tabControlPatientSelect.TabPages["tabPageOperatePatient"].Controls.Count > 0) {
  125. PatientSelectTabOperatePatient tabObj = this.tabControlPatientSelect.TabPages["tabPageOperatePatient"].Controls[0] as PatientSelectTabOperatePatient;
  126. queryString = tabObj.getQueryString();
  127. }
  128. } else if (tabControlPatientSelect.SelectedIndex == 3) {
  129. if (this.tabControlPatientSelect.TabPages["tabPageInPatient"].Controls.Count > 0) {
  130. PatientSelectTabInPatient tabObj = this.tabControlPatientSelect.TabPages["tabPageInPatient"].Controls[0] as PatientSelectTabInPatient;
  131. queryString = tabObj.getQueryString();
  132. }
  133. } else if (tabControlPatientSelect.SelectedIndex == 4) {
  134. if (this.tabControlPatientSelect.TabPages["tabPageOutPatient"].Controls.Count > 0) {
  135. PatientSelectTabOutPatient tabObj = this.tabControlPatientSelect.TabPages["tabPageOutPatient"].Controls[0] as PatientSelectTabOutPatient;
  136. queryString = tabObj.getQueryString();
  137. }
  138. } else if (tabControlPatientSelect.SelectedIndex == 5) {
  139. if (this.tabControlPatientSelect.TabPages["patientSelectTabExam"].Controls.Count > 0) {
  140. PatientSelectTabExam tabObj = this.tabControlPatientSelect.TabPages["patientSelectTabExam"].Controls[0] as PatientSelectTabExam;
  141. queryString = tabObj.getQueryString();
  142. }
  143. }
  144. return queryString;
  145. }
  146. /// <summary>
  147. /// 클래스 외부에서 tabPageClearCheckBox 를 호출하기 위한 메서드
  148. /// </summary>
  149. public override void SetClearCheckBox() {
  150. // 선택된 탭의 그리드 체크박스를 해제한다.
  151. tabPageClearCheckBox(tabControlPatientSelect.SelectedIndex);
  152. }
  153. /// <summary>
  154. /// 탭의 그리드에서 더블클릭하여 선택한 환자정보로 동의서 관리를 한다.
  155. /// </summary>
  156. /// <param name="vo">The vo.</param>
  157. public override void SetChangePID(PatListVO vo) {
  158. if (vo != null) {
  159. consentMain.ClearPreviewConsent(false);
  160. consentMain.ConsentExecuteInfo["patientId"] = vo.pid;
  161. consentMain.ConsentExecuteInfo["patientClnDate"] = vo.inDd.Replace("/", "").Replace("-", "");
  162. consentMain.ConsentExecuteInfo["patientClnDept"] = vo.ordDeptCd;
  163. consentMain.ConsentExecuteInfo["patientOrdtype"] = vo.ordType;
  164. consentMain.ConsentExecuteInfo["cretno"] = vo.cretNo.ToString();
  165. consentMain.ConsentExecuteInfo["userId"] = consentMain.ConsentExecuteInfo["loginUserId"];
  166. consentMain.ConsentExecuteInfo["userName"] = consentMain.ConsentExecuteInfo["loginUserName"];
  167. consentMain.ConsentExecuteInfo["opRsrvNo"] = vo.opRsrvNo;
  168. consentMain.UIControlsRefeash(vo.ordType);
  169. }
  170. }
  171. /// <summary>
  172. /// 탭의 그리드에서 체크된 환자리스트를 갖고 온다.
  173. /// </summary>
  174. /// <returns></returns>
  175. public override List<PatListVO> GetSelectedPatientList() {
  176. List<PatListVO> patList = null;
  177. if (tabControlPatientSelect.SelectedIndex == 0) {
  178. if (this.tabControlPatientSelect.TabPages["tabPageSearchPatient"].Controls.Count > 0) {
  179. PatientSelectTabSearchPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageSearchPatient"].Controls[0] as PatientSelectTabSearchPatient;
  180. patList = searchPatient.GetCheckPatList();
  181. }
  182. } else if (tabControlPatientSelect.SelectedIndex == 1) {
  183. if (this.tabControlPatientSelect.TabPages["tabPageEmergencyPatient"].Controls.Count > 0) {
  184. PatientSelectTabEmergencyPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageEmergencyPatient"].Controls[0] as PatientSelectTabEmergencyPatient;
  185. patList = searchPatient.GetCheckPatList();
  186. }
  187. } else if (tabControlPatientSelect.SelectedIndex == 2) {
  188. if (this.tabControlPatientSelect.TabPages["tabPageOperatePatient"].Controls.Count > 0) {
  189. PatientSelectTabOperatePatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageOperatePatient"].Controls[0] as PatientSelectTabOperatePatient;
  190. patList = searchPatient.GetCheckPatList();
  191. }
  192. } else if (tabControlPatientSelect.SelectedIndex == 3) {
  193. if (this.tabControlPatientSelect.TabPages["tabPageInPatient"].Controls.Count > 0) {
  194. PatientSelectTabInPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageInPatient"].Controls[0] as PatientSelectTabInPatient;
  195. patList = searchPatient.GetCheckPatList();
  196. }
  197. } else if (tabControlPatientSelect.SelectedIndex == 4) {
  198. if (this.tabControlPatientSelect.TabPages["tabPageOutPatient"].Controls.Count > 0) {
  199. PatientSelectTabOutPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageOutPatient"].Controls[0] as PatientSelectTabOutPatient;
  200. patList = searchPatient.GetCheckPatList();
  201. }
  202. }
  203. return patList;
  204. }
  205. /// <summary>
  206. /// 외래 탭으로 이동
  207. /// </summary>
  208. /// <param name="consentMain">The consent main.</param>
  209. public override void pageMove_tabPageOutPatient(IConsentMain consentMain) {
  210. if (consentMain.ConsentExecuteInfo["userIOFlag"].Equals("I")) {
  211. this.tabControlPatientSelect.SelectedTab = this.tabControlPatientSelect.TabPages["tabPageInPatient"];
  212. } else {
  213. this.tabControlPatientSelect.SelectedTab = this.tabControlPatientSelect.TabPages["tabPageOutPatient"];
  214. }
  215. }
  216. }
  217. }