SMMMB00500.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  1. //변수선언
  2. var prcpclscd = 2;
  3. var prcpKindCdCol = 3; //처방종류 index
  4. var prcpnmCol = 5; //처방명 컬럼 index
  5. var prcpVolCol = 6; //용량 컬럼 index
  6. var prcpQtyCol = 8; //수량 컬럼 index
  7. var prcpTimsCol = 10; //횟수 컬럼 index
  8. var prcpDayNoCol = 11; //일수 컬럼 index
  9. var prcpDeliveFactCol = 15; //전달사항 컬럼 index
  10. var prcpHopeHdCol = 18; //희망일자 컬럼 index
  11. var ContPrcpDdRow = 6; //지정일 instance row
  12. var prcpNode = "/root/main/prcp/prcplist";
  13. var diagNode = "/root/main/diaginfo/diagcdlist";
  14. var prcpgenrflag = ""; //외래입원구분
  15. /**
  16. * @desc : 처방화면 초기화
  17. * @param :
  18. * @id : model1
  19. * @event : xforms-ready
  20. * @return : void
  21. * @authur : 마정민 2007. 3. 14
  22. * @---------------------------------------------------
  23. */
  24. function fInitializeReady() {
  25. model.recalculate();
  26. model.setfocus( "grd_prcplist" );
  27. grd_prcplist.dispatch("onentercell");
  28. }
  29. //HomeCarePrcp
  30. function fHomeCarePrcpSrch(srchflag) {
  31. if(event.keyCode == "13") {
  32. if ( model.getValue(prcpNode+"["+grd_prcplist.row+"]/prcpflag") == "2" && model.getValue(prcpNode+"["+grd_prcplist.row+"]/drugmastspec") =="Y" ){
  33. return;
  34. }
  35. var prcpnm = model.getValue ( prcpNode + "[" + grd_prcplist.row+ "]/prcpnm" );
  36. if ( srchflag == "prcpcd") {
  37. prcpnm = model.getValue ( prcpNode + "[" + grd_prcplist.row+ "]/prcpcd" );
  38. }
  39. var isHangul = fIsHangul (prcpnm);
  40. //한글일때는 1글자만 넣어도 검색가능
  41. if ( isNull(prcpnm)) {
  42. messageBox ( "검색어를", "C001" );
  43. return;
  44. } else if ( isHangul == "E" ){
  45. //영문,숫자일때는 3글자 넣어야 검색가능
  46. if ( prcpnm.length < 2 ){
  47. messageBox ( "2글자 이상", "C001" );
  48. return;
  49. }
  50. } else if ( isHangul == "H" ) {
  51. if ( prcpnm.length < 2 ){
  52. messageBox ( "한글은 2글자 이상", "C001" );
  53. return;
  54. }
  55. }
  56. if (prcpnm.charAt ( 0 ) == "/"){
  57. if ( prcpnm.length == 1 ){
  58. messageBox ( "검색할 수술명이", "I004" );
  59. return;
  60. }
  61. var curRow = grd_prcplist.row;
  62. var srchRow = grd_prcplist.rows -1;
  63. fPrcpModal ( "SPMMO05100", 180, 80 );
  64. } else {
  65. if ( srchflag == "prcpcd") {
  66. fPrcpSrchCom ( prcpnm, model.getValue ( "/root/init/prcpdd" ), model.getValue ( "/root/paminfo/list/insukind"), "TRMMB00201", "", false, "getPrcpCdOldSrchInfo", isHangul );
  67. } else if ( srchflag == "prcpnm") {
  68. fPrcpSrchCom ( prcpnm, model.getValue ( "/root/init/prcpdd" ), model.getValue ( "/root/paminfo/list/insukind"), "TRMMB00201", "", false, "getPrcpNmSrchInfo", isHangul );
  69. } else {
  70. fPrcpSrchCom ( prcpnm, model.getValue ( "/root/init/prcpdd" ), model.getValue ( "/root/paminfo/list/insukind"), "TRMMB00201", "", false, "getPrcpSrchInfo", isHangul );
  71. }
  72. var srchLength = model.instances(0).selectNodes( "/root/prcpsrch/prcplist" ).length;
  73. var curRow = grd_prcplist.row;
  74. var nextRow = grd_prcplist.row + 1;
  75. var prcpdd = model.getValue("/root/init/prcpdd");
  76. model.setValue(prcpNode+"["+grd_prcplist.row+"]/prcphopedd" , getCurrentDate());
  77. if( srchLength > 1) {
  78. grd_prcpsrchlist.attribute ( "height" ) = 278;
  79. btn_copy.attribute ( "top" ) = 281;
  80. btn_cancel.attribute ( "top" ) = 281;
  81. import1.attribute ( "height" ) = 306;
  82. if ( grd_prcplist.row <= 12) {
  83. import1.attribute ( "top" ) = 71 + ( grd_prcplist.row - 1) * 23;
  84. } else if ( grd_prcplist.row <= 25) {
  85. import1.attribute ( "top" ) = (grd_prcplist.row - 1) * 23 - 260;
  86. } else if ( grd_prcplist.row > 25 ) {
  87. import1.attribute ( "top" ) = 24 * 23 - 240;
  88. }
  89. import1.visible = true;
  90. model.refresh();
  91. model.setfocus( "grd_prcpsrchlist" );
  92. grd_prcpsrchlist.select( 1, 1, 1, 1) = true;
  93. } else if( srchLength == 1) {
  94. srchRow = addPrcpDetl ( "import" , "/root/prcpsrch/prcplist" , "/root/main/prcp" , 1 , grd_prcplist.row, "00" );
  95. if (srchRow !=0 ) {
  96. focusMain ( srchRow );
  97. }
  98. } else {
  99. messageBox ( "검색된 내용이", "I004" );
  100. grd_prcplist.dispatch("onentercell");
  101. }
  102. }
  103. }
  104. }
  105. function fGetHomeCarePrcp() {
  106. model.setValue ( "/root/send/cond1", model.getValue ("/root/init/formrecseq"));
  107. submit("TRMMB00501", false);
  108. appendChildPrcp ( "/root/reset/prcplist", "/root/main/prcp", "main" ); //검색라인추가
  109. model.refresh();
  110. model.recalculate();
  111. }
  112. /**
  113. * @desc : 처방수정.
  114. * @ : 신규일때는 수정표시 안함.
  115. * @ : 삭제,D/C 상태일때는 취소후 수정.
  116. * @param :
  117. * @id : grd_prcplist
  118. * @event : xforms-value-changed
  119. * @return : void
  120. * @authur : 마정민 2007. 6. 4
  121. * @---------------------------------------------------
  122. */
  123. function fPrcpUpdate() {
  124. var status = model.getValue ( "/root/main/prcp/prcplist[" + grd_prcplist.row+ "]/status" );
  125. if (status=="-") {
  126. model.setValue ( "/root/main/prcp/prcplist[" + grd_prcplist.row+ "]/status", "U" );
  127. model.refresh();
  128. model.recalculate();
  129. }
  130. }
  131. /**
  132. * @desc : 오른쪽 마우스 클릭 삭제
  133. * @ : 신규일 때는 removeNode
  134. * @ : 수정중일 때 원복시킨 후 삭제, D/C 표시
  135. * @ : 삭제, D/C 원복시킬려면 ? 오른쪽 마우스에 삭제 및 D/C 원복
  136. * @ : D/C 후 삭제는 불가
  137. * @param :
  138. * @id : grd_prcplist
  139. * @event : 오른쪽 마우스 클릭 삭제
  140. * @return : void
  141. * @authur : 마정민 2007. 6. 4
  142. * @---------------------------------------------------
  143. */
  144. function fDirecDeleteRow() {
  145. var selectedRows = grd_prcplist.selectedRows;
  146. var node = instance1.selectSingleNode("/root/main/prcp");
  147. var cnt=0;
  148. for (i= selectedRows-1; i >= 0; i--) {
  149. var status = model.getValue ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i) + "]/status" );
  150. if (status=="-") {
  151. model.setValue ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i)+ "]/status", "D" );
  152. } else if ( status =="I" ) {
  153. //신규입력(I)은 removeNode 이다.
  154. model.removeNode ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i) + "]" );
  155. //삭제시 데이터를
  156. } else if (status=="S") {
  157. model.setValue ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i) + "]/prcpnm", "" );
  158. } else if (status=="D") {
  159. model.setValue ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i)+ "]/status", "-" );
  160. } else if (status=="U") {
  161. model.setValue ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i)+ "]/status", "D" );
  162. }
  163. }
  164. model.refresh();
  165. model.recalculate();
  166. }
  167. /**
  168. * @desc : 처방 오른쪽 마우스 팝업 처리
  169. * @param :
  170. * @id : grd_prcplist
  171. * @event : onmousedown
  172. * @return : void
  173. * @authur : 마정민 2007. 6. 4
  174. * @---------------------------------------------------
  175. */
  176. function fMouseRghtBtnPopup() {
  177. if (event.button == 3) {
  178. if(grd_prcplist.isCell(event.target) && grd_prcplist.mouseRow >= grd_prcplist.fixedRows){
  179. app.showPopupMenu(true);
  180. window.setPopupMenu(true, "/root/init/msrght/mouserght", "label", "func", false);
  181. } else {
  182. window.setPopupMenu(false);
  183. }
  184. }
  185. }
  186. function fHomeCareSave() {
  187. for ( var i=1; i < grd_prcplist.rows-1; i++ ) {
  188. //kimsj 100615 노드 삭제(저장시 오류현상 발생)
  189. model.removeNode ("/root/main/prcp/prcplist[" + i + "]/rgstdeptcd");
  190. if ( isNull(model.getValue ( "/root/main/prcp/prcplist[" + i + "]/tempcol6" ))) {
  191. var prcpnm = model.getValue ( "/root/main/prcp/prcplist[" + i + "]/prcpnm" );
  192. messageBox ( prcpnm + " 처방의 적용시작일이 입력되지", "E007" );
  193. return;
  194. } else if (isNull(model.getValue ( "/root/main/prcp/prcplist[" + i + "]/tempcol7" ))) {
  195. var prcpnm = model.getValue ( "/root/main/prcp/prcplist[" + i + "]/prcpnm" );
  196. messageBox ( prcpnm + " 처방의 적용종료일이 입력되지", "E007" );
  197. return;
  198. }
  199. if ( model.getValue ( "/root/main/prcp/prcplist[" + i + "]/status" ) == "I" || model.getValue ( "/root/main/prcp/prcplist[" + i + "]/status" ) == "U" ) {
  200. model.setValue("/root/main/prcp/prcplist[" + i + "]/prcpkindcd", "20" );
  201. model.setValue("/root/main/prcp/prcplist[" + i + "]/tempcol8", model.getValue ( "/root/init/formrecseq" ));
  202. }
  203. }
  204. //var savePrcpInfo = model.instances(0).selectNodes( "/root/main/prcp/prcplist" );
  205. //model.setValue ( "/root/send/cond1", getNodeListCSV(savePrcpInfo));
  206. model.removeNodeset ( "/root/send/cond1/prcplist" );
  207. fAppendSaveNode( "/root/send/cond1", "/root/main/prcp/prcplist" );
  208. model.setValue ( "/root/send/cond2", "2" );
  209. //20131107 이정택
  210. model.makeValue("/root/send/screenid", getScreenID());
  211. //20131107 이정택
  212. if ( !submit ( "TRMMB00205", false )){
  213. model.resetInstanceNode ( "/root/send" );
  214. model.refresh();
  215. return;
  216. }
  217. var prcpErrList = model.instances(0).selectNodes( "/root/result/prcperrlist" );
  218. var xpt = window.screenleft + 100;
  219. var ypt = window.screenTop + 50;
  220. var coord = getRelativeCoordinate ( xpt, ypt );
  221. var mon = coord[0];
  222. xpt = coord[1];
  223. ypt = coord[2];
  224. if ( prcpErrList.length > 0 ) {
  225. if ( !isNull(model.getValue ( "/root/result/prcperrlist[1]/prcpcd"))){
  226. modal ( "SPMMO00600", mon, xpt, ypt, "prcpdetl", "/root/result", "/root/result" ); //오류팝업
  227. model.removeNodeset("/root/result/prcperrlist");
  228. }
  229. return;
  230. }
  231. if (submit("TXMMB00501", false)) {
  232. model.removeNodeset ( "/root/send/cond1/prcplist" );
  233. appendChildPrcp ( "/root/reset/prcplist", "/root/main/prcp", "main" ); //검색라인추가
  234. model.refresh();
  235. model.recalculate();
  236. messageBox ("처방 저장이 ", "I002"); // 2011.08.08 가정간호 prn 처방 저장확인 메세지 .
  237. }
  238. model.removeNodeset ( "/root/send/cond1/prcplist" );
  239. }
  240. function fInitialize_SMMMB00500(){
  241. //의뢰서번호, 시작일자 받아야 함
  242. if(isNull(opener.javascript.getParameter ( "SMMMB00500_formrecseq" ))){
  243. messageBox ("가정간호 의뢰지번호가", "I004");
  244. window.close();
  245. }else{
  246. model.setValue ( "/root/init/formrecseq", opener.javascript.getParameter ( "SMMMB00500_formrecseq" ));
  247. model.setValue ( "/root/init/prcpfromdd", opener.javascript.getParameter ( "SMMMB00500_prcpfromdd" ));
  248. if ( isNull(model.getValue ( "/root/init/prcpfromdd" ))) {
  249. model.setValue ( "/root/init/prcpfromdd", getCurrentDate());
  250. }
  251. btn_prcpsrch.selected = true;
  252. model.setValue ( "/root/main/prcp/prcplist/status", "S");
  253. var prcpfromdd = model.getValue ( "/root/init/prcpfromdd" );
  254. var prcptodd = prcpfromdd.toDate().getAddDate(90,"D").getDateFormat();
  255. model.setValue ( "/root/init/prcptodd", prcptodd );
  256. model.setValue ( "/root/init/prcpdd" , getCurrentDate());
  257. grd_prcplist.backcoloralternate = "transparent";
  258. var paminfocvs = getGlobalVariable("paminfo");
  259. model.removeNodeSet ( "/root/paminfo/list" ); //상단화면 정보 초기화
  260. setCSVToNode ( "/root/paminfo", paminfocvs );
  261. fPrcpExecDeptSrch("all");
  262. zbcfGetCodeList(new Array( "M0029", "M0005" , "M0343" ), new Array( "/root/init/payflagcd", "/root/init/prcpclscd", "/root/init/hsctdelivepos"));
  263. fGetHomeCarePrcp();
  264. fInitSrch();
  265. }
  266. if(opener.javascript.getParameter("SMMMB00500_scrnflag") == "D"){ //가정간호처방 display용인 경우
  267. btn_homeprcpsave.disabled = true;
  268. btn_homeprcpdel.disabled = true;
  269. }
  270. }