SMMMB08500.js 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. /**
  2. * @desc : 화면 초기화
  3. * @
  4. * @param :
  5. * @return :
  6. * @author : 엄영만
  7. * @---------------------------------------------------
  8. */
  9. function fInitialize_SMMMB08500(){
  10. zbcfGetCodeList(new Array("M0530"), new Array("/root/init/resnflag"));
  11. addComboInstance("/root/init/resnflag" , "cdid^cdnm", "-^해당없음", "M0530"); //사유구분 해당없음 추가
  12. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept", "A"); //진료과 콤보
  13. fGetMercdList();
  14. }
  15. /**
  16. * @desc : 진료오류코드 리스트 조회
  17. * @
  18. * @param :
  19. * @return :
  20. * @author : 엄영만
  21. * @---------------------------------------------------
  22. */
  23. function fGetMercdList(){
  24. model.removeNodeset("/root/main/info/mercd/mercdlist"); // 진료공통코드 리스트
  25. //input박스 비활성화
  26. ipt_errcd.disabled = true;
  27. submit("TRMMB08501");
  28. model.refresh(); // 트리가 접힌 상태에서 재조회 하면 그리드에 접힌 수만큼 조회 되지 않는 오류 수정.
  29. setTree(grd_mercdlist, grd_mercdlist.colRef("levl"), grd_mercdlist.colRef("displaynm"), true);
  30. model.refresh();
  31. }
  32. /**
  33. * @desc : 진료오류코드 리스트 클릭시 기본정보 설정
  34. * @
  35. * @param :
  36. * @return :
  37. * @author : 엄영만
  38. * @---------------------------------------------------
  39. */
  40. function fSetErrCodeInfo(){
  41. var nRow = grd_mercdlist.row;
  42. var sErrCd = model.getValue("/root/main/mercd/mercdlist["+nRow+"]/errcd");
  43. if(!isNull(sErrCd)) {
  44. model.makeValue("/root/send/reqdata/userid", getUserInfo("userid"));
  45. model.makeValue("/root/send/reqdata/deptcd", getUserInfo("dutplcecd"));
  46. model.makeValue("/root/send/reqdata/errcd", sErrCd);
  47. if (submit("TRMMB08502")){
  48. //input박스 비활성화
  49. ipt_errcd.disabled = true;
  50. model.removeNodeset("/root/main/recv");
  51. }
  52. model.refresh();
  53. }
  54. }
  55. /**
  56. * @desc : 진료오류코드 상세정보 저장
  57. * @
  58. * @param :
  59. * @return :
  60. * @author : 엄영만
  61. * @---------------------------------------------------
  62. */
  63. function fSaveErrCodeInfo(){
  64. if(isNull(model.getValue("/root/main/errcdinfo/errcodeinfo/errcd"))){
  65. messageBox("오류코드을","C001");
  66. return false;
  67. }
  68. if(isNull(model.getValue("/root/main/errcdinfo/errcodeinfo/errnm"))){
  69. messageBox("코드명을","C001");
  70. return false;
  71. }
  72. if(isNull(model.getValue("/root/main/errcdinfo/errcodeinfo/fromdd"))){
  73. messageBox("적용기간의 시작일자를","C001");
  74. return false;
  75. }
  76. if(isNull(model.getValue("/root/main/errcdinfo/errcodeinfo/todd"))){
  77. messageBox("적용기간의 종료일자를","C001");
  78. return false;
  79. }
  80. if(isNull(model.getValue("/root/main/errcdinfo/errcodeinfo/superrcd"))){
  81. messageBox("상위코드을","C001");
  82. return false;
  83. }
  84. if(isNull(model.getValue("/root/main/errcdinfo/errcodeinfo/errmsg"))){
  85. messageBox("메세지을","C001");
  86. return false;
  87. }
  88. if( messageBox("기본정보를","Q002") == 6 ){
  89. copyNodesetType("/root/send/savedata/mercdinfo", "/root/main/errcdinfo/errcodeinfo", "replace", model, model);
  90. if ( submit("TXMMB08501") ) {
  91. fGetMercdList();
  92. }
  93. }
  94. }
  95. /**
  96. * @desc : 진료공통코드 예외 리스트 저장
  97. * @
  98. * @param :
  99. * @return :
  100. * @author : 엄영만
  101. * @---------------------------------------------------
  102. */
  103. function fSaveErrCdExInfo(){
  104. var sErrCd = model.getValue("/root/main/errcdinfo/errcodeinfo/errcd");
  105. if(isNull(sErrCd)) {
  106. messageBox("선택된 오류코드가 없습니다. 오류코드를 선택하세요.", "E999");
  107. return;
  108. } else {
  109. if( messageBox(sErrCd + " 코드의 예외조건 정보를","Q002") == 6 ){
  110. model.removeNodeset("/root/send/reqdata/");
  111. model.makeValue("/root/send/reqdata/exdeptinfo", grd_notapply_dept.getUpdateData());
  112. model.makeValue("/root/send/reqdata/exuserinfo", grd_notapply_user.getUpdateData());
  113. model.makeValue("/root/send/reqdata/expatinfo", grd_notapply_pat.getUpdateData());
  114. model.refresh();
  115. if ( submit("TXMMB08502") ) {
  116. fSetErrCodeInfo();
  117. } else {
  118. messageBox("저장에","I009");
  119. }
  120. }
  121. }
  122. }
  123. function fCompareDate(){
  124. var fromdd = model.getValue("/root/main/applyinfo/prcpinfo/fromdd");
  125. var todd = model.getValue("/root/main/applyinfo/prcpinfo/todd");
  126. if(fromdd != "" && todd != ""){
  127. if(todd < fromdd){
  128. messageBox("시작일자가 종료일자보다 빠를 수","I004");
  129. return;
  130. }
  131. }
  132. }
  133. /*
  134. * param = D -> 부서 U -> 사용자 P -> 환자 C -> 관련코드
  135. */
  136. function fGridAdd(datagrid, sFlag){
  137. var sErrCd = "";
  138. var sFromDd = "";
  139. var sExId = "";
  140. var sExIdNm = "";
  141. var sNodeSet = "";
  142. sErrCd = model.getValue("/root/main/errcdinfo/errcodeinfo/errcd");
  143. sFromDd = model.getValue("/root/main/errcdinfo/errcodeinfo/fromdd");
  144. if(isNull(sErrCd) || isNull(sFromDd)) {
  145. messageBox("선택된 오류코드가 없습니다. 오류코드를 선택하세요.", "E999");
  146. return;
  147. }
  148. if(sFlag == "D"){
  149. sExId = model.getValue("/root/main/objectinfo/dept/orddept");
  150. sExIdNm = model.getValue("/root/init/orddept/dept[deptcd = '"+sExId+"']/depthngnm");
  151. sNodeSet = "/root/main/errcdinfo/exdeptinfo/deptlist";
  152. } else if(sFlag == "U"){
  153. sExId = model.getValue("/root/main/objectinfo/user/orddrid");
  154. sExIdNm = model.getValue("/root/init/userlist/usercombo[userid = '"+sExId+"']/usernm");
  155. sNodeSet = "/root/main/errcdinfo/exuserinfo/userlist";
  156. } else if(sFlag == "P"){
  157. modal("SPPMC02500");
  158. sExId = model.getValue("/root/main/patinfo/patinfolist/pid");
  159. sExIdNm = model.getValue("/root/main/patinfo/patinfolist/hngnm");
  160. sNodeSet = "/root/main/errcdinfo/expatinfo/patlist";
  161. } else {
  162. return;
  163. }
  164. if(sExId != ""){
  165. if(fCheckDup(sExId, sNodeSet)){
  166. if(sFlag == "D"){
  167. msg = "해당 부서는";
  168. }else if(sFlag == "U"){
  169. msg = "해당 사용자는";
  170. }else if(sFlag == "P"){
  171. msg = "해당 환자는";
  172. }else{}
  173. messageBox(msg,"E006");
  174. return;
  175. }
  176. datagrid.addRow(true, true);
  177. var nRow = datagrid.rows;
  178. model.setValue(sNodeSet + "["+eval(nRow-1)+"]/errcd", sErrCd);
  179. model.setValue(sNodeSet + "["+eval(nRow-1)+"]/fromdd", sFromDd);
  180. model.setValue(sNodeSet + "["+eval(nRow-1)+"]/exno", "0");
  181. model.setValue(sNodeSet + "["+eval(nRow-1)+"]/extype", sFlag);
  182. model.setValue(sNodeSet + "["+eval(nRow-1)+"]/exid", sExId);
  183. model.setValue(sNodeSet + "["+eval(nRow-1)+"]/exidnm", sExIdNm);
  184. model.setValue("/root/main/objectinfo/dept/orddept","");
  185. model.setValue("/root/main/objectinfo/user/orddrid","");
  186. model.refresh();
  187. }else{
  188. messageBox("추가 할 항목을 아래에서 선택 하세요.", "I999");
  189. return;
  190. }
  191. }
  192. function fGridDel(datagrid){
  193. var sNodeSet = "";
  194. var nRow = datagrid.row;
  195. var nStatus = null;
  196. if( nRow <= 0 ){
  197. alert("삭제할 항목을 선택해주십시오.");
  198. return;
  199. }
  200. nStatus = datagrid.rowstatus(nRow);
  201. if(nStatus == 0) { // 기존데이터
  202. datagrid.rowstatus(nRow) = 4;
  203. } else if (nStatus == 1) { // 신규데이터
  204. datagrid.deleteRow(nRow);
  205. } else if (nStatus == 4) { // 삭제데이터
  206. datagrid.rowstatus(nRow) = 0;
  207. }
  208. model.refresh();
  209. }
  210. function fCheckDup(sValue, sNodeSet){
  211. var nCnt = getNodesetCount(sNodeSet);
  212. var bExist = false;
  213. for(i=1; i<= nCnt; i++){
  214. if(sValue == model.getValue(sNodeSet+"["+i+"]/exid")){
  215. bExist = true;
  216. }
  217. }
  218. return bExist;
  219. }