SMMNP01300.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336
  1. /* ---------------------------------------------------------------------
  2. 수술명 Master 관리(SMMNP01300.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.00
  5. : Create By Grace Lee
  6. : 2007.09.17
  7. ---------------------------------------------------------------------- */
  8. var xPathGridData = "/root/main/mnpmpmstlist" ; // 수술명분류리스트 xPath
  9. var OpGrp1Mode = "1" ; // 대분류모드
  10. var OpGrp2Mode = "2" ; // 중분류모드
  11. var InsertMode = "I" ; // Insert 모드
  12. var UpdateMode = "U" ; // Update 모드
  13. var DeleteMode = "D" ; // Delete 모드
  14. /* ------------------------------------------------- */
  15. /* SMMNP01300_수술명 Master 등록 */
  16. /* On Load 시 Call */
  17. /* ------------------------------------------------- */
  18. /* group : EMR 간호 수술마취 */
  19. /* ver : 2007.09.17 */
  20. /* by : 이현숙 */
  21. /* --------------------------------------------------*/
  22. /* type : function */
  23. /* access : public */
  24. /* desc : xforms-ready시 수행한다 */
  25. /* return : */
  26. /* --------------------------------------------------*/
  27. function fFormInit() {
  28. mnpmpmstComboOp1_Read(); // 조회조건 대분류 조회
  29. fReadComboOpGrp(OpGrp1Mode,"", "TRMNP01303"); // 입력부분 대분류 조회
  30. // addComboItem("cmb_opgrp2","- 전 체 -","A","above");
  31. // cmb_opgrp2.select(0);
  32. //
  33. btn_new.visible = true;
  34. btn_save.visible = false;
  35. model.refresh();
  36. }
  37. /* ------------------------------------------------- */
  38. /* SMMNP01300_ 수술명 Master */
  39. /* ------------------------------------------------- */
  40. /* group : EMR 간호 수술마취 */
  41. /* ver : 2007.09.17 */
  42. /* by : 이현숙 */
  43. /* ------------------------------------------------- */
  44. /* SMMNP01300_ 수술 마스터 */
  45. /* desc : 대분류 정보 가져오기 */
  46. /* --------------------------------------------------*/
  47. function mnpmpmstComboOp1_Read() {
  48. //분류코드,명칭 조회(대/중분류구분, 대분류코드, submission 이름)
  49. fReadComboOpGrp(OpGrp1Mode,"" , "TRMNP01201");
  50. addComboItem("cmb_opgrp1","- 전 체 -","A","above");
  51. cmb_opgrp1.select(0);
  52. }
  53. /* ------------------------------------------------- */
  54. /* SMMNP01300_ 수술명 Master */
  55. /* 대분류콤보 선택시 Call */
  56. /* ------------------------------------------------- */
  57. /* group : EMR 간호 수술마취 */
  58. /* ver : 2007.09.17 */
  59. /* by : 이현숙 */
  60. /* ------------------------------------------------- */
  61. /* SMMNP01300_ 수술 마스터 */
  62. /* desc : 중분류 정보 가져오기 */
  63. /* --------------------------------------------------*/
  64. function mnpmpmstComboOp2_Read() {
  65. // 대분류 전체 선택시 중분류 콤보내용 제거
  66. if(cmb_opgrp1.value == 'A') return;
  67. //분류코드,명칭 조회(대/중분류구분, 대분류코드, submission 이름)
  68. fReadComboOpGrp(OpGrp2Mode,model.getValue("/root/main/cond/opgrp1" ), "TRMNP01301");
  69. addComboItem("cmb_opgrp2","- 전 체 -","A","above");
  70. cmb_opgrp2.select(0);
  71. }
  72. /* ------------------------------------------------- */
  73. /* SMMNP01300_ 수술명 Master */
  74. /* ------------------------------------------------- */
  75. /* group : EMR 간호 수술마취 */
  76. /* ver : 2007.09.19 */
  77. /* by : 이현숙 */
  78. /* ------------------------------------------------- */
  79. /* SMMNP01300_ 수술 마스터 */
  80. /* desc : 분류 정보 가져오기 */
  81. /* --------------------------------------------------*/
  82. function fReadComboOpGrp(grpmode, opgrp1, sbmname) {
  83. model.removenode("/root/send");
  84. model.makeValue("/root/send/conflag" , grpmode ); // 검색구분
  85. model.makeValue("/root/send/opgrp1" , opgrp1 ); // 대분류코드
  86. model.makeValue("/root/send/instcd" , model.getValue("/root/init/HideData/instcd")); // 기관코드
  87. submit(sbmname); // 수술명 분류 코드와 명칭을 가져온다.
  88. }
  89. /* ------------------------------------------------- */
  90. /* SMMNP01300_ 수술명 Master */
  91. /* 조회버튼 클릭시 Call */
  92. /* ------------------------------------------------- */
  93. /* group : EMR 간호 수술마취 */
  94. /* ver : 2007.09.17 */
  95. /* by : 이현숙 */
  96. /* ------------------------------------------------- */
  97. /* SMMNP01300_ 수술분류 */
  98. /* 조회버튼 클릭시 Call */
  99. /* desc : 표준 수술명 리스트 가져오기 */
  100. /* --------------------------------------------------*/
  101. function mnpmpmstList_Read() {
  102. if(cmb_opgrp1.value == 'A' && cmb_opgrp2.value == 'A' && model.getValue("/root/main/cond/opname").length < 2 ) {
  103. messageBox("검색어는 2자 이상","C001");
  104. model.setFocus("inp_opname");
  105. return;
  106. }
  107. model.removenode("/root/send");
  108. var opname =model.getValue("/root/main/cond/opname" );
  109. model.makeValue("/root/send/opgrp1" , model.getValue("/root/main/cond/opgrp1" )); // 대분류코드
  110. model.makeValue("/root/send/opgrp2" , model.getValue("/root/main/cond/opgrp2" )); // 중분류코드
  111. model.makeValue("/root/send/opname" , opname.toUpperCase() ); // 수술명
  112. model.makeValue("/root/send/useflag" , model.getValue("/root/main/cond/useflag" )); // 사용여부
  113. submit("TRMNP01302");
  114. fNew(); // 하단 입력항목 초기화
  115. }
  116. /* ------------------------------------------------- */
  117. /* desc : 대분류 콤보리스트 선택 */
  118. /* param : pModel - Model */
  119. /* return : */
  120. /* -------------------------------------------------- */
  121. function fSelectComboGrp(){
  122. mnpmpmstComboOp2_Read(); // 중분류 콤보리스트 조회
  123. }
  124. /* ------------------------------------------------- */
  125. /* desc : 입력항목 대분류 콤보리스트 선택 */
  126. /* param : pModel - Model */
  127. /* return : */
  128. /* -------------------------------------------------- */
  129. function fSelectInpComboGrp(){
  130. if(cmb_inopgrp1.value == "") return;
  131. //분류코드,명칭 조회(대/중분류구분, 대분류코드, submission 이름)
  132. fReadComboOpGrp(OpGrp2Mode, model.getValue("/root/main/mnpmpmstinfo/opgrp1"), "TRMNP01304");
  133. model.setValue("/root/main/mnpmpmstinfo/useflag", "Y");
  134. //cmb_inopgrp2.select(0);
  135. }
  136. /* ------------------------------------------------- */
  137. /* desc : 수술명 Master 조회버튼 클릭 */
  138. /* param : pModel - Model */
  139. /* tNode - Target Node */
  140. /* return : */
  141. /* -------------------------------------------------- */
  142. function fQuery(){
  143. mnpmpmstList_Read(); // 수술명 마스터 리스트 조회
  144. }
  145. /* ------------------------------------------------- */
  146. /* desc : 수술명 Master 신규버튼 클릭 */
  147. /* param : pModel - Model */
  148. /* tNode - Target Node */
  149. /* return : */
  150. /* -------------------------------------------------- */
  151. function fNew(){
  152. var tNode = "/root/main/mnpmpmstinfo";
  153. model.setValue(tNode+"/opcode" , "" );
  154. model.setValue(tNode+"/opgrp1" , "" );
  155. model.setValue(tNode+"/opgrp2" , "" );
  156. model.setValue(tNode+"/opgrp3" , "00" );
  157. model.setValue(tNode+"/instcd" , model.getValue("/root/init/HideData/instcd" ) );
  158. model.setValue(tNode+"/opkname" , "" );
  159. model.setValue(tNode+"/opename" , "" );
  160. model.setValue(tNode+"/useflag" , "" );
  161. model.setValue(tNode+"/calcscorcd" , "" );
  162. //model.setValue(tNode+"/txmode" , InsertMode );
  163. model.refresh();
  164. }
  165. /* ------------------------------------------------- */
  166. /* desc : 수술명 Master 리스트 선택시 */
  167. /* param : pModel - Model */
  168. /* tNode - Target Node */
  169. /* sNode - Source Node */
  170. /* return : */
  171. /* -------------------------------------------------- */
  172. function fSelectRow(){
  173. if(grd_mnpmpmst.row <1 ) return;
  174. var tNode = "/root/main/mnpmpmstinfo";
  175. var sNode = "/root/main/mnpmpmstlist/mnpmpmstinfo["+grd_mnpmpmst.row+"]";
  176. var opgrp1 = model.getValue(sNode+"/opgrp1" );
  177. var opgrp2 = model.getValue(sNode+"/opgrp2" );
  178. //----------------- 1. 입력부분 대분류, 중분류 콤보 조회
  179. //분류코드,명칭 조회(대/중분류구분, 대분류코드, submission 이름)
  180. fReadComboOpGrp(OpGrp2Mode,opgrp1 , "TRMNP01304");
  181. //----------------- 2. 선택한 정보를 입력항목에 셋팅
  182. model.setValue(tNode+"/opcode" , model.getValue(sNode+"/opcode" ));
  183. model.setValue(tNode+"/opgrp1" , opgrp1 );
  184. model.setValue(tNode+"/opgrp2" , opgrp2 );
  185. model.setValue(tNode+"/opgrp3" , model.getValue(sNode+"/opgrp3" ));
  186. model.setValue(tNode+"/instcd" , model.getValue(sNode+"/instcd" ));
  187. model.setValue(tNode+"/opkname" , model.getValue(sNode+"/opkname" ));
  188. model.setValue(tNode+"/opename" , model.getValue(sNode+"/opename" ));
  189. model.setValue(tNode+"/useflag" , model.getValue(sNode+"/useflag" ));
  190. model.setValue(tNode+"/calcscorcd" , model.getValue(sNode+"/calcscorcd" ));
  191. model.setValue(tNode+"/txmode" , UpdateMode );
  192. btn_new.visible = false;
  193. btn_save.visible = true;
  194. model.refresh();
  195. }
  196. /* ------------------------------------------------- */
  197. /* desc : 수술명 Master 자료저장하기 */
  198. /* param : pModel - Model */
  199. /* tNode - Target Node */
  200. /* sNode - Source Node */
  201. /* return : */
  202. /* -------------------------------------------------- */
  203. function fSave(flag){
  204. var sNode = "";
  205. var tNode = "/root/send/mnpmpmstinfo";
  206. var txmode = "";
  207. if(flag == "D"){ // Delete
  208. // 선택확인
  209. if(grd_mnpmpmst.row<1){
  210. messageBox( "표준 수술명을", "C002");
  211. return ;
  212. }
  213. // 삭제확인메시지
  214. if(messageBox("데이터를 ", "Q001")=="7") return;
  215. sNode = "/root/main/mnpmpmstlist/mnpmpmstinfo["+grd_mnpmpmst.row+"]";
  216. txmode = "D";
  217. }else{ // Insert, Update
  218. sNode = "/root/main/mnpmpmstinfo";
  219. // txmode = model.getValue(sNode+"/txmode" );
  220. if(!fCheckValid()) return;
  221. }
  222. model.removenode("/root/send");
  223. model.makeValue(tNode+"/opcode" ,model.getValue(sNode+"/opcode" )); // 수술코드
  224. model.makeValue(tNode+"/opgrp1" ,model.getValue(sNode+"/opgrp1" )); // 대분류
  225. model.makeValue(tNode+"/opgrp2" ,model.getValue(sNode+"/opgrp2" )); // 중분류
  226. model.makeValue(tNode+"/opgrp3" ,model.getValue(sNode+"/opgrp3" )); // 소분류
  227. model.makeValue(tNode+"/instcd" ,model.getValue(sNode+"/instcd" )); // 병원기관코드(코드정의서 Z0007 참조)
  228. model.makeValue(tNode+"/opkname" ,model.getValue(sNode+"/opkname" )); // 한글수술명
  229. model.makeValue(tNode+"/opename" ,model.getValue(sNode+"/opename" )); // 한글영문명
  230. model.makeValue(tNode+"/useflag" ,model.getValue(sNode+"/useflag" )); // 사용여부
  231. model.makeValue(tNode+"/calcscorcd" ,model.getValue(sNode+"/calcscorcd" )); // 수가코드
  232. model.makeValue(tNode+"/txmode" ,flag ); // 처리모드 (I:Insert, U:Update, D:Delete)
  233. submit("TXMNP01301");
  234. btn_new.visible = true;
  235. btn_save.visible = false;
  236. //model.setValue("/root/main/cond/opgrp1", model.getValue(sNode+"/opgrp1" )); // 대분류
  237. //fSelectComboGrp();
  238. //model.setValue("/root/main/cond/opgrp1", model.getValue(sNode+"/opgrp2" )); // 중분류
  239. mnpmpmstList_Read(); // 수술명 Master 리스트 조회
  240. }
  241. /* ------------------------------------------------- */
  242. /* desc : 수술명분류 validation check */
  243. /* param : pModel - Model */
  244. /* sNode - Source Node */
  245. /* return : */
  246. /* -------------------------------------------------- */
  247. function fCheckValid(){
  248. var sNode = "/root/main/mnpmpmstinfo";
  249. var opgrp1 = model.getValue(sNode+"/opgrp1" );
  250. var opgrp2 = model.getValue(sNode+"/opgrp2" );
  251. if(opgrp1==""){
  252. messageBox( "대분류구분을", "C001");
  253. model.setFocus("inp_opgrp1");
  254. return;
  255. }
  256. if(opgrp2==""){
  257. messageBox( "중분류구분을", "C001");
  258. model.setFocus("inp_opgrp2");
  259. return;
  260. }
  261. return true;
  262. }
  263. /* ------------------------------------------------- */
  264. /* desc : 수가코드 팝업창 띄운다 */
  265. /* param : pModel - Model */
  266. /* return : */
  267. /* -------------------------------------------------- */
  268. function fPopupCalcscor(){
  269. modal("SPMNP01300","1","100","100","SPMNP01300");
  270. }
  271. /* ------------------------------------------------- */
  272. /* ------End Of List ------------------------------- */
  273. /* -------------------------------------------------- */