/** - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ 진료지원 - 검사실대기환자현황(40) ( SMMNV00200_검사실대기환자현황(40).xrw - JScript ) - Version : 1) : Ver.1.00.01 - Author : 이창록 - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ **/ var inquiryTime = 5 * 1000 ; // 5초 (재조회시간) var clockTime = 100 ; // 1초 (시계) var clockID ; var paramipaddr=""; var paramgrpflag=""; var paramroomdcd=""; var paramorddeptcd=""; var testmsg; var testmsgtm; var nextPatListSrch; var maxGroup = 12; //대대기에 표시할 진료실 최대 개수 var perGroup = 3; //대대기 한 화면에 표시할 진료실 개수 var tempTo; /** * @group : * @ver : 2010.05.19 * @by : 이창록 * @--------------------------------------------------- * @type : function * @access : public * @desc : 대기안내 환자조회화면초기화 * @param : * @param : * @return : * @--------------------------------------------------- */ function fInitialize(){ setWindowSize(); clockID = window.setInterval("clock();" , clockTime); //1초 fOrdRoomDispItemSrch(); fPatMsgSrch(); nextPatListSrch= window.setInterval("fTestRoomWaitPatList()",5000); msgSrch = window.setInterval("fNextPatMsgSrch()",5000); } /** * @group : * @ver : 2010.05.19 * @by : 이창록 * @--------------------------------------------------- * @type : function * @access : public * @desc : DataTime 조회. * @param : * @param : * @return : * @--------------------------------------------------- */ function clock() { var tdate = getCurrentDateTime().substring(0, 4) + "년 " + getCurrentDateTime().substring(4, 6) + "월 " + getCurrentDateTime().substring(6, 8) + "일 " + getCurrentDate().toDate().getDayOfWeek("K") + "요일 "; var ttime = getCurrentDateTime().substring(8, 11) + ":" + getCurrentDateTime().substring(11, 13); model.setValue("/root/hidden/date", tdate) ; model.setValue("/root/hidden/time", ttime) ; model.refresh(); } /** * @group : * @ver : 2010.05.19 * @by : 이창록 * @--------------------------------------------------- * @type : function * @access : public * @desc : 전광판에 표시할 항목 조회. * @param :Parm_Flag=> grd_rebuild 여부,Parm_Cnt=>default로 보여주는 row 수 * @param :Parm_NextPageFlag=>그룹페이지여부,Parm_GrpPageNum=>그룹수 * @return : * @--------------------------------------------------- */ function fOrdRoomDispItemSrch(){ if(checkOpener()){ paramipaddr =opener.javascript.getParameter("paramipaddr"); paramroomdcd =opener.javascript.getParameter("paramroomcd"); paramgrpflag =opener.javascript.getParameter("paramgrpflag"); paramorddeptcd =opener.javascript.getParameter("paramorddeptcd"); }else{ paramipaddr =getUserInfo("ipaddr"); paramorddeptcd =getUserInfo("dutplcecd"); } model.makeValue("/root/send/reqdata/orddeptcd" ,paramorddeptcd); model.makeValue("/root/send/reqdata/ipaddr" ,paramipaddr); model.makeValue("/root/send/reqdata/dispflag" ,"L"); model.makeValue("/root/send/reqdata/grpflag" ,paramgrpflag); if(submit("TRMNV00102")){ var waitimgdispyn = model.getValue("/root/init/ordroominfo/ordroomdispiteminfo/waitimgdispyn"); if(waitimgdispyn=="Y"){ img_his012.attribute("visibility")="visible"; }else{ img_his012.attribute("visibility")="hidden"; } model.removeNodeset("root/init_copy/ordroominfo/testroombaseinfo/testroominfo"); model.makeNode("root/init_copy/ordroominfo/testroombaseinfo/testroominfo"); var depthngnm = model.getValue("/root/init/ordroominfo/testroombaseinfo/testroominfo/depthngnm"); if( depthngnm!=model.getValue("/root/cond/ordroominfo/depthngnm")){ model.setValue("/root/cond/ordroominfo/depthngnm",depthngnm); } var i, z, y; var itemid; for(i = 1; i <= getNodesetCount("/root/init/ordroominfo/testroombaseinfo/testroominfo") && i <= 3; i++ ) { itemid = "room1" + i; var roomnm = model.getValue("/root/init/ordroominfo/testroombaseinfo/testroominfo[" + i + "]/roomnm"); document.all.item(itemid+"_roomnumb").value = roomnm ; var m = 1; for(m = 1; m <= 5; m++ ) { //한 그룹에 표시할 환자수 document.all.item(itemid+"_pat"+m).value = ""; document.all.item(itemid+"_pid"+m).value = ""; document.all.item(itemid+"_patmsg"+m).value = ""; document.all.item(itemid+"_seq"+m).attribute("background-color")="#000044"; document.all.item(itemid+"_seq"+m).attribute("color")="#ffffff"; document.all.item(itemid+"_pat"+m).attribute("background-color")="#000044"; document.all.item(itemid+"_pat"+m).attribute("color")="#ffffff"; document.all.item(itemid+"_pid"+m).attribute("background-color")="#000044"; document.all.item(itemid+"_pid"+m).attribute("color")="#ffffff"; document.all.item(itemid+"_patmsg"+m).attribute("background-color")="#000044"; document.all.item(itemid+"_patmsg"+m).attribute("color")="#ffffff"; } var k = 1; for(j = 1; j <= getNodesetCount("/root/init/ordroominfo/ordroompatlist"); j++ ) { if(model.getValue("/root/init/ordroominfo/testroombaseinfo/testroominfo[" + i + "]/roomcd") == model.getValue("/root/init/ordroominfo/ordroompatlist[" + j + "]/excuroomcd") && k <=5) { //한 그룹에 표시할 환자수 document.all.item(itemid+"_pat"+k).value = model.getValue("/root/init/ordroominfo/ordroompatlist[" + j + "]/starpatnm"); document.all.item(itemid+"_pid"+k).value = model.getValue("/root/init/ordroominfo/ordroompatlist[" + j + "]/pid"); var infocmt = model.getValue("/root/init/ordroominfo/ordroompatlist[" + j + "]/infocmt"); var cmt1 = "검사중"; var cmt2 = "진료중입니다."; if((infocmt==cmt1)||(infocmt==cmt2)){ document.all.item(itemid+"_seq"+k).refresh(); document.all.item(itemid+"_seq"+k).attribute("background-color")="#660000"; document.all.item(itemid+"_seq"+k).attribute("color")="#ffff00"; document.all.item(itemid+"_pat"+k).attribute("background-color")="#660000"; document.all.item(itemid+"_pat"+k).attribute("color")="#ffff00"; document.all.item(itemid+"_pid"+k).attribute("background-color")="#660000"; document.all.item(itemid+"_pid"+k).attribute("color")="#ffff00"; document.all.item(itemid+"_patmsg"+k).attribute("background-color")="#660000"; document.all.item(itemid+"_patmsg"+k).attribute("color")="#ffff00"; } document.all.item(itemid+"_patmsg"+k).value = infocmt; k = k+1; } } if(i==1){ copyNodesetType("root/init_copy/ordroominfo/testroombaseinfo/testroominfo","root/init/ordroominfo/testroombaseinfo/testroominfo["+i+"]","replace"); }else{ copyNodesetType("root/init_copy/ordroominfo/testroombaseinfo/testroominfo","root/init/ordroominfo/testroombaseinfo/testroominfo["+i+"]","after"); } } } var RollTestMsg = model.getValue("/root/init/ordroominfo/msginfo/testroompatmsglist[1]/msg"); var RollTestMsgFromTm = model.getValue("/root/init/ordroominfo/msginfo/testroompatmsglist[1]/msgfromtm"); var RollTestMsgToTm = model.getValue("/root/init/ordroominfo/msginfo/testroompatmsglist[1]/msgtotm"); var CurrenTm = getCurrentTime().substr(0,4); if((RollTestMsg!="")&&(RollTestMsgFromTm!="9999")&&(RollTestMsgToTm!="9999")){ if((RollTestMsgFromTm <=CurrenTm)&&(RollTestMsgToTm >=CurrenTm)){ model.setValue("/root/hidden/callmsg",RollTestMsg); }else{ model.setValue("/root/hidden/callmsg",model.getValue("/root/init/ordroominfo/msginfo/testroompatmsglist[2]/msg")); } }else{ model.setValue("/root/hidden/callmsg",model.getValue("/root/init/ordroominfo/msginfo/testroompatmsglist/msg")); } model.refresh(); } /** * @group : * @ver : 2010.05.19 * @by : 이창록 * @--------------------------------------------------- * @type : function * @access : public * @desc : 'ESC' or 'Q' 키를 누르면 타이머 해제 및 윈도우 닫기 * @param : * @param : * @return : * @--------------------------------------------------- */ function fClearTimer(){ var keyPressed = event.keyCode ; if(keyPressed == 27 || keyPressed == 81) // 'ESC' or 'Q' 키가 눌려진 경우 { var answer = messageBox("진행현황 안내 프로그램 종료합니다.", "I") ; if(answer == 1) { fCloseBoard(); } } } function fCloseBoard(){ if (clockID != "") window.clearInterval(clockID); if (nextPatListSrch != "") window.clearInterval(nextPatListSrch); model.close(); } /** * @group : * @ver : 2010.05.19 * @by : 이창록 * @--------------------------------------------------- * @type : function * @access : public * @desc : 전광판 메세지 * @param : * @param : * @return : * @--------------------------------------------------- */ function fMsgMove(){ testmsgtm = 10; testmsg = model.getValue("/root/hidden/callmsg"); var str1 ="
"; //문서의 기존 내용을 삭제 brs_msg.Document.open(); //신규 문서 내용 적용 brs_msg.Document.write(str1 +testmsgtm+ str2 + testmsg + str3); } function fPatMsgMove(){ var patmsgtm = 400; var patmsg = model.getValue("/root/init/ordroominfo/msginfo/patindlmsglist/msg"); var str1 =""; //문서의 기존 내용을 삭제 brs_patmsg.Document.open(); //신규 문서 내용 적용 brs_patmsg.Document.write(str1 +"UP"+ str2 + patmsg + str3); } /** * @group : * @ver : 2010.05.19 * @by : 이창록 * @--------------------------------------------------- * @type : function * @access : public * @desc : 다음 대기실에 대기환자 조회 * @param : * @param : * @return : * @--------------------------------------------------- */ function fTestRoomWaitPatList(){ var mainNode = getNodesetCount("/root/init/ordroominfo/testroombaseinfo/testroominfo"); var init_copyNode = getNodesetCount("/root/init_copy/ordroominfo/testroombaseinfo/testroominfo"); var CapChgCnt = Math.round(mainNode/3)-1;//test var i = parseInt(init_copyNode)+1; var nextNodeCnt = i+3; if(mainNode!=init_copyNode){ for(var mCnt=i; mCnt < nextNodeCnt; mCnt++){ var d =(mCnt-parseInt(init_copyNode)); itemid = "room1" + d; var roomnm = model.getValue("/root/init/ordroominfo/testroombaseinfo/testroominfo[" + mCnt + "]/roomnm"); document.all.item(itemid+"_roomnumb").value = roomnm ; var m = 1; for(m = 1; m <= 5; m++ ) { //한 그룹에 표시할 환자수 document.all.item(itemid+"_pat"+m).value = ""; document.all.item(itemid+"_pid"+m).value = ""; document.all.item(itemid+"_patmsg"+m).value = ""; document.all.item(itemid+"_seq"+m).attribute("background-color")="#000044"; document.all.item(itemid+"_seq"+m).attribute("color")="#ffffff"; document.all.item(itemid+"_pat"+m).attribute("background-color")="#000044"; document.all.item(itemid+"_pat"+m).attribute("color")="#ffffff"; document.all.item(itemid+"_pid"+m).attribute("background-color")="#000044"; document.all.item(itemid+"_pid"+m).attribute("color")="#ffffff"; document.all.item(itemid+"_patmsg"+m).attribute("background-color")="#000044"; document.all.item(itemid+"_patmsg"+m).attribute("color")="#ffffff"; } var k = 1; for(j = 1; j <= getNodesetCount("/root/init/ordroominfo/ordroompatlist"); j++ ) { if(model.getValue("/root/init/ordroominfo/testroombaseinfo/testroominfo[" + mCnt + "]/roomcd") == model.getValue("/root/init/ordroominfo/ordroompatlist[" + j + "]/excuroomcd") && k <=5) { //한 그룹에 표시할 환자수 document.all.item(itemid+"_pat"+k).value = model.getValue("/root/init/ordroominfo/ordroompatlist[" + j + "]/starpatnm"); document.all.item(itemid+"_pid"+k).value = model.getValue("/root/init/ordroominfo/ordroompatlist[" + j + "]/pid"); var infocmt = model.getValue("/root/init/ordroominfo/ordroompatlist[" + j + "]/infocmt"); var cmt1 = "검사중"; var cmt2 = "진료중입니다."; if((infocmt==cmt1)||(infocmt==cmt2)){ document.all.item(itemid+"_seq"+k).attribute("background-color")="#660000"; document.all.item(itemid+"_seq"+k).attribute("color")="#ffff00"; document.all.item(itemid+"_pat"+k).attribute("background-color")="#660000"; document.all.item(itemid+"_pat"+k).attribute("color")="#ffff00"; document.all.item(itemid+"_pid"+k).attribute("background-color")="#660000"; document.all.item(itemid+"_pid"+k).attribute("color")="#ffff00"; document.all.item(itemid+"_patmsg"+k).attribute("background-color")="#660000"; document.all.item(itemid+"_patmsg"+k).attribute("color")="#ffff00"; } document.all.item(itemid+"_patmsg"+k).value = infocmt; k = k+1; } } copyNodesetType("root/init_copy/ordroominfo/testroombaseinfo/testroominfo","root/init/ordroominfo/testroombaseinfo/testroominfo["+mCnt+"]","after"); } }else{ fOrdRoomDispItemSrch(); } } /** * @group : * @ver : 2010.05.19 * @by : 이창록 * @--------------------------------------------------- * @type : function * @access : public * @desc : 전광판 메세지 * @param : * @param : * @return : * @--------------------------------------------------- */ function fPatMsgSrch(){ var patmsgCnt =getNodesetCount("/root/init/ordroominfo/msginfo/patindlmsglist"); var patmsgCopyCnt =getNodesetCount("/root/init_msginfo/ordroominfo/msginfo/patindlmsglist"); if(patmsgCnt > 0){ model.removeNodeset("/root/init_msginfo/ordroominfo/msginfo/patindlmsglist"); model.makeNode("/root/init_msginfo/ordroominfo/msginfo/patindlmsglist"); for(var m=1;m<=2;m++){ var itemid = "cap_patmsg" + m; var patmsg = model.getValue("/root/init/ordroominfo/msginfo/patindlmsglist["+m+"]/msg"); document.all.item(itemid).value=patmsg; if(m==1){ copyNodesetType("/root/init_msginfo/ordroominfo/msginfo/patindlmsglist","/root/init/ordroominfo/msginfo/patindlmsglist["+m+"]","replace"); }else{ copyNodesetType("/root/init_msginfo/ordroominfo/msginfo/patindlmsglist","/root/init/ordroominfo/msginfo/patindlmsglist["+m+"]","after"); } } } } /** * @group : * @ver : 2010.05.19 * @by : 이창록 * @--------------------------------------------------- * @type : function * @access : public * @desc : 전광판 다음메세지 * @param : * @param : * @return : * @--------------------------------------------------- */ function fNextPatMsgSrch(){ var patmsgCnt =getNodesetCount("/root/init/ordroominfo/msginfo/patindlmsglist"); var patmsgCopyCnt =getNodesetCount("/root/init_msginfo/ordroominfo/msginfo/patindlmsglist"); var i = parseInt(patmsgCopyCnt)+1; var nextNodeCnt = i+2; if(patmsgCopyCnt > 0){ if(patmsgCnt!=patmsgCopyCnt){ for(var mCnt=i;mCnt