SPMMR07000.xjs 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565
  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. function lf_getGridObj(){
  18. return parent.ds_medireclist;
  19. }
  20. /**
  21. * @desc : 메인화면 로딩
  22. * @id :
  23. * @event : onclick
  24. * @return : void
  25. * @authur : 박종훈
  26. */
  27. function fReadyForm()
  28. {
  29. fReadyFormInitData();
  30. grp_sea.cp_multiCal00.setDiffdt(12);
  31. //grp_sea.cp_multiCal00.ufn_addDateReq("today"); // default
  32. var defltdeptcd = sysf_getUserInfo("dutplcecd");
  33. var defltdeptcd_idx = ds_deptCodeList.findRow("deptcd", defltdeptcd);
  34. var defltdeptnm = "";
  35. if( defltdeptcd_idx != -1 ) defltdptcd = ds_deptCodeList.getColumn( defltdeptcd_idx, "depthngnm");
  36. if (defltdeptcd == "2280000000" || defltdeptnm == "")
  37. {
  38. defltdeptcd = "ALL";
  39. }
  40. grp_sea.cbo_deptlist.value = defltdeptcd;
  41. div_reccnts.fInitPage(parseInt(div_reccnts.position.width), parseInt(div_reccnts.position.height));
  42. div_reccnts1.fInitPage(parseInt(div_reccnts1.position.width), parseInt(div_reccnts1.position.height));
  43. //파라이터 처리(등록번호, 기록순번)
  44. var parampid = opener.frmf_getParameter("SPMMR07000_param_pid") ; //opener.window.javascript.getParameter("SPMMR07000_param_pid");
  45. var paramformrecseq = opener.frmf_getParameter("SPMMR07000_param_formrecseq"); //opener.window.javascript.getParameter("SPMMR07000_param_formrecseq");
  46. var srcformcd = opener.frmf_getParameter("SPMMR07000_param_srcformcd"); //opener.window.javascript.getParameter("SPMMR07000_param_srcformcd");
  47. var lastyn = opener.frmf_getParameter("SPMMR07000_param_lastyn"); //opener.window.javascript.getParameter("SPMMR07000_param_lastyn");
  48. ipt_srcformcd.value = utlf_isNull(srcformcd) ? "" : srcformcd;
  49. bol_1.value = utlf_isNull(lastyn) ? "N" : lastyn;
  50. if(!utlf_isNull(paramformrecseq))
  51. {
  52. div_reccnts.fClear();
  53. div_reccnts1.fClear();
  54. ds_reqmedireclist.clearData();
  55. ds_reqmedireclist.addRow();
  56. ds_reqmedireclist.setColumn(0, "pid", "");
  57. ds_reqmedireclist.setColumn(0, "formrecseq", paramformrecseq);
  58. ds_reqmedireclist.setColumn(0, "formnm", "-");
  59. var oParam = {};
  60. oParam.id = "TRMMR07001";
  61. oParam.service = "medirecapp.ComnMediRec";
  62. oParam.method = "reqGetPatRecMastList";
  63. oParam.inds = "req=" + "ds_reqmedireclist";
  64. oParam.outds = "ds_medireclist" + "=medireclist" + " ds_visitdept" + "=visitdept";
  65. oParam.async = true;
  66. oParam.callback = "cf_TRMMR07001"
  67. tranf_submit(oParam);
  68. }
  69. else if (!utlf_isNull(parampid))
  70. {
  71. grp_sea.ipt_pid.value = parampid;
  72. fPidKeyPress(); //등록번호로 환자 정보조회
  73. fRefMediRecList();
  74. }
  75. else
  76. {
  77. var pamInfoCvs = sysf_getGlobalVariable("paminfo"); //상단정보가 있을 경우는 검색
  78. if(!utlf_isNull(pamInfoCvs) && !utlf_isNull(pamInfoCvs))
  79. { //cvs가 null이 아닌 경우에만 처리함.
  80. ds_result_patinfolist.clearData();
  81. dsf_setCSVToDs("ds_result_patinfolist", pamInfoCvs);
  82. var pid = ds_result_patinfolist.getColumn(0, "pid");
  83. grp_sea.ipt_pid.value = pid;
  84. fPidKeyPress(); //등록번호로 환자 정보조회
  85. fRefMediRecList();
  86. }
  87. }
  88. }
  89. function cf_TRMMR07001(sSvcId, nErrorCode, sErrorMsg){
  90. if(nErrorCode > -1) {
  91. var cnt = ds_medireclist.rowcount;
  92. //sysf_trace( "***** ds_medireclist.rowcount() : " + cnt );
  93. if (cnt > 0)
  94. {
  95. grp_sea.cbo_deptlist.value = "ALL";
  96. var sPid = ds_medireclist.getColumn(0, "pid");
  97. grp_sea.ipt_pid.value = sPid;
  98. fPidKeyPress(); //등록번호로 환자 정보조회
  99. }
  100. }
  101. }
  102. /**
  103. * @desc : 기록 목록 조회
  104. * @id :
  105. * @event :
  106. * @return : void
  107. * @authur : 박종훈
  108. */
  109. function fRefMediRecList()
  110. {
  111. if( utlf_isNull(ds_patinfolist.getColumn(0, "pid")) )
  112. {
  113. sysf_messageBox("환자정보가 존재하지 않아 진행 ", "E001");
  114. return;
  115. }
  116. div_reccnts.fClear();
  117. div_reccnts1.fClear();
  118. ds_medireclist.clearData();
  119. ds_rechistlist.clearData();
  120. var fromTo = new Array(2);
  121. fromTo = grp_sea.cp_multiCal00.getData();
  122. ds_reqmedireclist.clearData();
  123. ds_reqmedireclist.addRow();
  124. ds_reqmedireclist.setColumn(0, "pid", ds_patinfolist.getColumn(0, "pid"));
  125. ds_reqmedireclist.setColumn(0, "recfromdt", fromTo[0] );
  126. ds_reqmedireclist.setColumn(0, "rectodt", fromTo[1]);
  127. ds_reqmedireclist.setColumn(0, "formrecdeptcd", grp_sea.cbo_deptlist.value);
  128. ds_reqmedireclist.setColumn(0, "formrecseq", "0");
  129. ds_reqmedireclist.setColumn(0, "srcformcd", ipt_srcformcd.value);
  130. var formnm = grp_sea.ipt_formnm.value;
  131. //if (formnm == "")
  132. if( utlf_isNull(formnm) )
  133. {
  134. formnm = "-";
  135. }
  136. ds_reqmedireclist.setColumn(0, "formnm", formnm);
  137. //sysf_trace(ds_reqmedireclist.saveXML());
  138. var oParam = {};
  139. oParam.id = "TRMMR07001";
  140. oParam.service = "medirecapp.ComnMediRec";
  141. oParam.method = "reqGetPatRecMastList";
  142. oParam.inds = "req=" + "ds_reqmedireclist";
  143. oParam.outds = "ds_medireclist" + "=medireclist" + " ds_visitdept" + "=visitdept";
  144. oParam.async = false;
  145. tranf_submit(oParam);
  146. var srcformcd = ipt_srcformcd.value;
  147. //sysf_trace("srcformcd : " + srcformcd);
  148. if ( srcformcd != null )
  149. {
  150. fGetRecHist(ds_medireclist.getColumn(0, "formrecseq"));
  151. fGetRecCntsHist(ds_rechistlist.getColumn(0, "rechistseq"), ds_rechistlist.getColumn(0, "rowcolor"));
  152. }
  153. cnt = 0;
  154. var cnt = ds_visitdept.rowcount;
  155. //sysf_trace(cnt);
  156. if (cnt > 0)
  157. {
  158. var orddd = ds_reqmedireclist.getColumn(0, "orddd");
  159. var cretno = ds_reqmedireclist.getColumn(0, "cretno");
  160. var cnt2 = ds_medireclist.rowcount;
  161. if (cnt2 == 0)
  162. {
  163. for (var i = 0; i < cnt; i++)
  164. {
  165. ds_medireclist.setColumn(i, "formrecdeptcd", ds_visitdept.getColumn(i, "orddeptcd"));
  166. ds_medireclist.setColumn(i, "formrecdeptnm", ds_visitdept.getColumn(i, "orddeptnm"));
  167. ds_medireclist.setColumn(i, "formnminfo", "호출과 미작성");
  168. ds_medireclist.setColumn(i, "orddd", orddd);
  169. ds_medireclist.setColumn(i, "cretno", cretno);
  170. }
  171. }
  172. else
  173. {
  174. var cond ="orddd=='#orddd#' and cretno=='#cretno#' and formrecdeptcd=='#deptcd#'";
  175. cond = cond.replace("#orddd#", orddd);
  176. cond = cond.replace("#cretno#", cretno);
  177. var stmt;
  178. for ( var i = 0; i < cnt; i++)
  179. {
  180. stmt = cond.replace("#deptcd#", ds_visitdept.getColumn(i, "orddeptcd"));
  181. if( ds_medireclist.findRowExpr(stmt) == -1){
  182. ds_medireclist.insertRow(0);
  183. ds_medireclist.setColumn(0, "formrecdeptcd", ds_visitdept.getColumn(i, "orddeptcd"));
  184. ds_medireclist.setColumn(0, "formrecdeptnm", ds_visitdept.getColumn(i, "orddeptnm"));
  185. ds_medireclist.setColumn(0, "formnminfo", "호출과 미작성");
  186. ds_medireclist.setColumn(0, "orddd", orddd);
  187. ds_medireclist.setColumn(0, "cretno", cretno);
  188. }
  189. }
  190. }
  191. for (var i = 0; i < ds_medireclist.rowcount; i++)
  192. {
  193. if( ds_medireclist.getColumn(i, "orddd") == orddd &&
  194. ds_medireclist.getColumn(i, "cretno") == cretno )
  195. grd_medireclist.setCellProperty("body", i, "color", "blue");
  196. }
  197. }
  198. if (ds_medireclist.rowcount > 0)
  199. {
  200. ds_medireclist.rowposition = 0;
  201. grd_medireclist.setFocus();
  202. }
  203. }
  204. /**
  205. * @desc : 기록 이력 조회
  206. * @id :
  207. * @event :
  208. * @return : void
  209. * @authur : 박종훈
  210. */
  211. function fGetRecHist(formrecseq)
  212. {
  213. div_reccnts.fClear();
  214. div_reccnts1.fClear();
  215. ds_reqrechistlist.clearData();
  216. ds_reqrechistlist.addRow();
  217. ds_reqrechistlist.setColumn(0, "formrecseq", formrecseq);
  218. ds_reqrechistlist.setColumn(0, "lastyn", bol_1.value );
  219. //trace(ds_reqrechistlist.saveXML());
  220. var oParam = {};
  221. oParam.id = "TRMMR07002";
  222. oParam.service = "medirecapp.ComnMediRec";
  223. oParam.method = "reqGetRecHistList";
  224. oParam.inds = "req=" + "ds_reqrechistlist";
  225. oParam.outds = "ds_rechistlist" + "=rechistlist";
  226. oParam.async = false;
  227. tranf_submit(oParam);
  228. //trace(ds_rechistlist.saveXML());
  229. }
  230. /**
  231. * @desc : 기록 목록 내용 조회
  232. * @id :
  233. * @event :
  234. * @return : void
  235. * @authur : 박종훈
  236. */
  237. function fGetRecCntsHist(rechistseq, rowcolor)
  238. {
  239. div_reccnts.fClear();
  240. div_reccnts.fRefRecViewByHistSeq(rechistseq);
  241. }
  242. /**
  243. * @group :
  244. * @ver : 2009.03.25
  245. * @by : jonghun
  246. * @---------------------------------------------------
  247. * @type : function
  248. * @access : private
  249. * @desc : 마우스 오른쪽 버튼 이벤트
  250. * @param :
  251. * @return :
  252. * @---------------------------------------------------
  253. */
  254. function fMouseRight(e)
  255. {
  256. var loginuserid = sysf_getUserId();
  257. // if (loginuserid == "97055522" || loginuserid == "99031128")
  258. // {
  259. pmn_popupMenu.trackPopup(e.screenX,e.screenY);
  260. // }
  261. }
  262. /**
  263. * @desc : 진료기록 리스트 조회조건의 진료과 조회 및 서식즐겨찾기 조회
  264. * @id :
  265. * @event :
  266. * @return : void
  267. * @authur : 박종훈
  268. */
  269. function fReadyFormInitData()
  270. {
  271. lf_mmbfGetDeptCodeComboList(ds_deptCodeList, "A");
  272. frmf_addComboItem("grp_sea.cbo_deptlist", "전체", "ALL");
  273. }
  274. /**
  275. * @group :
  276. * @ver : 2009.03.25
  277. * @by : jonghun
  278. * @---------------------------------------------------
  279. * @type : function
  280. * @access : private
  281. * @desc : 마우스 오른쪽 버튼 이벤트
  282. * @param :
  283. * @return :
  284. * @---------------------------------------------------
  285. */
  286. function fSetReplaceImg(e)
  287. {
  288. var rechistseq = ds_rechistlist.getColumn( e.row, "rechistseq");
  289. var objColInfo = new Array();
  290. objColInfo.push({col: "rechistseq", val: rechistseq});
  291. dsf_createDsRow("ds_reqrechistseq", objColInfo);
  292. objColInfo = new Array();
  293. objColInfo.push([{col: "updtcnt", type:"string", size:256}, {col: "updtcnfmcnt", type:"string", size:256}]);
  294. dsf_createDs("ds_cnfmcnt", objColInfo);
  295. var oParam = {};
  296. oParam.id = "TXMMR07001";
  297. oParam.service = "medirecapp.ComnMediRec";
  298. oParam.method = "reqExeRecImgeReplace";
  299. oParam.inds = "req=" + "ds_reqrechistseq";
  300. oParam.outds = "ds_cnfmcnt" + "=cnfmcnt";
  301. oParam.async = false;
  302. oParam.callback = "cf_TXMMR07001"
  303. tranf_submit(oParam);
  304. }
  305. function cf_TRPMC02500(sSvcId, nErrorCode, sErrorMsg){
  306. if(nErrorCode > -1) {
  307. ds_cnfmcnt.updateColID("updtcnt", "updtdd");
  308. ds_cnfmcnt.updateColID("updtcnfmcnt", "updttm");
  309. var cnt = ds_cnfmcnt.getColumn(0, "updtdd");
  310. cnt = parseInt(cnt);
  311. if (cnt > 0)
  312. {
  313. sysf_messageBox("수정", "I001");
  314. }
  315. /* Temp로 사용한 Dataset을 삭제 */
  316. var oRemoveDs = this.removeChild("ds_cnfmcnt");
  317. oRemoveDs = null;
  318. oRemoveDs = this.removeChild("ds_reqrechistseq");
  319. oRemoveDs = null;
  320. }
  321. }
  322. /**
  323. * @desc : 환자이름 정보조회
  324. * @id :
  325. * @event : onkeypress
  326. * @return : void
  327. * @authur : 박종훈
  328. */
  329. function fPnmKeyPress()
  330. {
  331. ds_source.setColumn(0, "srchcond", "2");
  332. ds_source.setColumn(0, "hngnm", grp_sea.ipt_hngnm.value);
  333. var e = new ClickEventInfo;
  334. frmf_inputEnterKey("grp_sea.btn_search", "onclick", e);
  335. }
  336. /**
  337. * @desc : 환자정보조회 팝업
  338. * @id :
  339. * @event : DOMActivate
  340. * @return : void
  341. * @authur : 박종훈
  342. */
  343. function fPopPtinfo()
  344. {
  345. var objArgs = new Object();
  346. objArgs.srchcond = utlf_isNull(ds_source.getColumnInfo("srchcond")) ? "" : ds_source.getColumn(0, "srchcond");
  347. objArgs.pid = utlf_isNull(ds_source.getColumnInfo("pid")) ? "" : ds_source.getColumn(0, "pid");
  348. objArgs.hngnm = utlf_isNull(ds_source.getColumnInfo("hngnm")) ? "" : ds_source.getColumn(0, "hngnm");
  349. objArgs.rrgstno1 = utlf_isNull(ds_source.getColumnInfo("rrgstno1")) ? "" : ds_source.getColumn(0, "rrgstno1");
  350. objArgs.rrgstno2 = utlf_isNull(ds_source.getColumnInfo("rrgstno2")) ? "" : ds_source.getColumn(0, "rrgstno2");
  351. frmf_modal("SPPMC02500", "SPPMC02500", objArgs, null, null, null, null, null, null, null, null, null, "M");
  352. /*
  353. modal("SPPMC02500", "1","150", "150", "SPPMC02500", "/root/source", "/root/send");
  354. model.resetInstanceNode("/root/source");
  355. */
  356. }
  357. /**
  358. * @desc : 환자번호 정보조회
  359. * @id :
  360. * @event : onkeypress
  361. * @return : void
  362. * @authur : 박종훈(튜닝)
  363. */
  364. function fPidKeyPress()
  365. {
  366. //grp_sea.ipt_pid.value = "3208769";
  367. grp_sea.ipt_pid.updateToDataset();
  368. ds_source.clearData();
  369. var nRow = ds_source.addRow();
  370. ds_source.setColumn(nRow, "srchcond", "1");
  371. ds_source.setColumn(nRow, "pid", grp_sea.ipt_pid.value);
  372. //환자등록번호 체크
  373. if(grp_sea.ipt_pid.value.length >= 1 )
  374. {
  375. ds_result_patinfolist.clearData();
  376. ds_result_patinfolist.addRow();
  377. var oParam = {};
  378. oParam.id = "TRPMC02500";
  379. oParam.service = "patinfomngtapp.PatBaseInfo";
  380. oParam.method = "reqGetPatInfo";
  381. oParam.inds = "req=" + "ds_source";
  382. oParam.outds = "ds_result_patinfolist" + "=patinfolist";
  383. oParam.async = false;
  384. oParam.callback = "cf_TRPMC02500"
  385. tranf_submit(oParam);
  386. }
  387. else
  388. {
  389. sysf_messageBox("등록번호를 정확히", "C001");
  390. }
  391. }
  392. function cf_TRPMC02500(sSvcId, nErrorCode, sErrorMsg){
  393. if(nErrorCode > -1) {
  394. //fSearch는 인적사항 화면을 임포트 해간 화면에서 구현해 주어야 하는 함수이다.
  395. if( ds_result_patinfolist.rowcount > 0 ){
  396. ds_patinfolist.copyData(ds_result_patinfolist);
  397. var agesex = ds_patinfolist.getColumn(0, "sex") + ds_patinfolist.getColumn(0, "age");
  398. var objColInfo = new Array();
  399. objColInfo.push({col: "agesex", val: agesex});
  400. dsf_createDsRow("ds_patinfo_agesex", objColInfo);
  401. objColInfo = new Array();
  402. objColInfo.push({col: "popupendflag", val: "ok"});
  403. dsf_createDsRow("ds_main_popupendflag", objColInfo);
  404. var oprnerId = opener.frmf_getScreenID();
  405. if(oprnerId == "SPMRC03200")
  406. {
  407. var keyparam = ds_patinfolist.getColumn(0, "pid") + "▦" + ds_patinfolist.getColumn(0, "hngnm") + "▦" + ds_patinfolist.getColumn(0, "age") + "▦";
  408. opener.fEnterPatinfo(keyparam);
  409. }
  410. }
  411. else
  412. {
  413. ds_patinfolist.clearData();
  414. ds_patinfolist.addRow();
  415. sysf_messageBox("없는 등록번호 입니다.", "E999", "");
  416. }
  417. }
  418. }
  419. /**
  420. * @desc : 미리보기 조회
  421. * @id :
  422. * @event :
  423. * @return : void
  424. * @authur : 박종훈
  425. */
  426. function fShowMediRecCnt(formrecseq)
  427. {
  428. // 상단정보 pid 확인 임시로 ds_paminfo 상단 내용 셋팅 후 수정 필요!
  429. if( utlf_isNull(ds_paminfo.getColumnInfo("pid")) ) return;
  430. var cond = new COMN_CONT_RECCNTS();
  431. cond.pid = ds_paminfo.getColumn(0, "pid");
  432. cond.formrecdeptcd = ds_reqmedireclist.getColumn(0, "formrecdeptcd");
  433. cond.chosflag = ds_reqmedireclist.getColumn(0, "chosflag");
  434. cond.reclistlength = ds_medireclist.rowcount;
  435. if (utlf_isNull(formrecseq))
  436. {
  437. cond.recfromdt = ds_reqmedireclist.getColumn(0, "recfromdt");
  438. cond.rectodt = ds_reqmedireclist.getColumn(0, "rectodt");
  439. }
  440. else
  441. {
  442. cond.recfromdt = "";
  443. cond.rectodt = "";
  444. }
  445. cond.formrecseq = formrecseq;
  446. ivw_reccnts.fRefMediRecCnts(cond);
  447. // swt_left.selectedIndex = 1;
  448. // button15.selected = true;
  449. }
  450. ]]></Script>