SMMMB00500.xjs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[
  3. //변수선언
  4. var prcpclscd = 2;
  5. var prcpKindCdCol = 3; //처방종류 index
  6. var prcpnmCol = 5; //처방명 컬럼 index
  7. var prcpVolCol = 6; //용량 컬럼 index
  8. var prcpQtyCol = 8; //수량 컬럼 index
  9. var prcpTimsCol = 10; //횟수 컬럼 index
  10. var prcpDayNoCol = 11; //일수 컬럼 index
  11. var prcpDeliveFactCol = 15; //전달사항 컬럼 index
  12. var prcpHopeHdCol = 18; //희망일자 컬럼 index
  13. var ContPrcpDdRow = 6; //지정일 instance row
  14. var prcpNode = "/root/main/prcp/prcplist";
  15. var diagNode = "/root/main/diaginfo/diagcdlist";
  16. var prcpgenrflag = ""; //외래입원구분
  17. /**
  18. * @desc : 처방화면 초기화
  19. * @param :
  20. * @id : model1
  21. * @event : xforms-ready
  22. * @return : void
  23. * @authur : 마정민 2007. 3. 14
  24. * @---------------------------------------------------
  25. */
  26. function fInitializeReady() {
  27. // model.recalculate();
  28. div_all.grd_prcplist.setFocus();
  29. div_all.btn_editcell.click();
  30. }
  31. //HomeCarePrcp
  32. function fHomeCarePrcpSrch(srchflag) {
  33. var currow = ds_main_prcplist.rowposition;
  34. if( div_all.grd_prcplist.userdata == 1 ) {
  35. if (ds_main_prcplist.getColumn(currow, "prcpflag") == "2" && ds_main_prcplist.getColumn(currow, "drugmastspec") == "Y" ){
  36. return;
  37. }
  38. var prcpnm = ds_main_prcplist.getColumn(currow, "prcpnm");
  39. if ( srchflag == "prcpcd") {
  40. prcpnm = ds_main_prcplist.getColumn(currow, "prcpcd");
  41. }
  42. var isHangul = utlf_isHangul(prcpnm);
  43. //한글일때는 1글자만 넣어도 검색가능
  44. if ( utlf_isNull(prcpnm)) {
  45. sysf_messageBox ( "검색어를", "C001" );
  46. return;
  47. } else if ( isHangul == "E" ){
  48. //영문,숫자일때는 3글자 넣어야 검색가능
  49. if ( prcpnm.length < 2 ){
  50. sysf_messageBox ( "2글자 이상", "C001" );
  51. return;
  52. }
  53. } else if ( isHangul == "H" ) {
  54. if ( prcpnm.length < 2 ){
  55. sysf_messageBox ( "한글은 2글자 이상", "C001" );
  56. return;
  57. }
  58. }
  59. if (prcpnm.charAt ( 0 ) == "/"){
  60. if ( prcpnm.length == 1 ){
  61. sysf_messageBox ( "검색할 수술명이", "I004" );
  62. return;
  63. }
  64. lf_prcpModal ( "SPMMO05100", 180, 80 );
  65. } else {
  66. if ( srchflag == "prcpcd") {
  67. lf_prcpSrchCom ( prcpnm, ds_init.getColumn(0, "prcpdd"), ds_paminfo.getColumn(0, "insukind"), "TRMMB00201", "", "getPrcpCdOldSrchInfo", isHangul);
  68. } else if ( srchflag == "prcpnm") {
  69. lf_prcpSrchCom ( prcpnm, ds_init.getColumn(0, "prcpdd"), ds_paminfo.getColumn(0, "insukind"), "TRMMB00201", "", "getPrcpNmSrchInfo", isHangul);
  70. } else {
  71. lf_prcpSrchCom ( prcpnm, ds_init.getColumn(0, "prcpdd"), ds_paminfo.getColumn(0, "insukind"), "TRMMB00201", "", "getPrcpSrchInfo", isHangul);
  72. //fPrcpSrchCom ( prcpnm, model.getValue ( "/root/init/prcpdd" ), model.getValue ( "/root/paminfo/list/insukind"), "TRMMB00201", "", false, "getPrcpSrchInfo", isHangul );
  73. }
  74. var srchLength = ds_prcpsrch_prcplist.rowcount;
  75. var cRow = ds_main_prcplist.rowposition;
  76. var nextRow = cRow + 1;
  77. var prcpdd = ds_init.getColumn(0, "prcpdd");
  78. ds_main_prcplist.setColumn(cRow, "prcphopedd", utlf_getCurrentDate());
  79. if( srchLength > 1 ) {
  80. div_all.div_srch.grd_prcpsrchlist.position.height = 278; //grd_prcpsrchlist.attribute ( "height" ) = 278;
  81. div_all.div_srch.btn_copy.position.y = 281; //attribute ( "top" ) = 281;
  82. div_all.div_srch.btn_cancel.position.y = 281; //btn_cancel.attribute ( "top" ) = 281;
  83. div_all.div_srch.position.height = 306; //import1.attribute ( "height" ) = 306;
  84. if ( cRow <= 12 ) { // grd_prcplist.row <= 12
  85. div_all.div_srch.position.y = 99 + ( cRow - 1 ) * 24; //import1.attribute ( "top" ) = 71 + ( grd_prcplist.row - 1) * 23;
  86. } else if ( cRow <= 24) {
  87. div_all.div_srch.position.y = 72; //( cRow - 1 ) * 24 - 560; //import1.attribute ( "top" ) = (grd_prcplist.row - 1) * 23 - 260;
  88. } else if ( cRow > 24 ) {
  89. div_all.div_srch.position.y = 24 * 23 - 351; //import1.attribute ( "top" ) = 24 * 23 - 240;
  90. }
  91. div_all.div_srch.visible = true; //import1.visible = true;
  92. div_all.div_srch.setPrcpSrchListFocus();
  93. // model.setfocus( "grd_prcpsrchlist" );
  94. // grd_prcpsrchlist.select( 1, 1, 1, 1) = true;
  95. } else if( srchLength == 1) {
  96. var srchRow = lf_addPrcpDetl ( "import" , "ds_prcpsrch_prcplist" , "ds_main_prcplist" , 0, ds_main_prcplist.rowposition, "00" );
  97. if (srchRow != 0 ) {
  98. lf_focusMain ( srchRow );
  99. }
  100. } else {
  101. sysf_messageBox ( "검색된 내용이", "I004" );
  102. div_all.btn_editcell.click(); //grd_prcplist.dispatch("onentercell");
  103. }
  104. }
  105. }
  106. }
  107. function fGetHomeCarePrcp() {
  108. ds_send.setColumn(0, "cond1", ds_init.getColumn(0, "formrecseq")); //model.setValue ( "/root/send/cond1", model.getValue ("/root/init/formrecseq"));
  109. var oParam = {};
  110. oParam.id = "TRMMB00501";
  111. oParam.service = "prcpbaseapp.OrdPrcpMngt";
  112. oParam.method = "reqGetHomeCarePrcpList";
  113. oParam.inds = "req=ds_send";
  114. oParam.outds = "ds_main_prcplist=prcplist";
  115. oParam.async = false;
  116. tranf_submit(oParam);
  117. lf_appendChildPrcp ( "ds_reset_prcplist", "ds_main_prcplist", "main", "S" ); //검색라인추가
  118. // model.refresh();
  119. // model.recalculate();
  120. }
  121. /**
  122. * @desc : 처방수정.
  123. * @ : 신규일때는 수정표시 안함.
  124. * @ : 삭제,D/C 상태일때는 취소후 수정.
  125. * @param :
  126. * @id : grd_prcplist
  127. * @event : xforms-value-changed
  128. * @return : void
  129. * @authur : 마정민 2007. 6. 4
  130. * @---------------------------------------------------
  131. */
  132. function fPrcpUpdate() {
  133. var status = ds_main_prcplist.getColumn(ds_main_prcplist.rowposition, "status");
  134. if (status == "-") {
  135. ds_main_prcplist.setColumn(ds_main_prcplist.rowposition, "status", "U"); //model.setValue ( "/root/main/prcp/prcplist[" + grd_prcplist.row+ "]/status", "U" );
  136. // model.refresh();
  137. // model.recalculate();
  138. }
  139. }
  140. /**
  141. * @desc : 오른쪽 마우스 클릭 삭제
  142. * @ : 신규일 때는 removeNode
  143. * @ : 수정중일 때 원복시킨 후 삭제, D/C 표시
  144. * @ : 삭제, D/C 원복시킬려면 ? 오른쪽 마우스에 삭제 및 D/C 원복
  145. * @ : D/C 후 삭제는 불가
  146. * @param :
  147. * @id : grd_prcplist
  148. * @event : 오른쪽 마우스 클릭 삭제
  149. * @return : void
  150. * @authur : 마정민 2007. 6. 4
  151. * @---------------------------------------------------
  152. */
  153. function fDirecDeleteRow() {
  154. var selectedRows = grdf_getSelectedRows(div_all.grd_prcplist); //grd_prcplist.selectedRows;
  155. //var node = instance1.selectSingleNode("/root/main/prcp");
  156. var cnt = 0;
  157. for ( i = selectedRows.length - 1; i >= 0; i-- ) {
  158. var status = ds_main_prcplist.getColumn(selectedRows[i], "status");
  159. if ( status == "-" ) {
  160. ds_main_prcplist.setColumn(selectedRows[i], "status", "D");
  161. } else if ( status == "I" ) {
  162. //신규입력(I)은 removeNode 이다.
  163. ds_main_prcplist.deleteRow(selectedRows[i]); //model.removeNode ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i) + "]" );
  164. //삭제시 데이터를
  165. } else if (status == "S") {
  166. ds_main_prcplist.setColumn(selectedRows[i], "prcpnm", "");
  167. } else if (status == "D") {
  168. ds_main_prcplist.setColumn(selectedRows[i], "status", "-");
  169. } else if (status == "U") {
  170. ds_main_prcplist.setColumn(selectedRows[i], "status", "D");
  171. }
  172. }
  173. // model.refresh();
  174. // model.recalculate();
  175. }
  176. /**
  177. * @desc : 처방 오른쪽 마우스 팝업 처리
  178. * @param :
  179. * @id : grd_prcplist
  180. * @event : onmousedown
  181. * @return : void
  182. * @authur : 마정민 2007. 6. 4
  183. * @---------------------------------------------------
  184. */
  185. function fMouseRghtBtnPopup() {
  186. // div_all_grd_prcplist_onrbuttondown 에서 기술
  187. // if (event.button == 3) {
  188. //
  189. // if(grd_prcplist.isCell(event.target) && grd_prcplist.mouseRow >= grd_prcplist.fixedRows){
  190. // app.showPopupMenu(true);
  191. // window.setPopupMenu(true, "/root/init/msrght/mouserght", "label", "func", false);
  192. // } else {
  193. // window.setPopupMenu(false);
  194. // }
  195. // }
  196. }
  197. function fHomeCareSave() {
  198. for ( var i = 0; i < ds_main_prcplist.rowcount - 1; i++ ) { // var i = 1; i < grd_prcplist.rows - 1; i++
  199. ds_main_diagcdlist.setColumn(i, "rgstdeptcd", ""); //model.removeNode ("/root/main/prcp/prcplist[" + i + "]/rgstdeptcd");
  200. if ( utlf_isNull(ds_main_prcplist.getColumn(i, "tempcol6")) ) {
  201. var prcpnm = ds_main_prcplist.getColumn(i, "prcpnm");
  202. sysf_messageBox ( prcpnm + " 처방의 적용시작일이 입력되지", "E007" );
  203. return;
  204. } else if ( utlf_isNull(ds_main_prcplist.getColumn(i, "tempcol7")) ) {
  205. var prcpnm = ds_main_prcplist.getColumn(i, "prcpnm");
  206. sysf_messageBox ( prcpnm + " 처방의 적용종료일이 입력되지", "E007" );
  207. return;
  208. }
  209. if ( ds_main_prcplist.getColumn(i, "status") == "I" || ds_main_prcplist.getColumn(i, "status") == "U" ) {
  210. ds_main_prcplist.setColumn(i, "prcpkindcd", "20");
  211. ds_main_prcplist.setColumn(i, "tempcol8", ds_init.getColumn(0, "formrecseq"));
  212. }
  213. }
  214. ds_send_cond1.clearData();
  215. //ds_send_cond1.addRow();
  216. //model.removeNodeset ( "/root/send/cond1/prcplist" );
  217. fAppendSaveNode( "ds_send_cond1", "ds_main_prcplist" );
  218. ds_send.setColumn(0, "cond2", "2");
  219. //20131107 이정택
  220. dsf_makeValue(ds_send, "screenid", "string", frmf_getScreenID());
  221. //20131107 이정택
  222. dsf_makeValue(ds_send, "inptflag", "string", ds_send.getColumn(0, "cond2"));
  223. var oParam = {};
  224. oParam.id = "TRMMB00205";
  225. oParam.service = "prcpbaseapp.PrmsPrcpMngt";
  226. oParam.method = "reqGetPrcpSaveChk";
  227. oParam.inds = "saveFlagInfo=ds_send savePrcpInfo=ds_send_cond1";
  228. oParam.outds = "ds_result_prcperrlist=prcperrlist";
  229. oParam.async = false;
  230. oParam.callback = "cf_TRMMB00205";
  231. tranf_submit(oParam);
  232. //model.instances(0).selectNodes( "/root/result/prcperrlist" );
  233. var mon = sysf_getCurrentMonitorNumber();
  234. var xpt = this.getOwnerFrame().position.x + 100;
  235. var ypt = this.getOwnerFrame().position.y + 50;
  236. if ( ds_result_prcperrlist.rowcount > 0 ) {
  237. if ( !utlf_isNull(ds_result_prcperrlist.getColumn(0, "prcpcd")) ){
  238. dsf_createDs("ds_result_prcperrlist_clone");
  239. ds_result_prcperrlist_clone.copyData(ds_result_prcperrlist);
  240. var objArg = new Object();
  241. objArg.arg_ds_result_prcperrlist = ds_result_prcperrlist_clone;
  242. frmf_open("SPMMO00600", "SPMMO00600", objArg, false, mon, xpt, ypt, null, null, null, null, null, "M"); //오류팝업
  243. }
  244. return;
  245. }
  246. var oParam = {};
  247. oParam.id = "TXMMB00501";
  248. oParam.service = "prcpbaseapp.OrdPrcpMngt";
  249. oParam.method = "reqSaveExeHomeCarePrcp";
  250. oParam.inds = "saveHomeCarePrcpInfo=ds_send_cond1";
  251. oParam.outds = "ds_main_prcplist=prcplist";
  252. oParam.async = false;
  253. oParam.callback = "cf_TXMMB00501";
  254. tranf_submit(oParam);
  255. // if (submit("TXMMB00501", false)) {
  256. // model.removeNodeset ( "/root/send/cond1/prcplist" );
  257. // appendChildPrcp ( "/root/reset/prcplist", "/root/main/prcp", "main" ); //검색라인추가
  258. // model.refresh();
  259. // model.recalculate();
  260. //
  261. // }
  262. //
  263. // model.removeNodeset ( "/root/send/cond1/prcplist" );
  264. }
  265. function cf_TRMMB00205(sSvcId, nErrorCode, sErrorMsg) {
  266. if(nErrorCode < 0) {
  267. ds_send.clearData();
  268. ds_send.addRow();
  269. return;
  270. }
  271. }
  272. function cf_TXMMB00501(sSvcId, nErrorCode, sErrorMsg) {
  273. if(nErrorCode < 0) {
  274. return;
  275. } else {
  276. lf_appendChildPrcp ( "ds_reset_prcplist", "ds_main_prcplist", "main" ); //검색라인추가
  277. sysf_messageBox ("처방 저장이", "I002"); // 2011.08.08 가정간호 prn 처방 저장확인 메세지 .
  278. }
  279. }
  280. function fInitialize_SMMMB00500(){
  281. //의뢰서번호, 시작일자 받아야 함
  282. if( utlf_isNull(opener.frmf_getParameter("SMMMB00500_formrecseq")) ) {
  283. sysf_messageBox ("가정간호 의뢰지번호가", "I004");
  284. this.close();
  285. }else{
  286. ds_init.setColumn(0, "formrecseq", opener.frmf_getParameter("SMMMB00500_formrecseq"));
  287. ds_init.setColumn(0, "prcpfromdd", opener.frmf_getParameter("SMMMB00500_prcpfromdd"));
  288. if ( utlf_isNull(ds_init.getColumn(0, "prcpfromdd")) ) {
  289. ds_init.setColumn(0, "prcpfromdd", utlf_getCurrentDate());
  290. }
  291. div_all.Tab_prcp.tabIndex = 1;
  292. ds_main_prcplist.setColumn(0, "status", "S");
  293. var prcpfromdd = ds_init.getColumn(0, "prcpfromdd");
  294. var prcptodd = prcpfromdd.toDate().getAddDate(90,"D").getDateFormat();
  295. ds_init.setColumn(0, "prcptodd", prcptodd);
  296. ds_init.setColumn(0, "prcpdd", utlf_getCurrentDate());
  297. //grd_prcplist.backcoloralternate = "transparent";
  298. var pamInfoCvs = sysf_getGlobalVariable("paminfo");
  299. //ds_paminfo.clear(); //model.removeNodeSet ( "/root/paminfo/list" ); //상단화면 정보 초기화
  300. dsf_setCSVToDs("ds_paminfo", pamInfoCvs);
  301. lf_prcpExecDeptSrch("all");
  302. appf_getCodeList([{dsNm: "ds_M0029", cdGrpId: "M0029"}, {dsNm: "ds_M0005", cdGrpId: "M0005"}, {dsNm: "ds_M0343", cdGrpId: "M0343"}], true);
  303. //zbcfGetCodeList(new Array( "M0029", "M0005" , "M0343" ), new Array( "/root/init/payflagcd", "/root/init/prcpclscd", "/root/init/hsctdelivepos"));
  304. fGetHomeCarePrcp();
  305. fInitSrch();
  306. }
  307. if(opener.frmf_getParameter("SMMMB00500_scrnflag") == "D"){ //가정간호처방 display용인 경우
  308. btn_homeprcpsave.enable = false;
  309. btn_homeprcpdel.enable = false;
  310. }
  311. }
  312. ]]></Script>