/* 임상관찰기록(SMMNR00900.xfm - JScript ) - Version : 1) : Ver.1.00.01 */ var sCondPath = "/root/main/cond"; var xChartHeaderListPath = "/root/main/chartheaderlist"; var xStnddayClincObsRecListPath = "/root/main/clincobsrecinfo/stnddayclincobsrecinfo/stnddayclincobsreclist"; var xFormerdayClincObsRecListPath = "/root/main/clincobsrecinfo/formerclincobsrecinfo/formerclincobsreclist"; var xHoursClincObsRecList = "/root/main/clincobsrecinfo/hoursclincobsrecinfo/hoursclincobsreclist"; var xDaysClincObsRecList = "/root/main/clincobsrecinfo/daysclincobsrecinfo/daysclincobsreclist"; var xIntervalRecYNListPath = "/root/temp/clincobsrecinfo/intervalrecynlist"; var xClincObsRecListPath = "/root/temp/clincobsrecinfo/clincobsreclist"; var sAttrListPath = "/root/temp/clincobsrecinfo/attrlist"; var sAttrListPath1 = "/root/temp/clincobsrecinfo/attrlist1"; var xRecUserListPath = "/root/temp/clincobsrecinfo/recuserlist"; var xTMSettingListPath = "/root/temp/clincobsrecinfo/tmsettinglist"; var sAttrListTempPath = "/root/temp/attrinfo/attrlist"; var sAttrListInitPath = "/root/temp/initcmblnfo/initcmblist"; var xFormerIntervalRecYNListPath = "/root/temp/formerclincobsrecinfo/intervalrecynlist"; var xFormerClincObsRecListPath = "/root/temp/formerclincobsrecinfo/clincobsreclist"; var xFormerAttrListPath = "/root/temp/formerclincobsrecinfo/attrlist"; var xFormerAttrListPath1 = "/root/temp/formerclincobsrecinfo/attrlist1"; var xFormerRecUserListPath = "/root/temp/formerclincobsrecinfo/recuserlist"; var xPamInfoPath = "/root/main/paminfo/pamlist"; // 환자정보 var xDayCountListPath = "/root/main/daycountinfo/daycountlist"; var xFormerDayCountListPath = "/root/main/formerdaycountinfo/daycountlist"; var xResultPath = "/root/certtemp/recinfo"; var xResultAttrPath = "/root/certattrtemp/recattrinfo"; var xPathViewData = "/root/temp/clincobsrecinfo/rtnsigndata"; var xFormerRecPath = "/root/temp/formerclincobsrecinfo"; var sHeader = new Array(); var sFormerHeader = new Array(); var sPid = ""; // 환자번호 var sIndd = ""; // 입원일자 var sCretNo = ""; // 환자 일자별 일련번호 var sInstcd = ""; // 기관코드 var sIOFlag = ""; // 입원/외래 구분 var sWardCD = ""; // 병동코드 var sRoomCD = ""; // 병실코드 var sJobKindCD = ""; // 직급코드 var sIndschacptstat = ""; var sDschdd = ""; var sDayCountFlag = ""; var sPopUpMenuFlag = ""; var s4DateSrch = ""; var sViewerRecDD = ""; var sViewerFunc = "sign"; var sMakeChartInfo = new Array(); var sImageRecDD = ""; var sPatNm = ""; var sSexAge = ""; var sDutplcecd = ""; var sOrdDeptcd = ""; var sMedispclid = ""; var sUserFlag = ""; var sUserDeptCd = ""; var sUserId = ""; var sSpParamInfo = ""; var sParamInfo = ""; /** * @group : * @ver : 2007.06.27 * @by : 이은영 * @--------------------------------------------------- * @type : function * @access : public * @desc : 화면 초기화 * @param : * @return : * @--------------------------------------------------- */ function fInitialize(pFlag){ if(pFlag == "init"){ sParamInfo = ""; sSpParamInfo = ""; } browser1.visible = false; model.setValue(sCondPath+"/srchflag", "2"); sUserFlag = "2"; model.setValue(sCondPath+"/cmbstatusx", "0"); model.setValue(sCondPath+"/cmbstatusy", "0"); model.setValue(sCondPath+"/rectm","060000"); model.setValue(sCondPath+"/timeflag", "60"); model.setValue(sCondPath+"/vwctrl_button","24hours"); model.setValue(sCondPath+"/daycountinfo", "1 2 3 4 5 6"); model.setValue(sCondPath+"/formerdaycountinfo", "1 2 3 4 5 6"); // 환자정보 강제 세팅 **************************************************** model.setValue("/root/main/cond/pid", model.property("pid")); model.setValue("/root/main/cond/indd", model.property("indd")); model.setValue("/root/main/cond/cretno", model.property("cretno")); model.setValue("/root/main/cond/patnm", model.property("hngnm")); model.setValue("/root/main/cond/sexage", model.property("sexage")); model.setValue("/root/main/cond/orddeptnm", model.property("deptnm")); model.setValue("/root/main/cond/orddrnm", model.property("medispclnm")); model.setValue("/root/main/cond/wardroomnm", model.property("wardroomnm")); model.setValue("/root/main/cond/ordtype", "I"); model.setValue("/root/main/cond/indschacptstat", "A"); model.setValue("/root/main/cond/dschdd", "99991231"); var sRecdate = ""; var sRectime = ""; if(getCurrentTime().substr(0,4) < "0700"){ sRecdate = getDateCalc(getCurrentDate(),1,"-"); }else{ sRecdate = getCurrentDate(); } model.setValue(sCondPath+"/recdd",sRecdate); model.setValue(sCondPath+"/formerrecdd", getDateCalc(model.getValue(sCondPath+"/recdd"),1)); fSearchClincObsRec(); } /** * @group : * @ver : 2007.07.11 * @by : 이은영 * @--------------------------------------------------- * @type : function * @access : public * @desc : 이전/이후 날짜 Setting * @param : * @return : * @--------------------------------------------------- */ function fDateCalc(pFlag, pVWFlag, pTerm){ var sRecDT = model.getValue(sCondPath+"/recdd")+model.getValue(sCondPath+"/rectm"); switch(pVWFlag){ case "24hours" : var sTime = eval(model.getValue(sCondPath+"/timeflag")) * pTerm; sRecDT = sRecDT.toDate("YYYYMMDDhhmmss"); if(pFlag == "-"){ sRecDT.setMinutes(sRecDT.getMinutes() - sTime); }else{ sRecDT.getAddDate(sTime, "m"); } model.setValue(sCondPath+"/recdd",getDateTime(sRecDT,'기본').substr(0,8)); model.setValue(sCondPath+"/rectm",getDateTime(sRecDT,'기본').substr(8,6)); break; } fSearchClincObsRec(pVWFlag); } /** * @group : * @ver : 2007.07.11 * @by : 이은영 * @--------------------------------------------------- * @type : function * @access : public * @desc : 시작일자 계산 * @param : * @return : * @--------------------------------------------------- */ function fCalStartDate(pDate, pTimeFlag){ var sStartDT = pDate.toDate("YYYYMMDDhhmmss"); var sTime = ""; var sRemainder = 0; if(pTimeFlag != 1 ){ sRemainder = eval(pDate.substr(10,2))%pTimeFlag; } sStartDT.setMinutes(sStartDT.getMinutes()-sRemainder); return sStartDT; } /** * @group : * @ver : 2007.08.16 * @by : 이은영 * @--------------------------------------------------- * @type : function * @access : public * @desc : 그리드 Header 생성 * @param : * @return : * @--------------------------------------------------- */ function fCreateHeader(pFlag){ var sRecDT = ""; //var sChartCapNm = ""; var sGridCapNm = ""; var sTimeFlag = 0; var sCDay = new Array(); var sDayInfo = ""; var iDayRow = 0; var sDayCountInfo = ""; var sDateList = ""; sHeader[1] = new Array(); sHeader[2] = new Array(); sHeader[1][0] = "날 짜"; sHeader[2][0] = "시 간"; model.removenode("/root/send"); model.makeValue("/root/send/pid", sPid); model.makeValue("/root/send/indd", sIndd); model.makeValue("/root/send/cretno", sCretNo); model.makeValue("/root/send/instcd", sInstcd); model.makeValue("/root/send/ioflag", sIOFlag); switch(pFlag){ case "24hours" : sTimeFlag = eval(model.getValue(sCondPath+"/timeflag")); sRecDT = model.getValue(sCondPath+"/recdd")+model.getValue(sCondPath+"/rectm"); var sStartDT = fCalStartDate(sRecDT,sTimeFlag); var sTime = 0; for(var i=1; i<=25; i++){ if(i>1){ sStartDT = sStartDT.getAddDate(sTimeFlag,"m"); } sHeader[1][i] = getDateTime(sStartDT,'기본').substr(0,8); if(iDayRow == 0 || sCDay[iDayRow-1] != sHeader[1][i]){ sCDay[iDayRow] = sHeader[1][i]; iDayRow++; } sHeader[2][i] = getDateTime(sStartDT,'기본').substr(8,2); } for(var iRow=1; iRow<=2; iRow++){ // if(iRow == 2 && model.getValue(sCondPath+"/vwctrl_24hours") == "A") continue; for(var iCol=0; iCol<=24; iCol++){ if(iRow == 1){ // sChartCapNm += sHeader[iRow+1][iCol]; // day count if(iCol == 0){ sGridCapNm += sHeader[iRow][iCol]; // 년월일 }else{ sGridCapNm += sHeader[iRow][iCol].toDate("YYYYMMDD").getDateFormat("YYYY년 MM월 DD일")+ " ("+sHeader[iRow][iCol].toDate("YYYYMMDD").getDayOfWeek("k")+")"; } }else if(iRow == 2){ // 시 // sChartCapNm += sHeader[iRow][iCol]; sGridCapNm += sHeader[iRow][iCol]; if(iCol != 0){ sGridCapNm += "시"; // sChartCapNm += "시"; } } if(iCol != 24){ // if(iRow != 2) sChartCapNm += "^"; sGridCapNm += "^"; } } if(iRow != 2){ // if((iRow%2)== 1) sChartCapNm += "|"; sGridCapNm += "|"; } } // grd_24hoursheader.caption = sChartCapNm; grd_24hoursclincobsreclist.caption = sGridCapNm; break; } } /** * @group : * @ver : 2008.07.30 * @by : 양천덕 * @--------------------------------------------------- * @type : function * @access : public * @desc : * @param : 화면 초기화 초기화 * @return : * @--------------------------------------------------- */ function fTPRviewInit(){ model.removeNodeset(xHoursClincObsRecList); model.removeNodeset(xDaysClincObsRecList); model.removeNodeset(xStnddayClincObsRecListPath); model.removeNodeset(xFormerdayClincObsRecListPath); model.removeNodeset(xClincObsRecListPath); model.removeNodeset(xFormerRecPath); model.removeNodeset(xDayCountListPath); model.removeNodeset(xFormerDayCountListPath); model.removeNodeset(xPamInfoPath); model.removeNodeset(xRecUserListPath); model.removeNodeset(sAttrListPath1); model.removeNodeset(xFormerAttrListPath1); model.removeNodeset(xFormerRecUserListPath); model.removeNodeset("/root/init/clsinfo"); model.removeNode("/root/temp/cond/patientgrup"); grd_24hoursclincobsreclist.caption = ""; if(getNodesetCount("/root/main/patinfo") > 0){ model.setValue("/root/main/patinfo/pid", ""); model.setValue("/root/main/patinfo/indd", ""); model.setValue("/root/main/patinfo/cretno", ""); model.setValue("/root/main/patinfo/ordtype", ""); model.setValue("/root/main/patinfo/indschacptstat", ""); model.setValue("/root/main/patinfo/dschdd", ""); model.setValue("/root/main/patinfo/eroutdd", ""); model.setValue("/root/main/patinfo/patnm", ""); model.setValue("/root/main/patinfo/sexage", ""); model.setValue("/root/main/patinfo/wardcd", ""); model.setValue("/root/main/patinfo/roomcd", ""); } sPid = ""; sIndd = ""; sCretNo = ""; sInstcd = ""; sIOFlag = ""; sWardCD = ""; sRoomCD = ""; sIndschacptstat = ""; sDschdd = ""; sOrdDeptcd = ""; sMedispclid = ""; model.setValue(sCondPath+"/pid", ""); } /** * @group : * @ver : 2007.08.16 * @by : 이은영 * @--------------------------------------------------- * @type : function * @access : public * @desc : 임상관찰 기록 조회 * @param : * @return : * @--------------------------------------------------- */ function fSearchClincObsRec(pClsFlag){ if(model.getValue("/root/main/cond/pid") == ""){ messageBox("환자를 선택하십시요","I"); return; } var sStrTime = ""; var sRecCnt = 0; var pFlag = model.getValue(sCondPath+"/vwctrl_button"); fCreateHeader(pFlag); model.removeNode("/root/send"); model.makeValue("/root/send/pid", model.getValue(sCondPath+"/pid")); model.makeValue("/root/send/indd", model.getValue(sCondPath+"/indd")); model.makeValue("/root/send/cretno", model.getValue(sCondPath+"/cretno")); model.makeValue("/root/send/instcd", model.getValue(sCondPath+"/instcd")); model.makeValue("/root/send/timeflag", model.getValue(sCondPath+"/timeflag")); model.makeValue("/root/send/srchdd",model.getValue(sCondPath+"/recdd")); model.makeValue("/root/send/fromdt",sHeader[1][1]+sHeader[2][1]+"00"); model.removeNodeset(xHoursClincObsRecList); switch(pFlag){ case "24hours" : var iHoursRecRow = 0; var iHoursDataRow = 0; var sBizLnkFlag = model.getValue(sCondPath+"/bizlnkflag"); model.makeValue("/root/send/todt",sHeader[1][25]+sHeader[2][25]+"0000"); model.makeValue("/root/send/recflag", "24hours"); for(var i=1; i <= 25; i++){ if(sStrTime == ""){ sStrTime += sHeader[1][i]+sHeader[2][i]+"0000"; }else{ sStrTime += ","+sHeader[1][i]+sHeader[2][i]+"0000"; } } model.makeValue("/root/send/strtime", sStrTime); if(model.getValue("/root/main/cond/bizlnkflag") == "Y"){ model.makeValue("/root/send/bizdeptcd", sDutplcecd); } if(pClsFlag == "selectedcls"){ model.makeValue("/root/send/clsinfo", model.getValue(sCondPath+"/hoursclsinfo")); }else{ model.setValue(sCondPath+"/hoursclsinfo",""); } grd_24hoursclincobsreclist.rebuild(); submit("TRMOB00903"); break; } } /** * 임상관찰 기록 Chart 그리기 * * 수정이력 * 2011-07-14 오전 10:26:33 chart 모듈 변경으로 인한 title 출력 파라미터 설정 추가 * Chart 관련 파라미터 정보 * @param chart의 종료선택 type(string) "pie","column","line" * @param print 출력버튼 type(boolean) true/false * @param title 출력 type (string) ex> "임상관찰" * @param Y축 title 출력 type (string) ex> "figure" * @param X축 값설정 type (string) ex>"06시 00분^07시 00분^08시 00분^09시 00분" * @param Y축 값설정 type (string) ex>"BP(S)^135^130^130^130|BP(D)^100^90^100^95|.." * @param 그래프의 width type (int) ex> 450 * @param 그래프의 height type (int) ex> 270 * */ function visibleChart(){ var strChart = "line"; var bPrint = false; var strTitle = "임상관찰기록"; var strYTitle = model.getValue("/root/main/cond/recdd"); strYTitle = strTitle.substr(0,4)+"년"+strTitle.substr(4,2)+"월"+strTitle.substr(6,2)+"일"; var iRowCnt = getNodesetCount("/root/main/clincobsrecinfo/hoursclincobsrecinfo/hoursclincobsreclist"); var strXdata = ""; var strYdata = ""; if(iRowCnt > 0){ strXdata = "07시^08시^09시^10시^11시^12시^13시^14시^15시^16시^17시^18시^19시^20시^21시^22시^23시^00시^01시^02시^03시^04시^05시^06시"; strYdata = ""; for(var i = 1; i <= iRowCnt; i++){ if(model.getValue("/root/main/clincobsrecinfo/hoursclincobsrecinfo/hoursclincobsreclist["+i+"]/itemnm") != "V/S"){ for(var j = 0; j <25; j++){ if(j == 0){ strYdata = strYdata + (model.getValue("/root/main/clincobsrecinfo/hoursclincobsrecinfo/hoursclincobsreclist["+i+"]/itemnm")).replace("…","")+"^"; }else if(j == 24){ if(i == iRowCnt){ strYdata = strYdata + grd_24hoursclincobsreclist.valueMatrix(i+1,j); }else{ strYdata = strYdata + grd_24hoursclincobsreclist.valueMatrix(i+1,j)+"|"; } }else{ strYdata = strYdata + grd_24hoursclincobsreclist.valueMatrix(i+1,j)+"^"; } } } } var nWidth = 1500; var nHeight = 270; browser1.window.dataCharPicture(strChart, bPrint, strTitle, strYTitle, strXdata, strYdata, nWidth, nHeight); browser1.visible = true; }else{ browser1.visible = false; } }