SMMNP01200.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. /* ---------------------------------------------------------------------
  2. 수술명 분류체계 관리(SMMNP01200.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/mnpmpgmslist" ; // 수술명분류리스트 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. /* SMMNP01200_수술명 분류체계 등록 */
  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. MnpmpgmsCombo_Read();
  29. }
  30. /* ------------------------------------------------- */
  31. /* SMMNP01200_ 수술명 분류체계 */
  32. /* On Load 시 Call */
  33. /* ------------------------------------------------- */
  34. /* group : EMR 간호 수술마취 */
  35. /* ver : 2007.09.17 */
  36. /* by : 이현숙 */
  37. /* ------------------------------------------------- */
  38. /* SMMNP01200_ 수술분류 */
  39. /* On Load 시 Call */
  40. /* desc : 수술명 분류체계 정보 가져오기 */
  41. /* --------------------------------------------------*/
  42. function MnpmpgmsCombo_Read() {
  43. model.removenode("/root/send");
  44. model.makeValue("/root/send/instcd" , model.getValue("/root/main/cond/instcd" )); // 병원기관코드
  45. model.makeValue("/root/send/conflag" , model.getValue("/root/main/cond/conflag")); // 검색구분
  46. model.makeValue("/root/send/opgrp1" , model.getValue("/root/main/cond/opgrp1" )); // 대분류코드
  47. submit("TRMNP01201"); // 수술명 분류 코드와 명칭을 가져온다.
  48. cmb_opgrp1.select(0);
  49. }
  50. /* ------------------------------------------------- */
  51. /* SMMNP01200_ 수술명 분류체계 */
  52. /* 조회버튼 클릭시 Call */
  53. /* ------------------------------------------------- */
  54. /* group : EMR 간호 수술마취 */
  55. /* ver : 2007.09.17 */
  56. /* by : 이현숙 */
  57. /* ------------------------------------------------- */
  58. /* SMMNP01200_ 수술분류 */
  59. /* 조회버튼 클릭시 Call */
  60. /* desc : 수술명 분류 리스트 가져오기 */
  61. /* --------------------------------------------------*/
  62. function MnpmpgmsList_Read() {
  63. model.removenode("/root/send");
  64. model.makeValue("/root/send/instcd" , model.getValue("/root/main/cond/instcd" )); // 병원기관코드
  65. model.makeValue("/root/send/conflag" , model.getValue("/root/main/cond/conflag")); // 검색구분
  66. model.makeValue("/root/send/opgrp1" , model.getValue("/root/main/cond/opgrp1" )); // 대분류코드
  67. submit("TRMNP01202");
  68. fNew(); // 하단 입력항목 초기화
  69. }
  70. /* ------------------------------------------------- */
  71. /* desc : 수술명 분류체계 검색구분 선택 */
  72. /* param : pModel - Model */
  73. /* return : */
  74. /* -------------------------------------------------- */
  75. function fSelectGrp(){
  76. var flag = rdo_grpkind.value;
  77. switch(flag){
  78. case OpGrp1Mode:
  79. caption26.attribute("visibility") = "hidden";
  80. cmb_opgrp1.attribute("visibility") = "hidden";
  81. break;
  82. case OpGrp2Mode:
  83. caption26.attribute("visibility") = "visible";
  84. cmb_opgrp1.attribute("visibility") = "visible";
  85. break;
  86. }
  87. MnpmpgmsList_Read(); // 수술명 분류체계 리스트 조회
  88. }
  89. /* ------------------------------------------------- */
  90. /* desc : 대분류 콤보리스트 선택 */
  91. /* param : pModel - Model */
  92. /* return : */
  93. /* -------------------------------------------------- */
  94. function fSelectComboGrp(){
  95. MnpmpgmsList_Read(); // 수술명 분류체계 리스트 조회
  96. }
  97. /* ------------------------------------------------- */
  98. /* desc : 수술명 분류체계 신규버튼 클릭 */
  99. /* param : pModel - Model */
  100. /* tNode - Target Node */
  101. /* return : */
  102. /* -------------------------------------------------- */
  103. function fNew(){
  104. var flag = rdo_grpkind.value;
  105. var tNode = "/root/main/mnpmpgmsinfo";
  106. var opgrp1 = "";
  107. var opgrp2 = "";
  108. switch(flag){
  109. case OpGrp1Mode: // 대분류
  110. opgrp2 = "00";
  111. fSetEditable(inp_opgrp1, true );
  112. fSetEditable(inp_opgrp2, false);
  113. break;
  114. case OpGrp2Mode: // 중분류
  115. opgrp1 = cmb_opgrp1.value;
  116. fSetEditable(inp_opgrp1, false );
  117. fSetEditable(inp_opgrp2, true);
  118. break;
  119. }
  120. model.setValue(tNode+"/opgrp1" , opgrp1 );
  121. model.setValue(tNode+"/opgrp2" , opgrp2 );
  122. model.setValue(tNode+"/opgrp3" , "00" );
  123. model.setValue(tNode+"/instcd" , model.getValue("/root/init/HideData/instcd" ) );
  124. model.setValue(tNode+"/opgrpkname" , "" );
  125. model.setValue(tNode+"/opgrpename" , "" );
  126. model.setValue(tNode+"/txmode" , InsertMode );
  127. model.refresh();
  128. }
  129. /* ------------------------------------------------- */
  130. /* desc : 수술명 분류체계 리스트 선택시 */
  131. /* param : pModel - Model */
  132. /* tNode - Target Node */
  133. /* sNode - Source Node */
  134. /* return : */
  135. /* -------------------------------------------------- */
  136. function fSelectRow(){
  137. if(grd_mnpmpgms.row <1 ) return;
  138. var tNode = "/root/main/mnpmpgmsinfo";
  139. var sNode = "/root/main/mnpmpgmslist/mnpmpgmsinfo["+grd_mnpmpgms.row+"]";
  140. fSetEditable(inp_opgrp1, false );
  141. fSetEditable(inp_opgrp2, false);
  142. model.setValue(tNode+"/opgrp1" , model.getValue(sNode+"/opgrp1" ));
  143. model.setValue(tNode+"/opgrp2" , model.getValue(sNode+"/opgrp2" ));
  144. model.setValue(tNode+"/opgrp3" , model.getValue(sNode+"/opgrp3" ));
  145. model.setValue(tNode+"/instcd" , model.getValue(sNode+"/instcd" ));
  146. model.setValue(tNode+"/opgrpkname" , model.getValue(sNode+"/opgrpkname" ));
  147. model.setValue(tNode+"/opgrpename" , model.getValue(sNode+"/opgrpename" ));
  148. model.setValue(tNode+"/txmode" , UpdateMode );
  149. model.refresh();
  150. }
  151. /* ------------------------------------------------- */
  152. /* desc : Editable 속성 지정 */
  153. /* param : pModel - Model */
  154. /* return : */
  155. /* -------------------------------------------------- */
  156. function fSetEditable(pObj, pVal){
  157. if(pVal){
  158. pObj.attribute("editable")="true";
  159. pObj.initStyle("background-color");
  160. }else{
  161. pObj.attribute("editable")="false";
  162. pObj.attribute("background-color") = "#f2f2f2";
  163. }
  164. }
  165. /* ------------------------------------------------- */
  166. /* desc : 수술명 분류체계 자료저장하기 */
  167. /* param : pModel - Model */
  168. /* tNode - Target Node */
  169. /* sNode - Source Node */
  170. /* return : */
  171. /* -------------------------------------------------- */
  172. function fSave(flag){
  173. var sNode = "";
  174. var tNode = "/root/send/mnpmpgmsinfo";
  175. var txmode = "";
  176. if(flag==DeleteMode){ // Delete
  177. // 선택확인
  178. if(grd_mnpmpgms.row<1){
  179. messageBox( "수술명 분류를", "C002");
  180. return ;
  181. }
  182. // 삭제확인메시지
  183. if(rdo_grpkind.value == OpGrp1Mode ){
  184. if(messageBox("하위 중분류가 모두 삭제됩니다. \n데이터를 ", "Q001")=="7") return;
  185. }else {
  186. if(messageBox("데이터를 ", "Q001")=="7") return;
  187. }
  188. sNode = "/root/main/mnpmpgmslist/mnpmpgmsinfo["+grd_mnpmpgms.row+"]";
  189. txmode = DeleteMode;
  190. }else{ // Insert, Update
  191. sNode = "/root/main/mnpmpgmsinfo";
  192. txmode = model.getValue(sNode+"/txmode" );
  193. if(!fCheckValid()) return;
  194. }
  195. model.removenode("/root/send");
  196. model.makeValue(tNode+"/opgrp1" ,model.getValue(sNode+"/opgrp1" )); // 대분류
  197. model.makeValue(tNode+"/opgrp2" ,model.getValue(sNode+"/opgrp2" )); // 중분류
  198. model.makeValue(tNode+"/opgrp3" ,model.getValue(sNode+"/opgrp3" )); // 소분류
  199. model.makeValue(tNode+"/instcd" ,model.getValue(sNode+"/instcd" )); // 병원기관코드(코드정의서 Z0007 참조)
  200. model.makeValue(tNode+"/opgrpkname" ,model.getValue(sNode+"/opgrpkname" )); // 한글수술명
  201. model.makeValue(tNode+"/opgrpename" ,model.getValue(sNode+"/opgrpename" )); // 한글영문명
  202. model.makeValue(tNode+"/txmode" ,txmode ); // 처리모드 (I:Insert, U:Update, D:Delete)
  203. submit("TXMNP01201");
  204. MnpmpgmsList_Read(); // 수술명 분류체계 리스트 조회
  205. // 대분류 저장시 대분류 콤보리스트 재조회
  206. if(rdo_grpkind.value == OpGrp1Mode ){
  207. MnpmpgmsCombo_Read();
  208. }
  209. }
  210. /* ------------------------------------------------- */
  211. /* desc : 수술명분류 validation check */
  212. /* param : pModel - Model */
  213. /* sNode - Source Node */
  214. /* return : */
  215. /* -------------------------------------------------- */
  216. function fCheckValid(){
  217. var sNode = "/root/main/mnpmpgmsinfo";
  218. var opgrp1 = model.getValue(sNode+"/opgrp1" );
  219. var opgrp2 = model.getValue(sNode+"/opgrp2" );
  220. var opgrpkname = model.getValue(sNode+"/opgrpkname" );
  221. var opgrpename = model.getValue(sNode+"/opgrpename" );
  222. var txmode = model.getValue(sNode+"/txmode" );
  223. //-------------------- 1. 필수 입력 항목 체크
  224. if(txmode==InsertMode){
  225. if(opgrp1==""){
  226. messageBox( "대분류구분을", "C001");
  227. model.setFocus("inp_opgrp1");
  228. return false;
  229. }
  230. if(opgrp2==""){
  231. messageBox( "중분류구분을", "C001");
  232. model.setFocus("inp_opgrp2");
  233. return false;
  234. }
  235. }
  236. if(opgrpkname==""){
  237. messageBox( "분류한글명을", "C001");
  238. model.setFocus("inp_opgrpkname");
  239. return false;
  240. }
  241. if(opgrpename==""){
  242. messageBox( "분류영문명을", "C001");
  243. model.setFocus("inp_opgrpename");
  244. return false;
  245. }
  246. //-------------------- 2. 중복체크
  247. if(txmode==InsertMode){
  248. if(fIsExist(opgrp1, opgrp2)){
  249. messageBox( "수술명 분류 정보가", "E006");
  250. return false;
  251. }
  252. }
  253. return true;
  254. }
  255. /* ------------------------------------------------- */
  256. /* desc : 수술명분류 등록여부 check */
  257. /* param : pModel - Model */
  258. /* sNode - Source Node */
  259. /* return : */
  260. /* -------------------------------------------------- */
  261. function fIsExist(popgrp1, popgrp2){
  262. var opgrp1, opgrp2;
  263. for (var i = grd_mnpmpgms.fixedrows; i < grd_mnpmpgms.rows; i++) {
  264. opgrp1 = grd_mnpmpgms.valueMatrix(i,1);
  265. opgrp2 = grd_mnpmpgms.valueMatrix(i,2);
  266. if(popgrp1 == opgrp1 && popgrp2 == opgrp2){
  267. return true;
  268. }
  269. }
  270. return false;
  271. }
  272. /* ------------------------------------------------- */
  273. /* ------End Of List ------------------------------- */
  274. /* -------------------------------------------------- */