SMMMO05900.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 수술방배정 ( SMMMO05900_수술방배정.xrw - JScript )
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. */
  6. var sASSGNDATA_PATH = "/root/temp/assgndata";
  7. var gSTATUS = ""; //신규등록:i, 수정:u
  8. var gANSTDEPT_CD = "";
  9. /**
  10. * @desc : 수술방배정
  11. * @
  12. * @param :
  13. * @return :
  14. * @author : 오지훈
  15. * @---------------------------------------------------
  16. */
  17. function fInitialize_SMMMO05900(){
  18. model.setValue("/root/main/assgninfo/appstartdd", getCurrentDate());
  19. model.setValue("/root/main/cond/stnddd" , getCurrentDate());
  20. model.setValue("/root/main/cond/fromdd" , getCurrentDate());
  21. model.setValue("/root/main/cond/todd" , "99991231");
  22. reqOpRoomList(getCurrentDate(), "/root/init/oproomlist", "total"); //전체 수술실 조회
  23. addComboInstance("/root/init/oproomlist", "oproomcd^oproomnm", "-^전체", "oproomlist"); //수술방 콤보 전체instance 추가
  24. model.setValue("/root/main/cond/oproomcd" , "-");
  25. zbcfGetDeptCodeList(getUserInfo("dutplceinstcd"), "orduseyn", "D", "/root/init/orddept", "depthngnm"); //부서코드 콤보 조회
  26. addComboInstance("/root/init/orddept", "deptcd^depthngnm", "-^전체", "dept"); //집도가 콤보 전체instance 추가
  27. model.removeNodeset("/root/main/assgnhist/assgnhist");
  28. model.removeNodeset("/root/main/assgnlist/assgnlist");
  29. //마취통증의학과
  30. reqHardCodeInfo("/root/send/reqdata", "/root/init/hardcd", 18);
  31. gANSTDEPT_CD = model.getValue("/root/init/hardcd/hardcd/hardcd");
  32. fReqOpRoomAssgnHistInfo();
  33. fReqOpRoomAssgnInfo();
  34. model.refresh();
  35. }
  36. /**
  37. * @desc : 수술방 배정 정보 등록
  38. * @
  39. * @param :
  40. * @return :
  41. * @author : 오지훈
  42. * @---------------------------------------------------
  43. */
  44. function fInsOpRoomAssgnInfo(){
  45. if(gANSTDEPT_CD == getUserInfo("dutplcecd") || getUserInfo("userid") == "EMR"){
  46. model.resetInstanceNode(sASSGNDATA_PATH);
  47. group1.attribute("height") = 175;
  48. caption16.attribute("text")= "수술방 배정 등록";
  49. model.setValue(sASSGNDATA_PATH + "/appstartdd", getCurrentDate());
  50. model.setValue(sASSGNDATA_PATH + "/appenddd" , "99991231");
  51. model.refresh();
  52. gSTATUS = "i";
  53. }else{
  54. messageBox("수술방 배정", "E002");
  55. return;
  56. }
  57. }
  58. /**
  59. * @desc : 수술방 배정 정보 저장
  60. * @
  61. * @param :
  62. * @return :
  63. * @author : 오지훈
  64. * @---------------------------------------------------
  65. */
  66. function fClkBtnCnfm(){
  67. if(fChkValidSaveData() == false){ //저장정보 유효성 검사
  68. return;
  69. }
  70. var cnt = 0;
  71. var savedata = "status▦oproomcd▦appenddd▦appstartdd▦usescheflag▦usedwflag▦perfdeptcd▦perfdrid▦perfdrid2▦orgappenddd▩";
  72. if(gSTATUS == "i"){ //신규등록인 경우
  73. var selectCellInfo = grd_assgnlist.selectedCells;
  74. for(var i = 0; i < selectCellInfo.length; i++){
  75. var row = grd_assgnlist.selectedCells.item(i).row;
  76. var col = grd_assgnlist.selectedCells.item(i).col;
  77. if(col == 5 || col == 10 || col == 15 || col == 19 || col == 24 || col == 29){
  78. var oproomcd = grd_assgnlist.valueMatrix(row, grd_assgnlist.colRef("oproomcd"));
  79. var usescheflag = grd_assgnlist.valueMatrix(row, grd_assgnlist.colRef("usescheflag"));
  80. var usedwflag = grd_assgnlist.valueMatrix(0 , col);
  81. switch(usedwflag){
  82. case "월" : var usedwflag = 2;var orgappenddd = grd_assgnlist.valueMatrix(grd_assgnlist.row, grd_assgnlist.colRef("monappenddd")); break;
  83. case "화" : var usedwflag = 3;var orgappenddd = grd_assgnlist.valueMatrix(grd_assgnlist.row, grd_assgnlist.colRef("tueappenddd")); break;
  84. case "수" : var usedwflag = 4;var orgappenddd = grd_assgnlist.valueMatrix(grd_assgnlist.row, grd_assgnlist.colRef("wedappenddd")); break;
  85. case "목" : var usedwflag = 5;var orgappenddd = grd_assgnlist.valueMatrix(grd_assgnlist.row, grd_assgnlist.colRef("thuappenddd")); break;
  86. case "금" : var usedwflag = 6;var orgappenddd = grd_assgnlist.valueMatrix(grd_assgnlist.row, grd_assgnlist.colRef("friappenddd")); break;
  87. case "토" : var usedwflag = 7;var orgappenddd = grd_assgnlist.valueMatrix(grd_assgnlist.row, grd_assgnlist.colRef("satappenddd")); break;
  88. }
  89. if(orgappenddd != "") { continue; } //적용종료일자가 있는 경우, 신규저장이 아니다. skip한다.
  90. var appstartdd = model.getValue(sASSGNDATA_PATH + "/appstartdd");
  91. var appenddd = model.getValue(sASSGNDATA_PATH + "/appenddd");
  92. var perfdeptcd = model.getValue(sASSGNDATA_PATH + "/perfdeptcd");
  93. var perfdrid = model.getValue(sASSGNDATA_PATH + "/perfdrid");
  94. var perfdrid2 = model.getValue(sASSGNDATA_PATH + "/perfdrid2");
  95. cnt++;
  96. var status = "i";
  97. savedata += status + "▦" +
  98. oproomcd + "▦" +
  99. appenddd + "▦" +
  100. appstartdd + "▦" +
  101. usescheflag + "▦" +
  102. usedwflag + "▦" +
  103. perfdeptcd + "▦" +
  104. perfdrid + "▦" +
  105. perfdrid2 + "▦" +
  106. appenddd + "▩";
  107. }
  108. }
  109. if(cnt == 0){
  110. messageBox("저장할 정보가", "I004");
  111. group1.attribute("height")=0;
  112. return;
  113. }else{
  114. model.removeNodeset("/root/send/savedata");
  115. model.makeValue("/root/send/savedata", savedata);
  116. if(submit("TXMMO05901")==true){
  117. group1.attribute("height") = 0;
  118. }
  119. }
  120. model.refresh();
  121. }else if(gSTATUS == "u"){ //수정인 경우
  122. var selectCellInfo = grd_assgnlist.selectedCells;
  123. for(var i = 0; i < selectCellInfo.length; i++){
  124. var row = grd_assgnlist.selectedCells.item(i).row;
  125. var col = grd_assgnlist.selectedCells.item(i).col;
  126. if(col == 5 || col == 10 || col == 15 || col == 19 || col == 24 || col == 29){
  127. var oproomcd = grd_assgnlist.valueMatrix(row, grd_assgnlist.colRef("oproomcd"));
  128. var usescheflag = grd_assgnlist.valueMatrix(row, grd_assgnlist.colRef("usescheflag"));
  129. var usedwflag = grd_assgnlist.valueMatrix(0 , col);
  130. switch(usedwflag){
  131. case "월" : var usedwflag = 2;var orgappenddd = grd_assgnlist.valueMatrix(grd_assgnlist.row, grd_assgnlist.colRef("monappenddd")); break;
  132. case "화" : var usedwflag = 3;var orgappenddd = grd_assgnlist.valueMatrix(grd_assgnlist.row, grd_assgnlist.colRef("tueappenddd")); break;
  133. case "수" : var usedwflag = 4;var orgappenddd = grd_assgnlist.valueMatrix(grd_assgnlist.row, grd_assgnlist.colRef("wedappenddd")); break;
  134. case "목" : var usedwflag = 5;var orgappenddd = grd_assgnlist.valueMatrix(grd_assgnlist.row, grd_assgnlist.colRef("thuappenddd")); break;
  135. case "금" : var usedwflag = 6;var orgappenddd = grd_assgnlist.valueMatrix(grd_assgnlist.row, grd_assgnlist.colRef("friappenddd")); break;
  136. case "토" : var usedwflag = 7;var orgappenddd = grd_assgnlist.valueMatrix(grd_assgnlist.row, grd_assgnlist.colRef("satappenddd")); break;
  137. }
  138. if(orgappenddd == "") { continue; } //적용종료일자가 없는 경우, 수정이 아니다. skip한다.
  139. var appstartdd = model.getValue(sASSGNDATA_PATH + "/appstartdd");
  140. var appenddd = model.getValue(sASSGNDATA_PATH + "/appenddd");
  141. var perfdeptcd = model.getValue(sASSGNDATA_PATH + "/perfdeptcd");
  142. var perfdrid = model.getValue(sASSGNDATA_PATH + "/perfdrid");
  143. var perfdrid2 = model.getValue(sASSGNDATA_PATH + "/perfdrid2");
  144. cnt++;
  145. var status = "u";
  146. savedata += status + "▦" +
  147. oproomcd + "▦" +
  148. appenddd + "▦" +
  149. appstartdd + "▦" +
  150. usescheflag + "▦" +
  151. usedwflag + "▦" +
  152. perfdeptcd + "▦" +
  153. perfdrid + "▦" +
  154. perfdrid2 + "▦" +
  155. orgappenddd + "▩";
  156. }
  157. }
  158. if(cnt == 0){
  159. messageBox("수정할 정보가", "I004");
  160. group1.attribute("height")=0;
  161. return;
  162. }else{
  163. model.removeNodeset("/root/send/savedata");
  164. model.makeValue("/root/send/savedata", savedata);
  165. if(submit("TXMMO05901")==true){
  166. group1.attribute("height") = 0;
  167. }
  168. }
  169. model.refresh();
  170. }
  171. }
  172. /**
  173. * @desc : 저장 버튼 클릭
  174. * @
  175. * @param :
  176. * @return :
  177. * @author : 오지훈
  178. * @---------------------------------------------------
  179. */
  180. function fClkBtnSave(){
  181. var oproomcd = model.getValue("/root/main/assgninfo/oproomcd");
  182. var appenddd = model.getValue("/root/main/assgninfo/appenddd");
  183. var appstartdd = model.getValue("/root/main/assgninfo/appstartdd");
  184. var usescheflag= model.getValue("/root/main/assgninfo/usescheflag");
  185. var usedwflag = model.getValue("/root/main/assgninfo/usedwflag");
  186. var perfdeptcd = model.getValue("/root/main/assgninfo/perfdeptcd");
  187. var perfdrid = model.getValue("/root/main/assgninfo/perfdrid");
  188. var perfdrid2 = model.getValue("/root/main/assgninfo/perfdrid2");
  189. savedata = "status▦oproomcd▦appenddd▦appstartdd▦usescheflag▦usedwflag▦perfdeptcd▦perfdrid▦perfdrid2▩";
  190. savedata += "i" + "▦" +
  191. oproomcd + "▦" +
  192. appenddd + "▦" +
  193. appstartdd + "▦" +
  194. usescheflag + "▦" +
  195. usedwflag + "▦" +
  196. perfdeptcd + "▦" +
  197. perfdrid + "▦" +
  198. perfdrid2 + "▩";
  199. submit("TXMMO05901");
  200. }
  201. /**
  202. * @desc : 수술방 배정 정보 수정
  203. * @
  204. * @param :
  205. * @return :
  206. * @author : 오지훈
  207. * @---------------------------------------------------
  208. */
  209. function fUpdtOpRoomAssgnInfo(){
  210. if(gANSTDEPT_CD != getUserInfo("dutplcecd")){
  211. messageBox("수술방 배정 ", "E002");
  212. return;
  213. }
  214. model.resetInstanceNode(sASSGNDATA_PATH);
  215. model.refresh();
  216. group1.attribute("height") = 175;
  217. caption16.attribute("text")= "수술방 배정 수정";
  218. model.setValue(sASSGNDATA_PATH + "/appstartdd", getCurrentDate());
  219. model.setValue(sASSGNDATA_PATH + "/appenddd" , "99991231");
  220. model.refresh();
  221. gSTATUS = "u";
  222. }
  223. /**
  224. * @desc : 수술방 배정 정보현황 조회
  225. * @
  226. * @param :
  227. * @return :
  228. * @author : 오지훈
  229. * @---------------------------------------------------
  230. */
  231. function fReqOpRoomAssgnInfo(){
  232. model.removeNodeset("/root/send/reqdata");
  233. model.makeValue("/root/send/reqdata/stnddd", model.getValue("/root/main/cond/stnddd"));
  234. submit("TRMMO05901");
  235. }
  236. /**
  237. * @desc : 수술방 배정 이력 조회
  238. * @
  239. * @param :
  240. * @return :
  241. * @author : 오지훈
  242. * @---------------------------------------------------
  243. */
  244. function fReqOpRoomAssgnHistInfo(){
  245. model.copyNode("/root/send/reqdata", "/root/main/cond");
  246. submit("TRMMO05902");
  247. }
  248. /**
  249. * @desc : 저장 정보 유효성 검사
  250. * @
  251. * @param :
  252. * @return :
  253. * @author : 오지훈
  254. * @---------------------------------------------------
  255. */
  256. function fChkValidSaveData(){
  257. var perfdeptcd = cmb_assgnperfdept.label;
  258. var perfdrid = cmb_assgnperfdrid.label;
  259. var perfdrid2 = cmb_assgnperfdrid2.label;
  260. if(perfdeptcd.length < 1){
  261. messageBox("집도과를", "C002");
  262. return false;
  263. }
  264. if(perfdrid.length < 1){
  265. messageBox("집도의를", "C002");
  266. return false;
  267. }
  268. if(perfdrid2.length < 1){
  269. messageBox("집도의2를", "C002");
  270. return false;
  271. }
  272. return true;
  273. }
  274. /**
  275. * @desc : 수술방 배정 정보 취소(삭제)
  276. * @
  277. * @param :
  278. * @return :
  279. * @author : 오지훈
  280. * @---------------------------------------------------
  281. */
  282. function fCnclOpRoomAssgnInfo(){
  283. var savedata = "status▦oproomcd▦appenddd▦appstartdd▦usescheflag▦usedwflag▦perfdeptcd▦perfdrid▦perfdrid2▦orgappenddd▩";
  284. var selectCellInfo = grd_assgnlist.selectedCells;
  285. for(var i = 0; i < selectCellInfo.length; i++){
  286. var row = grd_assgnlist.selectedCells.item(i).row;
  287. var col = grd_assgnlist.selectedCells.item(i).col;
  288. if(col == 5 || col == 10 || col == 15 || col == 19 || col == 24 || col == 29){
  289. var oproomcd = grd_assgnlist.valueMatrix(row, grd_assgnlist.colRef("oproomcd"));
  290. var usescheflag = grd_assgnlist.valueMatrix(row, grd_assgnlist.colRef("usescheflag"));
  291. var usedwflag = grd_assgnlist.valueMatrix(0 , col);
  292. switch(usedwflag){
  293. case "월" : var usedwflag = 2;var orgappenddd = grd_assgnlist.valueMatrix(grd_assgnlist.row, grd_assgnlist.colRef("monappenddd")); break;
  294. case "화" : var usedwflag = 3;var orgappenddd = grd_assgnlist.valueMatrix(grd_assgnlist.row, grd_assgnlist.colRef("tueappenddd")); break;
  295. case "수" : var usedwflag = 4;var orgappenddd = grd_assgnlist.valueMatrix(grd_assgnlist.row, grd_assgnlist.colRef("wedappenddd")); break;
  296. case "목" : var usedwflag = 5;var orgappenddd = grd_assgnlist.valueMatrix(grd_assgnlist.row, grd_assgnlist.colRef("thuappenddd")); break;
  297. case "금" : var usedwflag = 6;var orgappenddd = grd_assgnlist.valueMatrix(grd_assgnlist.row, grd_assgnlist.colRef("friappenddd")); break;
  298. case "토" : var usedwflag = 7;var orgappenddd = grd_assgnlist.valueMatrix(grd_assgnlist.row, grd_assgnlist.colRef("satappenddd")); break;
  299. }
  300. if(orgappenddd == "") { continue; } //적용종료일자가 없는 경우,
  301. var appstartdd = model.getValue(sASSGNDATA_PATH + "/appstartdd");
  302. var appenddd = model.getValue(sASSGNDATA_PATH + "/appenddd");
  303. var perfdeptcd = model.getValue(sASSGNDATA_PATH + "/perfdeptcd");
  304. var perfdrid = model.getValue(sASSGNDATA_PATH + "/perfdrid");
  305. var perfdrid2 = model.getValue(sASSGNDATA_PATH + "/perfdrid2");
  306. var status = "d";
  307. savedata += status + "▦" +
  308. oproomcd + "▦" +
  309. appenddd + "▦" +
  310. appstartdd + "▦" +
  311. usescheflag + "▦" +
  312. usedwflag + "▦" +
  313. perfdeptcd + "▦" +
  314. perfdrid + "▦" +
  315. perfdrid2 + "▦" +
  316. orgappenddd + "▩";
  317. }
  318. }
  319. model.removeNodeset("/root/send/savedata");
  320. model.makeValue("/root/send/savedata", savedata);
  321. if(submit("TXMMO05901")==true){
  322. }
  323. model.refresh();
  324. }