SMADT30400.js 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762
  1. /**
  2. * 파 일 명 : SMADT30100.js
  3. * 설 명 : 마약향정처방관리 Javascriot
  4. * 설 계 자 : 공두경
  5. * 작 성 자 : 공두경
  6. * 수정이력 : 2007.08.10 / 최초작성 / 공두경
  7. */
  8. var sNarc_Menu_Param = "";
  9. var sNarc_Dept_Param = "";
  10. var sSMADT30400_Fromdd = ""; //카덱스(간호)에서 넘겨줌_20090513_SMY
  11. /**
  12. * 초기화
  13. */
  14. function fInit() {
  15. var instcd =getUserInfo("dutplceinstcd");
  16. if(instcd == '032') {
  17. chk_dschdrugyn.visible = true;
  18. } else {
  19. chk_dschdrugyn.visible = false;
  20. chk_dschdrugyn.value = "Y";
  21. }
  22. grd_narclist.fixedcellcheckbox(0,1) = true;
  23. //화면구성용 파라미터
  24. sNarc_Menu_Param = getScreenMenuParameter(); // I: 입원 O:외래
  25. //sNarc_Menu_Param = "O";
  26. //상단에서 정보 조회
  27. var node = getGlobalVariable("paminfo");
  28. setCSVToNode("/root/temp/topinfo", node);
  29. if(sNarc_Menu_Param.length > 1){
  30. sNarc_Dept_Param = sNarc_Menu_Param.substr(1,sNarc_Menu_Param.length);
  31. sNarc_Menu_Param = sNarc_Menu_Param.substr(0,1);
  32. }
  33. // 화면구성
  34. //alert(opener.javascript.getParameter("Narc_Menu_Param"));
  35. if (sNarc_Menu_Param == "I") {
  36. model.setValue("/root/temp/srchinfo/srchioflag","I");
  37. } else if(sNarc_Menu_Param == "O"){
  38. model.setValue("/root/temp/srchinfo/srchioflag","O");
  39. } else {
  40. sNarc_Menu_Param = model.getAttribute("Narc_Menu_Param");
  41. if(sNarc_Menu_Param.length > 1){
  42. sNarc_Dept_Param = sNarc_Menu_Param.substr(2,sNarc_Menu_Param.length);
  43. sNarc_Menu_Param = sNarc_Menu_Param.substr(0,1);
  44. }
  45. if (sNarc_Menu_Param == "I") {
  46. model.setValue("/root/temp/srchinfo/srchioflag","I");
  47. } else if(sNarc_Menu_Param == "O"){
  48. model.setValue("/root/temp/srchinfo/srchioflag","O");
  49. } else {
  50. sNarc_Menu_Param = model.getValue("/root/temp/topinfo/list/ioflag");
  51. if (sNarc_Menu_Param == "I") {
  52. model.setValue("/root/temp/srchinfo/srchioflag","I");
  53. } else if(sNarc_Menu_Param == "O"){
  54. model.setValue("/root/temp/srchinfo/srchioflag","O");
  55. } else {
  56. model.setValue("/root/temp/srchinfo/srchioflag","I");
  57. }
  58. }
  59. }
  60. fChgIOFlag();
  61. model.makeValue("/root/hidden/narc_dept", sNarc_Dept_Param);
  62. //마취과, 내시경실 불출부서코드 조회
  63. var narc_dept = "";
  64. if(sNarc_Dept_Param != "") {
  65. submit("TRADT30407");
  66. narc_dept = model.getValue("/root/init/execdeptlist/dept/deptcd");
  67. }
  68. if(sNarc_Dept_Param == "op"){
  69. //마취과에서 연 팝업일경우 불출신청부서 셋팅 N002
  70. //model.setValue("/root/temp/srchinfo/drugdeptcd", "3073100000");
  71. model.setValue("/root/temp/srchinfo/drugdeptcd", narc_dept);
  72. } else if (sNarc_Dept_Param == "esop") {
  73. model.setValue("/root/temp/srchinfo/srchdrugdeptflag", "Y");
  74. cap_n003.value = model.getValue("/root/init/execdeptlist/dept/deptnm"); // 20100114_laboru
  75. //model.setValue("/root/temp/srchinfo/drugdeptcd", "2010302030");
  76. model.setValue("/root/temp/srchinfo/drugdeptcd", narc_dept);
  77. // 2011.03.22 pymi
  78. //내시경실 메뉴는 무조건 외래에 부서는 내시경 검사실로 세팅
  79. if(model.getValue("/root/temp/srchinfo/srchioflag") == "O") {
  80. model.setValue("/root/temp/srchinfo/srchdutplcecd", narc_dept);
  81. }
  82. // (e)
  83. }
  84. //cap_n003.value = "소화기센터내시경실"; // 20100114_laboru_기본 불출 부서 caption
  85. //병원별 불출신청부서 셋팅 N003
  86. if(narc_dept == "") {
  87. model.makeValue("/root/hidden/setdeptchk", "Y");
  88. submit("TRADT30407");
  89. cap_n003.value = model.getValue("/root/init/execdeptlist/dept/deptnm"); // 20100114_laboru
  90. }
  91. model.setAttribute("Narc_Menu_Param", "");
  92. //구분 초기화(전체)
  93. model.setValue("/root/temp/srchinfo/narcflag", "M");
  94. model.setValue("/root/temp/srchinfo/narcstat", "T");
  95. rdo_cncl.disabled = true;
  96. model.setValue("/root/temp/srchinfo/cnclstat", "");
  97. rdo_rtn.disabled = true;
  98. model.setValue("/root/temp/srchinfo/rtnstat", "");
  99. //토글초기화
  100. //model.setValue("/root/temp/srchinfo/srchroot", "M");
  101. //model.toggle("case1");
  102. //조회날짜 초기화
  103. //model.setValue("/root/temp/srchinfo/fst_dd", getCurrentDate());
  104. //model.setValue("/root/temp/srchinfo/last_dd", getCurrentDate());
  105. //카덱스에서 시작일자를 넘겨줌_20090513_SMY
  106. sSMADT30400_Fromdd = model.getAttribute("SMADT30400_Fromdd");
  107. if(sSMADT30400_Fromdd != ""){
  108. model.setValue("/root/temp/srchinfo/fst_dd", sSMADT30400_Fromdd);
  109. }else{
  110. model.setValue("/root/temp/srchinfo/fst_dd", getCurrentDate());
  111. }
  112. model.setValue("/root/temp/srchinfo/last_dd", getCurrentDate());
  113. model.setAttribute("SMADT30400_Fromdd", "");
  114. //로그인 사용자 셋팅
  115. var userid = getUserId();
  116. model.setValue("/root/temp/srchinfo/srchid", userid);
  117. fChgUserID();
  118. fGetNarcData();
  119. //환자별 조회라면 체크 표시
  120. fChkPatSearch();
  121. model.setValue("/root/temp/userinfo/userinfo/userdeptcd", getUserInfo("dutplcecd"));
  122. model.setValue("/root/temp/userinfo/userinfo/userdeptnm", getUserInfo("dutplcenm"));
  123. model.setValue("/root/temp/srchinfo/drugdeptcd", model.getValue("/root/temp/userinfo/userinfo/userdeptcd"));
  124. model.setValue("/root/temp/srchinfo/drugdeptnm", model.getValue("/root/temp/userinfo/userinfo/userdeptnm"));
  125. model.refresh();
  126. }
  127. /**
  128. * 병동변경시 병실 조회
  129. */
  130. function fSrchRoomCD(){
  131. model.setValue("/root/temp/srchinfo/srchpid", "");
  132. model.setValue("/root/temp/srchinfo/srchpatnm", "");
  133. model.setValue("/root/temp/srchinfo/barcode", "");
  134. model.setValue("/root/temp/srchinfo/srchroomcd", ""); //20090513_SMY
  135. model.setValue("/root/send/srchcond/wardcd", model.getValue("/root/temp/srchinfo/srchward"));
  136. model.setValue("/root/send/srchcond/deptflag", "2");
  137. submit("TRADT30404");
  138. }
  139. /**
  140. * 토글클릭시
  141. */
  142. /*
  143. function fClickToggle(chk) {
  144. if(chk == "1"){
  145. model.setValue("/root/temp/srchinfo/srchroot", "M");
  146. if(model.getValue("/root/temp/srchinfo/srchflag") == ""){
  147. model.setValue("/root/temp/srchinfo/srchflag", "1");
  148. }
  149. model.setValue("/root/temp/srchinfo/rtnflag", "");
  150. model.setValue("/root/temp/srchinfo/spreflag", "");
  151. model.toggle("case1");
  152. button65.selected = true;
  153. } else if(chk == "2"){
  154. model.setValue("/root/temp/srchinfo/srchroot", "R");
  155. model.setValue("/root/temp/srchinfo/srchflag", "");
  156. model.setValue("/root/temp/srchinfo/rtnflag", "");
  157. model.setValue("/root/temp/srchinfo/spreflag", "Y");
  158. button16.selected = true;
  159. model.toggle("case2");
  160. } else if(chk == "3"){
  161. model.setValue("/root/temp/srchinfo/srchroot", "M");
  162. model.setValue("/root/temp/srchinfo/srchflag", "");
  163. model.setValue("/root/temp/srchinfo/rtnflag", "Y");
  164. model.setValue("/root/temp/srchinfo/spreflag", "");
  165. model.toggle("case1");
  166. button65.selected = true;
  167. }
  168. model.setValue("/root/temp/srchinfo/barcode","");
  169. model.refresh();
  170. fGetNarcData();
  171. }*/
  172. /**
  173. * 마약리스트 조회
  174. */
  175. function fGetNarcData() {
  176. initGridStyle("grd_narclist");
  177. grd_narclist.fixedcellischeck(0, 1) = false;
  178. model.removeNode("/root/send/srchinfo");
  179. model.makeNode("/root/send/srchinfo");
  180. model.copyNode("/root/send/srchinfo","/root/temp/srchinfo");
  181. if( model.getValue("/root/temp/srchinfo/prtab") == "Y") { // 향정반환반납장부 출력조건 2009.05.18 pymi
  182. model.setValue("/root/send/srchinfo/cnclflag", "Y");
  183. model.setValue("/root/send/srchinfo/rtnflag", "Y");
  184. model.setValue("/root/send/srchinfo/rtnstat", "T");
  185. model.setValue("/root/send/srchinfo/cnclstat", "T");
  186. model.setValue("/root/send/srchinfo/narcstat", "");
  187. }
  188. // (e)
  189. submit("TRADT30105");
  190. submit("TRADT30402");
  191. //fBtnDisable();
  192. for(var i = grd_narclist.fixedRows; i < grd_narclist.rows; i++){
  193. if ( model.getValue("/root/main/narclist/narclist["+(i-1)+"]/narcflag") =="H" ){
  194. //grd_narclist.isReadOnly( i, grd_narclist.colRef("sel") )=true;
  195. grd_narclist.isReadOnly( i, grd_narclist.colRef("sel") )=false;
  196. } else {
  197. grd_narclist.isReadOnly( i, grd_narclist.colRef("sel") )=false;
  198. }
  199. if ( model.getValue("/root/main/narclist/narclist["+(i-1)+"]/prcpkindcd") =="35" ){
  200. grd_narclist.cellStyle("background-color", i, grd_narclist.colRef("drugnm")) = "#c8e67b";
  201. }
  202. if(fChkEndYN(i)) grd_narclist.isReadOnly( i, grd_narclist.colRef("sel"))=true;
  203. }
  204. //색깔처리
  205. setCellStyle("grd_narclist" , "6" , "0" , "cnclstat", "equal");
  206. setCellStyle("grd_narclist" , "6" , "0" , "rtnstat", "equal");
  207. grd_narclist.refresh();
  208. }
  209. function fChkEndYN(row){
  210. //더이상 진행될 처방이 아닌 경우 선택박스 비활성화_20090509_SMY
  211. var narcstat = model.getValue("/root/main/narclist/narclist["+(row-1)+"]/narcstat"); //불출상태
  212. var cnclstat = model.getValue("/root/main/narclist/narclist["+(row-1)+"]/cnclstat"); //반환상태
  213. var rtnstat = model.getValue("/root/main/narclist/narclist["+(row-1)+"]/rtnstat"); //잔량반납상태
  214. var narcflag = model.getValue("/root/main/narclist/narclist["+(row-1)+"]/narcflag"); //불출상태
  215. var drugno = model.getValue("/root/main/narclist/narclist["+(row-1)+"]/drugno"); //투약번호
  216. /* 진행완료 상태의 항목들 선택박스 비활성화
  217. 1. 부서확인 (정상종료의 경우)
  218. 2. 반환확인 (부서확인 이후 반환신청이 가능, 잔량 없을 경우)
  219. 3. 잔량확인 (정상종료이면서 잔량이 생성된 처방인 경우)
  220. 4. 반환확인 & 잔량확인 (PO의 경우 횟수처방이 가능하기 때문에 부분 반환이 가능함. 반환량과 잔량이 동시에 생성될 수 있음)
  221. 5. 반환종료 (불출 이전에 DC된 경우 * 단, all 반환일때만)
  222. 6. 향정의 경우 미신청이면서 투약번호가 없을때 (향정은 약국에서만 마감가능하고, 간호에서 미신청일때도 투약기록 가능)
  223. * 과거 처방중 투약번호가 있으면서 미신청인 항목이 존재하기 때문에 투약번호 존재여부 조건을 줌. */
  224. // alert("SMADT30400.js"+narcstat+ cnclstat + rtnstat ) ;
  225. if((narcstat == "6" && cnclstat == "" && rtnstat == "")
  226. || (cnclstat == "2" && rtnstat == "")
  227. || (cnclstat == "" && rtnstat == "2")
  228. || (cnclstat == "2" && rtnstat == "2")
  229. || (cnclstat == "7") //){
  230. || (narcflag == "H" && narcstat == "1" && drugno == '')){
  231. // alert("SMADT30400.js"+narcstat+ cnclstat + rtnstat + "true" ) ;
  232. return true;
  233. }else return false;
  234. }
  235. /**
  236. * 바코드 변경시
  237. */
  238. function fChgBarcode() {
  239. model.setValue("/root/temp/srchinfo/srchpid", "");
  240. model.setValue("/root/temp/srchinfo/srchpatnm", "");
  241. model.setValue("/root/temp/srchinfo/srchward", "");
  242. model.setValue("/root/temp/srchinfo/srchroomcd", "");
  243. var sBar = model.getValue("/root/temp/srchinfo/barcode");
  244. if(sBar.length >= 21){
  245. if(model.getValue("/root/temp/userinfo/userinfo/userid") == ""){
  246. messageBox("사용자ID가 없습니다. 사용자ID부터","C001");
  247. //model.setValue("/root/temp/srchinfo/srchid","");
  248. model.setFocus("input1");
  249. } else if(sBar.substr(0,1) != "M"){
  250. messageBox("바코드 정보가 다릅니다. 바코드를 다시","C001");
  251. model.setValue("/root/temp/srchinfo/barcode","");
  252. model.setFocus("input9");
  253. } else {
  254. //바코드로 먼저 해당처방을 조회함
  255. fGetNarcData();
  256. //바코드로 Acting처리가 가능한 처방인지 체크함
  257. //바코드로 처리가능한 Acting : 부서확인
  258. //바코드로 조회시 데이터는 한건만 조회됨.
  259. if(model.getValue("/root/main/narclist/narclist["+1+"]/narcstat")=="5"){
  260. //불출상태가 아니면 부서확인을 할수없음.조회만가능
  261. //반환바코드는 약국에서 출력하므로 로직에서 제외함
  262. model.setValue("/root/main/narclist/narclist["+1+"]/sel","Y");
  263. fNarcActing("acpt");
  264. }
  265. }
  266. } else {
  267. messageBox("바코드 정보가 다릅니다.\n다시","C001");
  268. model.setValue("/root/temp/srchinfo/barcode","");
  269. model.setFocus("input9");
  270. }
  271. model.refresh();
  272. }
  273. function fCountStat(sActing){
  274. if(sActing == "drug") narcstat = "2"; // 불출신청
  275. if(sActing == "drugcncl") narcstat = "1"; // 불출취소
  276. if(sActing == "acpt") narcstat = ""; // 부서확인
  277. if(sActing == "rtn") narcstat = ""; // 반환신청
  278. if(sActing == "spre") narcstat = ""; // 잔량신청
  279. for(var i=grd_narclist.fixedRows; i < grd_narclist.rows; i++){
  280. }
  281. }
  282. /**
  283. * 마약 Acting 버튼 클릭시
  284. */
  285. function fNarcActing(sActing) {
  286. if(model.getValue("/root/temp/userinfo/userinfo/userid") == ""){
  287. messageBox("사용자ID가 없습니다. 사용자ID를","C001");
  288. model.setValue("/root/temp/srchinfo/barcode","");
  289. model.setFocus("input1");
  290. model.refresh();
  291. return;
  292. }
  293. if(model.getValue("/root/temp/srchinfo/drugdeptcd") == ""){
  294. messageBox("불출신청부서가 없습니다. 불출신청부서를","C001");
  295. model.setValue("/root/temp/srchinfo/barcode","");
  296. model.setFocus("input1");
  297. model.refresh();
  298. return;
  299. }
  300. model.removeNodeset("/root/send/narcinfo/narclist");
  301. var iSel_Cnt = 0;
  302. var iActing_Cnt = 0;
  303. var sActing_nm = "";
  304. var sActing_After = "";
  305. var iRtn_Cnt = 0;
  306. var iRtn_Chk = 0;
  307. var issmsg = "";
  308. //액팅전 체크표시 cash
  309. fChkCash("before");
  310. for(var i=grd_narclist.fixedRows; i < grd_narclist.rows; i++){
  311. var sel = model.getValue("/root/main/narclist/narclist["+(i-1)+"]/sel");
  312. var sNarcStat = model.getValue("/root/main/narclist/narclist["+(i-1)+"]/narcstat");
  313. var sCnclStat = model.getValue("/root/main/narclist/narclist["+(i-1)+"]/cnclstat");
  314. var sRtnStat = model.getValue("/root/main/narclist/narclist["+(i-1)+"]/rtnstat");
  315. var ioflag = model.getValue("/root/temp/srchinfo/srchioflag");
  316. var sInclprcpcd = model.getValue("/root/main/narclist/narclist["+(i-1)+"]/inclprcpcd");
  317. var issdeptcd = model.getValue("/root/main/narclist/narclist["+(i-1)+"]/issdeptcd");
  318. var deptchgyn = model.getValue("/root/main/narclist/narclist["+(i-1)+"]/deptchgyn");
  319. if(sel == 'Y'){
  320. if ( sActing =="rtn" ){
  321. //alert("spre");
  322. if(sCnclStat != "0" || sNarcStat == "5"){
  323. //alert("rtn");
  324. sActing="spre";
  325. }
  326. }
  327. iSel_Cnt++;
  328. if(sActing == "drug"){
  329. if(sNarcStat == "1"){
  330. astfCopyNodeSet("/root/send/narcinfo/narclist", "/root/main/narclist/narclist["+(i-1)+"]");
  331. //model.makeValue("/root/send/narcinfo/narclist["+getNodesetCount("/root/send/narcinfo/narclist")+"]/acting_after", "-");
  332. iActing_Cnt++;
  333. //수행부서와 다른 부서의 간호사가 불출신청을 할 경우 안내 팝업(M-SET제외)_20090509_SMY
  334. //if((sInclprcpcd == "-" || sInclprcpcd == "") && issdeptcd != getUserInfo("dutplcecd")){
  335. if(deptchgyn == "Y" && issdeptcd != getUserInfo("dutplcecd")){
  336. issmsg = "Y";
  337. }
  338. }
  339. sActing_nm = "불출신청";
  340. } else if(sActing == "drugcncl"){
  341. if(sNarcStat == "2"){
  342. astfCopyNodeSet("/root/send/narcinfo/narclist", "/root/main/narclist/narclist["+(i-1)+"]");
  343. //model.makeValue("/root/send/narcinfo/narclist["+getNodesetCount("/root/send/narcinfo/narclist")+"]/acting_after", "-");
  344. iActing_Cnt++;
  345. }
  346. sActing_nm = "불출취소";
  347. } else if(sActing == "acpt"){
  348. if(sNarcStat == "5"){
  349. astfCopyNodeSet("/root/send/narcinfo/narclist", "/root/main/narclist/narclist["+(i-1)+"]");
  350. //model.makeValue("/root/send/narcinfo/narclist["+getNodesetCount("/root/send/narcinfo/narclist")+"]/acting_after", "-");
  351. iActing_Cnt++;
  352. }
  353. sActing_nm = "부서확인";
  354. } else if(sActing == "spre"){
  355. if(sRtnStat == "0" && sNarcStat == "6"){
  356. astfCopyNodeSet("/root/send/narcinfo/narclist", "/root/main/narclist/narclist["+(i-1)+"]");
  357. iActing_Cnt++;
  358. if(sCnclStat == "0" && sNarcStat != "5"){
  359. var vb_prcpcd = model.getValue("/root/main/narclist/narclist["+(i-1)+"]/prcpcd");
  360. //var vb_Chk = messageBox(vb_prcpcd+"마약에 대해 반환신청 데이터가 존재합니다.\n반환신청을 ", "Q004");
  361. //if(vb_Chk == 6){
  362. model.makeValue("/root/send/narcinfo/narclist["+getNodesetCount("/root/send/narcinfo/narclist")+"]/acting_after", "rtn");
  363. //} else {
  364. // model.makeValue("/root/send/narcinfo/narclist["+getNodesetCount("/root/send/narcinfo/narclist")+"]/acting_after", "-");
  365. //}
  366. } else {
  367. model.makeValue("/root/send/narcinfo/narclist["+getNodesetCount("/root/send/narcinfo/narclist")+"]/acting_after", "-");
  368. }
  369. }
  370. sActing_nm = "반납/반환신청";
  371. if(sNarcStat != "6"){
  372. iRtn_Cnt++;
  373. //iRtn_Chk = 1;
  374. }
  375. } else if(sActing == "rtn"){
  376. /* 이선경 2008-07-23 start (간호의 반환신청 가능범위 확대)
  377. if(sCnclStat == "0" && sNarcStat == "6" && model.getValue("/root/main/narclist/narclist["+(i-1)+"]/returnqty") != ""){
  378. *///이선경 2008-07-23 end (간호의 반환신청 가능범위 확대)
  379. if(sCnclStat == "0" && sNarcStat != "5"){
  380. astfCopyNodeSet("/root/send/narcinfo/narclist", "/root/main/narclist/narclist["+(i-1)+"]");
  381. iActing_Cnt++;
  382. if(sRtnStat == "0" && sNarcStat == "6"){
  383. var vb_prcpcd = model.getValue("/root/main/narclist/narclist["+(i-1)+"]/prcpcd");
  384. //var vb_Chk = messageBox(vb_prcpcd+"마약에 대해 잔량신청 데이터가 존재합니다.\n잔랑반납신청을 ", "Q004");
  385. //if(sNarcStat == "6"){
  386. model.makeValue("/root/send/narcinfo/narclist["+getNodesetCount("/root/send/narcinfo/narclist")+"]/acting_after", "spre");
  387. //}else {
  388. // model.makeValue("/root/send/narcinfo/narclist["+getNodesetCount("/root/send/narcinfo/narclist")+"]/acting_after", "-");
  389. //}
  390. } else {
  391. model.makeValue("/root/send/narcinfo/narclist["+getNodesetCount("/root/send/narcinfo/narclist")+"]/acting_after", "-");
  392. if(model.getValue("/root/main/narclist/narclist["+(i-1)+"]/returnqty") == ""){
  393. iRtn_Chk = 2;
  394. }
  395. }
  396. }
  397. sActing_nm = "반납/반환신청";
  398. if(sNarcStat == "5"){
  399. iRtn_Cnt++;
  400. }
  401. }
  402. }
  403. }
  404. if(iSel_Cnt == 0){
  405. messageBox("선택된 데이터가","I004");
  406. return;
  407. } else if(iActing_Cnt == 0){
  408. if (iRtn_Cnt != 0){
  409. //if(ioflag == "O") { //주석처리_20090512_SMY
  410. messageBox("부서확인 이후에 "+sActing_nm+"이","I006");
  411. return;
  412. //}
  413. } else if(iRtn_Chk == 2){
  414. messageBox("투약기록에서 반환처리 이후에 "+sActing_nm+"이","I006");
  415. return;;
  416. } else if(model.getValue("/root/temp/srchinfo/barcode") == ""){
  417. messageBox("선택된 데이터중에 "+sActing_nm+"할 데이터가","I004");
  418. return;
  419. } else if(model.getValue("/root/temp/srchinfo/barcode") != ""){
  420. messageBox("이미","I001");
  421. model.setValue("/root/temp/srchinfo/barcode","");
  422. model.setFocus("input9");
  423. model.refresh();
  424. return;
  425. }
  426. }
  427. var msg_val = 6;
  428. if(sActing == "drug"){
  429. //msg_val = messageBox(model.getValue("/root/temp/srchinfo/drugdeptnm")+"(으)로 불출신청","S001");
  430. //수행부서와 다른 부서의 간호사가 불출신청을 할 경우 안내 팝업(M-SET제외)_20090509_SMY
  431. if(issmsg == "Y"){
  432. msg_val = messageBox("수행부서가 "+ getUserInfo("dutplcenm") + "(으)로 변경되어 신청됩니다.","I");
  433. }
  434. msg_val = 6;
  435. } else if(sActing == "spre"){
  436. msg_val = messageBox(model.getValue("/root/temp/srchinfo/drugdeptnm")+"(으)로 반환/잔량신청","Q003");
  437. } else if(sActing == "rtn"){
  438. msg_val = messageBox(model.getValue("/root/temp/srchinfo/drugdeptnm")+"(으)로 반환/잔량신청","Q003");
  439. }
  440. if(msg_val == 6){
  441. model.copyNode("/root/send/narcinfo/srchinfo","/root/temp/srchinfo");
  442. model.copyNode("/root/send/narcinfo/userinfo","/root/temp/userinfo/userinfo");
  443. model.makeValue("/root/send/narcinfo/srchinfo/acting", sActing);
  444. if(submit("TXADT30401")) {
  445. grd_narclist.fixedcellischeck(0, 1) = false;
  446. var count = model.getValue("/root/main/narclist/ret/count");
  447. //messageBox(count+"건의 데이터가 "+sActing_nm,"I001");
  448. messageBox(iActing_Cnt+"건의 데이터가 "+sActing_nm,"I001");
  449. grd_narclist.rebuildStyle();
  450. }
  451. }
  452. //액팅전 체크표시 다시 표시
  453. fChkCash("after");
  454. //재조회_20090512_SMY
  455. fGetNarcData();
  456. }
  457. /**
  458. * userid 변경시
  459. */
  460. function fChgUserID() {
  461. var sUserid = model.getValue("/root/temp/srchinfo/srchid");
  462. //----------------(20100621:경북대)
  463. //if(sUserid.length == 8 || sUserid.length == 9 || sUserid.length == 10){
  464. //----------------(20100621)
  465. model.setValue("/root/send/userinfo/userid", sUserid);
  466. submit("TRADT30403");
  467. if(model.getValue("/root/temp/userinfo/userinfo/userid") == ""){
  468. messageBox("사용자ID 정보가 없습니다.\n다시","C001");
  469. //model.setValue("/root/temp/srchinfo/srchid","");
  470. model.setFocus("input1");
  471. } else {
  472. //model.setValue("/root/temp/srchinfo/srchid","");
  473. model.setFocus("input1");
  474. model.refresh();
  475. model.setFocus("input9");
  476. }
  477. //----------------(20100621:경북대)
  478. //} else {
  479. // messageBox("사용자ID 정보가 다릅니다.\n다시","C001");
  480. // //model.setValue("/root/temp/srchinfo/srchid","");
  481. // model.setFocus("input1");
  482. //}
  483. //----------------(20100621:경북대)
  484. model.refresh();
  485. }
  486. //외래 부서구분 변경시
  487. function fChgOutDept() {
  488. var sDeptcd = model.getValue("/root/temp/srchinfo/srchdutplcenm");
  489. model.setValue("/root/send/dutdeptinfo/deptcd", sDeptcd);
  490. submit("TRADT30405");
  491. if(model.getValue("/root/temp/dutdeptinfo/dept/deptcd") == ""){
  492. messageBox("조회된 부서 정보가 없습니다.\n다시","C001");
  493. model.setValue("/root/temp/srchinfo/srchdutplcenm","");
  494. model.setFocus("input2");
  495. } else {
  496. rdo_dutdept.visible = true;
  497. if(getNodesetCount("/root/temp/dutdeptinfo/dept") == 1 ){
  498. model.setValue("/root/temp/srchinfo/srchdutplcenm",model.getValue("/root/temp/dutdeptinfo/dept/deptnm"));
  499. model.setValue("/root/temp/srchinfo/srchdutplcecd",model.getValue("/root/temp/dutdeptinfo/dept/deptcd"));
  500. rdo.dutdept.visible = false;
  501. }
  502. }
  503. model.refresh();
  504. }
  505. /**
  506. * 입원외래구분 변경시
  507. */
  508. function fChgIOFlag(){
  509. var ioflag = model.getValue("/root/temp/srchinfo/srchioflag");
  510. // 화면구성
  511. if (ioflag == "I") {
  512. model.setValue("/root/temp/srchinfo/srchioflag","I");
  513. model.toggle("case3");
  514. chk_injectflag.visible = false;
  515. rdo_drugkind.visible = true;
  516. model.setValue("/root/temp/srchinfo/drugkind", "T");
  517. //병동 Combo 조회
  518. model.makeValue("/root/send/srchcond/deptflag", "W");
  519. model.makeValue("/root/send/srchcond/narcflag", "M");
  520. submit("TRADT30401");
  521. model.copyNode("/root/temp/drugdeptinfo","/root/temp/srchcond"); //불출신청부서 셋팅
  522. // astfAddCombo("/root/temp/drugdeptinfo", "dept", "deptcd,deptnm", "2010302030,소화기센터내시경실"); //불출신청부서 셋팅
  523. //astfAddCombo("/root/temp/drugdeptinfo", "dept", "deptcd,deptnm", "3073100000,수술실 마취"); //불출신청부서 셋팅
  524. //astfAddCombo("/root/temp/drugdeptinfo", "dept", "deptcd,deptnm", "3073300000,수술실 회복실"); //불출신청부서 셋팅
  525. //astfAddCombo("/root/temp/srchcond", "dept", "deptcd,deptnm", "3073100000,수술실 마취"); //불출신청부서 셋팅
  526. //astfAddCombo("/root/temp/srchcond", "dept", "deptcd,deptnm", "3073300000,수술실 회복실"); //불출신청부서 셋팅
  527. // astfAddCombo("/root/temp/drugdeptinfo", "dept", "deptcd,deptnm", "2010702000,인공신장실"); //불출신청부서 셋팅
  528. //submit("TRADT30405");
  529. //copyNodeListType("/root/temp/drugdeptinfo","/root/temp/dutdeptinfo/dept ", "after");
  530. //copyNodeListType("/root/temp/srchcond","/root/temp/dutdeptinfo/dept ", "after");
  531. astfAddCombo("/root/temp/srchcond", "dept", "deptcd,deptnm", ",");
  532. model.refresh();
  533. //상단에서 정보 조회
  534. //var node = getGlobalVariable("paminfo");
  535. //setCSVToNode("/root/temp/topinfo", node);
  536. if(model.getValue("/root/temp/topinfo/list/wardcd") != ""){
  537. model.setValue("/root/temp/srchinfo/srchward", model.getValue("/root/temp/topinfo/list/wardcd"));
  538. //model.setValue("/root/temp/srchinfo/drugdeptcd", model.getValue("/root/temp/topinfo/list/wardcd"));
  539. model.refresh();
  540. if(combo1.label == ""){
  541. model.setValue("/root/temp/srchinfo/srchward", "");
  542. } else {
  543. fSrchRoomCD();
  544. model.setValue("/root/temp/srchinfo/srchroomcd", model.getValue("/root/temp/topinfo/list/roomcd"));
  545. model.refresh();
  546. if(combo3.label == "") model.setValue("/root/temp/srchinfo/srchroomcd", "");
  547. }
  548. }
  549. //입원일 경우만 반환완료옵션 조회됨_20090517_SMY
  550. chk_rtnendflag.visible = true;
  551. chk_nodelive.visible = false;
  552. chk_rtnendflag.refresh();
  553. chk_nodelive.refresh();
  554. combo2.select(1);//그외 적용일자
  555. } else if(ioflag == "O"){
  556. model.setValue("/root/temp/srchinfo/srchioflag","O");
  557. model.toggle("case4");
  558. rdo_drugkind.visible = false;
  559. chk_injectflag.visible = true;
  560. model.setValue("/root/temp/srchinfo/drugkind", "I"); //외래는 주사만 보여짐
  561. //
  562. //외래용 시행부서 조회
  563. model.makeValue("/root/send/dutdeptinfo/deptcd", "");
  564. submit("TRADT30405");
  565. model.copyNode("/root/temp/drugdeptinfo","/root/temp/dutdeptinfo"); //불출신청부서 셋팅
  566. // astfAddCombo("/root/temp/drugdeptinfo", "dept", "deptcd,deptnm", "3073100000,수술실 마취"); //불출신청부서 셋팅
  567. // astfAddCombo("/root/temp/drugdeptinfo", "dept", "deptcd,deptnm", "3073300000,수술실 회복실"); //불출신청부서 셋팅
  568. //astfAddCombo("/root/temp/srchcond", "dept", "deptcd,deptnm", "3073100000,수술실 마취"); //불출신청부서 셋팅
  569. // astfAddCombo("/root/temp/srchcond", "dept", "deptcd,deptnm", "3073300000,수술실 회복실"); //불출신청부서 셋팅
  570. // astfAddCombo("/root/temp/dutdeptinfo", "dept", "deptcd,deptnm", "3073100000,수술실 마취"); //불출신청부서 셋팅
  571. // astfAddCombo("/root/temp/dutdeptinfo", "dept", "deptcd,deptnm", "3073300000,수술실 회복실"); //불출신청부서 셋팅
  572. astfAddCombo("/root/temp/dutdeptinfo", "dept", "deptcd,deptnm", ",전체");
  573. var dutplcecd = getUserInfo("dutplcecd");
  574. var dutplcenm = getUserInfo("dutplcenm");
  575. model.setValue("/root/temp/srchinfo/srchdutplcecd", dutplcecd);
  576. model.setValue("/root/temp/srchinfo/srchdutplcenm", dutplcenm);
  577. //model.setValue("/root/temp/srchinfo/drugdeptcd", dutplcecd);
  578. if(combo4.label == ""){
  579. model.setValue("/root/temp/srchinfo/srchdutplcecd", "");
  580. }
  581. if(model.getValue("/root/temp/topinfo/list/pid") != ""){
  582. model.setValue("/root/temp/srchinfo/srchpid",model.getValue("/root/temp/topinfo/list/pid"));
  583. model.setValue("/root/temp/srchinfo/srchpatnm",model.getValue("/root/temp/topinfo/list/hngnm"));
  584. }
  585. grd_narclist.colwidth(2) = 0;
  586. //입원일 경우만 반환완료옵션 조회됨_20090517_SMY
  587. chk_rtnendflag.visible = false;
  588. chk_nodelive.visible = true;
  589. chk_rtnendflag.refresh();
  590. chk_nodelive.refresh();
  591. if(model.getValue("/root/temp/srchinfo/narcflag") == "H") {
  592. combo2.select(2);//외래향정일때 실시일자
  593. } else {
  594. combo2.select(1);//그외 적용일자
  595. }
  596. }
  597. if(model.getValue("/root/temp/topinfo/list/pid") != ""){
  598. model.setValue("/root/temp/srchinfo/srchpid",model.getValue("/root/temp/topinfo/list/pid"));
  599. model.setValue("/root/temp/srchinfo/srchpatnm",model.getValue("/root/temp/topinfo/list/hngnm"));
  600. } else {
  601. model.setValue("/root/temp/srchinfo/srchward", getUserInfo("dutplcecd"));
  602. }
  603. model.refresh();
  604. }
  605. /**
  606. * 환자별 조회인지 체크
  607. */
  608. function fChkPatSearch() {
  609. var pid = model.getValue("/root/temp/srchinfo/srchpid");
  610. if(pid != "" && grd_narclist.rows != 0){
  611. for(var i = grd_narclist.fixedRows; i < grd_narclist.rows; i++){
  612. if ( model.getValue("/root/main/narclist/narclist["+(i-1)+"]/prcpno")== model.getValue("/root/temp/srchinfo/chkprcpno") ){
  613. if(!fChkEndYN(i)) model.setValue("/root/main/narclist/narclist["+(i-1)+"]/sel", "Y"); // 2009-06-09 김귀남
  614. }
  615. }
  616. model.refresh();
  617. }
  618. }
  619. /**
  620. * 액팅후 체크표시 cach
  621. */
  622. function fChkCash(chk) {
  623. var pid = model.getValue("/root/temp/srchinfo/srchpid");
  624. if(pid != "" && grd_narclist.rows != 0){
  625. if(chk == "before"){
  626. model.removeNodeset("/root/temp/chkcashinfo/narclist");
  627. for(var i = grd_narclist.fixedRows; i < grd_narclist.rows; i++){
  628. if(model.getValue("/root/main/narclist/narclist["+(i-1)+"]/sel") == "Y"){
  629. astfCopyNodeSet("/root/temp/chkcashinfo/narclist", "/root/main/narclist/narclist["+(i-1)+"]");
  630. }
  631. }
  632. } else if (chk == "after"){
  633. for(var a = 1; a <= getNodesetCount("/root/temp/chkcashinfo/narclist"); a++){
  634. var cash_prcpdd = model.getValue("/root/temp/chkcashinfo/narclist["+a+"]/prcpdd");
  635. var cash_prcpno = model.getValue("/root/temp/chkcashinfo/narclist["+a+"]/prcpno");
  636. for(var b = grd_narclist.fixedRows; b < grd_narclist.rows; b++){
  637. var search_prcpdd = model.getValue("/root/main/narclist/narclist["+b+"]/prcpdd");
  638. var search_prcpno = model.getValue("/root/main/narclist/narclist["+b+"]/prcpno");
  639. if(cash_prcpdd == search_prcpdd && cash_prcpno == search_prcpno){
  640. model.setValue("/root/main/narclist/narclist["+b+"]/sel", "Y");
  641. }
  642. }
  643. }
  644. } else {
  645. }
  646. model.refresh();
  647. }
  648. }
  649. /**
  650. * 마약/향정체크시 버튼 변경
  651. */
  652. function fBtnDisable(){
  653. if(model.getValue("/root/temp/srchinfo/narcflag") != "M"){
  654. btn_drug.disabled = true; // 불출신청 비활성화
  655. btn_drugcncl.disabled = true; // 불출취소 비활성화
  656. }else{
  657. btn_drug.disabled = false; // 불출신청 활성화
  658. btn_drugcncl.disabled = false; // 불출취소 활성화
  659. }
  660. model.refresh();
  661. }