SMMND01200.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445
  1. /*
  2. 유지환자관리 (SMMND01200.xrw - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. //** 전역변수 **//
  7. var i, d, s1="", s2="";
  8. /**
  9. * @group :
  10. * @ver : 2007.04.13
  11. * @by : 김진아
  12. * @---------------------------------------------------
  13. * @type : function
  14. * @access : public
  15. * @desc : 화면 초기화
  16. * @param :
  17. * @return :
  18. * @---------------------------------------------------
  19. */
  20. function fDone(){
  21. //** 상단환자 화면설정 **//
  22. /* var node = getGlobalVariable("paminfo");
  23. setCSVToNode("/root/temp/paminfo", node);
  24. if(getNodesetCount("/root/temp/paminfo/list") > 0) {
  25. var sSelPid = model.getValue("/root/temp/paminfo/list/pid"); // 등록번호
  26. model.setValue("/root/send/pid" , sSelPid);
  27. }
  28. */
  29. fSetSrchDate(); // 등록일자 조회기간 설정
  30. }
  31. /**
  32. * @group :
  33. * @ver : 2007.07.03
  34. * @by : 김진아
  35. * @---------------------------------------------------
  36. * @type : function
  37. * @access : public
  38. * @desc : 등록일자 조회기간 설정
  39. * @param :
  40. * @return :
  41. * @---------------------------------------------------
  42. */
  43. function fSetSrchDate(){
  44. var currentDate = getCurrentDate();
  45. model.makeValue("/root/main/cond/maintepatrgstdd1", ((currentDate.toDate()).getAddDate(-5, "Y")).getDateFormat()); // date.getAddDate(1, "Y")
  46. model.makeValue("/root/main/cond/maintepatrgstdd2", currentDate);
  47. model.setValue("/root/main/cond/matnflag" , "1");
  48. }
  49. /**
  50. * @group :
  51. * @ver : 2007.04.12
  52. * @by : 김진아
  53. * @---------------------------------------------------
  54. * @type : function
  55. * @access : public
  56. * @desc : dialhdmpglist 조회
  57. * @param :
  58. * @return :
  59. * @---------------------------------------------------
  60. */
  61. function fSelect_dialhdmpglist(){
  62. var sMatnFromDD = model.getValue("/root/main/cond/maintepatrgstdd1");
  63. var sMatnToDD = model.getValue("/root/main/cond/maintepatrgstdd2");
  64. if (sMatnFromDD == "" || sMatnToDD == "") {
  65. messageBox("등록일자가 입력되지", "E007", "다시 입력하십시오.");
  66. return;
  67. }
  68. // 조회기간 체크
  69. if(sMatnFromDD > sMatnToDD) {
  70. messageBox("예약일자 기간이 올바르지 않습니다.", "E");
  71. model.setValue("/root/main/cond/maintepatrgstdd1", s2);
  72. model.setValue("/root/main/cond/maintepatrgstdd2", s1);
  73. ipt_maintepatrgstdd1.refresh();
  74. ipt_maintepatrgstdd2.refresh();
  75. }
  76. model.removeNodeset("/root/send");
  77. model.makeNode("/root/send");
  78. model.makeValue("/root/send/matnflag ", model.getValue("/root/main/cond/matnflag "));
  79. model.makeValue("/root/send/dialflag ", model.getValue("/root/main/cond/dialflag "));
  80. model.makeValue("/root/send/hngnm ", model.getValue("/root/main/cond/hngnm "));
  81. model.makeValue("/root/send/pid ", model.getValue("/root/main/cond/pid "));
  82. model.makeValue("/root/send/maintepatrgstdd1", model.getValue("/root/main/cond/maintepatrgstdd1"));
  83. model.makeValue("/root/send/maintepatrgstdd2", model.getValue("/root/main/cond/maintepatrgstdd2"));
  84. model.makeValue("/root/send/allsearchyn", model.getValue("/root/main/cond/allsearchyn")); //20100401-kys-전체항목추가
  85. model.removeNodeset("/root/main/dialhdmpglist");
  86. submit("TRMND01201");
  87. //** 유지구분 [전환]일 경우 유지구분 항목 수정불가(readonly) **//
  88. for(var i=1; i<grd_dialhdmpglist.rows; i++){
  89. grd_dialhdmpglist.textmatrix(i,1) = ""; //상태값 초기화
  90. grd_dialhdmpglist.isReadOnly(i, 7) = false;
  91. if(model.getValue("/root/main/dialhdmpglist/dialhdmpginfo["+i+"]/matnflag") == "5"){
  92. grd_dialhdmpglist.isReadOnly(i, 7) = true;
  93. }
  94. }
  95. /*
  96. for(var i=1;i<=grd_dialhdmpglist.rows;i++){
  97. var histstat = grd_dialhdmpglist.textmatrix(i,19); //실제 환자의 입원/외래 상태(histstat)
  98. switch(histstat){
  99. case 'Y':
  100. grd_dialhdmpglist.textmatrix(i,19) = "I";
  101. break;
  102. case 'R':
  103. grd_dialhdmpglist.textmatrix(i,19) = "O";
  104. break;
  105. case 'T':
  106. grd_dialhdmpglist.textmatrix(i,19) = "O";
  107. }//end of switch
  108. }
  109. */
  110. }
  111. /**
  112. * @group :
  113. * @ver : 2007.04.12
  114. * @by : 김진아
  115. * @---------------------------------------------------
  116. * @type : function
  117. * @access : public
  118. * @desc : dialhdmpglist 엑셀저장
  119. * @param :
  120. * @return :
  121. * @---------------------------------------------------
  122. */
  123. function fSaveToExcel(){
  124. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  125. if (fileName != ""){
  126. grd_dialhdmpglist.saveExcel(fileName, "SheetName", true, true, "", "", false);
  127. }
  128. }
  129. /**
  130. * @group :
  131. * @ver : 2007.04.13
  132. * @by : 김진아
  133. * @---------------------------------------------------
  134. * @type : function
  135. * @access : public
  136. * @desc : dialhdmpglist 저장시
  137. * @param :
  138. * @return :
  139. * @---------------------------------------------------
  140. */
  141. function fSavelist(){
  142. //20090209 dhkim
  143. //소경화itc요청사항
  144. //저장전 유지구분이 전원/사망인 경우 out일을 필수입력한다.
  145. var matnflag = '';//유지구분
  146. var chnghospdd = ''; //Out일
  147. var grdStat = '';
  148. for(var i = 1; i <= grd_dialhdmpglist.rows; i++){
  149. grdStat = grd_dialhdmpglist.rowStatus(i);
  150. matnflag = model.getValue('/root/main/dialhdmpglist/dialhdmpginfo[' + i + ']/matnflag');
  151. chnghospdd = model.getValue('/root/main/dialhdmpglist/dialhdmpginfo[' + i + ']/chnghospdd');
  152. if(grdStat == 2){
  153. if((matnflag == '2' || matnflag == '3') && chnghospdd == ''){ //1 : 유지, 2: 전원, 3: 사망, 4: 신장이식, 5: 전환
  154. messageBox( i + '번째 환자의 Out일을 입력하세요.', 'E999');
  155. return false;
  156. }
  157. }
  158. }
  159. model.removenode("/root/send");
  160. model.makeNode ("/root/send");
  161. model.makeValue("/root/send/savedata",grd_dialhdmpglist.getupdatedataAll("i"));
  162. submit("TXMND01201");
  163. fSelect_dialhdmpglist(); //결과조회 함수호출
  164. }
  165. /**
  166. * @group :
  167. * @ver : 2007.04.13
  168. * @by : 김진아
  169. * @---------------------------------------------------
  170. * @type : function
  171. * @access : public
  172. * @desc : dialhdmpglist 행삭제 상태값 지정
  173. * @param :
  174. * @return :
  175. * @---------------------------------------------------
  176. */
  177. function fSetstatusDel(){
  178. var iRow = grd_dialhdmpglist.row;
  179. grd_dialhdmpglist.textmatrix(iRow,1) = "d"; //상태값 지정(delete)
  180. if(messageBox("", "Q001", "") == 6) { // 메세지박스 ("삭제 하시겠습니까?") (return : yes=6, no=7)
  181. fSavelist(); //저장함수 호출
  182. grd_dialhdmpglist.deleteitem(iRow); //화면상에서 행삭제
  183. fSelect_dialhdmpglist(); //결과조회 함수호출
  184. } else {
  185. return;
  186. }
  187. }
  188. /**
  189. * @group :
  190. * @ver : 2007.04.13
  191. * @by : 김진아
  192. * @---------------------------------------------------
  193. * @type : function
  194. * @access : public
  195. * @desc : dialhdmpglist 입력시 상태값 지정
  196. * @param :
  197. * @return :
  198. * @---------------------------------------------------
  199. */
  200. function fSetstatusUp(iRow, iCol, sMatnFlag, sDialFalgYN){
  201. if(grd_dialhdmpglist.textmatrix(iRow, iCol) != ""){
  202. if(iCol == 13){ // Out일
  203. if(sMatnFlag != 2 && sMatnFlag != 3){ //유지구분 : 전원, 사망이 아닐 때
  204. messageBox("[전원] 및 [사망]환자만 Out일 입력이", "I006", "유지구분을 확인하십시오.");
  205. grd_dialhdmpglist.textmatrix(iRow, iCol) = "";
  206. return;
  207. }
  208. }
  209. if(iCol == 14){ // 전원병원
  210. if(sMatnFlag != 2){ //유지구분 : 전원이 아닐 때
  211. messageBox("[전원]환자만 전원병원 입력이", "I006", "유지구분을 확인하십시오.");
  212. grd_dialhdmpglist.textmatrix(iRow, iCol) = "";
  213. return;
  214. }
  215. }
  216. }
  217. if(sDialFalgYN == "Y"){ // HD=>PD,PD=>HD로 투석구분 변경 시(기존투석구분의 유지구분 "전환"으로 update & 새로운투석구분의 유지구분 "유지"로 insert)
  218. grd_dialhdmpglist.textmatrix(iRow,1) = "ui"; //상태값 지정(update & insert)
  219. }else{ grd_dialhdmpglist.textmatrix(iRow,1) = "u"; //상태값 지정(update)
  220. }
  221. }
  222. /**
  223. * @group :
  224. * @ver : 2007.04.16
  225. * @by : 김진아
  226. * @---------------------------------------------------
  227. * @type : function
  228. * @access : public
  229. * @desc : 도관기록 PopUp호출
  230. * @param :
  231. * @return :
  232. * @---------------------------------------------------
  233. */
  234. function fPopup(){
  235. var iRow = grd_dialhdmpglist.row;
  236. var dFlag = grd_dialhdmpglist.valuematrix(iRow,5); // 투석구분
  237. var sMaintePatRgstDD = grd_dialhdmpglist.valuematrix(iRow,8); // 유지환자등록일자
  238. // 상단정보 설정
  239. fsetHngBaseInfo();
  240. // 도관기록 팝업
  241. model.makeValue("/root/main/paminfo/list/maintepatrgstdd", sMaintePatRgstDD);
  242. if(dFlag == "H"){ //HD
  243. modal("SMMND01300", "", 100, 100, "SMMND01300", "/root/main/paminfo/list", "/root/temp/paminfo");
  244. }else{ //PD
  245. modal("SMMND01400", "", 100, 100, "SMMND01400", "/root/main/paminfo/list", "/root/temp/paminfo");
  246. }
  247. }
  248. /**
  249. * @group :
  250. * @ver : 2007.05.22
  251. * @by : 김진아
  252. * @---------------------------------------------------
  253. * @type : function
  254. * @access : public
  255. * @desc : 화면상단 정보설정
  256. * @param :
  257. * @return :
  258. * @---------------------------------------------------
  259. */
  260. function fsetHngBaseInfo(){
  261. //**상단정보 초기화**//
  262. delPatientInfos(); //화면상단정보 삭제
  263. setGlobalVariable("paminfo", ""); //원무정보 reset
  264. if(getNodesetCount("/root/main/paminfo") > 0) {
  265. model.removeNodeset("/root/main/paminfo/list");
  266. }
  267. var iRow = grd_dialhdmpglist.row;
  268. // 상단 환자정보 parameter
  269. // var sIoflag = model.getValue("/root/main/dialhdmpglist/dialhdmpginfo[" + iRow + "]/histstat" ); //원무 입원외래구분(histstat)
  270. var sPid = model.getValue("/root/main/dialhdmpglist/dialhdmpginfo[" + iRow + "]/pid " ); //등록번호
  271. //20141110 kya 퇴원환자의 상단정보조회를 위해, 최종 입원일자를 가져옴
  272. var sIndd = model.getValue("/root/main/dialhdmpglist/dialhdmpginfo[" + iRow + "]/indd" ); //입원일자
  273. if ( sIndd == "") { //20151211 수정
  274. var isDate = getCurrentDate();
  275. isDate = isDate.toDate().getAddDate(1,'D');
  276. }else{
  277. var isDate = sIndd.toDate().getAddDate(1,'D');
  278. }
  279. var sRgstdd = isDate.getDateFormat("YYYYMMDD");
  280. // alert( "sIndd = " + sIndd + ", sRgstdd = " + sRgstdd);
  281. model.removenode("/root/send");
  282. model.makeNode ("/root/send");
  283. model.makeValue ("/root/send/reqdata/pid" , sPid );
  284. model.makeValue ("/root/send/reqdata/histstat", sIoflag);
  285. //20141110 kya 퇴원환자의 상단정보조회를 위해 추가함
  286. model.makeValue ("/root/send/reqdata/indd", sIndd);
  287. model.removeNodeset("/root/temp/gettoplist");
  288. submit("TRMND00103");
  289. var sCretno = model.getValue("/root/temp/gettoplist/gettopinfo/cretno" ); //생성번호
  290. var sSeqno = model.getValue("/root/temp/gettoplist/gettopinfo/seqno" ); //일련번호
  291. var sInstcd = model.getValue("/root/temp/gettoplist/gettopinfo/instcd" ); //기관코드
  292. var sIndd = model.getValue("/root/temp/gettoplist/gettopinfo/indd" ); //입원일자
  293. var sOrddd = model.getValue("/root/temp/gettoplist/gettopinfo/orddd" ); //진료일자
  294. var sAcptseqno = model.getValue("/root/temp/gettoplist/gettopinfo/acptseqno" ); //등록일련번호
  295. var sOrgorddd = model.getValue("/root/temp/gettoplist/gettopinfo/orgorddd" ); //원진료일자
  296. var sIoflag = model.getValue("/root/temp/gettoplist/gettopinfo/ioflag" ); //입원외래구분
  297. var sParam;
  298. if(sIoflag == "O") { //외래환자일 경우(histstat : "O")
  299. sParam = (sIoflag + "▦" + sPid + "▦" + sOrddd + "▦" + sCretno + "▦" + sInstcd + "▦" + sAcptseqno + "▦" + sOrgorddd );
  300. } else { //입원/응급환자일 경우(histstat : "I", "E")
  301. // 20141110 by kya 퇴원환자 조회를 위해 수정함
  302. // sParam = (sIoflag + "▦" + sPid + "▦" + sIndd + "▦" + sCretno + "▦" + sInstcd + "▦" );
  303. sParam = (sIoflag + "▦" + sPid + "▦" + sIndd + "▦" + sCretno + "▦" + sInstcd + "▦" + sRgstdd );
  304. }
  305. setParameter("condparam", sParam);
  306. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  307. var node = getGlobalVariable("paminfo");
  308. setCSVToNode("/root/main/paminfo", node);
  309. }
  310. /**
  311. * @group :
  312. * @ver : 2007.08.20
  313. * @by : 김진아
  314. * @---------------------------------------------------
  315. * @type : function
  316. * @access : public
  317. * @desc : 예약정보 존재여부 확인
  318. * @param :
  319. * @return :
  320. * @---------------------------------------------------
  321. */
  322. function fChkRsrvExistYN_bak(iRow, iCol){
  323. model.removeNodeset("/root/send");
  324. model.makevalue("/root/send/reqdata/pid" , model.getValue("/root/main/dialhdmpglist/dialhdmpginfo["+ iRow +"]/pid"));
  325. model.makevalue("/root/send/reqdata/dialflag" , model.getValue("/root/main/dialhdmpglist/dialhdmpginfo["+ iRow +"]/dialflag"));
  326. model.makevalue("/root/send/reqdata/maintepatrgstdd", model.getValue("/root/main/dialhdmpglist/dialhdmpginfo["+ iRow +"]/maintepatrgstdd"));
  327. if(iCol==7){ // 유지구분 변경시
  328. model.makevalue("/root/send/reqdata/srchflag", "Y");
  329. }else if(iCol==5){ // 투석구분 변경시
  330. model.makevalue("/root/send/reqdata/srchflag", "N");
  331. }
  332. model.removeNodeset("/root/main/chklist");
  333. submit("TRMND01202");
  334. //** 예약정보 존재여부에 따른 메세지 **//
  335. var sRsrvExistYN = model.getValue("/root/main/chklist/chkinfo/rsrvexistyn");
  336. var sDialFlag = model.getValue("/root/main/chklist/chkinfo/dialflag" );
  337. var sMatnFlag = model.getValue("/root/main/chklist/chkinfo/matnflag" );
  338. var sDmpgYN = model.getValue("/root/main/chklist/chkinfo/dmpgyn" );
  339. if(sRsrvExistYN == "Y") { // 예약정보 존재함
  340. var sDialFlagVal = "";
  341. switch(sDialFlag){
  342. case "H": sDialFlagVal = "HD"; break;
  343. case "P": sDialFlagVal = "PD"; break;
  344. default: sDialFlagVal = "-";
  345. }
  346. messageBox("해당환자의 ["+sDialFlagVal+"]예약정보가 존재합니다.", "I", "전환을 계속 진행하시려면 상단의 [저장]버튼을 누르십시오.");
  347. // fSelect_dialhdmpglist(); // 투석유지환자 리스트 조회
  348. return;
  349. }
  350. }
  351. /**
  352. * @group :
  353. * @ver : 2009.02.24
  354. * @by : 김양수
  355. * @---------------------------------------------------
  356. * @type : function
  357. * @access : public
  358. * @desc : 예약정보 존재여부 확인
  359. * @param :
  360. * @return :
  361. * @---------------------------------------------------
  362. */
  363. function fChkRsrvExistYN(iRow, iCol){
  364. model.removeNodeset("/root/send");
  365. model.makevalue("/root/send/reqdata/pid" , model.getValue("/root/main/dialhdmpglist/dialhdmpginfo["+ iRow +"]/pid"));
  366. model.makevalue("/root/send/reqdata/dialflag" , model.getValue("/root/main/dialhdmpglist/dialhdmpginfo["+ iRow +"]/dialflag"));
  367. model.makevalue("/root/send/reqdata/maintepatrgstdd", model.getValue("/root/main/dialhdmpglist/dialhdmpginfo["+ iRow +"]/maintepatrgstdd"));
  368. if(iCol==7){ // 유지구분 변경시
  369. model.makevalue("/root/send/reqdata/srchflag", "Y");
  370. //}else if(iCol==5){ // 투석구분 변경시
  371. // model.makevalue("/root/send/reqdata/srchflag", "N");
  372. }
  373. model.removeNodeset("/root/main/chklist");
  374. submit("TRMND01202");
  375. //** 예약정보 존재여부에 따른 메세지 **//
  376. var sRsrvExistYN = model.getValue("/root/main/chklist/chkinfo/rsrvexistyn");
  377. var sDialFlag = model.getValue("/root/main/chklist/chkinfo/dialflag" );
  378. var sMatnFlag = model.getValue("/root/main/chklist/chkinfo/matnflag" );
  379. var sDmpgYN = model.getValue("/root/main/chklist/chkinfo/dmpgyn" );
  380. if(sRsrvExistYN == "Y") { // 예약정보 존재함
  381. var sDialFlagVal = "";
  382. switch(sDialFlag){
  383. case "H": sDialFlagVal = "HD"; break;
  384. case "P": sDialFlagVal = "PD"; break;
  385. default: sDialFlagVal = "-";
  386. }
  387. messageBox("해당환자의 ["+sDialFlagVal+"]예약정보가 존재합니다.", "I")
  388. //미래예약일자 취소화면 호출
  389. var pid = model.getValue("/root/main/dialhdmpglist/dialhdmpginfo["+ iRow +"]/pid");
  390. var hngnm = model.getValue("/root/main/dialhdmpglist/dialhdmpginfo["+ iRow +"]/hngnm");
  391. var sa = model.getValue("/root/main/dialhdmpglist/dialhdmpginfo["+ iRow +"]/sexage");
  392. var dialflag = model.getValue("/root/main/dialhdmpglist/dialhdmpginfo["+ iRow +"]/dialflag");
  393. var patinfo = pid + "▦" + hngnm + "▦" + sa + "▦" + dialflag;
  394. setParameter("SMMND03700_patinfo" , patinfo);
  395. modal("SMMND03700");
  396. }
  397. }