123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396 |
- /* ---------------------------------------------------------------------
-
- 중환자실 재원 환자 현황 전광판 (SMMNV14000_중환자실전광판17.xfm - JScript )
-
- - Version :
- 1) : Ver.1.00.01
- : Create By YeoWon Lim
- : 2015.05.02
- ----------------------------------------------------------------------*/
- var submitIntervalTime = 10 * 1000 ; // 10초
- var showGrdTime = 5 * 1000 ; //5초
- var DelTempFolderTime = 12 * 60 * 60 * 1000 ; // 1일
- var clockID ; // 하단줄의 시간 interval
- var grdintervalID ; // 그리드 조회 interval
- var grdintervalCallID ; // 호출함수 조회 interval
- /**
- * @group :
- * @ver : 2009.04.09
- * @by : 임여원
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 중환자실 재원 환자 조회 화면 초기화 작업
- * @param :
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fInitialize(){
-
- model.removeNodeset("/root/main/oppatlist/oppatinfo");
- model.removeNodeset("/root/main/msglist/msginfo");
- model.refresh();
-
- fGetOpPatList(); //화면 디스플레이 없이 중환자 조회
- model.copyNode("/root/main/oppatlist","/root/main/oppatlist2"); //조회해온 내용 복사해서 화면에 display
- model.refresh();
- fSetGridSize(); //조회한 환자에 따라 그리드 사이즈 지정
-
- fSetCallGrdTimer();
- fChngGrdCellColor(); // 장기이식병실은 그리드를 노란색으로 표시하기 위해서 호출
- //setWindowSize(); //(20080130) 테스트중
-
- }
- /**
- * @group :
- * @ver : 2009.04.09
- * @by : 임여원
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 지정된 시간간격마다 그리드데이터 조회(화면 호출시 처음만 호출된다)
- * @param :
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fSetCallGrdTimer()
- {
- DelTempFolderID = window.setInterval("fdelTempFolers();", DelTempFolderTime); //12시간
- // 타이머를 생성. 타이머가 생성되면 2 번째 파라메터에 지정된 시간이 될때마다 1번째 파라메터에 지정한 명령문이 수행.
- grdintervalCallID = window.setInterval("fGetOpPatList()", submitIntervalTime); //10초마다 화면 디스플레이 없이 중환자 조회
-
- grdintervalID = window.setInterval("fSetGrdTimer()", showGrdTime); //5초
-
- // 시간은 1초 단위로 갱신: 무한루프=> 0.1로 변경
- clockID = window.setInterval("clock();", 100);
- }
- /**
- * @group :
- * @ver : 2009.05.21
- * @by : 김영학
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 하루에 한번씩 로그파일을 지워준다
- * @param :
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fdelTempFolers(){
- var fso = new ActiveXObject("Scripting.FileSystemObject");
- var fldr = fso.GetFolder("C:\\Program Files\\himed\\components\\TrustForm\\TFViewer");
-
- var fc = new Enumerator(fldr.SubFolders);
- for(;!fc.atEnd(); fc.moveNext())
- {
- fc.item().Delete();
- }
- }
- /**
- * @group :
- * @ver : 2009.04.09
- * @by : 임여원
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 지정된 시간간격마다 그리드데이터 조회
- * @param :
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fSetGrdTimer(){
- var sPath = "/root/main/oppatlist2";
- var ndCnt=getNodesetCount(sPath + "/oppatinfo");
- var ndCnt2=getNodesetCount(sPath + "/oppatinfo2");
-
- var totalCnt=parseInt(ndCnt)+parseInt(ndCnt2);
- if(totalCnt>22)
- {
- fGetOpPartrtnPatListSub1();
- //조회된 환자수가 22명 (중환자실 최대환자수) 초과일 때 한개씩 상단 올리고, 빈그리드 일때 조회
- }
- else
- {
- model.copyNode("/root/main/oppatlist","/root/main/oppatlist2"); //조회해온 내용 복사해서 화면에 display
- model.refresh();
- fSetGridSize(); //그리드 사이즈 지정
- }
- }
- /**
- * @group :
- * @ver : 2009.04.09
- * @by : 임여원
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 중환자실 명칭 가져오는 함수
- * @param :
- * @param :
- * @return :
- * @---------------------------------------------------
- */
-
- function fGetIcuPatRoomNm(){
-
- var dsmacaddr = getUserInfo("macaddr").toUpperCase( );
-
- if (dsmacaddr != "") {
- dsmacaddr = dsmacaddr.substr(0,2) + "-" + dsmacaddr.substr(2,2) + "-" + dsmacaddr.substr(4,2) + "-" + dsmacaddr.substr(6,2) + "-" + dsmacaddr.substr(8,2)+ "-" + dsmacaddr.substr(10,2);
- }
-
- model.makeValue("/root/main/cond/dsmacaddr", dsmacaddr);
- model.makeValue("/root/main/cond/dipaddr", getUserInfo("ipaddr"));
-
- model.removenode("/root/send");
- model.makeValue("/root/send/dsmacaddr", model.getValue("/root/main/cond/dsmacaddr"));
- model.makeValue("/root/send/dipaddr", model.getValue("/root/main/cond/dipaddr"));
- model.makeValue("/root/send/orddeptcd",model.getValue("/root/hidden/wgopeninfo/wgopeninfolist/orddeptcd"));
- model.makeValue("/root/send/reqflag",model.getValue("/root/hidden/wgopeninfo/wgopeninfolist/reqflag"));
-
- if(submit("TRMNV14002")==true)
- {
- model.makeValue("/root/hidden/wgopeninfo/wgopeninfolist/orddeptnm",model.getValue("/root/main/wgopeninfo/wgopeninfolist/orddeptnm"));
- model.makeValue("/root/hidden/wgopeninfo/wgopeninfolist/ordroomnm",model.getValue("/root/main/wgopeninfo/wgopeninfolist/ordroomnm"));
- }
- }
-
- /**
- * @group :
- * @ver : 2009.04.09
- * @by : 임여원
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : DataTime 조회.
- * @param :
- * @param :
- * @return :
- * @---------------------------------------------------
- */
-
- function clock() {
- var datetime = getCurrentDateTime().substring(0, 4) + "년 "
- + getCurrentDateTime().substring(4, 6) + "월 "
- + getCurrentDateTime().substring(6, 8) + "일 "
- + getCurrentDate().toDate().getDayOfWeek("K") + "요일 "
- + getCurrentDateTime().substring(8, 11) + "시 "
- + getCurrentDateTime().substring(11, 13) + "분 "
- + getCurrentDateTime().substring(13, 15) + "초" ;
- model.setValue("/root/hidden/time", datetime) ;
- model.refresh();
- }
- /**
- * @group :
- * @ver : 2009.04.09
- * @by : 임여원
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 자료를 상단으로 올리는 기능
- * @param :
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fGetOpPartrtnPatListSub1(){
- model.removenode("/root/main/oppatlist/oppatinfo[1]") ;
- model.removenode("/root/main/oppatlist/oppatinfo2[1]") ;
-
- //model.setValue("/root/init/grdStatus1", getNodesetCount("/root/main/oppatlist/oppatinfo") );
- model.refresh() ;
-
- if ( getNodesetCount("/root/main/oppatlist/oppatinfo") == 0 && getNodesetCount("/root/main/oppatlist/oppatinfo2") == 0 ) {
- //model.setValue("/root/init/grdStatus1", "E:"+grdintervalIDTop );
- //model.refresh() ;
-
- model.copyNode("/root/main/oppatlist","/root/main/oppatlist2"); //조회해온 내용 복사해서 화면에 display
- model.refresh();
- fSetGridSize(); //그리드 사이즈 지정
-
- return;
- //window.clearInterval(grdintervalIDTop); //생성된 타이머 해체한다. (해제할 타이머의 id)
- }
- }
-
- /**
- * @group :
- * @ver : 2009.04.09
- * @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("중환자실 재원 현황 안내 프로그램 종료를 ", "Q004") ;
- if(answer == 6) {
-
- if (clockID != "") window.clearInterval(clockID);
- if (grdintervalCallID != "") window.clearInterval(grdintervalCallID);
- if (grdintervalID != "") window.clearInterval(grdintervalID);
- if (DelTempFolderID != "") window.clearInterval(DelTempFolderID);
- model.close() ;
- }
- }
- }
- function fCloseBoard(){
- if (clockID != "") window.clearInterval(clockID);
- if (grdintervalCallID != "") window.clearInterval(grdintervalCallID);
- if (grdintervalID != "") window.clearInterval(grdintervalID);
- if (DelTempFolderID != "") window.clearInterval(DelTempFolderID);
- model.close() ;
- }
- /**
- * @group :
- * @ver : 2009.04.09
- * @by : 임여원
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 중환자실 재원 환자 조회 (디스플레이 없이 )
- * @param :
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fGetOpPatList()
- {
- model.removeNodeset("/root/send/reqdata");
- model.makeValue("/root/send/reqdata/orddeptcd",model.getValue("/root/hidden/wgopeninfo/wgopeninfolist/orddeptcd"));
- model.makeValue("/root/send/reqdata/ordroomcd",model.getValue("/root/hidden/wgopeninfo/wgopeninfolist/ordroomcd"));
-
- model.refresh();
- submit("TRMNV14003",false);
- fGetIcuPatRoomNm(); //중환자실 명칭 가져오는 함수
- fChngGrdCellColor(); // 장기이식병실은 그리드를 노란색으로 표시하기 위해서 호출
- }
- /**
- * @group :
- * @ver : 2009.04.09
- * @by : 임여원
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 그리드 폰트 및 사이즈 지정해주는 함수
- * @param :
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fSetGridSize()
- {
- var sPath = "/root/main/oppatlist";
- var ndCnt = getNodesetCount(sPath + "/oppatinfo");
- var ndCnt2= getNodesetCount(sPath +" /oppatinfo2");
-
- var totalCnt=parseInt(ndCnt)+parseInt(ndCnt2); //총 환자수
-
- // 여러 단계로 나눠서 환자 수에 따라 그리드 폰트 크기와 사이즈를 정해줌
- if(totalCnt>=1 && totalCnt <=12)
- {
- grd_list.dataHeight=120;
- grd_list.allstyle("all","font-size")="38" //"34";
-
- grd_oppatinfo2.dataHeight=120;
- grd_oppatinfo2.allstyle("all","font-size")="38";
-
- }
-
- else if( totalCnt>=13 && totalCnt <=18)
- {
-
- grd_list.dataHeight=80;
- grd_list.allstyle("all","font-size")="35" //"33";
-
- grd_oppatinfo2.dataHeight=80;
- grd_oppatinfo2.allstyle("all","font-size")="35";
- }
- else if(totalCnt >=19)
- {
- grd_list.dataHeight=66;
- grd_list.allstyle("all","font-size")="29";
-
- grd_oppatinfo2.dataHeight=66;
- grd_oppatinfo2.allstyle("all","font-size")="29";
-
- }
-
- grd_list.rebuild();
- grd_oppatinfo2.rebuild();
- model.refresh();
- }
- /**
- * @group :
- * @ver : 2009.04.09
- * @by : 김영학
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 그리드 색을 바꿔준다.
- * @param :
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fChngGrdCellColor(){
- for(var currow = 1; currow < grd_list.rows; currow++){
- var color = model.getValue("/root/main/oppatlist/oppatinfo[" + currow + "]/color");
- if(isNull(color)){
- color = "ffffff";
- }
- grd_list.rowStyle(currow, "data", "background-color") = "#" + color;
- }
-
- for(var currow = 1; currow < grd_oppatinfo2.rows; currow++){
- var color = model.getValue("/root/main/oppatlist/oppatinfo2[" + currow + "]/color");
- if(isNull(color)){
- color = "ffffff";
- }
- grd_oppatinfo2.rowStyle(currow, "data", "background-color") = "#" + color;
- }
- grd_oppatinfo2.refresh();
- }
- /* ------------------------------------------------- */
- /* ------End Of List ------------------------------- */
- /* -------------------------------------------------- */
-
|