SPMRF05500.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 서식미리보기 ( SPMRF05500_서식미리보기.xrw - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. - Author : 이경희
  7. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  8. */
  9. var gFormcd = "";
  10. /**
  11. * @desc : 화면초기화
  12. * @id :
  13. * @event : xforms-ready
  14. * @return : void
  15. * @authur : 박종훈
  16. */
  17. function fInitalize()
  18. {
  19. try
  20. {
  21. //var wid = parseInt(ivw_reccnts.attribute("width")) - 40;
  22. //var hei = parseInt(ivw_reccnts.attribute("height"));
  23. ivw_loader.window.javascript.fInitPage(true, true, parseInt(ivw_loader.attribute("height")), parseInt(ivw_loader.attribute("width")));
  24. //ivw_loader.btn_del.visible = true;
  25. ivw_loader.btn_del.visible = false;
  26. //ivw_loader.window.javascript.afterSaveExeFuncNm = "fReclistClick";
  27. //ivw_reccnts.window.javascript.fInitPage(wid, hei);
  28. ivw_patlist.window.javascript.fInitalize();
  29. ivw_patlist.window.javascript.fInitSize(parseInt(ivw_patlist.attribute("width")), parseInt(ivw_patlist.attribute("height")));
  30. //btn_form.selected = true;
  31. //fSetPatInfo();
  32. //fAddDateReq("today");
  33. setParameter("SPMRI01300_openerid", "SPMMR05400");
  34. //model.toggle("case_form");
  35. //model.toggle("case_loader");
  36. //fGetFormList();
  37. model.refresh();
  38. //
  39. var formcd = opener.window.javascript.getParameter("SPMRF05500_formcd");
  40. if(formcd == "")
  41. {
  42. messageBox("서식코드가", "I004");
  43. model.close();
  44. return;
  45. }
  46. copyNodeset("/root/main/forminfo/formmast", "/root/main/forminfo/formmast", "replace", model, opener.window.model);
  47. var cnt = getNodesetCnt(model, "/root/main/forminfo/formmast");
  48. if(cnt == 0)
  49. {
  50. messageBox("서식정보가", "I004");
  51. model.close();
  52. return;
  53. }
  54. fSelectForm(formcd);
  55. // 임시저장, 인증저장 버튼 invisible 처리
  56. ivw_loader.grup_btn.visible = false;
  57. ivw_loader.button1.visible = false;
  58. ivw_loader.ipt_formrecdd.visible = false;
  59. ivw_loader.ipt_formrectm.visible = false;
  60. ivw_loader.button10.visible = false;
  61. ivw_loader.cbo_formrecextnnm.visible = false;
  62. ivw_loader.caption7.visible = false;
  63. }
  64. catch(e)
  65. {
  66. }
  67. }
  68. /**
  69. * @desc : 디폴트 서식 오픈
  70. * @id :
  71. * @event : xforms-ready
  72. * @return : void
  73. * @authur : 박종훈
  74. */
  75. function fLoadDefForm()
  76. {
  77. if (gFormcd != "")
  78. {
  79. //서식로드시 TOP정보 조회 여부 셋팅(N일경우 Top참조 안함)
  80. ivw_loader.window.javascript.fLoadNewForm(gFormcd, false);
  81. if (getUserInfo("jobkindcd").substring(0, 2) != "03")
  82. {
  83. ivw_loader.grup_btn.disabled = false;
  84. //ivw_loader.btn_signsave.disabled = true;
  85. }
  86. }
  87. }
  88. /**
  89. * @desc : 환자정보
  90. * @id :
  91. * @event : ondblclick
  92. * @return : void
  93. * @authur : 박종훈
  94. */
  95. function fSetPatInfo()
  96. {
  97. //setParameter("SPMMR05400_parm_pinfo", pid + "▦" + orddd + "▦" + cretno + "▦" + ioflag + "▦" + orddeptcd + "▦" + orddrid + "▦" + 환자명 + "▦" + 나이 + "▦" + 성별 + "▦" + 서식부서코드);
  98. var patinfo = "";
  99. if(isPopup())
  100. patinfo = parent.window.javascript.getParameter("SPMMR05400_parm_pinfo");
  101. var pid = "";
  102. var orddd = "";
  103. var cretno = "";
  104. var ioflag = "";
  105. var orddeptcd = "";
  106. var orddrid = "";
  107. var patnm = "";
  108. var age = "";
  109. var sex = "";
  110. var formdeptcd = "";
  111. if (patinfo == "")
  112. {
  113. var pamInfoCvs = getGlobalVariable("paminfo"); //상단정보가 있을 경우는 검색
  114. if(pamInfoCvs != null)
  115. { //cvs가 null이 아닌 경우에만 처리함.
  116. model.removeNodeSet ("/root/main/paminfo/list");
  117. setCSVToNode ("/root/main/paminfo", pamInfoCvs);
  118. //pid = model.getValue ("/root/main/result/patinfo/list/pid");
  119. ioflag = model.getValue("/root/main/paminfo/list/ioflag");
  120. if (ioflag == "O")
  121. {
  122. orddd = model.getValue("/root/main/paminfo/list/orddd");
  123. orddrid = model.getValue("/root/main/paminfo/list/orddrid");
  124. }
  125. else
  126. {
  127. orddd = model.getValue("/root/main/paminfo/list/indd");
  128. orddrid = model.getValue("/root/main/paminfo/list/medispclid");
  129. }
  130. pid = model.getValue("/root/main/paminfo/list/pid");
  131. cretno = model.getValue("/root/main/paminfo/list/cretno");
  132. orddeptcd = model.getValue("/root/main/paminfo/list/orddeptcd");
  133. patnm = model.getValue("/root/main/paminfo/list/hngnm");
  134. age = model.getValue("/root/main/paminfo/list/age");
  135. sex = model.getValue("/root/main/paminfo/list/sex");
  136. }
  137. }
  138. else
  139. {
  140. patinfo = patinfo.split("▦");
  141. pid = patinfo[0];
  142. orddd = patinfo[1];
  143. cretno = patinfo[2];
  144. ioflag = patinfo[3];
  145. orddeptcd = patinfo[4];
  146. orddrid = patinfo[5];
  147. patnm = patinfo[6];
  148. age = patinfo[7];
  149. sex = patinfo[8];
  150. formdeptcd = patinfo[9];
  151. model.makeValue("/root/main/paminfo/list/pid", pid);
  152. model.makeValue("/root/main/paminfo/list/orddeptcd", orddeptcd);
  153. }
  154. //진료부서 조회
  155. //reqGetDeptList("/root/init/reqdata", "/root/init/deptlist", "", "012");
  156. mmbfGetDeptCodeComboList("/root/init/deptlist", "/root/init/deptlist", "A");
  157. if (pid == "")
  158. {
  159. messageBox("기록에 필요한 환자 원무정보가", "I004");
  160. ivw_loader.grup_btn.disabled = true;
  161. model.toggle("case_patlist");
  162. //window.close();
  163. }
  164. else
  165. {
  166. if (formdeptcd != "")
  167. {
  168. model.setValue("/root/send/formdeptcd", formdeptcd);
  169. }
  170. else
  171. {
  172. model.setValue("/root/send/formdeptcd", orddeptcd);
  173. }
  174. model.setValue("/root/init/patinfo", pid + " " + patnm + "(" + sex + "/" + age + ")");
  175. //서식로더에서 환자 기록관련 원무정보를 Top에서 조회해올지 여부(N일경우 Top에서 참조하지 않음)
  176. setParameter("SSMMR01100_getTopYn", "N");
  177. ivw_loader.window.javascript.fSetPamInfo(pid, orddd, cretno, ioflag , orddeptcd, orddrid);
  178. }
  179. }
  180. /**
  181. * @desc : 환자 리스트에서 환자 원무 정보 셋팅
  182. * @id :
  183. * @event : xforms-ready
  184. * @return : void
  185. * @authur : 박종훈
  186. */
  187. function fIvwSetPamInfo(pid, orddd, cretno, ioflag , orddeptcd, orddrid, patnm, sa)
  188. {
  189. model.setValue("/root/init/patinfo", pid + " " + patnm + "(" + sa + ")");
  190. model.makeValue("/root/main/paminfo/list/pid", pid);
  191. model.makeValue("/root/main/paminfo/list/orddeptcd", orddeptcd);
  192. model.setValue("/root/send/formdeptcd", model.getValue("/root/main/paminfo/list/orddeptcd"));
  193. ivw_loader.window.javascript.fSetPamInfo(pid, orddd.substring(0, 8), cretno, ioflag , orddeptcd, orddrid);
  194. setParameter("SSMMR01100_getTopYn", "N");
  195. model.refresh();
  196. if (gFormcd != "")
  197. {
  198. //서식로드시 TOP정보 조회 여부 셋팅(N일경우 Top참조 안함)
  199. ivw_loader.window.javascript.fLoadNewForm(gFormcd, false);
  200. if (getUserInfo("jobkindcd").substring(0, 2) != "03")
  201. {
  202. ivw_loader.grup_btn.disabled = false;
  203. //ivw_loader.btn_signsave.disabled = true;
  204. }
  205. }
  206. fGetFormList();
  207. //model.toggle("case_form");
  208. var selindx = switch2.selectedIndex;
  209. if (selindx != "0")
  210. {
  211. model.toggle("case_loader");
  212. }
  213. //btn_form.selected = true;
  214. }
  215. /**
  216. * @desc : 서식 리스트 조회
  217. * @id :
  218. * @event : xforms-ready
  219. * @return : void
  220. * @authur : 박종훈
  221. */
  222. function fGetFormList()
  223. {
  224. model.removeNodeSet ("/root/main/form/formlist");
  225. if(submit("TRMMR05401"))
  226. {
  227. //var grdObj = document.controls("grd_formlist");
  228. //grdObj.resizeCells();
  229. //setTree(grdObj, grdObj.colRef("depth"), grdObj.colRef("formnm"), true);
  230. }
  231. }
  232. /**
  233. * @desc : 서식 오픈
  234. * @id :
  235. * @event : ondblclick
  236. * @return : void
  237. * @authur : 박종훈
  238. */
  239. function fSelectForm(formcd)
  240. {
  241. //var formcd = model.getValue("/root/main/form/formlist['" + grd_formlist.row + "']/linkcd");
  242. if(formcd == null || formcd == "")
  243. formcd = model.getValue("/root/main/form/formlist['" + grd_formlist.row + "']/linkcd");
  244. if (formcd != "")
  245. {
  246. gFormcd = formcd;
  247. copyNodeset("/root/main/forminfo/formmast", "/root/main/forminfo/formmast", "replace", ivw_loader.window.model, model);
  248. copyNodeset("/root/temp/forminfo/formmast", "/root/main/forminfo/formmast", "replace", ivw_loader.window.model, model);
  249. //ivw_loader.window.javascript.fLoadNewForm(formcd, false);
  250. ivw_loader.window.javascript.fPreviewForm(formcd, false, "");
  251. if (model.getValue("/root/main/paminfo/list/pid") == "")
  252. {
  253. ivw_loader.grup_btn.disabled = true;
  254. }
  255. else
  256. {
  257. ivw_loader.grup_btn.disabled = false;
  258. if (getUserInfo("jobkindcd").substring(0, 2) != "03")
  259. {
  260. //ivw_loader.btn_signsave.disabled = true;
  261. }
  262. }
  263. }
  264. }
  265. /**
  266. * @desc : 기록목록을 가져온다
  267. * @id :
  268. * @event : DOMActivate
  269. * @return : void
  270. * @authur : 박종훈
  271. */
  272. function fGetRecList()
  273. {
  274. if (model.getValue("/root/main/paminfo/list/pid") == "")
  275. {
  276. messageBox("기록에 필요한 환자 원무정보가", "I004");
  277. return;
  278. }
  279. model.setValue("/root/send/reqmedireclist/formrecdeptcd", "ALL");
  280. model.setValue("/root/send/reqmedireclist/chosflag", "A");
  281. model.setValue("/root/send/reqmedireclist/pid", model.getValue("/root/main/paminfo/list/pid"));
  282. if (model.getValue("/root/main/paminfo/list/ioflag") == "O")
  283. {
  284. model.setValue("/root/send/reqmedireclist/orddd", model.getValue("/root/main/paminfo/list/orddd"));
  285. }
  286. else
  287. {
  288. model.setValue("/root/send/reqmedireclist/orddd", model.getValue("/root/main/paminfo/list/indd"));
  289. }
  290. model.setValue("/root/send/reqmedireclist/cretno", model.getValue("/root/main/paminfo/list/cretno"));
  291. model.setValue("/root/send/reqmedireclist/orddeptcd", model.getValue("/root/main/paminfo/list/orddeptcd"));
  292. model.setValue("/root/send/reqmedireclist/recfromdt", model.getValue("/root/init/reqmedireclist/recfromdt"));
  293. model.setValue("/root/send/reqmedireclist/rectodt", model.getValue("/root/init/reqmedireclist/rectodt"));
  294. var tmpformcd = model.getValue("/root/init/formcd");
  295. if (tmpformcd == "")
  296. {
  297. tmpformcd = "-";
  298. }
  299. model.makeValue("/root/send/reqmedireclist/formcd", tmpformcd);
  300. model.makeValue("/root/send/reqmedireclist/deptrecyn", "Y");
  301. if(submit("TRMMR00101"))
  302. {
  303. //예진기록만 복사하여 보여준다
  304. copyNodeset("/root/main/foctsnwlist/medireclist", "/root/main/mainlist/medireclist[foctsnwyn = 'Y']", "replace", model, model);
  305. model.refresh();
  306. }
  307. }
  308. /**
  309. * @desc : 기록내용을 가져온다
  310. * @id :
  311. * @event : DOMActivate
  312. * @return : void
  313. * @authur : 박종훈
  314. */
  315. function fShowMediRecCnt(formrecseq)
  316. {
  317. if (model.getValue("/root/main/paminfo/list/pid") == "")
  318. {
  319. return;
  320. }
  321. var cond = new COMN_CONT_RECCNTS();
  322. var instance = document.models(0).instances(0);
  323. var nodeReclist = instance.selectNodes("/root/main/foctsnwlist/medireclist");
  324. var nodeReclistlength = nodeReclist.length;
  325. cond.pid = model.getValue("/root/main/paminfo/list/pid");
  326. cond.formrecdeptcd = model.getValue("/root/send/reqmedireclist/formrecdeptcd");
  327. cond.chosflag = model.getValue("/root/send/reqmedireclist/chosflag");
  328. cond.reclistlength = nodeReclistlength;
  329. if (formrecseq == "")
  330. {
  331. cond.recfromdt = model.getValue("/root/init/reqmedireclist/recfromdt");
  332. cond.rectodt = model.getValue("/root/init/reqmedireclist/rectodt");
  333. }
  334. else
  335. {
  336. cond.recfromdt = "";
  337. cond.rectodt = "";
  338. }
  339. cond.formrecseq = formrecseq;
  340. ivw_reccnts.window.javascript.fRefMediRecCnts(cond);
  341. //2009-07-04 오후 11:40:30 강지훈 수정 : 1. 하드코드 9905에 등록된 서식만 출력버튼이 활성화 된다. 2. 기록저장부서와 같은부서일경우만 출력버튼 활성화
  342. model.removenode("/root/hidden/formhardcd");
  343. model.makeNode("/root/hidden/formhardcd");
  344. mmbfGetHardCodeInfo("/root/send/formhrdcd", "/root/hidden/formhardcd", 9905);
  345. var formcd = model.getValue("/root/main/foctsnwlist/medireclist['" + grd_reclist.row + "']/formcd");
  346. var formrecdeptcd = model.getValue("/root/main/foctsnwlist/medireclist['" + grd_reclist.row + "']/formrecdeptcd")
  347. var orddeptcd = model.getValue("/root/main/paminfo/list/orddeptcd");
  348. //var orddeptcd = getUserInfo("dutplcecd");
  349. var iexNodeCnt = getNodesetCnt(model, "/root/hidden/formhardcd/hardcd[hardcd = '" + formcd + "']");
  350. if(iexNodeCnt > 0) {
  351. if(orddeptcd == formrecdeptcd){
  352. btn_print.visible = true;
  353. }
  354. else{
  355. btn_print.visible = false;
  356. }
  357. }else{
  358. btn_print.visible = false;
  359. }
  360. }
  361. /**
  362. * @desc : 검색 날짜기간
  363. * @id :
  364. * @event : DOMActivate
  365. * @return : void
  366. * @authur : 박종훈
  367. */
  368. function fAddDateReq(diffFlag)
  369. {
  370. var frdd = model.getValue("/root/init/reqmedireclist/recfromdt");
  371. var todd = model.getValue("/root/init/reqmedireclist/rectodt");
  372. var srcdd = new Date();
  373. var destdd = new Date();
  374. var diffdt;
  375. if (diffFlag == "next")
  376. {
  377. srcdd = todd.toDate();
  378. srcdd = srcdd.getAddDate(1, "D");
  379. frdd = srcdd.getDateFormat();
  380. diffdt = parseInt(model.getValue("/root/init/reqmedireclist/diffdt")) * 1;
  381. destdd = srcdd.getAddDate(diffdt, "M");
  382. todd = destdd.getDateFormat();
  383. }
  384. else if (diffFlag == "back")
  385. {
  386. srcdd = frdd.toDate();
  387. srcdd = srcdd.getAddDate(-1, "D");
  388. todd = srcdd.getDateFormat();
  389. diffdt = parseInt(model.getValue("/root/init/reqmedireclist/diffdt")) * -1;
  390. destdd = srcdd.getAddDate(diffdt, "M");
  391. frdd = destdd.getDateFormat();
  392. }
  393. else if (diffFlag == "today")
  394. {
  395. todd = getCurrentDate();
  396. var today = new Date();
  397. var frday = new Date();
  398. var diffdt = parseInt(model.getValue("/root/init/reqmedireclist/diffdt")) * -1;
  399. frday = today.getAddDate(diffdt , "M");
  400. frdd = frday.getDateFormat();
  401. }
  402. else
  403. {
  404. var today = todd.toDate();
  405. var frday = new Date();
  406. var diffdt = parseInt(model.getValue("/root/init/reqmedireclist/diffdt")) * -1;
  407. frday = today.getAddDate(diffdt , "M");
  408. frdd = frday.getDateFormat();
  409. }
  410. model.setValue("/root/init/reqmedireclist/recfromdt", frdd);
  411. model.setValue("/root/init/reqmedireclist/rectodt", todd);
  412. ipt_formrecdtfr.refresh();
  413. ipt_formrecdtto.refresh();
  414. }
  415. /**
  416. * @desc : 기록수정
  417. * @id :
  418. * @event :
  419. * @return : void
  420. * @authur : 박종훈
  421. */
  422. function fRecModify()
  423. {
  424. var recseq = grd_reclist.valueMatrix(grd_reclist.row, grd_reclist.colref("formrecseq"));
  425. ivw_loader.window.javascript.fLoadRecForm(recseq, false);
  426. ivw_loader.grup_btn.disabled = false;
  427. model.toggle("case_loader");
  428. }
  429. /**
  430. * @desc : 기록로드 후 이벤트(인증저장 disable)
  431. * @id :
  432. * @event :
  433. * @return : void
  434. * @authur : 박종훈
  435. */
  436. function fOnLoadComplete()
  437. {
  438. if (getUserInfo("jobkindcd").substring(0, 2) != "03")
  439. {
  440. //ivw_loader.btn_signsave.disabled = true;
  441. }
  442. }
  443. /**
  444. * @desc : 기록목록탭 클릭시 이벤트
  445. * @id :
  446. * @event :
  447. * @return : void
  448. * @authur : 박종훈
  449. */
  450. function fReclistClick()
  451. {
  452. model.toggle("case_rec");
  453. model.toggle("case_prew");
  454. ivw_reccnts.window.javascript.fClear();
  455. caption7.text = "기록내용";
  456. button1.selected = true;
  457. fGetRecList();
  458. //btn_formrecupdt.attribute("visibility") = "visible";
  459. }
  460. /**
  461. * @group :
  462. * @ver : 2009-06-25 오전 10:54:51
  463. * @by : 강지훈
  464. * @---------------------------------------------------
  465. * @type : function
  466. * @desc : 출력 버튼 이벤트
  467. * @param :
  468. * @return :
  469. * @---------------------------------------------------
  470. */
  471. function fClickPrtBtn()
  472. {
  473. var formcd = "";
  474. var signno = "";
  475. var prtparam = "";
  476. var formcd = model.getValue("/root/main/foctsnwlist/medireclist['" + grd_reclist.row + "']/formcd");
  477. var signno = model.getValue("/root/main/foctsnwlist/medireclist['" + grd_reclist.row + "']/espiseq");
  478. if(formcd == "" || formcd == null){
  479. messageBox("선택된 서식이 ", "I004");
  480. return;
  481. }
  482. if(signno == "" || signno == null){
  483. messageBox("인증저장된 기록만 출력이 ", "I006");
  484. return;
  485. }
  486. prtparam += "E▦" + signno + "▦" + formcd + "▩";
  487. setParameter("SPMRI02400_prtrecinfo", prtparam);
  488. modal("SPMRI02400");
  489. }