SMMNV99999.js 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. /* ---------------------------------------------------------------------
  2. 입간판 전문의 진료안내
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By dhkim
  6. : 2009.09.16
  7. ----------------------------------------------------------------------*/
  8. // global변수
  9. var grdintervalID ; // 그리드 토글조회 interval
  10. var researchID ; // 재조회 interval
  11. var tmpflag = 1;
  12. var ip = app.clientIp;
  13. var deptcd = "";
  14. var centcd = "";
  15. var deptnm = "";
  16. var centnm = "";
  17. /**
  18. * @group :
  19. * @ver : 2009.09.16
  20. * @by : dhkim
  21. * @---------------------------------------------------
  22. * @type : function
  23. * @access : public
  24. * @desc : 화면초기화
  25. * @param :
  26. * @param :
  27. * @return :
  28. * @---------------------------------------------------
  29. */
  30. function fInitialize(){
  31. model.toggle("case1");
  32. //model.removeNodeset("/root/send");
  33. // 2010.05.24 강태훈 입간판 ip기준자료 세팅
  34. //입간판타이틀 조회
  35. fGetNursHardCdInfo("'SGN'", getCurrentDate());
  36. var crtDate = getCurrentDate();
  37. model.makeValue("/root/send/ipaddr" , ip);
  38. model.makeValue("/root/send/condition", crtDate);
  39. model.makeValue("/root/send/signbdyn", 'Y');
  40. // 2010.6.14 강태훈 화면에서 진료과 받아서 세팅
  41. centnm = model.getValue("/root/temp/centnm");
  42. deptnm = model.getValue("/root/temp/deptnm");
  43. centcd = model.getValue("/root/temp/centcd");
  44. deptcd = model.getValue("/root/temp/deptcd");
  45. if(centnm == null || centnm == "" || centnm == " " || centnm == "-"){
  46. model.setValue("/root/main/titlinfo/titlnm", deptnm + " 전문의 진료안내");
  47. }else{
  48. model.setValue("/root/main/titlinfo/titlnm", centnm + " 전문의 진료안내");
  49. }
  50. /* // 2010.5.24 강태훈 ip체크 후 진료과 이름 세팅
  51. var cnt = getNodesetCount("/root/code/codeinfo/codelist");
  52. for(var i=1;i<=cnt;i++){
  53. var tmpip = model.getValue("/root/code/codeinfo/codelist["+i+"]/cdid");
  54. var tmpnm = model.getValue("/root/code/codeinfo/codelist["+i+"]/cdnm");
  55. var tmpdeptcd = model.getValue("/root/code/codeinfo/codelist["+i+"]/supcdid");
  56. if(ip==tmpip){
  57. model.setValue("/root/main/titlinfo/titlnm", tmpnm);
  58. model.makeValue("/root/send/centcd", tmpdeptcd);
  59. deptcd = tmpdeptcd;
  60. }
  61. }
  62. */ cap_titlnm.refresh();
  63. //센터인지 일반진료과인지 조회
  64. //입간판타이틀 조회
  65. // if(!submit('TRMNV99901')){
  66. // messageBox('문제가 발생하여 타이틀조회를 실패하였습니다.', 'E');
  67. // return false;
  68. // }
  69. fSearch();
  70. // 2010.05.28 강태훈 일정 시간간격을 두고 재조회
  71. var reSearchIntervalTime = 12 * 60 * 60 * 1000 ;
  72. researchID = window.setInterval("fReSearch()", reSearchIntervalTime);
  73. }
  74. /**
  75. * @group :
  76. * @ver : 2009.09.16
  77. * @by : dhkim
  78. * @---------------------------------------------------
  79. * @type : function
  80. * @access : public
  81. * @desc : 진료일정조회
  82. * @param :
  83. * @param :
  84. * @return :
  85. * @---------------------------------------------------
  86. */
  87. function fSearch(){
  88. model.makeNode("/root/send/centcd");
  89. // deptcd = "2361300000";
  90. if(centcd == null || centcd == "" || centcd == " " || centcd == "-"){
  91. model.setValue("/root/send/centcd", deptcd);
  92. }else{
  93. model.setValue("/root/send/centcd", centcd);
  94. }
  95. model.setValue("/root/send/condition", getCurrentDate());
  96. //진료일정조회
  97. if(!submit('TRMNV99902')){
  98. messageBox('문제가 발생하여 진료일정조회를 실패하였습니다.', 'E');
  99. return false;
  100. }else{
  101. //그리드를 머지한다.
  102. datagrid1.mergeCol(datagrid1.colRef("depthngnm")) = true;
  103. datagrid1.mergeCol(datagrid1.colRef("usernm")) = false;
  104. datagrid1.mergeCol(datagrid1.colRef("am")) = false;
  105. datagrid1.mergeCol(datagrid1.colRef("pm")) = false;
  106. datagrid1.mergeCol(datagrid1.colRef("ordfild")) = false;
  107. //선택진료의사를 파란색으로 칠한다.
  108. var specordyn;
  109. for(var i = 1; i <= datagrid1.rows; i++){
  110. specordyn = model.getValue('/root/main/signboardinfo/signboardinfolist[' + i + ']/specordyn');
  111. if(specordyn == 'Y'){
  112. datagrid1.cellStyle('background-color', i, 1) = "#ccffff";
  113. datagrid1.cellStyle('background-color', i, 2) = "#ccffff";
  114. datagrid1.cellStyle('background-color', i, 3) = "#ccffff";
  115. datagrid1.cellStyle('background-color', i, 4) = "#ccffff";
  116. }else{
  117. datagrid1.cellStyle('background-color', i, 1) = 'transparent';
  118. datagrid1.cellStyle('background-color', i, 2) = 'transparent';
  119. datagrid1.cellStyle('background-color', i, 3) = 'transparent';
  120. datagrid1.cellStyle('background-color', i, 4) = 'transparent';
  121. }
  122. }
  123. // 전광판 줄이 17줄이 넘을 경우 10초 간격으로 화면이 바뀜.
  124. var listRow = getNodesetCount("/root/main/signboardinfo/signboardinfolist");
  125. var signRow = 17;
  126. if( listRow > signRow ){
  127. // 17줄(signRow) 초과하는 건 다음 그리드로 복사
  128. for(var i=signRow+1;i<=listRow;i++){
  129. model.makeValue("/root/main/signboardinfo/signboardinfolist2["+(i-signRow)+"]/depthngnm", model.getValue("/root/main/signboardinfo/signboardinfolist["+i+"]/depthngnm"));
  130. model.makeValue("/root/main/signboardinfo/signboardinfolist2["+(i-signRow)+"]/usernm", model.getValue("/root/main/signboardinfo/signboardinfolist["+i+"]/usernm"));
  131. model.makeValue("/root/main/signboardinfo/signboardinfolist2["+(i-signRow)+"]/specordyn", model.getValue("/root/main/signboardinfo/signboardinfolist["+i+"]/specordyn"));
  132. model.makeValue("/root/main/signboardinfo/signboardinfolist2["+(i-signRow)+"]/am", model.getValue("/root/main/signboardinfo/signboardinfolist["+i+"]/am"));
  133. model.makeValue("/root/main/signboardinfo/signboardinfolist2["+(i-signRow)+"]/pm", model.getValue("/root/main/signboardinfo/signboardinfolist["+i+"]/pm"));
  134. model.makeValue("/root/main/signboardinfo/signboardinfolist2["+(i-signRow)+"]/ordfild", model.getValue("/root/main/signboardinfo/signboardinfolist["+i+"]/ordfild"));
  135. }
  136. // 17줄 초과하는 건 grid1에서 삭제
  137. for(var i=signRow+1;i<=listRow;i++){
  138. datagrid1.removeRow();
  139. }
  140. datagrid1.rebuild();
  141. datagrid2.rebuild();
  142. //선택진료의사를 파란색으로 칠한다.
  143. var specordyn2;
  144. for(var i = 1; i <= datagrid2.rows; i++){
  145. specordyn2 = model.getValue('/root/main/signboardinfo/signboardinfolist2[' + i + ']/specordyn');
  146. if(specordyn2 == 'Y'){
  147. datagrid2.cellStyle('background-color', i, 1) = "#ccffff";
  148. datagrid2.cellStyle('background-color', i, 2) = "#ccffff";
  149. datagrid2.cellStyle('background-color', i, 3) = "#ccffff";
  150. datagrid2.cellStyle('background-color', i, 4) = "#ccffff";
  151. }else{
  152. datagrid2.cellStyle('background-color', i, 1) = 'transparent';
  153. datagrid2.cellStyle('background-color', i, 2) = 'transparent';
  154. datagrid2.cellStyle('background-color', i, 3) = 'transparent';
  155. datagrid2.cellStyle('background-color', i, 4) = 'transparent';
  156. }
  157. }
  158. // 17줄 넘을 경우 두 화면 번갈아가며 보여줌(10초 간격)
  159. var submitIntervalTime = 10 * 1000 ;
  160. grdintervalID = window.setInterval("fMoveList()", submitIntervalTime); //10초
  161. }
  162. }
  163. model.refresh();
  164. }
  165. /**
  166. * @group :
  167. * @ver : 2010.05.28
  168. * @by : sonickth
  169. * @---------------------------------------------------
  170. * @type : function
  171. * @access : public
  172. * @desc : 그리드 10초간격 번갈아 보여줌
  173. * @param :
  174. * @param :
  175. * @return :
  176. * @---------------------------------------------------
  177. */
  178. function fMoveList(){
  179. if(tmpflag == 1){
  180. button2.dispatch("onclick");
  181. }else{
  182. button1.dispatch("onclick");
  183. }
  184. tmpflag = tmpflag * -1;
  185. // window.clearInterval(grdintervalID);
  186. }
  187. /**
  188. * @group :
  189. * @ver : 2010.05.28
  190. * @by : sonickth
  191. * @---------------------------------------------------
  192. * @type : function
  193. * @access : public
  194. * @desc : 정해진 시간에 재조회
  195. * @param :
  196. * @param :
  197. * @return :
  198. * @---------------------------------------------------
  199. */
  200. function fReSearch(){
  201. fSearch();
  202. }
  203. /**
  204. * @group :
  205. * @ver :
  206. * @by :
  207. * @---------------------------------------------------
  208. * @type : function
  209. * @access : public
  210. * @desc : 'ESC' or 'Q' 키를 누르면 타이머 해제 및 윈도우 닫기
  211. * @param :
  212. * @param :
  213. * @return :
  214. * @---------------------------------------------------
  215. */
  216. function fClearTimer(){
  217. var keyPressed = event.keyCode ;
  218. if(keyPressed == 27 || keyPressed == 81) // 'ESC' or 'Q' 키가 눌려진 경우
  219. {
  220. var answer = messageBox("진행현황 안내 프로그램 종료합니다.", "I") ;
  221. if(answer == 1) {
  222. fCloseBoard();
  223. }
  224. }
  225. }
  226. function fCloseBoard(){
  227. if (researchID != "") window.clearInterval(researchID);
  228. if (grdintervalID != "") window.clearInterval(grdintervalID);
  229. model.close() ;
  230. }