\r\n"; strFront += ""; return strFront; } else { return ""; } } /** * @group : * @ver : 2008.07.14 * @by : 이경희 * @modify: * @--------------------------------------------------- * @type : * @access : public * @desc : 서식 저장 시 태그 이후의 스트링값을 반환함. * @param : * @param : * @return : * @--------------------------------------------------- */ function fGetBody(str) { var strXrw = str; var regexp = new RegExp('()', 'igm'); if (regexp.test(strXrw) == '1') { strBody = RegExp.rightContext + "\r\n"; return strBody; } else { return ""; } } /** * @group : * @ver : 2008.07.14 * @by : 이경희 * @modify: * @--------------------------------------------------- * @type : * @access : public * @desc : 서식 저장 시 bind 태그를 반환함. * @param : * @param : * @return : * @--------------------------------------------------- */ function fGetBindInfo(str) { var strXrw = str; var regexp = new RegExp('(]+>)', 'igm'); if (regexp.test(strXrw) == true) { var bindinfo = strXrw.match(regexp); var strRtn = ""; for(var idx =0; idx < bindinfo.length; idx++) { strRtn += bindinfo[idx] + "\r\n"; } return strRtn; } else { return ""; } } /** * @group : * @ver : 2008.07.14 * @by : 이경희 * @modify: * @--------------------------------------------------- * @type : * @access : public * @desc : 서식 저장 시 group 태그를 삭제 해줌.. * @param : * @param : * @return : * @--------------------------------------------------- */ function fRemoveGroupTag(str) { var strXrw = str; var grpexpSt = new RegExp('(]+>)', 'igm'); var grpexpEd = new RegExp('()', 'igm'); if (grpexpSt.test(strXrw) == true) { strXrw = strXrw.replace(grpexpSt, ''); } if (grpexpEd.test(strXrw) == true) { strXrw = strXrw.replace(grpexpEd, ''); } return strXrw; } /** * @group : * @ver : 2008.07.16 * @by : 이상현 * @modify: * @--------------------------------------------------- * @type : * @access : public * @desc : 제증명에서 환자정보를 세팅해줌 * @param : * @param : * @return : * @--------------------------------------------------- */ function fSetNewProfInfo(patinfo, instcd, userid, patInsuranceInfo) { if(patinfo.selectSingleNode("pid") == null || patinfo.selectSingleNode("pid").text == "") return; g_pageInfo = new PAGEINFO(); var formcd = model.getValue(g_pageInfo.formmastRef + "/formcd"); var langflag = model.getValue(g_pageInfo.formmastRef + "/langflag"); //if(model.getValue(g_pageInfo.formmastRef + "/formxrwyn") == "") // return; // 2009.05.07 이경희 // 서식별 기본 문장 조회 var dutplcecd = getUserInfo("dutplcecd"); var hardcdno = "1003"; // 제증명 기본 문장 코드 model.makeValue("/root/send/reqdata/hardcdno", hardcdno); submit("TRMRF03104"); var hardcdlistNode = findNodeset(model, "/root/main/hardcdlist"); for(var idx = 0; idx < hardcdlistNode.length; idx++) { var hardcdNode = hardcdlistNode.item(idx); if(hardcdNode.selectSingleNode("trgtcd").text == "INTERM_KOSTR") { if(hardcdNode.selectSingleNode("trgtcdnm").text != "") g_PROF_INTERM_STR = hardcdNode.selectSingleNode("trgtcdnm").text; } else if(hardcdNode.selectSingleNode("trgtcd").text == "OUTTERM_KOSTR") { if(hardcdNode.selectSingleNode("trgtcdnm").text != "") g_PROF_OUTTERM_STR = hardcdNode.selectSingleNode("trgtcdnm").text; } else if(hardcdNode.selectSingleNode("trgtcd").text == "OUTTERM_ENSTR") { if(hardcdNode.selectSingleNode("trgtcdnm").text != "") g_PROF_OUTTERM_ENG_STR = hardcdNode.selectSingleNode("trgtcdnm").text; } else if(hardcdNode.selectSingleNode("trgtcd").text == "OUTPAT_KOSTR") { if(hardcdNode.selectSingleNode("trgtcdnm").text != "") g_PROF_OUTPAT_STR = hardcdNode.selectSingleNode("trgtcdnm").text; } } //공통정보 fSetPatInfo(patinfo); fSetHospInfo(instcd); if(formcd != "0000001539"){ fSetDocInfo(userid, langflag); fSetSignImge(userid); } if(formcd != "0000001457" && //수술확인서가 아닌경우 formcd != "0000001300" && //입원사실확인서 //formcd != "0000001283" && //입퇴원확인서 formcd != "0000001485" && //사산/사태 증명서 (엄마 base) formcd != "0000001113" && //출생 증명서 (아기 base) formcd != "0000002639" && //통원치료확인서 formcd != "0000002588" && //통원치료확인서(영문) formcd != "0000002792" && //상급병실확인서 (2009.07.27. 추가) formcd != "1100011101" && //입원사실확인서(입원중) - KNUH_20110412_추가 formcd != "1100011102" && //출생증명서(입원중) - KNUH_20110412_추가 formcd != "0000001314") //사망진단서 { //진단세팅로직 공통함수로 변경 : snoweye(2008-07-15) //fSetDiagNm(patinfo); //0016650.0000960 var sPid = patinfo.selectSingleNode("pid").text; var sCretno = patinfo.selectSingleNode("cretno").text; var sOrddeptcd = patinfo.selectSingleNode("orddeptcd").text; var sIoflag = patinfo.selectSingleNode("ioflag").text; var sOrddd = patinfo.selectSingleNode("orddd").text; //20100719-kys-발행제증명존재시 잘행된 진단명연동건으로추가 var sIssparam = ""; if(patinfo.selectSingleNode("issformrecseq").text != ""){ sIssparam = patinfo.selectSingleNode("issformrecseq").text + "," + patinfo.selectSingleNode("isslangflag").text; } //fSetDiagNmbyDegnItemLevlCd_prof(sPid, sCretno, sOrddd, sOrddeptcd, sIoflag, "0016650.0000960"); //20100719-kys-param추가 fSetDiagNmbyDegnItemLevlCd_prof(sPid, sCretno, sOrddd, sOrddeptcd, sIoflag, "0016650.0000960", sIssparam); } if(formcd == "0000001485") //사산/사태 증명서 (엄마 base) { fSetDethBabyInfo(patinfo); } //else if(formcd == "0000001113") //출생 증명서 (아기 base) - KNUH_20110412_추가 else if(formcd == "0000001113" || formcd == "1100011102") //출생 증명서 (아기 base) { fSetBabyInfo(patinfo); } else if(formcd == "0000001457") //수술확인서 { fSetOpInfo(patinfo); } else if(formcd == "0000001314" || formcd == "0000001478") //사망진단서 { fSetDethPatInfo(patinfo); } // KNUH_20110412_추가 //else if(formcd == "0000001300" || formcd == "0000001283") //입퇴원확인서(원무용), 입퇴원확인서(진단명포함) //else if(formcd == "0000001283" || formcd == "0000001300") //입퇴원확인서(진단명포함) , 입원사실확인서(진단명제외) else if(formcd == "0000001283" || formcd == "0000001300" || formcd == "1100011101") //입퇴원확인서(진단명포함) , 입원사실확인서(진단명제외) { fSetInTerm(patinfo); } else if(formcd == "0000002639" || formcd == "0000002588" || formcd == "0000001312")//통원치료확인서, 통원치료확인서(영문) { fSetOrdDD(patinfo); } else if(formcd == "0000001484") //장애인증명서 { fSetPrsdInfo(); } else if(formcd == "0000001490") // 보장구검수확인서, 보장구처방전 { fSetInsuInfo(patinfo); } else if(formcd == "0000001489") // 보장구처방전 { fSetInsuInfo(patinfo); } else if(formcd == "0000002526") // 산소치료처방전 { fSetInsuInfo(patinfo); } else if(formcd == "0000000618") // 투석환자 전원소견서 { fSetInsuInfo(patinfo); } else if(formcd == "0900005340") // 진료의뢰서 { fSetInsuInfo(patinfo); fSetInsuranceInfo(patInsuranceInfo); } else if(formcd == "1000007900") // 요양급여의뢰서 2010.04.15 성규훈 수정 { fSetInsuInfo(patinfo); } else if(formcd == "0900005341") // 노인장기요양소견서 { if(parseInt(model.getValue("/root/hidden/patinfo/age")) >= 65) { model.setValue("/root/main/recinfo/recitem[degnitemno='171']/rectermcd", "0034105001"); model.setValue("/root/main/recinfo/recitem[degnitemno='171']/rectermnm", "65세 이상자", true); } else { model.setValue("/root/main/recinfo/recitem[degnitemno='171']/rectermcd", "0034107001"); model.setValue("/root/main/recinfo/recitem[degnitemno='171']/rectermnm", "65세 미만자", true); } //연령 : 0001209.0000653 fSetItemDataByItemBaseCd("0001209.0000653", "0000653", model.getValue("/root/hidden/patinfo/age")); } else if(formcd == "0000002792") //상급병실확인서 (2009.07.27. 추가) { fSetRoomChargeList(patinfo); } //fSetItemDataByItemBaseCd("0004499", "0004499", "20080801"); //발행일 : 0004499 //fSetItemDataByItemBaseCd("0004499", "0004499", getCurrentDate()); //fSetItemDataByItemBaseCd("0004499", "0004499", getCurrentDate().toDate().getDateFormat("YYYY-MM-DD")); fReCalculate(); //model.recalculate(); //model.refresh(); } /** * @group : * @ver : 2008.07.16 * @by : 이경희 * @modify: * @--------------------------------------------------- * @type : * @access : public * @desc : 진료기록에서 서식로드 시 현재 일자로 설정된 아이템을 찾아 현재일자로 변환한다. * @param : * @param : * @return : * @--------------------------------------------------- */ function fSetCurrentDateCal() { var pageInfo = new PAGEINFO(); var DateListNode = findNodeset(model, pageInfo.recRef2 + "/curdatelist/date"); for(var idx = 0; idx < DateListNode.length; idx++) { var subdateNode = DateListNode.item(idx); // 현재일자 구하기 var strcurDate = getCurrentDate(); strcurDate = strcurDate.toDate().getDateFormat("YYYY-MM-DD"); // recinfo 노드에서 해당 degnitemno 구하기 var recitemNode = findNode(model, pageInfo.grdNodeset+ "[degnitemno = '" + subdateNode.text + "' and degnitemkind = 'CAL']"); if(recitemNode != null) { recitemNode.selectSingleNode("reccnts").text = strcurDate; model.refresh(); } } } /** * @group : * @ver : 2008.07.14 * @by : 이경희 * @modify: * @--------------------------------------------------- * @type : * @access : public * @desc : 저장된 서식을 열었을때 가계도 데이터를 찾아 열어줌. * @param : * @param : * @return : * @--------------------------------------------------- */ function fLoadFdgInfo() { var pageInfo = new PAGEINFO(); var ivwLoader = null; var openerId = opener.window.javascript.getScreenID(); if(openerId == "SMMRF01000" || openerId == "SMMRF00600") // 서식디자인, 사용자항목설정 화면은 건너뜀. return; // 서식 정보를 가져온다. var forminfoNode = opener.window.model.instance1.selectSingleNode(pageInfo.formmastRef); //var formprogflagNode = forminfoNode.selectSingleNode("formprogflag"); var FDGNode = ""; if(openerId == "SSMMR01100") // 서식로더 { try{ ivwLoader = opener.window; if(ivwLoader.javascript.isPopup() == false) { // 결과관리(서식) FDGNode = findNodeset(opener.model, pageInfo.recRef +"/recitem[degnitemkind = 'FDG']"); } else { // 특수서식 FDGNode = findNodeset(opener.model, pageInfo.recRef +"/recitem[degnitemkind = 'FDG']"); } } catch(e) { return; } } else { // 공통서식인 경우 opener.opener 가 서식로더. //if(formprogflag == "PROG") try{ ivwLoader = opener.opener.window; FDGNode = findNodeset(opener.opener.model, pageInfo.recRef +"/recitem[degnitemkind = 'FDG']"); } catch(e) { return; } } //var FDGNode = ivwLoader.model.instance1.selectNodes(pageInfo.recItemRef + "[degnitemkind = 'FDG']"); for(var idx=0; idx< FDGNode.length; idx++) { var itemNode = FDGNode.item(idx); var degnitemno = itemNode.selectSingleNode("degnitemno").text; var recFDGNode = ivwLoader.model.instance1.selectNodes(pageInfo.recItemRef + "[degnitemkind = 'FDG' and degnitemno = '" + degnitemno + "']"); for(var idx=0; idx< recFDGNode.length; idx++) { var itemNode = recFDGNode.item(idx); var strFDGmetadata = itemNode.selectSingleNode("reccnts").text; var strFDGbase64 = itemNode.selectSingleNode("recimge").text; if(strFDGmetadata != "") { var degnitemno = itemNode.selectSingleNode("degnitemno").text; var ctrlid = "FDG_" + degnitemno; var ocxObj = document.controls(ctrlid); if(ocxObj != null) { eval(ctrlid).LoadMetadata(strFDGmetadata); setParameter("SPMMR04711_shape", strFDGmetadata); setParameter("SPMMR04711_base64", strFDGbase64); } } } } model.refresh(); } /** * @group : * @ver : 2008.07.14 * @by : 이경희 * @modify: * @--------------------------------------------------- * @type : * @access : public * @desc : 진료기록에서 편집가능한 이미지가 포함된 서식을 열었을때 LiveImage에서 이미지를 열수 있도록 해줌. * @param : * @param : * @return : * @--------------------------------------------------- */ function fLoadOcxImage() { var pageInfo = new PAGEINFO(); var ImgListNode = findNodeset(model, pageInfo.recRef2 + "/editimglist/imgid"); for(var idx = 0; idx < ImgListNode.length; idx++) { var imgidNode = ImgListNode.item(idx); var ctrlid = imgidNode.text.split(".")[0]; var degnitemcd = imgidNode.text.split(".")[1]; var degnitemno = ctrlid.split("_")[1]; var degnitemlevlcd = model.getValue(pageInfo.recItemRef + "[degnitemkind='IMG' and degnitemcd = '" + degnitemcd + "'and degnitemno='"+ degnitemno +"']/degnitemlevlcd"); var ocxObj = document.controls(ctrlid); if(ocxObj != null) { var domain = getMainDomain(); var imgurl = fGetImgUrl(degnitemcd); var imgsrc = domain + imgurl; eval(ctrlid).LoadImage(imgsrc); /// 기록된 서식인지 확인 var recitemNodelist = ""; var ivwLoader = null; // 서식 정보를 가져온다. var forminfoNode = opener.window.model.instance1.selectSingleNode(pageInfo.formmastRef); var formprogflag = forminfoNode.selectSingleNode("formprogflag").text; var openerId = opener.window.javascript.getScreenID(); if(openerId == "SSMMR01100") // 서식로더 { ivwLoader = opener.window; if(ivwLoader.javascript.isPopup() == false) { // 결과관리(서식) recitemNodelist = findNodeset(opener.model, pageInfo.recRef +"/recitem[degnitemkind='IMG' and degnitemcd='" + degnitemcd + "' and degnitemno='" + degnitemno + "']"); } else { var openmode = getParameter("openmode"); if ( openmode == "extnunitform" ) { //2010.02.09 , 주희경 , 확장 서식 로딩 시 recitemNodelist = findNodeset(model, pageInfo.recRef +"/recitem[degnitemkind='IMG' and degnitemcd='" + degnitemcd + "' and degnitemno='" + degnitemno + "']"); } else { // 특수서식 recitemNodelist = findNodeset(opener.model, pageInfo.recRef +"/recitem[degnitemkind='IMG' and degnitemcd='" + degnitemcd + "' and degnitemno='" + degnitemno + "']"); } } } else { // 공통서식인 경우 opener.opener 가 서식로더. //if(formprogflag == "PROG") ivwLoader = opener.opener.window; recitemNodelist = findNodeset(opener.opener.model, pageInfo.recRef +"/recitem[degnitemkind='IMG' and degnitemcd='" + degnitemcd + "' and degnitemno='" + degnitemno + "']"); } if(recitemNodelist.length > 0) { var strXvgInfo = new Array(3); for(var recidx=0; recidx < recitemNodelist.length; recidx++) { var recitemNode = recitemNodelist.item(recidx); var Tmpdegnitemcd = recitemNode.selectSingleNode("degnitemcd").text; var degnitemkind = recitemNode.selectSingleNode("degnitemkind").text; var Tmpdegnitemlevlcd = recitemNode.selectSingleNode("degnitemlevlcd").text; var Tmpdegnitemno = recitemNode.selectSingleNode("degnitemno").text; var reccnts = recitemNode.selectSingleNode("reccnts").text; if(degnitemkind != "IMG") continue; if(degnitemcd == Tmpdegnitemcd && degnitemno == Tmpdegnitemno) { // caption 을 모두 CDATA 처리 reccnts = SetCdata(reccnts); if(reccnts != "") { strXvgInfo = GetMetaMode(reccnts); } var isLocalImg = recitemNode.selectSingleNode("degnitemnm").text; eval(ctrlid).Clear(); var viewMode = eval(ctrlid).GetViewMode(); if(viewMode != 1) { // ActiveX를 스크린 사이즈로 맞춤 eval(ctrlid).SetViewMode(1); } if(isLocalImg == "LOCALIMG") { eval(ctrlid).SetControlSize(strXvgInfo[1], strXvgInfo[2]); var LocalRecBase64str = recitemNode.selectSingleNode("recimge").text; var LocalSrcBase64str = recitemNode.selectSingleNode("srcimge").text; // 로컬 이미지 세팅 var LocalDegnitemNoNode = "/root/temp2/localimage/" + ctrlid; var LocalDegnitemlevlCDNode = LocalDegnitemNoNode +"/degnitemlevlcd"; var LocalYNNode = LocalDegnitemNoNode + "/LocalYN"; var LocalFileNode = LocalDegnitemNoNode + "/LocalFileName"; var LocalSrcimgeNode = LocalDegnitemNoNode + "/srcimge"; model.makeValue(LocalDegnitemNoNode, "true"); model.makeValue(LocalYNNode, "Y"); //model.makeValue(LocalFileNode, selFileName, true); model.makeValue(LocalDegnitemlevlCDNode, degnitemlevlcd); // 뷰모드를 가로/세로 비율로 변경 if(eval(ctrlid).GetViewMode() != "4") eval(ctrlid).SetViewMode(4); if(LocalSrcBase64str != "") { eval(ctrlid).LoadImageBase64(LocalSrcBase64str); model.makeValue(LocalSrcimgeNode, LocalSrcBase64str, true); // 백업 var ImgNode = "/root/main/localimage/" + ctrlid; model.makeNode(ImgNode); model.copyNode( ImgNode, LocalDegnitemNoNode ); } else if(LocalRecBase64str != "" && LocalSrcBase64str == "") { eval(ctrlid).LoadImageBase64(LocalRecBase64str); var ctrlInfoXVG = removeXvgTag(reccnts); if(ctrlInfoXVG == "") LocalSrcBase64str = LocalRecBase64str; model.makeValue(LocalSrcimgeNode, LocalSrcBase64str, true); // 백업 var ImgNode = "/root/main/localimage/" + ctrlid; model.makeNode(ImgNode); model.copyNode( ImgNode, LocalDegnitemNoNode ); } //var strBase64 = eval(ctrlid).SaveImageBase64(); // BMP 형식대로 리턴. //var strBase64 = obj_imge.SaveJpegBase64(); // JPG 형식대로 리턴. } else { eval(ctrlid).LoadImage(imgsrc); } if(reccnts != "" && reccnts != "-") { //eval(ctrlid).SetShapeString(reccnts); //var strRecBase64 = eval(ctrlid).SaveJpegBase64(); var tmpShape = removeXvgTag(reccnts); var strRecBase64 = ""; if(tmpShape != "") { eval(ctrlid).SetShapeString(reccnts); } strRecBase64 = eval(ctrlid).SaveJpegBase64(); model.setValue(pageInfo.recItemRef + "[degnitemkind='IMG' and degnitemlevlcd = '" + degnitemlevlcd + "']/reccnts", reccnts); model.setValue(pageInfo.recItemRef + "[degnitemkind='IMG' and degnitemlevlcd = '" + degnitemlevlcd + "']/recimge", strRecBase64); model.refresh(); } } } } else // 서식내의 DB이미지를 오픈(기록된 서식이 아닌 서식을 작성하기 위해 로드한 경우) { eval(ctrlid).LoadImage(imgsrc); } } } } /** * @group : * @ver : 2008.07.22 * @by : 이상현 * @modify: * @--------------------------------------------------- * @type : function * @access : public * @desc : 서식의 입력컨트롤에 값이 변경되었을 경우 유효한 값인지 체크한다. * @param : * @param : * @return : * @--------------------------------------------------- */ function fChkValid() { var pageInfo = new PAGEINFO(); var ctrlid = event.target; var degnitemno = ctrlid.substr(ctrlid.indexOf("_")); var degnitemlevlcd = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnitemlevlcd"); //발행일 체크 if(degnitemlevlcd == "0004499") { var clsVal = getFormItemValue("0004499"); var recdd = clsVal.reccnts.toDate("YYYY-MM-DD").getDateFormat("YYYYMMDD"); var curdd = getCurrentDate().toDate().getDateFormat("YYYYMMDD"); var itemVal = new ITEMVAL(); itemVal.reccnts = curdd; if(recdd > curdd) { alert("발행일에 미래일자를 설정할 수 없습니다."); setFormItemValue("0004499", itemVal, true); model.setFocus(ctrlid, true); } } } /** * @group : * @ver : 2008.07.22 * @by : 이상현 * @modify: * @--------------------------------------------------- * @type : function * @access : public * @desc : 진료기록에서 컨트롤의 (입력불가/출력시 보이지 않게) 속성을 다시 반영한다. * @param : * @param : * @return : * @--------------------------------------------------- */ function fSetBtnCtrlAttrval() { var pageInfo = new PAGEINFO(); var CtrlListNode = findNodeset(model, pageInfo.formdegnRef); for(var idx = 0; idx < CtrlListNode.length; idx++) { var CtrlNode = CtrlListNode.item(idx); var degnattrvalNode = CtrlNode.selectSingleNode("degnattrval"); if(degnattrvalNode == null || degnattrvalNode.text == "") continue; var degnitemnoNode = CtrlNode.selectSingleNode("degnitemno"); var degnitemkindNode = CtrlNode.selectSingleNode("degnitemkind"); if(degnattrvalNode != null && degnattrvalNode.text != "") { // 해당 컨트롤 ID 구하기 var ctrlid = degnitemkindNode.text + "_" + degnitemnoNode.text; var ctrl = document.controls(ctrlid); if(ctrl == null) continue; var ctrltype = ctrl.attribute("ctrltype"); // 입력 불가 설정 var degnattrval = getStyleValue(degnattrvalNode.text, "ctrl.disabled"); if(degnattrval == "true") { //ctrl.attibute("editable") = "false"; ctrl.disabled = true; } else { //ctrl.attibute("editable") = "true"; ctrl.disabled = false; } // 출력시 보이지 않게 var degnattrval = getStyleValue(degnattrvalNode.text, "ctrl._printable"); if(degnattrval == "false") { ctrl.visible = false; } else { ctrl.visible = true; } } } } /** * @group : * @ver : 2008.08.07 * @by : 이경희 * @modify: * @--------------------------------------------------- * @type : function * @access : public * @desc : 이미지편집툴 팝업에서 로컬이미지를 등록한 경우 이벤트를 발생하는 함수 * @param : imgecd 이미지코드 * @param : strBase64 원본이미지 base64 * @return : * @--------------------------------------------------- */ function fUpdateImgList(LocalSrcimgeNode, degnitemlevlcd, degnitemno, strBase64) { var recitemNode = findNode(model, "/root/main/recinfo/recitem" + "[degnitemkind='IMG' and degnitemlevlcd='" + degnitemlevlcd + "' and degnitemno='"+ degnitemno + "']"); if(recitemNode != null) { //model.makeValue("/root/rectemp/srcimge", strBase64, true); model.makeNode(LocalSrcimgeNode); model.makeValue(LocalSrcimgeNode, strBase64, true); /* var newNode = model.instance1.selectSingleNode("/root/rectemp/srcimge"); var srcimgNode = ""; srcimgNode = recitemNode.selectSingleNode("srcimge"); if(srcimgNode != null) { recitemNode.replaceChild(newNode, srcimgNode); } else { recitemNode.appendChild(newNode); } model.removenode("/root/rectemp/srcimge"); // 로컬이미지를 열었으므로 기존 recimage 를 지운다. recitemNode.selectSingleNode("recimge").text = ""; */ model.refresh(); } } /** * @group : * @ver : * @by : 이경희 * @modify: * @--------------------------------------------------- * @type : function * @access : public * @desc : 진단명에서 진단 체크시 실행되는 함수 * @param : imgecd 이미지코드 * @param : strBase64 원본이미지 base64 * @return : * @--------------------------------------------------- */ function fCheckDiagMsKindFlag() { try { var grdobj = event.ptarget.parent; var rowpos = grdobj.row; var colpos = grdobj.col; if(rowpos == 1) return; ////////////////////////////////////////////////////////////////// // degnitemlevlcd 를 얻는다. var degnitemno = grdobj.attribute("degnitemno"); var cnt = getNodesetCnt(model, "/root/main/recinfo/grid[degnitemno = '" + degnitemno + "']"); // 여러 줄의 노드에서 첫번째 노드만을 검사한다. var DGNgrdlist = findNodeset(model, "/root/main/recinfo/grid[degnitemno = '" + degnitemno + "']"); var degnitemlevlcd = ""; for(var idx = 0; idx < DGNgrdlist.length; idx++) { var SubgrdNode = DGNgrdlist.item(idx); var recitemNode = SubgrdNode.selectSingleNode("/root/main/recinfo/grid[degnitemno='" + degnitemno + "']/recitem[rowno='" + (rowpos-1)+"' and colno='2']"); if(recitemNode != null) { degnitemlevlcd = recitemNode.selectSingleNode("degnitemlevlcd").text; break; } } ////////////////////////////////////////////////////////////////// var diagmskindflag = grdobj.valueMatrix(rowpos, colpos); if(colpos == 2 && diagmskindflag == "M"){ var diagcd = model.getValue("/root/main/recinfo/grid/recitem[degnitemlevlcd='" + degnitemlevlcd + "' and rowno='" + (rowpos-1) + "' and colno='2']/rectermcd"); var diagnm = model.getValue("/root/main/recinfo/grid/recitem[degnitemlevlcd='" + degnitemlevlcd + "' and rowno='" + (rowpos-1) + "' and colno='2']/rectermnm"); if(diagcd == "" || diagnm == ""){ grdobj.valueMatrix(rowpos, colpos) = ""; return; } /* var ruleout = model.getValue("/root/main/recinfo/grid[" + rowpos + "]/recitem[degnitemlevlcd='0016650.0000960.0004249' and rowno='" + (rowpos-1) + "' and colno='0']/reccnts"); var trgtdiagcd = model.getValue("/root/main/recinfo/grid[1]/recitem[degnitemlevlcd='0016650.0000960.0000960' and rowno='0' and colno='2']/rectermcd"); var trgtdiagnm = model.getValue("/root/main/recinfo/grid[1]/recitem[degnitemlevlcd='0016650.0000960.0000960' and rowno='0' and colno='2']/rectermnm"); var trgtruleout= model.getValue("/root/main/recinfo/grid[1]/recitem[degnitemlevlcd='0016650.0000960.0004249' and rowno='0' and colno='0']/reccnts"); model.setValue("/root/main/recinfo/grid[1]/recitem[degnitemlevlcd='0016650.0000960.0000960' and rowno='0' and colno='2']/rectermcd", diagcd); model.setValue("/root/main/recinfo/grid[1]/recitem[degnitemlevlcd='0016650.0000960.0000960' and rowno='0' and colno='2']/rectermnm", diagnm); model.setValue("/root/main/recinfo/grid[1]/recitem[degnitemlevlcd='0016650.0000960.0004249' and rowno='0' and colno='0']/reccnts" , ruleout); model.setValue("/root/main/recinfo/grid[" + rowpos + "]/recitem[degnitemlevlcd='0016650.0000960.0000960' and rowno='" + (rowpos-1) + "' and colno='2']/rectermcd", trgtdiagcd); model.setValue("/root/main/recinfo/grid[" + rowpos + "]/recitem[degnitemlevlcd='0016650.0000960.0000960' and rowno='" + (rowpos-1) + "' and colno='2']/rectermnm", trgtdiagnm); model.setValue("/root/main/recinfo/grid[" + rowpos + "]/recitem[degnitemlevlcd='0016650.0000960.0004249' and rowno='" + (rowpos-1) + "' and colno='0']/reccnts" , trgtruleout); model.setValue("/root/main/recinfo/grid[" + rowpos + "]/recitem[degnitemlevlcd='0016650.0000960.0001443' and rowno='" + (rowpos-1) + "' and colno='1']/reccnts", "S"); model.setValue("/root/main/recinfo/grid[1]/recitem[degnitemlevlcd='0016650.0000960.0001443' and rowno='0' and colno='1']/reccnts", "M");*/ //TF에서 XPath 다중조건(/root/main/recinfo/grid[degnitemlevlcd='0016650.0000960'][1]/...) 지원못함. grid를 직접조작하는 것으로 변경(snoweye) //grdobj.colref 사용못함.. 그리드 구조변경시 반드시 컬럼번호 수정해야함(snoweye) var diagcd = grdobj.valueMatrix(rowpos, 3); var diagnm = grdobj.valueMatrix(rowpos, 4); var ruleout = grdobj.valueMatrix(rowpos, 1); var trgtdiagcd = grdobj.valueMatrix(1, 3); var trgtdiagnm = grdobj.valueMatrix(1, 4); var trgtruleout= grdobj.valueMatrix(1, 1); grdobj.valueMatrix(1, 3) = diagcd; grdobj.valueMatrix(1, 4) = diagnm; grdobj.valueMatrix(1, 1) = ruleout; grdobj.valueMatrix(rowpos, 3) = trgtdiagcd; grdobj.valueMatrix(rowpos, 4) = trgtdiagnm; grdobj.valueMatrix(rowpos, 1) = trgtruleout; grdobj.valueMatrix(1, 2) = "M"; grdobj.valueMatrix(rowpos, 2) = "S"; } } catch(e) { } //model.refresh(); } function fCheckDiagMsKindFlag_old(){ var grdobj = event.ptarget.parent; var rowpos = grdobj.row; var colpos = grdobj.col; if(rowpos == 1) return; var diagmskindflag = grdobj.valueMatrix(rowpos, colpos); if(colpos == 2 && diagmskindflag == "M"){ var diagcd = model.getValue("/root/main/recinfo/grid/recitem[degnitemlevlcd='0016650.0000960.0000960' and rowno='" + (rowpos-1) + "' and colno='2']/rectermcd"); var diagnm = model.getValue("/root/main/recinfo/grid/recitem[degnitemlevlcd='0016650.0000960.0000960' and rowno='" + (rowpos-1) + "' and colno='2']/rectermnm"); if(diagcd == "" || diagnm == ""){ grdobj.valueMatrix(rowpos, colpos) = ""; return; } /* var ruleout = model.getValue("/root/main/recinfo/grid[" + rowpos + "]/recitem[degnitemlevlcd='0016650.0000960.0004249' and rowno='" + (rowpos-1) + "' and colno='0']/reccnts"); var trgtdiagcd = model.getValue("/root/main/recinfo/grid[1]/recitem[degnitemlevlcd='0016650.0000960.0000960' and rowno='0' and colno='2']/rectermcd"); var trgtdiagnm = model.getValue("/root/main/recinfo/grid[1]/recitem[degnitemlevlcd='0016650.0000960.0000960' and rowno='0' and colno='2']/rectermnm"); var trgtruleout= model.getValue("/root/main/recinfo/grid[1]/recitem[degnitemlevlcd='0016650.0000960.0004249' and rowno='0' and colno='0']/reccnts"); model.setValue("/root/main/recinfo/grid[1]/recitem[degnitemlevlcd='0016650.0000960.0000960' and rowno='0' and colno='2']/rectermcd", diagcd); model.setValue("/root/main/recinfo/grid[1]/recitem[degnitemlevlcd='0016650.0000960.0000960' and rowno='0' and colno='2']/rectermnm", diagnm); model.setValue("/root/main/recinfo/grid[1]/recitem[degnitemlevlcd='0016650.0000960.0004249' and rowno='0' and colno='0']/reccnts" , ruleout); model.setValue("/root/main/recinfo/grid[" + rowpos + "]/recitem[degnitemlevlcd='0016650.0000960.0000960' and rowno='" + (rowpos-1) + "' and colno='2']/rectermcd", trgtdiagcd); model.setValue("/root/main/recinfo/grid[" + rowpos + "]/recitem[degnitemlevlcd='0016650.0000960.0000960' and rowno='" + (rowpos-1) + "' and colno='2']/rectermnm", trgtdiagnm); model.setValue("/root/main/recinfo/grid[" + rowpos + "]/recitem[degnitemlevlcd='0016650.0000960.0004249' and rowno='" + (rowpos-1) + "' and colno='0']/reccnts" , trgtruleout); model.setValue("/root/main/recinfo/grid[" + rowpos + "]/recitem[degnitemlevlcd='0016650.0000960.0001443' and rowno='" + (rowpos-1) + "' and colno='1']/reccnts", "S"); model.setValue("/root/main/recinfo/grid[1]/recitem[degnitemlevlcd='0016650.0000960.0001443' and rowno='0' and colno='1']/reccnts", "M");*/ //TF에서 XPath 다중조건(/root/main/recinfo/grid[degnitemlevlcd='0016650.0000960'][1]/...) 지원못함. grid를 직접조작하는 것으로 변경(snoweye) //grdobj.colref 사용못함.. 그리드 구조변경시 반드시 컬럼번호 수정해야함(snoweye) var diagcd = grdobj.valueMatrix(rowpos, 3); var diagnm = grdobj.valueMatrix(rowpos, 4); var ruleout = grdobj.valueMatrix(rowpos, 1); var trgtdiagcd = grdobj.valueMatrix(1, 3); var trgtdiagnm = grdobj.valueMatrix(1, 4); var trgtruleout= grdobj.valueMatrix(1, 1); grdobj.valueMatrix(1, 3) = diagcd; grdobj.valueMatrix(1, 4) = diagnm; grdobj.valueMatrix(1, 1) = ruleout; grdobj.valueMatrix(rowpos, 3) = trgtdiagcd; grdobj.valueMatrix(rowpos, 4) = trgtdiagnm; grdobj.valueMatrix(rowpos, 1) = trgtruleout; grdobj.valueMatrix(1, 2) = "M"; grdobj.valueMatrix(rowpos, 2) = "S"; } //model.refresh(); } function fCheckDiagMsKindFlag_old2(){ var grdobj = event.ptarget.parent; var rowpos = grdobj.row; var colpos = grdobj.col; var diagmskindflag = grdobj.valueMatrix(rowpos, colpos); if(colpos == 2 && diagmskindflag == "M"){ var diagcd = model.getValue("/root/main/recinfo/grid[" + rowpos + "]/recitem[degnitemcd='0000960001' and rowno='" + (rowpos-1) + "' and colno='2']/rectermcd"); var diagnm = model.getValue("/root/main/recinfo/grid[" + rowpos + "]/recitem[degnitemcd='0000960001' and rowno='" + (rowpos-1) + "' and colno='2']/rectermnm"); var trgtdiagcd = model.getValue("/root/main/recinfo/grid[1]/recitem[degnitemcd='0000960001' and rowno='0' and colno='2']/rectermcd"); var trgtdiagnm = model.getValue("/root/main/recinfo/grid[1]/recitem[degnitemcd='0000960001' and rowno='0' and colno='2']/rectermnm"); model.setValue("/root/main/recinfo/grid[1]/recitem[degnitemcd='0000960001' and rowno='0' and colno='2']/rectermcd", diagcd); model.setValue("/root/main/recinfo/grid[1]/recitem[degnitemcd='0000960001' and rowno='0' and colno='2']/rectermnm", diagnm); model.setValue("/root/main/recinfo/grid[" + rowpos + "]/recitem[degnitemcd='0000960001' and rowno='" + (rowpos-1) + "' and colno='2']/rectermcd", trgtdiagcd); model.setValue("/root/main/recinfo/grid[" + rowpos + "]/recitem[degnitemcd='0000960001' and rowno='" + (rowpos-1) + "' and colno='2']/rectermnm", trgtdiagnm); model.setValue("/root/main/recinfo/grid[1]/recitem[degnitemcd='0001443001' and rowno='0' and colno='1']/reccnts", "M"); model.setValue("/root/main/recinfo/grid[" + rowpos + "]/recitem[degnitemcd='0001443001' and rowno='" + (rowpos-1) + "' and colno='1']/reccnts", "S"); } model.refresh(); } /** * @group : * @ver : 2008.08.07 * @by : 이경희 * @modify: * @--------------------------------------------------- * @type : function * @access : public * @desc : 디자인정보가 콤보인 아이템을 찾아 밸류리스트에 빈값을 추가한다. 2009.09.15 그리드내의 콤보항목인 경우도 밸류리스트에 빈값을 추가하도록 수정한다. * @param : * @param : * @return : * @--------------------------------------------------- */ function fSetVallist() { var pageInfo = new PAGEINFO(); var WorkVallistArr = new Array(); var FormDegnNodeList = findNodeset(model, pageInfo.formdegnRef + "[degnitemkind='CMB' or degnitemkind='GSU']"); var IsWorked = false; for(idx = 0; idx < FormDegnNodeList.length; idx++) { IsWorked = false; var FormdegnNode = FormDegnNodeList.item(idx); var valgrupcd = FormdegnNode.selectSingleNode("valgrupcd").text; // 해당 밸류리스트 노드에 빈노드를 추가하는 작업이 이미 진행되었는지 확인. for(var i=0; i < WorkVallistArr.length; i++) { if(WorkVallistArr[i] == valgrupcd) { IsWorked = true; break; } } if(IsWorked == true) { continue; } // Vallist 찾기 var VallistNodeList = findNodeset(model, pageInfo.vallistRef + "[grupcd='" + valgrupcd +"']"); // 해당 Vallist를 찾으면 빈 밸류노드를 추가한다. if(VallistNodeList.length > 0) { //var FstNode = VallistNodeList.item(0); var LastNode = VallistNodeList.item(VallistNodeList.length-1); var newNode = LastNode.cloneNode(true); newNode.selectSingleNode("valcd").text = ""; newNode.selectSingleNode("valitemnm").text = ""; newNode.selectSingleNode("valitempnt").text = ""; //FstNode.parentNode.insertBefore(newNode ,FstNode); LastNode.parentNode.insertAfter(newNode ,LastNode); WorkVallistArr[idx] = valgrupcd; } } } /** * @group : * @ver : 2009.01.29 * @by : 이경희 * @modify: * @--------------------------------------------------- * @type : * @access : public * @desc : 그리드의 rowheight를 resize 해줌. * @param : * @param : * @return : * @--------------------------------------------------- */ function fResetGrd() { var pageInfo = new PAGEINFO(); var ivwLoader = null; var openerId = opener.window.javascript.getScreenID(); if(openerId == "SMMRF01000" || openerId == "SMMRF00600") // 서식디자인, 사용자항목설정 화면은 건너뜀. return; // 서식디자인 정보를 가져온다. var formdegnNodelist = model.instance1.selectNodes(pageInfo.formdegnRef + "[degnitemkind='GRD']"); var formdegnNode = ""; if(openerId == "SSMMR01100") // 서식로더 { try { for(var idx=0; idx< formdegnNodelist.length; idx++) { formdegnNode = formdegnNodelist.item(idx); var degnattrvalNode = formdegnNode.selectSingleNode("degnattrval"); var degnitemnoNode = formdegnNode.selectSingleNode("degnitemno"); var degnitemlevlcdNode = formdegnNode.selectSingleNode("degnitemlevlcd"); if(degnattrvalNode != null) { var rowheightArr = getStyleValue(degnattrvalNode.text, "ctrl.rowheight").split("^"); var grdid = "GRD_" + degnitemnoNode.text; var ctrl = document.controls(grdid); if(ctrl != null) { for(var rowidx = 0; rowidx < rowheightArr.length; rowidx++) { ctrl.rowheight(rowidx) = rowheightArr[rowidx]; } if(ctrl.attribute("autoresize") == "true") ctrl.attribute("autoresize") = false; ctrl.refresh(); } } } } catch(e) { return; } } model.refresh(); } /** * @group : * @ver : 2009.01.30 * @by : 이경희 * @modify: * @--------------------------------------------------- * @type : * @access : public * @desc : 확장 컨트롤의 disabled를 재설정 * @param : * @param : * @return : * @--------------------------------------------------- */ function fResetDisableCtrls() { var pageInfo = new PAGEINFO(); var ivwLoader = null; var openerId = opener.window.javascript.getScreenID(); if(openerId == "SMMRF01000" || openerId == "SMMRF00600") // 서식디자인, 사용자항목설정 화면은 건너뜀. return; // 서식디자인 정보를 가져온다. var formdegnNodelist = model.instance1.selectNodes(pageInfo.formdegnRef + "[(degnitemkind = 'BOL' or degnitemkind = 'ISU' or degnitemkind = 'SSU') and itemattrval !='']"); var formdegnNode = ""; if(openerId == "SSMMR01100") // 서식로더 { try { for(var idx=0; idx< formdegnNodelist.length; idx++) { formdegnNode = formdegnNodelist.item(idx); var itemattrvalNode = formdegnNode.selectSingleNode("itemattrval"); var degnitemkindNode = formdegnNode.selectSingleNode("degnitemkind"); var degnitemnoNode = formdegnNode.selectSingleNode("degnitemno"); if(isSearchString(itemattrvalNode.text, "extn:visible") == false) continue; var recitemNode = ""; if(degnitemkindNode.text == "SSU" || degnitemkindNode.text == "ISU") { // 상위 아이템 번호를 구한다. var supdegnitemnoNode = formdegnNode.selectSingleNode("supdegnitemno"); // 상위 디자인아이템 노드를 구한 뒤, degnitemlevlcd를 이용하여 기록된 값이 있는지 확인한다. var supformdegnNode = model.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno ='" + supdegnitemnoNode.text + "']"); var supdegnitemkindNode = supformdegnNode.selectSingleNode("degnitemkind"); if(supdegnitemkindNode.text == "MSL") { var degnitemlevlcdNode = supformdegnNode.selectSingleNode("degnitemlevlcd"); // MSL의 degnitemlevlcd var degnitemcdNode = supformdegnNode.selectSingleNode("degnitemcd"); // MSL의 degnitemcd var termcdNode = formdegnNode.selectSingleNode("termcd"); // SSU의 termcd recitemNode = opener.model.instance1.selectSingleNode(pageInfo.recItemRef + "[degnitemlevlcd ='" + degnitemlevlcdNode.text + "' and rectermcd = '" + termcdNode.text + "']"); if(recitemNode != null) { if(recitemNode.selectSingleNode("reccnts").text != '') { // 기록된 값이 있으면 기록된 값의 코드를 구한다. var rectermcdNode = recitemNode.selectSingleNode("rectermcd"); // 상위 아이템번호 var recdegnitemnoNode = recitemNode.selectSingleNode("degnitemno"); /* // 기록된 값이 있으면 상위아이템에 속한 하위 아이템의 degnitemno를 구한다. //var subFormdegnNode = model.instance1.selectSingleNode(pageInfo.formdegnRef + "[termcd ='" + rectermcdNode.text + "' and supdegnitemcd = '" + degnitemcdNode.text + "']"); // 아이템번호를 구한다. //var subDegnitemnoNode = subFormdegnNode.selectSingleNode("degnitemno"); //var extnCtrl = document.controls("STX_" + subDegnitemnoNode.text); // 확장 컨트롤 //var unitCtrl = document.controls("UNIT_" + subDegnitemnoNode.text); // 단위 컨트롤 */ var extnCtrl = document.controls("STX_" + degnitemnoNode.text); // 확장 컨트롤 var unitCtrl = document.controls("UNIT_" + degnitemnoNode.text); // 단위 컨트롤 if(extnCtrl != null) { extnCtrl.disabled = false; extnCtrl.visible = true; } if(unitCtrl != null) unitCtrl.visible = true; } } } else if(supdegnitemkindNode.text == "SSL") { var supdegnitemlevlcdNode = supformdegnNode.selectSingleNode("degnitemlevlcd"); var supdegnitemcdNode = supformdegnNode.selectSingleNode("degnitemcd"); recitemNode = opener.model.instance1.selectSingleNode(pageInfo.recItemRef + "[degnitemlevlcd ='" + supdegnitemlevlcdNode.text + "']"); if(recitemNode != null) { if(recitemNode.selectSingleNode("reccnts").text != '') { // 기록된 값이 있으면 기록된 값의 코드를 구한다. var rectermcdNode = recitemNode.selectSingleNode("rectermcd"); // 상위 아이템번호 var recdegnitemnoNode = recitemNode.selectSingleNode("degnitemno"); // 기록된 값이 있으면 상위아이템에 속한 하위 아이템의 degnitemno를 구한다. var subformdegnNodelist = model.instance1.selectNodes(pageInfo.formdegnRef + "[supdegnitemno ='" + recdegnitemnoNode.text + "' and supdegnitemcd = '" + supdegnitemcdNode.text + "']"); for(var subidx = 0; subidx < subformdegnNodelist.length; subidx++) { // 각각의 디자인 아이템 노드를 구한다. var subFormdegnNode = subformdegnNodelist.item(subidx); // 아이템번호를 구한다. var subDegnitemnoNode = subFormdegnNode.selectSingleNode("degnitemno"); // 기록된 termcd와 formdegn노드의 termcd를 비교한다. var subTermcdNode = subFormdegnNode.selectSingleNode("termcd"); var extnCtrl = document.controls("STX_" + subDegnitemnoNode.text); // 확장 컨트롤 var unitCtrl = document.controls("UNIT_" + subDegnitemnoNode.text); // 단위 컨트롤 if(extnCtrl == null) continue; if(rectermcdNode.text == subTermcdNode.text) { extnCtrl.disabled = false; extnCtrl.visible = true; extnCtrl.attribute("ref") = pageInfo.recItemRef + "[degnitemno='" + supdegnitemnoNode.text + "']/reccnts"; if(unitCtrl != null) unitCtrl.visible = true; } else { extnCtrl.visible = false; extnCtrl.disabled = true; extnCtrl.attribute("ref") = ""; if(unitCtrl != null) unitCtrl.visible = false; } } } } } else if(supdegnitemkindNode.text == "IMG") { var degnitemlevlcdNode = formdegnNode.selectSingleNode("degnitemlevlcd"); var termcdNode = formdegnNode.selectSingleNode("termcd"); recitemNode = opener.model.instance1.selectSingleNode(pageInfo.recItemRef + "[degnitemlevlcd ='" + degnitemlevlcdNode.text + "' and rectermcd = '" + termcdNode.text + "']"); if(recitemNode != null) { if(recitemNode.selectSingleNode("reccnts").text != '') { var extnCtrl = document.controls("STX_" + degnitemnoNode.text); // 확장 컨트롤 var unitCtrl = document.controls("UNIT_" + degnitemnoNode.text); // 단위 컨트롤 if(extnCtrl != null) { extnCtrl.disabled = false; extnCtrl.visible = true; } if(unitCtrl != null) unitCtrl.visible = true; } } } } else if(degnitemkindNode.text == "BOL") { var degnitemlevlcdNode = formdegnNode.selectSingleNode("degnitemlevlcd"); var termcdNode = formdegnNode.selectSingleNode("termcd"); recitemNode = opener.model.instance1.selectSingleNode(pageInfo.recItemRef + "[degnitemlevlcd ='" + degnitemlevlcdNode.text + "' and rectermcd = '" + termcdNode.text + "']"); if(recitemNode != null) { if(recitemNode.selectSingleNode("reccnts").text != '') { // 아이템번호를 구한다. var degnitemnoNode = recitemNode.selectSingleNode("degnitemno"); var extnCtrl = document.controls("STX_" + degnitemnoNode.text); // 확장 컨트롤 var unitCtrl = document.controls("UNIT_" + degnitemnoNode.text); // 단위 컨트롤 if(extnCtrl != null) { extnCtrl.disabled = false; extnCtrl.visible = true; } if(unitCtrl != null) unitCtrl.visible = true; } } } } } catch(e) { return; } } model.refresh(); } function fCacDefltVal() { try { var pageInfo = new PAGEINFO(); var ivwLoader = null; var openerId = opener.window.javascript.getScreenID(); if(openerId == "SMMRF00600") // 서식디자인, 사용자항목설정 화면은 건너뜀. return; // 서식디자인 정보를 가져온다. var formdegnNodelist = model.instance1.selectNodes(pageInfo.formdegnRef + "[degnitemdefltval !='']"); var formdegnNode = ""; var degnitemdefltval = ""; var degnitemno = ""; var degnitemkind = ""; for(var idx=0; idx< formdegnNodelist.length; idx++) { formdegnNode = formdegnNodelist.item(idx); degnitemdefltval = formdegnNode.selectSingleNode("degnitemdefltval").text; degnitemno = formdegnNode.selectSingleNode("degnitemno").text; degnitemkind = formdegnNode.selectSingleNode("degnitemkind").text; var subNode = ""; if(degnitemkind == "BOL") // BOL 기본값 { subNode = model.instance1.selectSingleNode(pageInfo.formdegnRef + "[termcd ='" + degnitemdefltval + "' and degnitemno = '" + degnitemno + "']"); if(subNode != null) { var ctrlid = degnitemkind + "_" + degnitemno; var subctrl = document.controls(ctrlid); if(subctrl != null) subctrl.dispatch("xforms-select"); // 강제로 이벤트를 발생 } } else if(degnitemkind == "SSL") // SSL 기본값 { subNode = model.instance1.selectSingleNode(pageInfo.formdegnRef + "[termcd ='" + degnitemdefltval + "' and supdegnitemno = '" + degnitemno + "']"); if(subNode != null) { var subdegnitemno = subNode.selectSingleNode("degnitemno").text; var subdegnitemkind = subNode.selectSingleNode("degnitemkind").text; var ctrlid = subdegnitemkind + "_" + subdegnitemno; var subctrl = document.controls(ctrlid); if(subctrl != null) subctrl.dispatch("xforms-select"); // 강제로 이벤트를 발생 //inputEnterKey(ctrlid, "DOMActivate"); } } else if(degnitemkind == "CMB") // CMB 기본값 { var ctrlid = "CMB_" + degnitemno; var subctrl = document.controls(ctrlid); if(subctrl != null) subctrl.dispatch("xforms-select"); // 강제로 이벤트를 발생 } } model.refresh(); } catch(e) { return; } } function fAddHint(pCtrl, TooltipText) { try { //if(pCtrl != null && TooltipText != "") //var hint = pCtrl.createChild("xforms:hint", "text:" + TooltipText + ";"); } catch(e) { return; } } /** * @group : * @ver : 2009.05.20 * @by : jonghun * @--------------------------------------------------- * @type : event * @access : public * @desc : 제증명서식 진단명 프리텍스트 적용 관련 * @param : * @return : * @--------------------------------------------------- */ function fSetGridFreetext(dgnfree) { try { var grdNOdes = model.instance1.selectNodes("/root/main/forminfo/formdegn[degnitemkind = 'DGN']/degnitemno"); var grddegnitemno = ""; for(var i = 0; i < grdNOdes.length; i++) { var node = grdNOdes.item(i); grddegnitemno = node.text; var grdObj = document.controls("DGN_" + grddegnitemno); if (grdObj != null) { if (dgnfree == "Y") { grdObj.colDisabled(grdObj.colref("recitem[colno = '2']/rectermcd")) = false; grdObj.colDisabled(grdObj.colref("recitem[colno = '2']/rectermnm")) = false; //2009-07-31 오후 6:27:31 강지훈 수정 : 수정모드일때 색깔없으니깐 헷갈린다. 나중에 요구하면 푸러주자잉~ //grdObj.focusColor = "#ece1ec"; } else { grdObj.colDisabled(grdObj.colref("recitem[colno = '2']/rectermcd")) = true; grdObj.colDisabled(grdObj.colref("recitem[colno = '2']/rectermnm")) = true; } } } } catch(e) { return; } } function fSetInsuranceInfo(patInsuranceInfo) { //0000001490 //0000001489 try { if(patInsuranceInfo == null) return; var proccorpcd = patInsuranceInfo.selectSingleNode("proccorpcd").text; //등록번호 var hngnm = patInsuranceInfo.selectSingleNode("hngnm").text; //환자명 var qualflag = patInsuranceInfo.selectSingleNode("qualflag").text; //자격구분 var hshdnm = patInsuranceInfo.selectSingleNode("hshdnm").text; //세대주성명 var secuinstmark = patInsuranceInfo.selectSingleNode("secuinstmark").text; //보장기관기호 var estmmark = patInsuranceInfo.selectSingleNode("estmmark").text; //시설기호(증번호) var ownbflag = patInsuranceInfo.selectSingleNode("ownbflag").text; //본인부담구분 var choicorpmark1 = patInsuranceInfo.selectSingleNode("choicorpmark1").text; //선택기관기호1 var choicorpmark2 = patInsuranceInfo.selectSingleNode("choicorpmark2").text; var choicorpmark3 = patInsuranceInfo.selectSingleNode("choicorpmark3").text; var choicorpmark4 = patInsuranceInfo.selectSingleNode("choicorpmark4").text; var choicorpnm1 = patInsuranceInfo.selectSingleNode("choicorpnm1").text; //선택기관이름1 var choicorpnm2 = patInsuranceInfo.selectSingleNode("choicorpnm2").text; var choicorpnm3 = patInsuranceInfo.selectSingleNode("choicorpnm3").text; var choicorpnm4 = patInsuranceInfo.selectSingleNode("choicorpnm4").text; var secuinstmarkaddr = patInsuranceInfo.selectSingleNode("secuinstmarkaddr").text //model.getValue("/root/main/patinfo/addr"); // 보장기관기호 var tmpsecuinstmarkaddr = secuinstmarkaddr.split(" "); var tmpaddr = ""; for(var idx = 0; idx < 2; idx++) { tmpaddr += tmpsecuinstmarkaddr[idx]; if(idx == 0) tmpaddr += " "; } // 세대주성명 //function fSetItemDataByItemBaseCd(levelcd, basecd, itemval, targetRef) //fSetItemDataByItemBaseCd("0005234.0000638.0000457", "0000457", model.getValue("/root/hidden/patinfo/hngnm")); if(secuinstmark != "") fSetItemDataByItemBaseCd("0020648", "0020648", secuinstmark); // 보장기관기호 if(tmpaddr != "") fSetItemDataByItemBaseCd("0020647", "0020647", tmpaddr); // 보장기관명 if(estmmark != "") fSetItemDataByItemBaseCd("0016841.0014561", "0014561", estmmark); // 증번호 if(hshdnm != "") fSetItemDataByItemBaseCd("0016841.0014559", "0014559", hshdnm); // 세대주명 //fSetItemDataByItemBaseCd("0016841.0014559", "0014559", hshdnm); } catch(e) { } } function fRemoveGrdCdata() { try { var pageInfo = new PAGEINFO(); var formcd = model.getValue("/root/main/forminfo/formmast/formcd"); //model.makeValue("/root/send/reqdata/hardcdno", "1118"); // 진단서 발행시 보험유형별로 다르게 출력되는 서식 //submit("TRMRF03104"); //if(model.getValue("/root/main/hardcdlist[trgtcd="+ formcd +"]/trgtcd") != "") //{ var instcd = getUserInfo("dutplceinstcd"); model.makeValue("/root/main/recinfo/instcd", instcd); // 그리드의 rowno에서 CDATA를 처리한다. var grdlist = findNodeset(model, pageInfo.RecinfoGridRef); for(var idx = 0; idx < grdlist.length; idx++) { var SubgrdNode = grdlist.item(idx); if(SubgrdNode != null) { var recitemNodes = SubgrdNode.selectNodes("recitem"); for(var recidx = 0; recidx < recitemNodes.length; recidx++) { var recitemNode = recitemNodes.item(recidx); if(recitemNode.selectSingleNode("rowno").text.isNumber() == true) recitemNode.selectSingleNode("rowno").text = recitemNode.selectSingleNode("rowno").text; //recitemNode.selectSingleNode("reccnts").text = recitemNode.selectSingleNode("reccnts").text; } } } //} } catch(e) { } } //만들었는데... 보니깐 있는 기능이더라... ㅠㅠ /* function fSrchDiag(degnitemno){ try{ var grdobj = event.ptarget.parent; var srchflag = ""; var diagsrchcond1 = ""; var pid = opener.model.getValue("/root/main/paminfo/pid"); var orddd = opener.model.getValue("/root/main/paminfo/orddd"); var diagnm = ""; var rowpos = grdobj.row; var colpos = grdobj.col; var selRow = rowpos - 1; if(rowpos == 1) return; if (colpos == 4) { // 진단명 diagnm = model.getValue("/root/main/recinfo/grid[" + rowpos + "]/recitem[degnitemcd='0000960001' and rowno='" + (selRow) + "' and colno='2']/rectermnm"); srchflag = "2"; diagsrchcond1 = "2"; } else if (colpos == 3) { //진단코드 diagnm = model.getValue("/root/main/recinfo/grid[" + rowpos + "]/recitem[degnitemcd='0000960001' and rowno='" + (selRow) + "' and colno='2']/rectermcd"); srchflag = "1"; diagsrchcond1 = "1"; } var isHangul = fIsHangul (diagnm); if ( isNull(diagnm)) { //한글일때는 1글자만 넣어도 검색가능 messageBox ( "검색어를", "C001" ); return; } else if ( isHangul == "E" ){ //영문,숫자일때는 3글자 넣어야 검색가능 if ( diagnm.length < 2 ){ messageBox ( "2글자 이상", "C001" ); return; } } //진단팝업에 넘길 정보 setting setParameter ( "SPMMO00800_cond1", srchflag ); setParameter ( "SPMMO00800_cond2", diagsrchcond1); setParameter ( "SPMMO00800_cond3", isHangul ); setParameter ( "SPMMO00800_cond4", orddd); setParameter ( "SPMMO00800_cond5", diagnm ); setParameter ( "SPMMO00800_srchmode", "P" ); var xpt = window.screenleft + 200; var ypt = window.screenTop + 110; var coord = getRelativeCoordinate ( xpt, ypt ); var mon = coord[0]; xpt = coord[1]; ypt = coord[2]; modal ( "SPMMO00800", mon, xpt, ypt, "diagsrch", "", "", "", false ); if ( getParameter( "SPMMO00800_rtn_useyn" ) == "Y" ) { var diagInfo = getParameter( "SPMMO00800_rtn" ); var pageInfo = new PAGEINFO(); var diagRow = diagInfo.split ( "▩" ).length; var formprogflag = model.getValue(pageInfo.formmastRef + "/formprogflag"); var langflag = model.getValue(pageInfo.formmastRef + "/langflag"); for(var i = 1; i < diagRow - 1; i++){ var icd10cd = getArrayData ( diagInfo, i, 8, "▩", "▦" ); var diagcd = getArrayData ( diagInfo, i, 9, "▩", "▦" ); var diagengnm = getArrayData ( diagInfo, i, 2, "▩", "▦" ); var diaghngnm = getArrayData ( diagInfo, i, 3, "▩", "▦" ); var spclinfo = getArrayData ( diagInfo, i, 5, "▩", "▦" ); } if(formprogflag == "PROF"){ diagcd = icd10cd; if(langflag != "EN") diagengnm = diaghngnm; } //진단코드, 진단명을 그리드 인스턴스에 추가 var grdNode = instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno='" + degnitemno + "']"); var recitemNodes = grdNode.item(selRow); var recitemNode = recitemNodes.selectSingleNode("recitem[degnitemlevlcd='0016650.0000960.0000960']"); recitemNode.selectSingleNode("rectermcd").text = diagcd; recitemNode.selectSingleNode("rectermnm").text = diagengnm; //한줄추가 addGridRowEx(degnitemno, 'DGN'); model.setfocus("DGN_" + degnitemno); grdobj.row = grdobj.rows - 1; // 진단코드나 진단명 입력 후 다음 셀에 edit 상태 생성 grdobj.refresh(); if (colpos == 4) { grdobj.col = grdobj.colref("recitem[colno = '2']/rectermnm"); grdobj.editCell(); } else if (colpos == 3) { grdobj.col = grdobj.colref("recitem[colno = '2']/rectermcd"); grdobj.editCell(); } } //document.controls("DGN_" + degnitemno).rebuild(); } catch(E){ } } */ /** * @desc : 진단명찾기 한줄추가 * @param : flag : 진단명검색, 코드검색 * @return : void * @authur : 강지훈 2009-06-18 오후 2:17:59 */ function fSetGridAddRow(){ try { var grdNOdes = model.instance1.selectNodes("/root/main/forminfo/formdegn[degnitemkind = 'DGN']/degnitemno"); var grddegnitemno = ""; for(var i = 0; i < grdNOdes.length; i++) { var node = grdNOdes.item(i); grddegnitemno = node.text; var grdObj = document.controls("DGN_" + grddegnitemno); if (grdObj != null) { var pageInfo = new PAGEINFO(); var dgnRecInfo = instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno='" + grddegnitemno + "']"); var cnt = dgnRecInfo.length; //가장 큰 rownum을 가지고 있는 grid인스턴스의 위치를 찾는다. var lastRow = 0; var lastItem = 0; for(var j = 0 ; j < cnt ; j++){ var dgnRecNode = dgnRecInfo.item(j); var dgnRecItemRow = dgnRecNode.selectSingleNode("recitem/rowno").text; if(lastRow < dgnRecItemRow){ lastRow = dgnRecItemRow; lastItem = j; } } var dgnLastNode = dgnRecInfo.item(lastItem); var dgnTermNode = dgnLastNode.selectNodes("recitem"); //가장마지막 줄의 진단을 가져온다. var lastDiagTerm = dgnTermNode.item(3).selectSingleNode("rectermcd").text //가장 마지막줄에 진단이있으면 빈줄 하나 추가 if(lastDiagTerm != ""){ addGridRowEx(grddegnitemno, 'DGN'); grdObj.isreadonly(grdObj.rows - 1, grdObj.colRef("recitem[colno = '2']/rectermnm")) = false; } else{ if(cnt == 1){ grdObj.isreadonly(grdObj.rows - 1, grdObj.colRef("recitem[colno = '2']/rectermnm")) = false; grdObj.isreadonly(grdObj.rows - 1, grdObj.colRef("recitem[colno = '2']/rectermcd")) = false; } } //한줄도 안들어가있으면 한줄추가 if(cnt < 1){ var grdNode = instance1.selectSingleNode(pageInfo.initrecRef + "/grid[degnitemno='" + grddegnitemno + "']"); grdNode = grdNode.cloneNode(true); var rowno = getNodesetCnt(model, pageInfo.RecinfoGridRef + "[degnitemno='" + grddegnitemno + "']"); grdNode.selectSingleNode("recitem/rowno").text = rowno; var recNode = instance1.selectSingleNode(pageInfo.recRef); if(recNode == null) { model.makeNode(pageInfo.recRef); recNode = instance1.selectSingleNode(pageInfo.recRef); } recNode.appendChild(grdNode); grdObj.rebuild(); model.refresh(); grdObj.isreadonly(grdObj.rows - 1, grdObj.colRef("recitem[colno = '2']/rectermnm")) = false; grdObj.isreadonly(grdObj.rows - 1, grdObj.colRef("recitem[colno = '2']/rectermcd")) = false; } model.setfocus("DGN_" + grddegnitemno); grdObj.row = grdObj.rows - 1; // 진단코드나 진단명 입력 후 다음 셀에 edit 상태 생성 grdObj.refresh(); grdObj.col = grdObj.colref("recitem[colno = '2']/rectermcd"); grdObj.editCell(); } } } catch(e) { return; } } //상급병실확인서 (2009.07.27. 추가) function fSetRoomChargeList(patinfo) { var formcd = model.getValue(g_pageInfo.formmastRef + "/formcd"); var pid = patinfo.selectSingleNode("pid").text; var cretno = patinfo.selectSingleNode("cretno").text; var orddd = patinfo.selectSingleNode("orddd").text; var ioflag = patinfo.selectSingleNode("ioflag").text; var orddeptnm = patinfo.selectSingleNode("orddeptnm").text; var indd = patinfo.selectSingleNode("orddd").text; var dschdd = patinfo.selectSingleNode("dschdd").text; model.makeValue("/root/send/patinfo/pid" , pid); model.makeValue("/root/send/patinfo/cretno", cretno); model.makeValue("/root/send/patinfo/orddd" , orddd); model.makeValue("/root/send/patinfo/ioflag", ioflag); model.makeValue("/root/send/patinfo/dschdd", dschdd); if(submit("TRMRF01210")) { if (ioflag == "O") { //2012/01/20 if(formcd!="0000002792"){ messageBox("해당 환자의 입원정보가", "E014"); return; }else if(formcd=="0000002792"){ messageBox("해당 환자의 입원수진 이력을 선택 후 ", "C003"); body.visible=false; /* if(opener.opener.javascript.model.getValue("/root/main/patinfo/pid")!=""){ opener.opener.javascript.event.keyCode = 13; opener.opener.javascript.ipt_pid.dispatch("onkeypress"); opener.opener.javascript.event.keyCode = ""; model.resetInstanceNode(); } */ return; } //2012/01/20 } //입원기간 : 0002025 if (ioflag != "O") { if (indd != "") { indd = indd.toDate().getDateFormat("YYYY-MM-DD"); } if (dschdd != "" && dschdd != "재원중") { dschdd = dschdd.toDate().getDateFormat("YYYY-MM-DD"); } } fSetItemDataByItemBaseCd("0000965", "0000965", orddeptnm); fSetItemDataByItemBaseCd("0002025", "0002025", indd + " ~ " + dschdd); fGetRoomChargeList(pid, orddd, cretno); fSetPatRoomChargeInfo(pid, orddd, cretno); } } /** * @desc : 수정모드로 진입할때 flag를 넣어준다. * @param : flag : 수정모드 여부 * @return : void * @authur : 강지훈 2009-07-31 오후 5:22:45 */ function fModiStart(){ model.removeNodeSet("/root/temp/modiflag"); model.makeValue("/root/temp/modiflag", "Y"); } /** * @desc : 행추가버튼 기능 * @param : flag : 수정모드 여부 * @return : void * @authur : 강지훈 2009-08-08 오전 11:22:36 */ function fDiagAddRow(){ var menuNode = findCntxMenu("fDiagAddRow"); var paramlist = findCntxMenuParamList(menuNode); var degnitemno = paramlist[0].value; var type = paramlist[1].value; addGridRowEx(degnitemno, type); /* addGridRowEx 함수에 동일 코드가 있음. 2010.03.20 주희경 var grdObj = document.controls("DGN_" + degnitemno); grdObj.isreadonly(grdObj.rows - 1, grdObj.colRef("recitem[colno = '2']/rectermnm")) = false; grdObj.isreadonly(grdObj.rows - 1, grdObj.colRef("recitem[colno = '2']/rectermcd")) = false;*/ } /* * 2010.04.13, 주희경 진단명, 수술명, 주호소의 경우 돋보기 버튼도 readonly 기능 가능하도록 기능 추가 * 진단명, 수술명, 주호소의 그리드가 bind에 의해 enable 될 때 돋보기 버튼도 enable 처리 */ function fEnableBtn( degnitemno ) { eval("BTN_"+degnitemno+"_EXT1").disabled = false; //진단명, 수술명, 주호소에 있는 돋보기 버튼 enable } /* * 2010.04.13, 주희경 degnitemkind별로 삭제 가능하도록 기능 추가 */ function fRemoveValue(degnitemlevlcd, degnitemno) { var nodecnt = model.getXPathValue("count(/root/main/recinfo/recitem[degnitemlevlcd='" + degnitemlevlcd + "']/reccnts)"); if ( degnitemno != null ) { nodecnt = model.getXPathValue("count(/root/main/recinfo/grid/recitem[degnitemlevlcd='" + degnitemlevlcd + "']/reccnts)"); } if ( nodecnt > 0) { var degnitemkind = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + degnitemlevlcd + "']/degnitemkind"); if ( degnitemno != null ) { degnitemkind = model.getValue("/root/main/recinfo/grid/recitem[degnitemlevlcd='" + degnitemlevlcd + "']/degnitemkind"); orgdegnitemkindCnt = model.getXPathValue("count(/root/main/recinfo/grid/recitem[degnitemlevlcd='" + degnitemlevlcd + "']/orgdegnitemkind)"); //orgdegnitemkind 정보가 있는 경우 orgdegnitemkind로 셋팅 if ( orgdegnitemkindCnt > 0 ) { degnitemkind = model.getValue("/root/main/recinfo/grid/recitem[degnitemlevlcd='" + degnitemlevlcd + "']/orgdegnitemkind"); } } if ( degnitemkind == "RDO" || degnitemkind == "CHK" || degnitemkind == "SSL" || degnitemkind == "BOL" ) { model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + degnitemlevlcd + "']/rectermcd", ""); } else if ( degnitemkind == "CMB" ) { model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + degnitemlevlcd + "']/rectermcd", ""); model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + degnitemlevlcd + "']/rectermnm", ""); } else if ( degnitemkind == "MSL" ) { var rectermcdNodes = instance1.selectNodes("/root/main/recinfo/recitem[degnitemlevlcd='" + degnitemlevlcd + "']/rectermcd"); for (i=0; i 1) ctrl = parentCtrl.createChild("xforms:caption", "id:" + ctrlid + "; cursor:hand; left:" + l + "px; top:" + t + "px; width:" + ctrlSize.cx + "px; height:" + ctrlSize.cy + "px; vertical-align:middle; visibility:" + visible + "; url:" + srcaddr + "; " + "popWid:" + popWid + "; popHei:" + popHei + "; maxsize:" + popMax + "; userdefine:" + popUser + "; "); else ctrl = parentCtrl.createChild("xforms:caption", "id:" + ctrlid + "; cursor:hand; left:" + l + "px; top:" + t + "px; width:" + ctrlSize.cx + "px; height:" + ctrlSize.cy + "px; vertical-align:middle; visibility:" + visible + "; font-weight:bold; url:" + srcaddr + "; " + "popWid:" + popWid + "; popHei:" + popHei + "; maxsize:" + popMax + "; userdefine:" + popUser + "; "); ctrl.attribute("text") = degnitemnm; ctrl.attribute("ctrltype") = "label"; // label.top:-1 을 label.top:0 으로 조정 var alignValue = getStyleValue(degnattrval, "label.top"); if(alignValue == "-1") { degnattrval = degnattrval.setReplaceWord("label.top:" + alignValue, "label.top:0"); } setDegnAttrVal(ctrl, degnattrval, "label"); } ctrl.attribute("degnitemno") = degnitemno; //최종위치 보정(group 제거 관련) if(g_recordMode == "record") { if(parseInt(ctrl.attribute("left")) != l) ctrl.attribute("left") = parseInt(ctrl.attribute("left")) + parseInt(supCtrl.attribute("left")) + "px"; if(parseInt(ctrl.attribute("top")) != t) ctrl.attribute("top") = parseInt(ctrl.attribute("top")) + parseInt(supCtrl.attribute("top")) + "px"; ctrl.attribute("onclick") = "fRunUrl(" + degnitemno + ");"; } /* supCtrl.attribute("width") = parseInt(x) + parseInt(ctrlSize.cx) + "px"; if(ctrlSize.cy > parseInt(supCtrl.attribute("height"))) supCtrl.attribute("height") = parseInt(ctrlSize.cy) + "px"; */ if(ctrltype == "1") // 버튼 pageInfo.curxpos += parseInt(ctrlSize.cx) + pageInfo.offsetx; addChild(ctrl, g_recordMode); return ctrlSize; } function fRunUrl(degnitemno) { try { ctrlid = "URL_" + degnitemno; var btn = document.controls("URL_" + degnitemno); var addr = btn.attribute("url"); addr = addr.setReplaceWord("colon", ":"); addr = addr.setReplaceWord("slash", "/"); var popWid = btn.attribute("popWid"); var popHei = btn.attribute("popHei"); var popMax = btn.attribute("maxsize"); var popUser = btn.attribute("userdefine"); var monNo = getCurrentMonitorNumber(); var res = ""; if(popMax == "true") { var resarr = app.monitorResolution; var reslist = resarr.split("|"); if(reslist.length > 0) { if(monNo == "1") res = reslist[0].split(","); // 첫번째 메인 모니터 else res = reslist[1].split(","); // 두번째 메인 모니터 } if(res.length == 2) { popWid = res[0]; popHei = res[1]; } } if(addr != "") { setParameter("SPMRF05600_URL", addr); model.refresh(); var attr = ""; if(popWid != "" && popHei != "") { //attr = "width:" + popWid + "px; height:" + popHei + "px; caption:visible; resize:true;"; //open("SPMRF05600", MonitorNum, 50, 0, "", "", "", attr); //attr = "scrollbars:yes; toolbar:yes; width:" + popWid + "px; height:" + popHei + "px; caption:visible; resize:true;"; attr = "width:" + popWid + "; height:" + popHei + "; sysmenu:visible; min:visible; max:true; resize:true; caption:visible;"; open("SPMRF05600", monNo, 50, 0, "", "", "", attr); } else open("SPMRF05600", monNo, 50, 0, "", "", "", "width:1200px; height:800px; caption:visible; resize:true;"); } } catch(e) {} } function fBtnLength(degnitemnm) { // Byte 수를 저장할 변수 var rtnValue = 0; // Value 값의 길이만큼 loop for(var i=0; i < degnitemnm.length; i++) { //한글이 들어오면 255보다 크다 (degnitemnm.charCodeAt(i) > 255) ? rtnValue += 1 : rtnValue += 0.5; } return Math.ceil(rtnValue); } function fSetEmptyValGrupcd(valgrupcd) { try { if(valgrupcd != "") { var vallistNode = findNodeset(model, "/root/main/forminfo/vallist[grupcd = '" + valgrupcd + "']"); for(var idx = 0; idx < vallistNode.length; idx++) { var SubValNode = vallistNode.item(idx); if(SubValNode != null) { var valcd = SubValNode.selectSingleNode("valcd").text; if(SubValNode.selectSingleNode("emptyitemnm") == null) { var EmptyNode = instance1.createElement("emptyitemnm"); SubValNode.appendChild(EmptyNode); } if(SubValNode.selectSingleNode("emptyitemnm") != null) { model.setValue("/root/main/forminfo/vallist[grupcd = '" + valgrupcd + "' and valcd='" + valcd +"']/emptyitemnm", " ", true); } } } model.refresh(); /// Opener var vallistNode = findNodeset(opener.model, "/root/main/forminfo/vallist[grupcd = '" + valgrupcd + "']"); for(var idx = 0; idx < vallistNode.length; idx++) { var SubValNode = vallistNode.item(idx); if(SubValNode != null) { var valcd = SubValNode.selectSingleNode("valcd").text; if(SubValNode.selectSingleNode("emptyitemnm") == null) { var EmptyNode = instance1.createElement("emptyitemnm"); SubValNode.appendChild(EmptyNode); } if(SubValNode.selectSingleNode("emptyitemnm") != null) { opener.model.setValue("/root/main/forminfo/vallist[grupcd = '" + valgrupcd + "' and valcd='" + valcd +"']/emptyitemnm", " ", true); } } } } } catch(e) { } } function fSelCtrlHidden() { try { var pageInfo = new PAGEINFO(); // 전체 formdegn 에서 RDO, CHK 아이템을 찾는다. var formdegnlistNode = findNodeset(model, "/root/main/forminfo/formdegn[degnitemkind = 'RDO' or degnitemkind = 'CHK']"); var formdegnNode = ""; var degnattrval = ""; var valgrupcd = ""; var degnitemno = ""; var degnitemkind = ""; // 아이템을 루프돌면서 degnattrval 을 확인한다. for(var idx = 0; idx < formdegnlistNode.length; idx++) { formdegnNode = formdegnlistNode.item(idx); if(formdegnNode != null) { degnattrval = formdegnNode.selectSingleNode("degnattrval").text; valgrupcd = formdegnNode.selectSingleNode("valgrupcd").text; degnitemno = formdegnNode.selectSingleNode("degnitemno").text; degnitemkind = formdegnNode.selectSingleNode("degnitemkind").text; if(isSearchString(degnattrval, "ctrl.sublabel") == true) { // 아이템명을 빈값으로 만든 노드를 추가한다. fSetEmptyValGrupcd(valgrupcd); } } } } catch(e) { } } function fBoolCheckFunc( itemno ) { var ctrlid = "BOL_"+itemno; model.setValue("/root/main/recinfo/recitem[degnitemno='"+itemno+"']/rectermcd", eval(ctrlid).item(0).value ); document.controls( ctrlid ).refresh(); } /** * @ver : 2010-01-07 * @desc : HELP * @ * @by : 주희경 * @param: * @return: * @--------------------------------------------------- */ function fDrawHelp(pmodel, pageInfo, supCtrl, cursor, x, y, row) { var width = 15; var height = 15; var ctrlSize = new SIZE(width, height); var formcd = model.getValue(pageInfo.formmastRef +"/formcd"); var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq"); var degnitemcd = model.getValue(pageInfo.formdegnRef + "[" + row + "]/degnitemcd"); var degnitemno = model.getValue(pageInfo.formdegnRef +"[" + row + "]/degnitemno"); var degnitemkind = model.getValue(pageInfo.formdegnRef + "[" + row + "]/degnitemkind"); var degnitemlevlno = model.getValue(pageInfo.formdegnRef +"[" + row + "]/degnitemlevlno"); var degnitemnm = model.getValue(pageInfo.formdegnRef +"[" + row + "]/degnitemnm"); var unitnm = model.getValue(pageInfo.formdegnRef +"[" + row + "]/unitnm"); var supdegnitemno = pmodel.getValue(pageInfo.formdegnRef + "[" + row + "]/supdegnitemno"); var valgrupcd = pmodel.getValue(pageInfo.formdegnRef + "[" + row + "]/valgrupcd"); var degnattrval = pmodel.getValue(pageInfo.formdegnRef + "[" + row + "]/degnattrval"); var ctrlid = "HLP_" + degnitemno; var ctrl = null; var parentCtrl = null; var l = 0; var t = 0; if(g_recordMode == "record") { parentCtrl = body; //초기위치 보정 l = parseInt(supCtrl.attribute("left")) + parseInt(x); t = parseInt(supCtrl.attribute("top")) + 0;// parseInt(y); } else if(g_recordMode == "design") { parentCtrl = supCtrl; l = x; t = 0; } else { parentCtrl = supCtrl; l = x; t = y; } ctrl = parentCtrl.createChild("xforms:button", "id:" + ctrlid + "; vertical-align:top; class:help ; _printable:false; cursor:hand; left:"+l+"px; top:"+t+"px;"); ctrl.attribute("degnitemno") = degnitemno; ctrl.attribute("ctrltype") = "ctrl"; supCtrl.attribute("width") = 15; supCtrl.attribute("height") = 15; setDegnAttrVal(ctrl, degnattrval, "ctrl"); if(g_recordMode == "record") { ctrl.attribute("onclick") = "fClickHelp(" + degnitemno + ")"; } pageInfo.curxpos += parseInt(ctrlSize.cx) + pageInfo.offsetx; addChild(ctrl, g_recordMode); model.setFocus(ctrlid); return ctrlSize; } /** * @ver : 2010-01-07 * @desc : HELP버튼을 눌렀을 경우 링크된 도움말을 팝업시킨다. * @ * @by : 주희경 * @param: * @return: * @--------------------------------------------------- */ function fClickHelp(degnitemno) { var itemattrval = model.getValue("/root/main/forminfo/formdegn[degnitemno='"+degnitemno+"']/itemattrval"); var formcd = getStyleValue(itemattrval, "formcd"); setParameter("formcd", formcd); open("SPMRF01100", "", "", "", "", "", "","width:645px; height:835px; resize:false;"); } /** * @ver : 2010-03-19 * @desc : 이전 선택한 컨트롤을 해제하지 않고 연속 select * @ * @by : 주희경 * @param: * @return: * @--------------------------------------------------- */ function fAddSelect( ctrl ) { var len = g_selectionlist.length; g_selectionlist[len] = ctrl.attribute("id"); drawcp(ctrl); } /** * @ver : 2010-03-19 * @desc : 시작인덱스 부터 끝인덱스까지 루프를 돌면서 해당 컨트롤 select * @ * @by : 주희경 * @param: * @return: * @--------------------------------------------------- */ function fSelectLoop( statidx, endidx, bMulti, selRow ) { removeAllSelection(); //현재 선택되어 있는 아이템 모두 해제 for(i=statidx; i