SMMMB08500.xjs 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[// header파일 중 SMMMB08500.js 파일 시작
  3. /**
  4. * _desc : 화면 초기화
  5. * _
  6. * _param :
  7. * _return :
  8. * _author : 엄영만
  9. * _---------------------------------------------------
  10. */
  11. function fInitialize_SMMMB08500(){
  12. var arrParam = [ {dsNm: "ds_init_resnflag", cdGrpId: "M0530" } ];
  13. appf_getCodeList(arrParam);
  14. //addComboInstance("ds_init_resnflag" , "cdid^cdnm", "-^해당없음", "M0530"); //사유구분 해당없음 추가
  15. dsf_addDsItem( ds_init_resnflag, "cdid", "cdnm", "-", "해당없음", "above");
  16. var dt = utlf_getCurrentDate();
  17. var instcd = sysf_getUserInfo("dutplceinstcd");
  18. zsdfGetCareOutOrderDepartmentList(instcd, "ds_init_orddept", dt);
  19. fGetMercdList();
  20. }
  21. /**
  22. * _desc : 진료오류코드 리스트 조회
  23. * _
  24. * _param :
  25. * _return :
  26. * _author : 엄영만
  27. * _---------------------------------------------------
  28. */
  29. function fGetMercdList(){
  30. ds_main_mercd_mercdlist.clearData(); // 진료공통코드 리스트
  31. // ds_main_cond.clearData();
  32. //input박스 비활성화
  33. grp_right_top.ipt_errcd.enable = false;
  34. var oParam = {};
  35. oParam.id = "TRMMB08501";
  36. oParam.service = "prcpbaseapp.PrcpClsMngt";
  37. oParam.method = "reqGetErrCodeList";
  38. oParam.inds = "req=ds_main_cond";
  39. oParam.outds = "ds_main_mercd_mercdlist=mercdlist";
  40. oParam.async = false;
  41. //oParam.callback = "cf_TRMMB08501";
  42. tranf_submit(oParam);
  43. }
  44. /**
  45. * _desc : 진료오류코드 리스트 클릭시 기본정보 설정
  46. * _
  47. * _param :
  48. * _return :
  49. * _author : 엄영만
  50. * _---------------------------------------------------
  51. */
  52. function fSetErrCodeInfo(){
  53. var nRow = ds_main_mercd_mercdlist.rowposition;
  54. var sErrCd = ds_main_mercd_mercdlist.getColumn(nRow, "errcd");
  55. if(!utlf_isNull(sErrCd)) {
  56. ds_main_errcdinfo_errcodeinfo.clearData();
  57. ds_main_errcdinfo_exdeptinfo.clearData();
  58. ds_main_errcdinfo_exuserinfo.clearData();
  59. ds_main_errcdinfo_expatinfo.clearData();
  60. dsf_makeValue( ds_send_reqdata, "userid", "string", sysf_getUserInfo("userid"));
  61. dsf_makeValue( ds_send_reqdata, "deptcd", "string", sysf_getUserInfo("dutplcecd"));
  62. dsf_makeValue( ds_send_reqdata, "errcd", "string", sErrCd);
  63. var oParam = {};
  64. oParam.id = "TRMMB08502";
  65. oParam.service = "prcpbaseapp.PrcpClsMngt";
  66. oParam.method = "reqGetErrCodeInfo";
  67. oParam.inds = "req=ds_send_reqdata";
  68. oParam.outds = "ds_main_errcdinfo_errcodeinfo=errcodeinfo ds_main_errcdinfo_exdeptinfo=exdeptinfo ds_main_errcdinfo_exuserinfo=exuserinfo ds_main_errcdinfo_expatinfo=expatinfo";
  69. oParam.async = false;
  70. oParam.callback = "cf_TRMMB08502";
  71. tranf_submit(oParam);
  72. }
  73. }
  74. function cf_TRMMB08502(sSvcId, nErrorCode, sErrorMsg) {
  75. if(nErrorCode < 0) return;
  76. //input박스 비활성화
  77. grp_right_top.ipt_errcd.enable = false;
  78. ds_main_recv.clearData();
  79. }
  80. /**
  81. * _desc : 진료오류코드 상세정보 저장
  82. * _
  83. * _param :
  84. * _return :
  85. * _author : 엄영만
  86. * _---------------------------------------------------
  87. */
  88. function fSaveErrCodeInfo(){
  89. if(utlf_isNull(ds_main_errcdinfo_errcodeinfo.getColumn(0, "errcd"))){
  90. sysf_messageBox("오류코드을","C001");
  91. return false;
  92. }
  93. if(utlf_isNull(ds_main_errcdinfo_errcodeinfo.getColumn(0, "errnm"))){
  94. sysf_messageBox("코드명을","C001");
  95. return false;
  96. }
  97. if(utlf_isNull(ds_main_errcdinfo_errcodeinfo.getColumn(0, "fromdd"))){
  98. sysf_messageBox("적용기간의 시작일자를","C001");
  99. return false;
  100. }
  101. if(utlf_isNull(ds_main_errcdinfo_errcodeinfo.getColumn(0, "todd"))){
  102. sysf_messageBox("적용기간의 종료일자를","C001");
  103. return false;
  104. }
  105. if(utlf_isNull(ds_main_errcdinfo_errcodeinfo.getColumn(0, "superrcd"))){
  106. sysf_messageBox("상위코드을","C001");
  107. return false;
  108. }
  109. if(utlf_isNull(ds_main_errcdinfo_errcodeinfo.getColumn(0, "errmsg"))){
  110. sysf_messageBox("메세지을","C001");
  111. return false;
  112. }
  113. if( sysf_messageBox("기본정보를","Q002") == 6 ){
  114. ds_send_savedata_mercdinfo.copyData(ds_main_errcdinfo_errcodeinfo);
  115. var oParam = {};
  116. oParam.id = "TXMMB08501";
  117. oParam.service = "prcpbaseapp.PrcpClsMngt";
  118. oParam.method = "reqExeSaveErrCodeInfo";
  119. oParam.inds = "req=ds_main_errcdinfo_errcodeinfo";
  120. oParam.outds = "";
  121. oParam.async = false;
  122. oParam.callback = "cf_TXMMB08501";
  123. tranf_submit(oParam);
  124. }
  125. }
  126. function cf_TXMMB08501(sSvcId, nErrorCode, sErrorMsg) {
  127. if(nErrorCode < 0) return;
  128. fGetMercdList();
  129. }
  130. /**
  131. * _desc : 진료공통코드 예외 리스트 저장
  132. * _
  133. * _param :
  134. * _return :
  135. * _author : 엄영만
  136. * _---------------------------------------------------
  137. */
  138. function fSaveErrCdExInfo(){
  139. var sErrCd = ds_main_errcdinfo_errcodeinfo.getColumn(0, "errcd");
  140. if(utlf_isNull(sErrCd)) {
  141. sysf_messageBox("선택된 오류코드가 없습니다. 오류코드를 선택하세요.", "E999");
  142. return;
  143. } else {
  144. if( sysf_messageBox(sErrCd + " 코드의 예외조건 정보를","Q002") == 6 ){
  145. var tmp1 = grdf_getGridUpdateData(grp_right_bottom.grd_notapply_dept, "all");
  146. grdf_setStatusColumn(tmp1, "state");
  147. ds_send_data1.copyData(tmp1, true);
  148. //trace('11'+tmp1.saveXML());
  149. var tmp2 = grdf_getGridUpdateData(grp_right_bottom.grd_notapply_user, "all");
  150. grdf_setStatusColumn(tmp2, "state");
  151. ds_send_data2.copyData(tmp2, true);
  152. //trace('22'+tmp2.saveXML());
  153. var tmp3 = grdf_getGridUpdateData(grp_right_bottom.grd_notapply_pat, "all");
  154. grdf_setStatusColumn(tmp3, "state");
  155. ds_send_data3.copyData(tmp3, true);
  156. //trace('33'+tmp3.saveXML());
  157. var oParam = {};
  158. oParam.id = "TXMMB08502";
  159. oParam.service = "prcpbaseapp.PrcpClsMngt";
  160. oParam.method = "reqExeSaveErrCdExInfo";
  161. oParam.inds = "exdeptinfo=ds_send_data1:A exuserinfo=ds_send_data2:A expatinfo=ds_send_data3:A";
  162. oParam.outds = "";
  163. oParam.async = false;
  164. oParam.callback = "cf_TXMMB08502";
  165. tranf_submit(oParam);
  166. }
  167. }
  168. }
  169. function cf_TXMMB08502(sSvcId, nErrorCode, sErrorMsg) {
  170. if(nErrorCode < 0) {
  171. sysf_messageBox("저장에"+sErrorMsg,"I009");
  172. return;
  173. } else {
  174. fSetErrCodeInfo();
  175. }
  176. }
  177. function fCompareDate(){
  178. var fromdd = ds_main_applyinfo_prcpinfo.getColumn(0, "fromdd");
  179. var todd = ds_main_applyinfo_prcpinfo.getColumn(0, "todd");
  180. if(!utlf_isNull(fromdd) && !utlf_isNull(todd)){
  181. if(todd < fromdd){
  182. sysf_messageBox("시작일자가 종료일자보다 빠를 수","I004");
  183. return;
  184. }
  185. }
  186. }
  187. /*
  188. * param = D -> 부서 U -> 사용자 P -> 환자 C -> 관련코드
  189. */
  190. function fGridAdd(pRef, sFlag){
  191. var sErrCd = "";
  192. var sFromDd = "";
  193. var sExId = "";
  194. var sExIdNm = "";
  195. var sNodeSet = "";
  196. sErrCd = ds_main_errcdinfo_errcodeinfo.getColumn(0, "errcd");
  197. sFromDd = ds_main_errcdinfo_errcodeinfo.getColumn(0, "fromdd");
  198. if(utlf_isNull(sErrCd) || utlf_isNull(sFromDd)) {
  199. sysf_messageBox("선택된 오류코드가 없습니다. 오류코드를 선택하세요.", "E999");
  200. return;
  201. }
  202. if(sFlag == "D"){
  203. sExId = ds_main_objectinfo_dept.getColumn(0, "orddept");
  204. sExIdNm = ds_init_orddept.lookup("deptcd",sExId, "depthngnm");
  205. } else if(sFlag == "U"){
  206. sExId = ds_main_objectinfo_user.getColumn(0, "orddrid");
  207. sExIdNm = ds_init_userlist.lookup("userid", sExId, "usernm");
  208. } else if(sFlag == "P"){
  209. frmf_modal("SPPMC02500", "SPPMC02500", "", "", "", "", "", "", "", "", "", "", "M");
  210. sExId = ds_patinfolist.getColumn(0, "pid");
  211. sExIdNm = ds_patinfolist.getColumn(0, "hngnm");
  212. } else {
  213. return;
  214. }
  215. if(!utlf_isNull(sExId)){
  216. if(fCheckDup(sExId, sNodeSet)){
  217. if(sFlag == "D"){
  218. msg = "해당 부서는";
  219. }else if(sFlag == "U"){
  220. msg = "해당 사용자는";
  221. }else if(sFlag == "P"){
  222. msg = "해당 환자는";
  223. }else{}
  224. sysf_messageBox(msg,"E006");
  225. return;
  226. }
  227. var nRow = pRef.addRow();
  228. pRef.setColumn(nRow,"errcd", sErrCd);
  229. pRef.setColumn(nRow,"fromdd",sFromDd);
  230. pRef.setColumn(nRow,"exno", "0");
  231. pRef.setColumn(nRow,"extype",sFlag);
  232. pRef.setColumn(nRow,"exid", sExId);
  233. pRef.setColumn(nRow,"exidnm",sExIdNm);
  234. ds_main_objectinfo_dept.setColumn( 0, "orddept","");
  235. ds_main_objectinfo_user.setColumn( 0, "orddept","");
  236. ds_main_objectinfo_user.setColumn( 0, "orddrid","");
  237. }else{
  238. sysf_messageBox("추가 할 항목을 아래에서 선택 하세요.", "I999");
  239. return;
  240. }
  241. }
  242. function fGridDel(pRef, pGrid){
  243. var sNodeSet = "";
  244. var nRow = new Array();
  245. nRow[0] = pRef.rowposition;
  246. var nStatus = null;
  247. if( nRow[0] < 0 ){
  248. alert("삭제할 항목을 선택해주십시오.");
  249. return;
  250. }
  251. nStatus = pRef.getRowType(nRow[0]);
  252. //trace("nStatus :"+nStatus);
  253. if(nStatus == 1) { // 기존데이터
  254. //pRef.setRowType(nRow) = 1;
  255. grdf_setStatus(pGrid, "D", nRow)
  256. } else if (nStatus == 2) { // 신규데이터
  257. pRef.deleteRow(nRow);
  258. }
  259. }
  260. function fCheckDup(sValue, sNodeSet){
  261. var nCnt = sNodeSet.rowcount;
  262. var bExist = false;
  263. for(i=0; i< nCnt; i++){
  264. if(sValue == eval(sNodeSet).getColumn(i, "exid")){
  265. bExist = true;
  266. }
  267. }
  268. return bExist;
  269. }
  270. ]]></Script>