SMMNP06500.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440
  1. // --------------------------------------------------
  2. // 화면 Loading시 처리하는 함수
  3. // --------------------------------------------------
  4. function fInitScreen() {
  5. ipt_opcnfmdd.value = getCurrentDate();
  6. //var instcd = getUserInfo("dutplceinstcd");
  7. //var standard_yn = "orduseyn";
  8. //var ord_deptflag = 'D';
  9. //var rslt_ref = "/root/main/cond/orddeptlist";
  10. var menuparam = getScreenMenuParameter() ;
  11. model.setValue("/root/main/cond/prestimportid", menuparam); // tab 기본값 (DSC Main)
  12. model.setValue("/root/main/cond/wardcd", model.getValue("/root/code/codeinfo/codelist/cdid"));
  13. //model.setValue("/root/main/cond/wardcd", "2360800000"); // 통원수술센터 setting
  14. radio1.value = "-";
  15. //model.removenode("/root/send");
  16. model.makeNode("/root/send");
  17. model.makeValue("/root/send/opcnfmdd" ,ipt_opcnfmdd.value );
  18. if (menuparam != "DCC") {
  19. button2.visible = false;
  20. }
  21. fGetDCCRsrv();
  22. }
  23. // --------------------------------------------------
  24. // 조회 클릭시
  25. // --------------------------------------------------
  26. function fGetDCCRsrv()
  27. {
  28. model.makeValue("/root/send/ampmflag" ,radio1.value );
  29. grd_rsrvlist.visible = false;
  30. model.removeNodeset("/root/main/rsrv/rsrvlist");
  31. var maxap = parseInt(model.getValue("/root/rsrv/rsrv/maxa")) + parseInt(model.getValue("/root/rsrv/rsrv/maxp"));
  32. for( var i = grd_rsrvlist.cols; i >= 2; i-- ) {
  33. grd_rsrvlist.deleteColumn(i,"false");
  34. }
  35. grd_rsrvlist.caption = "날짜^날짜";
  36. grd_rsrvlist.rebuild();
  37. grd_rsrvlist.refresh();
  38. model.makeValue("/root/send/opdd", model.getValue("/root/main/cond/opcnfmdd"));
  39. submit("TRMNP06501");
  40. var maxa = "";
  41. var maxp = "";
  42. var bed_maxa = model.getValue("/root/rsrv/rsrv[flag = 'BEDCAPA']/maxa");
  43. if(bed_maxa == "") bed_maxa = 0;
  44. var bed_maxp = model.getValue("/root/rsrv/rsrv[flag = 'BEDCAPA']/maxp");
  45. maxa = bed_maxa;
  46. maxp = bed_maxp;
  47. //환자 예약후 bed수 줄일 경우, 환자수 max로 컬럼생성함_20090803_SMY
  48. var pat_maxa = model.getValue("/root/rsrv/rsrv[flag = 'PATCAPA']/maxa");
  49. if(pat_maxa == "") pat_maxa = 0;
  50. var pat_maxp = model.getValue("/root/rsrv/rsrv[flag = 'PATCAPA']/maxp");
  51. if(Number(pat_maxa) > Number(maxa)){
  52. maxa = pat_maxa;
  53. }
  54. if(Number(pat_maxp) > Number(maxp)){
  55. maxp = pat_maxp;
  56. }
  57. //grd_rsrvlist.addColumn(false);
  58. var ampmflag = model.getValue("/root/main/cond/ampmflag");
  59. var coltype = "output";
  60. var nodename = "a";
  61. /*
  62. if ( maxa != "" && grd_rsrvlist.cols < 3 ){
  63. fAddCol( maxa, "/root/main/dcc/dccList", "/root/temp/grid", grd_rsrvlist, nodename, coltype, "오전");
  64. }
  65. var nodename2 = "p";
  66. if ( maxp != "" && grd_rsrvlist.cols < parseInt(maxa)*2 + 3 ){
  67. fAddCol( maxp, "/root/main/dcc/dccList", "/root/temp/grid", grd_rsrvlist, nodename2, coltype, "오후" );
  68. }*/
  69. if ( maxa != "0" ){
  70. fAddCol( maxa, "/root/main/dcc/dccList", "/root/temp/grid", grd_rsrvlist, nodename, coltype);
  71. //캡션 수정
  72. for ( i=0; i< maxa*2; i++){
  73. grd_rsrvlist.caption = grd_rsrvlist.caption +"^"+"오전";
  74. }
  75. }
  76. var nodename2 = "p";
  77. if ( maxp != "" ){
  78. fAddCol( maxp, "/root/main/dcc/dccList", "/root/temp/grid", grd_rsrvlist, nodename2, coltype);
  79. //grd_rsrvlist.caption = "날짜^날짜^오후^오후^오후^오후^오후^오후^오후^오후^오후^오후^오후^오후^오후^오후^오후^오후^오후^오후^오후^오후";
  80. for ( i=0; i< maxp*2; i++){
  81. grd_rsrvlist.caption = grd_rsrvlist.caption +"^"+"오후";
  82. }
  83. }
  84. var nodeCnt = getNodesetCount("/root/rsrv/bedlist");
  85. var pNodeCnt = getNodesetCount("/root/rsrv/pat");
  86. var amPatCnt = 0; //오전 예약명수_20090803_SMY추가
  87. var pmPatCnt = 0; //오후 예약명수_20090803_SMY추가
  88. for(var i = 1; i <= nodeCnt; i++){
  89. var k = 1;
  90. grd_rsrvlist.addRow(true, true);
  91. grd_rsrvlist.valueMatrix(i, 1) = model.getValue("/root/rsrv/bedlist["+i+"]/opdate");
  92. var ambed = model.getValue("/root/rsrv/bedlist["+i+"]/ambed");
  93. var pmbed = model.getValue("/root/rsrv/bedlist["+i+"]/pmbed");
  94. var startCol = "1";
  95. var pstartCol = parseInt(maxa);
  96. if(ambed != ""){
  97. startCol = parseInt(ambed)*2;
  98. }else{
  99. startCol = 0;
  100. }
  101. if( maxa != "0"){
  102. grd_rsrvlist.cellStyle("background-color", parseInt(i), parseInt(startCol)+2, parseInt(i), parseInt(maxa)*2+1) = "#BEBEBE";
  103. }
  104. if(pmbed != "" ){
  105. pstartCol = (parseInt(maxa)+parseInt(pmbed))*2;
  106. }
  107. if( maxp != "")
  108. {
  109. grd_rsrvlist.cellStyle("background-color", parseInt(i), parseInt(pstartCol)+2, parseInt(i), (parseInt(maxp)+parseInt(maxa))*2+1) = "#BEBEBE";
  110. }
  111. var ampmflag = model.getValue("/root/main/cond/ampmflag");
  112. var k, l= 1;
  113. for(var j = 0; j <= pNodeCnt; j++){
  114. var inhopedd = model.getValue("/root/rsrv/pat["+j+"]/inhopedd");
  115. var abbrhngnm = model.getValue("/root/rsrv/pat["+j+"]/abbrhngnm");
  116. var ampm = model.getValue("/root/rsrv/pat["+j+"]/ampm");
  117. var patinfo = model.getValue("/root/rsrv/pat["+j+"]/patinfo");
  118. //var k, l= 1;
  119. //alert(model.getValue("/root/rsrv/bedlist["+i+"]/opdate")+" <> "+scheopdd);
  120. if( model.getValue("/root/rsrv/bedlist["+i+"]/opdate") == inhopedd && abbrhngnm != "" && ampm == "1" && ampmflag != "P"){
  121. grd_rsrvlist.valueMatrix(i,k*2) = abbrhngnm;
  122. grd_rsrvlist.valueMatrix(i,k*2+1) = patinfo;
  123. k++;
  124. amPatCnt++;
  125. }else if( model.getValue("/root/rsrv/bedlist["+i+"]/opdate") == inhopedd && abbrhngnm != "" && ampm == "2" && ampmflag != "A"){
  126. grd_rsrvlist.valueMatrix(i, (maxa*2) + (l*2)) = abbrhngnm;
  127. grd_rsrvlist.valueMatrix(i, (maxa*2) + (l*2+1)) = patinfo;
  128. l++;
  129. pmPatCnt++;
  130. }
  131. // 공지사항
  132. if(model.getValue("/root/rsrv/bedlist["+i+"]/opdate") == "0"){
  133. model.makeValue("/root/send/remark", model.getValue("/root/rsrv/bedlist["+i+"]/remark"));
  134. }
  135. }
  136. //오전, 오후, 전체 예약명수셋팅_20090803_SMY추가
  137. model.setValue("/root/main/cond/ampatcnt", amPatCnt);
  138. model.setValue("/root/main/cond/pmpatcnt", pmPatCnt);
  139. model.setValue("/root/main/cond/totpatcnt", amPatCnt+pmPatCnt);
  140. grd_rsrvlist.valueMatrix(i, 0) = grd_rsrvlist.valueMatrix(i, 1).substr(6, 2) +
  141. "("+ grd_rsrvlist.valueMatrix(i, 1).toDate().getDayOfWeek("K") + ")";
  142. }
  143. if(grd_rsrvlist.valueMatrix(1, 1) == "0"){
  144. grd_rsrvlist.deleteRow(1);
  145. }
  146. for(var i = 1; i < grd_rsrvlist.cols; i++){
  147. grd_rsrvlist.colWidth(i) = 70;
  148. }
  149. for(var i = 1; i < grd_rsrvlist.cols; i++){
  150. grd_rsrvlist.colWidth(2*i-1) = 0;
  151. }
  152. // 날짜 하단에 연번생성요청_20090721
  153. var k=0;
  154. grd_rsrvlist.insertItem(1);
  155. grd_rsrvlist.valueMatrix(1, 0) = "연번";
  156. for(var i=1; i<=2*maxa; i++){
  157. grd_rsrvlist.valueMatrix(1, i) = k;
  158. if((i%2)==1){
  159. k++;
  160. }
  161. }
  162. k=0;
  163. for(var i=(2*maxa)+1; i<=grd_rsrvlist.cols; i++){
  164. grd_rsrvlist.valueMatrix(1, i) = k;
  165. if((i%2)==1){
  166. k++;
  167. }
  168. }
  169. grd_rsrvlist.frozenRows = 1; // 연번row Fix
  170. grd_rsrvlist.frozenCols = 1; // 날짜col Fix
  171. // grd_rsrvlist.rowstyle(1, "all", "background-color") = "#66ffff"; //연번row Color
  172. grd_rsrvlist.cellstyle("background-color", 1, 0, 1, 0) = "#aad4ff";
  173. grd_rsrvlist.cellstyle("background-color", 1, 1, 1, parseInt(2*maxa)) = "#ffd9ff"// "#02e6fc";
  174. grd_rsrvlist.cellstyle("background-color", 1, parseInt(2*maxa)+1, 1, parseInt(grd_rsrvlist.cols)-1) = "#96f5fe";
  175. // 날짜컬럼 색상지정(토요일:파란색/그외 일요일 포함 휴일:빨간색)
  176. for(var i=0; i<=grd_rsrvlist.rows; i++){
  177. var dutflag = model.getValue("/root/rsrv/bedlist["+i+"]/dutflag");
  178. if(dutflag == "4"){ // 토요일:파란색
  179. grd_rsrvlist.cellstyle("background-color", i, 0) = "#3366ff";
  180. }else if(dutflag == "8"){ // 그외 일요일 포함 휴일:빨간색
  181. grd_rsrvlist.cellstyle("background-color", i, 0) = "red";
  182. }
  183. }
  184. grd_rsrvlist.visible = true;
  185. model.refresh();
  186. }
  187. /* --------------------------------------------------*/
  188. /* type : function */
  189. /* access : public */
  190. /* desc : 환자정보 가져오기 */
  191. /* param : 검색구분 */
  192. /* return : */
  193. /* --------------------------------------------------*/
  194. function fSearchPatInfo(qryflag) {
  195. modal("../../../pam/patinfomngtweb/xrw/SPPMC02500", qryflag,"150", "150", "SPPMC02500", "/root/source", "/root/send");
  196. //환자번호 copy
  197. var popupendflag = model.getValue("/root/main/popupendflag");
  198. if (popupendflag == "ok"){
  199. model.setValue("/root/main/rghtref/rghtreflist/pid",model.getValue("/root/main/patinfo/patinfolist/pid"));
  200. model.refresh();
  201. var pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  202. if (pid != null && pid != "" && pid != " " && pid != "-"){
  203. fpidref();
  204. }
  205. }
  206. }
  207. /* --------------------------------------------------*/
  208. /* type : function */
  209. /* access : public */
  210. /* desc : 등록번호에 따른 환자정보 검색 */
  211. /* param : */
  212. /* return : */
  213. /* --------------------------------------------------*/
  214. function fpidref(){
  215. model.removeNodeset("/root/send");
  216. var pid = ipt_pid.value
  217. model.makeValue("/root/send/pid",pid);
  218. if(submit("TRMNI00102")){
  219. var hngnm=model.getValue("/root/main/rghtref/rghtreflist/hngnm");
  220. //데이타가 없을시 이전 출력 내용 삭제.
  221. if(hngnm==""){
  222. opt_hngnm.value="";
  223. opt_gndrage.value="";
  224. opt_rrgstno.value="";
  225. opt_hngnm.refresh();
  226. opt_gndrage.refresh();
  227. opt_rrgstno.refresh();
  228. model.makeValue("/root/main/rghtref/rghtreflist/pid","");
  229. return;
  230. }
  231. }
  232. }
  233. // --------------------------------------------------
  234. // 팝업메뉴
  235. // --------------------------------------------------
  236. function fShowPopupMenu(gridID, menuPath)
  237. {
  238. var gridObj = document.controls.item(gridID);
  239. if(event.button == 3) {
  240. if(gridObj.isCell(event.target) && gridObj.mouseRow >= gridObj.fixedrows){
  241. window.setPopupMenu(true, menuPath, "name", "func", false);
  242. }else{
  243. window.setPopupMenu(false);
  244. }
  245. }
  246. }
  247. function fAddCol( colCnt, nodeset, copyNodeset, pGrid, nodename, coltype)
  248. {
  249. var oldColCnt = parseInt(pGrid.cols);
  250. for ( i=0; i<colCnt*2; i++)
  251. {
  252. oldColCnt++;
  253. if ( coltype == null || coltype=="" )
  254. coltype = "output";
  255. //컬럼 생성
  256. pGrid.insertColumn(i,"ref:"+(nodename + oldColCnt)+"; type:"+coltype+";" + "style:text-align:center; vertical-align:middle;", "after", "false");
  257. //copynode할 원본 노드셋에도 생성된 자식 노드 추가
  258. model.makeNode(copyNodeset+"/" +(nodename + oldColCnt));
  259. }
  260. pGrid.refresh();
  261. }
  262. function fShowPatInfo(){
  263. var cur_Row = grd_rsrvlist.row;
  264. var cur_Col = grd_rsrvlist.col;
  265. var param = grd_rsrvlist.valueMatrix(cur_Row, parseInt(cur_Col)+1);
  266. setParameter("patSum", param);
  267. modal("SPMNP06600");
  268. }
  269. function fShowPrcpInfo(){
  270. model.removeNodeset("/root/send");
  271. var cur_Row = grd_rsrvlist.row;
  272. var cur_Col = grd_rsrvlist.col;
  273. var param = grd_rsrvlist.valueMatrix(cur_Row, parseInt(cur_Col)+1);
  274. patarray = param.split(",");
  275. model.makeValue ( "/root/send/cond1", patarray[0]); // pid
  276. model.makeValue ( "/root/send/cond2", getUserInfo("dutplceinstcd"));
  277. model.makeValue ( "/root/send/cond3", getCurrentDate());
  278. submit ( "TRMMO00129", false );
  279. // 외래예약처방정보 존재시 외래예약처방 저장화면 호출
  280. var srcNodeList = model.instances(0).selectNodes ("/root/result/prcplist");
  281. var sParamPid = patarray[0];
  282. //var sParamIndd = patarray[5];
  283. //var sParamCretno = patarray[6];
  284. //var sParamIoflag = patarray[7];
  285. //var sParamActcertdrid = patarray[8];
  286. var sParamSexAge = patarray[2];
  287. var sParamPatNm = patarray[1];
  288. if ( srcNodeList.length > 0 ) {
  289. //if(sParamPid == "" || sParamIndd == "" || sParamCretno == "" || sParamIoflag == "" || sParamActcertdrid == "" || sParamPatNm == "") return "E" ;
  290. setParameter ( "SPMMO18200_pid" , sParamPid );
  291. //setParameter ( "SPMMO18200_orddd" , sParamIndd );
  292. //setParameter ( "SPMMO18200_cretno" , sParamCretno );
  293. setParameter ( "SPMMO18200_prcpdd" , getCurrentDate() );
  294. setParameter ( "SPMMO18200_prcpinptflag" , "00" ); // 임시로 09임. 추후 번호배정되어 수정해야함.
  295. //setParameter ( "SPMMO18200_ioflag" , sParamIoflag );
  296. setParameter ( "SPMMO18200_prcpkindcd" , "00" );
  297. setParameter ( "SPMMO18200_prcpsignflag" , "1" ); // 필요시 적용_처방서명구분(0:인증안됨, 1:의사가 후인증, 2:인증완료(default))
  298. setParameter ( "SPMMO18200_aftcertflag" , "12" ); // 필요시 적용_후인증여부
  299. //setParameter ( "SPMMO18200_aftcertdrid" , sParamActcertdrid ); // 필요시 적용_후인증의사ID chngmedispclid
  300. setParameter ( "SPMMO18200_title" , "환자번호: " + sParamPid + " 환자명 : " + sParamPatNm + " S/A : " + sParamSexAge);
  301. setParameter ( "SPMMO18200_savebtn" , "Y");
  302. //setParameter ( "SPMMO18200_prcpstatcd", "000"); //필요시 적용
  303. //setParameter ( "SPMMO18200_oprsrvno", "0"); //필요시 적용
  304. //setParameter ( "SPMMO18200_prcpauthflag", "0"); //필요시 적용
  305. setParameter ( "SPMMO18200_select" , "Y"); //조회시 저장버튼 disable_20090806_SMY추가
  306. var xpt = window.screenleft + 200;
  307. var ypt = window.screenTop + 100;
  308. var coord = getRelativeCoordinate ( xpt, ypt );
  309. var mon = coord[0];
  310. xpt = coord[1];
  311. ypt = coord[2];
  312. modal ( "SPMMO18200", mon, xpt, ypt, "SPMMO01000", "/root/result", "/root/result", "", false ); // 외래예약처방 저장화면 호출
  313. clearParameter ( "SPMMO18200_pid" );
  314. clearParameter ( "SPMMO18200_orddd" );
  315. clearParameter ( "SPMMO18200_cretno" );
  316. clearParameter ( "SPMMO18200_prcpdd" );
  317. clearParameter ( "SPMMO18200_prcpinptflag" );
  318. clearParameter ( "SPMMO18200_ioflag" );
  319. clearParameter ( "SPMMO18200_prcpkindcd" );
  320. clearParameter ( "SPMMO18200_prcpsignflag" );
  321. clearParameter ( "SPMMO18200_aftcertflag" );
  322. clearParameter ( "SPMMO18200_aftcertdrid" );
  323. clearParameter ( "SPMMO18200_savebtn" );
  324. return getParameter("SPMMO18200_rtnyn");
  325. }else{
  326. return "X";
  327. }
  328. }
  329. //환자진료정보조회 팝업_20090803_SMY추가
  330. function fShowPatOrdInfo(){
  331. var cur_Row = grd_rsrvlist.row;
  332. var cur_Col = grd_rsrvlist.col;
  333. var param = grd_rsrvlist.valueMatrix(cur_Row, parseInt(cur_Col)+1);
  334. patarray = param.split(",");
  335. var pid = patarray[0];
  336. setParameter("SMMMO02500_cond", pid);
  337. modal("SMMMO02500");
  338. }
  339. //fInqurySelectedPrgm
  340. /* ------------------------------------------------- */
  341. /* ------End Of List ------------------------------- */
  342. /* -------------------------------------------------- */