PatientListCtrl.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using CLIP.eForm.Consent.Dfh.UI.HospitalSvcRef;
  5. using System.Windows.Forms;
  6. namespace CLIP.eForm.Consent.Dfh.UI
  7. {
  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. {
  25. private IConsentMain consentMain = null;
  26. public PatientListCtrl()
  27. {
  28. InitializeComponent();
  29. }
  30. private void PatientListCtrl_Load(object sender, EventArgs e)
  31. {
  32. if (this.DesignMode || LicenseManager.UsageMode == LicenseUsageMode.Designtime)
  33. {
  34. return;
  35. }
  36. consentMain = ConsentMainControl.GetConsentMainInterface(this);
  37. consentMain.OnLoadPartControls += ConsentMain_OnLoadPartControls;
  38. }
  39. private void ConsentMain_OnLoadPartControls(object sender, EventArgs e)
  40. {
  41. if (this.DesignMode)
  42. {
  43. return;
  44. }
  45. IConsentMain consentMain = ConsentMainControl.GetConsentMainInterface(this);
  46. pageMove_tabPageOutPatient(consentMain);
  47. SetPatientListSplitPanelVisibility(consentMain);
  48. }
  49. private static void SetPatientListSplitPanelVisibility(IConsentMain consentMain)
  50. {
  51. if (!(string.IsNullOrEmpty(consentMain.ConsentExecuteInfo["patientListView"])) && consentMain.ConsentExecuteInfo["patientListView"].Equals("Y"))
  52. {
  53. consentMain.SetPatientListSplitPanelVisibility(true);
  54. }
  55. else
  56. {
  57. consentMain.SetPatientListSplitPanelVisibility(false);
  58. }
  59. }
  60. // 탭 선택을 할때마다 선택된 체크박스는 초기화 한다.
  61. private void tabControlPatientSelect_SelectedIndexChanged(object sender, EventArgs e)
  62. {
  63. tabPageClearCheckBox(tabControlPatientSelect.SelectedIndex);
  64. }
  65. private void tabPageClearCheckBox(int tabIndex)
  66. {
  67. if (tabIndex == 0)
  68. {
  69. if (this.tabControlPatientSelect.TabPages["tabPageSearchPatient"].Controls.Count > 0)
  70. {
  71. PatientSelectTabSearchPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageSearchPatient"].Controls[0] as PatientSelectTabSearchPatient;
  72. searchPatient.ClearCheckBox();
  73. }
  74. }
  75. else if (tabIndex == 1)
  76. {
  77. if (this.tabControlPatientSelect.TabPages["tabPageEmergencyPatient"].Controls.Count > 0)
  78. {
  79. PatientSelectTabEmergencyPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageEmergencyPatient"].Controls[0] as PatientSelectTabEmergencyPatient;
  80. searchPatient.ClearCheckBox();
  81. }
  82. }
  83. else if (tabIndex == 2)
  84. {
  85. if (this.tabControlPatientSelect.TabPages["tabPageOperatePatient"].Controls.Count > 0)
  86. {
  87. PatientSelectTabOperatePatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageOperatePatient"].Controls[0] as PatientSelectTabOperatePatient;
  88. searchPatient.ClearCheckBox();
  89. }
  90. }
  91. else if (tabIndex == 3)
  92. {
  93. if (this.tabControlPatientSelect.TabPages["tabPageInPatient"].Controls.Count > 0)
  94. {
  95. PatientSelectTabInPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageInPatient"].Controls[0] as PatientSelectTabInPatient;
  96. searchPatient.ClearCheckBox();
  97. }
  98. }
  99. else if (tabIndex == 4)
  100. {
  101. if (this.tabControlPatientSelect.TabPages["tabPageOutPatient"].Controls.Count > 0)
  102. {
  103. PatientSelectTabOutPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageOutPatient"].Controls[0] as PatientSelectTabOutPatient;
  104. searchPatient.ClearCheckBox();
  105. }
  106. }
  107. }
  108. // 선택된 탭의 그리드 체크박스를 해제한다.
  109. public override void SetClearCheckBox()
  110. {
  111. tabPageClearCheckBox(tabControlPatientSelect.SelectedIndex);
  112. }
  113. // 탭의 그리드에서 더블클릭하여 선택한 환자정보로 동의서 관리를 한다.
  114. public override void SetChangePID(PatListVO vo)
  115. {
  116. if (vo != null)
  117. {
  118. // TODO..
  119. // 동의서가 view일 경우
  120. // if (consentMain.viewStatus && vo.orddeptcd != "2120000000")
  121. // {
  122. // DialogResult result = MessageBox.Show(string.Format(Properties.Resources.msg_confirm_tempsave)
  123. //, string.Format(Properties.Resources.msg_caption_confirm),
  124. //MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information);
  125. //
  126. //if (result == DialogResult.Yes)
  127. //{
  128. //consentMain.TempSave();
  129. //}
  130. //else if (result == DialogResult.Cancel)
  131. //{
  132. //return;
  133. //}
  134. //}
  135. consentMain.ConsentExecuteInfo["patientNo"] = vo.pid;
  136. consentMain.ConsentExecuteInfo["clnDate"] = vo.indd.Replace("/", "").Replace("-", "");
  137. consentMain.ConsentExecuteInfo["clnDept"] = vo.orddeptcd;
  138. consentMain.ConsentExecuteInfo["visitType"] = vo.ordtype;
  139. consentMain.ConsentExecuteInfo["cretno"] = vo.cretno.ToString();
  140. consentMain.ConsentExecuteInfo["userNo"] = vo.doctorid;
  141. consentMain.ConsentExecuteInfo["userName"] = vo.doctornm;
  142. // 외래일 경우에는 주치의 정보가 세팅이 되고 외래가 아닐경우 최초 로그인자 정보가 세팅이 되어야 한다.
  143. if (!string.IsNullOrEmpty(vo.ordtype) && !vo.ordtype.Equals("O"))
  144. {
  145. consentMain.ConsentExecuteInfo["userNo"] = consentMain.ConsentExecuteInfo["loginUserNo"];
  146. }
  147. consentMain.UIControlsRefeash(vo.ordtype);
  148. }
  149. }
  150. // 탭의 그리드에서 체크된 환자리스트를 갖고 온다.
  151. public override List<PatListVO> GetSelectedPatientList
  152. {
  153. get
  154. {
  155. if (tabControlPatientSelect.SelectedIndex == 0)
  156. {
  157. if (this.tabControlPatientSelect.TabPages["tabPageSearchPatient"].Controls.Count > 0)
  158. {
  159. PatientSelectTabSearchPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageSearchPatient"].Controls[0] as PatientSelectTabSearchPatient;
  160. return searchPatient.GetCheckPatList();
  161. }
  162. }
  163. else if (tabControlPatientSelect.SelectedIndex == 1)
  164. {
  165. if (this.tabControlPatientSelect.TabPages["tabPageEmergencyPatient"].Controls.Count > 0)
  166. {
  167. PatientSelectTabEmergencyPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageEmergencyPatient"].Controls[0] as PatientSelectTabEmergencyPatient;
  168. return searchPatient.GetCheckPatList();
  169. }
  170. }
  171. else if (tabControlPatientSelect.SelectedIndex == 2)
  172. {
  173. if (this.tabControlPatientSelect.TabPages["tabPageOperatePatient"].Controls.Count > 0)
  174. {
  175. PatientSelectTabOperatePatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageOperatePatient"].Controls[0] as PatientSelectTabOperatePatient;
  176. return searchPatient.GetCheckPatList();
  177. }
  178. }
  179. else if (tabControlPatientSelect.SelectedIndex == 3)
  180. {
  181. if (this.tabControlPatientSelect.TabPages["tabPageInPatient"].Controls.Count > 0)
  182. {
  183. PatientSelectTabInPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageInPatient"].Controls[0] as PatientSelectTabInPatient;
  184. return searchPatient.GetCheckPatList();
  185. }
  186. }
  187. else if (tabControlPatientSelect.SelectedIndex == 4)
  188. {
  189. if (this.tabControlPatientSelect.TabPages["tabPageOutPatient"].Controls.Count > 0)
  190. {
  191. PatientSelectTabOutPatient searchPatient = this.tabControlPatientSelect.TabPages["tabPageOutPatient"].Controls[0] as PatientSelectTabOutPatient;
  192. return searchPatient.GetCheckPatList();
  193. }
  194. }
  195. return null;
  196. }
  197. }
  198. // 외래 탭으로 이동
  199. public override void pageMove_tabPageOutPatient(IConsentMain consentMain)
  200. {
  201. if (this.tabControlPatientSelect.TabPages["tabPageOutPatient"].Controls.Count > 0)
  202. {
  203. this.tabControlPatientSelect.SelectedTab = this.tabControlPatientSelect.TabPages["tabPageOutPatient"];
  204. //PatientSelectTabOutPatient patientSelectTabOutPatient = this.tabControlPatientSelect.TabPages["tabPageOutPatient"].Controls[0] as PatientSelectTabOutPatient;
  205. //patientSelectTabOutPatient.BindDataGridRows();
  206. }
  207. }
  208. }
  209. }