SMMNV08000.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  1. /* ---------------------------------------------------------------------
  2. 대기안내 환자진행현황 (대기안내공통 - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By YeoWon Lim
  6. : 2015.05.02
  7. ----------------------------------------------------------------------*/
  8. var submitIntervalTime = 5 * 1000 ; // 5초
  9. var showGrdTime = 4 * 1000 ; // 7초
  10. var showMsgTime = 10 * 1000 ; // 10초
  11. var clockID ; // 하단줄의 시간 interval
  12. var grdintervalID ; // 그리드 조회 interval
  13. var grdintervalIDTop ; // 그리드 상단 올리기 interval
  14. var grdintervalIDDelay ; // 지연
  15. var msgintervalID ; // msg 조회 interval
  16. var msgintervalIDTop ; // msg 상단 올리기 interval
  17. var msgintervalIDDelay ; // 지연
  18. var grdToggle;
  19. /**
  20. * @group :
  21. * @ver : 2008.02.13
  22. * @by : 임여원
  23. * @---------------------------------------------------
  24. * @type : function
  25. * @access : public
  26. * @desc : 대기안내 환자조회화면초기화
  27. * @param :
  28. * @param :
  29. * @return :
  30. * @---------------------------------------------------
  31. */
  32. function fInitialize(){
  33. model.setValue("/root/main/cond/bizdd", getCurrentDate());
  34. if(model.getValue("/root/hidden/wgopeninfo/wgopeninfolist/centcd") == "-" ) {
  35. // model.setValue("/root/main/waitroominfo/waitroomtitle/deptnm", "진료안내 (" + model.getValue("/root/hidden/wgopeninfo/wgopeninfolist/orddeptnm") + ")");
  36. model.setValue("/root/main/waitroominfo/waitroomtitle/deptnm", model.getValue("/root/hidden/wgopeninfo/wgopeninfolist/orddeptnm"));
  37. } else {
  38. // model.setValue("/root/main/waitroominfo/waitroomtitle/deptnm", "진료안내 (" + model.getValue("/root/hidden/wgopeninfo/wgopeninfolist/centnm") + ")");
  39. model.setValue("/root/main/waitroominfo/waitroomtitle/deptnm", model.getValue("/root/hidden/wgopeninfo/wgopeninfolist/centnm"));
  40. }
  41. if(model.getValue("/root/hidden/wgopeninfo/wgopeninfolist/centcd") == "2361300000" || model.getValue("/root/hidden/wgopeninfo/wgopeninfolist/centcd") == "2362800000" || model.getValue("/root/hidden/wgopeninfo/wgopeninfolist/centcd") == "2361308000" ) {
  42. model.setValue("/root/hidden/callmsg", "당일검사 결과에 따라 진료가 지연될 수 있습니다.");
  43. tar_callmsg.refresh();
  44. }
  45. model.removenode("/root/main/waitroominfo/waitroominfolist");
  46. model.refresh();
  47. fSetTimer();
  48. }
  49. /**
  50. * @group :
  51. * @ver : 2007.10.09
  52. * @by : 문창곤
  53. * @---------------------------------------------------
  54. * @type : function
  55. * @access : public
  56. * @desc : 지정된 시간간격마다 그리드데이터 조회(화면 호출시 처음만 호출된다)
  57. * @param :
  58. * @param :
  59. * @return :
  60. * @---------------------------------------------------
  61. */
  62. function fSetTimer(){
  63. clockID = window.setInterval("clock();" , 1000); //1초
  64. // grdintervalID = window.setInterval("fGetOpdWaitRoomInfo();", submitIntervalTime * 2); //10초
  65. // grdToggle = window.setInterval("fGetOpdWaitRoomToggle();", submitIntervalTime ); //10초
  66. grdintervalID = window.setInterval("fGetOpdWaitRoomInfo();", 8000);
  67. grdToggle = window.setInterval("fGetOpdWaitRoomToggle();", 8000 );
  68. }
  69. /* --------------------------------------------------*/
  70. /* type : function */
  71. /* access : public */
  72. /* desc : 외래 대기실 진행현황 조회 */
  73. /* --------------------------------------------------*/
  74. function fGetOpdWaitRoomInfo(){
  75. var sPath = "/root/main/opdinfo";
  76. model.removenode("/root/send");
  77. model.makeValue("/root/send/bizdd", model.getValue("/root/main/cond/bizdd"));
  78. model.makeValue("/root/send/centcd", model.getValue("/root/hidden/wgopeninfo/wgopeninfolist/centcd"));
  79. model.makeValue("/root/send/orddeptcd", model.getValue("/root/hidden/wgopeninfo/wgopeninfolist/orddeptcd"));
  80. // model.makeValue("/root/send/centcd", '-');
  81. // model.makeValue("/root/send/orddeptcd", '2120000000');
  82. model.makeValue("/root/send/subdeptcd", model.getValue("/root/hidden/wgopeninfo/wgopeninfolist/subdeptcd"));
  83. model.makeValue("/root/send/ordroomcd", model.getValue("/root/hidden/wgopeninfo/wgopeninfolist/ordroomcd"));
  84. model.makeValue("/root/send/orddrid", model.getValue("/root/main/ordroominfo/ordroominfolist/orddrid"));
  85. setErrorOff();
  86. if (submit("TRMNV08001", false)) {
  87. model.setValue("/root/main/cond/bizdd", getCurrentDate());
  88. var i, z, y;
  89. var itemid;
  90. var drnm, chgdrnm;
  91. var patnm, chgpatnm;
  92. for(i = 1; i <= getNodesetCount("/root/main/waitroominfo/waitroominfolist") && i <= 15; i++ ) {
  93. itemid = "room" + i;
  94. drnm = ""; //20100104-kys(세로로 표현 진료의)
  95. chgdrnm = ""; //20100104-kys(세로로 표현 진료의)
  96. patnm = ""; //환자명사이에 space를 넣어서 조회되게-20100108-kys
  97. chgpatnm = ""; //환자명사이에 space를 넣어서 조회되게-20100108-kys
  98. //진료실 숫자만 표기-kys-20100105
  99. //document.all.item(itemid+"_roomnm").value = model.getValue("/root/main/waitroominfo/waitroominfolist[" + i + "]/ordroomhngnm");
  100. document.all.item(itemid+"_roomnumb").value = model.getValue("/root/main/waitroominfo/waitroominfolist[" + i + "]/ordroomnumb");
  101. // document.all.item(itemid+"_roomnm").value = model.getValue("/root/main/waitroominfo/waitroominfolist[" + i + "]/ordroomnm");
  102. //document.all.item(itemid+"_drnm").value = model.getValue("/root/main/waitroominfo/waitroominfolist[" + i + "]/orddrnm");
  103. document.all.item(itemid+"_delytm").value = model.getValue("/root/main/waitroominfo/waitroominfolist[" + i + "]/delytm");
  104. drnm = model.getValue("/root/main/waitroominfo/waitroominfolist[" + i + "]/orddrnm"); //20100104-kys(세로로 표현 진료의)
  105. for(z = 0; z < drnm.length; z++){
  106. if(z + 1 == drnm.length){
  107. chgdrnm = chgdrnm + drnm.substring(z , z + 1);
  108. }else{
  109. chgdrnm = chgdrnm + drnm.substring(z , z + 1) + String.fromCharCode(10);
  110. }
  111. }
  112. document.all.item(itemid+"_drnm").value = chgdrnm;
  113. var m = 1;
  114. for(m = 1; m <= 5; m++ ) {
  115. document.all.item(itemid+"_pat"+m).value = "";
  116. document.all.item(itemid+"_pid"+m).value = ""; //등록번호추가-kys-20091228
  117. }
  118. var k = 1;
  119. for(j = 1; j <= getNodesetCount("/root/main/waitroominfo/waitroompatlist"); j++ ) {
  120. if(model.getValue("/root/main/waitroominfo/waitroominfolist[" + i + "]/orddrid") == model.getValue("/root/main/waitroominfo/waitroompatlist[" + j + "]/orddrid") && k <=5) {
  121. //환자명사이에 space를 넣어서 조회되게-20100108-kys
  122. patnm = model.getValue("/root/main/waitroominfo/waitroompatlist[" + j + "]/patnm");
  123. for(y = 0; y < patnm.length; y++){
  124. if(y + 1 == patnm.length){
  125. chgpatnm = chgpatnm + patnm.substring(y , y + 1);
  126. }else{
  127. chgpatnm = chgpatnm + patnm.substring(y , y + 1) + " ";
  128. }
  129. }
  130. document.all.item(itemid+"_pat"+k).value = chgpatnm;
  131. patnm = "";
  132. chgpatnm = "";
  133. //document.all.item(itemid+"_pat"+k).value = model.getValue("/root/main/waitroominfo/waitroompatlist[" + j + "]/patnm");
  134. document.all.item(itemid+"_pid"+k).value = model.getValue("/root/main/waitroominfo/waitroompatlist[" + j + "]/pid"); //등록번호추가-kys-20091228
  135. k = k+1;
  136. }
  137. }
  138. }
  139. } else {
  140. model.setValue("/root/init/grdStatus","grd:장애");
  141. model.removeNodeset(sPath);
  142. model.refresh();
  143. }
  144. }
  145. /* --------------------------------------------------*/
  146. /* type : function */
  147. /* access : public */
  148. /* desc : 외래 대기실 진행현황 조회 */
  149. /* --------------------------------------------------*/
  150. var tempTo = 1;
  151. function fGetOpdWaitRoomToggle(){
  152. for(i = 1; i <= 15; i++ ) {
  153. itemid = "room" + i;
  154. document.all.item(itemid).visible = false;
  155. }
  156. if (getNodesetCount("/root/main/waitroominfo/waitroominfolist") <= 5 ) {
  157. for(i = 1; i <= getNodesetCount("/root/main/waitroominfo/waitroominfolist"); i++ ) {
  158. itemid = "room" + i;
  159. document.all.item(itemid).visible = true;
  160. }
  161. } else if (getNodesetCount("/root/main/waitroominfo/waitroominfolist") <= 10 ) {
  162. if (tempTo == 1 || tempTo == 3) {
  163. for(i = 1; i <= getNodesetCount("/root/main/waitroominfo/waitroominfolist") && i<=5; i++ ) {
  164. itemid = "room" + i;
  165. document.all.item(itemid).visible = true;
  166. }
  167. tempTo = 2;
  168. } else {
  169. for(i = 6; i <= getNodesetCount("/root/main/waitroominfo/waitroominfolist") && i<=10; i++ ) {
  170. itemid = "room" + i;
  171. document.all.item(itemid).visible = true;
  172. }
  173. tempTo = 1;
  174. }
  175. } else {
  176. if (tempTo == 1) {
  177. for(i = 1; i <= getNodesetCount("/root/main/waitroominfo/waitroominfolist") && i<=5; i++ ) {
  178. itemid = "room" + i;
  179. document.all.item(itemid).visible = true;
  180. }
  181. tempTo = 2;
  182. } else if (tempTo == 2) {
  183. for(i = 6; i <= getNodesetCount("/root/main/waitroominfo/waitroominfolist") && i<=10; i++ ) {
  184. itemid = "room" + i;
  185. document.all.item(itemid).visible = true;
  186. }
  187. tempTo = 3;
  188. } else {
  189. for(i = 11; i <= getNodesetCount("/root/main/waitroominfo/waitroominfolist") && i<=15; i++ ) {
  190. itemid = "room" + i;
  191. document.all.item(itemid).visible = true;
  192. }
  193. tempTo = 1;
  194. }
  195. }
  196. }
  197. /**
  198. * @group :
  199. * @ver : 2007.10.09
  200. * @by : 문창곤
  201. * @---------------------------------------------------
  202. * @type : function
  203. * @access : public
  204. * @desc : DataTime 조회.
  205. * @param :
  206. * @param :
  207. * @return :
  208. * @---------------------------------------------------
  209. */
  210. function clock() {
  211. var tdate = getCurrentDateTime().substring(0, 4) + "년 "
  212. + getCurrentDateTime().substring(4, 6) + "월 "
  213. + getCurrentDateTime().substring(6, 8) + "일 "
  214. + getCurrentDate().toDate().getDayOfWeek("K") + "요일 "
  215. var ttime = getCurrentDateTime().substring(8, 11) + ":"
  216. + getCurrentDateTime().substring(11, 13)
  217. model.setValue("/root/hidden/date", tdate) ;
  218. model.setValue("/root/hidden/time", ttime) ;
  219. model.refresh();
  220. }
  221. /**
  222. * @group :
  223. * @ver : 2007.10.09
  224. * @by : 문창곤
  225. * @---------------------------------------------------
  226. * @type : function
  227. * @access : public
  228. * @desc : 'ESC' or 'Q' 키를 누르면 타이머 해제 및 윈도우 닫기
  229. * @param :
  230. * @param :
  231. * @return :
  232. * @---------------------------------------------------
  233. */
  234. function fClearTimer(){
  235. var keyPressed = event.keyCode ;
  236. if(keyPressed == 27 || keyPressed == 81) // 'ESC' or 'Q' 키가 눌려진 경우
  237. {
  238. var answer = messageBox("진행현황 안내 프로그램 종료합니다.", "I") ;
  239. if(answer == 1) {
  240. fCloseBoard();
  241. }
  242. }
  243. }
  244. function fCloseBoard(){
  245. if (clockID != "") window.clearInterval(clockID);
  246. if (msgintervalID != "") window.clearInterval(msgintervalID);
  247. if (grdintervalID != "") window.clearInterval(grdintervalID);
  248. if (msgintervalIDTop != "") window.clearInterval(msgintervalIDTop);
  249. if (grdintervalIDTop != "") window.clearInterval(grdintervalIDTop);
  250. if (grdToggle != "") window.clearInterval(grdToggle);
  251. model.close() ;
  252. }