SPMMO32000.js 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. //초기화
  2. function fInit() {
  3. var param = opener.javascript.getParameter("SPMMO32000_param");
  4. param = param.split("▦");
  5. model.setValue("/root/tmp/patinfo/pid", param[0]);
  6. model.setValue("/root/tmp/patinfo/orddd", param[1]);
  7. model.setValue("/root/tmp/patinfo/cretno", param[2]);
  8. model.setValue("/root/tmp/patinfo/visitno", param[3]);
  9. mmbfGetHardCodeInfoNm("/root/send/reqdata" , "/root/init/ercallno" , 7);
  10. submit("TRMNE05202"); //환자정보 가져옴
  11. var pid = model.getValue("/root/main/erpat/erpatinfo/pid");
  12. var nm = model.getValue("/root/main/erpat/erpatinfo/nm");
  13. var sa = model.getValue("/root/main/erpat/erpatinfo/sa");
  14. var indt = model.getValue("/root/main/erpat/erpatinfo/indt");
  15. var deptengabbr = model.getValue("/root/main/erpat/erpatinfo/deptengabbr");
  16. caption2.value = nm + "(" + pid + ") " + sa + " " + indt + " " + deptengabbr;
  17. //@부서정보 불러오기.
  18. var instcd = getUserInfo("dutplceinstcd");
  19. var standard_yn = "orduseyn";
  20. var ord_deptflag = 'D';
  21. var rslt_ref = "/root/init/orddeptinfo";
  22. var sort_field = "depthngnm";
  23. var sort_method = "asc";
  24. zbcfGetDeptCodeList(instcd, standard_yn, ord_deptflag, rslt_ref, sort_field, sort_method);
  25. model.setValue("/root/main/cond/callcnts", "응급실 환자 " + nm + "(" + pid + ")님 진료 바랍니다. ");
  26. model.setValue("/root/main/cond/callpsnno", model.getValue("/root/init/ercallno/hardcd/hardcd"));
  27. model.refresh();
  28. }
  29. //의사 스케쥴 체크
  30. function fChkErSheduleList(){
  31. model.makeValue("/root/send/deptchk/erorddeptcd",model.getValue("/root/main/cond/orddeptcd"));
  32. model.makeValue("/root/send/deptchk/deptpartinfo",model.getValue("/root/main/cond/deptpartinfo"));
  33. if(!submit("TRMMO31003")){
  34. messageBox('응급의사 스케쥴 조회를 실패하였습니다.', 'E');
  35. }
  36. var a = instance1.selectNodes("/root/temp/erorshedulchk/shedulchk");
  37. if(a.length == "0"){
  38. messageBox('해당부서에 응급호출 등록된 의사가 없습니다.', 'E999');
  39. }else{
  40. if(model.getValue("/root/temp/erorshedulchk/shedulchk/chkflag") != "-"){
  41. messageBox('주치의를 선택하십시오.', 'I');
  42. model.setFocus("cmb_erdr");
  43. }
  44. }
  45. }
  46. //20091104 dhkim
  47. //호출 유효성 체크
  48. function fIsValidErCallDr(params){
  49. var paramArr = params.split('|');
  50. var pid = paramArr[0];
  51. var indd = paramArr[1];
  52. var cretno = paramArr[2];
  53. var visitno = paramArr[3];
  54. var intm = paramArr[4];
  55. var erorddeptcd = paramArr[5];
  56. //환자정보가 없는경우
  57. if(pid == '' || indd == '' || cretno == '' || visitno == '' || intm == ''){
  58. messageBox('환자정보가 존재하지 않아 호출 할 수 없습니다.', 'E');
  59. return false;
  60. }
  61. //응급호출과를 선택하지 않은경우
  62. if(erorddeptcd == ""){
  63. messageBox('응급호출할 과를 선택하십시오.', 'E');
  64. return false;
  65. }
  66. return true;
  67. }
  68. /**
  69. /* 호출
  70. /* 수정이력 : 20091116 dhkim grtype구분자추가
  71. /* 수정이력 : 20100512 kimsj 호출자번호(연락처) 추가
  72. */
  73. function fErCallDr(){
  74. //주치의 선택
  75. var a = instance1.selectNodes("/root/temp/erorshedulchk/shedulchk");
  76. var b = model.getValue("/root/main/cond/ordrid");
  77. var flag = model.getValue("/root/temp/erorshedulchk/shedulchk/chkflag")
  78. if(a.length>0 && b==""&& flag != "-"){
  79. messageBox('주치의를 선택하십시오', 'E999');
  80. model.setFocus("cmb_erdr");
  81. return;
  82. }
  83. //환자정보
  84. var pid = model.getValue("/root/main/erpat/erpatinfo/pid");
  85. var indd = model.getValue("/root/main/erpat/erpatinfo/indd");
  86. var cretno = model.getValue("/root/main/erpat/erpatinfo/cretno");
  87. var visitno = model.getValue("/root/tmp/patinfo/visitno");
  88. var intm = model.getValue("/root/main/erpat/erpatinfo/intm");
  89. var patnm = model.getValue("/root/main/erpat/erpatinfo/nm");
  90. var erorddeptcd = model.getValue("/root/main/cond/orddeptcd");
  91. var callcnts = model.getValue("/root/main/cond/callcnts");
  92. var deptpartinfo = model.getValue("/root/main/cond/deptpartinfo");
  93. var callpsnno = model.getValue("/root/main/cond/callpsnno");
  94. //호출전 유효성체크
  95. var params = pid + '|'
  96. + indd + '|'
  97. + cretno + '|'
  98. + visitno + '|'
  99. + intm + '|'
  100. + erorddeptcd;
  101. if(!fIsValidErCallDr(params)) return;
  102. //해당과의 스케쥴 조회 및 의사호출
  103. model.makeValue("/root/send/reqdata/pid" , pid);
  104. model.makeValue("/root/send/reqdata/indd" , indd);
  105. model.makeValue("/root/send/reqdata/cretno" , cretno);
  106. model.makeValue("/root/send/reqdata/visitno" , visitno);
  107. model.makeValue("/root/send/reqdata/erorddeptcd" , erorddeptcd);
  108. model.makeValue("/root/send/reqdata/hngnm" , patnm);
  109. model.makeValue("/root/send/reqdata/callcnts" , callcnts);
  110. model.makeValue("/root/send/reqdata/deptpartinfo" , deptpartinfo);
  111. model.makeValue("/root/send/reqdata/callpsnno" , callpsnno);
  112. if(!submit("TRMMO31002")){
  113. messageBox('의사조회 실패하였습니다.', 'E');
  114. return;
  115. }
  116. var a = instance1.selectNodes("/root/temp/erorshedulelist/erorlist");
  117. if(a.length == "0"){
  118. messageBox('해당부서에 응급호출 등록된 의사가 없습니다.', 'E');
  119. return;
  120. }
  121. if(flag != "-"){
  122. model.setValue("/root/temp/erorshedulelist/erorlist[erorddoctcd='"+b+"']/mainyn","M");
  123. }
  124. if(submit("TXMMO31002")){
  125. messageBox('호출되었습니다.', 'I');
  126. }else{
  127. messageBox('호출 실패하였습니다.', 'E');
  128. }
  129. }
  130. function fGetDeptDetlFlag() {
  131. var ref = "/root/send";
  132. var rstRef = "/root/init/deptpartinfo";
  133. //var orddeptcd = model.getValue('/root/cond/orddeptcd');
  134. var orddeptcd = model.getValue('/root/main/cond/orddeptcd');
  135. model.makeValue("/root/send/orddeptcd", orddeptcd);
  136. model.removenode("/root/main/cond/deptpartinfo");
  137. var srchym = fGetToDaySchym();
  138. var srchymfirstday = srchym.concat("01");
  139. var srchymlastday = srchym.concat(fGetLastDay(srchym));
  140. model.makeValue("/root/send/srchymfirstday", srchymfirstday );
  141. model.makeValue("/root/send/srchymlastday ", srchymlastday );
  142. if( !submit("TRMMO30002", "false", ref, rstRef)){
  143. messageBox('진료과별 파트정보 조회를 실패하였습니다.', 'E999');
  144. cmb_deptdetlflag.refresh();
  145. return false;
  146. }
  147. model.makeNode("/root/main/cond/deptpartinfo");
  148. /*
  149. var nodeList = instance1.selectNodes('/root/init/deptpartinfo/partlist');
  150. if( nodeList.length <= 0 ){
  151. //alert( nodeList.length + " nodeList.length ");
  152. model.removenode("/root/send/deptpartinfo");
  153. cmb_partinfo.disabled="true";
  154. }
  155. else{
  156. cmb_partinfo.disabled ="false";
  157. messageBox('해당과의 파트정보를 입력해주십시오.', 'I');
  158. model.setFocus("cmb_deptdetlflag");
  159. }
  160. */
  161. // model.setValue("/root/cond/deptpartinfo", deptpartinfo );
  162. }
  163. // 부서 파트 정보가 있는지 체크
  164. // 부서 파트 정보가 있는데 파트 정보를 입력하지 않았을 경우 true리턴
  165. function fChkDeptDetlFlag(){
  166. var nodeList = instance1.selectNodes('/root/init/deptpartinfo/partlist');
  167. var deptdetlflag = model.getValue("/root/main/cond/deptpartinfo");
  168. //var orddeptnm = model.getValue("/root/cond/orddeptcd");
  169. if( nodeList.length > 0 && ( deptdetlflag == null || deptdetlflag =="") ){
  170. //messageBox(orddeptnm + "는 파트정보가", "I003");
  171. //model.removeNodeset("/root/main/workerinfo/workerinfolist");
  172. return true;
  173. }
  174. return false;
  175. }
  176. function fChkSelDeptDetlFlag(){
  177. //var selDeptDetlFlag = model.getValue("/root/cond/deptpartinfo");
  178. var nodeList = instance1.selectNodes('/root/init/deptpartinfo/partlist');
  179. if ( fChkDeptDetlFlag() ){
  180. //cmb_partinfo.select(0);
  181. cmb_partinfo.disabled="false";
  182. messageBox('파트정보를 선택하십시오.', 'I');
  183. model.setFocus("cmb_partinfo");
  184. }
  185. else if( nodeList.length > 0 ){
  186. cmb_partinfo.disabled="false";
  187. }
  188. else{
  189. cmb_partinfo.disabled="true";
  190. model.removenode("/root/main/cond/deptpartinfo");
  191. }
  192. }
  193. function fGetToDaySchym(){
  194. var today = new Date();
  195. var year = today.getFullYear();
  196. var month = today.getMonth()+1;
  197. year = year.toString();
  198. month = fAddZero(month);
  199. return year.concat(month.toString());
  200. }
  201. function fAddZero(n){
  202. return n < 10 ? "0" + n : n;
  203. }
  204. function fGetLastDay(mm){
  205. var dd = 31;
  206. switch(mm){
  207. case 4:
  208. case 6:
  209. case 9:
  210. case 11:
  211. dd = 30;
  212. break;
  213. case 2:
  214. if( (yyyy%4)==0 || (yyyy%100)==0){
  215. dd=29;
  216. }
  217. else{
  218. dd=28;
  219. }
  220. break;
  221. }
  222. return dd;
  223. }