SMPMB03700.xjs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type ="xscript4.0"><![CDATA[function fInitRsrvCtrl() {
  3. if (sysf_getUserInfo("dutplceinstcd") != "031") {
  4. return;
  5. }
  6. ds_ctrl_send_rsrvinfo.clearData(); ds_ctrl_send_rsrvinfo.addRow();
  7. ds_ctrl_main_ctrllist_ctrlinfo.clearData(); ds_ctrl_main_ctrllist_ctrlinfo.addRow();
  8. ds_ctrl_temp_ctrllist_ctrlinfo.clearData(); ds_ctrl_temp_ctrllist_ctrlinfo.addRow();
  9. //grd_ctrl.refresh();
  10. grd_ctrl.resizeCells();
  11. grd_ctrl.rebuildStyle();
  12. // 제어 적용 여부 조회
  13. // submit("TRPMB03711", false);
  14. var oParam = {};
  15. oParam.id = "TRPMB03711";
  16. oParam.service = "pambaseinfomngtapp.ExamRsrvInfo";
  17. oParam.method = "reqGetCtrlApplyYN";
  18. oParam.outds = "";
  19. oParam.async = false;
  20. oParam.callback = "cf_TRPMB03711";
  21. tranf_submit(oParam);
  22. /*
  23. function cf_TRPMB03711(sSvcId, nErrorCode, sErrorMsg) {
  24. if(nErrorCode < 0) return;
  25. }
  26. function cf_TRPMB03711(sSvcId, nErrorCode, sErrorMsg) {
  27. arErrorCode.push(sSvcId, nErrorCode);
  28. }
  29. arErrorCode.pop("TRPMB03711") > -1
  30. arErrorCode.pop("TRPMB03711") < 0
  31. */
  32. if (IS_RSRVUSER) {
  33. btn_rsrv.enable = true;
  34. }
  35. }
  36. // 예약 제어 정보 조회
  37. function fGetRsrvCtrlList(pExcuroomcd, pRsrvdd, pRsrvtm) {
  38. // 호출 시점
  39. // 1. 검사 선택 후
  40. // 2. 검사실 선택 후
  41. // 3. 검사일 선택 후
  42. // 4. 검사 시각 선택 후
  43. // 5. 예약 직전
  44. if (sysf_getUserInfo("dutplceinstcd") != "031") {
  45. return;
  46. }
  47. // 검사 현황 내역의 경로
  48. var row = grd_mainordlist5.row;
  49. var rPath = "ds_main_exculist_mainordlist5[" + row + "]/";
  50. // 선택된 검사 현황의 검사코드가 없으면 진행하지 않음
  51. ds_ctrl_send_rsrvinfo.clearData(); ds_ctrl_send_rsrvinfo.addRow();
  52. if (model.getValue(rPath + "calcscorcd") == "") {
  53. return;
  54. }
  55. // 기본 항목
  56. dsf_makeValue( ds_ctrl_send_rsrvinfo, "rsrvplce", "string", "T"); // 예약처 (통합예약)
  57. dsf_makeValue( ds_ctrl_send_rsrvinfo, "suppdeptcd", "string", model.getValue(rPath + "suppdeptcd")); // 수행부서
  58. var excuroomcd = pExcuroomcd;
  59. if (excuroomcd == null || excuroomcd == "") {
  60. excuroomcd = model.getValue(rPath + "excuroomcd");
  61. }
  62. dsf_makeValue( ds_ctrl_send_rsrvinfo, "excuroomcd", "string", excuroomcd); // 검사실
  63. dsf_makeValue( ds_ctrl_send_rsrvinfo, "srchdd", "string", utlf_getCurrentDate()); // 조회일
  64. var excucd = model.getValue(rPath + "calcscorcd");
  65. excucd = excucd == "" ? "T" : excucd;
  66. dsf_makeValue( ds_ctrl_send_rsrvinfo, "excucd", "string", excucd); // 검사코드
  67. // 부가 항목 (그리드)
  68. dsf_makeValue( ds_ctrl_send_rsrvinfo, "rsrvexcuroomposscd", "string", model.getValue(rPath + "excuroomnm")); // 예약 가능 검사실
  69. dsf_makeValue( ds_ctrl_send_rsrvinfo, "pid", "string", model.getValue(rPath + "pid")); // 등록번호
  70. dsf_makeValue( ds_ctrl_send_rsrvinfo, "ordflag", "string", model.getValue(rPath + "genrflag")); // 처방발생구분(진료형태)
  71. dsf_makeValue( ds_ctrl_send_rsrvinfo, "orddd", "string", model.getValue(rPath + "orddd")); // 진료일
  72. dsf_makeValue( ds_ctrl_send_rsrvinfo, "cretno", "string", model.getValue(rPath + "cretno")); // 생성번호
  73. dsf_makeValue( ds_ctrl_send_rsrvinfo, "orddeptcd", "string", model.getValue(rPath + "orddeptcd")); // 진료과
  74. dsf_makeValue( ds_ctrl_send_rsrvinfo, "orddrid", "string", model.getValue(rPath + "orddrid")); // 진료의
  75. dsf_makeValue( ds_ctrl_send_rsrvinfo, "prcpdd", "string", model.getValue(rPath + "prcpdd")); // 처방일
  76. dsf_makeValue( ds_ctrl_send_rsrvinfo, "execprcpuniqno", "string", model.getValue(rPath + "prcpdd")); // 처방일자일련번호
  77. var rsrvdt = model.getValue(rPath + "srchrsrvtm");
  78. var rsrvdd = pRsrvdd;
  79. var rsrvtm = pRsrvtm;
  80. if (rsrvdd == null || rsrvdd == "") {
  81. rsrvdd = rsrvdt.substr(0, 8);
  82. }
  83. if (rsrvtm == null || rsrvtm == "") {
  84. rsrvtm = rsrvdt.substr(8, 4);
  85. }
  86. dsf_makeValue( ds_ctrl_send_rsrvinfo, "rsrvdd", "string", rsrvdd); // 예약일
  87. dsf_makeValue( ds_ctrl_send_rsrvinfo, "rsrvtm", "string", rsrvtm); // 예약시각
  88. // 처방 전달 사항
  89. var prcpcmt = ds_main_comment1.getColumn(0, "prcpcmt");
  90. dsf_makeValue( ds_ctrl_send_rsrvinfo, "prcpcmt", "string", prcpcmt); // 처방 전달 사항
  91. // 환자 전달 사항 (구분자 '|'로 연결)
  92. var cnt = instance1.selectNodes("ds_main_exculist_subordlist3_rows").length;
  93. var patcmt = "";
  94. for (var i = 1; i <= cnt; i++) {
  95. patcmt += ds_main_exculist_subordlist3_rows.getColumn(i, "patcmt");
  96. if (i < cnt) {
  97. patcmt += "|";
  98. }
  99. }
  100. dsf_makeValue( ds_ctrl_send_rsrvinfo, "patcmt", "string", patcmt); // 환자 전달 사항
  101. // ref = "ds_ctrl_send_rsrvinfo"
  102. // resultref = "ds_ctrl_temp_ctrllist_ctrlinfo"
  103. // submit("TRPMB03710", false);
  104. var oParam = {};
  105. oParam.id = "TRPMB03710";
  106. oParam.service = "pambaseinfomngtapp.ExamRsrvInfo";
  107. oParam.method = "reqGetRsrvControlList";
  108. oParam.inds = "req=ds_";
  109. oParam.outds = "ds_=ctrl ds_=term";
  110. oParam.async = false;
  111. oParam.callback = "cf_TRPMB03710";
  112. tranf_submit(oParam);
  113. /*
  114. function cf_TRPMB03710(sSvcId, nErrorCode, sErrorMsg) {
  115. if(nErrorCode < 0) return;
  116. }
  117. function cf_TRPMB03710(sSvcId, nErrorCode, sErrorMsg) {
  118. arErrorCode.push(sSvcId, nErrorCode);
  119. }
  120. arErrorCode.pop("TRPMB03710") > -1
  121. arErrorCode.pop("TRPMB03710") < 0
  122. */
  123. var tPath = "ds_ctrl_temp_ctrllist_ctrlinfo";
  124. var mPath = "ds_ctrl_main_ctrllist_ctrlinfo";
  125. var cnt = instance1.selectNodes(tPath).length;
  126. var flag = true;
  127. if (cnt == instance1.selectNodes(mPath).length) {
  128. flag = false;
  129. // 데이터 확인 후 기존 데이터와 달라졌을 경우만 그리드에 새로 표시
  130. for (var i = 1; i <= cnt; i++) {
  131. if (eval(tPath).getColumn(i, "rsrvplce") != eval(mPath).getColumn(i, "rsrvplce") ||
  132. eval(tPath).getColumn(i, "suppdeptcd") != eval(mPath).getColumn(i, "suppdeptcd") ||
  133. eval(tPath).getColumn(i, "excuroomcd") != eval(mPath).getColumn(i, "excuroomcd") ||
  134. eval(tPath).getColumn(i, "excucd") != eval(mPath).getColumn(i, "excucd") ||
  135. eval(tPath).getColumn(i, "ctrlseq") != eval(mPath).getColumn(i, "ctrlseq") ||
  136. eval(tPath).getColumn(i, "ctrldesc") != eval(mPath).getColumn(i, "ctrldesc") ||
  137. eval(tPath).getColumn(i, "ctrlflag") != eval(mPath).getColumn(i, "ctrlflag") ||
  138. eval(tPath).getColumn(i, "appflag") != eval(mPath).getColumn(i, "appflag")) {
  139. flag = true;
  140. break;
  141. }
  142. }
  143. }
  144. if (flag) {
  145. model.resetInstanceNode(mPath);
  146. for (var i = 1; i <= cnt; i++) {
  147. model.makeValue(mPath + "[" + i + "]_rsrvplce", eval(tPath).getColumn(i, "rsrvplce"));
  148. model.makeValue(mPath + "[" + i + "]_suppdeptcd", eval(tPath).getColumn(i, "suppdeptcd"));
  149. model.makeValue(mPath + "[" + i + "]_excuroomcd", eval(tPath).getColumn(i, "excuroomcd"));
  150. model.makeValue(mPath + "[" + i + "]_excucd", eval(tPath).getColumn(i, "excucd"));
  151. model.makeValue(mPath + "[" + i + "]_ctrlseq", eval(tPath).getColumn(i, "ctrlseq"));
  152. model.makeValue(mPath + "[" + i + "]_ctrldesc", eval(tPath).getColumn(i, "ctrldesc"));
  153. model.makeValue(mPath + "[" + i + "]_ctrlflag", eval(tPath).getColumn(i, "ctrlflag"));
  154. model.makeValue(mPath + "[" + i + "]_appflag", eval(tPath).getColumn(i, "appflag"));
  155. }
  156. //grd_ctrl.refresh();
  157. grd_ctrl.resizeCells();
  158. grd_ctrl.rebuildStyle();
  159. var tPath = "ds_ctrl_temp_termlist_terminfo";
  160. var tCnt = instance1.selectNodes(tPath).length;
  161. // 예약 허용 여부
  162. var rsrvflag = true;
  163. // 제어 적용 여부
  164. var ctrlyn = ds_ctrl_hidden_applyinfo.getColumn(0, "ctrlyn") == "Y" ? true : false;
  165. // 제어 적용
  166. for (var i = 1; i <= cnt; i++) {
  167. var appflag = eval(mPath).getColumn(i, "appflag") == "Y" ? true : false;
  168. var ctrlflag = eval(mPath).getColumn(i, "ctrlflag");
  169. if (ctrlflag == "I") { // 정보 (단순 확인용)
  170. grd_ctrl.setCellProprty("body", i, "background", "#ffffff"); grd_ctrl.setCellProperty("body", i, "background2", "#ffffff");
  171. } else if (ctrlflag == "R") { // 예약
  172. grd_ctrl.setCellProprty("body", i, "background", "#ffffa0"); grd_ctrl.setCellProperty("body", i, "background2", "#ffffa0");
  173. if (!appflag) {
  174. grd_ctrl.rowStyle(i, "data", "color") = "#8c8c8c";
  175. }
  176. if (ctrlyn && appflag) {
  177. btn_rsrv.enable = false;
  178. rsrvflag = false;
  179. } else if (IS_RSRVUSER && rsrvflag && btn_rsrv.disabled) { // 하나라도 예약 제한이 걸려있는 것이 있으면 버튼 활성화 하지 않음
  180. btn_rsrv.enable = true;
  181. }
  182. } else if (ctrlflag == "T") { // 통합 예약
  183. grd_ctrl.setCellProprty("body", i, "background", "#ffdcdc"); grd_ctrl.setCellProperty("body", i, "background2", "#ffdcdc");
  184. if (!appflag) {
  185. grd_ctrl.rowStyle(i, "data", "color") = "#8c8c8c";
  186. }
  187. if (RSRV_PLCE != "T") {
  188. if (ctrlyn && appflag) {
  189. btn_rsrv.enable = false;
  190. rsrvflag = false;
  191. } else if (IS_RSRVUSER && rsrvflag && btn_rsrv.disabled) { // 하나라도 예약 제한이 걸려있는 것이 있으면 버튼 활성화 하지 않음
  192. btn_rsrv.enable = true;
  193. }
  194. }
  195. } else if (ctrlflag == "P") { // 팝업 메시지
  196. grd_ctrl.setCellProprty("body", i, "background", "#ebebff"); grd_ctrl.setCellProperty("body", i, "background2", "#ebebff");
  197. if (!appflag) {
  198. grd_ctrl.rowStyle(i, "data", "color") = "#8c8c8c";
  199. }
  200. for (var j = 1; j <= tCnt; j++) {
  201. // 제어항 확인
  202. if (eval(tPath).getColumn(j, "rsrvplce") == eval(mPath).getColumn(i, "rsrvplce") &&
  203. eval(tPath).getColumn(j, "suppdeptcd") == eval(mPath).getColumn(i, "suppdeptcd") &&
  204. eval(tPath).getColumn(j, "excuroomcd") == eval(mPath).getColumn(i, "excuroomcd") &&
  205. eval(tPath).getColumn(j, "excucd") == eval(mPath).getColumn(i, "excucd") &&
  206. eval(tPath).getColumn(j, "ctrlseq") == eval(mPath).getColumn(i, "ctrlseq") &&
  207. eval(tPath).getColumn(j, "itemtype") == "C" &&
  208. eval(tPath).getColumn(j, "refid") == "POPUP") {
  209. alert(eval(tPath).getColumn(j, "valnm"));
  210. }
  211. }
  212. }
  213. }
  214. }
  215. }
  216. ]]></Script>