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