SPMMO21401.xjs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/*
  3. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  4. 중환자실다직종회진 ( SPMMO21401_중환자실다직종회진.xrw - JScript )
  5. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  6. */
  7. //var sICURLIST_PATH = "/root/main/icurinfo/icurlist";
  8. /**
  9. * @desc : 중환자실 다직종 회진 등록
  10. * @
  11. * @param :
  12. * @return :
  13. * @author : 엄영만
  14. * @---------------------------------------------------
  15. */
  16. function fInitialize_SPMMO21401(){
  17. var dutplcecd = sysf_getUserInfo("dutplcecd"); // 부서코드 정보 가져오기
  18. ds_main_icurinfo_icurlist.clearData();
  19. ds_main_cond.setColumn( 0, "fromdd", ((utlf_getCurrentDate().toDate()). getAddDate(-7,"D")).getDateFormat());
  20. ds_main_cond.setColumn(0, "todd", utlf_getCurrentDate());
  21. //20190306 이돈희 : 조회를 위한 부서 목록(452)과 입력을 위한 부서 목록(702) 분리
  22. lf_gethardcdArrayList(new Array("hc452|452", "hc453|453", "hc702|702"),
  23. new Array("ds_hc452", "ds_hc453", "ds_hc702"));
  24. dsf_addDsItem( ds_hc452, "hardcd", "hardcdnm", "전체", "-", "above"); //중환자실 병동 코드에 전체항목 추가
  25. dsf_addDsItem( ds_hc453, "hardcd", "hardcdnm", "전체", "-", "above"); //중환자실 직종 코드에 전체항목 추가
  26. if(sysf_getUserInfo("dutplceinstcd") == "032") { // 칠곡은 한개 부서 밖에 없어서 바로 설정 함. 2014.11.03 엄영만
  27. ds_main_cond.setColumn(0, "wardcd", "2364601000");
  28. } else {
  29. ds_main_cond.setColumn(0, "wardcd", "-");
  30. }
  31. ds_main_cond.setColumn(0, "jobcd", "-");
  32. //fReqIcurList();
  33. this.setTimer(0, 100);
  34. }
  35. /**
  36. * @desc : 조회버튼 클릭
  37. * @
  38. * @param :
  39. * @return :
  40. * @author : 엄영만
  41. * @---------------------------------------------------
  42. */
  43. function fReqIcurList() {
  44. if( ds_main_cond.getColumn(0, "chkuser") == "Y" ) {
  45. ds_main_cond.setColumn(0, "userid", "-");
  46. } else {
  47. ds_main_cond.setColumn(0, "userid", sysf_getUserInfo("userid"));
  48. }
  49. dsf_copyDs(ds_send_reqdata, ds_main_cond);
  50. var oParam = {};
  51. oParam.id = "TRMMO21402";
  52. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  53. oParam.method = "reqGetIcurList";
  54. oParam.inds = "req=ds_send_reqdata";
  55. oParam.outds = "ds_main_icurinfo_icurlist=icurlist";
  56. oParam.async = false;
  57. tranf_submit(oParam);
  58. ds_main_icurinfo_icurlist.rowposition = -1;
  59. //dsf_copyDs(ds_search_icurinfo_icurlist,ds_main_icurinfo_icurlist);
  60. }
  61. /**
  62. * @desc : 진료대상자 리스트 출력
  63. * @
  64. * @param :
  65. * @return :
  66. * @author : 김영학
  67. * @---------------------------------------------------
  68. */
  69. function fPrtIcurList() {
  70. var sWardCd = ds_main_cond.getColumn(0, "wardcd");
  71. if( sWardCd == "-" ){
  72. sysf_messageBox("중환자실을 전체로 조회 하여 출력 할수 없습니다.\n출력하실 중환자실별로 조회 하여 출력하세요.","E") ;
  73. return;
  74. }
  75. var objCxtCommon = new ExtCommon();
  76. ds_temp_icurinfo_icurlist.clearData();
  77. dsf_copyDs(ds_temp_icurinfo_icurlist,ds_main_icurinfo_icurlist);
  78. //20191030 이돈희 : 출력에 체크된 열만 출력물에 출력
  79. ds_temp_icurinfo_icurlist.filter("printyn == 'Y' || printyn == '1'");
  80. ds_temp_icurinfo_icurlist.addColumn("sign" ,"string");
  81. for( var i=0; i < ds_temp_icurinfo_icurlist.rowcount; i++ ){
  82. var objImgeData = objCxtCommon.encodeBase64(ds_temp_icurinfo_icurlist.getColumn(i, "signdata"));
  83. ds_temp_icurinfo_icurlist.setColumn(i, "sign", objImgeData);
  84. }
  85. var objDOM = rptf_createDOM(); // DOM 객체 설정
  86. rptf_setNodeListToDOM(objDOM, "/root/main/icurinfo/icurlist", ds_temp_icurinfo_icurlist); // 데이터셋 1
  87. var objParam = new Object();
  88. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  89. var option = "open=1;save=1;directprint=0;print=1;zoom=0;";
  90. rptf_exeReportPreview30(["RPMMO21401"],[objParam], option);
  91. }
  92. /**
  93. * @desc : 행추가 클릭
  94. * @
  95. * @param :
  96. * @return :
  97. * @author : 엄영만
  98. * @---------------------------------------------------
  99. */
  100. function fAddIcur() {
  101. /*
  102. ds_main_icurinfo_icurlist.addRow();
  103. var nRow = ds_main_icurinfo_icurlist.rowcount - 1;
  104. ds_temp_add.setColumn(0, "gridadd", "1");
  105. ds_main_icurinfo_icurlist.setColumn(nRow, "rnddd", utlf_getCurrentDate());
  106. */
  107. ds_main_icurinfo_icurlist.addRow();
  108. ds_main_icurinfo_icurlist.setColumn(ds_main_icurinfo_icurlist.rowcount - 1, "rnddd", utlf_getCurrentDate());
  109. ds_main_icurinfo_icurlist.setColumn(ds_main_icurinfo_icurlist.rowcount - 1, "rndno", "0");
  110. ds_main_icurinfo_icurlist.setColumn(ds_main_icurinfo_icurlist.rowcount - 1, "jobcd", "-");
  111. ds_main_icurinfo_icurlist.setColumn(ds_main_icurinfo_icurlist.rowcount - 1, "userid", sysf_getUserInfo("userid"));
  112. ds_main_icurinfo_icurlist.setColumn(ds_main_icurinfo_icurlist.rowcount - 1, "usernm", sysf_getUserInfo("usernm"));
  113. if(sysf_getUserInfo("dutplceinstcd") == "032") { // 칠곡은 한개 부서 밖에 없어서 바로 설정 함. 2014.11.03 엄영만
  114. ds_main_icurinfo_icurlist.setColumn(ds_main_icurinfo_icurlist.rowcount - 1, "wardcd", "2364601000");
  115. } else {
  116. ds_main_icurinfo_icurlist.setColumn(ds_main_icurinfo_icurlist.rowcount - 1, "wardcd", "-");
  117. }
  118. }
  119. /**
  120. * @desc : 행삭제 클릭
  121. * @
  122. * @param :
  123. * @return :
  124. * @author : 엄영만
  125. * @---------------------------------------------------
  126. */
  127. function fDelIcur() {
  128. var nRow = ds_main_icurinfo_icurlist.rowposition;
  129. var nStatus = null;
  130. if( nRow < 0 ){
  131. sysf_messageBox("삭제할 항목을 선택해주십시오.","E") ;
  132. return;
  133. }
  134. if( ds_main_icurinfo_icurlist.getColumn(nRow, "cnfyn") == "Y" ) {
  135. sysf_messageBox("전담전문의가 확인한 내용은 삭제할 수 없습니다.", "E") ;
  136. return;
  137. }
  138. if(ds_main_icurinfo_icurlist.getColumn(nRow, "userid") != sysf_getUserInfo("userid") && sysf_getUserInfo("userid") != "EMR" ) {
  139. sysf_messageBox("본인의 회진정보만 삭제 가능 합니다.","E") ;
  140. return;
  141. }
  142. nStatus = ds_main_icurinfo_icurlist.getRowType(nRow);
  143. if(nStatus == 1) { // 기존데이터
  144. ds_main_icurinfo_icurlist.updatecontrol = false;
  145. ds_main_icurinfo_icurlist.setRowType(nRow, "D");
  146. ds_main_icurinfo_icurlist.updatecontrol = true;
  147. } else if (nStatus == 2) { // 신규데이터
  148. ds_main_icurinfo_icurlist.deleteRow(nRow);
  149. } else if (nStatus == 8) { // 삭제데이터
  150. ds_main_icurinfo_icurlist.updatecontrol = false;
  151. ds_main_icurinfo_icurlist.setRowType(nRow, "");
  152. ds_main_icurinfo_icurlist.updatecontrol = true;
  153. } else if (nStatus == 4) { // 20191106 이돈희 : 수정데이터 삭제 누를시에 삭제 되도록 수정
  154. ds_main_icurinfo_icurlist.updatecontrol = false;
  155. ds_main_icurinfo_icurlist.setRowType(nRow, "D");
  156. ds_main_icurinfo_icurlist.updatecontrol = true;
  157. }
  158. }
  159. /**
  160. * @desc : 중환자실 회진 정보 저장
  161. * @param :
  162. * @return :
  163. * @author : 엄영만
  164. * @---------------------------------------------------
  165. */
  166. function fSaveIcur(){
  167. if( ds_main_icurinfo_icurlist.rowcount > 0 ) {
  168. for ( var i = 0; i < ds_main_icurinfo_icurlist.rowcount; i++ ) {
  169. if( ds_main_icurinfo_icurlist.getColumn(i, "wardcd") == "-" ) {
  170. sysf_messageBox("중환자실은 반드시 선택 하셔야 합니다.", "E999" );
  171. return;
  172. }
  173. if( ds_main_icurinfo_icurlist.getColumn(i, "jobcd") == "-" ) {
  174. sysf_messageBox("직종은 반드시 선택 하셔야 합니다.", "E999" );
  175. return;
  176. }
  177. }
  178. }
  179. dsf_createDs("ds_send_savedata");
  180. var updateData = grdf_getGridUpdateData(grd_icurlist);
  181. grdf_setStatusColumn(updateData, "gubun");
  182. ds_send_savedata.copyData(updateData, true);
  183. var oParam = {};
  184. oParam.id = "TXMMO21402";
  185. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  186. oParam.method = "reqExeSaveIcurList";
  187. oParam.inds = "req=ds_send_savedata";
  188. oParam.outds = "";
  189. oParam.async = false;
  190. oParam.callback = "cf_TXMMO21402";
  191. tranf_submit(oParam);
  192. if(arErrorCode.pop("TXMMO21402") > -1){
  193. }else{
  194. sysf_messageBox("회진내역 수정에 실패 하였습니다.", "E999" );
  195. }
  196. fReqIcurList();
  197. }
  198. function ds_main_icurinfo_icurlist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  199. {
  200. //2019130 이돈희 : 출력을 체크 및 해제하는 경우 아래 제어를 미진행 및 열 상태값 변경
  201. if(e.columnid == "printyn"){
  202. var arrRow = new Array();
  203. arrRow[0] = e.row;
  204. grdf_setStatus(grd_icurlist, sRowStatus, arrRow);
  205. return;
  206. }
  207. if ( e.columnid == "cnfyn" ) {
  208. var currow = e.row;
  209. obj.setColumn(currow, e.columnid, (e.newvalue == "Y" || e.newvalue == 1) ? "Y" : "N");
  210. }
  211. var nRow = ds_main_icurinfo_icurlist.rowposition;
  212. /*
  213. if(ds_temp_add.getColumn(0, "gridadd") =="1"){ //행추가인 경우
  214. ds_main_icurinfo_icurlist.setColumn(ds_main_icurinfo_icurlist.rowcount - 1, "rndno", "0");
  215. ds_main_icurinfo_icurlist.setColumn(ds_main_icurinfo_icurlist.rowcount - 1, "jobcd", "-");
  216. ds_main_icurinfo_icurlist.setColumn(ds_main_icurinfo_icurlist.rowcount - 1, "userid", sysf_getUserInfo("userid"));
  217. ds_main_icurinfo_icurlist.setColumn(ds_main_icurinfo_icurlist.rowcount - 1, "usernm", sysf_getUserInfo("usernm"));
  218. if(sysf_getUserInfo("dutplceinstcd") == "032") { // 칠곡은 한개 부서 밖에 없어서 바로 설정 함. 2014.11.03 엄영만
  219. ds_main_icurinfo_icurlist.setColumn(ds_main_icurinfo_icurlist.rowcount - 1, "wardcd", "2364601000");
  220. } else {
  221. ds_main_icurinfo_icurlist.setColumn(ds_main_icurinfo_icurlist.rowcount - 1, "wardcd", "-");
  222. }
  223. ds_temp_add.setColumn(0, "gridadd", "");
  224. dsf_copyDs(ds_search_icurinfo_icurlist,ds_main_icurinfo_icurlist);
  225. return;
  226. }
  227. */
  228. if (e.columnid == "cnfyn") { // 전담전문의 확인
  229. var sAuthCnfYn = ds_main_bficurinfo.getColumn(0, "authcnfyn");
  230. if(sAuthCnfYn != "Y") { // 전담전문의가 확인 되지 않았으면
  231. if ( ds_main_icurinfo_icurlist.getColumn(ds_main_icurinfo_icurlist.rowposition, e.col) == "Y" ) { // 전담전문의 확인을 체크 했을때
  232. if ( sysf_messageBox ( "해당 중환자실 전담 전문의가 최종 확인 하는곳 입니다. \n\n전담전문의가 맞습니까?","Q") == "6" ) {
  233. ds_main_bficurinfo.setColumn(0, "authcnfyn", "Y");
  234. } else {
  235. ds_main_bficurinfo.setColumn(0, "authcnfyn", "N");
  236. ds_main_icurinfo_icurlist.setColumn(nRow, "cnfyn", "N");
  237. }
  238. } else { // 전담전문의 체크를 해제 할때
  239. if( ds_main_icurinfo_icurlist.getColumn(nRow, "cnfid") != sysf_getUserInfo("userid") ) {
  240. ds_main_icurinfo_icurlist.setColumn(nRow, "cnfyn", "Y");
  241. sysf_messageBox("이미 전담전문의가 확인 하였습니다. \n\n확인한 전담전문의만 수정이 가능 합니다.","E") ;
  242. }
  243. }
  244. }
  245. } else { // 전담전문의 확인 이외의 값 변경
  246. if ( e.columnid =="rnddd" && ds_main_icurinfo_icurlist.getColumn(nRow, "rndno") != "0" ) { // 이미 저장된 회진일자는 수정 불가능
  247. ipt_orddd.setFocus();
  248. ds_main_icurinfo_icurlist.setColumn(nRow, "rnddd", ds_main_bficurinfo.getColumn(nRow, "rnddd"));
  249. sysf_messageBox ( "이미 저장된 내역의 회진일자는 변경이 불가능 합니다. 삭제후 신규 등록 하세요.","E") ;
  250. } else if(ds_main_icurinfo_icurlist.getColumn(nRow, "userid") != sysf_getUserInfo("userid")) {
  251. if ( e.columnid =="rnddd") {
  252. ds_main_icurinfo_icurlist.setColumn(nRow, "rnddd", ds_main_bficurinfo.getColumn(nRow, "rnddd"));
  253. } else if ( e.columnid =="wardcd") {
  254. ds_main_icurinfo_icurlist.setColumn(nRow, "warddd", ds_main_bficurinfo.getColumn(nRow, "warddd"));
  255. } else if ( e.columnid =="jobcd") {
  256. ds_main_icurinfo_icurlist.setColumn(nRow, "jobcd", ds_main_bficurinfo.getColumn(nRow, "jobcd"));
  257. }
  258. sysf_messageBox ( "자신의 회진리스트만 수정이 가능 합니다.","E") ;
  259. } else {
  260. if( ds_main_icurinfo_icurlist.getColumn(nRow, "cnfyn") == "Y" ) { // 이미 전담전문의 확인 된경우
  261. if ( e.columnid =="rnddd" ) {
  262. ipt_orddd.setFocus();
  263. ds_main_icurinfo_icurlist.setColumn(nRow, "rnddd", ds_main_bficurinfo.getColumn(nRow, "rnddd"));
  264. } else if (e.columnid =="wardcd") {
  265. ds_main_icurinfo_icurlist.setColumn(nRow, "warddd", ds_main_bficurinfo.getColumn(nRow, "warddd"));
  266. } else if (e.columnid =="jobcd") {
  267. ds_main_icurinfo_icurlist.setColumn(nRow, "jobcd", ds_main_bficurinfo.getColumn(nRow, "jobcd"));
  268. }
  269. sysf_messageBox ( "전담전문의 확인 이후에는 수정이 불가능 합니다.","E") ;
  270. }
  271. }
  272. }
  273. //dsf_copyDs(ds_search_icurinfo_icurlist,ds_main_icurinfo_icurlist);
  274. }
  275. ]]></Script>