MMR01200.xjs 80 KB

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