123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884 |
- <?xml version="1.0" encoding="utf-8"?>
- <Script type="xscript4.0"><![CDATA[////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////
- /**
- - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
- 진료 - 이미지편집 ( SSMRF03900.xrw - JScript )
-
- * Version :
- - Ver.1.00.01
-
- * 개발자: 이경희
-
- * 최초작성일:
- - 2007/07/12
-
- * 수정이력:
- - 2008/03/18
-
- * 기타:
-
- - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
- */
- /* viewmode
- 0 : 원본사이즈
- 1 : 스크린에 꽉차게
- 2 : 스크린 세로사이즈에 꽉차게
- 3 : 스크린 가로사이즈에 꽉차게
- 4 : 스크린 가로/사로 사이즈에 맞춤
- */
- var gNewImgeNo = 100000;
- var gIntervalId;
- var INTERVAL_TIME = 150;
- var gPageInfo;
- var gOnlyOneImge = false;
- var isLoadImage = false;
- var arErrorCode = new HashArray();
- var userHomeDir = system.convertRealPath("%MYDOCUMENT%") + "KU20\\CdisImage";
- function cf_TRMMR03603(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- if(nErrorCode < 0) return;
- }
- /**
- * @ver : 2008-03-18
- * @desc : 이미지 편집기 화면 생성 시 실행되어 변수들을 초기화함.(페이지가 팝업인지 아닌지 검사하여 그에 따라 변수 설정이 다름.)
- * @
- * @by : 이경희
- * @param:
- * @return:
- * @---------------------------------------------------
- */
- function fFormReady()
- {
- obj_thumnail.visible = false;
- obj_imge.SetDrawMode(true);
- grd_imgelist.setFormatRowProperty(1,"size",100);
-
- if (utlf_isNull(gPageInfo))
- {
- gPageInfo = new PAGEINFO();
- }
-
- if (frmf_isPopup())
- {
- if (utlf_isNull(this.objects["ds_temp_modalif"]) || utlf_isNull(ds_temp_modalif.getColumn(0,"openmode")))
- {
- gPageInfo.fstLevlItemCd = oOpener.frmf_getParameter("fstlevlitemcd");
- gPageInfo.formCd = oOpener.frmf_getParameter("formcd");
- gPageInfo.formDegnSeq = oOpener.frmf_getParameter("formdegnseq");
- }
- else
- {
- if (!utlf_isNull(ds_temp_modalif.getColumn(0,"imgecd")))
- {
- var imgecd = ds_temp_modalif.getColumn(0,"imgecd");
-
- if (fRefImgeDateByImgeCd(imgecd))
- {
- fAddImgeByData(imgecd, "", ds_main_imgview2.getColumn(0,"image"));
- }
- }
- }
- }
- }
- /**
- * @ver : 2008-03-18
- * @desc : 이미지 코드로 DB에서 이미지 데이터를 얻어온다.
- * @
- * @by : 이경희
- * @param:
- * @return:
- * @---------------------------------------------------
- */
- function fRefImgeDateByImgeCd(imgecd)
- {
- ds_main_imgview.clearData();
- dsf_makeValue(ds_send, "imgecode", "string", imgecd);
- var oParam = {};
- oParam.id = "TRMMR03603";
- oParam.service = "medirecapp.ImgEdit";
- oParam.method = "reqGetImgeData";
- oParam.inds = "req=ds_send";
- oParam.outds = "ds_main_imgview=imgview";
- oParam.async = false;
- oParam.callback = "cf_TRMMR03603";
- tranf_submit(oParam);
- return (arErrorCode.pop("TRMMR03603") > -1);
- }
- /**
- * @ver : 2008-03-18
- * @desc : 부모윈도우의 lookup버튼 속성을 보이게 한다.
- * @
- * @by : 이경희
- * @param:
- * @return:
- * @---------------------------------------------------
- */
- function fInitFormByParent()
- {
- btn_lookup.visible = true;
- }
- /**
- * @ver : 2008-03-18
- * @desc : 화면 상단의 이미지 리스트에서 이미지를 더블클릭했을때 실행되는 이벤트 함수이다.
- * @
- * @by : 이경희
- * @param:
- * @return:
- * @---------------------------------------------------
- */
- function fDbClick(ecol,obj)
- {
- var imgeno = lf_getBindCellName(grd_imgelist, ecol); // 이미지 번호를 얻어온다.
- imgeno = imgeno.replace("imge", "");
- if(utlf_isNull(imgeno))
- {
- return;
- }
- var idx = ds_data_recitem.findRowExpr("degnitemno == '"+ imgeno +"'");
- imgeInfo = new IMGE_INFO();
- imgeInfo.imgeno = ds_data_recitem.getColumn(idx, "degnitemno");
- imgeInfo.imgecd = ds_data_recitem.getColumn(idx, "degnitemcd");
- imgeInfo.width = ds_data_recitem.getColumn(idx, "width");
- imgeInfo.height = ds_data_recitem.getColumn(idx, "height");
- imgeInfo.recbase64 = objExtCommon.encodeBase64(ds_data_recitem.getColumn(idx, "recimge"));
- if( !utlf_isNull( ds_data_recitem.getColumn(idx, "srcimge")) ){
- imgeInfo.srcbase64 = objExtCommon.encodeBase64(ds_data_recitem.getColumn(idx, "srcimge"));
- }
- // caption 데이터 무조건 CDATA 처리
- var sShape = ds_data_recitem.getColumn(idx, "reccnts");
- if(!utlf_isNull(sShape)){
- sShape = sShape.replace("<", "<").replace(">", ">");
- }
- imgeInfo.shape = fSetCdata(sShape);
-
- imgeInfo.imgenm = ds_data_recitem.getColumn(idx, "degnitemnm");
- imgeInfo.colno = ds_data_recitem.getColumn(idx, "colno");
-
-
- fClearImge();
-
- //2016.05.18 위치 변경
- gImgeInfo = imgeInfo;
- fSetImge(gImgeInfo);
- var lv_nCellCnt = obj.getCellCount("Head");
- for(var i=0; i<lv_nCellCnt; i++)
- {
- lv_sDpType = obj.getCellProperty("Head", i,"displaytype");
- if(lv_sDpType == "checkbox")
- {
- obj.setCellProperty("Head", i,"text",'expr:0');
- }
- }
- obj.setCellProperty("Head", ecol,"text",'expr:1');
- }
- /**
- * @ver : 2008-03-18
- * @desc : 이미지 정보를 초기화한다.
- * @
- * @by : 이경희
- * @param:
- * @return:
- * @---------------------------------------------------
- */
- function IMGE_INFO()
- {
- this.imgeno = "";
- this.imgecd = "";
- this.width = 0;
- this.height = 0;
- this.srcbase64 = "";
- this.recbase64 = "";
-
- this.shape = "";
- this.imgenm = "";
- this.filePath = "";
- this.degnitemlevlno = "";
- this.degnitemlevlcd = "";
- this.colno = "";
- this.rowno = "";
- }
- /**
- * @ver : 2008-03-18
- * @desc : 현재 보이는 이미지를 상단의 이미지 리스트에 추가한다.
- * @
- * @by : 이경희
- * @param: 1) imgeInfo - 이미지데이터(이미지번호, 코드, 가로/세로 사이즈, Base64코드, 이미지이름, 디자인아이템번호, 디자인아이템코드
- * @return:
- * @---------------------------------------------------
- */
- function fAddImgeList(imgeInfo)
- {
- var rowcnt = ds_data_recitem.rowcount;
- dsf_makeValue(ds_data_recitem, "width", "string", imgeInfo.width, rowcnt);
- dsf_makeValue(ds_data_recitem, "height", "string", imgeInfo.height, rowcnt);
- dsf_makeValue(ds_data_recitem, "instcd", "string", "", rowcnt);
- dsf_makeValue(ds_data_recitem, "rechistseq", "string", "", rowcnt);
- dsf_makeValue(ds_data_recitem, "recitemno", "string", "", rowcnt);
-
- dsf_makeValue(ds_data_recitem, "fstlevlitemcd", "string", gPageInfo.fstLevlItemCd, rowcnt);
- dsf_makeValue(ds_data_recitem, "formcd", "string", gPageInfo.formCd, rowcnt);
- dsf_makeValue(ds_data_recitem, "formdegnseq", "string", gPageInfo.formDegnSeq, rowcnt);
- dsf_makeValue(ds_data_recitem, "degnitemno", "string", imgeInfo.imgeno, rowcnt);
- dsf_makeValue(ds_data_recitem, "degnitemcd", "string", imgeInfo.imgecd, rowcnt);
- dsf_makeValue(ds_data_recitem, "degnitemkind", "string", "IMG", rowcnt);
- dsf_makeValue(ds_data_recitem, "degnitemlevlno", "string", imgeInfo.degnitemlevlno, rowcnt);
-
- dsf_makeValue(ds_data_recitem, "degnitemnm", "string", imgeInfo.imgenm, rowcnt);
- dsf_makeValue(ds_data_recitem, "degnitemlevlcd", "string", imgeInfo.degnitemlevlcd, rowcnt);
- dsf_makeValue(ds_data_recitem, "rectermcd", "string", "", rowcnt);
- dsf_makeValue(ds_data_recitem, "rectermnm", "string", "", rowcnt);
- dsf_makeValue(ds_data_recitem, "recitemcd", "string", "", rowcnt);
-
- ds_data_recitem.addColumn("reccnts", "string");
- ds_data_recitem.setColumn(rowcnt, "reccnts",imgeInfo.shape);
-
- if(imgeInfo.imgenm == "LOCALIMG")
- dsf_makeValue(ds_data_recitem, "unitnm", "string", obj_imge.GetImageSizeEx(false), rowcnt);
- else
- dsf_makeValue(ds_data_recitem, "unitnm", "string", "", rowcnt);
-
-
- var recbase64 = objExtCommon.decodeBase64(imgeInfo.recbase64, "BIN");
- ds_data_recitem.addColumn("recimge", "BLOB");
- ds_data_recitem.setColumn(rowcnt, "recimge", recbase64);
- ds_data_recitem.addColumn("srcimge", "BLOB");
- if( !utlf_isNull(imgeInfo.srcbase64) ){
- var srcbase64 = objExtCommon.decodeBase64(imgeInfo.srcbase64, "BIN");
- ds_data_recitem.setColumn(rowcnt, "srcimge", srcbase64);
- }
-
- dsf_makeValue(ds_data_recitem, "rowno", "string", imgeInfo.rowno, rowcnt);
- dsf_makeValue(ds_data_recitem, "colno", "string", imgeInfo.colno, rowcnt);
- if( utlf_isNull(imgeInfo.srcbase64) ){
- fAddthumnail(imgeInfo.imgeno, imgeInfo.imgenm, imgeInfo.recbase64);
- }else{
- fAddthumnail(imgeInfo.imgeno, imgeInfo.imgenm, imgeInfo.srcbase64);
- }
- }
- /**
- * @ver : 2008-03-18
- * @desc : fAddImgeList 함수내에서 실행되며 실질적으로 이미지를 상단의 이미지 리스트에 추가하는 기능을 수행한다.
- * @
- * @by : 이경희
- * @param: 1) pImgeno - 이미지번호
- 2) pImgenm - 이미지이름
- 3) pBase64 - 인코딩된 Base64 이미지 데이터
- * @return:
- * @---------------------------------------------------
- */
- function fAddthumnail(pImgeno, pImgenm, pBase64)
- {
- if (gOnlyOneImge){
- return;
- }
- obj_thumnail.LoadImageBase64(pBase64); // Base64로 인코딩된 이미지를 로드한다.
- var colnm = "imge" + pImgeno;
-
- if(ds_temp_thumblist.rowcount ==0)
- {
- ds_temp_thumblist.addRow();
- }
- var colidx = grd_imgelist.insertContentsCol("body", grd_imgelist.getFormatColCount(), false); // 1
- grd_imgelist.setFormatColProperty(colidx, "size", 100);
- grd_imgelist.setFormatRowProperty(0, "size", 20);
- grd_imgelist.setFormatRowProperty(1, "size", 20);
- grd_imgelist.setFormatRowProperty(2, "size", 80);
-
- grd_imgelist.setCellProperty("head", colidx, "displaytype", "checkbox");
- grd_imgelist.setCellProperty("head", colidx, "edittype", "checkbox");
- grd_imgelist.setCellProperty("head", colidx, "text", "expr:"+0);
- grd_imgelist.setCellProperty("head", grd_imgelist.getFormatColCount() + colidx, "displaytype", "text"); // 2 + 1
- grd_imgelist.setCellProperty("head", grd_imgelist.getFormatColCount() + colidx, "edittype", "none");
- grd_imgelist.setCellProperty("head", grd_imgelist.getFormatColCount() + colidx, "text", pImgenm);
- grd_imgelist.setCellProperty("head", grd_imgelist.getFormatColCount() + colidx, "align", "center");
-
- grd_imgelist.setCellProperty("body", colidx, "displaytype", "image");
- grd_imgelist.setCellProperty("body", colidx, "text", "bind:"+colnm);
- ds_temp_thumblist.addColumn(colnm, "blob");
-
- grd_imgelist.style.backgroundPosition = "center";
- grd_imgelist.style.borderStyle = "none";
- // 100x100 썸네일 이미지 사이즈
- // 썸네일 이미지와 실 크기의 이미지를 모두 저장
- //var Thumbase64 = obj_thumnail.GetThumbnailBase64(100, 100);
-
- var Thumbase64 = objExtCommon.decodeBase64(obj_thumnail.SaveJpegBase64(), "BIN");
- ds_temp_thumblist.setColumn(0,colnm,Thumbase64);
-
- var base64 = obj_thumnail.SaveImageBase64();
- if(ds_temp_imgelist.rowcount == 0)
- {
- ds_temp_imgelist.addRow();
- }
- dsf_makeValue(ds_temp_imgelist, colnm, "string", base64);
- grd_imgelist.setFocus();
-
-
- }
- /**
- * @ver : 2008-03-18
- * @desc : 상단 이미지리스트에서 이미지를 삭제한다.
- * @
- * @by : 이경희
- * @param:
- * @return:
- * @---------------------------------------------------
- */
- function fDelImgeList()
- {
- // 그리드에서 컬럼이 삭제되면 체크박스가 체크되었는지 확인하는 분기에서 제대로
- // 확인이 안되므로, 컬럼을 뒤쪽에서 삭제하도록 한다.
- for(var i = ds_temp_thumblist.colcount-1; i >= 0 ; i--)
- {
- if(grd_imgelist.getCellProperty("Head", i, "text")== "1")
- {
- // 이미지 인스턴스 삭제
- ///root/temp/thumblist/imge
- var imgeno = lf_getBindCellName(grd_imgelist, i);
- imgeno = imgeno.replace("imge", "");
-
- if (imgeno == ds_init_selectnode.getColumn(0,"imgeno"))
- {
- obj_imge.LoadImage("");
-
- dsf_makeValue(ds_init_selectnode, "imgeno", "string", "");
- dsf_makeValue(ds_init_selectnode, "imgenm", "string", "");
- }
- // /root/main/recinfo/recitem/ -> ds_data_recitem
- var filterStr = "degnitemno!='"+imgeno+"'";
- ds_data_recitem.filter(filterStr);
- dsf_copyDsList(["ds_data_temp_recitem"], ["ds_data_recitem"], "replace" ,ivw_imge, ivw_imge);
- ds_data_recitem.filter("");
- ds_data_recitem.clearData();
-
- dsf_copyDsList(["ds_data_recitem"], ["ds_data_temp_recitem"], "replace" ,ivw_imge, ivw_imge);
-
- grd_imgelist.deleteContentsCol(i);
- }
- }
- }
- function fDelImgeList_Old()
- {
- for(var i = 0; i < ds_temp_thumblist.colcount; i++)
- {
- if(false)
- {
- var imgeno = lf_getBindCellName(grd_imgelist, i);
- imgeno = imgeno.replace("imge", "");
-
- if (imgeno == ds_init_selectnode.getColumn(0,"imgeno"))
- {
- obj_imge.LoadImage("");
-
- ds_init_selectnode.setColumn(0, "imgeno" ,"");
- ds_init_selectnode.setColumn(0, "imgenm" ,"");
- }
-
- var filterStr = "degnitemno=='"+imgeno+"'";
- ds_data_recitem.filter(filterStr);
- dsf_copyDsList(["ds_data_temp_recitem"], ["ds_data_recitem"], "replace" ,ivw_imge, ivw_imge);
- ds_data_recitem.filter("");
- ds_data_recitem.clearData();
-
- dsf_copyDsList(["ds_data_recitem"], ["ds_data_temp_recitem"], "replace" ,ivw_imge, ivw_imge);
-
- grd_imgelist.deleteContentsCol(i);
- }
- }
- }
- /**
- * @ver : 2008-03-18
- * @desc : 상단 이미지리스트에서 이미지를 삭제한다.
- * @
- * @by : 이경희
- * @param:
- * @return:
- * @---------------------------------------------------
- */
- var gImgeInfo = null;
- var gOnImgeInfo = new IMGE_INFO();
- function fChgViewMode()
- { obj_imge.position.width = objwidth;
- obj_imge.position.height = objheight;
-
- obj_imge.SetViewMode(parseInt(ds_init_selectnode.getColumn(0, "viewmode")));
- var arrSz = fGetImgeSizeEx();
- if(obj_imge.position.width > arrSz[0]){
- obj_imge.position.width = arrSz[0];
- }else if(obj_imge.position.width <= arrSz[0]){
- obj_imge.position.width = objwidth;
- }
- if(parseInt(ds_init_selectnode.getColumn(0, "viewmode")) != 2){
- if(obj_imge.position.height > arrSz[1]){
- obj_imge.position.height = arrSz[1];
- }else if(obj_imge.position.height <= arrSz[1]){
- obj_imge.position.height = objheight;
- }
- }
- if (!utlf_isNull(gImgeInfo))
- {
- if (obj_imge.IsLoadedImage()){
- gImgeInfo.shape = obj_imge.GetShapeString(); // 라이브이미지에 그려진 도형정보를 반환한다.
- }
- }
- }
- /**
- * @ver : 2008-03-18
- * @desc : 라이브이미지 ActiveX 컨트롤에 로드된 이미지를 Clear한다.
- * @
- * @by : 이경희
- * @param:
- * @return:
- * @---------------------------------------------------
- */
- function fClearImge()
- {
- if (!utlf_isNull(ds_init_selectnode.getColumn(0, "imgeno")))
- {
- if(!utlf_isNull(gImgeInfo))
- {
- var arrSz = fGetImgeSizeEx();
- gImgeInfo.width = arrSz[0];
- gImgeInfo.height = arrSz[1];
- if(gImgeInfo.colno == "MAST")
- {
- var tmpShape = removeXvgTag(obj_imge.GetShapeString());
-
- if(!utlf_isNull(tmpShape))
- {
- if (gOnlyOneImge)
- {
- ds_data_recitem.clearData();
- gOnImgeInfo.shape = obj_imge.GetShapeString();
- gOnImgeInfo.recbase64 = obj_imge.SaveJpegBase64();
- fAddImgeList(gOnImgeInfo); // 이미지 리스트에 이미지를 추가한다.
- }
- else
- {
- var filterStr = "degnitemno == '"+ds_init_selectnode.getColumn(0,"imgeno")+"'";
- ds_data_recitem.filter(filterStr);
- var recItemRefrc = ds_data_recitem.rowcount;
- ds_data_recitem.filter("");
-
- if (recItemRefrc == 0)
- {
- gOnImgeInfo.shape = obj_imge.GetShapeString();
- gOnImgeInfo.recbase64 = obj_imge.SaveJpegBase64();
- fAddImgeList(gOnImgeInfo);
- }
- else
- {
- var filterStr = "degnitemno == '"+ds_init_selectnode.getColumn(0,"imgeno")+"'";
- ds_data_recitem.filter(filterStr);
- ds_data_recitem.setColumn(0, "reccnts", obj_imge.GetShapeString());
- ds_data_recitem.setColumn(0, "recimge", objExtCommon.decodeBase64(obj_imge.SaveJpegBase64(), "BIN"));
- ds_data_recitem.filter("");
- }
- }
- }
- }
- if(gImgeInfo.colno == "FILE")
- {
- if (gOnlyOneImge)
- {
- ds_data_recitem.clearData();
- gOnImgeInfo.shape = obj_imge.GetShapeString();
- gOnImgeInfo.recbase64 = obj_imge.SaveImageBase64();
- fAddImgeList(gOnImgeInfo); // 이미지 리스트에 이미지를 추가한다.
- }
- else
- {
- var filterStr = "degnitemno == '"+ds_init_selectnode.getColumn(0,"imgeno")+"'";
- ds_data_recitem.filter(filterStr);
-
- var recItemRefrc = ds_data_recitem.rowcount;
- ds_data_recitem.filter("");
- // 최초 작성시
- if (recItemRefrc == 0)
- {
- gOnImgeInfo.shape = obj_imge.GetShapeString();
- gOnImgeInfo.recbase64 = obj_imge.SaveImageBase64();
- fAddImgeList(gOnImgeInfo);
- }
- else
- {
- var idx = ds_data_recitem.findRowExpr("degnitemno == '"+ ds_init_selectnode.getColumn(0,"imgeno") +"'");
- ds_data_recitem.setColumn(idx, "unitnm", obj_imge.GetImageSizeEx(false));
- ds_data_recitem.setColumn(idx, "reccnts", obj_imge.GetShapeString());
- ds_data_recitem.setColumn(idx, "recimge", objExtCommon.decodeBase64(obj_imge.SaveImageBase64(), "BIN"));
- }
- }
- }
- }
- }
-
- obj_imge.Clear();
- isLoadImage = false;
- }
- function fLoadBase64str(imgecd, imgenm, base64str)
- {
- imgeInfo = new IMGE_INFO();
- imgeInfo.imgecd = imgecd;
- imgeInfo.imgenm = imgenm;
- imgeInfo.srcbase64 = base64str;
- imgeInfo.colno = "MAST";
-
- obj_imge.LoadImageBase64(base64str);
-
- var arrSz = fGetImgeSize();
-
- imgeInfo.width = arrSz[0];
- imgeInfo.height = arrSz[1];
-
- if(ds_init_selectnode.getColumn(0,"viewmode") != obj_imge.GetViewMode() )
- {
- obj_imge.SetViewMode(parseInt(ds_init_selectnode.getColumn(0,"viewmode")));
- }
-
- obj_imge.visible = true;
- gImgeInfo = imgeInfo;
- gOnImgeInfo = imgeInfo;
- }
- /**
- * @ver : 2008-03-18
- * @desc : 라이브이미지 ActiveX 컨트롤에 로드된 이미지를 Clear한다.
- * @
- * @by : 이경희
- * @param:
- * @return:
- * @---------------------------------------------------
- */
- function fSetImge(imgeInfo)
- {
- try
- {
- if (utlf_isNull(imgeInfo))
- {
- imgeInfo = gImgeInfo;
- }
- if(ds_init_selectnode.rowcount==0){
- ds_init_selectnode.addrow();
- }
- dsf_makeValue(ds_init_selectnode, "imgeno", "string", imgeInfo.imgeno);
- dsf_makeValue(ds_init_selectnode, "imgenm", "string", imgeInfo.imgenm);
- // 뷰모드 체크
- var viewMode = obj_imge.GetViewMode();
-
- if(viewMode != ds_init_selectnode.getColumn(0, "viewmode"))
- {
- obj_imge.SetViewMode(parseInt(ds_init_selectnode.getColumn(0, "viewmode")));
- }
- // 로컬 이미지인지 DB이미지인지 판단
- var localimgeYN = imgeInfo.colno;
-
- if(localimgeYN == "FILE") // 로컬 이미지
- {
-
- if(utlf_isNull(imgeInfo.srcbase64) && !utlf_isNull(imgeInfo.filePath))
- {
- obj_imge.LoadImage(imgeInfo.filePath);
-
- // 2016.05.18 원본이미지 저장로직 추가
- var bData = lf_getImgeData(imgeInfo.filePath);
- if( utlf_isNull(bData) ){
- imgeInfo.srcbase64 = "";//obj_imge.SaveImageBase64();
- }else{
- imgeInfo.srcbase64 = bData;
- }
- }
- else if(!utlf_isNull(imgeInfo.srcbase64))
- {
- obj_imge.LoadImageBase64(imgeInfo.srcbase64);
- }
- else if(utlf_isNull(imgeInfo.srcbase64) && !utlf_isNull(imgeInfo.recbase64)) // 원본이미지가 저장되지 않고 기록이미지만 저장된 경우
- {
- // imgeInfo.srcbase64 = imgeInfo.recbase64;
- // obj_imge.LoadImageBase64(imgeInfo.srcbase64);
- imgeInfo.srcbase64 = "";
- obj_imge.LoadImageBase64(imgeInfo.recbase64);
- }
- else{
- return;
- }
-
- var arrSz = fGetImgeSizeEx();
-
- imgeInfo.width = arrSz[0];
- imgeInfo.height = arrSz[1];
-
- //imgeInfo.srcbase64 = obj_imge.SaveImageBase64();
- if(!utlf_isNull(imgeInfo.shape))
- {
- obj_imge.SetShapeString(imgeInfo.shape);
- }
- isLoadImage = true;
- }
- else if(localimgeYN = "MAST") // DB 이미지
- {
- // 이미지를 DB로부터 불러온다.
- if(!utlf_isNull(imgeInfo.srcbase64))
- {
- obj_imge.LoadImageBase64(imgeInfo.srcbase64);
- isLoadImage = true;
- }
- else
- {
- if(fRefImgeDateByImgeCd(imgeInfo.imgecd))
- {
- imgeInfo.srcbase64 = objExtCommon.encodeBase64(ds_main_imgview.getColumn(0,"imgedata"));
-
- obj_imge.LoadImageBase64(imgeInfo.srcbase64);
-
- isLoadImage = true;
- }
- }
-
- if(!utlf_isNull(imgeInfo.shape))
- {
- obj_imge.SetShapeString(imgeInfo.shape);
- }
- }
- if ( ds_init_selectnode.getColumn(0, "viewmode") != obj_imge.GetViewMode() )
- {
- obj_imge.SetViewMode(parseInt(ds_init_selectnode.getColumn(0,"viewmode")));
- }
-
- obj_imge.visible = true;
- /////////////////////
- var arrSz = fGetImgeSizeEx();
-
- obj_imge.position.width = objwidth;
- obj_imge.position.height = objheight;
-
- if(obj_imge.position.width > arrSz[0]){
- obj_imge.position.width = arrSz[0];
- }else if(obj_imge.position.width <= arrSz[0]){
- obj_imge.position.width = objwidth;
- }
- if(parseInt(ds_init_selectnode.getColumn(0, "viewmode")) != 2){
- if(obj_imge.position.height > arrSz[1]){
- obj_imge.position.height = arrSz[1];
- }else if(obj_imge.position.height <= arrSz[1]){
- obj_imge.position.height = objheight;
- }
- }
- /////////////////
- gImgeInfo = imgeInfo;
- gOnImgeInfo = imgeInfo;
- grd_imgelist.setFocus();
- }
- catch (e)
- {
- sysf_catchTrace(e);
- }
- }
- function fAddImgeByRec()
- {
- var cnt = ds_data_recitem.rowcount;
- if (cnt > 0)
- {
- for (var i = 0; i < cnt; i++)
- {
- var objImageData = objExtCommon.encodeBase64(ds_data_recitem.getColumn(i, "recimge"));
- fAddthumnail(ds_data_recitem.getColumn(i, "degnitemno"),ds_data_recitem.getColumn(i, "degnitemnm"), objImageData);
- }
- }
- grd_imgelist.setFocus();
- }
- /**
- * @ver : 2008-03-18
- * @desc : 라이브이미지 ActiveX 컨트롤에 이미지를 로드한다.
- * @
- * @by : 이경희
- * @param: 1) imgecd - 이미지코드
- 2) imgenm - 이미지이름
- 3) imgedata - 이미지데이터
- 4) shape - 도형정보
- * @return:
- * @---------------------------------------------------
- */
- function fAddImgeByData(imgecd, imgenm, imgedata, shape)
- {
- var imgeInfo = new IMGE_INFO();
- imgeInfo.imgeno = ++gNewImgeNo;
- imgeInfo.imgecd = imgecd;
- imgeInfo.imgenm = imgenm;
- imgeInfo.srcbase64 = imgedata;
-
- //imgeInfo.degnitemlevlcd = gPageInfo.degnItemLevlCd +"."+ imgeInfo.imgecd;
- imgeInfo.degnitemlevlcd = imgeInfo.imgecd;
- imgeInfo.degnitemlevlno = parseInt(gPageInfo.degnitemlevlno) + 1;
- imgeInfo.rowno = "NUIMG";
- imgeInfo.colno = "MAST";
-
- if (!utlf_isNull(shape))
- {
- imgeInfo.shape = shape;
- }
- fClearImge(); // 화면을 Clear한다.
- fSetImge(imgeInfo); // 이미지를 로드한다.
- }
- /**
- * @ver : 2008-03-18
- * @desc : 라이브이미지 ActiveX 컨트롤에 이미지 파일을 불러들인다.
- * @
- * @by : 이경희
- * @param:
- * @return:
- * @---------------------------------------------------
- */
- function fAddImgeByFile(filepath)
- {
- var bMulti = false;
- if(ds_temp.getColumn(0, "directstatus") == "direct"){
- bMulti = true;
- }
-
- //이윤주 수정(20150202) ==> 2048000 ==> 4M로 ==> 10M로 변경(이택후 교수님 요청:20200107)
- //var selfile = frmf_openImageFileDialog(4194304);
- var selfile = frmf_openImageFileDialog(10485760);
-
- if (utlf_isNull(selfile)){
- return;
- }
-
- var arrfile = selfile;
- for(var i = 0; i < selfile.length; i++)
- {
- var filepath = selfile[i].fullpath;
-
- imgeInfo = new IMGE_INFO();
- imgeInfo.imgeno = ++gNewImgeNo;
- imgeInfo.imgecd = "Z000000001";
- imgeInfo.imgenm = "LOCALIMG";
- imgeInfo.srcbase64 = "";
- imgeInfo.recbase64 = "";
- imgeInfo.shape = "";
- imgeInfo.filePath = filepath;
-
- //imgeInfo.degnitemlevlcd = gPageInfo.degnItemLevlCd +"."+ imgeInfo.imgecd;
- imgeInfo.degnitemlevlcd = imgeInfo.imgecd;
- imgeInfo.degnitemlevlno = parseInt(gPageInfo.degnitemlevlno) + 1;
- imgeInfo.rowno = "NUIMG";
- imgeInfo.colno = "FILE";
- if(bMulti)
- {
- obj_thumnail.LoadImage(filepath);
- imgeInfo.shape = "";
- var viewMode = obj_imge.GetViewMode();
-
- if(viewMode != ds_init_selectnode.getColumn(0, "viewmode"))
- {
- obj_imge.SetViewMode(parseInt(ds_init_selectnode.getColumn(0, "viewmode")));
- }
-
- var livectrl = "obj_imge";
-
- if(!utlf_isNull(livectrl))
- {
- livectrl.visible = false;
- }
-
- obj_imge.LoadImage(imgeInfo.filePath);
-
- var arrSz = fGetImgeSizeEx();
-
- imgeInfo.width = arrSz[0];
- imgeInfo.height = arrSz[1];
-
- var bData = lf_getImgeData(imgeInfo.filePath);
-
- imgeInfo.srcbase64 = bData;
- imgeInfo.recbase64 = obj_imge.SaveImageBase64();
- imgeInfo.shape = obj_imge.GetShapeString();
-
- if(!utlf_isNull(livectrl))
- {
- obj_imge.Clear();
- livectrl.visible = true;
- }
-
- fAddImgeList(imgeInfo);
- //////////////////////////////
-
- obj_imge.position.width = objwidth;
- obj_imge.position.height = objheight;
-
- if(obj_imge.position.width > arrSz[0]){
- obj_imge.position.width = arrSz[0];
- }else if(obj_imge.position.width <= arrSz[0]){
- obj_imge.position.width = objwidth;
- }
- if(parseInt(ds_init_selectnode.getColumn(0, "viewmode")) != 2){
- if(obj_imge.position.height > arrSz[1]){
- obj_imge.position.height = arrSz[1];
- }else if(obj_imge.position.height <= arrSz[1]){
- obj_imge.position.height = objheight;
- }
- }
- ///////////////////////
- grd_imgelist.setFocus();
- }
- else
- {
- fClearImge();
- fSetImge(imgeInfo);
- }
- }
- }
- /**
- * @ver : 2008-03-18
- * @desc : 이미지 사이즈를 반환한다.
- * @
- * @by : 이경희
- * @param:
- * @return:
- * @---------------------------------------------------
- */
- function fGetImgeSize()
- {
- var sz = obj_imge.GetImageSize();
- var arrSz = sz.split("|");
- return arrSz;
- }
- /**
- * @ver : 2008-03-18
- * @desc : ActiveX 컨트롤 크기에 맞춰진 이미지 사이즈를 반환한다.
- * @
- * @by : 이경희
- * @param:
- * @return:
- * @---------------------------------------------------
- */
- function fGetImgeSizeEx()
- {
- var sz = obj_imge.GetImageSizeEx(false);
- var arrSz = sz.split("|");
- return arrSz;
- }
- /**
- * @ver : 2008-03-18
- * @desc : 색상을 입히기 위해 팔레트를 클릭했을때 발생하는 함수
- * @
- * @by : 이경희
- * @param:
- * @return:
- * @---------------------------------------------------
- */
- function fColorClicked(bDetail)
- {
- if(utlf_isNull(bDetail)){
- bDetail = false;
- }
- var color;
- if(bDetail){
- color = obj_imge.GetRGBColorDlg();
-
- if(utlf_isNull(color)){
- return ;
- }
- }else{
- color = new String(objForm.style.background.color);
- if(color.length>7){
- color = color.substr(0, color.length-2);
- }
- }
- var clickbtn = grup_bottom.colorpicker.mode;
- if(color == "transparent")
- {
- color = "";
- }
-
- if(clickbtn == "btn_bgcolor") // 배경색
- {
- obj_imge.SetShapeStyle("background-color", color);
-
- // 마지막으로 선택한 배경색을 인스턴스에 저장해둠.
- dsf_makeValue(ds_temp2, "lastBackgroundColor", "string", color);
- }
- else if(clickbtn == "btn_fontcolor" || clickbtn == "btn_text") // 텍스트
- {
- obj_imge.SetShapeStyle("color", color);
- dsf_makeValue(ds_temp2, "lastFontColor", "string", color);
- }else if(clickbtn == "btn_linecolor" || clickbtn == "btn_line" || clickbtn == "btn_freeline" || clickbtn == "btn_rect" || clickbtn == "btn_round" || clickbtn == "btn_point") // 선색
- {
- obj_imge.SetShapeStyle("border-color", color);
- obj_imge.SetShapeStyle("color", color);
-
- if(ds_temp2.rowcount == 0)
- {
- ds_temp2.addRow();
- }
- dsf_makeValue(ds_temp2, "lastLineColor", "string", color);
- }
- grup_bottom.colorpicker.C_SEL.style.backgroundColor = color;
- //grup_bottom.colorpicker.C_SEL.style.background.color = color;
- }
- /**
- * @ver : 2008-03-18
- * @desc : 저장을 클릭했을 때 실행되는 함수
- * @
- * @by : 이경희
- * @param:
- * @return:
- * @---------------------------------------------------
- */
- function fConfirm()
- {
- if(!utlf_isNull(gImgeInfo))
- {
- if(gImgeInfo.colno == "FILE")
- {
- var strShape = obj_imge.GetShapeString();
- gImgeInfo.shape = strShape;
- }
- }
-
- obj_imge.SelectDrawType(0, true);
-
- fClearImge();
- fClearFile();
-
- if(!utlf_isNull(gImgeInfo))
- {
- if(gImgeInfo.colno == "MAST")
- {
- // DB에서 불러온 이미지므로 원본이미지 Base64코드는 삭제한다.
- gImgeInfo.srcbase64 = "";
- }
- }
- parent.fConfirm(gPageInfo.fstLevlItemCd);
- }
- /**
- * @ver : 2008-03-18
- * @desc : 팔레트를 보여주는 함수
- * @
- * @by : 이경희
- * @param:
- * @return:
- * @---------------------------------------------------
- */
- function fShowPltte(btnid)
- {
- if(btnid == "btn_text" || btnid == "btn_fontcolor")
- {
- grup_bottom.colorpicker.cap_colorpicker.text = "글자색";
-
- var color = "#000000";
- var lastFontColor = ds_temp2.getColumn(0, "lastFontColor");
- // 기본 글자색 설정
- if(!utlf_isNull(lastFontColor)){
- color = lastFontColor;
- }
- ds_init_selectnode.setColumn(0, "fontcolor", color);
- obj_imge.SetShapeStyle("color", color);
- grup_bottom.colorpicker.C_SEL.style.backgroundColor = color;
- grup_bottom.colorpicker.combo_fontName.enable = true;
- grup_bottom.colorpicker.combo_fontSize.enable = true;
- grup_bottom.colorpicker.img_font_style.enable = true;
-
- grup_bottom.colorpicker.img_font_weight.enable = true;
-
- grup_bottom.colorpicker.img_font_weight.style.backgroundImage = "../../../IMAGES/emr/MR/icon_13_select.png";
- grup_bottom.colorpicker.img_font_weight.style.font.type ="bold";
-
- }else if(btnid == "btn_linecolor" || btnid == "btn_line" || btnid == "btn_freeline" || btnid == "btn_rect" || btnid == "btn_round" || btnid == "btn_point")
- {
- grup_bottom.colorpicker.cap_colorpicker.text = "선색";
-
- var color = "#ff0000";
- var lastLineColor = ds_temp2.getColumn(0,"lastLineColor");
- // 기본 선색 설정
- if(!utlf_isNull(lastLineColor)){
- color = lastLineColor;
- }
-
- if(ds_init_selectnode.rowcount == 0)
- {
- ds_init_selectnode.addRow();
- }
- ds_init_selectnode.setColumn(0, "linecolor", color);
- obj_imge.SetShapeStyle("border-color", color);
- obj_imge.SetShapeStyle("color", color);
- grup_bottom.colorpicker.C_SEL.style.backgroundColor = color;
-
- // 기본 배경색 설정
- if(btnid != "btn_linecolor"){
- obj_imge.SetShapeStyle("background-color", "");
- }
- grup_bottom.colorpicker.combo_fontName.enable = false;
- grup_bottom.colorpicker.combo_fontSize.enable = false;
- grup_bottom.colorpicker.img_font_weight.enable = false;
- grup_bottom.colorpicker.img_font_style.enable = false;
- }else if(btnid == "btn_bgcolor")
- {
- grup_bottom.colorpicker.cap_colorpicker.text = "배경색";
-
- var color = "";
- var lastBgColor = ds_temp2.getColumn(0,"lastBackgroundColor");
-
- // 기본 배경색 설정
- if(!utlf_isNull(lastBgColor)){
- color = lastBgColor;
- }
- obj_imge.SetShapeStyle("background-color", "");
- if(utlf_isNull(color))
- grup_bottom.colorpicker.C_SEL.style.backgroundColor = "#ffffff";
- else
- grup_bottom.colorpicker.C_SEL.style.backgroundColor = color;
- }else if(btnid == "btn_select" || btnid == "btn_del" || btnid == "btn_drawcancel" || btnid == "btn_turnleft" || btnid == "btn_turnright" || btnid == "btn_undo" || btnid == "btn_redo")
- {
- grup_bottom.colorpicker.visible = false;
- grup_bottom.colorpicker.mode = btnid;
- return;
- }
-
- if(utlf_isNull(grup_bottom.colorpicker.mode) || grup_bottom.colorpicker.mode != btnid)
- {
- grup_bottom.colorpicker.visible = true;
- }
- else if(grup_bottom.colorpicker.mode == btnid)
- {
- if (grup_bottom.colorpicker.visible)
- {
- grup_bottom.colorpicker.visible = true;
- }
- else
- {
- grup_bottom.colorpicker.visible = true;
- }
- }
- grup_bottom.colorpicker.mode = btnid;
- }
- /**
- * @ver : 2008-03-18
- * @desc : 여러 이미지를 하나의 이미지로 합쳐 로드한다.
- * @
- * @by : 이경희
- * @param:
- * @return:
- * @---------------------------------------------------
- */
- function fMergeImge()
- {
- var cnt = 0;
- for(var col = 1; col < ds_temp_thumblist.colcount; col++)
- {
- if(grd_imgelist.getCellProperty("Head", col, "text")== "1")
- {
- cnt++;
- }
- }
-
- if(isLoadImage == true)
- {
- if(cnt == 0)
- {
- sysf_messageBox("선택된 이미지가 최소 2개 이상인지 " ,"I007");
- checkbox1.value = false;
- return;
- }
- }
- else
- {
- if(cnt < 2)
- {
- sysf_messageBox("선택된 이미지가 최소 2개 이상인지 " ,"I007");
- checkbox1.value = false;
- return;
- }
- }
- if(!obj_imge.SetCanvas())
- {
- if(ds_temp.rowcount == 0){
- ds_temp.addRow();
- }
- ds_temp.setColumn(0, "mergestatus", "cancel");
- return;
- }
-
- for(var i = 1; i < ds_temp_thumblist.colcount; i++)
- {
- if(grd_imgelist.getCellProperty("Head", i, "text") == "1")
- {
- var AttriName = grd_imgelist.binddataset;
- var nodeName = AttriName.replace("thumblist", "imgelist");
- var degnitemno = lf_getBindCellName(grd_imgelist, i);
- degnitemno = degnitemno.replace("imge", "");
- var imgeData = objExtCommon.encodeBase64(ds_data_recitem.lookup("degnitemno", degnitemno, "recimge"));
- if(ds_data_recitem.rowcount ==0){
- ds_data_recitem.addRow();
- }
- if(!utlf_isNull(imgeData))
- {
- obj_imge.AddImageToCanvas(imgeData);
-
- }
- }
- }
- obj_imge.LoadCanvas(); // 합쳐진 이미지를 로드한다
- obj_imge.position.height = objheight;
- obj_imge.position.width = objheight;
- cmb_viewmode.enable = false;
-
- if(ds_temp.rowcount == 0){
- ds_temp.addRow();
- }
- ds_temp.setColumn(0, "mergestatus", "merge");
- }
- /**
- * @ver : 2008-08-01
- * @desc : 이미지 합친 상태를 취소
- * @
- * @by : 이경희
- * @param:
- * @return:
- * @---------------------------------------------------
- */
- function fCancelMergeImage()
- {
- if(ds_temp.getColumn(0, "mergestatus") == "merge")
- {
- obj_imge.RestoreStatus();
- var arrSz = fGetImgeSizeEx();
-
- if(obj_imge.position.width > arrSz[0]){
- obj_imge.position.width = arrSz[0];
- }else if(obj_imge.position.width <= arrSz[0]){
- obj_imge.position.width = objwidth;
- }
- if(obj_imge.position.height > arrSz[1]){
- obj_imge.position.height = arrSz[1];
- }else if(obj_imge.position.height <= arrSz[1]){
- obj_imge.position.height = objheight;
- }
-
- cmb_viewmode.enable = true;
- if(ds_temp.rowcount ==0){
- ds_temp.addRow();
- }
- ds_temp.setColumn(0, "mergestatus", "");
- return;
- }
- }
- /**
- * @ver : 2008-03-18
- * @desc : 상단 이미지 리스트에서 이미지를 선택했을때 발생하는 이벤트 함수
- * @
- * @by : 이경희
- * @param:
- * @return:
- * @---------------------------------------------------
- */
- function fSelectImge(col)
- {
- col = col;
-
- if(ds_temp_thumblist.rowcount == 0)
- {
- if(grd_imgelist.getCellProperty("head", col, "text") == '0')
- grd_imgelist.setCellProperty("head", col, "text", "1");
- else
- grd_imgelist.setCellProperty("head", col, "text", "0");
- }
- else
- {
- var head_text = grd_imgelist.getCellProperty("head", col, "text");
- if(head_text == "expr:0" || head_text == "0"){
- grd_imgelist.setCellProperty("head", col, "text", "1");
- }else{
- grd_imgelist.setCellProperty("head", col, "text", "0");
- }
- }
-
- grd_imgelist.setFocus();
- }
- /**
- * @desc : 메타데이터에서 caption을 CDATA로 감싼다.
- * @id :
- * @event :
- * @return :
- * @authur : 이경희
- */
- function fSetCdata(metadata)
- {
- var strMeta = metadata;
-
- // 1. CDATA로 감싸져 있는지 확인.
- if(utlf_isSearchString(strMeta, "CDATA") == false)
- {
- var strStCaptionOld = "";
- var strEdCaptionOld = "";
- var strStCaptionNew = "";
- var strEdCaptionNew = "";
-
- // 배열로 반환
- strStCaptionOld = fGetXvgStCaption(strMeta);
- strEdCaptionOld = fGetXvgEdCaption(strMeta);
-
- // for문으로 반복
- for(var idx = 0; idx < strStCaptionOld.length; idx++)
- {
- if(idx == 0)
- {
- // 모든 </caption> 을 ]]]]><![CDATA[></caption> 으로 변경
- strEdCaptionNew = "]]]]><![CDATA[>" + strEdCaptionOld[idx];
- strMeta = strMeta.setReplaceWord(strEdCaptionOld[idx], strEdCaptionNew);
- }
-
- strStCaptionNew = strStCaptionOld[idx] + "<![CDATA[";
-
- strMeta = strMeta.setReplaceWord(strStCaptionOld[idx], strStCaptionNew);
- }
- }
-
- return strMeta;
- }
- /**
- * @desc : 메타데이터에서 caption의 시작 태그를 반환한다.
- * @id :
- * @event :
- * @return :
- * @authur : 이경희
- */
- function fGetXvgStCaption(metadata)
- {
- var strMeta = metadata;
- var getStCaption = new Array();
- var grpexpSt = new RegExp('(<caption[^<>]+>)', 'igm');
-
- if(grpexpSt.test(strMeta) == true)
- {
- getStCaption = strMeta.match(grpexpSt);
-
- strMeta = strMeta.replace(grpexpSt, "");
- }
-
- if(getStCaption.length > 0)
- return getStCaption;
- else
- return "";
- }
- /**
- * @desc : 메타데이터에서 caption의 종료 태그를 반환한다.
- * @id :
- * @event :
- * @return :
- * @authur : 이경희
- */
- function fGetXvgEdCaption(metadata)
- {
- var strMeta = metadata;
- var getEdCaption = new Array();
- var grpexpEd = new RegExp('(</caption>)', 'igm');
-
- if (grpexpEd.test(strMeta) == true)
- {
- getEdCaption = strMeta.match(grpexpEd);
-
- strMeta = strMeta.replace(grpexpEd, "");
- }
-
- if(getEdCaption.length > 0)
- return getEdCaption;
- else
- return "";
- }
- /**
- * @ver : 2009-06-12 오후 9:16:34
- * @desc : 라이브이미지 ActiveX 컨트롤에 이미지 파일을 불러들인다.
- * @
- * @by : 강지훈
- * @param:
- * @return:
- * @---------------------------------------------------
- */
- function fAddFixImgeByFile() //CDIS 이미지 연동
- {
- try{
- //저장되어있는 파일형식 : 저장일_저장시간_환자번호_파일명
- var filepath = "C:\\CdisImage";
- var objFileAttribute = VirtualFile.getFileList("C:\\CdisImage", "*");
- var cnt = objFileAttribute.length;
- var s = "";
- var selfile = "";
- //var objExtCommon = new ExtCommon();
-
- if(cnt > 0){
-
- if(ds_hidden.rowcount == 0){
- ds_hidden.addRow();
- }
- ds_hidden.setColumn(0, "updateflag", "Y");
-
- var vfile = new VirtualFile;
- for (var i = 0; i< cnt; i++)
- {
- //var rtn = vfile.open(filepath + objFileAttribute[i].filename, VirtualFile.openAppend);
-
- // if(rtn == false) trace(objFileAttribute[i].filename + ":" + rtn);
- // if(objFileAttribute[i].isReadOnly()) trace("####### " + objFileAttribute[i].filename + ":" + rtn);
- //vfile.close();
-
- // for( var a in objFileAttribute[i] ){
- // trace( a + " >>> " + objFileAttribute[i][a]);
- // }
-
- var selfileName = objFileAttribute[i].filename;
- var fstIndex = selfileName.indexOf("_");
- var scnIndex = selfileName.indexOf("_", fstIndex+1);
- var trdIndex = selfileName.indexOf("_", scnIndex+1);
-
- var selDate = selfileName.substr(0, fstIndex); //파일이 저장된 날짜를 가져온다.
- var selPid = selfileName.substring(scnIndex + 1, trdIndex); //파일이 저장된 날짜를 가져온다.
-
- var curDate = utlf_getCurrentDate();
- var curPid = appf_getPatientId();
- if(selDate == curDate){
- if(selPid == curPid){
- selfile += filepath + "\\" + objFileAttribute[i].filename;
- selfile += "|";
-
- var sFilePath = filepath + "\\" + objFileAttribute[i].filename;
- var bData = lf_getImgeData(sFilePath);
-
- imgeInfo = new IMGE_INFO();
- imgeInfo.imgeno = ++gNewImgeNo;
- imgeInfo.imgecd = "Z000000001";
- imgeInfo.imgenm = "LOCALIMG";
- imgeInfo.srcbase64 = "";
- imgeInfo.recbase64 = "";
- imgeInfo.shape = "";
- imgeInfo.filePath = sFilePath;
-
- //imgeInfo.degnitemlevlcd = gPageInfo.degnItemLevlCd +"."+ imgeInfo.imgecd;
- imgeInfo.degnitemlevlcd = imgeInfo.imgecd;
- imgeInfo.degnitemlevlno = parseInt(gPageInfo.degnitemlevlno) + 1;
- imgeInfo.rowno = "NUIMG";
- imgeInfo.colno = "FILE";
-
- obj_thumnail.LoadImage(sFilePath);
- imgeInfo.shape = "";
-
- var viewMode = obj_imge.GetViewMode();
-
- if(viewMode != ds_init_selectnode.getColumn(0,"viewmode"))
- {
- obj_imge.SetViewMode(parseInt(ds_init_selectnode.getColumn(0,"viewmode")));
- }
-
- obj_imge.visible = false;
-
- obj_imge.LoadImage(imgeInfo.filePath);
-
- var arrSz = fGetImgeSizeEx();
-
- imgeInfo.width = arrSz[0];
- imgeInfo.height = arrSz[1];
-
- imgeInfo.srcbase64 = bData;
- imgeInfo.recbase64 = obj_imge.SaveImageBase64();
- imgeInfo.shape = obj_imge.GetShapeString();
-
- obj_imge.Clear();
- obj_imge.visible = true;
-
-
- fAddImgeList(imgeInfo);
-
- }
- }
- }
-
- selfile = selfile.substring(0, selfile.lastIndexOf("|"));
- if(selfile.length > 0){
- var arrfile = selfile.split("|");
- // for(var i = 0; i < arrfile.length; i++)
- // {
- // var filepath = arrfile[i];
- //
- //
- // imgeInfo = new IMGE_INFO();
- // imgeInfo.imgeno = ++gNewImgeNo;
- // imgeInfo.imgecd = "Z000000001";
- // imgeInfo.imgenm = "LOCALIMG";
- // imgeInfo.srcbase64 = "";
- // imgeInfo.recbase64 = "";
- // imgeInfo.shape = "";
- // imgeInfo.filePath = filepath;
- //
- // imgeInfo.degnitemlevlcd = gPageInfo.degnItemLevlCd +"."+ imgeInfo.imgecd;
- // imgeInfo.degnitemlevlno = parseInt(gPageInfo.degnitemlevlno) + 1;
- // imgeInfo.rowno = "NUIMG";
- // imgeInfo.colno = "FILE";
- //
- // obj_thumnail.LoadImage(filepath);
- // imgeInfo.shape = "";
- //
- // var viewMode = obj_imge.GetViewMode();
- //
- // if(viewMode != ds_init_selectnode.getColumn(0,"viewmode"))
- // {
- // obj_imge.SetViewMode(parseInt(ds_init_selectnode.getColumn(0,"viewmode")));
- // }
- //
- // obj_imge.visible = false;
- //
- // obj_imge.LoadImage(imgeInfo.filePath);
- //
- // var arrSz = fGetImgeSizeEx();
- //
- // imgeInfo.width = arrSz[0];
- // imgeInfo.height = arrSz[1];
- //
- // imgeInfo.srcbase64 = obj_imge.SaveImageBase64();
- // imgeInfo.recbase64 = imgeInfo.srcbase64;
- // imgeInfo.shape = obj_imge.GetShapeString();
- //
- // obj_imge.Clear();
- // obj_imge.visible = true;
- //
- // fAddImgeList(imgeInfo);
- // }
- }
- else{
- sysf_messageBox("금일 등록된 이미지가 " ,"I004");
- }
- }
- else{
- sysf_messageBox("금일 등록된 이미지가 " ,"I004");
- }
- }
- catch(e){
- sysf_catchTrace(e);
- }
- }
- /**
- * @ver : 2009-06-12 오후 9:16:34
- * @desc : 라이브이미지 ActiveX 컨트롤에 이미지 파일을 불러들인다.
- * @
- * @by : 강지훈
- * @param:
- * @return:
- * @---------------------------------------------------
- */
- function fClearFile(){
- //저장되어있는 파일형식 : 저장일_저장시간_환자번호_파일명
- try{
- var filepath = "C:\\CdisImage";
- var objFileAttribute = VirtualFile.getFileList("C:\\CdisImage", "*");
- var cnt = objFileAttribute.length;
- var selfile = "";
-
- if(cnt > 0){
- for (var i = 0; i< cnt; i++)
- {
- var selfileName = objFileAttribute[i].filename;
- var fstIndex = selfileName.indexOf("_");
- var scnIndex = selfileName.indexOf("_", fstIndex+1);
- var trdIndex = selfileName.indexOf("_", scnIndex+1);
-
- var selDate = selfileName.substr(0, fstIndex); //파일이 저장된 날짜를 가져온다.
- var selPid = selfileName.substring(scnIndex + 1, trdIndex); //파일이 저장된 날짜를 가져온다.
-
- var curDate = utlf_getCurrentDate();
- var curPid = appf_getPatientId();
-
- //1. 과거날짜에 저장된 파일은 모두 지운다. 2. 현재날짜에 업로드된 파일또한 모두 지운다.
- if(selPid == curPid){
- if(selDate < curDate){
- objExtCommon.DeleteFile(filepath + "\\" + objFileAttribute[i].filename);
- }else if(selDate == curDate){
- var updateflag = ds_hidden.getColumn(0, "updateflag");
- if(updateflag == "Y"){
- objExtCommon.DeleteFile(filepath + "\\" + objFileAttribute[i].filename);
- }
- }
- }//if
- }//for
- }//if
- }
- catch(e){
- sysf_catchTrace(e);
- }
- }
- /**
- * @ver :
- * @desc : 클립보드상의 이미지를 로딩한다
- * @
- * @by : 박종훈
- * @param:
- * @return:
- * @---------------------------------------------------
- */
- function fClipBoardImgLoad()
- {
- var bMulti = false;
- if(ds_temp.getColumn(0,"directstatus")== "direct")
- bMulti = true;
-
- var clipbase64 = obj_imge.GetClipboardImage();
-
- if (utlf_isNull(clipbase64))
- {
- return;
- }
-
- var selfile = obj_imge.GetClipboardImageFile();
- var clipf = fso.GetFile(selfile);
- var clipSize = clipf.size;
- if (clipSize > 2048000)
- {
- sysf_messageBox("허용용량(2MB)을" ,"E003");
- return;
- }
-
- if (utlf_isNull(selfile))
- return;
-
- var arrfile = selfile.split("|");
- for(var i = 0; i < arrfile.length; i++)
- {
- var filepath = arrfile[i];
-
- imgeInfo = new IMGE_INFO();
- imgeInfo.imgeno = ++gNewImgeNo;
- imgeInfo.imgecd = "Z000000001";
- imgeInfo.imgenm = "LOCALIMG";
- imgeInfo.srcbase64 = "";
- imgeInfo.recbase64 = "";
- imgeInfo.shape = "";
- imgeInfo.filePath = filepath;
-
- //imgeInfo.degnitemlevlcd = gPageInfo.degnItemLevlCd +"."+ imgeInfo.imgecd;
- imgeInfo.degnitemlevlcd = imgeInfo.imgecd;
- imgeInfo.degnitemlevlno = parseInt(gPageInfo.degnitemlevlno) + 1;
- imgeInfo.rowno = "NUIMG";
- imgeInfo.colno = "FILE";
-
-
-
- if(bMulti)
- {
- obj_thumnail.LoadImage(filepath);
- imgeInfo.shape = "";
- var viewMode = obj_imge.GetViewMode();
-
- if(viewMode != ds_init_selectnode.getColumn(0,"viewmode"))
- {
- obj_imge.SetViewMode(ds_init_selectnode.getColumn(0,"viewmode"));
- }
-
- obj_imge.visible = false;
-
-
- obj_imge.LoadImage(imgeInfo.filePath);
-
- var arrSz = fGetImgeSizeEx();
-
- imgeInfo.width = arrSz[0];
- imgeInfo.height = arrSz[1];
-
- imgeInfo.srcbase64 = obj_imge.SaveImageBase64();
- imgeInfo.recbase64 = imgeInfo.srcbase64;
- imgeInfo.shape = obj_imge.GetShapeString();
-
- obj_imge.Clear();
- obj_imge.visible = true;
-
-
- fAddImgeList(imgeInfo);
- }
- else
- {
- fClearImge();
- fSetImge(imgeInfo);
- }
- }
- }
- function setGridCheckAll(obj:Grid, e:GridClickEventInfo)
- {
- var strType;
- var vl_chk;
- var strVal;
- var strChkVal;
- var objDS;
- var nCell = e.cell;
- var nSubCnt = obj.getSubCellCount("head",nCell);
- var nSubCnt2 = 0;
- var nSubCntTot = 0;
- for(var i=0; i< nCell; i++){
- nSubCnt2 = obj.getSubCellCount("head",i);
- nSubCntTot += nSubCnt2;
- }
-
- objDS = eval(obj.binddataset);
- if (nSubCnt > 0) { // Case Merge Cell
- var nChkIdx = -1;
- for ( var i = 0; i < nSubCnt; i++)
- {
- strType = obj.getSubCellProperty("head",e.cell,i,"displaytype");
- if(strType == "checkbox") {
- nChkIdx = i;
- break;
- }
- }
-
- if (nChkIdx == -1)
- return;
- // Head setting
- strVal = obj.getSubCellProperty("head", nCell, nChkIdx, "text");
- if (strVal == "0" || utlf_isNull(strVal)) {
- obj.setSubCellProperty("head",nCell,nChkIdx,"text", '1');
- vl_chk="1";
- } else {
- obj.setSubCellProperty("head",nCell,nChkIdx,"text", '0');
- vl_chk="0";
- }
- } else { // Case not merge
- strType = obj.getCellProperty("head", e.cell, "displaytype");
- if(strType != "checkbox") {
- return;
- }
- // Head setting
- strVal = obj.getCellProperty("head", nCell, "text");
- try{
- strVal = strVal.replace("expr:","");
- }catch(e){};
-
- if (strVal == "0" || utlf_isNull(strVal)) {
- obj.setCellProperty("head", nCell, "text", '1');
- vl_chk="1";
- } else {
- obj.setCellProperty("head", nCell, "text", '0');
- vl_chk="0";
- }
- }
- }
- function setAllCheck(obj)
- {
- var lv_nCellCnt = obj.getCellCount("Head");
-
- var lv_sCellText = "";
- var lv_nChkCnt = 0;
- var lv_sDpType = "";
- for(var i=0; i<lv_nCellCnt; i++)
- {
- lv_sCellText = obj.getCellText(-1,i);
- lv_sDpType = obj.getCellProperty("Head", i,"displaytype");
- if(lv_sDpType == "checkbox")
- {
- lv_sDpType = obj.setCellProperty("Head", i,"text",'expr:0');
- lv_nChkCnt++;
- }
- }
- lv_nChkCnt++;
-
- if(lv_nChkCnt > 0) obj.onheadclick.addHandler(setGridCheckAll);
- }
- /****************************************************************************************
- * Function : fExistFolder
- * Description : 폴더 존재여부 파악
- * retrun type : 폴더 생성
- * Creator :
- ****************************************************************************************/
- function fExistFolder(foldernm)
- {
-
- if(utlf_isNull(foldernm))
- {
- return;
- }
- var folderDept = foldernm.split("\\");
- var currentPos = folderDept[0];
- for(var i =1; i<folderDept.length ; i++)
- {
- if(utlf_isNull(folderDept[i]))
- {
- break;
- }
- currentPos += ("\\" + folderDept[i]);
- objExtCommon.checkDirectory(currentPos, 1); // option : 1 ? 없으면 create
- }
- }
- function lf_getImgeData(sFilePath){
- if( utlf_isNull(sFilePath) || gEnvSrcimge != "001" )
- return "";
-
- // Step0 환경설정
- var aFilePath = sFilePath.split("\\");
- var newFilePath = userHomeDir + "\\" + aFilePath[aFilePath.length];
- // Step1 File Copy
- if(objExtCommon.IsFileExist(newFilePath)) objExtCommon.DeleteFile(newFilePath);
- var rtn = objExtCommon.CopyFile(sFilePath, newFilePath, false);
- // Step2 Create Object
- var objVFile = new VirtualFile(newFilePath, VirtualFile.openRead | VirtualFile.openBinary);
- objVFile.seek(0,VirtualFile.seekBegin);
- var bData = new Buffer(objVFile.read(objVFile.getFileSize()));
- // Step3 File Close
- objVFile.close();
- // Step4 File Delete
- if(objExtCommon.IsFileExist(newFilePath)) objExtCommon.DeleteFile(newFilePath);
-
- return objExtCommon.encodeBase64(bData.data);
- }]]></Script>
|