SPMMO06500.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. SPMMO06500_응급실호출현황 ( SPMMO06500_응급실호출현황.xrw - JScript )
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. */
  6. var sERCALLMNGT_PATH = "/root/main/ercallmngtinfo/ercallmngtlist";
  7. var sERCALLINPTBOX_PATH = "/root/main/ercallmngtiptbox";
  8. var paramcond;
  9. /**
  10. * @desc : 화면 초기화
  11. * @
  12. * @param :
  13. * @return :
  14. * @author : 오지훈
  15. * @---------------------------------------------------
  16. */
  17. function fInitialize_SPMMO06500(){
  18. model.removeNodeset(sERCALLMNGT_PATH);
  19. //zbcfGetDeptCodeList(getUserInfo("dutplceinstcd"), "orduseyn", "D", "/root/init/orddept" , "depthngnm"); //부서코드 콤보 조회
  20. //zsufGetUserInfoCombo(getUserInfo("dutplcecd"), "/root/init/userlist", "_D"); //의사(담당교수) 콤보조회
  21. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept", "D");
  22. mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist", getUserInfo("dutplcecd"), "0330");
  23. paramcond = opener.javascript.getParameter("SPMMO06500_param");
  24. paramcond = paramcond.split("▦");
  25. fReqERCallInfo(); //화면 open시 해당환자의 응급실 호출현황을 조회
  26. model.setValue(sERCALLINPTBOX_PATH + "/orddeptcd", getUserInfo("deptcd"));
  27. model.setValue(sERCALLINPTBOX_PATH + "/orddrid" , getUserInfo("userid"));
  28. model.refresh();
  29. }
  30. /**
  31. * @desc : 응급실 호출정보 추가
  32. * @
  33. * @param :
  34. * @return :
  35. * @author : 오지훈
  36. * @---------------------------------------------------
  37. */
  38. function fAddERCallInfo(){
  39. grd_ercallmngtlist.addItem();
  40. var currow = grd_ercallmngtlist.row;
  41. var orddeptcd = model.getValue(sERCALLINPTBOX_PATH + "/orddeptcd");
  42. var orddrid = model.getValue(sERCALLINPTBOX_PATH + "/orddrid");
  43. var mainsubflag = model.getValue(sERCALLINPTBOX_PATH + "/mainsubflag");
  44. var cp1 = model.getValue(sERCALLINPTBOX_PATH + "/cp1");
  45. var cp2 = model.getValue(sERCALLINPTBOX_PATH + "/cp2");
  46. var cp3 = model.getValue(sERCALLINPTBOX_PATH + "/cp3");
  47. var callcnts = model.getValue(sERCALLINPTBOX_PATH + "/callcnts");
  48. var calldispno = cp1 + "-" + cp2 + "-" + cp3;
  49. var callno = cp1 + cp2 + cp3;
  50. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/status" , "i");
  51. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/pid" , paramcond[0]);
  52. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/orddd" , paramcond[1]);
  53. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/cretno" , paramcond[2]);
  54. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/orddeptcd" , orddeptcd);
  55. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/orddrid" , orddrid);
  56. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/orddrnm" , cmb_chrgdr.label);
  57. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/mainsubflag", mainsubflag);
  58. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/calldispno" , calldispno);
  59. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/callrgstrid", getUserInfo("userid"));
  60. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/callrgstnm" , getUserInfo("usernm"));
  61. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/callno" , callno);
  62. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/callcnts" , callcnts);
  63. model.setValue(sERCALLINPTBOX_PATH + "/callcnts2" , callcnts);
  64. btn_add.disabled = false;
  65. btn_del.disabled = false;
  66. btn_save.disabled = false;
  67. btn_close.disabled = false;
  68. tar_callcnts.disabled = false;
  69. model.refresh();
  70. }
  71. /**
  72. * @desc : 응급실 호출관리 정보 저장
  73. * @
  74. * @param :
  75. * @return :
  76. * @author : 오지훈
  77. * @---------------------------------------------------
  78. */
  79. function fSaveERCallInfo(){
  80. var totrow = grd_ercallmngtlist.rows;
  81. var cnt = 0;
  82. for(var i = 0 ; i < totrow ; i++){
  83. var status = grd_ercallmngtlist.valueMatrix(i, grd_ercallmngtlist.colRef("status"));
  84. if(status == "i" || status == "u" || status =="d"){ //저장, 수정, 삭제할 정보가 없는 경우를 검사, 있는 경우 cnt +1처리
  85. cnt++;
  86. }
  87. }
  88. if(cnt == 0){ //cnt = 0 저장, 수정, 삭제할 정보가 없는 경우
  89. messageBox("저장할 의사 호출 정보가 ", "I004");
  90. return;
  91. }
  92. model.setValue("/root/send/savedata", grd_ercallmngtlist.getUpdateDataAll("i"));
  93. if(submit("TXMMO06501")){
  94. fReConCPhone();
  95. }
  96. model.copyNode("/root/temp/ercallmngtinfo", "/root/main/ercallmngtinfo"); //저장, 수정 검사를 위해 temp instance를 복사
  97. }
  98. /**
  99. * @desc : 응급실 호출관리 정보 조회
  100. * @
  101. * @param :
  102. * @return :
  103. * @author : 오지훈
  104. * @---------------------------------------------------
  105. */
  106. function fReqERCallInfo(){
  107. model.removeNodeset("/root/send/reqdata");
  108. model.makeValue("/root/send/reqdata/pid" , paramcond[0]);
  109. model.makeValue("/root/send/reqdata/orddd" , paramcond[1]);
  110. model.makeValue("/root/send/reqdata/cretno", paramcond[2]);
  111. if(submit("TRMMO06501")){
  112. fReConCPhone(); //조회 후 호출번호(핸드폰번호)의 길이에 따라 '-'를 처리한다.
  113. }
  114. model.copyNode("/root/temp/ercallmngtinfo", "/root/main/ercallmngtinfo"); //저장, 수정 검사를 위해 temp instance를 복사
  115. }
  116. /**
  117. * @desc : 응급실 호출관리 방문일자, 시간 설정
  118. * @
  119. * @param :
  120. * @return :
  121. * @author : 오지훈
  122. * @---------------------------------------------------
  123. */
  124. function fUpdtERCallVisitInfo(){
  125. var currow = grd_ercallmngtlist.row;
  126. if(currow < 1){
  127. return;
  128. }
  129. var status = model.getValue(sERCALLMNGT_PATH + "[" + currow + "]/status");
  130. if(status == "i"){
  131. messageBox("도착일자 설정은 호출 전에 할 수", "I004");
  132. return;
  133. }
  134. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/status" , "u");
  135. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/visitdd" , getCurrentDate());
  136. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/visittm" , getCurrentTime());
  137. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/visitdt" , getCurrentDate() + getCurrentTime());
  138. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/visitrgstrid" , getUserInfo("userid"));
  139. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/visitrgstnm" , getUserInfo("usernm"));
  140. model.refresh();
  141. }
  142. /**
  143. * @desc : DB에 저장된 핸드폰번호를 010 - XXXX - XXXX, 010 - XXX - XXXX로 처리
  144. * @
  145. * @param :
  146. * @return :
  147. * @author : 오지훈
  148. * @---------------------------------------------------
  149. */
  150. function fReConCPhone(){
  151. var totrow = grd_ercallmngtlist.rows;
  152. for(var currow = 1; currow < grd_ercallmngtlist.rows; currow++){
  153. var callno = model.getValue(sERCALLMNGT_PATH + "[" + currow + "]/callno");
  154. if(callno.length == 11){
  155. var calldispno = callno.substr(0, 3) + "-" + callno.substr(3, 4) + "-" + callno.substr(7, 4);
  156. }else if(callno.length == 10){
  157. var calldispno = callno.substr(0, 3) + "-" + callno.substr(3, 3) + "-" + callno.substr(6, 4);
  158. }
  159. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/calldispno" , calldispno);
  160. }
  161. model.refresh();
  162. }
  163. /**
  164. * @desc : 응급실 호출현황 grid클릭시 발생하는 event처리
  165. * @
  166. * @param :
  167. * @return :
  168. * @author : 오지훈
  169. * @---------------------------------------------------
  170. */
  171. function fChngMainSubFlag(){
  172. var currow = grd_ercallmngtlist.mouseRow;
  173. if(currow < 1){
  174. return;
  175. }
  176. //주부구분 컬럼 error로 신규 row를 다시 등록해야 하는 경우, update상태로 변경되는 것을 막는다.
  177. var status = model.getValue(sERCALLMNGT_PATH + "[" + currow + "]/status");
  178. if(status == "i"){
  179. return;
  180. }
  181. model.copyNode("/root/des/ercallmngtinfo", "/root/temp/ercallmngtinfo/ercallmngtlist[" + currow + "]");
  182. model.copyNode("/root/src/ercallmngtinfo", "/root/main/ercallmngtinfo/ercallmngtlist[" + currow + "]");
  183. model.setValue("/root/des/ercallmngtinfo/status", "-"); //status값은 비교하는데 제외하기 위해 '-'로 설정
  184. model.setValue("/root/src/ercallmngtinfo/status", "-");
  185. if(compareNodeVal("/root/des/ercallmngtinfo", "/root/src/ercallmngtinfo") == true){
  186. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/status", "u");
  187. }else{
  188. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/status", "-");
  189. }
  190. model.refresh();
  191. }
  192. /**
  193. * @desc : 응급실 호출관리 정보 삭제
  194. * @
  195. * @param :
  196. * @return :
  197. * @author : 오지훈
  198. * @---------------------------------------------------
  199. */
  200. function fDelERCallInfo(){
  201. var currow = grd_ercallmngtlist.row;
  202. if(currow < 1){
  203. return;
  204. }
  205. var status = model.getValue(sERCALLMNGT_PATH + "[" + currow + "]/status");
  206. if(status == "i"){
  207. grd_ercallmngtlist.deleteRow(currow);
  208. }else{
  209. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/status", "d");
  210. }
  211. model.refresh();
  212. }
  213. /**
  214. * @desc : 응급실 호출관리 추가버튼 클릭
  215. * @
  216. * @param :
  217. * @return :
  218. * @author : 오지훈
  219. * @---------------------------------------------------
  220. */
  221. function fClkAddBtn(){
  222. model.resetInstanceNode("/root/main/ercallmngtiptbox");
  223. group1.attribute("height") = 236;
  224. btn_add.disabled = true;
  225. btn_del.disabled = true;
  226. btn_save.disabled = true;
  227. btn_close.disabled= true;
  228. model.refresh();
  229. }
  230. /**
  231. * @desc : 응급실 호출관리 취소버튼 클릭
  232. * @
  233. * @param :
  234. * @return :
  235. * @author : 오지훈
  236. * @---------------------------------------------------
  237. */
  238. function fClkCnclBtn(){
  239. group1.attribute("height") = 0;
  240. btn_add.disabled = false;
  241. btn_del.disabled = false;
  242. btn_save.disabled = false;
  243. btn_close.disabled= false;
  244. model.refresh();
  245. }
  246. /**
  247. * @desc : 응급실 호출관리 호출내용 display
  248. * @
  249. * @param :
  250. * @return :
  251. * @author : 오지훈
  252. * @---------------------------------------------------
  253. */
  254. function fDispCallCnts(){
  255. var currow = grd_ercallmngtlist.row;
  256. if(currow < 1){
  257. return;
  258. }
  259. var status = model.getValue(sERCALLMNGT_PATH + "[" + currow + "]/status");
  260. var callcnts = model.getValue(sERCALLMNGT_PATH + "[" + currow + "]/callcnts");
  261. if(status == "i"){ //신규일 경우 textarea의 disabled 모드를 false상태로
  262. tar_callcnts.disabled = false;
  263. }else{
  264. tar_callcnts.disabled = true;
  265. }
  266. model.setValue("/root/main/ercallmngtiptbox/callcnts2", callcnts);
  267. model.refresh();
  268. }
  269. /**
  270. * @desc : 응급실 호출관리 호출내용 수정
  271. * @
  272. * @param :
  273. * @return :
  274. * @author : 오지훈
  275. * @---------------------------------------------------
  276. */
  277. function fUpdtERCallCnts(currow){
  278. model.setValue(sERCALLMNGT_PATH + "[" + currow + "]/callcnts", tar_callcnts.currentText);
  279. model.setFocus("grd_ercallmngtlist");
  280. model.refresh();
  281. }
  282. /**
  283. * @desc : 의사전화번호 조회
  284. * @
  285. * @param :
  286. * @return :
  287. * @author : 오지훈
  288. * @---------------------------------------------------
  289. */
  290. function fReqDrPhonNo(){
  291. model.removeNodeset("/root/send/reqdata");
  292. model.setValue("/root/send/reqdata/userid", cmb_chrgdr.value);
  293. submit("TRMMO06502");
  294. }