SMMRI09000.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 열람신청 및 내역조회 ( SMMRI09000_열람승인업무.xrw - JScript )
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. */
  6. /**
  7. * @desc : 화면 초기화
  8. * @
  9. * @param :
  10. * @return :
  11. * @author : 2010.08.16 주희경
  12. * @---------------------------------------------------
  13. */
  14. function fInitialize()
  15. {
  16. // 의무기록열람승인권한자 리스트 조회
  17. mmbfGetHardCode("/root/temper","/root/hardcode", 4201);
  18. var admin = "";
  19. var userid = getUserInfo("userid");
  20. for( i=1; i<=getNodeSetCnt("/root/hardcode/hardcd"); i++){
  21. if( model.getValue("/root/hardcode/hardcd["+ i +"]/hardcd") == userid ){
  22. admin = "Y";
  23. }
  24. }
  25. if( admin != "" ){
  26. btn_save.visible = true;
  27. }else{
  28. btn_save.visible = false;
  29. }
  30. // 열람신청 부서 가져오기(20120204 이윤주)
  31. submit("TRMRI08109");
  32. addComboInstance("/root/init/deptlist", "deptcd^depthngnm", "-^전체", "viewdept"); //신청과 전체항목 추가
  33. addComboInstance("/root/init/userlist", "userid^usernm", "-^전체", "usercombo"); //의사콤보 전체항목 추가
  34. model.setValue("/root/send/cond/appdeptcd", "-"); //신청과 전체 디폴트 선택
  35. model.setValue("/root/send/cond/appid", "-");
  36. fGetRsnsrch(); //열람목적, 통합기록조회 제한차트 사유 기준자료 테이블 조회
  37. fGetPopupDeptList(); //접근 제한 부서 영문명 조회
  38. model.setValue("/root/send/cond/appfromdd" ,((getCurrentDate().toDate()).getAddDate(-3,"M")).getDateFormat()); //시작일자는 3개월 전 LYJ (요청번호 1896번)
  39. model.setValue("/root/send/cond/apptodd" , getCurrentDate()); //종료일자는 현재일자
  40. grd_readapplist.frozenCols = grd_readapplist.colRef("appdeptcd");
  41. grd_readapppaperlist.frozenCols = grd_readapppaperlist.colRef("appdeptcd");
  42. var instcd = getUserInfo("dutplceinstcd");
  43. //열람승인 제한 환자
  44. mmbfGetHardCodeInfo("/root/send/reqdata", "/root/tmp/secretepids", 5980);
  45. btn_case1.selected = true;
  46. model.toggle("case3");
  47. btn_case1.dispatch("DOMActivate");
  48. model.refresh();
  49. }
  50. /**
  51. * @desc : //[열람목적리스트] 통합기록조회 제한차트 사유 기준자료 테이블 조회
  52. * @
  53. * @param :
  54. * @return :
  55. * @author : 2010.08.16 주희경
  56. * @---------------------------------------------------
  57. */
  58. function fGetRsnsrch()
  59. {
  60. model.makevalue("/root/send/rsnsrch/jobkind", "-");
  61. model.makevalue("/root/send/rsnsrch/deptcd", "-");
  62. submit("TRMRI03102");
  63. }
  64. var POPUP_DEPTENGABBR = ""; //접근제한 사유 부서 리스트 (,)로 분리
  65. /**
  66. * @desc : 접근제한 사유 부서 리스트 조회
  67. * @
  68. * @param :
  69. * @return :
  70. * @author : 2010.08.16 주희경
  71. * @---------------------------------------------------
  72. */
  73. function fGetPopupDeptList()
  74. {
  75. model.makeValue("/root/send/cond/trgtno", 1100); //접근 제한 부서 하드코드 1100번 조건 설정
  76. model.makeValue("/root/send/cond/exno", 1110); //사유입력 제외 부서 하드코드 1110번
  77. submit("TRMRI08104"); //접근 제한 부서 영문명 조회
  78. var nodes = instance1.selectNodes("/root/init/hardcd/trgtdept/deptengabbr");
  79. for ( i=0; i<nodes.length; i++ )
  80. {
  81. POPUP_DEPTENGABBR = POPUP_DEPTENGABBR + nodes.item(i).value + ",";
  82. }
  83. POPUP_DEPTENGABBR = POPUP_DEPTENGABBR.substr(0,POPUP_DEPTENGABBR.length-1);
  84. }
  85. /**
  86. * @desc : 조회
  87. * @id :
  88. * @event : DOMActivate
  89. * @return : void
  90. * @author : 2010.08.19 주희경
  91. */
  92. function fSearch(){
  93. if(!isValidDateTime(model.getValue("/root/send/cond/appfromdd"),"YYYYMMDD")){
  94. messageBox("검색 시작일자를 유효한 날짜로","C001");
  95. return;
  96. }
  97. if(!isValidDateTime(model.getValue("/root/send/cond/apptodd"),"YYYYMMDD")){
  98. messageBox("검색 종료일자를 유효한 날짜로","C001");
  99. return;
  100. }
  101. if (switch1.selectedindex == 0){
  102. if(submit("TRMRI08101")){
  103. //상세 신청 리스트에 조회 아이콘 추가
  104. for( i=1; i<grd_readapplist.rows; i++ )
  105. {
  106. grd_readapplist.cellstyle("background-image", i, grd_readapplist.colRef("pledgeclick")) = "../../../com/commonweb/images/icon_list.gif";
  107. grd_readapplist.cellstyle("background-position", i, grd_readapplist.colRef("pledgeclick")) = "center";
  108. }
  109. }
  110. }
  111. else {
  112. //종이챠트 신청리스트 조회-20130121 이윤주
  113. submit("TRMRI08110");
  114. }
  115. }
  116. /**
  117. * @desc : 출력
  118. * @id :
  119. * @event : DOMActivate
  120. * @return : void
  121. * @author : 2013.01.21 이윤주
  122. */
  123. function fPrnt(){
  124. messageBox("준비중입니다","I999");
  125. return;
  126. }
  127. /**
  128. * @desc : 상세 기록 신청 데이터 조회
  129. * @
  130. * @param :
  131. * @return :
  132. * @author : 2010.08.19 주희경
  133. * @---------------------------------------------------
  134. */
  135. function fSearchDetail()
  136. {
  137. if (switch1.selectedindex == 0) {
  138. var appno = model.getValue("/root/main/readappinfo/master/readapplist["+grd_readapplist.row+"]/appno");
  139. var histno = model.getValue("/root/main/readappinfo/master/readapplist["+grd_readapplist.row+"]/histno");
  140. }
  141. else {
  142. var appno = model.getValue("/root/main/readappinfo/pdetail/patlist["+grd_readapppaperlist.row+"]/appno");
  143. var histno = model.getValue("/root/main/readappinfo/pdetail/patlist["+grd_readapppaperlist.row+"]/histno");
  144. }
  145. model.setValue("/root/send/cond/appno", appno);
  146. model.setValue("/root/send/cond/histno", histno);
  147. if(submit("TRMRI08107")){
  148. }
  149. }
  150. /**
  151. * @desc : 처리(승인,불가)내용 저장
  152. * @
  153. * @param :
  154. * @return :
  155. * @author : 2010.08.19 주희경
  156. * @---------------------------------------------------
  157. */
  158. function fSaveReadExe()
  159. {
  160. //신청목록의 데이터를 모두 update 플래그 처리
  161. /*
  162. for (i=1; i<grd_apppatlist.rows ; i++)
  163. {
  164. grd_apppatlist.addStatus(i, "update");
  165. }
  166. */
  167. model.resetInstanceNode("/root/send/reqdata");
  168. //처리저장 환자 정보 copy
  169. model.makeValue("/root/send/reqdata/acptpatlist", grd_apppatlist.getUpdateData());
  170. if ( submit("TXMRI08102") )
  171. {
  172. messageBox("저장이","I002");
  173. }
  174. }
  175. /**
  176. * @desc : 신청목록을 클릭하였을 경우
  177. * @
  178. * @param :
  179. * @return :
  180. * @author : 2010.08.19 주희경
  181. * @---------------------------------------------------
  182. */
  183. function fClickDetail()
  184. {
  185. if ( grd_apppatlist.row == 0 )
  186. {
  187. if (grd_apppatlist.col != grd_apppatlist.colRef("acptstatus"))
  188. return;
  189. var acptstatus = grd_apppatlist.valueMatrix( 0, grd_apppatlist.colRef("acptstatus"));
  190. var setAcptstatus = "";
  191. var currentstatus = "";
  192. var pid = "";
  193. var pnm = "";
  194. var acptstatuscd
  195. if (acptstatus == "열람상태")
  196. {
  197. setAcptstatus = "승인";
  198. acptstatuscd = "02";
  199. }
  200. else if( acptstatus == "승인")
  201. {
  202. setAcptstatus = "불가";
  203. acptstatuscd = "04";
  204. }
  205. else if( acptstatus == "불가")
  206. {
  207. setAcptstatus = "열람상태";
  208. acptstatuscd = "01";
  209. }
  210. grd_apppatlist.valueMatrix( 0, grd_apppatlist.colRef("acptstatus")) = setAcptstatus;
  211. for( i=1; i<grd_apppatlist.rows; i++ )
  212. {
  213. currentstatus = grd_apppatlist.valueMatrix( i, grd_apppatlist.colRef("acptstatus"));
  214. pid = grd_apppatlist.valueMatrix( i, grd_apppatlist.colRef("pid"));
  215. pnm = grd_apppatlist.valueMatrix( i, grd_apppatlist.colRef("pnm"));
  216. var itrgtNodeCnt = getNodeSetCnt("/root/tmp/secretepids/hardcd[hardcd = '" + pid + "']");
  217. if (itrgtNodeCnt > 0) {
  218. messageBox("해당환자("+pid+":"+pnm+")는 비밀유지 요청환자입니다 참고하시기 바랍니다","I");
  219. }
  220. grd_apppatlist.valueMatrix( i, grd_apppatlist.colRef("acptstatus"))= acptstatuscd;
  221. if (currentstatus != acptstatuscd ){
  222. grd_apppatlist.addStatus(i, "update");
  223. }
  224. }
  225. }
  226. }
  227. /**
  228. * @desc : 출력목록을 클릭하였을 경우
  229. * @
  230. * @param :
  231. * @return :
  232. * @author : 2015.10.06 김동규
  233. * @---------------------------------------------------
  234. */
  235. function fClickPrnDetail()
  236. {
  237. if ( grd_apppatlist.row == 0 )
  238. {
  239. if (grd_apppatlist.col != grd_apppatlist.colRef("prntstatus"))
  240. return;
  241. var prntstatus = grd_apppatlist.valueMatrix( 0, grd_apppatlist.colRef("prntstatus"));
  242. var setPrntstatus = "";
  243. var currentstatus = "";
  244. var pid = "";
  245. var pnm = "";
  246. var prntstatuscd
  247. if (prntstatus == "출력")
  248. {
  249. setPrntstatus = "승인";
  250. prntstatuscd = "02";
  251. }
  252. else if( prntstatus == "승인")
  253. {
  254. setPrntstatus = "불가";
  255. prntstatuscd = "04";
  256. }
  257. else if( prntstatus == "불가")
  258. {
  259. setPrntstatus = "출력";
  260. prntstatuscd = "01";
  261. }
  262. grd_apppatlist.valueMatrix( 0, grd_apppatlist.colRef("prntstatus")) = setPrntstatus;
  263. for( i=1; i<grd_apppatlist.rows; i++ )
  264. {
  265. currentstatus = grd_apppatlist.valueMatrix( i, grd_apppatlist.colRef("prntstatus"));
  266. grd_apppatlist.valueMatrix( i, grd_apppatlist.colRef("prntstatus"))= prntstatuscd;
  267. if (currentstatus != prntstatuscd ){
  268. grd_apppatlist.addStatus(i, "update");
  269. }
  270. }
  271. }
  272. }
  273. /**
  274. * @desc : 신청내역 리스트를 클릭하였을 경우
  275. * @
  276. * @param :
  277. * @return :
  278. * @author : 2010.08.19 주희경
  279. * @---------------------------------------------------
  280. */
  281. function fClickMaster()
  282. {
  283. if ( grd_readapplist.col == grd_readapplist.colRef("pledgeclick") ) //서약서 컬럼 클릭 시 서약서 오픈
  284. {
  285. var pledgeflag = grd_readapplist.valueMatrix(grd_readapplist.row, grd_readapplist.colRef("pledgeflag") );
  286. if ( pledgeflag == "E" ) //전자인증한 신청건
  287. {
  288. setParameter("SMMRI09000_param_pledgeprnstatus", "E");
  289. modal("SPMRI08100");
  290. setParameter("SMMRI09000_param_pledgeprnstatus", "");
  291. }
  292. else if ( pledgeflag == "P" ) //서약서 출력한 신청건
  293. {
  294. var filepath = grd_readapplist.valueMatrix(grd_readapplist.row, grd_readapplist.colRef("pledgepath"));
  295. var appno = grd_readapplist.valueMatrix(grd_readapplist.row, grd_readapplist.colRef("appno"));
  296. var appnm = grd_readapplist.valueMatrix(grd_readapplist.row, grd_readapplist.colRef("appnm"));
  297. var appdd = grd_readapplist.valueMatrix(grd_readapplist.row, grd_readapplist.colRef("appdd"));
  298. fDownLoadFile( filepath, appno, appnm, appdd );
  299. }
  300. }
  301. else
  302. {
  303. fSearchDetail();
  304. }
  305. }
  306. /**
  307. * @group :
  308. * @ver : 2007.07
  309. * @by : 전지은
  310. * @---------------------------------------------------
  311. * @type : function
  312. * @access : public
  313. * @desc : FPT 서버에 저장한 파일을 다운로드 한다.
  314. * @param : idx
  315. * @return :
  316. * @---------------------------------------------------
  317. */
  318. function fDownLoadFile( filepath, appno, appnm, appdd )
  319. {
  320. /*
  321. model.makeNode("/root/temp/attachfile/filedata");
  322. var filenm = appno + "_" + appnm + "_" + appdd + ".jpg";
  323. var localfile = window.fileDialog("save","|",false,filenm,"","All Files(*.*)|*.*");
  324. if (localfile != "") {
  325. var url = getActionURL("TRMQP00605")+"&filepath="+filepath;
  326. model.download(url,localfile);
  327. var rtn = messageBox("파일을", "Q004");
  328. if( rtn == 6 ) {
  329. window.exec(localfile);
  330. }
  331. }*/
  332. model.makeNode("/root/temp/attachfile/filedata");
  333. var url = getActionURL("TRMQP00605")+"&filepath="+filepath;
  334. setParameter("SMMRI09000_param_scanimgyn", "Y");
  335. setParameter("SMMRI09000_param_scansrc", url);
  336. modal("SPMRI08100");
  337. setParameter("SMMRI09000_param_scanimgyn", "");
  338. setParameter("SMMRI09000_param_scansrc", "");
  339. }
  340. function fSrchStartStop()
  341. {
  342. var interval = model.getValue("/root/init/timer");
  343. if(interval <= 0){
  344. messageBox("Time이 0초인 상태로는 시작","E001");
  345. return;
  346. }
  347. if (btn_interval.attribute("text") == "자동조회"){
  348. btn_interval.attribute("text") = "수동조회";
  349. gCount = interval;
  350. model.refresh();
  351. gTimerID = window.setInterval( "fprnfstacpt();", 1000);
  352. } else {
  353. window.clearinterval(gTimerID);
  354. btn_interval.attribute("text") = "자동조회";
  355. model.refresh();
  356. }
  357. }
  358. var gTimerID;
  359. var gCount = 60;
  360. function fprnfstacpt()
  361. {
  362. if(gCount <= 0){
  363. window.clearinterval(gTimerID);
  364. fSearch();
  365. gCount = model.getValue("/root/init/timer");
  366. gTimerID = window.setInterval( "fprnfstacpt();", 1000);
  367. } else{
  368. gCount--;
  369. model.setValue("/root/init/interval", gCount);
  370. opt_interval.refresh();
  371. }
  372. }
  373. function fsaveGridToExcel(grdObj){
  374. var sTitle = "신청리스트_"+ getCurrentDate();
  375. var fileName = window.fileDialog("save", ",", false, sTitle, "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  376. if (fileName != ""){
  377. grdObj.saveExcel(fileName, sTitle, true, true, "", "", true);
  378. }
  379. }
  380. function mmbfGetHardCode(ref, rsltref, hardcd){
  381. var mmb_rsltref = "/root/hidden/mmb/hardcd";
  382. model.removeNode(mmb_rsltref);
  383. model.makeNode(mmb_rsltref);
  384. model.removeNode(ref);
  385. model.makeValue(ref + "/hardcd", hardcd);
  386. if(submit("TRMMB04103", "false", ref, mmb_rsltref)==true){
  387. model.copyNode(rsltref, mmb_rsltref);
  388. model.removeNode(mmb_rsltref);
  389. }
  390. model.refresh();
  391. }