MMR01200.js 81 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729
  1. var gRef_MediFormView = "/root/main/medirec/medireccnts";
  2. var gRef_ViewMediFormView = "/root/main/viewmedirec/medireccnts";
  3. var IMGE_SZ = 500;
  4. var gExtnFuncFlag = true;
  5. var gReclistCnt = "";
  6. var gFDGWidth = 573;
  7. var gFDGHeight = 357;
  8. /**
  9. * @desc : 초기 화면 설정
  10. * @id :
  11. * @event : xforms-ready
  12. * @return : void
  13. * @authur : 박종훈
  14. */
  15. function fReadyForm()
  16. {
  17. grd_formlist.fixedcellcheckbox(0, 0) = true;
  18. grd_itemlist.fixedcellcheckbox(0, 0) = true;
  19. grd_medirec.autoresize = true;
  20. document.controls("obj_imge").attribute("visibility") = "hidden";
  21. document.controls("obj_fdg").attribute("visibility") = "hidden";
  22. if (isPopup())
  23. {
  24. gExtnFuncFlag = false;
  25. var formnm = opener.window.javascript.getParameter("formnm");
  26. if (formnm != "")
  27. {
  28. window.document.title = formnm + " - 미리보기";
  29. var cont = new COMN_CONT_RECCNTS();
  30. cont.pid = "";
  31. cont.recfromdt = "";
  32. cont.rectodt = "";
  33. cont.formrecdeptcd = "";
  34. cont.chosflag = "";
  35. cont.formrecseq = "-1";
  36. fAtrerRef(cont);
  37. }
  38. }
  39. }
  40. /**
  41. * @desc : 초기 사이즈 설정
  42. * @id :
  43. * @event :
  44. * @return : void
  45. * @authur : 박종훈
  46. */
  47. function fInitPage(wid, hei)
  48. {
  49. body.attribute("width") = wid;
  50. body.attribute("height") = hei;
  51. grd_medirec.attribute("width") = wid;
  52. grd_medirec.attribute("height") = hei;
  53. //grd_medirec.colAttribute(grd_medirec.colref("viewcnts"), "colwidth") = wid - 20;
  54. grd_medirec.colWidth(1) = wid - 21;
  55. grd_medirec.refresh();
  56. grd_medirectmp.refresh();
  57. }
  58. /**
  59. * @desc : 기록 미리보기
  60. * @id :
  61. * @event :
  62. * @return : void
  63. * @authur : 박종훈
  64. */
  65. function fPreviewData(node)
  66. {
  67. // window.clipBoardData = node.xml;
  68. model.removeNodeset("/root/main/medirec");
  69. var node2 = instance1.selectSingleNode("/root/main");
  70. node2.appendChild(node.cloneNode(true));
  71. model.refresh();
  72. var cont = new COMN_CONT_RECCNTS();
  73. cont.pid = "";
  74. cont.recfromdt = "";
  75. cont.rectodt = "";
  76. cont.formrecdeptcd = "";
  77. cont.chosflag = "";
  78. cont.formrecseq = "-1";
  79. fAtrerRef(cont);
  80. }
  81. /**
  82. * @desc : 화면 Clear
  83. * @id :
  84. * @event :
  85. * @return : void
  86. * @authur : 박종훈
  87. */
  88. function fClear()
  89. {
  90. model.removeNodeset(gRef_MediFormView);
  91. model.removeNodeset(gRef_ViewMediFormView);
  92. model.refresh();
  93. }
  94. /**
  95. * @desc : 기록내역 조회
  96. * @id :
  97. * @event :
  98. * @return : void
  99. * @authur : 박종훈
  100. */
  101. function fRefRecView(condflag, pid, chosflag, fromdd, todd, stddd, srcformcd, deptcd, formrecseq, arrFormrecseq, rechfview, recformsort, painhideflag, mainyn,notprogress,formcd )
  102. {
  103. var path = "/root/send/reqcond/";
  104. model.makeValue( path+"condflag" , condflag );
  105. model.makeValue( path+"pid" , pid );
  106. model.makeValue( path+"chosflag" , chosflag );
  107. model.makeValue( path+"fromdd" , fromdd );
  108. model.makeValue( path+"todd" , todd );
  109. model.makeValue( path+"stddd" , stddd );
  110. model.makeValue( path+"attr" , srcformcd );
  111. model.makeValue( path+"deptcd" , deptcd );
  112. model.makeValue( path+"keyval" , formrecseq );
  113. model.makeValue( path+"rechfview" , rechfview );
  114. model.makeValue( path+"recformsort" , recformsort );
  115. model.makeValue( path+"painhideflag" , painhideflag );
  116. model.makeValue( path+"mainyn" , mainyn );
  117. model.makeValue( path+"notprogress" , notprogress );
  118. //2014/02/19 이정택 추가
  119. model.makeValue( path+"newlogicyn" , model.getValue("/root/temp/hardcodeinfo/trgtcd"));
  120. //2014/02/19 이정택 추가
  121. if(isNull(formcd)){
  122. formcd = "-";
  123. }
  124. model.makeValue( path+"formcd" , formcd );
  125. // 2010/01/04 hkjoo 수정
  126. var submitLength = 1;
  127. if ( arrFormrecseq != null )
  128. {
  129. submitLength = arrFormrecseq.length;
  130. }
  131. // 2010/01/04 hkjoo 수정
  132. for ( i=0; i<submitLength; i++ )
  133. {
  134. if ( arrFormrecseq != null && i != 0) //그룹 서식 조회 시, 첫번째 조회 시는 add=""가 되게.
  135. {
  136. TRMMR01201.attribute("add") = "bottom";
  137. model.makeValue(path+"keyval", arrFormrecseq[i]);
  138. }
  139. else
  140. TRMMR01201.attribute("add") = "";
  141. grd_medirec.attribute("ref") = "";
  142. submit("TRMMR01201", false);
  143. var cont = new COMN_CONT_RECCNTS();
  144. cont.pid = pid;
  145. cont.recfromdt = fromdd;
  146. cont.rectodt = todd;
  147. cont.formrecdeptcd = deptcd;
  148. cont.chosflag = chosflag;
  149. cont.formrecseq = formrecseq;
  150. cont.rechfview = rechfview;
  151. //2014/02/20 이정택
  152. cont.condflag = condflag;
  153. //asyncSend("TRMMR01201", "/root/send/reqcond", "/root/main/medirec/medireccnts", "responseHandlerTRMMR01201"); // 비동기식
  154. //2014/02/20 이정택
  155. fAtrerRef(cont);
  156. }
  157. }
  158. /**
  159. * @desc : 서식기록 순번으로 기록내역 조회
  160. * @id :
  161. * @event :
  162. * @return : void
  163. * @authur : 박종훈
  164. */
  165. function fRefMediRecCntsByFormRecSeq(formrecseq)
  166. {
  167. var cont = new COMN_CONT_RECCNTS();
  168. cont.pid = "";
  169. cont.recfromdt = "";
  170. cont.rectodt = "";
  171. cont.formrecdeptcd = "";
  172. cont.chosflag = "";
  173. cont.formrecseq = formrecseq;
  174. fRefMediRecCnts(cont);
  175. }
  176. /**
  177. * 이정택 2014/02/18
  178. * @return
  179. */
  180. function StringBuffer() { this.buffer = []; }
  181. /**
  182. * 이정택 2014/02/18
  183. * @return
  184. */
  185. StringBuffer.prototype.append = function(str) {
  186. if (isNull(str)) { str = ""; }
  187. this.buffer.push(str);
  188. return this;
  189. }
  190. /**
  191. * 이정택 2014/02/18
  192. * @return
  193. */
  194. StringBuffer.prototype.toString = function(str) {
  195. if (isNull(str)) { str = ""; }
  196. return this.buffer.join(str);
  197. }
  198. /**
  199. * 기록내용 클릭시 로직 분기
  200. */
  201. function fRefMediRecCnts(cond){
  202. var screenid = parent.window.javascript.getScreenID();
  203. model.makeNode("/root/temp/hardcodeinfo");
  204. model.makeValue("/root/send/reqdata/hardcdno", "7020");
  205. submit("TRMMR01204");
  206. // 신규로직 적용 여부
  207. if(model.getValue("/root/temp/hardcodeinfo/trgtcd")=="Y"){
  208. if(screenid=="SPMMR05400"){
  209. btn_paging.visible=false;
  210. }else{
  211. btn_paging.visible=true;
  212. }
  213. fRefMediRecCnts_New(cond);
  214. }else{
  215. btn_paging.visible=false;
  216. fRefMediRecCnts_Old(cond);
  217. }
  218. }
  219. // 기록목록을 더블클릭 했을시 한개만
  220. var comn_cont_reccnts_copy ="";
  221. var arr_formrecseq = "";
  222. // 신규로직
  223. function fRefMediRecCnts_New(comn_cont_reccnts){
  224. model.addlog("fRefMediRecCnts_MMR01200 start");
  225. var formNodelist = instance1.selectNodes("/root/hidden/formlist[chk !='Y']");
  226. var subNode = "";
  227. for (var i = 0; i < formNodelist.length; i++)
  228. {
  229. subNode = formNodelist.item(i);
  230. subNode.selectSingleNode("chk").text = "Y";
  231. }
  232. grd_formlist.refresh();
  233. var itemNodelist = instance1.selectNodes("/root/hidden/itemlist[chk !='Y']");
  234. var subNode = "";
  235. for (var i = 0; i < itemNodelist.length; i++)
  236. {
  237. subNode = itemNodelist.item(i);
  238. subNode.selectSingleNode("chk").text = "Y";
  239. }
  240. grd_itemlist.refresh();
  241. gFilterCond = "";
  242. var flag = true;
  243. if (flag)
  244. {
  245. model.setValue("/root/send/reqComn/pid", comn_cont_reccnts.pid);
  246. model.setValue("/root/send/reqComn/recfromdt", comn_cont_reccnts.recfromdt);
  247. model.setValue("/root/send/reqComn/rectodt", comn_cont_reccnts.rectodt);
  248. model.setValue("/root/send/reqComn/formrecdeptcd", comn_cont_reccnts.formrecdeptcd);
  249. model.setValue("/root/send/reqComn/chosflag", comn_cont_reccnts.chosflag);
  250. model.setValue("/root/send/reqComn/formrecseq", comn_cont_reccnts.formrecseq);
  251. if (comn_cont_reccnts.formrecseq != "")
  252. {
  253. model.setValue("/root/send/reqComn/recfromdt", "-");
  254. }
  255. else
  256. {
  257. gReclistCnt = comn_cont_reccnts.reclistlength;
  258. pagecnt=comn_cont_reccnts.pagecnt;
  259. }
  260. comn_cont_reccnts.condflag = "main";
  261. if ( comn_cont_reccnts.formrecseq != null && comn_cont_reccnts.formrecseq != "" && (comn_cont_reccnts.pagingyn=="N" || comn_cont_reccnts.pagingyn==null || comn_cont_reccnts.pagingyn=="")){
  262. comn_cont_reccnts.condflag = "keyval";
  263. comn_cont_reccnts_copy="";
  264. comn_cont_reccnts_copy = comn_cont_reccnts;
  265. model.resetInstanceNode("/root/main/medirec/medireccnts");
  266. model.resetInstanceNode("/root/main/viewmedirec/medireccnts");
  267. btn_paging.visible=false;
  268. }else{
  269. if(pagecnt=="1"){
  270. arr_formrecseq = new Array();
  271. model.resetInstanceNode("/root/main/medirec/medireccnts");
  272. model.resetInstanceNode("/root/main/viewmedirec/medireccnts");
  273. var sb = new StringBuffer();
  274. for(var j = 1; j<=comn_cont_reccnts.reclistlength; j++){
  275. formrecseq = parent.javascript.grd_medireclist.valueMatrix(j, parent.javascript.grd_medireclist.colref("formrecseq"));
  276. sb.append("'" + formrecseq + "'");
  277. }
  278. var formrecseq=sb.toString(",");
  279. comn_cont_reccnts_copy = comn_cont_reccnts;
  280. var temp_formrecseq =formrecseq.split(",");
  281. var pagetotcnt = Math.ceil(comn_cont_reccnts.reclistlength/5);
  282. for(var i=0; i<pagetotcnt; i++){
  283. var sb = new StringBuffer();
  284. for(var j=i*5; j<(i*5)+5 && j<temp_formrecseq.length; j++){
  285. sb.append(temp_formrecseq[j]);
  286. }
  287. var sb_formrecseq=sb.toString(",");
  288. arr_formrecseq.push(sb_formrecseq);
  289. }
  290. comn_cont_reccnts.formrecseq =arr_formrecseq[parseInt(pagecnt)-1];
  291. }else{
  292. comn_cont_reccnts.formrecseq =arr_formrecseq[parseInt(pagecnt)-1];
  293. }
  294. }
  295. if(parseInt(pagecnt)<=arr_formrecseq.length || (comn_cont_reccnts.pagingyn=="N" || comn_cont_reccnts.pagingyn==null || comn_cont_reccnts.pagingyn=="")){
  296. fRefRecView( comn_cont_reccnts.condflag ,
  297. comn_cont_reccnts.pid ,
  298. comn_cont_reccnts.chosflag ,
  299. comn_cont_reccnts.recfromdt ,
  300. comn_cont_reccnts.rectodt ,
  301. "" ,
  302. "" ,
  303. comn_cont_reccnts.formrecdeptcd ,
  304. comn_cont_reccnts.formrecseq ,
  305. comn_cont_reccnts.arrFormrecseq , // 2010/01/04 hkjoo 추가, 그룹 서식 조회 기능
  306. comn_cont_reccnts.rechfview , // 2013.09.06 cyw 기록내용 고도화작업으로인해 사용자환경변수 하나 등록
  307. comn_cont_reccnts.recformsort , // 2013.10.22 cyw 진료기록메인의 기록조회 디폴트 설정(기록 정렬방식)
  308. comn_cont_reccnts.painhideflag , // 2013.10.28 cyw 진료기록메인의 기록조회 디폴트 설정(통증숨김여부)
  309. comn_cont_reccnts.mainyn,
  310. comn_cont_reccnts.notprogress, //입원경과 제외여부
  311. comn_cont_reccnts.formcd);
  312. }
  313. }
  314. model.addlog("fRefMediRecCnts_MMR01200 end");
  315. }
  316. // 기존로직
  317. function fRefMediRecCnts_Old(comn_cont_reccnts)
  318. {
  319. model.addlog("fRefMediRecCnts_MMR01200 start");
  320. /*var flag = false;
  321. if (model.getValue("/root/send/reqComn/pid") != comn_cont_reccnts.pid)
  322. {
  323. flag = true;
  324. }
  325. else if (model.getValue("/root/send/reqComn/recfromdt") != comn_cont_reccnts.recfromdt)
  326. {
  327. flag = true;
  328. }
  329. else if (model.getValue("/root/send/reqComn/rectodt") != comn_cont_reccnts.rectodt)
  330. {
  331. flag = true;
  332. }
  333. else if (model.getValue("/root/send/reqComn/formrecdeptcd") != comn_cont_reccnts.formrecdeptcd)
  334. {
  335. flag = true;
  336. }
  337. else if (model.getValue("/root/send/reqComn/chosflag") != comn_cont_reccnts.chosflag)
  338. {
  339. flag = true;
  340. }
  341. if (gReclistCnt != comn_cont_reccnts.reclistlength)
  342. {
  343. flag = true;
  344. }
  345. if (comn_cont_reccnts.formrecseq != "")
  346. {
  347. flag = true;
  348. }*/
  349. var formNodelist = instance1.selectNodes("/root/hidden/formlist[chk !='Y']");
  350. var subNode = "";
  351. for (var i = 0; i < formNodelist.length; i++)
  352. {
  353. subNode = formNodelist.item(i);
  354. subNode.selectSingleNode("chk").text = "Y";
  355. }
  356. grd_formlist.refresh();
  357. var itemNodelist = instance1.selectNodes("/root/hidden/itemlist[chk !='Y']");
  358. var subNode = "";
  359. for (var i = 0; i < itemNodelist.length; i++)
  360. {
  361. subNode = itemNodelist.item(i);
  362. subNode.selectSingleNode("chk").text = "Y";
  363. }
  364. grd_itemlist.refresh();
  365. gFilterCond = "";
  366. var flag = true;
  367. if (flag)
  368. {
  369. model.setValue("/root/send/reqComn/pid", comn_cont_reccnts.pid);
  370. model.setValue("/root/send/reqComn/recfromdt", comn_cont_reccnts.recfromdt);
  371. model.setValue("/root/send/reqComn/rectodt", comn_cont_reccnts.rectodt);
  372. model.setValue("/root/send/reqComn/formrecdeptcd", comn_cont_reccnts.formrecdeptcd);
  373. model.setValue("/root/send/reqComn/chosflag", comn_cont_reccnts.chosflag);
  374. model.setValue("/root/send/reqComn/formrecseq", comn_cont_reccnts.formrecseq);
  375. if (comn_cont_reccnts.formrecseq != "")
  376. {
  377. model.setValue("/root/send/reqComn/recfromdt", "-");
  378. }
  379. else
  380. {
  381. gReclistCnt = comn_cont_reccnts.reclistlength;
  382. }
  383. var condflag = "main";
  384. if ( comn_cont_reccnts.formrecseq != null && comn_cont_reccnts.formrecseq != "" )
  385. condflag = "keyval";
  386. fRefRecView( condflag ,
  387. comn_cont_reccnts.pid ,
  388. comn_cont_reccnts.chosflag ,
  389. comn_cont_reccnts.recfromdt ,
  390. comn_cont_reccnts.rectodt ,
  391. "" ,
  392. "" ,
  393. comn_cont_reccnts.formrecdeptcd ,
  394. comn_cont_reccnts.formrecseq ,
  395. comn_cont_reccnts.arrFormrecseq , // 2010/01/04 hkjoo 추가, 그룹 서식 조회 기능
  396. comn_cont_reccnts.rechfview , // 2013.09.06 cyw 기록내용 고도화작업으로인해 사용자환경변수 하나 등록
  397. comn_cont_reccnts.recformsort , // 2013.10.22 cyw 진료기록메인의 기록조회 디폴트 설정(기록 정렬방식)
  398. comn_cont_reccnts.painhideflag , // 2013.10.28 cyw 진료기록메인의 기록조회 디폴트 설정(통증숨김여부)
  399. comn_cont_reccnts.mainyn,
  400. comn_cont_reccnts.notprogress,
  401. comn_cont_reccnts.formcd );
  402. // grd_medirec.attribute("ref") = "";
  403. // submit("TRMMR01201");
  404. //
  405. // fAtrerRef(comn_cont_reccnts);
  406. }
  407. model.addlog("fRefMediRecCnts_MMR01200 end");
  408. }
  409. function fRefMediRecCnts_SPMMR00100(comn_cont_reccnts)
  410. {
  411. /*var flag = false;
  412. if (model.getValue("/root/send/reqComn/pid") != comn_cont_reccnts.pid)
  413. {
  414. flag = true;
  415. }
  416. else if (model.getValue("/root/send/reqComn/recfromdt") != comn_cont_reccnts.recfromdt)
  417. {
  418. flag = true;
  419. }
  420. else if (model.getValue("/root/send/reqComn/rectodt") != comn_cont_reccnts.rectodt)
  421. {
  422. flag = true;
  423. }
  424. else if (model.getValue("/root/send/reqComn/formrecdeptcd") != comn_cont_reccnts.formrecdeptcd)
  425. {
  426. flag = true;
  427. }
  428. else if (model.getValue("/root/send/reqComn/chosflag") != comn_cont_reccnts.chosflag)
  429. {
  430. flag = true;
  431. }
  432. if (gReclistCnt != comn_cont_reccnts.reclistlength)
  433. {
  434. flag = true;
  435. }
  436. if (comn_cont_reccnts.formrecseq != "")
  437. {
  438. flag = true;
  439. }*/
  440. var formNodelist = instance1.selectNodes("/root/hidden/formlist[chk !='Y']");
  441. var subNode = "";
  442. for (var i = 0; i < formNodelist.length; i++)
  443. {
  444. subNode = formNodelist.item(i);
  445. subNode.selectSingleNode("chk").text = "Y";
  446. }
  447. grd_formlist.refresh();
  448. var itemNodelist = instance1.selectNodes("/root/hidden/itemlist[chk !='Y']");
  449. var subNode = "";
  450. for (var i = 0; i < itemNodelist.length; i++)
  451. {
  452. subNode = itemNodelist.item(i);
  453. subNode.selectSingleNode("chk").text = "Y";
  454. }
  455. grd_itemlist.refresh();
  456. gFilterCond = "";
  457. var flag = true;
  458. if (flag)
  459. {
  460. model.setValue("/root/send/reqComn/pid", comn_cont_reccnts.pid);
  461. model.setValue("/root/send/reqComn/recfromdt", comn_cont_reccnts.recfromdt);
  462. model.setValue("/root/send/reqComn/rectodt", comn_cont_reccnts.rectodt);
  463. model.setValue("/root/send/reqComn/formrecdeptcd", comn_cont_reccnts.formrecdeptcd);
  464. model.setValue("/root/send/reqComn/chosflag", comn_cont_reccnts.chosflag);
  465. model.setValue("/root/send/reqComn/formrecseq", comn_cont_reccnts.formrecseq);
  466. if (comn_cont_reccnts.formrecseq != "")
  467. {
  468. model.setValue("/root/send/reqComn/recfromdt", "-");
  469. }
  470. else
  471. {
  472. gReclistCnt = comn_cont_reccnts.reclistlength;
  473. }
  474. var condflag = "SPMMR00100";
  475. if ( comn_cont_reccnts.formrecseq != null && comn_cont_reccnts.formrecseq != "" )
  476. condflag = "keyval";
  477. fRefRecView( condflag ,
  478. comn_cont_reccnts.pid ,
  479. comn_cont_reccnts.chosflag ,
  480. comn_cont_reccnts.recfromdt ,
  481. comn_cont_reccnts.rectodt ,
  482. "" ,
  483. "" ,
  484. comn_cont_reccnts.formrecdeptcd ,
  485. comn_cont_reccnts.formrecseq ,
  486. comn_cont_reccnts.arrFormrecseq , // 2010/01/04 hkjoo 추가, 그룹 서식 조회 기능
  487. comn_cont_reccnts.rechfview , // 2013.09.06 cyw 기록내용 고도화작업으로인해 사용자환경변수 하나 등록
  488. comn_cont_reccnts.recformsort , // 2013.10.22 cyw 진료기록메인의 기록조회 디폴트 설정(기록 정렬방식)
  489. comn_cont_reccnts.painhideflag , // 2013.10.28 cyw 진료기록메인의 기록조회 디폴트 설정(통증숨김여부)
  490. comn_cont_reccnts.mainyn,
  491. comn_cont_reccnts.notprogress,
  492. comn_cont_reccnts.formcd );
  493. // grd_medirec.attribute("ref") = "";
  494. // submit("TRMMR01201");
  495. //
  496. // fAtrerRef(comn_cont_reccnts);
  497. }
  498. }
  499. /**
  500. *
  501. *
  502. *
  503. */
  504. function fGetMetaMode(str)
  505. {
  506. var strXrw = str;
  507. var regexp = new RegExp('(<Xvg [^<>]+>)', 'igm');
  508. if (regexp.test(strXrw) == true)
  509. {
  510. var xvginfo = strXrw.match(regexp);
  511. var strRtn = "";
  512. for(var idx =0; idx < xvginfo.length; idx++)
  513. {
  514. strRtn += xvginfo[idx];
  515. }
  516. // ViewMode 얻기
  517. strRtn = strRtn.setReplaceWord("<", "");
  518. strRtn = strRtn.setReplaceWord(">", "");
  519. strRtn = strRtn.setReplaceWord("'", "");
  520. var arrAttrs = strRtn.split(" ");
  521. var viewMode = "";
  522. var viewWidth = "";
  523. var viewHeight = "";
  524. var strXvgInfo = new Array(3);
  525. for(var i = 0; i < arrAttrs.length; i++)
  526. {
  527. var strSplit = arrAttrs[i].split("=");
  528. if(strSplit[0] == "viewMode") {
  529. viewMode = strSplit[1];
  530. strXvgInfo[0] = viewMode;
  531. continue;
  532. }
  533. if(strSplit[0] == "width") {
  534. viewWidth = strSplit[1];
  535. strXvgInfo[1] = viewWidth;
  536. continue;
  537. }
  538. if(strSplit[0] == "height") {
  539. viewHeight = strSplit[1];
  540. strXvgInfo[2] = viewHeight;
  541. continue;
  542. }
  543. }
  544. return strXvgInfo;
  545. }
  546. else
  547. {
  548. return "";
  549. }
  550. }
  551. // 비동기식
  552. function responseHandlerTRMMR01201(){
  553. var comn_cont_reccnts=comn_cont_reccnts_copy;
  554. var cnt = parseInt( getNodesetCount(gRef_MediFormView) );
  555. //2010.01.15 dhkim - 조회된 기록이 없으면 기록내용 clear
  556. if(cnt == 0){
  557. fClear();
  558. }
  559. // <, > 로 변환
  560. doReplaceLtGt(gRef_MediFormView);
  561. var path_degnitemkind = gRef_MediFormView + "[#iIdx#]/degnitemkind";
  562. var path_viewimge = gRef_MediFormView + "[#iIdx#]/viewimge";
  563. var path_reccnts = gRef_MediFormView + "[#iIdx#]/reccnts";
  564. var path_imgewid = gRef_MediFormView + "[#iIdx#]/imgewid";
  565. var path_imgehei = gRef_MediFormView + "[#iIdx#]/imgehei";
  566. var path_viewcnts = gRef_MediFormView + "[#iIdx#]/viewcnts";
  567. var path_degnitemlevlcd = gRef_MediFormView + "[#iIdx#]/degnitemlevlcd";
  568. var chpath_viewimge;
  569. var chpath_reccnts;
  570. for (var i = 1; i <= cnt; i++)
  571. {
  572. try
  573. {
  574. chpath_viewimge = path_viewimge.replace("#iIdx#", i);
  575. chpath_reccnts = path_reccnts.replace("#iIdx#", i);
  576. if (model.getValue(path_degnitemkind.replace("#iIdx#", i)) == "IMG" &&
  577. (model.getValue(chpath_viewimge) != "" || model.getValue(chpath_reccnts) != "") )
  578. {
  579. var Localimg = "";
  580. var degnitemlevlcd = "";
  581. var IMGListNode = "";
  582. var strXvgInfo = "";
  583. degnitemlevlcd = model.getValue(path_degnitemlevlcd.replace("#iIdx#", i));
  584. if(degnitemlevlcd != "")
  585. IMGListNode = findNodeset(model, gRef_MediFormView+ "[degnitemlevlcd='" + degnitemlevlcd + "' and degnitemkind='MTX']");
  586. for(var idx = 0; idx < IMGListNode.length; idx++)
  587. {
  588. var imgNode = IMGListNode.item(idx);
  589. var Localimg = imgNode.selectSingleNode("viewcnts").text;
  590. }
  591. // XML 데이터 입력 시 width / height로 ocx 크기를 변경함.
  592. var reccntsValue = model.getValue(path_reccnts.replace("#iIdx#", i));
  593. var strImgBase64 = model.getValue(path_viewimge.replace("#iIdx#", i));
  594. var shapeinfo = reccntsValue;
  595. // caption 을 모두 CDATA 처리
  596. reccntsValue = fSetCdata(reccntsValue);
  597. if(reccntsValue != "")
  598. {
  599. strXvgInfo = fGetMetaMode(reccntsValue);
  600. var tmpShape = removeXvgTag(reccntsValue);
  601. }
  602. obj_imge.Clear();
  603. var viewMode = obj_imge.GetViewMode();
  604. if(viewMode != 1) { // ActiveX를 스크린 사이즈로 맞춤
  605. obj_imge.SetViewMode(1);
  606. }
  607. obj_imge.SetControlSize(strXvgInfo[1], strXvgInfo[2]);
  608. obj_imge.LoadImageBase64(strImgBase64);
  609. // LocalImg 인 경우 기록이미지를 열기때문에 메타데이터를 로딩하지 않음.
  610. if(Localimg != "LOCALIMG")
  611. {
  612. if(reccntsValue != "" && reccntsValue != "-")
  613. {
  614. //obj_imge.SetShapeString(reccntsValue);
  615. }
  616. }
  617. // 디버그용
  618. //obj_imge.SaveImage(1, "c:\\temp\\saveImg.jpg");
  619. // 1. 로컬이미지
  620. // 2. DB이미지이며, 기록된 이미지가 있는 경우
  621. // 3. DB이미지이며, 기록된 메타데이터가 있는 경우
  622. if (Localimg == "LOCALIMG" || (Localimg != "LOCALIMG" && strImgBase64 != "") || obj_imge.GetShapeCount() > 0)
  623. {
  624. // 실제 이미지 사이즈가 아닌 OCX 크기에 맞춰진 이미지 사이즈를 구한다.
  625. var sz = obj_imge.GetImageSizeEx(false);
  626. var arrSz = sz.split("|");
  627. var imgewid = arrSz[0];
  628. var imgehei = arrSz[1];
  629. var adjustImgSize = fGetAdjustImgeSize(imgewid, imgehei);
  630. var Newimgewid = adjustImgSize.split("|")[0];
  631. var Newimgehei = adjustImgSize.split("|")[1];
  632. //obj_imge.SetControlSize(Newimgewid, Newimgehei);
  633. // 현재 OCX 크기에 이미지를 맞추어 계산한 Base64코드를 반환한다.
  634. var strBase64 = obj_imge.GetThumbnailBase64(Newimgewid, Newimgehei);
  635. model.setValue(path_imgewid.replace("#iIdx#", i), Newimgewid);
  636. model.setValue(path_imgehei.replace("#iIdx#", i), Newimgehei);
  637. /*
  638. if ( parseInt(imgewid) > parseInt(IMGE_SZ) && parseInt(imgehei) > parseInt(IMGE_SZ) ) // 이미지 사이즈의 가로 및 세로가 500보다 큼
  639. {
  640. //alert("이미지 사이즈의 가로 및 세로가 500보다 큼: " + arrSz);
  641. if ( parseInt(imgewid) >= parseInt(imgehei) )
  642. {
  643. var newHeight = ( imgehei * IMGE_SZ ) / imgewid;
  644. //obj_imge.SetControlSize(IMGE_SZ, newHeight);
  645. imgewid = IMGE_SZ;
  646. imgehei = newHeight;
  647. }
  648. else if ( parseInt(imgewid) <= parseInt(imgehei) )
  649. {
  650. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  651. //obj_imge.SetControlSize(newWidth, IMGE_SZ);
  652. imgewid = newWidth;
  653. imgehei = IMGE_SZ;
  654. }
  655. else
  656. {
  657. //obj_imge.SetControlSize(IMGE_SZ, IMGE_SZ);
  658. imgewid = IMGE_SZ;
  659. imgehei = IMGE_SZ;
  660. }
  661. }
  662. else if ( parseInt(imgewid) > parseInt(IMGE_SZ) )
  663. {
  664. //alert("이미지 가로 사이즈가 500보다 큼: " + arrSz);
  665. var newheight = ( imgehei * IMGE_SZ ) / imgewid;
  666. //obj_imge.SetControlSize(IMGE_SZ, newheight);
  667. imgewid = IMGE_SZ;
  668. imgehei = newheight;
  669. }
  670. else if ( parseInt(imgehei) > parseInt(IMGE_SZ) )
  671. {
  672. //alert("이미지 세로 사이즈가 500보다 큼: " + arrSz);
  673. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  674. //obj_imge.SetControlSize(newWidth, IMGE_SZ);
  675. imgewid = newWidth;
  676. imgehei = IMGE_SZ;
  677. }
  678. else if ( parseInt(imgewid) < parseInt(IMGE_SZ) && parseInt(imgehei) < parseInt(IMGE_SZ) ) // 이미지 가로 및 세로 사이즈가 500보다 작음
  679. {
  680. //alert("이미지 가로 및 세로 사이즈가 500보다 작음: " + arrSz);
  681. if ( parseInt(imgewid) > parseInt(imgehei) )
  682. {
  683. var newHeight = ( imgehei * IMGE_SZ ) / imgewid;
  684. //obj_imge.SetControlSize(IMGE_SZ, newHeight);
  685. imgewid = IMGE_SZ;
  686. imgehei = newHeight;
  687. }
  688. else if ( parseInt(imgewid) < parseInt(imgehei) )
  689. {
  690. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  691. //obj_imge.SetControlSize(newWidth, IMGE_SZ);
  692. imgewid = newWidth;
  693. imgehei = IMGE_SZ;
  694. }
  695. else
  696. {
  697. //obj_imge.SetControlSize(IMGE_SZ, IMGE_SZ);
  698. imgewid = IMGE_SZ;
  699. imgehei = IMGE_SZ;
  700. }
  701. }
  702. else if ( parseInt(imgewid) < parseInt(IMGE_SZ) ) // 이미지 가로 사이즈가 500보다 작음
  703. {
  704. //alert("이미지 가로 사이즈가 500보다 작음: " + arrSz);
  705. if ( parseInt(imgehei) > parseInt(IMGE_SZ) )
  706. {
  707. var newHeight = ( imgehei * IMGE_SZ ) / imgewid;
  708. //obj_imge.SetControlSize(IMGE_SZ, newHeight);
  709. imgewid = IMGE_SZ;
  710. imgehei = newHeight;
  711. }
  712. else if ( parseInt(imgehei) < parseInt(IMGE_SZ) )
  713. {
  714. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  715. //obj_imge.SetControlSize(newWidth, IMGE_SZ);
  716. imgewid = newWidth;
  717. imgehei = IMGE_SZ;
  718. }
  719. }
  720. else if ( parseInt(imgehei) < parseInt(IMGE_SZ) ) // 이미지 세로 사이즈가 500보다 작음
  721. {
  722. //alert("이미지 세로 사이즈가 500보다 작음: " + arrSz);
  723. if ( parseInt(imgewid) > parseInt(IMGE_SZ) )
  724. {
  725. var newHeight = ( imgehei * IMGE_SZ ) / imgewid;
  726. //obj_imge.SetControlSize(IMGE_SZ, newHeight);
  727. imgewid = IMGE_SZ;
  728. imgehei = newHeight;
  729. }
  730. else if ( parseInt(imgewid) < parseInt(IMGE_SZ) )
  731. {
  732. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  733. //obj_imge.SetControlSize(newWidth, IMGE_SZ);
  734. imgewid = newWidth;
  735. imgehei = IMGE_SZ;
  736. }
  737. }
  738. else
  739. {
  740. //obj_imge.SetControlSize(IMGE_SZ, IMGE_SZ);
  741. imgewid = IMGE_SZ;
  742. imgehei = IMGE_SZ;
  743. }
  744. // 현재 OCX 크기에 이미지를 맞추어 계산한 Base64코드를 반환한다.
  745. var strBase64 = obj_imge.GetThumbnailBase64(imgewid, imgehei);
  746. //var strBase64 = obj_imge.GetThumbnailBase64(0, 0);
  747. //model.setValue(path_imgewid.replace("#iIdx#", i), IMGE_SZ);
  748. //model.setValue(path_imgehei.replace("#iIdx#", i), IMGE_SZ);
  749. model.setValue(path_imgewid.replace("#iIdx#", i), imgewid);
  750. model.setValue(path_imgehei.replace("#iIdx#", i), imgehei);
  751. */
  752. model.setValue(path_viewcnts.replace("#iIdx#", i), strBase64, true);
  753. model.refresh();
  754. setImageRefInstance(path_viewcnts.replace("#iIdx#", i));
  755. }
  756. }
  757. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  758. // 가계도
  759. else if (model.getValue(path_degnitemkind.replace("#iIdx#", i)) == "FDG" && model.getValue(chpath_reccnts) != "")
  760. {
  761. var MetaData = model.getValue(path_reccnts.replace("#iIdx#", i));
  762. obj_fdg.RemoveAll();
  763. obj_fdg.LoadMetaData(MetaData);
  764. // 현 가계도 내용을 JPG로 저장한다.
  765. //obj_fdg.SaveJpg("c:\\가계도.jpg", "100");
  766. // 현재 가계도에 표현된 내용을 Base64로 인코딩하여 반환한다.(이미지 형식은 BMP)
  767. // 가계도의 기본사이즈는 573:357
  768. // 기록내용보기의 가로 최대는 500임.
  769. var strBase64 = obj_fdg.SaveEncodedBase64();
  770. obj_imge.Clear();
  771. var viewMode = obj_imge.GetViewMode();
  772. if(viewMode != 1) { // ActiveX를 스크린 사이즈로 맞춤
  773. obj_imge.SetViewMode(1);
  774. }
  775. obj_imge.SetControlSize(gFDGWidth, gFDGHeight);
  776. obj_imge.LoadImageBase64(strBase64);
  777. // 실제 이미지 사이즈가 아닌 OCX 크기에 맞춰진 이미지 사이즈를 구한다.
  778. var sz = obj_imge.GetImageSizeEx(false);
  779. var arrSz = sz.split("|");
  780. var imgewid = arrSz[0];
  781. var imgehei = arrSz[1];
  782. var adjustImgSize = fGetAdjustImgeSize(imgewid, imgehei);
  783. var Newimgewid = adjustImgSize.split("|")[0];
  784. var Newimgehei = adjustImgSize.split("|")[1];
  785. // 현재 OCX 크기에 이미지를 맞추어 계산한 Base64코드를 반환한다.
  786. var strNewBase64 = obj_imge.GetThumbnailBase64(Newimgewid, Newimgehei);
  787. model.setValue(path_imgewid.replace("#iIdx#", i), Newimgewid);
  788. model.setValue(path_imgehei.replace("#iIdx#", i), Newimgehei );
  789. //model.setValue(path_imgewid.replace("#iIdx#", i), imgewid);
  790. //model.setValue(path_imgehei.replace("#iIdx#", i), imgehei);
  791. model.setValue(path_viewcnts.replace("#iIdx#", i), strNewBase64, true);
  792. setImageRefInstance(path_viewcnts.replace("#iIdx#", i));
  793. }
  794. }
  795. catch (e)
  796. {
  797. alert(e);
  798. }
  799. }
  800. grd_medirec.attribute("ref") = "/root/main/viewmedirec/medireccnts";
  801. if (comn_cont_reccnts.formrecseq != null && comn_cont_reccnts.formrecseq != "")
  802. {
  803. if(model.getValue("/root/temp/hardcodeinfo/trgtcd")=="Y" && pagecnt!="1" && comn_cont_reccnts.condflag!="keyval"){
  804. copyNodeset(gRef_ViewMediFormView, gRef_MediFormView, "append", model, model);
  805. }else{
  806. copyNodeset(gRef_ViewMediFormView, gRef_MediFormView, "replace", model, model);
  807. }
  808. fDrawGrid();
  809. }
  810. else
  811. {
  812. fExeFilter(gFilterCond);
  813. }
  814. model.addlog("fAtrerRef end");
  815. }
  816. /**
  817. * @desc : 기록내용 조회후 화면표시 형식 셋팅 로직
  818. * @id :
  819. * @event :
  820. * @return : void
  821. * @authur : 박종훈
  822. */
  823. function fAtrerRef(comn_cont_reccnts)
  824. {
  825. model.addlog("fAtrerRef start");
  826. var cnt = parseInt( getNodesetCount(gRef_MediFormView) );
  827. //2010.01.15 dhkim - 조회된 기록이 없으면 기록내용 clear
  828. if(cnt == 0){
  829. fClear();
  830. }
  831. // <, > 로 변환
  832. doReplaceLtGt(gRef_MediFormView);
  833. var path_degnitemkind = gRef_MediFormView + "[#iIdx#]/degnitemkind";
  834. var path_viewimge = gRef_MediFormView + "[#iIdx#]/viewimge";
  835. var path_reccnts = gRef_MediFormView + "[#iIdx#]/reccnts";
  836. var path_imgewid = gRef_MediFormView + "[#iIdx#]/imgewid";
  837. var path_imgehei = gRef_MediFormView + "[#iIdx#]/imgehei";
  838. var path_viewcnts = gRef_MediFormView + "[#iIdx#]/viewcnts";
  839. var path_degnitemlevlcd = gRef_MediFormView + "[#iIdx#]/degnitemlevlcd";
  840. var chpath_viewimge;
  841. var chpath_reccnts;
  842. for (var i = 1; i <= cnt; i++)
  843. {
  844. try
  845. {
  846. chpath_viewimge = path_viewimge.replace("#iIdx#", i);
  847. chpath_reccnts = path_reccnts.replace("#iIdx#", i);
  848. if (model.getValue(path_degnitemkind.replace("#iIdx#", i)) == "IMG" &&
  849. (model.getValue(chpath_viewimge) != "" || model.getValue(chpath_reccnts) != "") )
  850. {
  851. var Localimg = "";
  852. var degnitemlevlcd = "";
  853. var IMGListNode = "";
  854. var strXvgInfo = "";
  855. degnitemlevlcd = model.getValue(path_degnitemlevlcd.replace("#iIdx#", i));
  856. if(degnitemlevlcd != "")
  857. IMGListNode = findNodeset(model, gRef_MediFormView+ "[degnitemlevlcd='" + degnitemlevlcd + "' and degnitemkind='MTX']");
  858. for(var idx = 0; idx < IMGListNode.length; idx++)
  859. {
  860. var imgNode = IMGListNode.item(idx);
  861. var Localimg = imgNode.selectSingleNode("viewcnts").text;
  862. }
  863. // XML 데이터 입력 시 width / height로 ocx 크기를 변경함.
  864. var reccntsValue = model.getValue(path_reccnts.replace("#iIdx#", i));
  865. var strImgBase64 = model.getValue(path_viewimge.replace("#iIdx#", i));
  866. var shapeinfo = reccntsValue;
  867. // caption 을 모두 CDATA 처리
  868. reccntsValue = fSetCdata(reccntsValue);
  869. if(reccntsValue != "")
  870. {
  871. strXvgInfo = fGetMetaMode(reccntsValue);
  872. var tmpShape = removeXvgTag(reccntsValue);
  873. }
  874. obj_imge.Clear();
  875. var viewMode = obj_imge.GetViewMode();
  876. if(viewMode != 1) { // ActiveX를 스크린 사이즈로 맞춤
  877. obj_imge.SetViewMode(1);
  878. }
  879. obj_imge.SetControlSize(strXvgInfo[1], strXvgInfo[2]);
  880. obj_imge.LoadImageBase64(strImgBase64);
  881. // LocalImg 인 경우 기록이미지를 열기때문에 메타데이터를 로딩하지 않음.
  882. if(Localimg != "LOCALIMG")
  883. {
  884. if(reccntsValue != "" && reccntsValue != "-")
  885. {
  886. //obj_imge.SetShapeString(reccntsValue);
  887. }
  888. }
  889. // 디버그용
  890. //obj_imge.SaveImage(1, "c:\\temp\\saveImg.jpg");
  891. // 1. 로컬이미지
  892. // 2. DB이미지이며, 기록된 이미지가 있는 경우
  893. // 3. DB이미지이며, 기록된 메타데이터가 있는 경우
  894. if (Localimg == "LOCALIMG" || (Localimg != "LOCALIMG" && strImgBase64 != "") || obj_imge.GetShapeCount() > 0)
  895. {
  896. // 실제 이미지 사이즈가 아닌 OCX 크기에 맞춰진 이미지 사이즈를 구한다.
  897. var sz = obj_imge.GetImageSizeEx(false);
  898. var arrSz = sz.split("|");
  899. var imgewid = arrSz[0];
  900. var imgehei = arrSz[1];
  901. var adjustImgSize = fGetAdjustImgeSize(imgewid, imgehei);
  902. var Newimgewid = adjustImgSize.split("|")[0];
  903. var Newimgehei = adjustImgSize.split("|")[1];
  904. //obj_imge.SetControlSize(Newimgewid, Newimgehei);
  905. // 현재 OCX 크기에 이미지를 맞추어 계산한 Base64코드를 반환한다.
  906. var strBase64 = obj_imge.GetThumbnailBase64(Newimgewid, Newimgehei);
  907. model.setValue(path_imgewid.replace("#iIdx#", i), Newimgewid);
  908. model.setValue(path_imgehei.replace("#iIdx#", i), Newimgehei);
  909. /*
  910. if ( parseInt(imgewid) > parseInt(IMGE_SZ) && parseInt(imgehei) > parseInt(IMGE_SZ) ) // 이미지 사이즈의 가로 및 세로가 500보다 큼
  911. {
  912. //alert("이미지 사이즈의 가로 및 세로가 500보다 큼: " + arrSz);
  913. if ( parseInt(imgewid) >= parseInt(imgehei) )
  914. {
  915. var newHeight = ( imgehei * IMGE_SZ ) / imgewid;
  916. //obj_imge.SetControlSize(IMGE_SZ, newHeight);
  917. imgewid = IMGE_SZ;
  918. imgehei = newHeight;
  919. }
  920. else if ( parseInt(imgewid) <= parseInt(imgehei) )
  921. {
  922. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  923. //obj_imge.SetControlSize(newWidth, IMGE_SZ);
  924. imgewid = newWidth;
  925. imgehei = IMGE_SZ;
  926. }
  927. else
  928. {
  929. //obj_imge.SetControlSize(IMGE_SZ, IMGE_SZ);
  930. imgewid = IMGE_SZ;
  931. imgehei = IMGE_SZ;
  932. }
  933. }
  934. else if ( parseInt(imgewid) > parseInt(IMGE_SZ) )
  935. {
  936. //alert("이미지 가로 사이즈가 500보다 큼: " + arrSz);
  937. var newheight = ( imgehei * IMGE_SZ ) / imgewid;
  938. //obj_imge.SetControlSize(IMGE_SZ, newheight);
  939. imgewid = IMGE_SZ;
  940. imgehei = newheight;
  941. }
  942. else if ( parseInt(imgehei) > parseInt(IMGE_SZ) )
  943. {
  944. //alert("이미지 세로 사이즈가 500보다 큼: " + arrSz);
  945. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  946. //obj_imge.SetControlSize(newWidth, IMGE_SZ);
  947. imgewid = newWidth;
  948. imgehei = IMGE_SZ;
  949. }
  950. else if ( parseInt(imgewid) < parseInt(IMGE_SZ) && parseInt(imgehei) < parseInt(IMGE_SZ) ) // 이미지 가로 및 세로 사이즈가 500보다 작음
  951. {
  952. //alert("이미지 가로 및 세로 사이즈가 500보다 작음: " + arrSz);
  953. if ( parseInt(imgewid) > parseInt(imgehei) )
  954. {
  955. var newHeight = ( imgehei * IMGE_SZ ) / imgewid;
  956. //obj_imge.SetControlSize(IMGE_SZ, newHeight);
  957. imgewid = IMGE_SZ;
  958. imgehei = newHeight;
  959. }
  960. else if ( parseInt(imgewid) < parseInt(imgehei) )
  961. {
  962. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  963. //obj_imge.SetControlSize(newWidth, IMGE_SZ);
  964. imgewid = newWidth;
  965. imgehei = IMGE_SZ;
  966. }
  967. else
  968. {
  969. //obj_imge.SetControlSize(IMGE_SZ, IMGE_SZ);
  970. imgewid = IMGE_SZ;
  971. imgehei = IMGE_SZ;
  972. }
  973. }
  974. else if ( parseInt(imgewid) < parseInt(IMGE_SZ) ) // 이미지 가로 사이즈가 500보다 작음
  975. {
  976. //alert("이미지 가로 사이즈가 500보다 작음: " + arrSz);
  977. if ( parseInt(imgehei) > parseInt(IMGE_SZ) )
  978. {
  979. var newHeight = ( imgehei * IMGE_SZ ) / imgewid;
  980. //obj_imge.SetControlSize(IMGE_SZ, newHeight);
  981. imgewid = IMGE_SZ;
  982. imgehei = newHeight;
  983. }
  984. else if ( parseInt(imgehei) < parseInt(IMGE_SZ) )
  985. {
  986. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  987. //obj_imge.SetControlSize(newWidth, IMGE_SZ);
  988. imgewid = newWidth;
  989. imgehei = IMGE_SZ;
  990. }
  991. }
  992. else if ( parseInt(imgehei) < parseInt(IMGE_SZ) ) // 이미지 세로 사이즈가 500보다 작음
  993. {
  994. //alert("이미지 세로 사이즈가 500보다 작음: " + arrSz);
  995. if ( parseInt(imgewid) > parseInt(IMGE_SZ) )
  996. {
  997. var newHeight = ( imgehei * IMGE_SZ ) / imgewid;
  998. //obj_imge.SetControlSize(IMGE_SZ, newHeight);
  999. imgewid = IMGE_SZ;
  1000. imgehei = newHeight;
  1001. }
  1002. else if ( parseInt(imgewid) < parseInt(IMGE_SZ) )
  1003. {
  1004. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  1005. //obj_imge.SetControlSize(newWidth, IMGE_SZ);
  1006. imgewid = newWidth;
  1007. imgehei = IMGE_SZ;
  1008. }
  1009. }
  1010. else
  1011. {
  1012. //obj_imge.SetControlSize(IMGE_SZ, IMGE_SZ);
  1013. imgewid = IMGE_SZ;
  1014. imgehei = IMGE_SZ;
  1015. }
  1016. // 현재 OCX 크기에 이미지를 맞추어 계산한 Base64코드를 반환한다.
  1017. var strBase64 = obj_imge.GetThumbnailBase64(imgewid, imgehei);
  1018. //var strBase64 = obj_imge.GetThumbnailBase64(0, 0);
  1019. //model.setValue(path_imgewid.replace("#iIdx#", i), IMGE_SZ);
  1020. //model.setValue(path_imgehei.replace("#iIdx#", i), IMGE_SZ);
  1021. model.setValue(path_imgewid.replace("#iIdx#", i), imgewid);
  1022. model.setValue(path_imgehei.replace("#iIdx#", i), imgehei);
  1023. */
  1024. model.setValue(path_viewcnts.replace("#iIdx#", i), strBase64, true);
  1025. model.refresh();
  1026. setImageRefInstance(path_viewcnts.replace("#iIdx#", i));
  1027. }
  1028. }
  1029. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1030. // 가계도
  1031. else if (model.getValue(path_degnitemkind.replace("#iIdx#", i)) == "FDG" && model.getValue(chpath_reccnts) != "")
  1032. {
  1033. var MetaData = model.getValue(path_reccnts.replace("#iIdx#", i));
  1034. obj_fdg.RemoveAll();
  1035. obj_fdg.LoadMetaData(MetaData);
  1036. // 현 가계도 내용을 JPG로 저장한다.
  1037. //obj_fdg.SaveJpg("c:\\가계도.jpg", "100");
  1038. // 현재 가계도에 표현된 내용을 Base64로 인코딩하여 반환한다.(이미지 형식은 BMP)
  1039. // 가계도의 기본사이즈는 573:357
  1040. // 기록내용보기의 가로 최대는 500임.
  1041. var strBase64 = obj_fdg.SaveEncodedBase64();
  1042. obj_imge.Clear();
  1043. var viewMode = obj_imge.GetViewMode();
  1044. if(viewMode != 1) { // ActiveX를 스크린 사이즈로 맞춤
  1045. obj_imge.SetViewMode(1);
  1046. }
  1047. obj_imge.SetControlSize(gFDGWidth, gFDGHeight);
  1048. obj_imge.LoadImageBase64(strBase64);
  1049. // 실제 이미지 사이즈가 아닌 OCX 크기에 맞춰진 이미지 사이즈를 구한다.
  1050. var sz = obj_imge.GetImageSizeEx(false);
  1051. var arrSz = sz.split("|");
  1052. var imgewid = arrSz[0];
  1053. var imgehei = arrSz[1];
  1054. var adjustImgSize = fGetAdjustImgeSize(imgewid, imgehei);
  1055. var Newimgewid = adjustImgSize.split("|")[0];
  1056. var Newimgehei = adjustImgSize.split("|")[1];
  1057. // 현재 OCX 크기에 이미지를 맞추어 계산한 Base64코드를 반환한다.
  1058. var strNewBase64 = obj_imge.GetThumbnailBase64(Newimgewid, Newimgehei);
  1059. model.setValue(path_imgewid.replace("#iIdx#", i), Newimgewid);
  1060. model.setValue(path_imgehei.replace("#iIdx#", i), Newimgehei );
  1061. //model.setValue(path_imgewid.replace("#iIdx#", i), imgewid);
  1062. //model.setValue(path_imgehei.replace("#iIdx#", i), imgehei);
  1063. model.setValue(path_viewcnts.replace("#iIdx#", i), strNewBase64, true);
  1064. setImageRefInstance(path_viewcnts.replace("#iIdx#", i));
  1065. }
  1066. }
  1067. catch (e)
  1068. {
  1069. alert(e);
  1070. }
  1071. }
  1072. grd_medirec.attribute("ref") = "/root/main/viewmedirec/medireccnts";
  1073. if (comn_cont_reccnts.formrecseq != null && comn_cont_reccnts.formrecseq != "")
  1074. {
  1075. if(model.getValue("/root/temp/hardcodeinfo/trgtcd")=="Y" && pagecnt!="1" && comn_cont_reccnts.condflag!="keyval"){
  1076. copyNodeset(gRef_ViewMediFormView, gRef_MediFormView, "append", model, model);
  1077. }else{
  1078. copyNodeset(gRef_ViewMediFormView, gRef_MediFormView, "replace", model, model);
  1079. }
  1080. fDrawGrid();
  1081. }
  1082. else
  1083. {
  1084. fExeFilter(gFilterCond);
  1085. }
  1086. model.addlog("fAtrerRef end");
  1087. }
  1088. function fAtrerRef_old(comn_cont_reccnts)
  1089. {
  1090. var cnt = parseInt( getNodesetCount(gRef_MediFormView) );
  1091. // <, > 로 변환
  1092. doReplaceLtGt(gRef_MediFormView);
  1093. var path_degnitemkind = gRef_MediFormView + "[#iIdx#]/degnitemkind";
  1094. var path_viewimge = gRef_MediFormView + "[#iIdx#]/viewimge";
  1095. var path_reccnts = gRef_MediFormView + "[#iIdx#]/reccnts";
  1096. var path_imgewid = gRef_MediFormView + "[#iIdx#]/imgewid";
  1097. var path_imgehei = gRef_MediFormView + "[#iIdx#]/imgehei";
  1098. var path_viewcnts = gRef_MediFormView + "[#iIdx#]/viewcnts";
  1099. var chpath_viewimge;
  1100. var chpath_reccnts;
  1101. for (var i = 1; i <= cnt; i++)
  1102. {
  1103. try
  1104. {
  1105. chpath_viewimge = path_viewimge.replace("#iIdx#", i);
  1106. chpath_reccnts = path_reccnts.replace("#iIdx#", i);
  1107. if (model.getValue(path_degnitemkind.replace("#iIdx#", i)) == "IMG" &&
  1108. (model.getValue(chpath_viewimge) != "" || model.getValue(chpath_reccnts) != "") )
  1109. {
  1110. var viewMode = obj_imge.GetViewMode();
  1111. if(viewMode != 1) { // ActiveX를 스크린 사이즈로 맞춤
  1112. obj_imge.SetViewMode(1);
  1113. }
  1114. obj_imge.Clear();
  1115. obj_imge.SetControlSize(IMGE_SZ, IMGE_SZ);
  1116. obj_imge.LoadImageBase64(model.getValue(path_viewimge.replace("#iIdx#", i)));
  1117. // XML 데이터 입력 시 width/height를 ocx 크기로 변경함.
  1118. var reccntsValue = model.getValue(path_reccnts.replace("#iIdx#", i));
  1119. if(reccntsValue != "" && reccntsValue != "-")
  1120. {
  1121. obj_imge.SetShapeString(reccntsValue);
  1122. }
  1123. if (obj_imge.GetShapeCount() > 0)
  1124. {
  1125. // OCX 사이즈를 늘리기 전의 이미지를 저장한다.
  1126. //obj_imge.GetThumbnailBase64(0, 0);
  1127. if (obj_imge.GetViewMode() == 0)
  1128. {
  1129. obj_imge.SetViewMode(1);
  1130. //obj_imge.SetViewMode(4);
  1131. //alert("뷰모드 변경: 4");
  1132. }
  1133. // 실제 이미지 사이즈가 아닌 OCX 크기에 맞춰진 이미지 사이즈를 구한다.
  1134. var sz = obj_imge.GetImageSizeEx(false);
  1135. var arrSz = sz.split("|");
  1136. var imgewid = arrSz[0];
  1137. var imgehei = arrSz[1];
  1138. //alert("2: " + arrSz);
  1139. if ( imgewid > IMGE_SZ && imgehei > IMGE_SZ )
  1140. {
  1141. //alert("이미지 사이즈의 가로 및 세로가 500보다 큼: " + arrSz);
  1142. if (imgewid > imgehei)
  1143. {
  1144. var newHeight = ( imgehei * IMGE_SZ ) / imgewid;
  1145. obj_imge.SetControlSize(IMGE_SZ, newHeight);
  1146. imgewid = IMGE_SZ;
  1147. imgehei = newHeight;
  1148. }
  1149. else if (imgewid < imgehei)
  1150. {
  1151. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  1152. obj_imge.SetControlSize(newWidth, IMGE_SZ);
  1153. imgewid = newWidth;
  1154. imgehei = IMGE_SZ;
  1155. }
  1156. else
  1157. {
  1158. obj_imge.SetControlSize(IMGE_SZ, IMGE_SZ);
  1159. imgewid = IMGE_SZ;
  1160. imgehei = IMGE_SZ;
  1161. }
  1162. }
  1163. else if ( imgewid > IMGE_SZ )
  1164. {
  1165. //alert("이미지 가로 사이즈가 500보다 큼: " + arrSz);
  1166. var newheight = ( imgehei * IMGE_SZ ) / imgewid;
  1167. obj_imge.SetControlSize(IMGE_SZ, newheight);
  1168. imgewid = IMGE_SZ;
  1169. imgehei = newheight;
  1170. }
  1171. else if ( imgehei > IMGE_SZ )
  1172. {
  1173. //alert("이미지 세로 사이즈가 500보다 큼: " + arrSz);
  1174. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  1175. obj_imge.SetControlSize(newWidth, IMGE_SZ);
  1176. imgewid = newWidth;
  1177. imgehei = IMGE_SZ;
  1178. }
  1179. else if ( imgewid < IMGE_SZ && imgehei < IMGE_SZ )
  1180. {
  1181. //alert("이미지 가로 및 세로 사이즈가 500보다 작음: " + arrSz);
  1182. if ( imgewid > imgehei )
  1183. {
  1184. var newHeight = ( imgehei * IMGE_SZ ) / imgewid;
  1185. obj_imge.SetControlSize(IMGE_SZ, newHeight);
  1186. imgewid = IMGE_SZ;
  1187. imgehei = newHeight;
  1188. }
  1189. else if (imgewid < imgehei)
  1190. {
  1191. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  1192. obj_imge.SetControlSize(newWidth, IMGE_SZ);
  1193. imgewid = newWidth;
  1194. imgehei = IMGE_SZ;
  1195. }
  1196. else
  1197. {
  1198. obj_imge.SetControlSize(IMGE_SZ, IMGE_SZ);
  1199. imgewid = IMGE_SZ;
  1200. imgehei = IMGE_SZ;
  1201. }
  1202. }
  1203. else if ( imgewid < IMGE_SZ )
  1204. {
  1205. //alert("이미지 가로 사이즈가 500보다 작음: " + arrSz);
  1206. if ( imgehei > IMGE_SZ )
  1207. {
  1208. var newHeight = ( imgehei * IMGE_SZ ) / imgewid;
  1209. obj_imge.SetControlSize(IMGE_SZ, newHeight);
  1210. imgewid = IMGE_SZ;
  1211. imgehei = newHeight;
  1212. }
  1213. else if ( imgehei < IMGE_SZ )
  1214. {
  1215. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  1216. obj_imge.SetControlSize(newWidth, IMGE_SZ);
  1217. imgewid = newWidth;
  1218. imgehei = IMGE_SZ;
  1219. }
  1220. }
  1221. else if ( imgehei < IMGE_SZ )
  1222. {
  1223. //alert("이미지 세로 사이즈가 500보다 작음: " + arrSz);
  1224. if ( imgewid > IMGE_SZ )
  1225. {
  1226. var newHeight = ( imgehei * IMGE_SZ ) / imgewid;
  1227. obj_imge.SetControlSize(IMGE_SZ, newHeight);
  1228. imgewid = IMGE_SZ;
  1229. imgehei = newHeight;
  1230. }
  1231. else if ( imgewid < IMGE_SZ )
  1232. {
  1233. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  1234. obj_imge.SetControlSize(newWidth, IMGE_SZ);
  1235. imgewid = newWidth;
  1236. imgehei = IMGE_SZ;
  1237. }
  1238. }
  1239. /* if (imgewid != IMGE_SZ || imgehei != IMGE_SZ)
  1240. {
  1241. obj_imge.SetControlSize(IMGE_SZ, IMGE_SZ);
  1242. }
  1243. */
  1244. // 현재 OCX 크기에 이미지를 맞추어 계산한 Base64코드를 반환한다.
  1245. //var strBase64 = obj_imge.GetThumbnailBase64(IMGE_SZ, IMGE_SZ);
  1246. var strBase64 = obj_imge.GetThumbnailBase64(0, 0);
  1247. //alert("3");
  1248. //model.setValue(path_imgewid.replace("#iIdx#", i), IMGE_SZ);
  1249. //model.setValue(path_imgehei.replace("#iIdx#", i), IMGE_SZ);
  1250. model.setValue(path_imgewid.replace("#iIdx#", i), imgewid);
  1251. model.setValue(path_imgehei.replace("#iIdx#", i), imgehei);
  1252. model.setValue(path_viewcnts.replace("#iIdx#", i), strBase64, true);
  1253. setImageRefInstance(path_viewcnts.replace("#iIdx#", i));
  1254. }
  1255. }
  1256. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1257. // 가계도
  1258. else if (model.getValue(path_degnitemkind.replace("#iIdx#", i)) == "FDG" && model.getValue(chpath_reccnts) != "")
  1259. {
  1260. var MetaData = model.getValue(path_reccnts.replace("#iIdx#", i));
  1261. obj_fdg.LoadMetaData(MetaData);
  1262. // 현 가계도 내용을 JPG로 저장한다.
  1263. //obj_fdg.SaveJpg("c:\\가계도.jpg", "100");
  1264. // 현재 가계도에 표현된 내용을 Base64로 인코딩하여 반환한다.(이미지 형식은 BMP)
  1265. var strBase64 = obj_fdg.SaveEncodedBase64();
  1266. model.setValue(path_imgewid.replace("#iIdx#", i), 500);
  1267. model.setValue(path_imgehei.replace("#iIdx#", i), 500);
  1268. model.setValue(path_viewcnts.replace("#iIdx#", i), strBase64, true);
  1269. setImageRefInstance(path_viewcnts.replace("#iIdx#", i));
  1270. }
  1271. }
  1272. catch (e)
  1273. {
  1274. alert(e);
  1275. }
  1276. }
  1277. grd_medirec.attribute("ref") = "/root/main/viewmedirec/medireccnts";
  1278. if (comn_cont_reccnts.formrecseq != null && comn_cont_reccnts.formrecseq != "")
  1279. {
  1280. copyNodeset(gRef_ViewMediFormView, gRef_MediFormView, "replace", model, model);
  1281. fDrawGrid();
  1282. }
  1283. else
  1284. {
  1285. fExeFilter(gFilterCond);
  1286. }
  1287. }
  1288. /**
  1289. * @desc : 그리드 그리기 로직
  1290. * @id :
  1291. * @event :
  1292. * @return : void
  1293. * @authur : 박종훈
  1294. */
  1295. var gfontSz = 11;
  1296. function fDrawGrid()
  1297. {
  1298. var fontsz = getRegistry("FontSz");
  1299. if (fontsz != "")
  1300. {
  1301. gfontSz = fontsz;
  1302. }
  1303. grd_medirec.visible = false;
  1304. grd_medirec.rebuild();
  1305. grd_medirectmp.rebuild();
  1306. var colref_viewflag = grd_medirec.colref("viewflag");
  1307. var colref_imgehei = grd_medirec.colref("imgehei");
  1308. var colref_degnitemlevlno = grd_medirec.colref("degnitemlevlno");
  1309. var colref_degnitemkind = grd_medirec.colref("degnitemkind");
  1310. var viewflag;
  1311. var degnitemlevlno;
  1312. //var ft_std = 11;
  1313. var ft_std = 0;
  1314. var ft_header = (ft_std + parseInt(gfontSz) + 1) + "pt";
  1315. var ft_cnts = (ft_std + parseInt(gfontSz)) + "pt";
  1316. var ft_tail = (ft_std + parseInt(gfontSz) - 1) + "pt";
  1317. var padng = 15;
  1318. for (var i = 1; i <= grd_medirec.rows; i++)
  1319. {
  1320. viewflag = grd_medirec.valueMatrix(i, colref_viewflag);
  1321. grd_medirec.rowstyle(i, "all", "color") = "#55435d";
  1322. if (viewflag == "data")
  1323. {
  1324. if (grd_medirec.valueMatrix(i, colref_imgehei) == "")
  1325. {
  1326. if( grd_medirec.valueMatrix(i, colref_degnitemlevlno) != "1" ){
  1327. if (grd_medirec.valueMatrix(i, colref_degnitemlevlno) > "2" && grd_medirec.valueMatrix(i, colref_degnitemkind) == "GSU" ){
  1328. fSetRowStyle(i, "transparent", "", ft_cnts, (padng * (parseInt(grd_medirec.valueMatrix(i, colref_degnitemlevlno))-2)) + "");
  1329. }else{
  1330. fSetRowStyle(i, "transparent", "", ft_cnts, (padng * (parseInt(grd_medirec.valueMatrix(i, colref_degnitemlevlno))-1)) + "");
  1331. }
  1332. }else{
  1333. fSetRowStyle(i, "transparent", "", ft_cnts, (padng * (parseInt(grd_medirec.valueMatrix(i, colref_degnitemlevlno)))) + "");
  1334. }
  1335. }else{
  1336. fSetRowStyle(i, "transparent", "", "11", "IMGE");
  1337. //grd_medirec.rowheight(i) = parseInt(grd_medirec.valueMatrix(i, colref_imgehei)) + 5;
  1338. }
  1339. }
  1340. else if (viewflag == "fstlevl")
  1341. {
  1342. fSetRowStyle(i, "transparent", "bold", ft_cnts, "5");
  1343. }
  1344. else if (viewflag == "formnm")
  1345. {
  1346. fSetRowStyle(i, "#cce8ff", "bold", ft_header, "5");
  1347. }
  1348. else if (viewflag == "recinfo")
  1349. {
  1350. fSetRowStyle(i, "#cce8ff", "", ft_cnts, "5");
  1351. }
  1352. else if (viewflag == "recuser")
  1353. {
  1354. fSetRowStyle(i, "transparent", "", "12", "5");
  1355. }
  1356. }
  1357. grd_medirec.resizeCells();
  1358. var colref_compflag = grd_medirec.colref("compflag");
  1359. for (var i = 1; i <= grd_medirec.rows; i++)
  1360. {
  1361. viewflag = grd_medirec.valueMatrix(i, colref_viewflag);
  1362. if (grd_medirec.valueMatrix(i, colref_imgehei) != "")
  1363. {
  1364. grd_medirec.rowheight(i) = parseInt(grd_medirec.valueMatrix(i, colref_imgehei)) + 5;
  1365. }
  1366. else if (viewflag == "formnm")
  1367. {
  1368. grd_medirec.rowheight(i) = grd_medirec.rowheight(i) + 5;
  1369. }
  1370. else if (viewflag == "recinfo")
  1371. {
  1372. grd_medirec.rowheight(i) = grd_medirec.rowheight(i) + 3;
  1373. }
  1374. else if (viewflag == "recuser")
  1375. {
  1376. grd_medirec.rowheight(i) = 50;
  1377. }
  1378. }
  1379. grd_medirec.refresh();
  1380. grd_medirectmp.refresh();
  1381. grd_medirec.visible = true;
  1382. }
  1383. /**
  1384. * @desc : 그리드 Row형식 셋팅
  1385. * @id :
  1386. * @event :
  1387. * @return : void
  1388. * @authur : 박종훈
  1389. */
  1390. function fSetRowStyle(rowidx, backColr, fontWei, fontSize, padLeft)
  1391. {
  1392. grd_medirec.rowstyle(rowidx, "data", "background-color") = backColr;
  1393. grd_medirec.rowstyle(rowidx, "data", "font-weight") = fontWei;
  1394. grd_medirec.rowStyle(rowidx, "data", "font-size") = fontSize;
  1395. if (padLeft == "IMGE")
  1396. {
  1397. grd_medirec.rowStyle(rowidx, "data", "background-position") = "center";
  1398. }
  1399. else
  1400. {
  1401. grd_medirec.rowStyle(rowidx, "data", "padding-left") = padLeft;
  1402. grd_medirec.rowStyle(rowidx, "data", "background-image") = "";
  1403. }
  1404. }
  1405. /**
  1406. * @desc : 메뉴 확인버튼 클릭시
  1407. * @id :
  1408. * @event :
  1409. * @return : void
  1410. * @authur : 박종훈
  1411. */
  1412. function fCnfm()
  1413. {
  1414. var nodelist = instance1.selectNodes("/root/hidden/formlist[chk='Y' and value!='-']/value");
  1415. var arrSrcFormCds = null;
  1416. //alert((nodelist.length +"/"+ getNodesetCount("/root/hidden/formlist")));
  1417. if (nodelist.length != getNodesetCount("/root/hidden/formlist[value!='-']"))
  1418. {
  1419. arrSrcFormCds = new Array(nodelist.length);
  1420. for (var i=0; i<nodelist.length; i++)
  1421. {
  1422. arrSrcFormCds[i] = nodelist.item(i).text;
  1423. }
  1424. }
  1425. nodelist = instance1.selectNodes("/root/hidden/itemlist[chk='Y' and value!='-']/value");
  1426. var arrItemBaseCds = null;
  1427. //alert((nodelist.length +"/"+ getNodesetCount("/root/hidden/itemlist")));
  1428. if (nodelist.length != getNodesetCount("/root/hidden/itemlist"))
  1429. {
  1430. arrItemBaseCds = new Array(nodelist.length);
  1431. for (var i=0; i<nodelist.length; i++)
  1432. {
  1433. arrItemBaseCds[i] = nodelist.item(i).text;
  1434. }
  1435. }
  1436. grup_menu.visible = false;
  1437. return fFiltering(arrSrcFormCds, arrItemBaseCds);
  1438. }
  1439. /**
  1440. * @desc : 메뉴 취소버튼 클릭시
  1441. * @id :
  1442. * @event :
  1443. * @return : void
  1444. * @authur : 박종훈
  1445. */
  1446. function fCncl()
  1447. {
  1448. grup_menu.visible = false;
  1449. }
  1450. /**
  1451. * @desc : 기록내용 필터링
  1452. * @id :
  1453. * @event :
  1454. * @return : void
  1455. * @authur : 박종훈
  1456. */
  1457. var gSrcFormCds = "";
  1458. var gItemBaseCds = "";
  1459. function fFiltering(pArrSrcFormCds, pArrItemBaseCds)
  1460. {
  1461. var stmtForm = "";
  1462. var stmtItem = "";
  1463. if (pArrSrcFormCds != null)
  1464. {
  1465. for (var i = 0; i < pArrSrcFormCds.length; i++)
  1466. {
  1467. if (stmtForm != "")
  1468. stmtForm += " or ";
  1469. stmtForm += "srcformcd='" +pArrSrcFormCds[i]+ "'";
  1470. }
  1471. }
  1472. if (pArrItemBaseCds != null)
  1473. {
  1474. for (var i = 0; i < pArrItemBaseCds.length; i++)
  1475. {
  1476. if (stmtItem != "")
  1477. stmtItem += " or ";
  1478. stmtItem += "fstlevlitembasecd='" +pArrItemBaseCds[i]+ "'";
  1479. }
  1480. }
  1481. var stmt = "";
  1482. if (stmtForm != "")
  1483. {
  1484. stmt = "(" + stmtForm + ")";
  1485. }
  1486. if (stmt != "" && stmtItem != "")
  1487. {
  1488. stmt += " and ";
  1489. }
  1490. if (stmtItem != "")
  1491. {
  1492. stmt += "(" + stmtItem + " or fstlevlitembasecd='-1')";
  1493. }
  1494. if (gFilterCond == stmt)
  1495. {
  1496. return false;
  1497. }
  1498. else
  1499. {
  1500. return fExeFilter(stmt);
  1501. }
  1502. }
  1503. /**
  1504. * @desc : 기록내용 필터
  1505. * @id :
  1506. * @event :
  1507. * @return : void
  1508. * @authur : 박종훈
  1509. */
  1510. var gFilterCond = "";
  1511. function fExeFilter(stmt)
  1512. {
  1513. var cond = stmt;
  1514. if (stmt == null || stmt == "")
  1515. stmt = "";
  1516. else
  1517. stmt = "[" +stmt+ "]";
  1518. var cnt = getNodesetCount(gRef_MediFormView + stmt);
  1519. //alert(gRef_MediFormView + stmt);
  1520. if (cnt == 0)
  1521. {
  1522. //messageBox("결과가", "I004");
  1523. //model.resetInstanceNode(gRef_ViewMediFormView);
  1524. //fDrawGrid();
  1525. return false;
  1526. }
  1527. copyNodeset(gRef_ViewMediFormView, gRef_MediFormView + stmt, "replace", model, model);
  1528. grd_medirec.rebuild();
  1529. grd_medirectmp.rebuild();
  1530. fDrawGrid();
  1531. gFilterCond = cond;
  1532. return true;
  1533. }
  1534. /**
  1535. * @desc : 최근 폰트 사이즈로 보이기
  1536. * @id :
  1537. * @event :
  1538. * @return : void
  1539. * @authur : 박종훈
  1540. */
  1541. function fShowLstFtSz()
  1542. {
  1543. if (gExtnFuncFlag == false || opener.window.javascript.getParameter("SSMMR1200_showfontsize") == "false") return;
  1544. if(event.button == 3)
  1545. {
  1546. if (! grup_menu.visible)
  1547. {
  1548. grup_menu.attribute("left") = event.clientX;
  1549. grup_menu.attribute("top") = event.clientY;
  1550. var widGrup = parseInt(grup_menu.attribute("width"));
  1551. var widGrd = parseInt(grd_medirec.attribute("width"));
  1552. if (widGrd < event.clientX + widGrup)
  1553. {
  1554. grup_menu.attribute("left") = widGrd - widGrup - 17;
  1555. }
  1556. var heiGrup = parseInt(grup_menu.attribute("height"));
  1557. var heiGrd = parseInt(grd_medirec.attribute("height"));
  1558. if (heiGrd < event.clientY + heiGrup)
  1559. {
  1560. grup_menu.attribute("top") = heiGrd - heiGrup;
  1561. }
  1562. }
  1563. grup_menu.visible = !grup_menu.visible;
  1564. event.propagate = "stop";
  1565. }
  1566. else
  1567. {
  1568. grup_menu.visible = false;
  1569. }
  1570. }
  1571. /**
  1572. * @desc : 폰트 사이즈 변경
  1573. * @id :
  1574. * @event :
  1575. * @return : void
  1576. * @authur : 박종훈
  1577. */
  1578. function fChgFontSz()
  1579. {
  1580. grup_menu.visible = false;
  1581. if (grd_fntsz.row != 0)
  1582. {
  1583. if (gfontSz != parseInt(grd_fntsz.valueMatrix(grd_fntsz.row, grd_fntsz.colref("value"))))
  1584. {
  1585. gfontSz = parseInt(grd_fntsz.valueMatrix(grd_fntsz.row, grd_fntsz.colref("value")));
  1586. if (fCnfm() == false)
  1587. {
  1588. setRegistry("FontSz", gfontSz);
  1589. fDrawGrid();
  1590. }
  1591. }
  1592. }
  1593. }
  1594. /**
  1595. * @desc : 기록 인스턴스 연결
  1596. * @
  1597. * @param :
  1598. * @return :
  1599. * @authur : 박종훈
  1600. */
  1601. function fSetRecItemValue()
  1602. {
  1603. if (gExtnFuncFlag == false) return;
  1604. var viewflag = grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("viewflag"));
  1605. var nodelist;
  1606. var preFix = "[formrecseq = '" + grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("formrecseq")) + "'";
  1607. var postFix = " and viewflag='data']";
  1608. //var postFix = " and viewflag='data' and (rectermcd != '' or recitemcd != '' or reccnts != '')]";
  1609. switch (viewflag)
  1610. {
  1611. case "data":
  1612. nodelist = instance1.selectNodes(gRef_ViewMediFormView +
  1613. preFix +
  1614. postFix);
  1615. var reciteminfo = new RECITEM_INFO();
  1616. reciteminfo.degnitemkind = grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("degnitemkind"));
  1617. reciteminfo.degnitemcd = "";
  1618. reciteminfo.degnitemlevlcd = grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("degnitemlevlcd"));
  1619. reciteminfo.rectermcd = grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("rectermcd"));
  1620. reciteminfo.rectermnm = grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("rectermnm"));
  1621. reciteminfo.recitemcd = grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("recitemcd"));
  1622. reciteminfo.reccnts = grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("reccnts"));
  1623. //2010-06-01 오전 8:21:42 이지운 추가 : MSL -> 부분서식지로 복사할경우 발생하는 오류 수정
  1624. reciteminfo.colno = grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("colno"));
  1625. //2014.01.02 김영기 => 이윤주수정(20140621)
  1626. if(reciteminfo.degnitemkind != "IMG" && reciteminfo.degnitemkind != "CHK" && reciteminfo.degnitemkind != "MSL"){
  1627. parent.window.javascript.fSetRecItemValueBydegnitemlevlcd(reciteminfo);
  1628. fRecurSelect(grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("formrecseq")),
  1629. grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("fstlevlitemcd")),
  1630. grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("degnitemno")));
  1631. }else{
  1632. fOpenImageViewer();
  1633. }
  1634. break;
  1635. case "fstlevl":
  1636. nodelist = instance1.selectNodes(gRef_ViewMediFormView +
  1637. preFix +
  1638. " and fstlevlitemcd = '" + grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("fstlevlitemcd")) +"'"+
  1639. postFix);
  1640. fSetRecItemValueByNodeList(nodelist);
  1641. break;
  1642. default:
  1643. nodelist = instance1.selectNodes(gRef_ViewMediFormView +
  1644. preFix +
  1645. postFix);
  1646. fSetRecItemValueByNodeList(nodelist);
  1647. break;
  1648. }
  1649. }
  1650. /**
  1651. * @desc : 노드리스트별 기록 인스턴스 연결을 위한 재귀함수
  1652. * @
  1653. * @param :
  1654. * @return :
  1655. * @authur : 박종훈
  1656. */
  1657. function fRecurSelect(formrecseq, fstlevlitemcd, degnitemno)
  1658. {
  1659. var nodelist = instance1.selectNodes(gRef_ViewMediFormView + "[viewflag='data' and formrecseq = '" +formrecseq+
  1660. "' and fstlevlitemcd = '" +fstlevlitemcd+ "' and supdegnitemno = '" +degnitemno+ "']");
  1661. for (var i=0; i<nodelist.length; i++)
  1662. {
  1663. fRecurSelect(formrecseq, fstlevlitemcd, nodelist.item(i).getXPathString("degnitemno"));
  1664. }
  1665. fSetRecItemValueByNodeList(nodelist);
  1666. }
  1667. /**
  1668. * @desc : 노드리스트별 기록 인스턴스 연결
  1669. * @
  1670. * @param :
  1671. * @return :
  1672. * @authur : 박종훈
  1673. */
  1674. function fSetRecItemValueByNodeList(nodelist)
  1675. {
  1676. var reciteminfo;
  1677. for (var i=0; i<nodelist.length; i++)
  1678. {
  1679. if (nodelist.item(i).getXPathString("rectermcd") != "" ||
  1680. nodelist.item(i).getXPathString("recitemcd") != "" ||
  1681. nodelist.item(i).getXPathString("reccnts") != "" )
  1682. {
  1683. reciteminfo = new RECITEM_INFO();
  1684. reciteminfo.degnitemkind = nodelist.item(i).getXPathString("degnitemkind");
  1685. reciteminfo.degnitemcd = "";
  1686. reciteminfo.degnitemlevlcd = nodelist.item(i).getXPathString("degnitemlevlcd");
  1687. reciteminfo.rectermcd = nodelist.item(i).getXPathString("rectermcd");
  1688. reciteminfo.rectermnm = nodelist.item(i).getXPathString("rectermnm");
  1689. reciteminfo.recitemcd = nodelist.item(i).getXPathString("recitemcd");
  1690. reciteminfo.reccnts = nodelist.item(i).getXPathString("reccnts");
  1691. //2010-06-01 오전 8:21:42 이지운 추가 : MSL -> 부분서식지로 복사할경우 발생하는 오류 수정
  1692. reciteminfo.colno = nodelist.item(i).getXPathString("colno");
  1693. parent.window.javascript.fSetRecItemValueBydegnitemlevlcd(reciteminfo);
  1694. }
  1695. }
  1696. }
  1697. var gTabSpace = new Array("", "", " ", " ", " ", " ",
  1698. " ", " ", " ");
  1699. /**
  1700. * @desc : 복사하기(클립보드에복사)
  1701. * @id :
  1702. * @event :
  1703. * @return : void
  1704. * @authur : 박종훈
  1705. */
  1706. function fSendBufCnts()
  1707. {
  1708. if (gExtnFuncFlag == false) return;
  1709. var bufCnts = "";
  1710. var rowidx;
  1711. var colref_viewcnts = grd_medirec.colref("viewcnts");
  1712. var colref_degnitemlevlno = grd_medirec.colref("degnitemlevlno");
  1713. var colref_imgehei = grd_medirec.colref("imgehei");
  1714. var degnitemlevlno;
  1715. for (var i = 0; i < grd_medirec.selectedRows; i++)
  1716. {
  1717. rowidx = grd_medirec.selectedRow(i);
  1718. degnitemlevlno = grd_medirec.valueMatrix(rowidx, colref_degnitemlevlno);
  1719. if (degnitemlevlno == -1)
  1720. {
  1721. bufCnts += grd_medirec.valueMatrix(rowidx, colref_viewcnts) + "\r\n";
  1722. }
  1723. else if (grd_medirec.valueMatrix(rowidx, colref_imgehei) == "")
  1724. {
  1725. bufCnts += gTabSpace[ parseInt( degnitemlevlno ) ];
  1726. bufCnts += grd_medirec.valueMatrix(rowidx, colref_viewcnts) + "\r\n";
  1727. }
  1728. }
  1729. window.clipBoardData = bufCnts;
  1730. //alert(bufCnts);
  1731. }
  1732. /**
  1733. * @desc : 통합기록조회에서의 미리 보기
  1734. * @
  1735. * @param :
  1736. * @return :
  1737. * @---------------------------------------------------
  1738. */
  1739. function fSystViewRefMediRecCnts(comn_cont_reccnts)
  1740. {
  1741. model.removeNodeset("/root/send");
  1742. model.makeValue("/root/send/depth", comn_cont_reccnts.depth);
  1743. model.makeValue("/root/send/label", comn_cont_reccnts.label);
  1744. model.makeValue("/root/send/val", comn_cont_reccnts.val);
  1745. model.makeValue("/root/send/pid", comn_cont_reccnts.pid);
  1746. model.makeValue("/root/send/orddd", comn_cont_reccnts.orddd);
  1747. model.makeValue("/root/send/cretno", comn_cont_reccnts.cretno);
  1748. model.makeValue("/root/send/chosflag", comn_cont_reccnts.chosflag);
  1749. model.makeValue("/root/send/tabflag", comn_cont_reccnts.tabflag);
  1750. model.makeValue("/root/send/viewflag", comn_cont_reccnts.viewflag);
  1751. model.makeValue("/root/send/condflag", comn_cont_reccnts.condflag);
  1752. model.makeValue("/root/send/fromdd", comn_cont_reccnts.fromdd);
  1753. model.makeValue("/root/send/todd", comn_cont_reccnts.todd);
  1754. /*fRefRecView(condflag,
  1755. comn_cont_reccnts.pid,
  1756. comn_cont_reccnts.chosflag,
  1757. comn_cont_reccnts.recfromdt,
  1758. comn_cont_reccnts.rectodt,
  1759. "",
  1760. "",
  1761. comn_cont_reccnts.formrecdeptcd,
  1762. comn_cont_reccnts.formrecseq);*/
  1763. submit("TRMMR01202");
  1764. fAtrerRef(comn_cont_reccnts);
  1765. }
  1766. /**
  1767. * @desc : 그리드 더블 클릭시 리피트 기능
  1768. * @
  1769. * @param :
  1770. * @return :
  1771. * @---------------------------------------------------
  1772. */
  1773. // 2013.10.22 김영기 서식인터페이스 추가로 인한 분기점 생성
  1774. function fOnDbClickGrid()
  1775. {
  1776. var formprogflag = grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("formprogflag"));
  1777. var sScreenID = parent.window.javascript.getScreenID();
  1778. if(sScreenID == "SPMMR00100"){
  1779. var formrecseq = grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("formrecseq"));
  1780. var viewflag = grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("viewflag"));
  1781. if (viewflag == "formnm" || viewflag == "recinfo")
  1782. {
  1783. parent.window.javascript.fOpenMediRecCntForm(formrecseq);
  1784. }
  1785. }else{
  1786. if (formprogflag == "-" || formprogflag == "OCR" || formprogflag == "PROF")
  1787. {
  1788. var formrecseq = grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("formrecseq"));
  1789. var viewflag = grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("viewflag"));
  1790. if (viewflag == "formnm" || viewflag == "recinfo")
  1791. {
  1792. setParameter("openmode", "recform");
  1793. setParameter("formrecseq", formrecseq);
  1794. modalUrl("../../../emr/medirecweb/xrw/SSMMR01100_서식로더.xrw", 1, 0, 0, "", "", "");
  1795. }else if(viewflag == "data"){
  1796. //2014.01.02 김영기
  1797. if(grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("degnitemkind")) == "IMG"){
  1798. fOpenImageViewer();
  1799. }
  1800. }
  1801. }
  1802. else
  1803. {
  1804. fSetRecItemValue();
  1805. }
  1806. }
  1807. }
  1808. /**
  1809. * @desc : 한번 클릭시 수정을 위해 formrecseq를 상위화면에 파라미터로 셋
  1810. * @
  1811. * @param :
  1812. * @return :
  1813. * @---------------------------------------------------
  1814. */
  1815. function fOnClickGrid()
  1816. {
  1817. var formcd = grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("formcd"));
  1818. var formrecseq = grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("formrecseq"));
  1819. var cnfmyn = grd_medirec.valueMatrix(grd_medirec.row, grd_medirec.colref("cnfmyn"));
  1820. opener.window.javascript.setParameter("SSMMR01200_Param_formcd", formcd);
  1821. opener.window.javascript.setParameter("SSMMR01200_Param_recseq", formrecseq);
  1822. opener.window.javascript.setParameter("SSMMR01200_Param_cnfmyn", cnfmyn);
  1823. }
  1824. /**
  1825. * @desc : 메타데이터에서 caption을 CDATA로 감싼다.
  1826. * @id :
  1827. * @event :
  1828. * @return :
  1829. * @authur : 이경희
  1830. */
  1831. function fSetCdata(metadata)
  1832. {
  1833. var strMeta = metadata;
  1834. // 1. CDATA로 감싸져 있는지 확인.
  1835. if(isSearchString(strMeta, "CDATA") == false)
  1836. {
  1837. var strStCaptionOld = "";
  1838. var strEdCaptionOld = "";
  1839. var strStCaptionNew = "";
  1840. var strEdCaptionNew = "";
  1841. // 배열로 반환
  1842. strStCaptionOld = fGetXvgStCaption(strMeta);
  1843. strEdCaptionOld = fGetXvgEdCaption(strMeta);
  1844. // for문으로 반복
  1845. for(var idx = 0; idx < strStCaptionOld.length; idx++)
  1846. {
  1847. if(idx == 0)
  1848. {
  1849. // 모든 </caption> 을 ]]></caption> 으로 변경
  1850. strEdCaptionNew = "]]>" + strEdCaptionOld[idx];
  1851. strMeta = strMeta.setReplaceWord(strEdCaptionOld[idx], strEdCaptionNew);
  1852. }
  1853. strStCaptionNew = strStCaptionOld[idx] + "<![CDATA[";
  1854. strMeta = strMeta.setReplaceWord(strStCaptionOld[idx], strStCaptionNew);
  1855. }
  1856. }
  1857. return strMeta;
  1858. }
  1859. /**
  1860. * @desc : 메타데이터에서 caption의 시작 태그를 반환한다.
  1861. * @id :
  1862. * @event :
  1863. * @return :
  1864. * @authur : 이경희
  1865. */
  1866. function fGetXvgStCaption(metadata)
  1867. {
  1868. var strMeta = metadata;
  1869. var getStCaption = new Array();
  1870. var grpexpSt = new RegExp('(<caption[^<>]+>)', 'igm');
  1871. if(grpexpSt.test(strMeta) == true)
  1872. {
  1873. getStCaption = strMeta.match(grpexpSt);
  1874. strMeta = strMeta.replace(grpexpSt, "");
  1875. }
  1876. if(getStCaption.length > 0)
  1877. return getStCaption;
  1878. else
  1879. return "";
  1880. }
  1881. /**
  1882. * @desc : 메타데이터에서 caption의 종료 태그를 반환한다.
  1883. * @id :
  1884. * @event :
  1885. * @return :
  1886. * @authur : 이경희
  1887. */
  1888. function fGetXvgEdCaption(metadata)
  1889. {
  1890. var strMeta = metadata;
  1891. var getEdCaption = new Array();
  1892. var grpexpEd = new RegExp('(</caption>)', 'igm');
  1893. if (grpexpEd.test(strMeta) == true)
  1894. {
  1895. getEdCaption = strMeta.match(grpexpEd);
  1896. strMeta = strMeta.replace(grpexpEd, "");
  1897. }
  1898. if(getEdCaption.length > 0)
  1899. return getEdCaption;
  1900. else
  1901. return "";
  1902. }
  1903. /**
  1904. * @desc : 기록내역 조회 BY 기록이력 순번
  1905. * @id :
  1906. * @event :
  1907. * @return : void
  1908. * @authur : 박종훈
  1909. */
  1910. function fRefRecViewByHistSeq(rechistseq)
  1911. {
  1912. var path = "/root/send/reqcond/";
  1913. model.makeValue(path+"rechistseq", rechistseq);
  1914. grd_medirec.attribute("ref") = "";
  1915. submit("TRMMR01203");
  1916. var cont = new COMN_CONT_RECCNTS();
  1917. //cont.formrecseq = formrecseq;
  1918. fAtrerRef_Recview(cont);
  1919. }
  1920. /**
  1921. * @desc : 기록내용 조회후 화면표시 형식 셋팅 로직
  1922. * @id :
  1923. * @event :
  1924. * @return : void
  1925. * @authur : 박종훈
  1926. */
  1927. function fAtrerRef_Recview(comn_cont_reccnts)
  1928. {
  1929. var cnt = parseInt( getNodesetCount(gRef_MediFormView) );
  1930. // <, > 로 변환
  1931. doReplaceLtGt(gRef_MediFormView);
  1932. var path_degnitemkind = gRef_MediFormView + "[#iIdx#]/degnitemkind";
  1933. var path_viewimge = gRef_MediFormView + "[#iIdx#]/viewimge";
  1934. var path_reccnts = gRef_MediFormView + "[#iIdx#]/reccnts";
  1935. var path_imgewid = gRef_MediFormView + "[#iIdx#]/imgewid";
  1936. var path_imgehei = gRef_MediFormView + "[#iIdx#]/imgehei";
  1937. var path_viewcnts = gRef_MediFormView + "[#iIdx#]/viewcnts";
  1938. var path_degnitemlevlcd = gRef_MediFormView + "[#iIdx#]/degnitemlevlcd";
  1939. var path_colno = gRef_MediFormView + "[#iIdx#]/colno";
  1940. var chpath_viewimge;
  1941. var chpath_reccnts;
  1942. for (var i = 1; i <= cnt; i++)
  1943. {
  1944. try
  1945. {
  1946. chpath_viewimge = path_viewimge.replace("#iIdx#", i);
  1947. chpath_reccnts = path_reccnts.replace("#iIdx#", i);
  1948. if (model.getValue(path_degnitemkind.replace("#iIdx#", i)) == "IMG" &&
  1949. (model.getValue(chpath_viewimge) != "" || model.getValue(chpath_reccnts) != "") )
  1950. {
  1951. var Localimg = "";
  1952. var degnitemlevlcd = "";
  1953. var IMGListNode = "";
  1954. var strXvgInfo = "";
  1955. degnitemlevlcd = model.getValue(path_degnitemlevlcd.replace("#iIdx#", i));
  1956. if(degnitemlevlcd != "")
  1957. IMGListNode = findNodeset(model, gRef_MediFormView+ "[degnitemlevlcd='" + degnitemlevlcd + "' and degnitemkind='MTX']");
  1958. for(var idx = 0; idx < IMGListNode.length; idx++)
  1959. {
  1960. var imgNode = IMGListNode.item(idx);
  1961. var Localimg = imgNode.selectSingleNode("viewcnts").text;
  1962. }
  1963. // XML 데이터 입력 시 width / height로 ocx 크기를 변경함.
  1964. var reccntsValue = model.getValue(path_reccnts.replace("#iIdx#", i));
  1965. var strRecImgBase64 = model.getValue(path_viewimge.replace("#iIdx#", i));
  1966. var shapeinfo = reccntsValue;
  1967. // caption 을 모두 CDATA 처리
  1968. reccntsValue = fSetCdata(reccntsValue);
  1969. if(reccntsValue != "")
  1970. {
  1971. strXvgInfo = fGetMetaMode(reccntsValue);
  1972. var tmpShape = removeXvgTag(reccntsValue);
  1973. }
  1974. obj_imge.Clear();
  1975. var viewMode = obj_imge.GetViewMode();
  1976. if(viewMode != 1) { // ActiveX를 스크린 사이즈로 맞춤
  1977. obj_imge.SetViewMode(1);
  1978. }
  1979. obj_imge.SetControlSize(strXvgInfo[1], strXvgInfo[2]);
  1980. obj_imge.LoadImageBase64(strRecImgBase64);
  1981. // 실제 이미지 사이즈가 아닌 OCX 크기에 맞춰진 이미지 사이즈를 구한다.
  1982. var sz = obj_imge.GetImageSizeEx(false);
  1983. var arrSz = sz.split("|");
  1984. var imgewid = arrSz[0];
  1985. var imgehei = arrSz[1];
  1986. var adjustImgSize = fGetAdjustImgeSize(imgewid, imgehei);
  1987. var Newimgewid = adjustImgSize.split("|")[0];
  1988. var Newimgehei = adjustImgSize.split("|")[1];
  1989. // 현재 OCX 크기에 이미지를 맞추어 계산한 Base64코드를 반환한다.
  1990. var strBase64 = obj_imge.GetThumbnailBase64(Newimgewid, Newimgehei);
  1991. model.setValue(path_imgewid.replace("#iIdx#", i), Newimgewid);
  1992. model.setValue(path_imgehei.replace("#iIdx#", i), Newimgehei);
  1993. /*
  1994. if ( parseInt(imgewid) > parseInt(IMGE_SZ) && parseInt(imgehei) > parseInt(IMGE_SZ) ) // 이미지 사이즈의 가로 및 세로가 500보다 큼
  1995. {
  1996. //alert("이미지 사이즈의 가로 및 세로가 500보다 큼: " + arrSz);
  1997. if ( parseInt(imgewid) >= parseInt(imgehei) )
  1998. {
  1999. var newHeight = ( imgehei * IMGE_SZ ) / imgewid;
  2000. imgewid = IMGE_SZ;
  2001. imgehei = newHeight;
  2002. }
  2003. else if ( parseInt(imgewid) <= parseInt(imgehei) )
  2004. {
  2005. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  2006. imgewid = newWidth;
  2007. imgehei = IMGE_SZ;
  2008. }
  2009. else
  2010. {
  2011. imgewid = IMGE_SZ;
  2012. imgehei = IMGE_SZ;
  2013. }
  2014. }
  2015. else if ( parseInt(imgewid) > parseInt(IMGE_SZ) )
  2016. {
  2017. //alert("이미지 가로 사이즈가 500보다 큼: " + arrSz);
  2018. var newheight = ( imgehei * IMGE_SZ ) / imgewid;
  2019. imgewid = IMGE_SZ;
  2020. imgehei = newheight;
  2021. }
  2022. else if ( parseInt(imgehei) > parseInt(IMGE_SZ) )
  2023. {
  2024. //alert("이미지 세로 사이즈가 500보다 큼: " + arrSz);
  2025. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  2026. imgewid = newWidth;
  2027. imgehei = IMGE_SZ;
  2028. }
  2029. else if ( parseInt(imgewid) < parseInt(IMGE_SZ) && parseInt(imgehei) < parseInt(IMGE_SZ) ) // 이미지 가로 및 세로 사이즈가 500보다 작음
  2030. {
  2031. //alert("이미지 가로 및 세로 사이즈가 500보다 작음: " + arrSz);
  2032. if ( parseInt(imgewid) > parseInt(imgehei) )
  2033. {
  2034. var newHeight = ( imgehei * IMGE_SZ ) / imgewid;
  2035. imgewid = IMGE_SZ;
  2036. imgehei = newHeight;
  2037. }
  2038. else if ( parseInt(imgewid) < parseInt(imgehei) )
  2039. {
  2040. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  2041. imgewid = newWidth;
  2042. imgehei = IMGE_SZ;
  2043. }
  2044. else
  2045. {
  2046. imgewid = IMGE_SZ;
  2047. imgehei = IMGE_SZ;
  2048. }
  2049. }
  2050. else if ( parseInt(imgewid) < parseInt(IMGE_SZ) ) // 이미지 가로 사이즈가 500보다 작음
  2051. {
  2052. //alert("이미지 가로 사이즈가 500보다 작음: " + arrSz);
  2053. if ( parseInt(imgehei) > parseInt(IMGE_SZ) )
  2054. {
  2055. var newHeight = ( imgehei * IMGE_SZ ) / imgewid;
  2056. imgewid = IMGE_SZ;
  2057. imgehei = newHeight;
  2058. }
  2059. else if ( parseInt(imgehei) < parseInt(IMGE_SZ) )
  2060. {
  2061. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  2062. imgewid = newWidth;
  2063. imgehei = IMGE_SZ;
  2064. }
  2065. }
  2066. else if ( parseInt(imgehei) < parseInt(IMGE_SZ) ) // 이미지 세로 사이즈가 500보다 작음
  2067. {
  2068. //alert("이미지 세로 사이즈가 500보다 작음: " + arrSz);
  2069. if ( parseInt(imgewid) > parseInt(IMGE_SZ) )
  2070. {
  2071. var newHeight = ( imgehei * IMGE_SZ ) / imgewid;
  2072. imgewid = IMGE_SZ;
  2073. imgehei = newHeight;
  2074. }
  2075. else if ( parseInt(imgewid) < parseInt(IMGE_SZ) )
  2076. {
  2077. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  2078. imgewid = newWidth;
  2079. imgehei = IMGE_SZ;
  2080. }
  2081. }
  2082. else
  2083. {
  2084. imgewid = IMGE_SZ;
  2085. imgehei = IMGE_SZ;
  2086. }
  2087. var strBase64 = obj_imge.GetThumbnailBase64(imgewid, imgehei);
  2088. */
  2089. //alert("3");
  2090. //model.setValue(path_imgewid.replace("#iIdx#", i), IMGE_SZ);
  2091. //model.setValue(path_imgehei.replace("#iIdx#", i), IMGE_SZ);
  2092. model.setValue(path_viewcnts.replace("#iIdx#", i), strBase64, true);
  2093. model.refresh();
  2094. setImageRefInstance(path_viewcnts.replace("#iIdx#", i));
  2095. }
  2096. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2097. // 가계도
  2098. else if (model.getValue(path_degnitemkind.replace("#iIdx#", i)) == "FDG" && model.getValue(chpath_reccnts) != "")
  2099. {
  2100. var MetaData = model.getValue(path_reccnts.replace("#iIdx#", i));
  2101. obj_fdg.RemoveAll();
  2102. obj_fdg.LoadMetaData(MetaData);
  2103. // 현 가계도 내용을 JPG로 저장한다.
  2104. //obj_fdg.SaveJpg("c:\\가계도.jpg", "100");
  2105. // 현재 가계도에 표현된 내용을 Base64로 인코딩하여 반환한다.(이미지 형식은 BMP)
  2106. // 가계도의 기본사이즈는 573:357
  2107. // 기록내용보기의 가로 최대는 500임.
  2108. var strBase64 = obj_fdg.SaveEncodedBase64();
  2109. obj_imge.Clear();
  2110. var viewMode = obj_imge.GetViewMode();
  2111. if(viewMode != 1) { // ActiveX를 스크린 사이즈로 맞춤
  2112. obj_imge.SetViewMode(1);
  2113. }
  2114. obj_imge.SetControlSize(gFDGWidth, gFDGHeight);
  2115. obj_imge.LoadImageBase64(strBase64);
  2116. // 실제 이미지 사이즈가 아닌 OCX 크기에 맞춰진 이미지 사이즈를 구한다.
  2117. var sz = obj_imge.GetImageSizeEx(false);
  2118. var arrSz = sz.split("|");
  2119. var imgewid = arrSz[0];
  2120. var imgehei = arrSz[1];
  2121. var adjustImgSize = fGetAdjustImgeSize(imgewid, imgehei);
  2122. var Newimgewid = adjustImgSize.split("|")[0];
  2123. var Newimgehei = adjustImgSize.split("|")[1];
  2124. // 현재 OCX 크기에 이미지를 맞추어 계산한 Base64코드를 반환한다.
  2125. var strNewBase64 = obj_imge.GetThumbnailBase64(Newimgewid, Newimgehei);
  2126. model.setValue(path_imgewid.replace("#iIdx#", i), Newimgewid);
  2127. model.setValue(path_imgehei.replace("#iIdx#", i), Newimgehei );
  2128. //model.setValue(path_imgewid.replace("#iIdx#", i), imgewid);
  2129. //model.setValue(path_imgehei.replace("#iIdx#", i), imgehei);
  2130. model.setValue(path_viewcnts.replace("#iIdx#", i), strNewBase64, true);
  2131. setImageRefInstance(path_viewcnts.replace("#iIdx#", i));
  2132. }
  2133. }
  2134. catch (e)
  2135. {
  2136. alert(e);
  2137. }
  2138. }
  2139. grd_medirec.attribute("ref") = "/root/main/viewmedirec/medireccnts";
  2140. if (comn_cont_reccnts.formrecseq != null && comn_cont_reccnts.formrecseq != "")
  2141. {
  2142. copyNodeset(gRef_ViewMediFormView, gRef_MediFormView, "replace", model, model);
  2143. fDrawGrid();
  2144. }
  2145. else
  2146. {
  2147. fExeFilter(gFilterCond);
  2148. }
  2149. }
  2150. function fGetAdjustImgeSize(imgewid, imgehei)
  2151. {
  2152. if ( parseInt(imgewid) > parseInt(IMGE_SZ) && parseInt(imgehei) > parseInt(IMGE_SZ) ) // 이미지 사이즈의 가로 및 세로가 500보다 큼
  2153. {
  2154. //alert("이미지 사이즈의 가로 및 세로가 500보다 큼: " + arrSz);
  2155. if ( parseInt(imgewid) >= parseInt(imgehei) )
  2156. {
  2157. var newHeight = ( imgehei * IMGE_SZ ) / imgewid;
  2158. //obj_imge.SetControlSize(IMGE_SZ, newHeight);
  2159. imgewid = IMGE_SZ;
  2160. imgehei = newHeight;
  2161. }
  2162. else if ( parseInt(imgewid) <= parseInt(imgehei) )
  2163. {
  2164. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  2165. //obj_imge.SetControlSize(newWidth, IMGE_SZ);
  2166. imgewid = newWidth;
  2167. imgehei = IMGE_SZ;
  2168. }
  2169. else
  2170. {
  2171. //obj_imge.SetControlSize(IMGE_SZ, IMGE_SZ);
  2172. imgewid = IMGE_SZ;
  2173. imgehei = IMGE_SZ;
  2174. }
  2175. }
  2176. else if ( parseInt(imgewid) > parseInt(IMGE_SZ) )
  2177. {
  2178. //alert("이미지 가로 사이즈가 500보다 큼: " + arrSz);
  2179. var newheight = ( imgehei * IMGE_SZ ) / imgewid;
  2180. //obj_imge.SetControlSize(IMGE_SZ, newheight);
  2181. imgewid = IMGE_SZ;
  2182. imgehei = newheight;
  2183. }
  2184. else if ( parseInt(imgehei) > parseInt(IMGE_SZ) )
  2185. {
  2186. //alert("이미지 세로 사이즈가 500보다 큼: " + arrSz);
  2187. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  2188. //obj_imge.SetControlSize(newWidth, IMGE_SZ);
  2189. imgewid = newWidth;
  2190. imgehei = IMGE_SZ;
  2191. }
  2192. else if ( parseInt(imgewid) < parseInt(IMGE_SZ) && parseInt(imgehei) < parseInt(IMGE_SZ) ) // 이미지 가로 및 세로 사이즈가 500보다 작음
  2193. {
  2194. //alert("이미지 가로 및 세로 사이즈가 500보다 작음: " + arrSz);
  2195. if ( parseInt(imgewid) > parseInt(imgehei) )
  2196. {
  2197. var newHeight = ( imgehei * IMGE_SZ ) / imgewid;
  2198. //obj_imge.SetControlSize(IMGE_SZ, newHeight);
  2199. imgewid = IMGE_SZ;
  2200. imgehei = newHeight;
  2201. }
  2202. else if ( parseInt(imgewid) < parseInt(imgehei) )
  2203. {
  2204. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  2205. //obj_imge.SetControlSize(newWidth, IMGE_SZ);
  2206. imgewid = newWidth;
  2207. imgehei = IMGE_SZ;
  2208. }
  2209. else
  2210. {
  2211. //obj_imge.SetControlSize(IMGE_SZ, IMGE_SZ);
  2212. imgewid = IMGE_SZ;
  2213. imgehei = IMGE_SZ;
  2214. }
  2215. }
  2216. else if ( parseInt(imgewid) < parseInt(IMGE_SZ) ) // 이미지 가로 사이즈가 500보다 작음
  2217. {
  2218. //alert("이미지 가로 사이즈가 500보다 작음: " + arrSz);
  2219. if ( parseInt(imgehei) > parseInt(IMGE_SZ) )
  2220. {
  2221. var newHeight = ( imgehei * IMGE_SZ ) / imgewid;
  2222. //obj_imge.SetControlSize(IMGE_SZ, newHeight);
  2223. imgewid = IMGE_SZ;
  2224. imgehei = newHeight;
  2225. }
  2226. else if ( parseInt(imgehei) < parseInt(IMGE_SZ) )
  2227. {
  2228. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  2229. //obj_imge.SetControlSize(newWidth, IMGE_SZ);
  2230. imgewid = newWidth;
  2231. imgehei = IMGE_SZ;
  2232. }
  2233. }
  2234. else if ( parseInt(imgehei) < parseInt(IMGE_SZ) ) // 이미지 세로 사이즈가 500보다 작음
  2235. {
  2236. //alert("이미지 세로 사이즈가 500보다 작음: " + arrSz);
  2237. if ( parseInt(imgewid) > parseInt(IMGE_SZ) )
  2238. {
  2239. var newHeight = ( imgehei * IMGE_SZ ) / imgewid;
  2240. //obj_imge.SetControlSize(IMGE_SZ, newHeight);
  2241. imgewid = IMGE_SZ;
  2242. imgehei = newHeight;
  2243. }
  2244. else if ( parseInt(imgewid) < parseInt(IMGE_SZ) )
  2245. {
  2246. var newWidth = ( imgewid * IMGE_SZ ) / imgehei;
  2247. //obj_imge.SetControlSize(newWidth, IMGE_SZ);
  2248. imgewid = newWidth;
  2249. imgehei = IMGE_SZ;
  2250. }
  2251. }
  2252. else
  2253. {
  2254. //obj_imge.SetControlSize(IMGE_SZ, IMGE_SZ);
  2255. imgewid = IMGE_SZ;
  2256. imgehei = IMGE_SZ;
  2257. }
  2258. return imgewid + "|" + imgehei;
  2259. }
  2260. /**
  2261. * 이미지 다운버튼 활성여부 함수
  2262. */
  2263. function fOpenImageViewer(){
  2264. var row = grd_medirec.row;
  2265. var sDegitemkind = model.getValue("/root/main/viewmedirec/medireccnts['"+row+"']/degnitemkind");
  2266. if(sDegitemkind == "IMG"){
  2267. model.setValue("root/temp2/img_downinfo/row",row);
  2268. model.setValue("root/temp2/img_downinfo/viewcnts", model.getValue("/root/main/viewmedirec/medireccnts['"+row+"']/viewimge"));
  2269. modal("SSMMR01201");
  2270. }else{
  2271. model.setValue("root/temp2/img_downinfo/row","-1");
  2272. model.setValue("root/temp2/img_downinfo/viewcnts","");
  2273. }
  2274. }
  2275. /**
  2276. * 2014/02/13 마우스 휠 이벤트
  2277. * 이정택
  2278. **/
  2279. var pagecnt="";
  2280. function fPaging(){
  2281. if(model.getValue("/root/temp/hardcodeinfo/trgtcd")=="Y"){
  2282. if(grd_medirec.vscroll.attribute("max") == grd_medirec.vscroll.attribute("pos") && comn_cont_reccnts_copy.condflag!="keyval" && arr_formrecseq.length > pagecnt ){
  2283. pagecnt = parseInt(pagecnt);
  2284. pagecnt +=1;
  2285. comn_cont_reccnts_copy.pagingyn="Y";
  2286. var sWindowMsg = "데이터 조회 중입니다.";
  2287. callLoadingWindow(sWindowMsg);
  2288. fRefMediRecCnts_New(comn_cont_reccnts_copy);
  2289. removeLoadingWindow();
  2290. }
  2291. }
  2292. }
  2293. /**
  2294. * 2013/03/04 버튼 클릭시의 이벤트
  2295. * 이정택
  2296. * @return
  2297. */
  2298. function fPaging_click(){
  2299. if(model.getValue("/root/temp/hardcodeinfo/trgtcd")=="Y"){
  2300. if(comn_cont_reccnts_copy.condflag!="keyval" && arr_formrecseq.length > pagecnt ){
  2301. pagecnt = parseInt(pagecnt);
  2302. pagecnt +=1;
  2303. comn_cont_reccnts_copy.pagingyn="Y";
  2304. var sWindowMsg = "데이터 조회 중입니다.";
  2305. callLoadingWindow(sWindowMsg);
  2306. fRefMediRecCnts_New(comn_cont_reccnts_copy);
  2307. removeLoadingWindow();
  2308. }
  2309. }
  2310. }
  2311. /**
  2312. * 프로그레스바 생성
  2313. * @param msg
  2314. * @return
  2315. */
  2316. function callLoadingWindow(msg){
  2317. body.createChild("xforms:iviewer", "id:ivr_progress; src:../../../com/commonweb/xrw/SPZZZ00400_로딩중화면.xrw; left:100px; top:250px; width:330px; height:120px;");
  2318. var ivrObjt = document.all("ivr_progress");
  2319. ivrObjt.model.setValue("/root/main/msg", msg);
  2320. ivrObjt.model.refresh();
  2321. }
  2322. /**
  2323. * 프로그레스바 삭제
  2324. * @return
  2325. */
  2326. function removeLoadingWindow(){
  2327. body.removeChild("ivr_progress");
  2328. }