SPMMO32000.xjs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[
  3. //초기화
  4. function fInit() {
  5. var param = opener.frmf_getParameter("SPMMO32000_param");
  6. param = param.split("▦");
  7. ds_tmp_patinfo.setColumn(0,"pid", param[0]);
  8. ds_tmp_patinfo.setColumn(0,"orddd", param[1]);
  9. ds_tmp_patinfo.setColumn(0,"cretno", param[2]);
  10. ds_tmp_patinfo.setColumn(0,"visitno", param[3]);
  11. ///mmbfGetHardCodeInfoNm("/root/send/reqdata" , "/root/init/ercallno" , 7);
  12. lf_getHardCDList("N", 7, null, ds_init_ercallno);
  13. var oParam = {};
  14. oParam.id = "TRMNE05202";
  15. oParam.service = "ercareapp.ERSmsCallBase";
  16. oParam.method = "reqGetErPatInfo";
  17. oParam.inds = "req=ds_tmp_patinfo";
  18. oParam.outds = "ds_erpatinfo=erpatinfo";
  19. oParam.async = false;
  20. oParam.callback = "cf_TRMNE05202";
  21. tranf_submit(oParam); //환자정보 가져옴
  22. var pid = ds_erpatinfo.getColumn(0,"pid");
  23. var nm = ds_erpatinfo.getColumn(0,"nm");
  24. var sa = ds_erpatinfo.getColumn(0,"sa");
  25. var indt = ds_erpatinfo.getColumn(0,"indt");
  26. var deptengabbr = ds_erpatinfo.getColumn(0,"deptengabbr");
  27. caption2.value = nm + "(" + pid + ") " + sa + " " + indt + " " + deptengabbr;
  28. //@부서정보 불러오기.
  29. var instcd = sysf_getUserInfo("dutplceinstcd");
  30. var standard_yn = "orduseyn";
  31. var ord_deptflag = "D";
  32. var sort_field = "depthngnm";
  33. var sort_method = "asc";
  34. //zbcfGetDeptCodeList(instcd, standard_yn, ord_deptflag, rslt_ref, sort_field, sort_method);
  35. appf_getDeptCodeList(instcd,standard_yn,ord_deptflag,sort_field,sort_method,"","","","ds_init_orddeptinfo",true,"");
  36. ds_cond.setColumn(0,"callcnts", "응급실 환자 " + nm + "(" + pid + ")님 진료 바랍니다. ");
  37. ds_cond.setColumn(0,"callpsnno", ds_init_ercallno.getColumn(0,"hardcd"));
  38. }
  39. function cf_TRMNE05202(sSvcId, nErrorCode, sErrorMsg) {
  40. if(nErrorCode < 0) return;
  41. }
  42. //의사 스케쥴 체크
  43. function fChkErSheduleList(){
  44. dsf_makeValue(ds_send_deptchk,"erorddeptcd","string",ds_cond.getColumn(0,"orddeptcd"));
  45. dsf_makeValue(ds_send_deptchk,"deptpartinfo","string",ds_cond.getColumn(0,"deptpartinfo"));
  46. var oParam = {};
  47. oParam.id = "TRMMO31003";
  48. oParam.service = "prcpmngtapp.ErMngt";
  49. oParam.method = "reqGetDrSheduleChk";
  50. oParam.inds = "req=ds_send_deptchk";
  51. oParam.outds = "ds_temp_erorshedulchk=shedulchk";
  52. oParam.async = false;
  53. oParam.callback = "cf_TRMMO31003";
  54. tranf_submit(oParam);
  55. if(arErrorCode.pop("TRMMO31003") < 0){
  56. sysf_messageBox("응급의사 스케쥴 조회를 실패하였습니다.", "E");
  57. }
  58. //var a = instance1.selectNodes("/root/temp/erorshedulchk/shedulchk");
  59. if(ds_temp_erorshedulchk.rowcount == 0){
  60. sysf_messageBox("해당부서에 응급호출 등록된 의사가 없습니다.", "E999");
  61. }else{
  62. if(ds_temp_erorshedulchk.getColumn(0,"chkflag") != "-"){
  63. sysf_messageBox("주치의를 선택하십시오.", "I");
  64. group1.cmb_erdr.setFocus();
  65. }
  66. }
  67. }
  68. function cf_TRMMO31003(sSvcId, nErrorCode, sErrorMsg) {
  69. arErrorCode.push(sSvcId, nErrorCode);
  70. }
  71. //20091104 dhkim
  72. //호출 유효성 체크
  73. function fIsValidErCallDr(params){
  74. var paramArr = params.split("|");
  75. var pid = paramArr[0];
  76. var indd = paramArr[1];
  77. var cretno = paramArr[2];
  78. var visitno = paramArr[3];
  79. var intm = paramArr[4];
  80. var erorddeptcd = paramArr[5];
  81. //환자정보가 없는경우
  82. if(utlf_isNull(pid) || utlf_isNull(indd)|| utlf_isNull(cretno) || utlf_isNull(visitno) || utlf_isNull(intm)){
  83. sysf_messageBox("환자정보가 존재하지 않아 호출 할 수 없습니다.", "E");
  84. return false;
  85. }
  86. //응급호출과를 선택하지 않은경우
  87. if(utlf_isNull(erorddeptcd)){
  88. sysf_messageBox("응급호출할 과를 선택하십시오.", "E");
  89. return false;
  90. }
  91. return true;
  92. }
  93. /**
  94. /* 호출
  95. /* 수정이력 : 20091116 dhkim grtype구분자추가
  96. /* 수정이력 : 20100512 kimsj 호출자번호(연락처) 추가
  97. */
  98. function fErCallDr(){
  99. //주치의 선택
  100. var a = instance1.selectNodes("/root/temp/erorshedulchk/shedulchk");
  101. var b = ds_cond.getColumn(0,"ordrid");
  102. var flag = ds_temp_erorshedulchk.getColumn(0,"chkflag") ;
  103. if(ds_temp_erorshedulchk.rowcount >0 && b==""&& flag != "-"){
  104. sysf_messageBox("주치의를 선택하십시오", "E999");
  105. group1.cmb_erdr.setFocus();
  106. return;
  107. }
  108. //환자정보
  109. var pid = ds_erpatinfo.getColumn(0,"pid");
  110. var indd = ds_erpatinfo.getColumn(0,"indd");
  111. var cretno = ds_erpatinfo.getColumn(0,"cretno");
  112. var visitno = ds_erpatinfo.getColumn(0,"visitno");
  113. var intm = ds_erpatinfo.getColumn(0,"intm");
  114. var patnm = ds_erpatinfo.getColumn(0,"nm");
  115. var erorddeptcd = ds_cond.getColumn(0,"orddeptcd");
  116. var callcnts = ds_cond.getColumn(0,"callcnts");
  117. var deptpartinfo = ds_cond.getColumn(0,"deptpartinfo");
  118. var callpsnno = ds_cond.getColumn(0,"callpsnno");
  119. //호출전 유효성체크
  120. var params = pid + "|"
  121. + indd + "|"
  122. + cretno + "|"
  123. + visitno + "|"
  124. + intm + "|"
  125. + erorddeptcd;
  126. if(!fIsValidErCallDr(params)) return;
  127. //해당과의 스케쥴 조회 및 의사호출
  128. ds_send.clear();
  129. dsf_makeValue(ds_send,"pid" , "string", pid);
  130. dsf_makeValue(ds_send,"indd" , "string", indd);
  131. dsf_makeValue(ds_send,"cretno" , "string", cretno);
  132. dsf_makeValue(ds_send,"visitno" , "string", visitno);
  133. dsf_makeValue(ds_send,"erorddeptcd" , "string", erorddeptcd);
  134. dsf_makeValue(ds_send,"hngnm" , "string", patnm);
  135. dsf_makeValue(ds_send,"callcnts" , "string", callcnts);
  136. dsf_makeValue(ds_send,"deptpartinfo" , "string", deptpartinfo);
  137. dsf_makeValue(ds_send,"callpsnno" , "string", callpsnno);
  138. dsf_setDefaultVal(ds_send, "deptpartinfo:1");
  139. var oParam = {};
  140. oParam.id = "TRMMO31002";
  141. oParam.service = "prcpmngtapp.ErMngt";
  142. oParam.method = "reqGetDrSheduleList";
  143. oParam.inds = "req=ds_send";
  144. oParam.outds = "ds_temp_erorshedulelist=erorlist";
  145. oParam.async = false;
  146. oParam.callback = "cf_TRMMO31002";
  147. tranf_submit(oParam);
  148. if(arErrorCode.pop("TRMMO31002") < 0){
  149. sysf_messageBox("의사조회 실패하였습니다.", "E");
  150. return;
  151. }
  152. var a = instance1.selectNodes("/root/temp/erorshedulelist/erorlist");
  153. if(ds_temp_erorshedulelist.rowcount == 0){
  154. sysf_messageBox("해당부서에 응급호출 등록된 의사가 없습니다.", "E");
  155. return;
  156. }
  157. if(flag != "-"){
  158. ds_temp_erorshedulelist.setColumn(ds_temp_erorshedulelist.findRowEXPR("erorddoctcd=='"+b+"'"),"mainyn","M");
  159. }
  160. var oParam = {};
  161. oParam.id = "TXMMO31002";
  162. oParam.service = "prcpmngtapp.ErMngt";
  163. oParam.method = "reqSetErDrCallVisit";
  164. oParam.inds = "req=ds_temp_erorshedulelist";
  165. oParam.outds = "";
  166. oParam.async = false;
  167. oParam.callback = "cf_TXMMO31002";
  168. tranf_submit(oParam);
  169. if(arErrorCode.pop("TXMMO31002") > -1){
  170. sysf_messageBox("호출되었습니다.", "I");
  171. }else{
  172. sysf_messageBox("호출 실패하였습니다.", "E");
  173. }
  174. }
  175. function cf_TRMMO31002(sSvcId, nErrorCode, sErrorMsg) {
  176. arErrorCode.push(sSvcId, nErrorCode);
  177. }
  178. function cf_TXMMO31002(sSvcId, nErrorCode, sErrorMsg) {
  179. arErrorCode.push(sSvcId, nErrorCode);
  180. }
  181. function fGetDeptDetlFlag() {
  182. //var ref = "/root/send";
  183. //var rstRef = "/root/init/deptpartinfo";
  184. //var orddeptcd = model.getValue('/root/cond/orddeptcd');
  185. var orddeptcd = ds_cond.getColumn(0,"orddeptcd");
  186. dsf_makeValue(ds_send,"orddeptcd", "string",orddeptcd);
  187. //model.removenode("/root/main/cond/deptpartinfo");
  188. group1.cmb_partinfo.index = -1;
  189. var srchym = fGetToDaySchym();
  190. var srchymfirstday = srchym.concat("01");
  191. var srchymlastday = srchym.concat(fGetLastDay(srchym));
  192. dsf_makeValue(ds_send,"srchymfirstday", "string",srchymfirstday );
  193. dsf_makeValue(ds_send,"srchymlastday ", "string",srchymlastday );
  194. var oParam = {};
  195. oParam.id = "TRMMO30002";
  196. oParam.service = "prcpmngtapp.ErMngt";
  197. oParam.method = "reqGetDeptDetlInfo";
  198. oParam.inds = "req=ds_send";
  199. oParam.outds = "ds_init_deptpartinfo=partlist";
  200. oParam.async = false;
  201. oParam.callback = "cf_TRMMO30002";
  202. tranf_submit(oParam);
  203. if( arErrorCode.pop("TRMMO30002") < 0){
  204. sysf_messageBox("진료과별 파트정보 조회를 실패하였습니다.", "E999");
  205. return false;
  206. }
  207. //model.makeNode("/root/main/cond/deptpartinfo");
  208. }
  209. function cf_TRMMO30002(sSvcId, nErrorCode, sErrorMsg) {
  210. arErrorCode.push(sSvcId, nErrorCode);
  211. }
  212. // 부서 파트 정보가 있는지 체크
  213. // 부서 파트 정보가 있는데 파트 정보를 입력하지 않았을 경우 true리턴
  214. function fChkDeptDetlFlag(){
  215. //var nodeList = instance1.selectNodes('/root/init/deptpartinfo/partlist');
  216. var deptdetlflag = ds_cond.getColumn(0,"deptpartinfo");
  217. //var orddeptnm = model.getValue("/root/cond/orddeptcd");
  218. if( ds_init_deptpartinfo.rowcount > 0 && ( utlf_isNull(deptdetlflag)) ){
  219. //messageBox(orddeptnm + "는 파트정보가", "I003");
  220. //model.removeNodeset("/root/main/workerinfo/workerinfolist");
  221. return true;
  222. }
  223. return false;
  224. }
  225. function fChkSelDeptDetlFlag(){
  226. //var selDeptDetlFlag = model.getValue("/root/cond/deptpartinfo");
  227. //var nodeList = instance1.selectNodes('/root/init/deptpartinfo/partlist');
  228. if ( fChkDeptDetlFlag() ){
  229. //cmb_partinfo.select(0);
  230. group1.cmb_partinfo.enable=true;
  231. sysf_messageBox("파트정보를 선택하십시오.", "I");
  232. group1.cmb_partinfo.setFocus();
  233. }
  234. else if( ds_init_deptpartinfo.rowcount > 0 ){
  235. group1.cmb_partinfo.enable=true;
  236. }
  237. else{
  238. group1.cmb_partinfo.enable=false;
  239. //model.removenode("/root/main/cond/deptpartinfo");
  240. group1.cmb_partinfo.index = -1;
  241. }
  242. }
  243. function fGetToDaySchym(){
  244. var today = new Date();
  245. var year = today.getFullYear();
  246. var month = today.getMonth()+1;
  247. year = year.toString();
  248. month = fAddZero(month);
  249. return year.concat(month.toString());
  250. }
  251. function fAddZero(n){
  252. return n < 10 ? "0" + n : n;
  253. }
  254. function fGetLastDay(mm){
  255. var dd = 31;
  256. switch(mm){
  257. case 4:
  258. case 6:
  259. case 9:
  260. case 11:
  261. dd = 30;
  262. break;
  263. case 2:
  264. if( (yyyy%4)==0 || (yyyy%100)==0){
  265. dd=29;
  266. }
  267. else{
  268. dd=28;
  269. }
  270. break;
  271. }
  272. return dd;
  273. }
  274. ]]></Script>