SMMNV00300.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398
  1. /**
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 진료지원 - 검사실대기환자현황(40) ( SMMNV00200_검사실대기환자현황(40).xrw - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. - Author : 이창록
  7. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  8. **/
  9. var inquiryTime = 5 * 1000 ; // 5초 (재조회시간)
  10. var clockTime = 100 ; // 1초 (시계)
  11. var clockID ;
  12. var paramipaddr="";
  13. var paramgrpflag="";
  14. var paramroomdcd="";
  15. var paramorddeptcd="";
  16. var testmsg;
  17. var testmsgtm;
  18. var nextPatListSrch;
  19. var maxGroup = 12; //대대기에 표시할 진료실 최대 개수
  20. var perGroup = 3; //대대기 한 화면에 표시할 진료실 개수
  21. var tempTo;
  22. /**
  23. * @group :
  24. * @ver : 2010.05.19
  25. * @by : 이창록
  26. * @---------------------------------------------------
  27. * @type : function
  28. * @access : public
  29. * @desc : 대기안내 환자조회화면초기화
  30. * @param :
  31. * @param :
  32. * @return :
  33. * @---------------------------------------------------
  34. */
  35. function fInitialize(){
  36. setWindowSize();
  37. clockID = window.setInterval("clock();" , clockTime); //1초
  38. fOrdRoomDispItemSrch();
  39. fPatMsgSrch();
  40. nextPatListSrch= window.setInterval("fTestRoomWaitPatList()",5000);
  41. msgSrch = window.setInterval("fNextPatMsgSrch()",5000);
  42. }
  43. /**
  44. * @group :
  45. * @ver : 2010.05.19
  46. * @by : 이창록
  47. * @---------------------------------------------------
  48. * @type : function
  49. * @access : public
  50. * @desc : DataTime 조회.
  51. * @param :
  52. * @param :
  53. * @return :
  54. * @---------------------------------------------------
  55. */
  56. function clock() {
  57. var tdate = getCurrentDateTime().substring(0, 4) + "년 "
  58. + getCurrentDateTime().substring(4, 6) + "월 "
  59. + getCurrentDateTime().substring(6, 8) + "일 "
  60. + getCurrentDate().toDate().getDayOfWeek("K") + "요일 ";
  61. var ttime = getCurrentDateTime().substring(8, 11) + ":"
  62. + getCurrentDateTime().substring(11, 13);
  63. model.setValue("/root/hidden/date", tdate) ;
  64. model.setValue("/root/hidden/time", ttime) ;
  65. model.refresh();
  66. }
  67. /**
  68. * @group :
  69. * @ver : 2010.05.19
  70. * @by : 이창록
  71. * @---------------------------------------------------
  72. * @type : function
  73. * @access : public
  74. * @desc : 전광판에 표시할 항목 조회.
  75. * @param :Parm_Flag=> grd_rebuild 여부,Parm_Cnt=>default로 보여주는 row 수
  76. * @param :Parm_NextPageFlag=>그룹페이지여부,Parm_GrpPageNum=>그룹수
  77. * @return :
  78. * @---------------------------------------------------
  79. */
  80. function fOrdRoomDispItemSrch(){
  81. if(checkOpener()){
  82. paramipaddr =opener.javascript.getParameter("paramipaddr");
  83. paramroomdcd =opener.javascript.getParameter("paramroomcd");
  84. paramgrpflag =opener.javascript.getParameter("paramgrpflag");
  85. paramorddeptcd =opener.javascript.getParameter("paramorddeptcd");
  86. }else{
  87. paramipaddr =getUserInfo("ipaddr");
  88. paramorddeptcd =getUserInfo("dutplcecd");
  89. }
  90. model.makeValue("/root/send/reqdata/orddeptcd" ,paramorddeptcd);
  91. model.makeValue("/root/send/reqdata/ipaddr" ,paramipaddr);
  92. model.makeValue("/root/send/reqdata/dispflag" ,"L");
  93. model.makeValue("/root/send/reqdata/grpflag" ,paramgrpflag);
  94. if(submit("TRMNV00102")){
  95. var waitimgdispyn = model.getValue("/root/init/ordroominfo/ordroomdispiteminfo/waitimgdispyn");
  96. if(waitimgdispyn=="Y"){
  97. img_his012.attribute("visibility")="visible";
  98. }else{
  99. img_his012.attribute("visibility")="hidden";
  100. }
  101. model.removeNodeset("root/init_copy/ordroominfo/testroombaseinfo/testroominfo");
  102. model.makeNode("root/init_copy/ordroominfo/testroombaseinfo/testroominfo");
  103. var depthngnm = model.getValue("/root/init/ordroominfo/testroombaseinfo/testroominfo/depthngnm");
  104. if( depthngnm!=model.getValue("/root/cond/ordroominfo/depthngnm")){
  105. model.setValue("/root/cond/ordroominfo/depthngnm",depthngnm);
  106. }
  107. var i, z, y;
  108. var itemid;
  109. for(i = 1; i <= getNodesetCount("/root/init/ordroominfo/testroombaseinfo/testroominfo") && i <= 3; i++ ) {
  110. itemid = "room1" + i;
  111. var roomnm = model.getValue("/root/init/ordroominfo/testroombaseinfo/testroominfo[" + i + "]/roomnm");
  112. document.all.item(itemid+"_roomnumb").value = roomnm ;
  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 = "";
  117. document.all.item(itemid+"_patmsg"+m).value = "";
  118. document.all.item(itemid+"_seq"+m).attribute("background-color")="#000044";
  119. document.all.item(itemid+"_seq"+m).attribute("color")="#ffffff";
  120. document.all.item(itemid+"_pat"+m).attribute("background-color")="#000044";
  121. document.all.item(itemid+"_pat"+m).attribute("color")="#ffffff";
  122. document.all.item(itemid+"_pid"+m).attribute("background-color")="#000044";
  123. document.all.item(itemid+"_pid"+m).attribute("color")="#ffffff";
  124. document.all.item(itemid+"_patmsg"+m).attribute("background-color")="#000044";
  125. document.all.item(itemid+"_patmsg"+m).attribute("color")="#ffffff";
  126. }
  127. var k = 1;
  128. for(j = 1; j <= getNodesetCount("/root/init/ordroominfo/ordroompatlist"); j++ ) {
  129. if(model.getValue("/root/init/ordroominfo/testroombaseinfo/testroominfo[" + i + "]/roomcd") == model.getValue("/root/init/ordroominfo/ordroompatlist[" + j + "]/excuroomcd") && k <=5) { //한 그룹에 표시할 환자수
  130. document.all.item(itemid+"_pat"+k).value = model.getValue("/root/init/ordroominfo/ordroompatlist[" + j + "]/starpatnm");
  131. document.all.item(itemid+"_pid"+k).value = model.getValue("/root/init/ordroominfo/ordroompatlist[" + j + "]/pid");
  132. var infocmt = model.getValue("/root/init/ordroominfo/ordroompatlist[" + j + "]/infocmt");
  133. var cmt1 = "검사중";
  134. var cmt2 = "진료중입니다.";
  135. if((infocmt==cmt1)||(infocmt==cmt2)){
  136. document.all.item(itemid+"_seq"+k).refresh();
  137. document.all.item(itemid+"_seq"+k).attribute("background-color")="#660000";
  138. document.all.item(itemid+"_seq"+k).attribute("color")="#ffff00";
  139. document.all.item(itemid+"_pat"+k).attribute("background-color")="#660000";
  140. document.all.item(itemid+"_pat"+k).attribute("color")="#ffff00";
  141. document.all.item(itemid+"_pid"+k).attribute("background-color")="#660000";
  142. document.all.item(itemid+"_pid"+k).attribute("color")="#ffff00";
  143. document.all.item(itemid+"_patmsg"+k).attribute("background-color")="#660000";
  144. document.all.item(itemid+"_patmsg"+k).attribute("color")="#ffff00";
  145. }
  146. document.all.item(itemid+"_patmsg"+k).value = infocmt;
  147. k = k+1;
  148. }
  149. }
  150. if(i==1){
  151. copyNodesetType("root/init_copy/ordroominfo/testroombaseinfo/testroominfo","root/init/ordroominfo/testroombaseinfo/testroominfo["+i+"]","replace");
  152. }else{
  153. copyNodesetType("root/init_copy/ordroominfo/testroombaseinfo/testroominfo","root/init/ordroominfo/testroombaseinfo/testroominfo["+i+"]","after");
  154. }
  155. }
  156. }
  157. var RollTestMsg = model.getValue("/root/init/ordroominfo/msginfo/testroompatmsglist[1]/msg");
  158. var RollTestMsgFromTm = model.getValue("/root/init/ordroominfo/msginfo/testroompatmsglist[1]/msgfromtm");
  159. var RollTestMsgToTm = model.getValue("/root/init/ordroominfo/msginfo/testroompatmsglist[1]/msgtotm");
  160. var CurrenTm = getCurrentTime().substr(0,4);
  161. if((RollTestMsg!="")&&(RollTestMsgFromTm!="9999")&&(RollTestMsgToTm!="9999")){
  162. if((RollTestMsgFromTm <=CurrenTm)&&(RollTestMsgToTm >=CurrenTm)){
  163. model.setValue("/root/hidden/callmsg",RollTestMsg);
  164. }else{
  165. model.setValue("/root/hidden/callmsg",model.getValue("/root/init/ordroominfo/msginfo/testroompatmsglist[2]/msg"));
  166. }
  167. }else{
  168. model.setValue("/root/hidden/callmsg",model.getValue("/root/init/ordroominfo/msginfo/testroompatmsglist/msg"));
  169. }
  170. model.refresh();
  171. }
  172. /**
  173. * @group :
  174. * @ver : 2010.05.19
  175. * @by : 이창록
  176. * @---------------------------------------------------
  177. * @type : function
  178. * @access : public
  179. * @desc : 'ESC' or 'Q' 키를 누르면 타이머 해제 및 윈도우 닫기
  180. * @param :
  181. * @param :
  182. * @return :
  183. * @---------------------------------------------------
  184. */
  185. function fClearTimer(){
  186. var keyPressed = event.keyCode ;
  187. if(keyPressed == 27 || keyPressed == 81) // 'ESC' or 'Q' 키가 눌려진 경우
  188. {
  189. var answer = messageBox("진행현황 안내 프로그램 종료합니다.", "I") ;
  190. if(answer == 1) {
  191. fCloseBoard();
  192. }
  193. }
  194. }
  195. function fCloseBoard(){
  196. if (clockID != "") window.clearInterval(clockID);
  197. if (nextPatListSrch != "") window.clearInterval(nextPatListSrch);
  198. model.close();
  199. }
  200. /**
  201. * @group :
  202. * @ver : 2010.05.19
  203. * @by : 이창록
  204. * @---------------------------------------------------
  205. * @type : function
  206. * @access : public
  207. * @desc : 전광판 메세지
  208. * @param :
  209. * @param :
  210. * @return :
  211. * @---------------------------------------------------
  212. */
  213. function fMsgMove(){
  214. testmsgtm = 10;
  215. testmsg = model.getValue("/root/hidden/callmsg");
  216. var str1 ="<body bgcolor=#CCECFF SCROLL=no leftmargin=0 topmargin=10 marginwidth=0 marginheight=0><marquee Scrollamount=";
  217. var str2 ="><font face=돋움체 color=#000000 b style=' font-size:25pt;' ><b>";
  218. var str3 ="</b></font></marquee></body>";
  219. //문서의 기존 내용을 삭제
  220. brs_msg.Document.open();
  221. //신규 문서 내용 적용
  222. brs_msg.Document.write(str1 +testmsgtm+ str2 + testmsg + str3);
  223. }
  224. function fPatMsgMove(){
  225. var patmsgtm = 400;
  226. var patmsg = model.getValue("/root/init/ordroominfo/msginfo/patindlmsglist/msg");
  227. var str1 ="<body bgcolor=#CCECFF SCROLL=no leftmargin=0 topmargin=10 marginwidth=0 marginheight=55><marquee direction=right SCROLLDELAY=";
  228. var str2 ="><font face=돋움체 color=#000000 b style=' font-size:15pt;' ><b>";
  229. var str3 ="</b></font></marquee></body>";
  230. //문서의 기존 내용을 삭제
  231. brs_patmsg.Document.open();
  232. //신규 문서 내용 적용
  233. brs_patmsg.Document.write(str1 +"UP"+ str2 + patmsg + str3);
  234. }
  235. /**
  236. * @group :
  237. * @ver : 2010.05.19
  238. * @by : 이창록
  239. * @---------------------------------------------------
  240. * @type : function
  241. * @access : public
  242. * @desc : 다음 대기실에 대기환자 조회
  243. * @param :
  244. * @param :
  245. * @return :
  246. * @---------------------------------------------------
  247. */
  248. function fTestRoomWaitPatList(){
  249. var mainNode = getNodesetCount("/root/init/ordroominfo/testroombaseinfo/testroominfo");
  250. var init_copyNode = getNodesetCount("/root/init_copy/ordroominfo/testroombaseinfo/testroominfo");
  251. var CapChgCnt = Math.round(mainNode/3)-1;//test
  252. var i = parseInt(init_copyNode)+1;
  253. var nextNodeCnt = i+3;
  254. if(mainNode!=init_copyNode){
  255. for(var mCnt=i; mCnt < nextNodeCnt; mCnt++){
  256. var d =(mCnt-parseInt(init_copyNode));
  257. itemid = "room1" + d;
  258. var roomnm = model.getValue("/root/init/ordroominfo/testroombaseinfo/testroominfo[" + mCnt + "]/roomnm");
  259. document.all.item(itemid+"_roomnumb").value = roomnm ;
  260. var m = 1;
  261. for(m = 1; m <= 5; m++ ) { //한 그룹에 표시할 환자수
  262. document.all.item(itemid+"_pat"+m).value = "";
  263. document.all.item(itemid+"_pid"+m).value = "";
  264. document.all.item(itemid+"_patmsg"+m).value = "";
  265. document.all.item(itemid+"_seq"+m).attribute("background-color")="#000044";
  266. document.all.item(itemid+"_seq"+m).attribute("color")="#ffffff";
  267. document.all.item(itemid+"_pat"+m).attribute("background-color")="#000044";
  268. document.all.item(itemid+"_pat"+m).attribute("color")="#ffffff";
  269. document.all.item(itemid+"_pid"+m).attribute("background-color")="#000044";
  270. document.all.item(itemid+"_pid"+m).attribute("color")="#ffffff";
  271. document.all.item(itemid+"_patmsg"+m).attribute("background-color")="#000044";
  272. document.all.item(itemid+"_patmsg"+m).attribute("color")="#ffffff";
  273. }
  274. var k = 1;
  275. for(j = 1; j <= getNodesetCount("/root/init/ordroominfo/ordroompatlist"); j++ ) {
  276. if(model.getValue("/root/init/ordroominfo/testroombaseinfo/testroominfo[" + mCnt + "]/roomcd") == model.getValue("/root/init/ordroominfo/ordroompatlist[" + j + "]/excuroomcd") && k <=5) { //한 그룹에 표시할 환자수
  277. document.all.item(itemid+"_pat"+k).value = model.getValue("/root/init/ordroominfo/ordroompatlist[" + j + "]/starpatnm");
  278. document.all.item(itemid+"_pid"+k).value = model.getValue("/root/init/ordroominfo/ordroompatlist[" + j + "]/pid");
  279. var infocmt = model.getValue("/root/init/ordroominfo/ordroompatlist[" + j + "]/infocmt");
  280. var cmt1 = "검사중";
  281. var cmt2 = "진료중입니다.";
  282. if((infocmt==cmt1)||(infocmt==cmt2)){
  283. document.all.item(itemid+"_seq"+k).attribute("background-color")="#660000";
  284. document.all.item(itemid+"_seq"+k).attribute("color")="#ffff00";
  285. document.all.item(itemid+"_pat"+k).attribute("background-color")="#660000";
  286. document.all.item(itemid+"_pat"+k).attribute("color")="#ffff00";
  287. document.all.item(itemid+"_pid"+k).attribute("background-color")="#660000";
  288. document.all.item(itemid+"_pid"+k).attribute("color")="#ffff00";
  289. document.all.item(itemid+"_patmsg"+k).attribute("background-color")="#660000";
  290. document.all.item(itemid+"_patmsg"+k).attribute("color")="#ffff00";
  291. }
  292. document.all.item(itemid+"_patmsg"+k).value = infocmt;
  293. k = k+1;
  294. }
  295. }
  296. copyNodesetType("root/init_copy/ordroominfo/testroombaseinfo/testroominfo","root/init/ordroominfo/testroombaseinfo/testroominfo["+mCnt+"]","after");
  297. }
  298. }else{
  299. fOrdRoomDispItemSrch();
  300. }
  301. }
  302. /**
  303. * @group :
  304. * @ver : 2010.05.19
  305. * @by : 이창록
  306. * @---------------------------------------------------
  307. * @type : function
  308. * @access : public
  309. * @desc : 전광판 메세지
  310. * @param :
  311. * @param :
  312. * @return :
  313. * @---------------------------------------------------
  314. */
  315. function fPatMsgSrch(){
  316. var patmsgCnt =getNodesetCount("/root/init/ordroominfo/msginfo/patindlmsglist");
  317. var patmsgCopyCnt =getNodesetCount("/root/init_msginfo/ordroominfo/msginfo/patindlmsglist");
  318. if(patmsgCnt > 0){
  319. model.removeNodeset("/root/init_msginfo/ordroominfo/msginfo/patindlmsglist");
  320. model.makeNode("/root/init_msginfo/ordroominfo/msginfo/patindlmsglist");
  321. for(var m=1;m<=2;m++){
  322. var itemid = "cap_patmsg" + m;
  323. var patmsg = model.getValue("/root/init/ordroominfo/msginfo/patindlmsglist["+m+"]/msg");
  324. document.all.item(itemid).value=patmsg;
  325. if(m==1){
  326. copyNodesetType("/root/init_msginfo/ordroominfo/msginfo/patindlmsglist","/root/init/ordroominfo/msginfo/patindlmsglist["+m+"]","replace");
  327. }else{
  328. copyNodesetType("/root/init_msginfo/ordroominfo/msginfo/patindlmsglist","/root/init/ordroominfo/msginfo/patindlmsglist["+m+"]","after");
  329. }
  330. }
  331. }
  332. }
  333. /**
  334. * @group :
  335. * @ver : 2010.05.19
  336. * @by : 이창록
  337. * @---------------------------------------------------
  338. * @type : function
  339. * @access : public
  340. * @desc : 전광판 다음메세지
  341. * @param :
  342. * @param :
  343. * @return :
  344. * @---------------------------------------------------
  345. */
  346. function fNextPatMsgSrch(){
  347. var patmsgCnt =getNodesetCount("/root/init/ordroominfo/msginfo/patindlmsglist");
  348. var patmsgCopyCnt =getNodesetCount("/root/init_msginfo/ordroominfo/msginfo/patindlmsglist");
  349. var i = parseInt(patmsgCopyCnt)+1;
  350. var nextNodeCnt = i+2;
  351. if(patmsgCopyCnt > 0){
  352. if(patmsgCnt!=patmsgCopyCnt){
  353. for(var mCnt=i;mCnt<nextNodeCnt;mCnt++){
  354. var m =mCnt-parseInt(patmsgCopyCnt);
  355. var itemid = "cap_patmsg" + m;
  356. var patmsg = model.getValue("/root/init/ordroominfo/msginfo/patindlmsglist["+mCnt+"]/msg");
  357. document.all.item(itemid).value=patmsg;
  358. copyNodesetType("/root/init_msginfo/ordroominfo/msginfo/patindlmsglist","/root/init/ordroominfo/msginfo/patindlmsglist["+mCnt+"]","after");
  359. }
  360. }else{
  361. fPatMsgSrch();
  362. }
  363. }
  364. }