SPMMO14800.xjs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/*
  3. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  4. 입원예약내역 (SPMMO14800_입원예약내역.xrw - JScript )
  5. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  6. */
  7. var sINREQFRMINFO_PATH = ds_main_inreqfrminfo_inreqfrminfo;
  8. var sINREQHISTLIST_PATH = ds_main_inreqhistinfo_inreqhistlist;
  9. /**
  10. * @desc : 입원결정서 내역 조회
  11. * @
  12. * @param :
  13. * @return :
  14. * @author : 오지훈
  15. * @---------------------------------------------------
  16. */
  17. function fInitialize_SPMMO14800(){
  18. ds_main_inreqhistinfo_inreqhistlist.clearData();
  19. var arrParam = [{dsNm: "ds_init_inrsrvcnclresn_P0020", cdGrpId: "P0020"},
  20. {dsNm: "ds_init_specroomyn_P0378", cdGrpId: "P0378"}];
  21. appf_getCodeList(arrParam);
  22. rdo_specroomyn.position.height = Math.ceil(ds_init_specroomyn_P0378.rowcount / 3) * 15;
  23. if( Math.ceil(ds_init_specroomyn_P0378.rowcount / 3) > 2 ){
  24. //this.position.height += (Math.ceil(ds_init_specroomyn_P0378.rowcount / 3) - 2) * 15;
  25. this.scrollbars = "alwaysvert";
  26. }else{
  27. this.scrollbars = "autoboth";
  28. }
  29. lf_mmbfGetDeptCodeComboList(ds_init_orddept_dept, "D");
  30. ds_main_cond.setColumn(0, "year" , utlf_getCurrentDate().substr(0, 4)); //year
  31. ds_main_cond.setColumn(0, "month", utlf_getCurrentDate().substr(4, 2)); //month
  32. //grd_calendar.dataheight = 31; // grid data height default set
  33. fReqInReqCalendar(); //달력조회
  34. }
  35. /**
  36. * @desc : 입원결정서 내역 조회
  37. * @
  38. * @param : pid - 등록번호
  39. * : inrsrvacptseqno- 입원예약번호
  40. * @return :
  41. * @author : 오지훈
  42. * @---------------------------------------------------
  43. */
  44. function fReqInReqHistList(pid, inrsrvacptdd, orddeptcd, inrsrvacptseqno){
  45. ds_send_reqdata.setColumn(0, "pid" , pid);
  46. ds_send_reqdata.setColumn(0, "inrsrvacptdd" , inrsrvacptdd);
  47. ds_send_reqdata.setColumn(0, "orddeptcd" , orddeptcd);
  48. ds_send_reqdata.setColumn(0, "inrsrvacptseqno" , inrsrvacptseqno);
  49. ds_send_reqdata.setColumn(0, "queryflag", "nurse"); //간호 조회용 쿼리, 미래일자 입원결정서는 조회하지 않는다.
  50. var oParam = {};
  51. oParam.id = "TRMMO00109";
  52. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  53. oParam.method = "reqGetInReqHistList";
  54. oParam.inds = "req=ds_send_reqdata";
  55. oParam.outds = "ds_main_inreqhistinfo_inreqhistlist=inreqhistlist ds_main_inreqhistinfo_diagcdlist=diagcdlist ds_main_inreqhistinfo_opcdlist=opcdlist ds_main_inreqhistinfo_dschchkyn=dschchkyn";
  56. oParam.async = false;
  57. oParam.callback = "cf_TRMMO00109";
  58. tranf_submit(oParam);
  59. if( arErrorCode.pop("TRMMO00109") > -1 ){
  60. fDispInReqHistInfo(0);
  61. }
  62. fReqInReqDiagOpList(); //입원결정서 진단,수술조회
  63. }
  64. function cf_TRMMO00109(sSvcId, nErrorCode, sErrorMsg) {
  65. arErrorCode.push(sSvcId, nErrorCode);
  66. if( !utlf_isNull(ds_main_inreqhistinfo_inreqhistlist.getColumnInfo("orddeptcd")) ){
  67. ds_main_inreqhistinfo_inreqhistlist.addColumn("orgorddeptcd", "string");
  68. //ds_main_inreqhistinfo_inreqhistlist.updateColID("orddeptcd", "orgorddeptcd");
  69. for(var i =0; i< ds_main_inreqhistinfo_inreqhistlist.rowcount; i++){
  70. ds_main_inreqhistinfo_inreqhistlist.setColumn(i, "orgorddeptcd", ds_main_inreqhistinfo_inreqhistlist.getColumn(i, "orddeptcd"));
  71. }
  72. }
  73. if( !utlf_isNull(ds_main_inreqhistinfo_opcdlist.getColumnInfo("diagcd")) ){
  74. ds_main_inreqhistinfo_opcdlist.updateColID("diagcd", "orgopcd");
  75. }
  76. }
  77. /**
  78. * @desc : 입원내역 리스트 클릭시 -> 입원내역 정보 display
  79. * @
  80. * @param :
  81. * @return :
  82. * @author : 오지훈
  83. * @---------------------------------------------------
  84. */
  85. function fDispInReqHistInfo(currow){
  86. var orddeptcd = sINREQHISTLIST_PATH.getColumn(currow, "orddeptcd");
  87. if( utlf_isNull(orddeptcd) ){
  88. return;
  89. }
  90. lf_mmbfGetUserComboList(ds_init_userlist_usercombo, orddeptcd, "0330");
  91. sINREQFRMINFO_PATH.clearData();
  92. sINREQFRMINFO_PATH.addRow();
  93. sINREQFRMINFO_PATH.copyRow(0, sINREQHISTLIST_PATH, currow);
  94. }
  95. /**
  96. * @desc : 입원의뢰서 진단,수술 리스트 조회
  97. * @
  98. * @param :
  99. * @return :
  100. * @author : 오지훈
  101. * @---------------------------------------------------
  102. */
  103. function fReqInReqDiagOpList(){
  104. var pid = sINREQFRMINFO_PATH.getColumn(0, "pid");
  105. var inhopedd = sINREQFRMINFO_PATH.getColumn(0, "inhopedd");
  106. var orddeptcd= sINREQFRMINFO_PATH.getColumn(0, "orddeptcd");
  107. var orddrid = sINREQFRMINFO_PATH.getColumn(0, "orddrid");
  108. if( utlf_isNull(pid) || utlf_isNull(inhopedd) || utlf_isNull(orddeptcd) || utlf_isNull(orddrid) ){ //입원결정서가 없는 경우,
  109. return; //입원결정서 진단을 조회하지 않는다.
  110. }
  111. ds_send_reqdata.setColumn(0, "pid" , pid);
  112. ds_send_reqdata.setColumn(0, "orddd" , inhopedd); //입원희망일자
  113. ds_send_reqdata.setColumn(0, "cretno" , 0);
  114. ds_send_reqdata.setColumn(0, "orddeptcd", orddeptcd);
  115. ds_send_reqdata.setColumn(0, "orddrid" , orddrid);
  116. var oParam = {};
  117. oParam.id = "TRMMO00112";
  118. oParam.service = "prcpmngtapp.PatDiagMngt";
  119. oParam.method = "reqGetInReqDiagInfo";
  120. oParam.inds = "req=ds_send_reqdata";
  121. oParam.outds = "ds_main_diaginfo_diagcdlist=diagcdlist ds_main_diaginfo_opcdlist=opcdlist";
  122. oParam.async = false;
  123. //oParam.callback = "cf_TRMMO00112";
  124. tranf_submit(oParam);
  125. ds_main_diaginfo_diagcdlist.rowposition = -1;
  126. ds_main_diaginfo_opcdlist.rowposition = -1;
  127. }
  128. /**
  129. * @desc : 입원의뢰서 달력 조회
  130. * @
  131. * @param :
  132. * @return :
  133. * @author : 오지훈
  134. * @---------------------------------------------------
  135. */
  136. function fReqInReqCalendar(){
  137. ds_main_week_week.clearData();
  138. ds_main_calendar_calendar.clearData();
  139. var year = ds_main_cond.getColumn(0, "year");
  140. var month = ds_main_cond.getColumn(0, "month");
  141. var orgyear = year;
  142. var orgmonth = month;
  143. ds_send_reqdata.setColumn(0, "fromdd" , year + "-" + month + "-" + "01");
  144. if( month == 12 ){ //12월인 경우, 해를 넘겨서 계산한다.
  145. year++;
  146. month = "01";
  147. }else{
  148. month = eval(month) + 1;
  149. if( month < 10 ){ month = "0".concat(month); }
  150. }
  151. ds_send_reqdata.setColumn(0, "todd" , year + "-" + month + "-" + "01");
  152. ds_send_reqdata.setColumn(0, "basedd" , ("" + orgyear + "").concat(orgmonth));
  153. ds_send_reqdata.setColumn(0, "orddeptcd", sINREQFRMINFO_PATH.getColumn(0, "orddeptcd"));
  154. var oParam = {};
  155. oParam.id = "TRMMO00110";
  156. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  157. oParam.method = "reqGetInReqCalendar";
  158. oParam.inds = "req=ds_send_reqdata";
  159. oParam.outds = "ds_main_calendar_calendar=calendar";
  160. oParam.async = false;
  161. oParam.callback = "cf_TRMMO00110";
  162. tranf_submit(oParam);
  163. if( arErrorCode.pop("TRMMO00110") > -1 ){
  164. fMakeCalendar(); //조회 후 달력 값을 설정
  165. }
  166. }
  167. function cf_TRMMO00110(sSvcId, nErrorCode, sErrorMsg) {
  168. arErrorCode.push(sSvcId, nErrorCode);
  169. }
  170. /**
  171. * @desc : 달력값 설정
  172. * @
  173. * @param :
  174. * @return :
  175. * @author : 오지훈
  176. * @---------------------------------------------------
  177. */
  178. function fMakeCalendar(){
  179. ds_main_week_week.addRow();
  180. var row = -1;
  181. var col = 0;
  182. var patsum = 0;
  183. var totcnt = ds_main_calendar_calendar.rowcount;
  184. var sExprColor = "EXPR(";
  185. for( var i=0 ; i<totcnt ; i++ ){
  186. row = ds_main_calendar_calendar.getColumn(i, "week")-1;
  187. col = ds_main_calendar_calendar.getColumn(i, "day") - 1;
  188. patsum = ds_main_calendar_calendar.getColumn(i, "patsum");
  189. dutflag = ds_main_calendar_calendar.getColumn(i, "dutflag");
  190. if( dutflag == 4 ){ //토
  191. sExprColor += "currow == "+row+" && self.col == "+col+" ? '#0000FF' : ";
  192. //grd_calendar.cellstyle("color", row, col) = "#0000FF";
  193. }else if( dutflag == 8 ){ //일
  194. sExprColor += "currow == "+row+" && self.col == "+col+" ? '#FF0000' : ";
  195. //grd_calendar.cellstyle("color", row, col) = "#FF0000";
  196. }else{ //휴일
  197. sExprColor += "currow == "+row+" && self.col == "+col+" ? '#000000' : ";
  198. //grd_calendar.cellstyle("color", row, col) = "#000000";
  199. }
  200. var sColNm = grd_calendar.getCellProperty("Body", col, "text").replace("bind:", "");
  201. ds_main_week_week.setColumn(row, sColNm, (i+1) + "\n(" + patsum + ")");
  202. if( col == 6 ){
  203. ds_main_week_week.addRow();
  204. }
  205. }
  206. sExprColor += "''";
  207. for( var i=0 ; i<grd_calendar.getCellCount("Body") ; i++ ){
  208. grd_calendar.setCellProperty("Body", i, "color", sExprColor);
  209. grd_calendar.setCellProperty("Body", i, "color2", sExprColor);
  210. grd_calendar.setCellProperty("Body", i, "selectcolor", sExprColor);
  211. }
  212. ds_main_week_week.rowposition = -1;
  213. }
  214. /**
  215. * @desc : 달력 년도 변경 버튼 클릭
  216. * @
  217. * @param : pflag - bf 이전 해
  218. * - af 다음 해
  219. * @return :
  220. * @author : 오지훈
  221. * @---------------------------------------------------
  222. */
  223. function fClkBtnYear(pflag){
  224. ds_main_week_week.clearData();
  225. var year = ds_main_cond.getColumn(0, "year");
  226. if( pflag == "bf" ){
  227. ds_main_cond.setColumn(0, "year", --year);
  228. }else if( pflag == "af" ){
  229. ds_main_cond.setColumn(0, "year", ++year);
  230. }
  231. fReqInReqCalendar();
  232. }
  233. /**
  234. * @desc : 당력 월 변경 버튼 클릭
  235. * @
  236. * @param : pflag - bf 이전 해
  237. * - af 다음 해
  238. * @return :
  239. * @author : 오지훈
  240. * @---------------------------------------------------
  241. */
  242. function fClkBtnMonth(pflag){
  243. ds_main_week_week.clearData();
  244. var year = ds_main_cond.getColumn(0, "year");
  245. var month = ds_main_cond.getColumn(0, "month");
  246. if( pflag == "af" ){
  247. month = eval(month) + 1;
  248. if( month == 13 ){
  249. year = eval(year) + 1;
  250. month = "01";
  251. }else if( month < 10 ){ //2자리가 아닌 경우, 앞자리에 0을 붙인다.
  252. month = "0".concat(month);
  253. }
  254. }else if( pflag == "bf" ){
  255. month -= 1;
  256. if( month == 0 ){
  257. year -= 1;
  258. month = 12;
  259. }else if( month < 10 ){ //2자리가 아닌 경우, 앞자리에 0을 붙인다.
  260. month = "0".concat(month);
  261. }
  262. }
  263. ds_main_cond.setColumn(0, "year", year);
  264. ds_main_cond.setColumn(0, "month", month);
  265. fReqInReqCalendar();
  266. }
  267. function fReqPatInfo(pid){
  268. if(pid != ""){
  269. fReqInReqHistList(pid); //입원내역조회
  270. fReqInReqDiagOpList(); //입원결정서 진단,수술조회
  271. }
  272. }
  273. ]]></Script>