SSMRC03400.xjs 33 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  3. * System Name : DBS
  4. * Job Name :
  5. * File Name : SSMRC03400.xjs
  6. * Creator :
  7. * Make Date : 2014-11-21
  8. *
  9. * Description :
  10. *---------------------------------------------------------------------------------------
  11. * Modify Date Modifier Modify Description
  12. *---------------------------------------------------------------------------------------
  13. * 2014-11-21 DBS Converting Program(TF->XP)
  14. *
  15. *---------------------------------------------------------------------------------------
  16. ****************************************************************************************/
  17. //=======================================================================================
  18. // Transaction Callback
  19. //---------------------------------------------------------------------------------------
  20. /****************************************************************************************
  21. * Argument : 01.sSvcId : 서비스 ID
  22. * : 02.nErrorCode : 에러코드
  23. * : 03.sErrorMsg : 에러메시지
  24. * Description : tr_getCodeList의 콜백함수
  25. ****************************************************************************************/
  26. function cf_TXMRC00103(sSvcId, nErrorCode, sErrorMsg) {
  27. arErrorCode.push(sSvcId, nErrorCode);
  28. if(nErrorCode < 0) return;
  29. sysf_trace("***** cf_TXMRC00103 *****");
  30. }
  31. function cf_TXMRC00106(sSvcId, nErrorCode, sErrorMsg) {
  32. arErrorCode.push(sSvcId, nErrorCode);
  33. if(nErrorCode < 0) return;
  34. sysf_trace("***** cf_TXMRC00106 *****");
  35. }
  36. function cf_TXMRC03002(sSvcId, nErrorCode, sErrorMsg) {
  37. arErrorCode.push(sSvcId, nErrorCode);
  38. if(nErrorCode < 0) return;
  39. sysf_trace("***** cf_TXMRC03002 *****");
  40. ds_grd_rtnlist.rowposition = -1;
  41. }
  42. function cf_TRMRC00130(sSvcId, nErrorCode, sErrorMsg) {
  43. arErrorCode.push(sSvcId, nErrorCode);
  44. if(nErrorCode < 0) return;
  45. sysf_trace("***** cf_TRMRC00130 *****");
  46. ds_grd_rendlist2.rowposition = -1;
  47. ds_grd_rtnlist.rowposition = -1;
  48. }
  49. function cf_TXMRC00107(sSvcId, nErrorCode, sErrorMsg) {
  50. arErrorCode.push(sSvcId, nErrorCode);
  51. if(nErrorCode < 0) return;
  52. sysf_trace("***** cf_TXMRC00107 *****");
  53. }
  54. function cf_TRPMC02500(sSvcId, nErrorCode, sErrorMsg) {
  55. arErrorCode.push(sSvcId, nErrorCode);
  56. if(nErrorCode < 0) return;
  57. sysf_trace("***** cf_TRPMC02500 *****");
  58. }
  59. function cf_TXMRC00130(sSvcId, nErrorCode, sErrorMsg) {
  60. arErrorCode.push(sSvcId, nErrorCode);
  61. if(nErrorCode < 0) return;
  62. sysf_trace("***** cf_TXMRC00130 *****");
  63. ds_grd_rendlist2.rowposition = -1;
  64. ds_grd_rtnlist.rowposition = -1;
  65. }
  66. function cf_TRMRC00131(sSvcId, nErrorCode, sErrorMsg) {
  67. arErrorCode.push(sSvcId, nErrorCode);
  68. if(nErrorCode < 0) return;
  69. sysf_trace("***** cf_TRMRC00131 *****");
  70. ds_grd_rtnlist.rowposition = -1;
  71. }
  72. //=======================================================================================
  73. // Global Form Variable
  74. //---------------------------------------------------------------------------------------
  75. var extnflag = "false";
  76. var arErrorCode = new HashArray();
  77. //var arErrorMsg = new HashArray();
  78. var screenX = "";
  79. var screenY = "";
  80. //=======================================================================================
  81. // Function
  82. //---------------------------------------------------------------------------------------
  83. /****************************************************************************************
  84. * Argument : 01.sKey : 코드아이디
  85. * : 02.sValue : 코드명
  86. * Description : 공통코드를 가져온다.
  87. ****************************************************************************************/
  88. /**
  89. * @desc : 폼초기화
  90. * @
  91. * @param :
  92. * @return :
  93. * @authur : 이은영 2008.03.18
  94. * @---------------------------------------------------
  95. */
  96. function fFormInit()
  97. {
  98. /* 마스터 정보 가져오기..
  99. //공통코드 가져오기...
  100. //M0392:챠트미대출사유코드
  101. //M0412:과보관사유코드
  102. //M0424:차트상태(분실)코드
  103. zbcfGetCodeList(new Array("M0392","M0412","M0424"), new Array("/root/init/M0392","/root/init/M0412","/root/init/M0424"));
  104. // 대출용도, 대출과, 차트과, 차트담당자, 보관장소
  105. model.makeValue("/root/send/reqdata/ioflag" , "O");
  106. model.makeValue("/root/send/reqdata/useyn" , "");
  107. model.makeValue("/root/send/reqdata/allwardyn", "");
  108. model.refresh();
  109. submit("TRMRC00100");
  110. //*/
  111. var today = utlf_getCurrentDate();
  112. ds_send_reqdata.setColumn(0, "rendcd" , "ALL");
  113. ds_send_reqdata.setColumn(0, "appdeptcd" , "ALL");
  114. ds_send_reqdata.setColumn(0, "fromappdd" , today);
  115. ds_send_reqdata.setColumn(0, "toappdd" , today);
  116. ds_send_reqdata.setColumn(0, "fromrtndd" , "");
  117. ds_send_reqdata.setColumn(0, "tortndd" , "");
  118. ds_send_reqdata.setColumn(0, "resettm" , utlf_getCurrentTime());
  119. ds_send_reqdata.setColumn(0, "acptid" , sysf_getUserId());
  120. ipt_fromrtndd.enable = false;
  121. ipt_tortndd.enable = false;
  122. fOpenTop(extnflag);
  123. }
  124. /**
  125. * @desc : 챠트 반납 우클릭시 - > 챠트 반납
  126. * @
  127. * @param :
  128. * @return :
  129. * @authur : 이은영 2008.03.18
  130. * @---------------------------------------------------
  131. */
  132. function fsetrtnchart()
  133. {
  134. //var ref = "/root/main/chrtrtn/rtntrgtlist";
  135. var grdObj = grd_rendlist2;
  136. var grdDs = this.objects[grdObj.binddataset];
  137. var savedata = "status▦chrtseqno▦medirecno▦pid▦appdeptcd▦appmanid▩";
  138. var dataString = "";
  139. var dataCount = 0;
  140. var selectedRows = grdf_getSelectedRows(grdObj);
  141. for ( var i = 0; i < selectedRows.length; i++)
  142. {
  143. var chrtseqno = grdDs.getColumn(selectedRows[i], "chrtseqno");
  144. var medirecno = grdDs.getColumn(selectedRows[i], "medirecno");
  145. var pid = grdDs.getColumn(selectedRows[i], "pid");
  146. var appdeptcd = grdDs.getColumn(selectedRows[i], "appdeptcd");
  147. var appmanid = grdDs.getColumn(selectedRows[i], "appmanid");
  148. if (!utlf_isNull(chrtseqno)) {
  149. dataString = dataString + "u▦" + chrtseqno + "▦" + medirecno + "▦" + pid + "▦" + appdeptcd + "▦" + appmanid + "▩";
  150. dataCount = dataCount + 1;
  151. }
  152. }
  153. if (dataString.length > 0)
  154. {
  155. dsf_setCSVToDs("ds_send_savedata", savedata + dataString);
  156. var oParam = {};
  157. oParam.id = "TXMRC00130";
  158. oParam.service = "chrtmngtapp.ChrtRendMngt";
  159. oParam.method = "setRtnList";
  160. oParam.inds = "req=ds_send_savedata";
  161. oParam.outds = "ds_grd_rendlist2=rtntrgtlist ds_grd_rtnlist=rtnlist";
  162. oParam.async = true;
  163. oParam.callback = "cf_TXMRC00130";
  164. tranf_submit(oParam);
  165. alert("총 " + dataCount + " 건 챠트반납 되었습니다.");
  166. // 다시 조회하기..
  167. fGetRtnList();
  168. }
  169. }
  170. /**
  171. * @desc : 챠트 반납 우클릭시 - > 대출연장
  172. * @
  173. * @param :
  174. * @return :
  175. * @authur : 이은영 2008.03.18
  176. * @---------------------------------------------------
  177. */
  178. function fsetrtnschedd()
  179. {
  180. if(ds_grd_rendlist2.rowposition < 0){
  181. return;
  182. }
  183. // 2008.01.13. 대출연장 입력하기...
  184. fShowWndIptBox("3");
  185. }
  186. /**
  187. * @desc : 챠트 반납 우클릭시 - > 대출연장 (반납예정일)
  188. * @
  189. * @param :
  190. * @return :
  191. * @authur : 이은영 2008.03.18
  192. * @---------------------------------------------------
  193. */
  194. function fUpdateRtnScheDD()
  195. {
  196. // 2008.01.22. 대출연장 (반납예정일) 입력하기...
  197. var term = ds_hidden_lendlist.getColumn(0, "term");
  198. var termunit = ds_hidden_lendlist.getColumn(0, "termunit");
  199. if (term.isNumber == false) {
  200. alert("숫자를 입력하세요.");
  201. return;
  202. }
  203. var rtnschedd = new Date();
  204. rtnschedd = rtnschedd.getAddDate(eval(term), termunit);
  205. rtnschedd = rtnschedd.getDateFormat("YYYYMMDD");
  206. var savedata ="chrtseqno▦rtnschedd▩";
  207. var dataString = "";
  208. var dataCount = 0;
  209. var selectedRows = grdf_getSelectedRows(grd_rendlist2);
  210. for ( var i = 0; i < selectedRows.length; i++)
  211. {
  212. var chrtseqno = ds_grd_rendlist2.getColumn(selectedRows[i] , "chrtseqno");
  213. if (!utlf_isNull(chrtseqno)) {
  214. dataString = dataString + chrtseqno + "▦" + rtnschedd + "▩";
  215. dataCount = dataCount + 1;
  216. }
  217. }
  218. grup_addrtnschedd.visible = false;
  219. if (dataString.length > 0)
  220. {
  221. dsf_setCSVToDs("ds_send_savedata", savedata + dataString);
  222. var oParam = {};
  223. oParam.id = "TXMRC00106";
  224. oParam.service = "chrtmngtapp.ChrtRendMngt";
  225. oParam.method = "setRtnSchedd";
  226. oParam.inds = "savedata=ds_send_savedata";
  227. //oParam.outds = "null";
  228. oParam.async = true;
  229. oParam.callback = "cf_TXMRC00106";
  230. tranf_submit(oParam);
  231. alert("총 " + dataCount + " 건 대출연장 되었습니다.");
  232. // 다시 조회하기..
  233. fGetRtnList();
  234. }
  235. }
  236. /**
  237. * @desc : 챠트 반납 우클릭시 - > 과보관 사유 입력
  238. * @
  239. * @param :
  240. * @return :
  241. * @authur : 이은영 2008.03.18
  242. * @---------------------------------------------------
  243. */
  244. function fsetdeptkeep()
  245. {
  246. if(ds_grd_rendlist2.rowposition < 0){
  247. return;
  248. }
  249. // 2008.01.13. 과보관사유 입력하기...
  250. fShowWndIptBox("1");
  251. }
  252. /**
  253. * @desc : 챠트 반납 우클릭시 - > 과보관 사유 입력 (update)
  254. * @
  255. * @param :
  256. * @return :
  257. * @authur : 이은영 2008.03.18
  258. * @---------------------------------------------------
  259. */
  260. function fUpdateDeptKeepresn()
  261. {
  262. // 2008.01.13. 과보관사유 입력하기...
  263. var deptkeepcd = ds_hidden_lendlist.getColumn(0, "deptkeepcd");
  264. var deptkeepresn = ds_hidden_lendlist.getColumn(0, "deptkeepresn");
  265. var savedata ="chrtseqno▦deptkeepcd▦deptkeepresn▩";
  266. var dataString = "";
  267. var dataCount = 0;
  268. var selectedRows = grdf_getSelectedRows(grd_rendlist2);
  269. for ( var i = 0; i < selectedRows.length; i++)
  270. {
  271. var chrtseqno = ds_grd_rendlist2.getColumn(selectedRows[i], "chrtseqno");
  272. if (!utlf_isNull(chrtseqno)) {
  273. dataString = dataString + chrtseqno + "▦" + deptkeepcd + "▦" + deptkeepresn + "▩";
  274. dataCount = dataCount + 1;
  275. }
  276. }
  277. grup_deptkeep.visible = false;
  278. if (dataString.length > 0)
  279. {
  280. dsf_setCSVToDs("ds_send_savedata", savedata + dataString);
  281. var oParam = {};
  282. oParam.id = "TXMRC00103";
  283. oParam.service = "chrtmngtapp.ChrtRendMngt";
  284. oParam.method = "setDeptKeep";
  285. oParam.inds = "savedata=ds_send_savedata";
  286. //oParam.outds = "null";
  287. oParam.async = true;
  288. oParam.callback = "cf_TXMRC00103";
  289. tranf_submit(oParam);
  290. alert("총 " + dataCount + " 건 과보관(사유입력) 되었습니다.");
  291. // 다시 조회하기..
  292. fGetRtnList();
  293. }
  294. }
  295. /**
  296. * @desc : 챠트 반납 우클릭시 - > 차트 분실 처리
  297. * @
  298. * @param :
  299. * @return :
  300. * @authur : 이은영 2008.07.28
  301. * @---------------------------------------------------
  302. */
  303. function fsetlosschrt()
  304. {
  305. if(ds_grd_rendlist2.rowposition < 0){
  306. return;
  307. }
  308. // 2008.07.28. 차트 분실 처리하기...
  309. fShowWndIptBox("4");
  310. }
  311. /**
  312. * @desc : 챠트상태를 수정한다.
  313. * @
  314. * @param :
  315. * @return :
  316. * @authur : 이은영 2008.07.28
  317. * @---------------------------------------------------
  318. */
  319. function fUpdateChrtStat()
  320. {
  321. // 2008.07.28. 차트 분실 처리하기...
  322. var chrtstat = ds_hidden_lendlist.getColumn(0, "chrtstat");
  323. var chrtstatnm = ds_init_M0424.lookup("cdid", chrtstat, "cdnm");
  324. var savedata ="medirecno▦chrtseqno▦chrtstat▦unrtnresn▩";
  325. var dataString = "";
  326. var dataCount = 0;
  327. var selectedRows = grdf_getSelectedRows(grd_rendlist2);
  328. for ( var i = 0; i < selectedRows.length; i++)
  329. {
  330. var medirecno = ds_grd_rendlist2.getColumn(selectedRows[i], "medirecno");
  331. var chrtseqno = ds_grd_rendlist2.getColumn(selectedRows[i], "chrtseqno");
  332. var unrtnresn = "[" + chrtstatnm + "]";
  333. if (!utlf_isNull(chrtseqno)) {
  334. dataString = dataString + medirecno + "▦" + chrtseqno + "▦" + chrtstat + "▦" + unrtnresn + "▩";
  335. dataCount = dataCount + 1;
  336. }
  337. }
  338. grup_losschrt.visible = false;
  339. if (dataString.length > 0)
  340. {
  341. dsf_setCSVToDs("ds_send_savedata", savedata + dataString);
  342. var oParam = {};
  343. oParam.id = "TXMRC00107";
  344. oParam.service = "chrtmngtapp.ChrtRendMngt";
  345. oParam.method = "reqExeLossChrt";
  346. oParam.inds = "savedata=ds_send_savedata";
  347. //oParam.outds = "null";
  348. oParam.async = true;
  349. oParam.callback = "cf_TXMRC00107";
  350. tranf_submit(oParam);
  351. alert("총 " + dataCount + " 건 차트 분실 처리 되었습니다.");
  352. // 다시 조회하기..
  353. fGetRtnList();
  354. }
  355. }
  356. /**
  357. * @desc : 챠트 반납 조회
  358. * @
  359. * @param :
  360. * @return :
  361. * @authur : 이은영 2008.03.18
  362. * @---------------------------------------------------
  363. */
  364. function fGetRtnList()
  365. {
  366. var oParam = {};
  367. oParam.id = "TRMRC00130";
  368. oParam.service = "chrtmngtapp.ChrtRendMngt";
  369. oParam.method = "reqGetRtnList";
  370. oParam.inds = "req=ds_send_reqdata";
  371. oParam.outds = "ds_grd_rendlist2=rtntrgtlist ds_grd_rtnlist=rtnlist";
  372. oParam.async = true;
  373. oParam.callback = "cf_TRMRC00130";
  374. tranf_submit(oParam);
  375. }
  376. /**
  377. * @desc : 챠트 반납 조회 - 바크도 입력후 반납현황만 다시조회한다. (로그인 사용자별)
  378. * @
  379. * @param :
  380. * @return :
  381. * @authur : 이은영 2008.03.18
  382. * @---------------------------------------------------
  383. */
  384. function fGetUserRtnList()
  385. {
  386. var oParam = {};
  387. oParam.id = "TRMRC00131";
  388. oParam.service = "chrtmngtapp.ChrtRendMngt";
  389. oParam.method = "reqGetUserRtnList";
  390. oParam.inds = "req=ds_send_reqdata";
  391. oParam.outds = "ds_grd_rtnlist=rtnlist";
  392. oParam.async = true;
  393. oParam.callback = "cf_TRMRC00131";
  394. tranf_submit(oParam);
  395. }
  396. /**
  397. * @desc : 바코드입력 후 엔터시 -> 챠트반납
  398. * @
  399. * @param :
  400. * @return :
  401. * @authur : 이은영 2008.03.18
  402. * @---------------------------------------------------
  403. */
  404. function fSetReturnChartBcno()
  405. {
  406. var bcno = ds_send_reqdata.getColumn(0, "bcno");
  407. if (utlf_isNull(bcno) || bcno == "0"){
  408. alert("바코드를 입력해 주세요", "차트대출 및 반납", 0 | 64);
  409. //model.setFocus("ipt_lendbcno");
  410. ipt_rtnbcno.setFocus();
  411. return;
  412. }
  413. // 2009.04.13. 의정부 성모인 경우..
  414. // 바코드 리딩시 lpad 로 해서 '0' 을 체움..
  415. // 리팅값과 DB값이 다를수 있음..
  416. // 바코드번호를 외래간호에서 생성하면 '0' 이 없고,
  417. // 의료정보팀에서 생성하면 '0' 이 있음..
  418. if (sysf_getUserInfo("dutplceinstcd") == "013") {
  419. if (bcno.length < 12) { bcno = bcno.getLeftPad(12, "0"); }
  420. }
  421. // 데이타 셋하기.. 외래/입원구분, 처리자ID, 대출일, 조회시간, 바코드
  422. var resettm = ds_send_reqdata.getColumn(0, "resettm");
  423. ds_send_req.setColumn(0, "ioflag" , "O");
  424. ds_send_req.setColumn(0, "acptid" , sysf_getUserId());
  425. ds_send_req.setColumn(0, "renddd" , utlf_getCurrentDate());
  426. ds_send_req.setColumn(0, "resettm" , resettm);
  427. ds_send_req.setColumn(0, "bcno" , bcno.toUpperCase());
  428. var oParam = {};
  429. oParam.id = "TXMRC03002";
  430. oParam.service = "chrtmngtapp.ChrtRendMngt";
  431. oParam.method = "reqExeRtnChrtByBcno";
  432. oParam.inds = "req=ds_send_req";
  433. oParam.outds = "ds_grd_rtnlist=rtnlist";
  434. oParam.async = true;
  435. oParam.callback = "cf_TXMRC03002";
  436. tranf_submit(oParam);
  437. // 반납현황을 키우기...
  438. fOpenTop("true");
  439. // 2008.01.25. 바코드 번호 클리어...
  440. ds_send_reqdata.setColumn(0, "bcno", "");
  441. ipt_rtnbcno.setFocus();
  442. }
  443. /**
  444. * @desc : 메인 그리드 화면을 보여주기 / 차트 줄이기
  445. * @
  446. * @param :
  447. * @return :
  448. * @---------------------------------------------------
  449. *
  450. */
  451. function fOpenTop(flag)
  452. {
  453. extnflag = flag;
  454. if (flag == "true") {
  455. grup_rtnlist.position2.top = 24;
  456. grup_rtnlist.position2.height = 700;
  457. grup_rtnlist.grd_rtnlist.position2.height = 672;
  458. caption65.visible = false;
  459. } else {
  460. grup_rtnlist.grd_rtnlist.position2.height = 390;
  461. grup_rtnlist.position2.top = 306;
  462. grup_rtnlist.position2.height = 418;
  463. caption65.visible = true;
  464. }
  465. }
  466. /**
  467. * @desc : 등록된 환자번호인지 체킹한다..
  468. * @
  469. * @param : iptObj - 환자번호 입력 컨트롤 (pid)
  470. * @return :
  471. * @authur : 이은영 2008.09.17
  472. * @---------------------------------------------------
  473. */
  474. function fGetPidNo(iptObj, refVal)
  475. {
  476. var chkyn = refVal;
  477. if (chkyn == "Y") {
  478. if (iptObj.text.length > 0) {
  479. var pid = iptObj.text;
  480. pid = getCretCheckNo(pid, sysf_getUserInfo("dutplceinstcd"));
  481. ds_send_reqdata.setColumn(0, "pid", pid);
  482. }
  483. }
  484. }
  485. /**
  486. * @desc : 등록된 환자번호인지 체킹한다..
  487. * @
  488. * @param : iptObj - 환자번호 입력 컨트롤 (pid)
  489. * @return : pnm - 환자명
  490. * @authur : 이은영 2008.03.18
  491. * @---------------------------------------------------
  492. */
  493. function fCheckPid(iptObj, refoDs:Dataset, refPnm)
  494. {
  495. ds_send_req.setColumn(0, "srchcond", "1");
  496. ds_send_req.setColumn(0, "pid", iptObj.text);
  497. //환자등록번호 체크
  498. if(iptObj.text.length > 0 ){
  499. ds_main_result_patinfo_patinfolist.clearData();
  500. var oParam = {};
  501. oParam.id = "TRPMC02500";
  502. oParam.service = "patinfomngtapp.PatBaseInfo";
  503. oParam.method = "reqGetPatInfo";
  504. oParam.inds = "req=ds_send_req";
  505. oParam.outds = "ds_main_result_patinfo_patinfolist=patinfolist";
  506. oParam.async = false;
  507. oParam.callback = "cf_TRPMC02500";
  508. tranf_submit(oParam);
  509. if(arErrorCode.pop("TRPMC02500") > -1){
  510. //fSearch는 인적사항 화면을 임포트 해간 화면에서 구현해 주어야 하는 함수이다.
  511. if( ds_main_result_patinfo_patinfolist.rowcount > 0 ){
  512. ds_patinfolist.copyData(ds_main_result_patinfo_patinfolist);
  513. //* 2009.04.07. 이중번호 메세지 ( 14257937 박용석 -> 13275912 신옥순 )
  514. var sBindPid = ds_main_result_patinfo_patinfolist.getColumn(0, "bindpid");
  515. if( sBindPid != '-' && !utlf_isNull(sBindPid) && sBindPid != ' ' ){
  516. //합번된 등록번호 메세지 처리
  517. var sPid = ds_main_result_patinfo_patinfolist.getColumn(0, "pid");
  518. var sHngnm = ds_main_result_patinfo_patinfolist.getColumn(0, "hngnm");
  519. var retValue = sysf_messageBox(sPid + " (" + sHngnm + ") 환자의 등록번호가 [ " + sBindPid + " ] 로 합번 되었습니다. 합번된 등록번호로 재조회 하시겠습니까?", "Q999", "");
  520. if( retValue == '6' ){
  521. iptObj.value = sBindPid;
  522. iptObj.updateToDataset();
  523. fCheckPid(iptObj, refoDs, refPnm);
  524. return "";
  525. }
  526. }
  527. //*/
  528. var pid = ds_main_result_patinfo_patinfolist.getColumn(0, "pid");
  529. var pnm = ds_main_result_patinfo_patinfolist.getColumn(0, "hngnm");
  530. if (refPnm != null)
  531. {
  532. refoDs.setColumn(0, refPnm, pnm);
  533. }
  534. return pnm;
  535. }else{
  536. ds_patinfolist.clearData();
  537. sysf_messageBox("없는 환자 번호 입니다.", "E999", "");
  538. return "";
  539. }
  540. }
  541. }else{
  542. sysf_messageBox("환자등록번호를 정확히", "C001");
  543. return "";
  544. }
  545. }
  546. /**
  547. * @desc : 환자등록번호 조회 팝업
  548. * @
  549. * @param : refPid - 환자번호 참고 node path
  550. * refPnm - 환자명 참고 node path
  551. * @return :
  552. * @authur : 이은영 2008.03.18
  553. * @---------------------------------------------------
  554. */
  555. function fGetPid(refoDs:Dataset, refPid, refPnm)
  556. {
  557. //조회건수가 1건일 경우 팝업창을 바로 닫는다.
  558. var objColInfo = new Array();
  559. objColInfo.push({col: "pid", type:"string", size:256, val:""});
  560. objColInfo.push({col: "hngnm", type:"string", size:256, val:""});
  561. objColInfo.push({col: "srchcond", type:"string", size:256, val:"2"});
  562. objColInfo.push({col: "autoflag", type:"string", size:256, val:"N"});
  563. objColInfo.push({col: "rrgstno1", type:"string", size:256, val:""});
  564. objColInfo.push({col: "rrgstno2", type:"string", size:256, val:""});
  565. objColInfo.push({col: "checkfnexam", type:"string", size:256, val:"1"});
  566. dsf_createDsRow("ds_hidden_tmp_pidpopupinfo", objColInfo);
  567. var objArgs = new Object();
  568. objArgs.ds_SPPMC02500 = ds_hidden_tmp_pidpopupinfo;
  569. frmf_modal("SPPMC02500", "SPPMC02500", objArgs, null, "1", "10", "10", null, null, null, null, null, "M");
  570. //model.resetInstanceNode("/root/source");
  571. //환자번호 copy
  572. ds_main.setColumn(0, "popupendflag", frmf_getParameter("SPPMC02500_popupendflag"));
  573. var popupendflag = ds_main.getColumn(0, "popupendflag");
  574. if (popupendflag == "ok")
  575. {
  576. refoDs.setColumn(0, refPid, ds_patinfolist.getColumn(0, "pid"));
  577. if (refPnm == null) { refPnm = "" }
  578. if (!utlf_isNull(refPnm)) {
  579. refoDs.setColumn(0, refPnm, ds_patinfolist.getColumn(0, "hngnm"));
  580. }
  581. }
  582. }
  583. /**
  584. * @desc : 등록된 사용자 번호인지 체킹한다..
  585. * @
  586. * @param : iptObj - 사용자 ID 입력 컨트롤 (userid)
  587. * @return : posdeptcd - 사용자 부서코드
  588. * @authur : 이은영 2008.03.18
  589. * @---------------------------------------------------
  590. */
  591. /*
  592. function fCheckUserid(iptObj)
  593. {
  594. setInputNodeCurText();
  595. // 사용자 번호 체크
  596. if(iptObj.currentText.length > 0 ){
  597. // 사용자 조회
  598. model.removenode("/root/hidden/tmp/tempuserinfo/list");
  599. model.reset("/root/hidden/tmp/tempuserinfo");
  600. model.setValue("/root/hidden/tmp/userpopupinfo/param", "_OneS");
  601. model.setValue("/root/hidden/tmp/userpopupinfo/flag", "userid");
  602. model.setValue("/root/hidden/tmp/userpopupinfo/searchitem", iptObj.currentText);
  603. modal("SPZSU10103", "", "200", "200", "SPZSU10103","/root/hidden/tmp/userpopupinfo","/root/main/temp");
  604. var iParam = getParameter("SPZSU10103_");
  605. setCSVToNode("/root/hidden/tmp/tempuserinfo", iParam);
  606. clearParameter("SPZSU10103_");
  607. //fSearch는 인적사항 화면을 임포트 해간 화면에서 구현해 주어야 하는 함수이다.
  608. if( getNodesetCount("/root/hidden/tmp/tempuserinfo/list") > 0 ){
  609. var userid = model.getValue("/root/hidden/tmp/tempuserinfo/list/userid");
  610. var posdeptcd = model.getValue("/root/hidden/tmp/tempuserinfo/list/posdeptcd");
  611. iptObj.value = userid;
  612. model.refresh();
  613. return posdeptcd;
  614. //fSearch();
  615. }else{
  616. model.resetInstanceNode("/root/hidden/tmp/tempuserinfo/list");
  617. messageBox("없는 사용자 번호 입니다.", "E999", "");
  618. model.refresh();
  619. }
  620. }else{
  621. messageBox("사용자 번호를 정확히", "C001");
  622. iptObj.value = "";
  623. model.refresh();
  624. }
  625. return "";
  626. }
  627. */
  628. /**
  629. * @desc : 마우스 오른쪽 버튼 팝업창
  630. * @
  631. * @param : job - 0:챠트대출, 1:챠트반납, 2:접수자명단
  632. * @return :
  633. * @authur : 이은영 2008.03.18
  634. * @---------------------------------------------------
  635. */
  636. function fMouseRghtBtnPopup(gridObj, e, job)
  637. {
  638. var oDs = this.objects[gridObj.binddataset];
  639. if( oDs.rowcount < 1 ) return;
  640. if (e.row > -1 && e.col > -1) {
  641. if (job == "1") {
  642. oDs.rowposition = e.row;
  643. ds_send_savedata.clearData();
  644. ds_send_savedata.addRow();
  645. popupmenu.trackPopup(e.screenX,e.screenY);
  646. screenX = e.clientX;
  647. screenY = e.clientY;
  648. //window.setPopupMenu(true, "/root/hidden/rtntrgtlist_menu/menu", "label", "func", false);
  649. }
  650. }
  651. }
  652. /**
  653. * @desc : 팝업폼 보여주기..
  654. * @
  655. * @param : job - 0:챠트대출(미대출사유) , 1:챠트반납(과보관사유),
  656. * @ 2:접수자명단(미대출사유), 3:챠트반납(대출연장) , 4:챠트반납(차트분실)
  657. * @return :
  658. * @authur : 이은영 2008.03.18
  659. * @---------------------------------------------------
  660. */
  661. function fShowWndIptBox(job)
  662. {
  663. grup_deptkeep.visible = false;
  664. grup_addrtnschedd.visible = false;
  665. grup_losschrt.visible = false;
  666. var nX = screenX;
  667. var nY = screenY;
  668. var widGrup = 0;
  669. var widGrd = parseInt(grd_rendlist2.position2.width);
  670. var grupObj;
  671. if (job == "1") {
  672. ds_hidden_lendlist.setColumn(0, "deptkeepcd", "00");
  673. ds_hidden_lendlist.setColumn(0, "deptkeepresn", "");
  674. widGrup = parseInt(grup_deptkeep.position.width);
  675. grupObj = grup_deptkeep;
  676. // if (event.clientY < 100) {
  677. // grup_deptkeep.attribute("top") = event.clientY-90;
  678. // } else {
  679. // grup_deptkeep.attribute("top") = 100;
  680. // }
  681. // grup_deptkeep.visible = "true";
  682. } else if (job == "3") {
  683. ds_hidden_lendlist.setColumn(0, "term", "");
  684. ds_hidden_lendlist.setColumn(0, "termunit", "D");
  685. widGrup = parseInt(grup_addrtnschedd.position.width);
  686. grupObj = grup_addrtnschedd;
  687. // if (event.clientY < 280) {
  688. // grup_addrtnschedd.attribute("top") = event.clientY-90;
  689. // } else {
  690. // grup_addrtnschedd.attribute("top") = 200;
  691. // }
  692. // grup_addrtnschedd.visible = "true";
  693. } else if (job == "4") {
  694. ds_hidden_lendlist.setColumn(0, "chrtstat", "01");
  695. widGrup = parseInt(grup_losschrt.position.width);
  696. grupObj = grup_losschrt;
  697. // if (event.clientY < 300) {
  698. // grup_losschrt.attribute("top") = event.clientY-110;
  699. // } else {
  700. // grup_losschrt.attribute("top") = 200;
  701. // }
  702. // grup_losschrt.visible = "true";
  703. }
  704. if( job == "1" || job == "3" || job == "4" ){
  705. if (widGrd < nX + widGrup)
  706. {
  707. nX = widGrd - widGrup - 17;
  708. }
  709. nX = system.clientToScreenX(grd_rendlist2,nX);
  710. nY = system.clientToScreenY(grd_rendlist2,nY);
  711. grupObj.trackPopup(nX,nY);
  712. }
  713. }
  714. /**
  715. * @desc : 차트 반납에서 대출일자 기간 콤보 보여줄까? 말까?
  716. * @
  717. * @param :
  718. * @return :
  719. * @authur : 이은영 2008.05.30
  720. * @---------------------------------------------------
  721. */
  722. function fLendTermDisabled()
  723. {
  724. var lendtermdisabled = lendterm_disabled.value;
  725. if (lendtermdisabled == "Y") {
  726. var today = utlf_getCurrentDate();
  727. ds_send_reqdata.setColumn(0, "fromappdd", today);
  728. ds_send_reqdata.setColumn(0, "toappdd" , today);
  729. ipt_rtnfromappdd.enable = true;
  730. ipt_rtntoappdd.enable = true;
  731. } else {
  732. ds_send_reqdata.setColumn(0, "fromappdd", "");
  733. ds_send_reqdata.setColumn(0, "toappdd" , "");
  734. ipt_rtnfromappdd.enable = false;
  735. ipt_rtntoappdd.enable = false;
  736. }
  737. }
  738. /**
  739. * @desc : 차트 반납에서 반납예정일 기간 콤보 보여줄까? 말까?
  740. * @
  741. * @param :
  742. * @return :
  743. * @authur : 이은영 2008.05.30
  744. * @---------------------------------------------------
  745. */
  746. function fRrtTermDisabled()
  747. {
  748. var rtntermdisabled = rtnterm_disabled.value;
  749. if (rtntermdisabled == "Y") {
  750. var today = utlf_getCurrentDate();
  751. ds_send_reqdata.setColumn(0, "fromrtndd", today);
  752. ds_send_reqdata.setColumn(0, "tortndd" , today);
  753. ipt_fromrtndd.enable = true;
  754. ipt_tortndd.enable = true;
  755. } else {
  756. ds_send_reqdata.setColumn(0, "fromrtndd", "");
  757. ds_send_reqdata.setColumn(0, "tortndd" , "");
  758. ipt_fromrtndd.enable = false;
  759. ipt_tortndd.enable = false;
  760. }
  761. }
  762. /**
  763. * @desc : 환자등록번호 찾기...
  764. * @
  765. * @param :
  766. * @return :
  767. * @authur : 이은영 2008.07.21
  768. * @---------------------------------------------------
  769. */
  770. /*
  771. function fFindPid(grdObj, pidRef)
  772. {
  773. var pid = model.getValue(pidRef);
  774. var col = grdObj.colRef("pid");
  775. var startRow = grdObj.row + 1;
  776. if(startRow <= 0) { startRow = 1; }
  777. var row = grdObj.findRow(pid, parseInt(startRow), parseInt(grdObj.colRef("pid")), false, false);
  778. if(row < 0){
  779. alert("no more");
  780. } else {
  781. grdObj.row = row;
  782. grdObj.topRow = row;
  783. }
  784. }
  785. */
  786. /**
  787. * @desc : 사용자콤보 조회
  788. * @
  789. * @param : ref - reference path
  790. * rsltref - result reference path
  791. * deptcd - 부서코드
  792. * jobkindcd - 직종코드
  793. * jobposcd - 직책코드
  794. * specordyn - 선택진료여부
  795. * @return :
  796. * @author :
  797. * @---------------------------------------------------
  798. */
  799. /*
  800. function fGetUserComboList(ref, rsltref, deptcd, jobkindcd, specordyn)
  801. {
  802. model.removeNode(ref);
  803. model.makeValue(ref + "/deptcd" , deptcd); //부서코드
  804. model.makeValue(ref + "/jobkindcd", jobkindcd); //직종코드(의사:0330)
  805. model.makeValue(ref + "/specordyn", specordyn); //선택진료여부
  806. model.removeNode(rsltref);
  807. model.makeValue(rsltref + "/userlist/usercombo[1]/usernm", '-');
  808. model.makeValue(rsltref + "/userlist/usercombo[1]/userid", '');
  809. model.refresh();
  810. submit("TRMMB04102", "false", ref, rsltref + "/userlist");
  811. }
  812. */
  813. /**
  814. * @desc : 사용자 조회
  815. * @
  816. * @param : refUserid - 사용자 ID, refUserDeptcd - 소속부서코드 ( posdeptcd )
  817. * @return :
  818. * @authur : 이은영 2008.03.18
  819. * @---------------------------------------------------
  820. */
  821. function fGetUserid(refoDs:Dataset, refUserid, refUsernm, refUserDeptcd, cmbObj)
  822. {
  823. //sysf_trace("cmbObj : " + cmbObj);
  824. ds_hidden_tmp_tempuserinfo.clearData();
  825. var user = refoDs.getColumn(0, refUserid);
  826. var flag = "userid";
  827. if(isNaN(user)){
  828. flag = "usernm";
  829. }
  830. ds_hidden_tmp_userpopupinfo.setColumn(0, "param", "_OneS");
  831. ds_hidden_tmp_userpopupinfo.setColumn(0, "flag", flag);
  832. ds_hidden_tmp_userpopupinfo.setColumn(0, "searchitem", user);
  833. var objArgs = new Object();
  834. objArgs.param = ds_hidden_tmp_userpopupinfo.getColumn(0, "param");
  835. objArgs.flag = ds_hidden_tmp_userpopupinfo.getColumn(0, "flag");
  836. objArgs.searchitem = ds_hidden_tmp_userpopupinfo.getColumn(0, "searchitem");
  837. var rtn = frmf_modal("SPZSU10103", "SPZSU10103", objArgs, null, "1", "10", "10", null, null, null, null, null, "P");
  838. //modal("SPZSU10103", "", "200", "200", "SPZSU10103","/root/hidden/tmp/userpopupinfo","/root/main/temp");
  839. // var iParam = frmf_getParameter("SPZSU10103_");
  840. //
  841. // dsf_setCSVToDs("ds_hidden_tmp_tempuserinfo", iParam);
  842. // frmf_clearParameter("SPZSU10103_");
  843. ds_hidden_tmp_tempuserinfo.copyData(rtn);
  844. //fSearch는 인적사항 화면을 임포트 해간 화면에서 구현해 주어야 하는 함수이다.
  845. if( ds_hidden_tmp_tempuserinfo.rowcount > 0 ){
  846. var userid = ds_hidden_tmp_tempuserinfo.getColumn(0, "userid");
  847. var usernm = ds_hidden_tmp_tempuserinfo.getColumn(0, "usernm");
  848. var posdeptcd = ds_hidden_tmp_tempuserinfo.getColumn(0, "posdeptcd");
  849. if (!utlf_isNull(refUsernm)){
  850. if (isNaN(refUsernm)){
  851. refoDs.setColumn(0, refUsernm, usernm);
  852. }
  853. }
  854. if (!utlf_isNull(refUserDeptcd)){
  855. if (isNaN(refUserDeptcd)){
  856. refoDs.setColumn(0, refUserDeptcd, posdeptcd);
  857. }
  858. }
  859. if (cmbObj != null){
  860. fAddUser(userid, usernm, cmbObj);
  861. }
  862. refoDs.setColumn(0, refUserid, userid);
  863. }
  864. }
  865. /**
  866. * @desc : 사용자 조회
  867. * @
  868. * @param : Userid - 사용자ID, Usernm - 사용자명
  869. * @return :
  870. * @authur : 이은영 2008.09.01
  871. * @---------------------------------------------------
  872. */
  873. function fAddUser(Userid, Usernm, cmbObj)
  874. {
  875. if( cmbObj == "[object Combo]" ){
  876. var objCombo = cmbObj;
  877. }else{
  878. var objCombo = eval(cmbObj);
  879. }
  880. //innerdataset
  881. if(!((objCombo.innerdataset).toString() == "[object Dataset]"))
  882. {
  883. var objDs = eval(objCombo.innerdataset);
  884. }
  885. else
  886. {
  887. var objDs = objCombo.innerdataset;
  888. }
  889. var userid = objDs.lookup("userid", Userid, "userid");
  890. if( utlf_isNull(userid) ){
  891. var nRow = objDs.addRow();
  892. objDs.setColumn(nRow, cmbObj.codecolumn, Userid);
  893. objDs.setColumn(nRow, cmbObj.datacolumn, Usernm);
  894. objCombo.value = Userid;
  895. objCombo.updateToDataset();
  896. }
  897. }
  898. /**
  899. * @desc : excel 저장 하기
  900. * @
  901. * @param :
  902. * @return :
  903. * @authur : 이은영 2008.07.14
  904. * @---------------------------------------------------
  905. */
  906. function fExcel(gridObj, title){
  907. if (title == null) { title = "" }
  908. // var fileName = window.fileDialog("save", ",", false, title + "_" + getCurrentDate(), "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  909. // if (fileName != "") {
  910. // gridObj.saveExcel(fileName, "SheetName", true, true, "", "", true);
  911. // }
  912. grdf_exportExcel(gridObj, title, "SheetName");
  913. }
  914. /**
  915. * @desc : 선택된 환자등록번호로 현위치조회 텝이동..
  916. * @
  917. * @param : gridObj - 그리드 컨트롤, ref - node path
  918. * @return :
  919. * @authur : 이은영 2008.03.18
  920. * @---------------------------------------------------
  921. */
  922. function fMoveTabChartByPid(gridObj, e){
  923. var oDs = this.objects[gridObj.binddataset];
  924. if( oDs.rowcount < 1 ) return;
  925. if( e.row < 0 && e.col < 0 ){
  926. return;
  927. }
  928. if (oDs.rowposition < 0){
  929. return;
  930. }
  931. var pid = oDs.getColumn(oDs.rowposition, "pid");
  932. var pnm = oDs.getColumn(oDs.rowposition, "pnm");
  933. this.getOwnerFrame().form.ds_send_reqdata.setColumn(0, "pid" , pid);
  934. this.getOwnerFrame().form.ds_send_reqdata.setColumn(0, "pnm" , pnm);
  935. this.getOwnerFrame().form.ds_send_reqdata.setColumn(0, "rrgstno", "");
  936. this.getOwnerFrame().form.group2.switch1.tabindex = 0;
  937. this.getOwnerFrame().form.fChartHistory();
  938. }
  939. /**
  940. * @desc : 단축키 선택시 커서이동
  941. * @
  942. * @param :
  943. * @return :
  944. * @authur : 이은영 2009.01.28
  945. * @---------------------------------------------------
  946. */
  947. function fMoveCursor(){
  948. ipt_rtnbcno.setFocus()
  949. }
  950. /**
  951. * @desc : 단축키 선택시 커서이동
  952. * @
  953. * @param :
  954. * @return :
  955. * @authur : 이은영 2009.01.28
  956. * @---------------------------------------------------
  957. */
  958. function fKeyDown(e){
  959. // F7 : 118, F8 : 119 , F9 : 120, F10 : 121
  960. var keyCode = e.keycode;
  961. if (keyCode == "118") {
  962. this.getOwnerFrame().form.fAccessKey1();
  963. } else if (keyCode == "119") {
  964. this.getOwnerFrame().form.fAccessKey2();
  965. } else if (keyCode == "120") {
  966. this.getOwnerFrame().form.fAccessKey3();
  967. } else if (keyCode == "121") {
  968. this.getOwnerFrame().form.fAccessKey4();
  969. }
  970. }
  971. ]]></Script>