SSMRC03400.js 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939
  1. var extnflag = "false";
  2. /**
  3. * @desc : 폼초기화
  4. * @
  5. * @param :
  6. * @return :
  7. * @authur : 이은영 2008.03.18
  8. * @---------------------------------------------------
  9. */
  10. function fFormInit()
  11. {
  12. /* 마스터 정보 가져오기..
  13. //공통코드 가져오기...
  14. //M0392:챠트미대출사유코드
  15. //M0412:과보관사유코드
  16. //M0424:차트상태(분실)코드
  17. zbcfGetCodeList(new Array("M0392","M0412","M0424"), new Array("/root/init/M0392","/root/init/M0412","/root/init/M0424"));
  18. // 대출용도, 대출과, 차트과, 차트담당자, 보관장소
  19. model.makeValue("/root/send/reqdata/ioflag" , "O");
  20. model.makeValue("/root/send/reqdata/useyn" , "");
  21. model.makeValue("/root/send/reqdata/allwardyn", "");
  22. model.refresh();
  23. submit("TRMRC00100");
  24. //*/
  25. var today = getCurrentDate();
  26. model.setValue("/root/send/reqdata/rendcd" , "ALL");
  27. model.setValue("/root/send/reqdata/appdeptcd", "ALL");
  28. model.setValue("/root/send/reqdata/fromappdd", today);
  29. model.setValue("/root/send/reqdata/toappdd" , today);
  30. model.setValue("/root/send/reqdata/fromrtndd", "");
  31. model.setValue("/root/send/reqdata/tortndd" , "");
  32. model.setValue("/root/send/reqdata/resettm" , getCurrentTime());
  33. model.setValue("/root/send/reqdata/acptid" , getUserId());
  34. model.refresh();
  35. ipt_fromrtndd.disabled = true;
  36. ipt_tortndd.disabled = true;
  37. fOpenTop(extnflag);
  38. }
  39. /**
  40. * @desc : 챠트 반납 우클릭시 - > 챠트 반납
  41. * @
  42. * @param :
  43. * @return :
  44. * @authur : 이은영 2008.03.18
  45. * @---------------------------------------------------
  46. */
  47. function fsetrtnchart()
  48. {
  49. var ref = "/root/main/chrtrtn/rtntrgtlist";
  50. var grdObj = grd_rendlist2;
  51. var savedata = "m▦chrtseqno▦medirecno▦pid▦appdeptcd▦appmanid▩";
  52. var dataString = "";
  53. var dataCount = 0;
  54. for ( var i = 0; i < grdObj.selectedRows; i++)
  55. {
  56. var chrtseqno = model.getValue(ref + "[" + grdObj.selectedrow(i) + "]/chrtseqno");
  57. var medirecno = model.getValue(ref + "[" + grdObj.selectedrow(i) + "]/medirecno");
  58. var pid = model.getValue(ref + "[" + grdObj.selectedrow(i) + "]/pid");
  59. var appdeptcd = model.getValue(ref + "[" + grdObj.selectedrow(i) + "]/appdeptcd");
  60. var appmanid = model.getValue(ref + "[" + grdObj.selectedrow(i) + "]/appmanid");
  61. if (chrtseqno != "") {
  62. dataString = dataString + "u▦" + chrtseqno + "▦" + medirecno + "▦" + pid + "▦" + appdeptcd + "▦" + appmanid + "▩";
  63. dataCount = dataCount + 1;
  64. }
  65. }
  66. if (dataString.length > 0)
  67. {
  68. model.makeValue("/root/send/savedata", savedata + dataString);
  69. model.refresh();
  70. submit("TXMRC00130");
  71. alert("총 " + dataCount + " 건 챠트반납 되었습니다.");
  72. // 다시 조회하기..
  73. fGetRtnList();
  74. }
  75. }
  76. /**
  77. * @desc : 챠트 반납 우클릭시 - > 대출연장
  78. * @
  79. * @param :
  80. * @return :
  81. * @authur : 이은영 2008.03.18
  82. * @---------------------------------------------------
  83. */
  84. function fsetrtnschedd()
  85. {
  86. if(grd_rendlist2.row < 1){
  87. return;
  88. }
  89. // 2008.01.13. 대출연장 입력하기...
  90. fShowWndIptBox("3");
  91. }
  92. /**
  93. * @desc : 챠트 반납 우클릭시 - > 대출연장 (반납예정일)
  94. * @
  95. * @param :
  96. * @return :
  97. * @authur : 이은영 2008.03.18
  98. * @---------------------------------------------------
  99. */
  100. function fUpdateRtnScheDD()
  101. {
  102. // 2008.01.22. 대출연장 (반납예정일) 입력하기...
  103. var term = model.getValue("/root/hidden/lendlist/term");
  104. var termunit = model.getValue("/root/hidden/lendlist/termunit");
  105. if (term.isNumber == false) {
  106. alert("숫자를 입력하세요.");
  107. return;
  108. }
  109. var rtnschedd = new Date();
  110. rtnschedd = rtnschedd.getAddDate(eval(term), termunit);
  111. rtnschedd = rtnschedd.getDateFormat("YYYYMMDD");
  112. var savedata ="chrtseqno▦rtnschedd▩";
  113. var dataString = "";
  114. var dataCount = 0;
  115. for ( var i = 0; i < grd_rendlist2.selectedRows; i++)
  116. {
  117. var chrtseqno = model.getValue("/root/main/chrtrtn/rtntrgtlist[" + grd_rendlist2.selectedrow(i) + "]/chrtseqno");
  118. if (chrtseqno != "") {
  119. dataString = dataString + chrtseqno + "▦" + rtnschedd + "▩";
  120. dataCount = dataCount + 1;
  121. }
  122. }
  123. grup_addrtnschedd.visible = false;
  124. if (dataString.length > 0)
  125. {
  126. model.makeValue("/root/send/savedata", savedata + dataString);
  127. model.refresh();
  128. submit("TXMRC00106");
  129. alert("총 " + dataCount + " 건 대출연장 되었습니다.");
  130. // 다시 조회하기..
  131. fGetRtnList();
  132. }
  133. }
  134. /**
  135. * @desc : 챠트 반납 우클릭시 - > 과보관 사유 입력
  136. * @
  137. * @param :
  138. * @return :
  139. * @authur : 이은영 2008.03.18
  140. * @---------------------------------------------------
  141. */
  142. function fsetdeptkeep()
  143. {
  144. if(grd_rendlist2.row < 1){
  145. return;
  146. }
  147. // 2008.01.13. 과보관사유 입력하기...
  148. fShowWndIptBox("1");
  149. }
  150. /**
  151. * @desc : 챠트 반납 우클릭시 - > 과보관 사유 입력 (update)
  152. * @
  153. * @param :
  154. * @return :
  155. * @authur : 이은영 2008.03.18
  156. * @---------------------------------------------------
  157. */
  158. function fUpdateDeptKeepresn()
  159. {
  160. // 2008.01.13. 과보관사유 입력하기...
  161. var deptkeepcd = model.getValue("/root/hidden/lendlist/deptkeepcd");
  162. var deptkeepresn = model.getValue("/root/hidden/lendlist/deptkeepresn");
  163. var savedata ="chrtseqno▦deptkeepcd▦deptkeepresn▩";
  164. var dataString = "";
  165. var dataCount = 0;
  166. for ( var i = 0; i < grd_rendlist2.selectedRows; i++)
  167. {
  168. var chrtseqno = model.getValue("/root/main/chrtrtn/rtntrgtlist[" + grd_rendlist2.selectedrow(i) + "]/chrtseqno");
  169. if (chrtseqno != "") {
  170. dataString = dataString + chrtseqno + "▦" + deptkeepcd + "▦" + deptkeepresn + "▩";
  171. dataCount = dataCount + 1;
  172. }
  173. }
  174. grup_deptkeep.visible = false;
  175. if (dataString.length > 0)
  176. {
  177. model.makeValue("/root/send/savedata", savedata + dataString);
  178. model.refresh();
  179. submit("TXMRC00103");
  180. alert("총 " + dataCount + " 건 과보관(사유입력) 되었습니다.");
  181. // 다시 조회하기..
  182. fGetRtnList();
  183. }
  184. }
  185. /**
  186. * @desc : 챠트 반납 우클릭시 - > 차트 분실 처리
  187. * @
  188. * @param :
  189. * @return :
  190. * @authur : 이은영 2008.07.28
  191. * @---------------------------------------------------
  192. */
  193. function fsetlosschrt()
  194. {
  195. if(grd_rendlist2.row < 1){
  196. return;
  197. }
  198. // 2008.07.28. 차트 분실 처리하기...
  199. fShowWndIptBox("4");
  200. }
  201. /**
  202. * @desc : 챠트상태를 수정한다.
  203. * @
  204. * @param :
  205. * @return :
  206. * @authur : 이은영 2008.07.28
  207. * @---------------------------------------------------
  208. */
  209. function fUpdateChrtStat()
  210. {
  211. // 2008.07.28. 차트 분실 처리하기...
  212. var chrtstat = model.getValue("/root/hidden/lendlist/chrtstat");
  213. var chrtstatnm = model.getValue("/root/init/M0424/M0424[cdid='" + chrtstat + "']/cdnm");
  214. var savedata ="medirecno▦chrtseqno▦chrtstat▦unrtnresn▩";
  215. var dataString = "";
  216. var dataCount = 0;
  217. for ( var i = 0; i < grd_rendlist2.selectedRows; i++)
  218. {
  219. var medirecno = model.getValue("/root/main/chrtrtn/rtntrgtlist[" + grd_rendlist2.selectedrow(i) + "]/medirecno");
  220. var chrtseqno = model.getValue("/root/main/chrtrtn/rtntrgtlist[" + grd_rendlist2.selectedrow(i) + "]/chrtseqno");
  221. var unrtnresn = "[" + chrtstatnm + "]";
  222. if (chrtseqno != "") {
  223. dataString = dataString + medirecno + "▦" + chrtseqno + "▦" + chrtstat + "▦" + unrtnresn + "▩";
  224. dataCount = dataCount + 1;
  225. }
  226. }
  227. grup_losschrt.visible = false;
  228. if (dataString.length > 0)
  229. {
  230. model.makeValue("/root/send/savedata", savedata + dataString);
  231. model.refresh();
  232. submit("TXMRC00107");
  233. alert("총 " + dataCount + " 건 차트 분실 처리 되었습니다.");
  234. // 다시 조회하기..
  235. fGetRtnList();
  236. }
  237. }
  238. /**
  239. * @desc : 챠트 반납 조회
  240. * @
  241. * @param :
  242. * @return :
  243. * @authur : 이은영 2008.03.18
  244. * @---------------------------------------------------
  245. */
  246. function fGetRtnList()
  247. {
  248. submit("TRMRC00130");
  249. // 2008.01.02. 반납현황 조회 총건수..
  250. //model.setValue ("/root/init/count", grd_rtnlist.rows - 1);
  251. //cap_rtnlist.refresh();
  252. }
  253. /**
  254. * @desc : 챠트 반납 조회 - 바크도 입력후 반납현황만 다시조회한다. (로그인 사용자별)
  255. * @
  256. * @param :
  257. * @return :
  258. * @authur : 이은영 2008.03.18
  259. * @---------------------------------------------------
  260. */
  261. function fGetUserRtnList()
  262. {
  263. submit("TRMRC00131");
  264. // 2008.01.02. 반납현황 조회 총건수..
  265. //model.setValue ("/root/init/count", grd_rtnlist.rows - 1);
  266. //cap_rtnlist.refresh();
  267. }
  268. /**
  269. * @desc : 바코드입력 후 엔터시 -> 챠트반납
  270. * @
  271. * @param :
  272. * @return :
  273. * @authur : 이은영 2008.03.18
  274. * @---------------------------------------------------
  275. */
  276. function fSetReturnChartBcno()
  277. {
  278. var bcno = model.getValue("/root/send/reqdata/bcno");
  279. if (bcno == "" || bcno == "0"){
  280. window.alert("바코드를 입력해 주세요", "차트대출 및 반납", 0 | 64);
  281. model.setFocus("ipt_lendbcno");
  282. return;
  283. }
  284. // 2009.04.13. 의정부 성모인 경우..
  285. // 바코드 리딩시 lpad 로 해서 '0' 을 체움..
  286. // 리팅값과 DB값이 다를수 있음..
  287. // 바코드번호를 외래간호에서 생성하면 '0' 이 없고,
  288. // 의료정보팀에서 생성하면 '0' 이 있음..
  289. if (getUserInfo("dutplceinstcd") == "013") {
  290. if (bcno.length < 12) { bcno = bcno.getLeftPad(12, "0"); }
  291. }
  292. // 데이타 셋하기.. 외래/입원구분, 처리자ID, 대출일, 조회시간, 바코드
  293. var resettm = model.getValue("/root/send/reqdata/resettm");
  294. model.makeValue("/root/send/req/ioflag" , "O");
  295. model.makeValue("/root/send/req/acptid" , getUserId());
  296. model.makeValue("/root/send/req/renddd" , getCurrentDate());
  297. model.makeValue("/root/send/req/resettm" , resettm);
  298. model.makeValue("/root/send/req/bcno" , bcno.toUpperCase());
  299. submit("TXMRC03002", "", "/root/send/req", "/root/main/chrtrtn/rtnlist");
  300. // 반납현황을 키우기...
  301. fOpenTop("true");
  302. // 2008.01.25. 바코드 번호 클리어...
  303. model.makeValue("/root/send/reqdata/bcno", "");
  304. ipt_rtnbcno.refresh();
  305. model.setFocus("ipt_rtnbcno");
  306. // 2008.01.02. 반납현황 조회 총건수..
  307. //model.setValue ("/root/init/count", grd_rtnlist.rows - 1);
  308. //cap_rtnlist.refresh();
  309. }
  310. /**
  311. * @desc : 메인 그리드 화면을 보여주기 / 차트 줄이기
  312. * @
  313. * @param :
  314. * @return :
  315. * @---------------------------------------------------
  316. *
  317. */
  318. function fOpenTop(flag)
  319. {
  320. extnflag = flag;
  321. if (flag == "true") {
  322. grup_rtnlist.attribute("style") = "left:255px; top:25px; width:915px; height:709px; ";
  323. grd_rtnlist.attribute("style") = "left:0px; top:26px; width:914px; height:682px; ";
  324. } else {
  325. grup_rtnlist.attribute("style") = "left:255px; top:306px; width:915px; height:418px; ";
  326. grd_rtnlist.attribute("style") = "left:0px; top:26px; width:914px; height:390px; ";
  327. }
  328. }
  329. /**
  330. * @desc : 등록된 환자번호인지 체킹한다..
  331. * @
  332. * @param : iptObj - 환자번호 입력 컨트롤 (pid)
  333. * @return :
  334. * @authur : 이은영 2008.09.17
  335. * @---------------------------------------------------
  336. */
  337. function fGetPidNo(iptObj, ref)
  338. {
  339. var chkyn = model.getValue(ref);
  340. if (chkyn == "Y") {
  341. if (iptObj.currentText.length > 0) {
  342. var pid = iptObj.currentText;
  343. pid = getCretCheckNo(pid, getUserInfo("dutplceinstcd"));
  344. model.makeValue(iptObj.attribute("ref"), pid);
  345. iptObj.refresh();
  346. }
  347. }
  348. }
  349. /**
  350. * @desc : 등록된 환자번호인지 체킹한다..
  351. * @
  352. * @param : iptObj - 환자번호 입력 컨트롤 (pid)
  353. * @return : pnm - 환자명
  354. * @authur : 이은영 2008.03.18
  355. * @---------------------------------------------------
  356. */
  357. function fCheckPid(iptObj, refPnm)
  358. {
  359. model.makeValue("/root/send/req/srchcond", "1");
  360. model.makeValue("/root/send/req/pid", iptObj.currentText);
  361. //환자등록번호 체크
  362. if(iptObj.currentText.length > 0 ){
  363. model.resetInstanceNode("/root/main/result/patinfo");
  364. model.makeNode("/root/main/result/patinfo");
  365. if(submit("TRPMC02500", "", "/root/send/req", "/root/main/result/patinfo")){
  366. //fSearch는 인적사항 화면을 임포트 해간 화면에서 구현해 주어야 하는 함수이다.
  367. if( getNodesetCount("/root/main/result/patinfo/patinfolist") > 0 ){
  368. model.copyNode("/root/main/patinfo", "/root/main/result/patinfo");
  369. //* 2009.04.07. 이중번호 메세지 ( 14257937 박용석 -> 13275912 신옥순 )
  370. var sBindPid = model.getValue("/root/main/result/patinfo/patinfolist/bindpid");
  371. if( sBindPid != '-' && sBindPid != '' && sBindPid != ' ' ){
  372. //합번된 등록번호 메세지 처리
  373. var sPid = model.getValue("/root/main/result/patinfo/patinfolist/pid");
  374. var sHngnm = model.getValue("/root/main/result/patinfo/patinfolist/hngnm");
  375. var retValue = messageBox(sPid + " (" + sHngnm + ") 환자의 등록번호가 [ " + sBindPid + " ] 로 합번 되었습니다. 합번된 등록번호로 재조회 하시겠습니까?", "Q999", "");
  376. if( retValue == '6' ){
  377. model.makeValue(iptObj.attribute("ref"), sBindPid);
  378. iptObj.refresh();
  379. fCheckPid(iptObj, refPnm);
  380. return "";
  381. }
  382. }
  383. //*/
  384. var pid = model.getValue("/root/main/result/patinfo/patinfolist/pid");
  385. var pnm = model.getValue("/root/main/result/patinfo/patinfolist/hngnm");
  386. if (refPnm != null)
  387. {
  388. model.makeValue(refPnm, pnm);
  389. }
  390. return pnm;
  391. }else{
  392. model.resetInstanceNode("/root/main/patinfo/patinfolist");
  393. messageBox("없는 환자 번호 입니다.", "E999", "");
  394. model.refresh();
  395. return "";
  396. }
  397. }
  398. }else{
  399. messageBox("환자등록번호를 정확히", "C001");
  400. return "";
  401. }
  402. }
  403. /**
  404. * @desc : 환자등록번호 조회 팝업
  405. * @
  406. * @param : refPid - 환자번호 참고 node path
  407. * refPnm - 환자명 참고 node path
  408. * @return :
  409. * @authur : 이은영 2008.03.18
  410. * @---------------------------------------------------
  411. */
  412. function fGetPid(refPid, refPnm)
  413. {
  414. //조회건수가 1건일 경우 팝업창을 바로 닫는다.
  415. model.makeValue("/root/hidden/tmp/pidpopupinfo/checkfnexam", "1");
  416. model.makeValue("/root/hidden/tmp/pidpopupinfo/autoflag", "N");
  417. if( model.getValue("/root/hidden/tmp/pidpopupinfo/srchcond") == '' ){
  418. model.makeValue("/root/hidden/tmp/pidpopupinfo/srchcond", '2');
  419. }
  420. modal("SPPMC02500", "1","150", "150", "SPPMC02500", "/root/hidden/tmp/pidpopupinfo", "/root/send");
  421. model.resetInstanceNode("/root/source");
  422. //환자번호 copy
  423. var popupendflag = model.getValue("/root/main/popupendflag");
  424. if (popupendflag == "ok")
  425. {
  426. model.makeValue(refPid, model.getValue("/root/main/patinfo/patinfolist/pid"));
  427. if (refPnm == null) { refPnm = "" }
  428. if (refPnm != "") {
  429. model.makeValue(refPnm, model.getValue("/root/main/patinfo/patinfolist/hngnm"));
  430. }
  431. model.refresh();
  432. }
  433. }
  434. /**
  435. * @desc : 등록된 사용자 번호인지 체킹한다..
  436. * @
  437. * @param : iptObj - 사용자 ID 입력 컨트롤 (userid)
  438. * @return : posdeptcd - 사용자 부서코드
  439. * @authur : 이은영 2008.03.18
  440. * @---------------------------------------------------
  441. */
  442. function fCheckUserid(iptObj)
  443. {
  444. setInputNodeCurText();
  445. // 사용자 번호 체크
  446. if(iptObj.currentText.length > 0 ){
  447. // 사용자 조회
  448. model.removenode("/root/hidden/tmp/tempuserinfo/list");
  449. model.reset("/root/hidden/tmp/tempuserinfo");
  450. model.setValue("/root/hidden/tmp/userpopupinfo/param", "_OneS");
  451. model.setValue("/root/hidden/tmp/userpopupinfo/flag", "userid");
  452. model.setValue("/root/hidden/tmp/userpopupinfo/searchitem", iptObj.currentText);
  453. modal("SPZSU10103", "", "200", "200", "SPZSU10103","/root/hidden/tmp/userpopupinfo","/root/main/temp");
  454. var iParam = getParameter("SPZSU10103_");
  455. setCSVToNode("/root/hidden/tmp/tempuserinfo", iParam);
  456. clearParameter("SPZSU10103_");
  457. //fSearch는 인적사항 화면을 임포트 해간 화면에서 구현해 주어야 하는 함수이다.
  458. if( getNodesetCount("/root/hidden/tmp/tempuserinfo/list") > 0 ){
  459. var userid = model.getValue("/root/hidden/tmp/tempuserinfo/list/userid");
  460. var posdeptcd = model.getValue("/root/hidden/tmp/tempuserinfo/list/posdeptcd");
  461. iptObj.value = userid;
  462. model.refresh();
  463. return posdeptcd;
  464. //fSearch();
  465. }else{
  466. model.resetInstanceNode("/root/hidden/tmp/tempuserinfo/list");
  467. messageBox("없는 사용자 번호 입니다.", "E999", "");
  468. model.refresh();
  469. }
  470. }else{
  471. messageBox("사용자 번호를 정확히", "C001");
  472. iptObj.value = "";
  473. model.refresh();
  474. }
  475. return "";
  476. }
  477. /**
  478. * @desc : 마우스 오른쪽 버튼 팝업창
  479. * @
  480. * @param : job - 0:챠트대출, 1:챠트반납, 2:접수자명단
  481. * @return :
  482. * @authur : 이은영 2008.03.18
  483. * @---------------------------------------------------
  484. */
  485. function fMouseRghtBtnPopup(gridObj, job)
  486. {
  487. if (event.button == 3) {
  488. if (gridObj.isCell(event.target) && gridObj.mouseRow >= gridObj.fixedrows) {
  489. if (job == "1") {
  490. model.removeNodeset("/root/send/savedata");
  491. window.setPopupMenu(true, "/root/hidden/rtntrgtlist_menu/menu", "label", "func", false);
  492. } else {
  493. window.setPopupMenu(false);
  494. }
  495. } else {
  496. window.setPopupMenu(false);
  497. }
  498. } else {
  499. window.setPopupMenu(false);
  500. }
  501. }
  502. /**
  503. * @desc : 팝업폼 보여주기..
  504. * @
  505. * @param : job - 0:챠트대출(미대출사유) , 1:챠트반납(과보관사유),
  506. * @ 2:접수자명단(미대출사유), 3:챠트반납(대출연장) , 4:챠트반납(차트분실)
  507. * @return :
  508. * @authur : 이은영 2008.03.18
  509. * @---------------------------------------------------
  510. */
  511. function fShowWndIptBox(job)
  512. {
  513. grup_deptkeep.visible = "false";
  514. grup_addrtnschedd.visible = "false";
  515. grup_losschrt.visible = "false";
  516. if (job == "1") {
  517. model.setValue("/root/hidden/lendlist/deptkeepcd", "00");
  518. model.setValue("/root/hidden/lendlist/deptkeepresn", "");
  519. model.refresh();
  520. if (event.clientY < 100) {
  521. grup_deptkeep.attribute("top") = event.clientY-90;
  522. } else {
  523. grup_deptkeep.attribute("top") = 100;
  524. }
  525. grup_deptkeep.visible = "true";
  526. } else if (job == "3") {
  527. model.setValue("/root/hidden/lendlist/term", "");
  528. model.setValue("/root/hidden/lendlist/termunit", "D");
  529. model.refresh();
  530. if (event.clientY < 280) {
  531. grup_addrtnschedd.attribute("top") = event.clientY-90;
  532. } else {
  533. grup_addrtnschedd.attribute("top") = 200;
  534. }
  535. grup_addrtnschedd.visible = "true";
  536. } else if (job == "4") {
  537. model.setValue("/root/hidden/lendlist/chrtstat", "01");
  538. model.refresh();
  539. if (event.clientY < 300) {
  540. grup_losschrt.attribute("top") = event.clientY-110;
  541. } else {
  542. grup_losschrt.attribute("top") = 200;
  543. }
  544. grup_losschrt.visible = "true";
  545. }
  546. }
  547. /**
  548. * @desc : 차트 반납에서 대출일자 기간 콤보 보여줄까? 말까?
  549. * @
  550. * @param :
  551. * @return :
  552. * @authur : 이은영 2008.05.30
  553. * @---------------------------------------------------
  554. */
  555. function fLendTermDisabled()
  556. {
  557. var lendtermdisabled = lendterm_disabled.value;
  558. if (lendtermdisabled == "Y") {
  559. var today = getCurrentDate();
  560. model.setValue("/root/send/reqdata/fromappdd", today);
  561. model.setValue("/root/send/reqdata/toappdd" , today);
  562. ipt_rtnfromappdd.refresh();
  563. ipt_rtntoappdd.refresh();
  564. ipt_rtnfromappdd.disabled = false;
  565. ipt_rtntoappdd.disabled = false;
  566. } else {
  567. model.setValue("/root/send/reqdata/fromappdd", "");
  568. model.setValue("/root/send/reqdata/toappdd" , "");
  569. ipt_rtnfromappdd.refresh();
  570. ipt_rtntoappdd.refresh();
  571. ipt_rtnfromappdd.disabled = true;
  572. ipt_rtntoappdd.disabled = true;
  573. }
  574. }
  575. /**
  576. * @desc : 차트 반납에서 반납예정일 기간 콤보 보여줄까? 말까?
  577. * @
  578. * @param :
  579. * @return :
  580. * @authur : 이은영 2008.05.30
  581. * @---------------------------------------------------
  582. */
  583. function fRrtTermDisabled()
  584. {
  585. var rtntermdisabled = rtnterm_disabled.value;
  586. if (rtntermdisabled == "Y") {
  587. var today = getCurrentDate();
  588. model.setValue("/root/send/reqdata/fromrtndd", today);
  589. model.setValue("/root/send/reqdata/tortndd" , today);
  590. ipt_fromrtndd.refresh();
  591. ipt_tortndd.refresh();
  592. ipt_fromrtndd.disabled = false;
  593. ipt_tortndd.disabled = false;
  594. } else {
  595. model.setValue("/root/send/reqdata/fromrtndd", "");
  596. model.setValue("/root/send/reqdata/tortndd" , "");
  597. ipt_fromrtndd.refresh();
  598. ipt_tortndd.refresh();
  599. ipt_fromrtndd.disabled = true;
  600. ipt_tortndd.disabled = true;
  601. }
  602. }
  603. /**
  604. * @desc : 환자등록번호 찾기...
  605. * @
  606. * @param :
  607. * @return :
  608. * @authur : 이은영 2008.07.21
  609. * @---------------------------------------------------
  610. */
  611. function fFindPid(grdObj, pidRef)
  612. {
  613. var pid = model.getValue(pidRef);
  614. var col = grdObj.colRef("pid");
  615. var startRow = grdObj.row + 1;
  616. if(startRow <= 0) { startRow = 1; }
  617. var row = grdObj.findRow(pid, parseInt(startRow), parseInt(grdObj.colRef("pid")), false, false);
  618. if(row < 0){
  619. alert("no more");
  620. } else {
  621. grdObj.row = row;
  622. grdObj.topRow = row;
  623. }
  624. }
  625. /**
  626. * @desc : 사용자콤보 조회
  627. * @
  628. * @param : ref - reference path
  629. * rsltref - result reference path
  630. * deptcd - 부서코드
  631. * jobkindcd - 직종코드
  632. * jobposcd - 직책코드
  633. * specordyn - 선택진료여부
  634. * @return :
  635. * @author :
  636. * @---------------------------------------------------
  637. */
  638. function fGetUserComboList(ref, rsltref, deptcd, jobkindcd, specordyn)
  639. {
  640. model.removeNode(ref);
  641. model.makeValue(ref + "/deptcd" , deptcd); //부서코드
  642. model.makeValue(ref + "/jobkindcd", jobkindcd); //직종코드(의사:0330)
  643. model.makeValue(ref + "/specordyn", specordyn); //선택진료여부
  644. model.removeNode(rsltref);
  645. model.makeValue(rsltref + "/userlist/usercombo[1]/usernm", '-');
  646. model.makeValue(rsltref + "/userlist/usercombo[1]/userid", '');
  647. model.refresh();
  648. submit("TRMMB04102", "false", ref, rsltref + "/userlist");
  649. }
  650. /**
  651. * @desc : 사용자 조회
  652. * @
  653. * @param : refUserid - 사용자 ID, refUserDeptcd - 소속부서코드 ( posdeptcd )
  654. * @return :
  655. * @authur : 이은영 2008.03.18
  656. * @---------------------------------------------------
  657. */
  658. function fGetUserid(refUserid, refUsernm, refUserDeptcd, cmbObj)
  659. {
  660. model.removenode("/root/hidden/tmp/tempuserinfo/list");
  661. model.reset("/root/hidden/tmp/tempuserinfo");
  662. var user = model.getValue(refUserid);
  663. var flag = "userid";
  664. if(isNaN(user)){
  665. flag = "usernm";
  666. }
  667. model.setValue("/root/hidden/tmp/userpopupinfo/param", "_OneS");
  668. model.setValue("/root/hidden/tmp/userpopupinfo/flag", flag);
  669. model.setValue("/root/hidden/tmp/userpopupinfo/searchitem", user);
  670. modal("SPZSU10103", "", "200", "200", "SPZSU10103","/root/hidden/tmp/userpopupinfo","/root/main/temp");
  671. var iParam = getParameter("SPZSU10103_");
  672. setCSVToNode("/root/hidden/tmp/tempuserinfo", iParam);
  673. clearParameter("SPZSU10103_");
  674. model.refresh();
  675. //fSearch는 인적사항 화면을 임포트 해간 화면에서 구현해 주어야 하는 함수이다.
  676. if( getNodesetCount("/root/hidden/tmp/tempuserinfo/list") > 0 ){
  677. var userid = model.getValue("/root/hidden/tmp/tempuserinfo/list/userid");
  678. var usernm = model.getValue("/root/hidden/tmp/tempuserinfo/list/usernm");
  679. var posdeptcd = model.getValue("/root/hidden/tmp/tempuserinfo/list/posdeptcd");
  680. if (!isNull(refUsernm)){
  681. if (isNaN(refUsernm)){
  682. model.makeValue(refUsernm, usernm);
  683. }
  684. }
  685. if (!isNull(refUserDeptcd)){
  686. if (isNaN(refUserDeptcd)){
  687. model.makeValue(refUserDeptcd, posdeptcd);
  688. }
  689. }
  690. if (cmbObj != null){
  691. fAddUser(userid, usernm, cmbObj);
  692. }
  693. model.makeValue(refUserid, userid);
  694. model.refresh();
  695. }
  696. }
  697. /**
  698. * @desc : 사용자 조회
  699. * @
  700. * @param : Userid - 사용자ID, Usernm - 사용자명
  701. * @return :
  702. * @authur : 이은영 2008.09.01
  703. * @---------------------------------------------------
  704. */
  705. function fAddUser(Userid, Usernm, cmbObj)
  706. {
  707. var ref = cmbObj.choices.itemset.attribute("nodeset");
  708. var cnt = getNodesetCnt(model, ref) + 1 ;
  709. var userid = model.getValue(ref + "[userid ='" + Userid + "']/userid");
  710. if (userid == ""){
  711. model.makeValue(ref + "["+ cnt +"]/userid", Userid);
  712. model.makeValue(ref + "["+ cnt +"]/usernm", Usernm);
  713. var dataRef = cmbObj.attribute("ref");
  714. model.setValue(dataRef, Userid);
  715. cmbObj.refresh();
  716. }
  717. }
  718. /**
  719. * @desc : excel 저장 하기
  720. * @
  721. * @param :
  722. * @return :
  723. * @authur : 이은영 2008.07.14
  724. * @---------------------------------------------------
  725. */
  726. function fExcel(gridObj, title){
  727. if (title == null) { title = "" }
  728. var fileName = window.fileDialog("save", ",", false, title + "_" + getCurrentDate(), "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  729. if (fileName != "") {
  730. gridObj.saveExcel(fileName, "SheetName", true, true, "", "", true);
  731. }
  732. }
  733. /**
  734. * @desc : 선택된 환자등록번호로 현위치조회 텝이동..
  735. * @
  736. * @param : gridObj - 그리드 컨트롤, ref - node path
  737. * @return :
  738. * @authur : 이은영 2008.03.18
  739. * @---------------------------------------------------
  740. */
  741. function fMoveTabChartByPid(gridObj, ref){
  742. if (isDataCell() == false){
  743. return;
  744. }
  745. if (gridObj.row < 1){
  746. return;
  747. }
  748. var pid = model.getValue(ref + "[" + gridObj.row + "]/pid");
  749. var pnm = model.getValue(ref + "[" + gridObj.row + "]/pnm");
  750. window.parent.model.makeValue("/root/send/reqdata/pid" , pid);
  751. window.parent.model.makeValue("/root/send/reqdata/pnm" , pnm);
  752. window.parent.model.makeValue("/root/send/reqdata/rrgstno", "");
  753. window.parent.model.refresh();
  754. window.parent.btn_ChrtInfo.dispatch("onclick");
  755. window.parent.javascript.fChartHistory();
  756. }
  757. /**
  758. * @desc : 단축키 선택시 커서이동
  759. * @
  760. * @param :
  761. * @return :
  762. * @authur : 이은영 2009.01.28
  763. * @---------------------------------------------------
  764. */
  765. function fMoveCursor(){
  766. model.setFocus("ipt_rtnbcno");
  767. ipt_rtnbcno.refresh();
  768. }
  769. /**
  770. * @desc : 단축키 선택시 커서이동
  771. * @
  772. * @param :
  773. * @return :
  774. * @authur : 이은영 2009.01.28
  775. * @---------------------------------------------------
  776. */
  777. function fKeyDown(){
  778. // F7 : 118, F8 : 119 , F9 : 120, F10 : 121
  779. var keyCode = event.keyCode;
  780. if (keyCode == "118") {
  781. window.parent.javascript.fAccessKey1();
  782. } else if (keyCode == "119") {
  783. window.parent.javascript.fAccessKey2();
  784. } else if (keyCode == "120") {
  785. window.parent.javascript.fAccessKey3();
  786. } else if (keyCode == "121") {
  787. window.parent.javascript.fAccessKey4();
  788. }
  789. }