SPMMR07000.xjs 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  3. * System Name : DBS
  4. * Job Name :
  5. * File Name : SPMMR07000.xjs
  6. * Creator : jaewon.choe
  7. * Make Date : 2014-07-31
  8. *
  9. * Description :
  10. *---------------------------------------------------------------------------------------
  11. * Modify Date Modifier Modify Description
  12. *---------------------------------------------------------------------------------------
  13. * 2014-07-31 DBS Converting Program(TF->XP)
  14. *
  15. *---------------------------------------------------------------------------------------
  16. ****************************************************************************************/
  17. var bEnable = "N";
  18. function lf_getGridObj(){
  19. return parent.ds_medireclist;
  20. }
  21. /**
  22. * @desc : 메인화면 로딩
  23. * @id :
  24. * @event : onclick
  25. * @return : void
  26. * @authur : 박종훈
  27. */
  28. function fReadyForm()
  29. {
  30. fReadyFormInitData();
  31. grp_sea.cp_multiCal00.setDiffdt(12);
  32. //grp_sea.cp_multiCal00.ufn_addDateReq("today"); // default
  33. var defltdeptcd = sysf_getUserInfo("dutplcecd");
  34. var defltdeptcd_idx = ds_deptCodeList.findRow("deptcd", defltdeptcd);
  35. var defltdeptnm = "";
  36. if( defltdeptcd_idx != -1 ) defltdptcd = ds_deptCodeList.getColumn( defltdeptcd_idx, "depthngnm");
  37. if (defltdeptcd == "2280000000" || defltdeptnm == "")
  38. {
  39. defltdeptcd = "ALL";
  40. }
  41. grp_sea.cbo_deptlist.value = defltdeptcd;
  42. div_reccnts.fInitPage(parseInt(div_reccnts.position.width), parseInt(div_reccnts.position.height));
  43. div_reccnts1.fInitPage(parseInt(div_reccnts1.position.width), parseInt(div_reccnts1.position.height));
  44. //파라이터 처리(등록번호, 기록순번)
  45. var parampid = opener.frmf_getParameter("SPMMR07000_param_pid") ;
  46. var paramformrecseq = opener.frmf_getParameter("SPMMR07000_param_formrecseq");
  47. var srcformcd = opener.frmf_getParameter("SPMMR07000_param_srcformcd");
  48. var lastyn = opener.frmf_getParameter("SPMMR07000_param_lastyn");
  49. bEnable = opener.frmf_getParameter("SPMMR07000_param_bEnable") == "Y" ? "Y" : "N";
  50. ipt_srcformcd.value = utlf_isNull(srcformcd) ? "" : srcformcd;
  51. bol_1.value = utlf_isNull(lastyn) ? "N" : lastyn;
  52. if(!utlf_isNull(paramformrecseq))
  53. {
  54. div_reccnts.fClear();
  55. div_reccnts1.fClear();
  56. ds_reqmedireclist.clearData();
  57. ds_reqmedireclist.addRow();
  58. ds_reqmedireclist.setColumn(0, "pid", "");
  59. ds_reqmedireclist.setColumn(0, "formrecseq", paramformrecseq);
  60. ds_reqmedireclist.setColumn(0, "formnm", "-");
  61. var oParam = {};
  62. oParam.id = "TRMMR07001";
  63. oParam.service = "medirecapp.ComnMediRec";
  64. oParam.method = "reqGetPatRecMastList";
  65. oParam.inds = "req=" + "ds_reqmedireclist";
  66. oParam.outds = "ds_medireclist" + "=medireclist" + " ds_visitdept" + "=visitdept";
  67. oParam.async = true;
  68. oParam.callback = "cf_TRMMR07001"
  69. tranf_submit(oParam);
  70. }
  71. else if (!utlf_isNull(parampid))
  72. {
  73. grp_sea.ipt_pid.value = parampid;
  74. fPidKeyPress(); //등록번호로 환자 정보조회
  75. fRefMediRecList();
  76. }
  77. else
  78. {
  79. var pamInfoCvs = sysf_getGlobalVariable("paminfo"); //상단정보가 있을 경우는 검색
  80. if(!utlf_isNull(pamInfoCvs) && !utlf_isNull(pamInfoCvs))
  81. { //cvs가 null이 아닌 경우에만 처리함.
  82. ds_result_patinfolist.clearData();
  83. dsf_setCSVToDs("ds_result_patinfolist", pamInfoCvs);
  84. var pid = ds_result_patinfolist.getColumn(0, "pid");
  85. grp_sea.ipt_pid.value = pid;
  86. fPidKeyPress(); //등록번호로 환자 정보조회
  87. fRefMediRecList();
  88. }
  89. }
  90. }
  91. function cf_TRMMR07001(sSvcId, nErrorCode, sErrorMsg){
  92. if(nErrorCode > -1) {
  93. var cnt = ds_medireclist.rowcount;
  94. //sysf_trace( "***** ds_medireclist.rowcount() : " + cnt );
  95. if (cnt > 0)
  96. {
  97. grp_sea.cbo_deptlist.value = "ALL";
  98. var sPid = ds_medireclist.getColumn(0, "pid");
  99. grp_sea.ipt_pid.value = sPid;
  100. fPidKeyPress(); //등록번호로 환자 정보조회
  101. fGetRecHist(ds_medireclist.getColumn(0, "formrecseq")); //기록이력 조회
  102. fGetRecCntsHist(ds_rechistlist.getColumn(0, "rechistseq"), ds_rechistlist.getColumn(0, "rowcolor")); // 기록내용 조회
  103. if( bEnable == "Y" ){
  104. lf_setEnable();
  105. }
  106. }
  107. }
  108. }
  109. /**
  110. * @desc : 기록 목록 조회
  111. * @id :
  112. * @event :
  113. * @return : void
  114. * @authur : 박종훈
  115. */
  116. function fRefMediRecList()
  117. {
  118. if( utlf_isNull(ds_patinfolist.getColumn(0, "pid")) )
  119. {
  120. sysf_messageBox("환자정보가 존재하지 않아 진행 ", "E001");
  121. return;
  122. }
  123. div_reccnts.fClear();
  124. div_reccnts1.fClear();
  125. ds_medireclist.clearData();
  126. ds_rechistlist.clearData();
  127. var fromTo = new Array(2);
  128. fromTo = grp_sea.cp_multiCal00.getData();
  129. ds_reqmedireclist.clearData();
  130. ds_reqmedireclist.addRow();
  131. ds_reqmedireclist.setColumn(0, "pid", ds_patinfolist.getColumn(0, "pid"));
  132. ds_reqmedireclist.setColumn(0, "recfromdt", fromTo[0] );
  133. ds_reqmedireclist.setColumn(0, "rectodt", fromTo[1]);
  134. ds_reqmedireclist.setColumn(0, "formrecdeptcd", grp_sea.cbo_deptlist.value);
  135. ds_reqmedireclist.setColumn(0, "formrecseq", "0");
  136. ds_reqmedireclist.setColumn(0, "srcformcd", ipt_srcformcd.value);
  137. var formnm = grp_sea.ipt_formnm.value;
  138. //if (formnm == "")
  139. if( utlf_isNull(formnm) )
  140. {
  141. formnm = "-";
  142. }
  143. ds_reqmedireclist.setColumn(0, "formnm", formnm);
  144. //sysf_trace(ds_reqmedireclist.saveXML());
  145. var oParam = {};
  146. oParam.id = "TRMMR07001";
  147. oParam.service = "medirecapp.ComnMediRec";
  148. oParam.method = "reqGetPatRecMastList";
  149. oParam.inds = "req=" + "ds_reqmedireclist";
  150. oParam.outds = "ds_medireclist" + "=medireclist" + " ds_visitdept" + "=visitdept";
  151. oParam.async = false;
  152. tranf_submit(oParam);
  153. var srcformcd = ipt_srcformcd.value;
  154. //sysf_trace("srcformcd : " + srcformcd);
  155. if ( srcformcd != null )
  156. {
  157. fGetRecHist(ds_medireclist.getColumn(0, "formrecseq"));
  158. fGetRecCntsHist(ds_rechistlist.getColumn(0, "rechistseq"), ds_rechistlist.getColumn(0, "rowcolor"));
  159. }
  160. cnt = 0;
  161. var cnt = ds_visitdept.rowcount;
  162. //sysf_trace(cnt);
  163. if (cnt > 0)
  164. {
  165. var orddd = ds_reqmedireclist.getColumn(0, "orddd");
  166. var cretno = ds_reqmedireclist.getColumn(0, "cretno");
  167. var cnt2 = ds_medireclist.rowcount;
  168. if (cnt2 == 0)
  169. {
  170. for (var i = 0; i < cnt; i++)
  171. {
  172. ds_medireclist.setColumn(i, "formrecdeptcd", ds_visitdept.getColumn(i, "orddeptcd"));
  173. ds_medireclist.setColumn(i, "formrecdeptnm", ds_visitdept.getColumn(i, "orddeptnm"));
  174. ds_medireclist.setColumn(i, "formnminfo", "호출과 미작성");
  175. ds_medireclist.setColumn(i, "orddd", orddd);
  176. ds_medireclist.setColumn(i, "cretno", cretno);
  177. }
  178. }
  179. else
  180. {
  181. var cond ="orddd=='#orddd#' and cretno=='#cretno#' and formrecdeptcd=='#deptcd#'";
  182. cond = cond.replace("#orddd#", orddd);
  183. cond = cond.replace("#cretno#", cretno);
  184. var stmt;
  185. for ( var i = 0; i < cnt; i++)
  186. {
  187. stmt = cond.replace("#deptcd#", ds_visitdept.getColumn(i, "orddeptcd"));
  188. if( ds_medireclist.findRowExpr(stmt) == -1){
  189. ds_medireclist.insertRow(0);
  190. ds_medireclist.setColumn(0, "formrecdeptcd", ds_visitdept.getColumn(i, "orddeptcd"));
  191. ds_medireclist.setColumn(0, "formrecdeptnm", ds_visitdept.getColumn(i, "orddeptnm"));
  192. ds_medireclist.setColumn(0, "formnminfo", "호출과 미작성");
  193. ds_medireclist.setColumn(0, "orddd", orddd);
  194. ds_medireclist.setColumn(0, "cretno", cretno);
  195. }
  196. }
  197. }
  198. for (var i = 0; i < ds_medireclist.rowcount; i++)
  199. {
  200. if( ds_medireclist.getColumn(i, "orddd") == orddd &&
  201. ds_medireclist.getColumn(i, "cretno") == cretno )
  202. grd_medireclist.setCellProperty("body", i, "color", "blue");
  203. }
  204. }
  205. if (ds_medireclist.rowcount > 0)
  206. {
  207. ds_medireclist.rowposition = 0;
  208. grd_medireclist.setFocus();
  209. }
  210. }
  211. /**
  212. * @desc : 기록 이력 조회
  213. * @id :
  214. * @event :
  215. * @return : void
  216. * @authur : 박종훈
  217. */
  218. function fGetRecHist(formrecseq)
  219. {
  220. div_reccnts.fClear();
  221. div_reccnts1.fClear();
  222. ds_reqrechistlist.clearData();
  223. ds_reqrechistlist.addRow();
  224. ds_reqrechistlist.setColumn(0, "formrecseq", formrecseq);
  225. ds_reqrechistlist.setColumn(0, "lastyn", bol_1.value );
  226. //trace(ds_reqrechistlist.saveXML());
  227. var oParam = {};
  228. oParam.id = "TRMMR07002";
  229. oParam.service = "medirecapp.ComnMediRec";
  230. oParam.method = "reqGetRecHistList";
  231. oParam.inds = "req=" + "ds_reqrechistlist";
  232. oParam.outds = "ds_rechistlist" + "=rechistlist";
  233. oParam.async = false;
  234. tranf_submit(oParam);
  235. //trace(ds_rechistlist.saveXML());
  236. }
  237. /**
  238. * @desc : 기록 목록 내용 조회
  239. * @id :
  240. * @event :
  241. * @return : void
  242. * @authur : 박종훈
  243. */
  244. function fGetRecCntsHist(rechistseq, rowcolor)
  245. {
  246. div_reccnts.fClear();
  247. div_reccnts.fRefRecViewByHistSeq(rechistseq);
  248. }
  249. /**
  250. * @group :
  251. * @ver : 2009.03.25
  252. * @by : jonghun
  253. * @---------------------------------------------------
  254. * @type : function
  255. * @access : private
  256. * @desc : 마우스 오른쪽 버튼 이벤트
  257. * @param :
  258. * @return :
  259. * @---------------------------------------------------
  260. */
  261. function fMouseRight(obj, e)
  262. {
  263. // var loginuserid = sysf_getUserId();
  264. // if (loginuserid == "97055522" || loginuserid == "99031128")
  265. // {
  266. if(obj.name == "grd_rechist"){
  267. pmn_popupMenu.trackPopup(e.screenX,e.screenY);
  268. }else if(obj.name == "grd_medireclist"){
  269. pmn_popupMenu2.trackPopup(e.screenX,e.screenY);
  270. }
  271. // }
  272. }
  273. /**
  274. * @desc : 진료기록 리스트 조회조건의 진료과 조회 및 서식즐겨찾기 조회
  275. * @id :
  276. * @event :
  277. * @return : void
  278. * @authur : 박종훈
  279. */
  280. function fReadyFormInitData()
  281. {
  282. lf_mmbfGetDeptCodeComboList(ds_deptCodeList, "A");
  283. frmf_addComboItem("grp_sea.cbo_deptlist", "전체", "ALL");
  284. }
  285. /**
  286. * @group :
  287. * @ver : 2009.03.25
  288. * @by : jonghun
  289. * @---------------------------------------------------
  290. * @type : function
  291. * @access : private
  292. * @desc : 마우스 오른쪽 버튼 이벤트
  293. * @param :
  294. * @return :
  295. * @---------------------------------------------------
  296. */
  297. function fSetReplaceImg()
  298. {
  299. var rechistseq = ds_rechistlist.getColumn( ds_rechistlist.rowposition, "rechistseq");
  300. var objColInfo = new Array();
  301. objColInfo.push({col: "rechistseq", val: rechistseq});
  302. dsf_createDsRow("ds_reqrechistseq", objColInfo);
  303. objColInfo = new Array();
  304. objColInfo.push([{col: "updtcnt", type:"string", size:256}, {col: "updtcnfmcnt", type:"string", size:256}]);
  305. dsf_createDs("ds_cnfmcnt", objColInfo);
  306. var oParam = {};
  307. oParam.id = "TXMMR07001";
  308. oParam.service = "medirecapp.ComnMediRec";
  309. oParam.method = "reqExeRecImgeReplace";
  310. oParam.inds = "req=" + "ds_reqrechistseq";
  311. oParam.outds = "ds_cnfmcnt" + "=cnfmcnt";
  312. oParam.async = false;
  313. oParam.callback = "cf_TXMMR07001"
  314. tranf_submit(oParam);
  315. }
  316. function cf_TRPMC02500(sSvcId, nErrorCode, sErrorMsg){
  317. if(nErrorCode > -1) {
  318. ds_cnfmcnt.updateColID("updtcnt", "updtdd");
  319. ds_cnfmcnt.updateColID("updtcnfmcnt", "updttm");
  320. var cnt = ds_cnfmcnt.getColumn(0, "updtdd");
  321. cnt = parseInt(cnt);
  322. if (cnt > 0)
  323. {
  324. sysf_messageBox("수정", "I001");
  325. }
  326. /* Temp로 사용한 Dataset을 삭제 */
  327. var oRemoveDs = this.removeChild("ds_cnfmcnt");
  328. oRemoveDs = null;
  329. oRemoveDs = this.removeChild("ds_reqrechistseq");
  330. oRemoveDs = null;
  331. }
  332. }
  333. /**
  334. * @desc : 환자이름 정보조회
  335. * @id :
  336. * @event : onkeypress
  337. * @return : void
  338. * @authur : 박종훈
  339. */
  340. function fPnmKeyPress()
  341. {
  342. ds_source.setColumn(0, "srchcond", "2");
  343. ds_source.setColumn(0, "hngnm", grp_sea.ipt_hngnm.value);
  344. var e = new ClickEventInfo;
  345. frmf_inputEnterKey("grp_sea.btn_search", "onclick", e);
  346. }
  347. /**
  348. * @desc : 환자정보조회 팝업
  349. * @id :
  350. * @event : DOMActivate
  351. * @return : void
  352. * @authur : 박종훈
  353. */
  354. function fPopPtinfo()
  355. {
  356. var objArgs = new Object();
  357. objArgs.srchcond = utlf_isNull(ds_source.getColumnInfo("srchcond")) ? "" : ds_source.getColumn(0, "srchcond");
  358. objArgs.pid = utlf_isNull(ds_source.getColumnInfo("pid")) ? "" : ds_source.getColumn(0, "pid");
  359. objArgs.hngnm = utlf_isNull(ds_source.getColumnInfo("hngnm")) ? "" : ds_source.getColumn(0, "hngnm");
  360. objArgs.rrgstno1 = utlf_isNull(ds_source.getColumnInfo("rrgstno1")) ? "" : ds_source.getColumn(0, "rrgstno1");
  361. objArgs.rrgstno2 = utlf_isNull(ds_source.getColumnInfo("rrgstno2")) ? "" : ds_source.getColumn(0, "rrgstno2");
  362. frmf_modal("SPPMC02500", "SPPMC02500", objArgs, null, null, null, null, null, null, null, null, null, "M");
  363. /*
  364. modal("SPPMC02500", "1","150", "150", "SPPMC02500", "/root/source", "/root/send");
  365. model.resetInstanceNode("/root/source");
  366. */
  367. }
  368. /**
  369. * @desc : 환자번호 정보조회
  370. * @id :
  371. * @event : onkeypress
  372. * @return : void
  373. * @authur : 박종훈(튜닝)
  374. */
  375. function fPidKeyPress()
  376. {
  377. //grp_sea.ipt_pid.value = "3208769";
  378. grp_sea.ipt_pid.updateToDataset();
  379. ds_source.clearData();
  380. var nRow = ds_source.addRow();
  381. ds_source.setColumn(nRow, "srchcond", "1");
  382. ds_source.setColumn(nRow, "pid", grp_sea.ipt_pid.value);
  383. //환자등록번호 체크
  384. if(grp_sea.ipt_pid.value.length >= 1 )
  385. {
  386. ds_result_patinfolist.clearData();
  387. ds_result_patinfolist.addRow();
  388. var oParam = {};
  389. oParam.id = "TRPMC02500";
  390. oParam.service = "patinfomngtapp.PatBaseInfo";
  391. oParam.method = "reqGetPatInfo";
  392. oParam.inds = "req=" + "ds_source";
  393. oParam.outds = "ds_result_patinfolist" + "=patinfolist";
  394. oParam.async = false;
  395. oParam.callback = "cf_TRPMC02500"
  396. tranf_submit(oParam);
  397. }
  398. else
  399. {
  400. sysf_messageBox("등록번호를 정확히", "C001");
  401. }
  402. }
  403. function cf_TRPMC02500(sSvcId, nErrorCode, sErrorMsg){
  404. if(nErrorCode > -1) {
  405. //fSearch는 인적사항 화면을 임포트 해간 화면에서 구현해 주어야 하는 함수이다.
  406. if( ds_result_patinfolist.rowcount > 0 ){
  407. ds_patinfolist.copyData(ds_result_patinfolist);
  408. var agesex = ds_patinfolist.getColumn(0, "sex") + ds_patinfolist.getColumn(0, "age");
  409. var objColInfo = new Array();
  410. objColInfo.push({col: "agesex", val: agesex});
  411. dsf_createDsRow("ds_patinfo_agesex", objColInfo);
  412. objColInfo = new Array();
  413. objColInfo.push({col: "popupendflag", val: "ok"});
  414. dsf_createDsRow("ds_main_popupendflag", objColInfo);
  415. var oprnerId = opener.frmf_getScreenID();
  416. if(oprnerId == "SPMRC03200")
  417. {
  418. var keyparam = ds_patinfolist.getColumn(0, "pid") + "▦" + ds_patinfolist.getColumn(0, "hngnm") + "▦" + ds_patinfolist.getColumn(0, "age") + "▦";
  419. opener.fEnterPatinfo(keyparam);
  420. }
  421. }
  422. else
  423. {
  424. ds_patinfolist.clearData();
  425. ds_patinfolist.addRow();
  426. sysf_messageBox("없는 등록번호 입니다.", "E999", "");
  427. }
  428. }
  429. }
  430. /**
  431. * @desc : 미리보기 조회
  432. * @id :
  433. * @event :
  434. * @return : void
  435. * @authur : 박종훈
  436. */
  437. function fShowMediRecCnt(formrecseq)
  438. {
  439. // 상단정보 pid 확인 임시로 ds_paminfo 상단 내용 셋팅 후 수정 필요!
  440. if( utlf_isNull(ds_paminfo.getColumnInfo("pid")) ) return;
  441. var cond = new COMN_CONT_RECCNTS();
  442. cond.pid = ds_paminfo.getColumn(0, "pid");
  443. cond.formrecdeptcd = ds_reqmedireclist.getColumn(0, "formrecdeptcd");
  444. cond.chosflag = ds_reqmedireclist.getColumn(0, "chosflag");
  445. cond.reclistlength = ds_medireclist.rowcount;
  446. if (utlf_isNull(formrecseq))
  447. {
  448. cond.recfromdt = ds_reqmedireclist.getColumn(0, "recfromdt");
  449. cond.rectodt = ds_reqmedireclist.getColumn(0, "rectodt");
  450. }
  451. else
  452. {
  453. cond.recfromdt = "";
  454. cond.rectodt = "";
  455. }
  456. cond.formrecseq = formrecseq;
  457. ivw_reccnts.fRefMediRecCnts(cond);
  458. // swt_left.selectedIndex = 1;
  459. // button15.selected = true;
  460. }
  461. /****************************************************************************************
  462. * Argument : N/A
  463. * Description : 조회 사용불가처리 및 선택기록 로딩
  464. ****************************************************************************************/
  465. function lf_setEnable(){
  466. for(var i=0; i<grp_sea.components.length; i++ )
  467. {
  468. var oComp = grp_sea.components[i];
  469. trace(oComp);
  470. if( oComp instanceof Edit || oComp instanceof Button
  471. || oComp == "cp_multiCal" || oComp instanceof Combo ){
  472. oComp.enable = false;
  473. }
  474. }
  475. fGetRecHist( ds_medireclist.getColumn( 0, "formrecseq") );
  476. fGetRecCntsHist( ds_rechistlist.getColumn( 0, "rechistseq"), ds_rechistlist.getColumn(0, "rowcolor"));
  477. }
  478. /****************************************************************************************
  479. * Argument : N/A
  480. * Description : 비교할 두 개 기록의 rechistseq로 텍스트 비교 솔루션 호출
  481. ****************************************************************************************/
  482. var lgv_Foldernm = system.convertRealPath("%MYDOCUMENT%") + "\KU20\\Compare" + sysf_getUserInfo("dutplceinstcd");
  483. var lgv_path = "C:\\himed\\components\\AcroSoft\\AcroDiff.exe";
  484. //var lgv_path = "C:\\Program Files\\Beyond Compare 4\\BCompare.exe";
  485. function lf_Compare(){
  486. // if( sysf_isRealServer() ){
  487. // sysf_messageBox("준비중입니다.", "I");
  488. // return;
  489. // }
  490. var aRows = grdf_getSelectedRows(grd_rechist);
  491. if( aRows.length != 2 ){
  492. sysf_messageBox("비교 기록 2개를 정확히 선택하시기 바랍니다.", "I");
  493. return;
  494. }
  495. ds_temp_rechistlist.clearData();
  496. for(var i = 0; i < aRows.length; i++){
  497. var row = ds_temp_rechistlist.addRow();
  498. ds_temp_rechistlist.setColumn(row, "rechistseq", ds_rechistlist.getColumn(0, "rechistseq"));
  499. ds_temp_rechistlist.setColumn(row, "updtdd", ds_rechistlist.getColumn(0, "updtdd"));
  500. ds_temp_rechistlist.setColumn(row, "updttm", ds_rechistlist.getColumn(0, "updttm"));
  501. }
  502. lf_Compare_detail("grd_rechist", "ds_rechistlist", aRows);
  503. }
  504. function lf_Compare2(){
  505. // if( sysf_isRealServer() ){
  506. // sysf_messageBox("준비중입니다.", "I");
  507. // return;
  508. // }
  509. var aRows = grdf_getSelectedRows(grd_medireclist);
  510. if( aRows.length != 2 ){
  511. sysf_messageBox("비교 기록 2개를 정확히 선택하시기 바랍니다.", "I");
  512. return;
  513. }
  514. if(ds_medireclist.getColumn(aRows[0], "formcd") != ds_medireclist.getColumn(aRows[1], "formcd")){
  515. sysf_messageBox("동일 서식의 기록 2개를 선택하시기 바랍니다.", "I");
  516. return;
  517. }
  518. //기록목록에서 선택 시 -> 선택한 기록의 rechistseq, updtdd, updttm 조회
  519. dsf_createDs("ds_compare");
  520. ds_temp_rechistlist.clearData();
  521. for(var i = 0; i < aRows.length; i++){
  522. dsf_createDsRow("ds_temp_cond", [{col: "formrecseq", type:"string", size:256, val:ds_medireclist.getColumn(aRows[i], "formrecseq")}
  523. , {col: "lastyn", type:"string", size:256, val:"Y"}]); // Y: 가장 최근 기록만 조회
  524. var oParam = {};
  525. oParam.id = "TRMMR07003";
  526. oParam.service = "medirecapp.ComnMediRec";
  527. oParam.method = "reqGetRecHistList";
  528. oParam.inds = "req=ds_temp_cond";
  529. oParam.outds = "ds_compare=rechistlist";
  530. oParam.async = false;
  531. tranf_submit(oParam);
  532. if(ds_compare.rowcount > 0){
  533. var row = ds_temp_rechistlist.addRow();
  534. ds_temp_rechistlist.setColumn(row, "rechistseq", ds_compare.getColumn(0, "rechistseq"));
  535. ds_temp_rechistlist.setColumn(row, "updtdd", ds_compare.getColumn(0, "updtdd"));
  536. ds_temp_rechistlist.setColumn(row, "updttm", ds_compare.getColumn(0, "updttm"));
  537. }else{
  538. sysf_messageBox("아래 기록의 작성이력이 없으므로 비교 불가합니다."
  539. + ds_medireclist.getColumn(aRows[i], "formrecdd") + " "
  540. + ds_medireclist.getColumn(aRows[i], "formrechm").substr(0, 2) + ":"
  541. + ds_medireclist.getColumn(aRows[i], "formrechm").substr(2, 2) + " "
  542. + ds_medireclist.getColumn(aRows[i], "formnminfo")
  543. , "I");
  544. return;
  545. }
  546. }
  547. dsf_deleteDs("ds_compare");
  548. lf_Compare_detail("grd_medireclist", "ds_temp_rechistlist", aRows);
  549. }
  550. function lf_Compare_detail(grdNm, dsNm, aRows){
  551. var objGrid = this.components[grdNm];
  552. var objDs = this.objects[dsNm];
  553. var objExt = new ExtCommon();
  554. if (objExt.IsFileExist(lgv_path))
  555. {
  556. // Step0. Shell Init
  557. var oShell = null;
  558. if(utlf_isNull(this.components["inff_objShell"])){
  559. oShell = new ActiveX("inff_objShell", 0,0,0,0);
  560. oShell.progid = "Shell.Application";
  561. this.addChild("inff_objShell", oShell);
  562. oShell.show();
  563. }else{
  564. oShell = this.components["inff_objShell"];
  565. }
  566. // Step1. Dats Search & Make Text File
  567. var gTabSpace = new Array("", "", " ", " ", " ", " ", " ", " ", " ");
  568. var aMakeFile = new Array(aRows.length);
  569. for(var i=0; i<aRows.length; i++){
  570. var rechistseq = objDs.getColumn(i, "rechistseq");
  571. var updtdd = objDs.getColumn(i, "updtdd");
  572. var updttm = objDs.getColumn(i, "updttm");
  573. dsf_createDsRow("ds_cond_tmprecinfo", [{col:"rechistseq", val:rechistseq}]);
  574. dsf_createDs("ds_data_tmprecinfo");
  575. var oParam = {};
  576. oParam.id = "TRMMR01203";
  577. oParam.service = "medirecapp.ComnMediRec";
  578. oParam.method = "reqGetComnFormRecCntsByhistseq";
  579. oParam.inds = "req=ds_cond_tmprecinfo";
  580. oParam.outds = "ds_data_tmprecinfo=medireccnts";
  581. oParam.async = false;
  582. tranf_submit(oParam);
  583. var bufCnts = "";
  584. for (var k = 0; k < ds_data_tmprecinfo.rowcount; k++)
  585. {
  586. var degnitemlevlno = ds_data_tmprecinfo.getColumn(k, "degnitemlevlno");
  587. if (degnitemlevlno == -1)
  588. {
  589. bufCnts += ds_data_tmprecinfo.getColumn(k, "viewcnts") + "\r\n";
  590. }
  591. else if ( utlf_isNull(dsf_getColumnNullToEmpty(ds_data_tmprecinfo, k, "imgehei")) )
  592. {
  593. bufCnts += gTabSpace[ parseInt( degnitemlevlno ) ];
  594. bufCnts += ds_data_tmprecinfo.getColumn(k, "viewcnts") + "\n";
  595. }
  596. }
  597. aMakeFile[i] = lgv_Foldernm + "\\" + (aRows[i]+1) + "_" + updtdd + "_" + updttm + "_" + rechistseq + ".txt";
  598. //trace("aMakeFile[" + i + "] >> " + aMakeFile[i]);
  599. var vfile = new VirtualFile(aMakeFile[i], VirtualFile.openWrite);
  600. vfile.write(bufCnts, "utf-8");
  601. vfile.close();
  602. }
  603. oShell.ShellExecute(lgv_path, aMakeFile[0] + " " + aMakeFile[1], "", "open", "1");
  604. }else{
  605. sysf_messageBox("클라이언트 프로그램을 찾을 수 없습니다. 문의하시기 바랍니다.", "E");
  606. }
  607. }]]></Script>