\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