SMMMB02100.js 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 지시처방코드관리 ( SMMMB02100_지시처방코드관리.xrw - JScript )
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. */
  6. var sORDPRCPCDLIST_PATH = "/root/main/ordprcpcdlist/ordprcpcdlist";
  7. var sORDPRCPCDINFO_PATH = "/root/main/ordprcpcdinfo/ordprcpcdinfo";
  8. var sORDPRCPCDCOND_PATH = "/root/main/cond";
  9. /**
  10. * @desc : 화면 초기화
  11. * @
  12. * @param :
  13. * @event :
  14. * @return :
  15. * @author : 오지훈
  16. * @---------------------------------------------------
  17. */
  18. function fInitialize_SMMMB02100(){
  19. var paramcond = opener.javascript.getParameter("SMMMB02300_param");
  20. if(paramcond.length > 1){
  21. paramcond = paramcond.split("▦");
  22. model.setValue(sORDPRCPCDCOND_PATH + "/currentdd", paramcond[1]);
  23. fReqOrdPrcpCD();
  24. var curRow = grd_ordprcpcdlist.findRow(paramcond[0], 1, 0);
  25. fDispOrdPrcpDetl(curRow);
  26. }else{
  27. model.removeNodeset(sORDPRCPCDLIST_PATH);
  28. }
  29. zbcfGetCodeList(new Array("M0005"), new Array("/root/init/M0005"));
  30. zbcfGetDeptCodeList(getUserInfo("dutplceinstcd"), "insuuseyn", "", "/root/init/orddept" , "depthngnm"); //부서코드 콤보 조회
  31. var stnddd = ((getCurrentDate().toDate()).getAddDate(1)).getDateFormat(); //기준일자를 현재일에 하루를 더한 날짜로 설정
  32. model.setValue("/root/init/today", stnddd);
  33. model.setValue(sORDPRCPCDCOND_PATH + "/currentdd", model.getValue("/root/init/today"));
  34. model.refresh();
  35. }
  36. /**
  37. * @desc : 지시처방 신규 등록
  38. * @
  39. * @param :
  40. * @event : 버튼(btn_new)의 DOMActive
  41. * @return :
  42. * @author : 오지훈
  43. * @---------------------------------------------------
  44. */
  45. function fRgstNewOrdPrcpCD(){
  46. fInitOrdPrcpCD(); //지시처방
  47. var fromdd = model.getValue("/root/init/today");
  48. model.setValue(sORDPRCPCDINFO_PATH + "/fromdd", fromdd);
  49. model.setValue(sORDPRCPCDINFO_PATH + "/todd" , "99991231");
  50. model.setValue(sORDPRCPCDINFO_PATH + "/status", "i");
  51. model.setFocus("ipt_prcpnm");
  52. model.refresh();
  53. }
  54. /**
  55. * @desc : 지시처방화면 입력 및 버튼 활성화 및 비활성화 조정
  56. * @
  57. * @param : boolflag : true 비활성화, false 활성화
  58. * @return :
  59. * @author : 오지훈
  60. * @---------------------------------------------------
  61. */
  62. function fCtrlDisabled(boolflag){
  63. ipt_prcpnm.disabled = boolflag;
  64. cmb_grupsnglflag.disabled = boolflag;
  65. cmb_prcpinptflag.disabled = boolflag;
  66. cmb_prcpuseflag.disabled = boolflag;
  67. }
  68. /**
  69. * @desc : 지시처방 저장
  70. * @
  71. * @param :
  72. * @event : 버튼(btn_save)의 DOMActive
  73. * @return :
  74. * @author : 오지훈
  75. * @---------------------------------------------------
  76. */
  77. function fSaveOrdPrcpCD(){
  78. var status = model.getValue(sORDPRCPCDINFO_PATH + "/status");
  79. var prcpcd = model.getValue(sORDPRCPCDINFO_PATH + "/prcpcd");
  80. var prcpnm = model.getValue(sORDPRCPCDINFO_PATH + "/prcpnm");
  81. if(status != "i"){
  82. if(compareNodeVal("/root/main/ordprcpcdinfo/ordprcpcdinfo", "/root/temp/ordprcpcdinfo/ordprcpcdlist") == true){
  83. model.setValue(sORDPRCPCDINFO_PATH + "/status", "u");
  84. //수정할 내용이 있는 경우
  85. }else{
  86. messageBox("저장할 내역이 ", "I004");
  87. return;
  88. }
  89. }
  90. var nodelist = instance1.selectNodes(sORDPRCPCDINFO_PATH);
  91. var condlist = instance1.selectNodes("/root/main/cond");
  92. model.removeNodeset("/root/send/savedata");
  93. model.makeValue("/root/send/savedata/save", getNodeListCSV(nodelist));
  94. model.makeValue("/root/send/savedata/cond", getNodeListCSV(condlist));
  95. submit("TXMMB02101");
  96. model.resetInstanceNode(sORDPRCPCDINFO_PATH);
  97. model.refresh();
  98. }
  99. /**
  100. * @desc : 지시처방 조회
  101. * @
  102. * @param :
  103. * @event : 버튼(btn_req)의 DOMActive
  104. * @return :
  105. * @author : 오지훈
  106. * @---------------------------------------------------
  107. */
  108. function fReqOrdPrcpCD(){
  109. model.copyNode("/root/send/reqdata", "/root/main/cond");
  110. submit("TRMMB02101");
  111. model.resetInstanceNode(sORDPRCPCDINFO_PATH);
  112. }
  113. /**
  114. * @desc : 지시처방코드 내역 상세 보기
  115. * @
  116. * @param : iRow
  117. * @event : 그리드(grd_ordprcpcdlist)의 click시 발생
  118. * @return :
  119. * @author : 오지훈
  120. * @---------------------------------------------------
  121. */
  122. function fDispOrdPrcpDetl(iRow){
  123. fMakePrcpClsNm(iRow); //지시처방분류명 Setting
  124. model.copyNode(sORDPRCPCDINFO_PATH, sORDPRCPCDLIST_PATH + "[" + iRow + "]");
  125. model.copyNode("/root/temp/ordprcpcdinfo/ordprcpcdlist", sORDPRCPCDLIST_PATH + "[" + iRow + "]");
  126. var grupsnglflag = model.getValue(sORDPRCPCDINFO_PATH + "/grupsnglflag");
  127. var prcplnkno = model.getValue(sORDPRCPCDINFO_PATH + "/direcprcplnkno");
  128. model.refresh();
  129. }
  130. /**
  131. * @desc : 처방분류팝업 열기
  132. * @
  133. * @param :
  134. * @event : 버튼(btn_prcpclsnm)의 DOMActive
  135. * @return :
  136. * @author : 오지훈
  137. * @---------------------------------------------------
  138. */
  139. function fOpenPrcpClsNm(){
  140. modal("SPMMB02100");
  141. var param = getParameter("param");
  142. var paramArray = param.split("▩");
  143. var useyn = paramArray[0];
  144. if(useyn == "Y"){ // 사용구분 y인 경우 처방분류코드를 설정해 줌
  145. var prcpclsnm = paramArray[2];
  146. var prcpclscd1 = paramArray[3];
  147. var prcpclscd2 = paramArray[4];
  148. var prcpclscd3 = paramArray[5];
  149. model.setValue(sORDPRCPCDINFO_PATH + "/prcpclsnm", prcpclsnm);
  150. model.setValue(sORDPRCPCDINFO_PATH + "/prcpclscd1", prcpclscd1);
  151. model.setValue(sORDPRCPCDINFO_PATH + "/prcpclscd2", prcpclscd2);
  152. model.setValue(sORDPRCPCDINFO_PATH + "/prcpclscd3", prcpclscd3);
  153. model.refresh();
  154. }
  155. }
  156. /**
  157. * @desc : 처방분류명 만들기 - 처방분류코드를 조합하여 ->를 구분자로 하는 String설정
  158. * @
  159. * @param : rowPos : 그리드의 Row 위치
  160. * @event :
  161. * @return :
  162. * @author : 오지훈
  163. * @---------------------------------------------------
  164. */
  165. function fMakePrcpClsNm(rowPos){
  166. var prcpclscd2 = model.getValue(sORDPRCPCDLIST_PATH + "[" + rowPos + "]/prcpclscd2");
  167. var prcpclscd3 = model.getValue(sORDPRCPCDLIST_PATH + "[" + rowPos + "]/prcpclscd3");
  168. var prcpclsnm1 = model.getValue(sORDPRCPCDLIST_PATH + "[" + rowPos + "]/prcpclsnm1");
  169. var prcpclsnm2 = model.getValue(sORDPRCPCDLIST_PATH + "[" + rowPos + "]/prcpclsnm2");
  170. var prcpclsnm3 = model.getValue(sORDPRCPCDLIST_PATH + "[" + rowPos + "]/prcpclsnm3");
  171. var prcpclsnm = prcpclsnm1;
  172. if(prcpclscd2 != "00"){
  173. prcpclsnm = prcpclsnm + "->" + prcpclsnm2;
  174. }
  175. if(prcpclscd3 != "00"){
  176. prcpclsnm = prcpclsnm + "->" + prcpclsnm3;
  177. }
  178. model.setValue(sORDPRCPCDLIST_PATH + "[" + rowPos + "]/prcpclsnm", prcpclsnm);
  179. model.refresh();
  180. }
  181. /**
  182. * @desc : 처방분류팝업 열기(조회조건)
  183. * @
  184. * @param :
  185. * @event : 버튼(btn_prcpclsnm)의 DOMActive
  186. * @return :
  187. * @author : 오지훈
  188. * @---------------------------------------------------
  189. */
  190. function fOpenPrcpClsNmCond(){
  191. modal("SPMMB02100");
  192. var param = getParameter("param");
  193. var paramArray = param.split("▩");
  194. var useyn = paramArray[0];
  195. if(useyn == "Y"){ // 사용구분 y인 경우 처방분류코드를 설정해 줌
  196. var prcpclsnm = paramArray[2];
  197. var prcpclscd1 = paramArray[3];
  198. var prcpclscd2 = paramArray[4];
  199. var prcpclscd3 = paramArray[5];
  200. model.setValue("/root/main/cond/prcpclsnm", prcpclsnm);
  201. model.setValue("/root/main/cond/prcpclscd1", prcpclscd1);
  202. model.setValue("/root/main/cond/prcpclscd2", prcpclscd2);
  203. model.setValue("/root/main/cond/prcpclscd3", prcpclscd3);
  204. model.refresh();
  205. }
  206. }
  207. /**
  208. * @desc : 처방구분 변경시, 지시처방에 포함되지 않는 코드 선택시 에러메시지를 띄운다.
  209. * @
  210. * @param :
  211. * @event : 버튼(btn_prcpclsnm)의 DOMActive
  212. * @return :
  213. * @author : 오지훈
  214. * @---------------------------------------------------
  215. */
  216. function fChngPrcpClsCD(){
  217. var prcpclscd = model.getValue("/root/main/ordprcpcdinfo/ordprcpcdinfo/prcpclscd");
  218. var fstword = prcpclscd.substr(0,1);
  219. if(fstword != "0"){
  220. messageBox(cmb_prcpcls.label + "은(는) 지시처방에 포함", "E001");
  221. model.setValue("/root/main/ordprcpcdinfo/ordprcpcdinfo/prcpclscd", "00");
  222. }
  223. model.refresh();
  224. }
  225. /**
  226. * @desc : 처방분류 입력란을 클릭시 조회 조건을 clear함.
  227. * @
  228. * @param :
  229. * @event :
  230. * @return :
  231. * @author : 오지훈
  232. * @---------------------------------------------------
  233. */
  234. function fClrPrcpClsCond(){
  235. model.setValue("/root/main/cond/prcpclscd1", "");
  236. model.setValue("/root/main/cond/prcpclscd2", "");
  237. model.setValue("/root/main/cond/prcpclscd3", "");
  238. model.setValue("/root/main/cond/prcpclsnm" , "");
  239. model.refresh();
  240. }
  241. /**
  242. * @desc : 지시처방코드 삭제
  243. * @
  244. * @param :
  245. * @event :
  246. * @return :
  247. * @author : 오지훈
  248. * @---------------------------------------------------
  249. */
  250. function fDelOrdPrcpCD(){
  251. var status = model.getValue(sORDPRCPCDINFO_PATH + "/status");
  252. var prcpnm = model.getValue(sORDPRCPCDINFO_PATH + "/prcpnm");
  253. if(status != "i"){
  254. var rtnval = messageBox("지시처방 [" + prcpnm + "] ", "Q001");
  255. //alert(rtnval);
  256. if(rtnval == 6){ //'예'인 경우
  257. model.setValue(sORDPRCPCDINFO_PATH + "/status", "d");
  258. }else if(rtnval == 7){ //'아니오'인 경우
  259. return;
  260. }
  261. var nodelist = instance1.selectNodes(sORDPRCPCDINFO_PATH);
  262. var condlist = instance1.selectNodes("/root/main/cond");
  263. model.removeNodeset("/root/send/savedata");
  264. model.makeValue("/root/send/savedata/save", getNodeListCSV(nodelist));
  265. model.makeValue("/root/send/savedata/cond", getNodeListCSV(condlist));
  266. submit("TXMMB02101");
  267. model.resetInstanceNode(sORDPRCPCDINFO_PATH);
  268. model.refresh();
  269. }
  270. }
  271. /**
  272. * @desc : 지시처방 초기화
  273. * @
  274. * @param :
  275. * @event : 버튼(btn_reset)의 DOMActive
  276. * @return :
  277. * @---------------------------------------------------
  278. */
  279. function fInitOrdPrcpCD(){
  280. model.resetInstanceNode(sORDPRCPCDINFO_PATH);
  281. model.setValue(sORDPRCPCDINFO_PATH + "/prcpuseflag", "A");
  282. model.setValue(sORDPRCPCDINFO_PATH + "/grupsnglflag", "S");
  283. model.setValue(sORDPRCPCDINFO_PATH + "/prcpinptflag", "-");
  284. model.refresh();
  285. }