SMLBD00500.js 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842
  1. /*
  2. 헌혈접수=APU메인 (SMLBD00500.xrw - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. // --------------------------------------------------
  7. // 화면 read
  8. // --------------------------------------------------
  9. function finit() {
  10. aezfSetSuppDeptcd_local();
  11. zbcfGetCodeList( new Array("M0029", "M0007"), new Array("/root/init/cmbinfo/payflagcd", "/root/init/cmbinfo/opansflagcd"));
  12. model.removeNodeset("/root/main/direcprcp/direcprcpinfo");
  13. model.removeNodeset("/root/main/prcpdetl/prcpdetlinfo");
  14. model.setValue("/root/main/cond/baseinfo/tdate", getCurrentDate());
  15. var date = getCurrentDate().toDate().getAddDate(-7,"D").getDateFormat("YYYYMMDD");
  16. model.setValue("/root/main/cond/baseinfo/sdate", date);
  17. model.toggle("case1");
  18. btn_case1.selected = true;
  19. btn_case2.selected = false;
  20. model.toggle("case_apu");
  21. btn_apu.selected = true;
  22. btn_om.selected = false;
  23. grd_keepbaclist.frozenCols = grd_keepbaclist.colRef("prcpnm");
  24. datagrid1.frozenCols = datagrid1.colRef("prcpnm");
  25. datagrid2.frozenCols = datagrid2.colRef("prcpnm");
  26. //공통코드(급여구분)
  27. zbcfGetCodeList(new Array( "M0029" ), new Array("/root/init/payflagcd"),true);
  28. //fInqurySelectedPrgm();
  29. btn_apu.selected = true;
  30. model.toggle("case_apu");
  31. readfunc();
  32. //model.refresh();
  33. datagrid1.fixedcellcheckbox(0,1) = true; //그리드 헤더에 체크버튼 추가
  34. datagrid2.fixedcellcheckbox(0,1) = true; //그리드 헤더에 체크버튼 추가
  35. }
  36. // --------------------------------------------------
  37. //switch 작업 토클
  38. // --------------------------------------------------
  39. function fInqurySelectedPrgm()
  40. {
  41. var xPathMainCond = "/root/main/cond";
  42. var xPathMainApu = "/root/main/direcprcp/direcprcpinfo";
  43. var flag = model.getValue(xPathMainCond + "/workflag");
  44. var pGrd = grd_keepbaclist;
  45. if (flag == "om" || flag == "prn") {
  46. if (pGrd.rows <= 0 || pGrd.row <= 0 ) {
  47. messageBox("자료를 선택하십시오.", "E999", "");
  48. return;
  49. }
  50. if (model.getValue(xPathMainApu + "[" + pGrd.row + "]/iogb") != "I" ) {
  51. messageBox("입원환자인경우만 해당됩니다.", "E999", "");
  52. return;
  53. }
  54. var tempprcpdd = model.getValue(xPathMainApu + "[" + pGrd.row + "]/prcpdd");
  55. var temppid = model.getValue(xPathMainApu + "[" + pGrd.row + "]/pid");
  56. //var tempwardcd = model.getValue(xPathMainApu + "[" + pGrd.row + "]/prcpdd");
  57. var tempsexage = model.getValue(xPathMainApu + "[" + pGrd.row + "]/sex") + "/" +
  58. model.getValue(xPathMainApu + "[" + pGrd.row + "]/age");
  59. var temppatnm = model.getValue(xPathMainApu + "[" + pGrd.row + "]/hngnm");
  60. btn_om.selected = true;
  61. model.toggle("case_om");
  62. model.setValue("/root/main/cond/orddd", tempprcpdd); // 업무일자
  63. model.setValue("/root/main_om/cond/pid", temppid);
  64. //model.setValue("/root/main_om/cond/roomcd", "병실");
  65. model.setValue("/root/main_om/cond/sexage", tempsexage);
  66. model.setValue("/root/main_om/cond/patnm", temppatnm);
  67. }
  68. switch(flag) {
  69. case "om" :
  70. fGetOMPatList("apu");
  71. // fGetOMPatList("");
  72. break;
  73. case "prn" :
  74. fSetPrnMode();
  75. fGetOMPatList("apu");
  76. // fGetOMPatList("");
  77. break;
  78. default :
  79. btn_apu.selected = true;
  80. model.toggle("case_apu");
  81. readfunc();
  82. break;
  83. }
  84. }
  85. //-----------------------------
  86. // APU 메인 조회
  87. //-----------------------------
  88. function readfunc(){
  89. if (model.getValue("/root/main/cond/baseinfo/sdate") == ""){
  90. messageBox("조회 시작일자는 필수 입력항목입니다.", "E999", "");
  91. return;
  92. }
  93. if (isDate(model.getValue("/root/main/cond/baseinfo/sdate")) == false){
  94. messageBox("조회 시작일자의 날짜 형식이 잘못 입력되었습니다.", "E999", "");
  95. return;
  96. }
  97. if (model.getValue("/root/main/cond/baseinfo/tdate") == ""){
  98. messageBox("조회 종료일자는 필수 입력항목입니다.", "E999", "");
  99. return;
  100. }
  101. if (isDate(model.getValue("/root/main/cond/baseinfo/tdate")) == false){
  102. messageBox("조회 종료일자의 날짜 형식이 잘못 입력되었습니다.", "E999", "");
  103. return;
  104. }
  105. if (model.getValue("/root/main/cond/baseinfo/sdate") > model.getValue("/root/main/cond/baseinfo/tdate")){
  106. messageBox("조회 시작일자가 종료일자 보다 큽니다.", "E999", "");
  107. return;
  108. }
  109. // model.toggle("case1");
  110. // btn_case1.selected = true;
  111. // btn_case2.selected = false;
  112. model.toggle("case_apu");
  113. btn_apu.selected = true;
  114. btn_om.selected = false;
  115. model.removeNodeset("/root/main/direcprcp/direcprcpinfo");
  116. model.removeNodeset("/root/main/prcpdetl/prcpdetlinfo");
  117. model.removeNodeset("/root/main/execprcp/execprcpinfo");
  118. model.removeNodeset("/root/send");
  119. model.makeValue("/root/send/baseinfo/pid", model.getValue("/root/main/cond/baseinfo/pid"));
  120. model.makeValue("/root/send/baseinfo/sdate", model.getValue("/root/main/cond/baseinfo/sdate"));
  121. model.makeValue("/root/send/baseinfo/tdate", model.getValue("/root/main/cond/baseinfo/tdate"));
  122. model.makeValue("/root/send/baseinfo/iogb", model.getValue("/root/main/cond/baseinfo/iogb"));
  123. //model.makeValue("/root/send/baseinfo/deptcd", model.getValue("/root/main/cond/globalinstance/instance1"));
  124. model.makeValue("/root/send/baseinfo/prcpflag", model.getValue("/root/main/cond/baseinfo/prcpflag"));
  125. if (submit("TRLBD00501")){
  126. }
  127. model.refresh();
  128. //조회후 전부 수정불가
  129. var pGrd = grd_keepbaclist;
  130. if (pGrd.rows <= 1 ) return;
  131. pGrd.isReadOnly(1,1,pGrd.rows-1,pGrd.cols-1)= true;
  132. }
  133. //-----------------------------
  134. // 처방내역 조회
  135. //-----------------------------
  136. function readfunc1(){
  137. model.removeNodeset("/root/main/prcpdetl/prcpdetlinfo");
  138. model.removeNodeset("/root/send");
  139. model.makeValue("/root/send/baseinfo1/pid", model.getValue("/root/main/direcprcp/direcprcpinfo[" + grd_keepbaclist.row + "]/pid"));
  140. model.makeValue("/root/send/baseinfo1/prcpdd", model.getValue("/root/main/direcprcp/direcprcpinfo[" + grd_keepbaclist.row + "]/prcpdd"));
  141. model.makeValue("/root/send/baseinfo1/prcpcd", model.getValue("/root/main/direcprcp/direcprcpinfo[" + grd_keepbaclist.row + "]/prcpcd"));
  142. model.makeValue("/root/send/baseinfo1/deptcd", model.getValue("/root/main/cond/globalinstance/instance1"));
  143. model.makeValue("/root/send/baseinfo1/hsctlnkno", model.getValue("/root/main/direcprcp/direcprcpinfo[" + grd_keepbaclist.row + "]/hsctlnkno"));
  144. model.makeValue("/root/send/baseinfo1/dispflag", "N");
  145. model.makeValue("/root/send/baseinfo1/prcpflag", model.getValue("/root/main/direcprcp/direcprcpinfo[" + grd_keepbaclist.row + "]/prcpflag"));
  146. model.makeValue("/root/send/baseinfo1/iogb", model.getValue("/root/main/direcprcp/direcprcpinfo[" + grd_keepbaclist.row + "]/iogb"));
  147. model.makeValue("/root/send/baseinfo1/instcd", model.getValue("/root/main/direcprcp/direcprcpinfo[" + grd_keepbaclist.row + "]/instcd"));
  148. model.makeValue("/root/send/baseinfo1/prcpno", model.getValue("/root/main/direcprcp/direcprcpinfo[" + grd_keepbaclist.row + "]/prcpno"));
  149. model.makeValue("/root/send/baseinfo1/prcphistno", model.getValue("/root/main/direcprcp/direcprcpinfo[" + grd_keepbaclist.row + "]/prcphistno"));
  150. if (submit("TRLBD00502")){
  151. }
  152. // for (var i = 1; i < datagrid1.rows; i ++){
  153. // if (model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + i + "]/execyn") == "Y"){
  154. // datagrid1.isReadOnly(i, datagrid1.colRef("check")) = true;
  155. // }else if (model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + i + "]/status") == "L"){
  156. // datagrid1.isReadOnly(i, datagrid1.colRef("check")) = true;
  157. // }else{
  158. // datagrid1.isReadOnly(i, datagrid1.colRef("check")) = false;
  159. // }
  160. // }
  161. model.refresh();
  162. //-----------------------------------------------
  163. //선택불가로 변경
  164. //-----------------------------------------------
  165. var pGrd = datagrid1;
  166. var pGrdMain = grd_keepbaclist;
  167. if (pGrdMain.rows <= 1 || pGrdMain.row < 1) return;
  168. if (pGrd.rows <= 1 ) return;
  169. var tempprcpflag = model.getValue("/root/main/direcprcp/direcprcpinfo[" + pGrdMain.row + "]/prcpflag");
  170. //전부 수정불가
  171. pGrd.isReadOnly(1,1,pGrd.rows-1,pGrd.cols-1)= true;
  172. for (var row=1;row<pGrd.rows;row++) {
  173. //prn도 지시처방을 풀어야 한다.
  174. //if (model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + row + "]/prnprcpflag") == "Y") {
  175. // continue;
  176. //}
  177. if (model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + row + "]/dr") == "D/C") {
  178. continue;
  179. }
  180. //지시처방이면서
  181. if (tempprcpflag == "2") {
  182. //hscttempprcpflag ='Y' 인경우는 ACTING에 관계없이 처리가능하다.
  183. if (model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + row + "]/hscttempprcpflag") != "Y" ){
  184. continue;
  185. }
  186. //반납의뢰된 사항은 처리불가
  187. if (model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + row + "]/iogb") == "I" &&
  188. model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + row + "]/dr") == "반납의뢰" ){
  189. continue;
  190. }
  191. } else {
  192. if (model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + row + "]/iogb") == "O" &&
  193. model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + row + "]/rcptyn") == "N"){
  194. return; //외래 AND 수납N인경우
  195. }
  196. if (model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + row + "]/iogb") == "O" &&
  197. model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + row + "]/rcptyn") == "Y" &&
  198. model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + row + "]/execyn") == "Y") {
  199. return; //외래 AND 수납Y AND ACTING =Y'인 경우
  200. }
  201. //LBT90001 / LBT90101 은 막음(20080129)
  202. var prcpcd = model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + row + "]/prcpcd");
  203. if (prcpcd == "LBT90001" || prcpcd == "LBT90101" ){
  204. continue;
  205. }
  206. // if (model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + row + "]/execyn") == "Y"){
  207. // continue;
  208. // }
  209. }
  210. //입력가능
  211. pGrd.isReadOnly(row,pGrd.colRef("chk"),row,pGrd.colRef("chk")) = false;
  212. }
  213. }
  214. //-----------------------------
  215. // 실처방 내역 조회
  216. //-----------------------------
  217. function readfunc2(){
  218. model.removeNodeset("/root/main/execprcp/execprcpinfo");
  219. model.removeNodeset("/root/send");
  220. model.makeValue("/root/send/baseinfo1/pid", model.getValue("/root/main/direcprcp/direcprcpinfo[" + grd_keepbaclist.row + "]/pid"));
  221. model.makeValue("/root/send/baseinfo1/prcpdd", model.getValue("/root/main/direcprcp/direcprcpinfo[" + grd_keepbaclist.row + "]/prcpdd"));
  222. model.makeValue("/root/send/baseinfo1/prcpcd", model.getValue("/root/main/direcprcp/direcprcpinfo[" + grd_keepbaclist.row + "]/prcpcd"));
  223. model.makeValue("/root/send/baseinfo1/deptcd", model.getValue("/root/main/cond/globalinstance/instance1"));
  224. model.makeValue("/root/send/baseinfo1/hsctlnkno", model.getValue("/root/main/direcprcp/direcprcpinfo[" + grd_keepbaclist.row + "]/hsctlnkno"));
  225. model.makeValue("/root/send/baseinfo1/dispflag", "Y");
  226. model.makeValue("/root/send/baseinfo1/prcpflag", model.getValue("/root/main/direcprcp/direcprcpinfo[" + grd_keepbaclist.row + "]/prcpflag"));
  227. model.makeValue("/root/send/baseinfo1/iogb", model.getValue("/root/main/direcprcp/direcprcpinfo[" + grd_keepbaclist.row + "]/iogb"));
  228. model.makeValue("/root/send/baseinfo1/instcd", model.getValue("/root/main/direcprcp/direcprcpinfo[" + grd_keepbaclist.row + "]/instcd"));
  229. model.makeValue("/root/send/baseinfo1/prcpno", model.getValue("/root/main/direcprcp/direcprcpinfo[" + grd_keepbaclist.row + "]/prcpno"));
  230. model.makeValue("/root/send/baseinfo1/prcphistno", model.getValue("/root/main/direcprcp/direcprcpinfo[" + grd_keepbaclist.row + "]/prcphistno"));
  231. if (submit("TRLBD00503")){
  232. }
  233. // for (var i = 1; i < datagrid2.rows; i ++){
  234. // if (model.getValue("/root/main/execprcp/execprcpinfo[" + i + "]/status") == "L"){
  235. // datagrid2.isReadOnly(i, datagrid2.colRef("check")) = true;
  236. // }else{
  237. // datagrid2.isReadOnly(i, datagrid2.colRef("check")) = false;
  238. // }
  239. // }
  240. model.refresh();
  241. //-----------------------------------------------
  242. //선택불가로 변경
  243. //-----------------------------------------------
  244. var pGrd = datagrid2;
  245. var pGrdMain = grd_keepbaclist;
  246. if (pGrdMain.rows <= 1 || pGrdMain.row < 1) return;
  247. if (pGrd.rows <= 1 ) return;
  248. var tempprcpflag = model.getValue("/root/main/direcprcp/direcprcpinfo[" + pGrdMain.row + "]/prcpflag");
  249. //전부 수정불가
  250. pGrd.isReadOnly(1,1,pGrd.rows-1,pGrd.cols-1)= true;
  251. for (var row=1;row<pGrd.rows;row++) {
  252. if (model.getValue("/root/main/execprcp/execprcpinfo[" + row + "]/prnprcpflag") == "Y"){
  253. continue;
  254. }
  255. if (model.getValue("/root/main/execprcp/execprcpinfo[" + row + "]/dr") == "D/C") {
  256. continue;
  257. }
  258. //취소는 지시처방이고 입원인 경우만 해당된다.
  259. if (tempprcpflag == "2") {
  260. if (model.getValue("/root/main/execprcp/execprcpinfo[" + row + "]/iogb") == "I" ) {
  261. } else {
  262. continue;
  263. }
  264. } else {
  265. continue;
  266. }
  267. //입력가능
  268. pGrd.isReadOnly(row,pGrd.colRef("chk"),row,pGrd.colRef("chk")) = false;
  269. }
  270. }
  271. /*------------------------------
  272. acting MAIN
  273. ------------------------------*/
  274. function fSaveData() {
  275. var pGrd0 = grd_keepbaclist;
  276. if (pGrd0.rows <= 1 ) return;
  277. var pGrd1 = datagrid1;
  278. if (pGrd1.rows <= 1 ) return;
  279. //----------------------------------------------------
  280. //설정된 상단정보를 불러옴("내리기")
  281. //체크하기 위해 자료불러오기
  282. model.removenodeset("/root/main/paminfo");
  283. model.makeNode("/root/main/paminfo");
  284. var node = getGlobalVariable("paminfo");
  285. setCSVToNode("/root/main/paminfo", node);
  286. //----------------------------------------------------
  287. if (model.getValue("/root/main/direcprcp/direcprcpinfo[" + pGrd0.row + "]/iogb") == "I") {
  288. fSaveDataI();
  289. } else {
  290. fSaveDataO();
  291. }
  292. }
  293. /*------------------------------
  294. acting(입원)
  295. ------------------------------*/
  296. function fSaveDataI() {
  297. var pGrd0 = grd_keepbaclist;
  298. var pGrd1 = datagrid1;
  299. var k = 0;
  300. // dschnotiyn = 'Y'
  301. var xPath = "/root/main/paminfo/list";
  302. if (model.getValue(xPath + "/dschnotiyn") == "Y") {
  303. messageBox("간호퇴원확정된 자료는 Acting할수 없습니다....", "E999", "");
  304. return;
  305. }
  306. // lastmdlclamdd IS '최종중간청구 일자',
  307. var tempDate = getCurrentDate();
  308. if (model.getValue(xPath + "/lastmdlclamdd") != '-') {
  309. if (model.getValue(xPath + "/lastmdlclamdd") >= tempDate ) {
  310. messageBox("중간정산일 이전일은 Acting할수 없습니다....", "E999", "");
  311. return;
  312. }
  313. }
  314. // alert( model.getValue(xPath + "/dschnotiyn") + "/" +
  315. // model.getValue(xPath + "/lastmdlclamdd") + "/" +
  316. // tempDate);
  317. //조회후 막으므로 저장시는 막지 않는다.
  318. //체크여부만 확인 한다.
  319. var colchk = pGrd1.colRef("chk");
  320. for (var i = 1; i < pGrd1.rows; i++){
  321. if (model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + i + "]/chk") == "true"){
  322. if (pGrd1.isReadOnly(i,colchk,i,colchk) != true) {
  323. /* 막음
  324. // if (model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + i + "]/prnprcpflag") == "Y"){
  325. // messageBox("PRN처방은 ACTING할 수 없습니다..", "E999", "");
  326. // return;
  327. // }
  328. // if (model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + i + "]/execyn") == "Y"){
  329. // messageBox("이미 Acting된 자료입니다...", "E999", "");
  330. // return;
  331. // }
  332. // if (model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + i + "]/dr") == "반납의뢰"){
  333. // messageBox("반납의뢰된 자료입니다...", "E999", "");
  334. // return;
  335. // }
  336. */
  337. k = parseInt(k) + 1;
  338. }
  339. }
  340. }
  341. if (k == 0){
  342. messageBox("처리할 내역이 선택되지 않았습니다.", "E999", "");
  343. return;
  344. }
  345. var update = getGridUpdateData(datagrid1);
  346. model.removenodeset("/root/send");
  347. model.makeValue("/root/send/execdata/prcpdetlinfo",update);
  348. //--------------------------------------------
  349. //수익interface를 태우는 작업을 추가해야 한다.
  350. //(현재이전일 acting인 경우만
  351. //--------------------------------------------
  352. //app에서 처리함
  353. //--------------------------------------------
  354. if (messageBox("Acting ",'Q003',"") != 6) return;
  355. if(submit("TXLBD00501")){
  356. readfunc1();
  357. }
  358. }
  359. /*------------------------------
  360. acting(외래)
  361. ------------------------------*/
  362. function fSaveDataO() {
  363. var pGrd1 = datagrid1;
  364. var k = 0;
  365. var colchk = pGrd1.colRef("chk");
  366. for (var i = 1; i < pGrd1.rows; i++){
  367. if (model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + i + "]/chk") == "true"){
  368. if (pGrd1.isReadOnly(i,colchk,i,colchk) != true) {
  369. /* 막음
  370. if (model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + i + "]/rcptyn") != "Y"){
  371. messageBox("외래인 경우는 수납된 자료만 Acting가능 합니다...", "E999", "");
  372. return;
  373. }
  374. if (model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + i + "]/prnprcpflag") == "Y"){
  375. messageBox("PRN처방은 ACTING할 수 없습니다..", "E999", "");
  376. return;
  377. }
  378. if (model.getValue("/root/main/prcpdetl/prcpdetlinfo[" + i + "]/execyn") == "Y" ){
  379. messageBox("이미 Acting된 자료입니다...", "E999", "");
  380. return;
  381. }
  382. */
  383. k = parseInt(k) + 1;
  384. }
  385. }
  386. }
  387. if (k == 0){
  388. messageBox("처리할 내역이 선택되지 않았습니다.", "E999", "");
  389. return;
  390. }
  391. var update = getGridUpdateData(datagrid1);
  392. model.removenodeset("/root/send");
  393. model.makeValue("/root/send/execdata/prcpdetlinfo",update);
  394. //--------------------------------------------
  395. //수익interface를 태우는 작업을 추가해야 한다.
  396. //--------------------------------------------
  397. //app에서 처리함
  398. //--------------------------------------------
  399. if (messageBox("Acting ",'Q003',"") != 6) return;
  400. if(submit("TXLBD00501")){
  401. readfunc1();
  402. }
  403. }
  404. //-----------------------------
  405. // DC MAIN
  406. //-----------------------------
  407. function fSaveDataCancel() {
  408. var pGrd0 = grd_keepbaclist;
  409. if (pGrd0.rows <= 1 ) return;
  410. var pGrd1 = datagrid1;
  411. if (pGrd1.rows <= 1 ) return;
  412. //----------------------------------------------------
  413. //설정된 상단정보를 불러옴("내리기")
  414. //체크하기 위해 자료불러오기
  415. model.removenodeset("/root/main/paminfo");
  416. model.makeNode("/root/main/paminfo");
  417. var node = getGlobalVariable("paminfo");
  418. setCSVToNode("/root/main/paminfo", node);
  419. //----------------------------------------------------
  420. if (model.getValue("/root/main/direcprcp/direcprcpinfo[" + pGrd0.row + "]/iogb") == "I") {
  421. fSaveDataCancelI();
  422. } else {
  423. messageBox("외래처방은 반납의뢰 할 수 없습니다..", "E999", "");
  424. //fSaveDataCancelO();
  425. }
  426. }
  427. //-----------------------------
  428. // DC (입원)
  429. //-----------------------------
  430. function fSaveDataCancelI() {
  431. //acting 취소+ D/C + 후인증
  432. var pGrd1 = datagrid2;
  433. var k = 0;
  434. // dschnotiyn = 'Y'
  435. var xPath = "/root/main/paminfo/";
  436. var colchk = pGrd1.colRef("chk");
  437. if (model.getValue(xPath + "/dschnotiyn") == "Y") {
  438. messageBox("간호퇴원확정된 자료는 반납의뢰 할 수 없습니다....", "E999", "");
  439. return;
  440. }
  441. for (var i = 1; i < pGrd1.rows; i++){
  442. if (model.getValue("/root/main/execprcp/execprcpinfo[" + i + "]/chk") == "true"){
  443. if (pGrd1.isReadOnly(i,colchk,i,colchk) != true) {
  444. /* 막음
  445. if (model.getValue("/root/main/execprcp/execprcpinfo[" + i + "]/prnprcpflag") == "Y"){
  446. messageBox("PRN처방은 반납의뢰 할 수 없습니다.", "E999", "");
  447. return;
  448. }
  449. */
  450. k = parseInt(k) + 1;
  451. }
  452. }
  453. }
  454. if (k == 0){
  455. messageBox("처리할 내역이 선택되지 않았습니다.", "E999", "");
  456. return;
  457. }
  458. if (messageBox("반납의뢰 ",'Q003',"") != 6) return;
  459. fActingCancel();
  460. if(submit("TXLBD00503")){
  461. readfunc2();
  462. }
  463. }
  464. //-----------------------------
  465. // DC (외래)
  466. //-----------------------------
  467. function fSaveDataCancelO() {
  468. //acting 취소
  469. var k = 0;
  470. var tempDate = getCurrentDate();
  471. for (var i = 1; i < datagrid2.rows; i++){
  472. if (model.getValue("/root/main/execprcp/execprcpinfo[" + i + "]/chk") == "true"){
  473. if (model.getValue("/root/main/execprcp/execprcpinfo[" + i + "]/execdd") != tempDate){
  474. messageBox("당일 Acting 건에 대한 취소만 가능합니다.", "E999", "");
  475. return;
  476. }
  477. /*
  478. //수정해야함(임시)
  479. if (model.getValue("/root/main/execprcp/execprcpinfo[" + i + "]/AAAAA") == "Y"){
  480. messageBox("선처치는 Acting가 불가능합니다.", "E999", "");
  481. return;
  482. }
  483. */
  484. k = parseInt(k) + 1;
  485. }
  486. }
  487. if (k == 0){
  488. messageBox("처리할 내역이 선택되지 않았습니다.", "E999", "");
  489. return;
  490. }
  491. if (messageBox("반납의뢰 ",'Q003',"") != 6) return;
  492. fActingCancel();
  493. //--------------------------------------------
  494. //수익interface를 태우는 작업을 추가해야 한다.
  495. //--------------------------------------------
  496. // 외래DC는 없음
  497. //--------------------------------------------
  498. if(submit("TXLBD00503")){
  499. readfunc2();
  500. }
  501. }
  502. //----------------------------------------------
  503. // Acting 취소 처리
  504. //----------------------------------------------
  505. function fActingCancel() {
  506. var update = getGridUpdateData(datagrid2);
  507. model.removenodeset("/root/send");
  508. model.makeValue("/root/send/execdata/execprcpinfo",update);
  509. }
  510. //--AEZ0001.JS (원본)
  511. function aezfSetSuppDeptcd_local() {
  512. var dutplcecd = getUserInfo("dutplcecd");
  513. //var dutplcenm = getUserInfo("dutplcenm");
  514. var selectplcecd = getScreenPrestDeptCd();
  515. //alert(dutplcecd + "/////" + selectplcecd);
  516. if ( selectplcecd == "" ) {
  517. selectplcecd = dutplcecd;
  518. //selectplcenm = dutplcenm;
  519. }
  520. model.setValue("/root/main/cond/globalinstance/instance1", selectplcecd);
  521. }
  522. //----------------------------------------------
  523. // 하단 질의문
  524. //----------------------------------------------
  525. function fQueryDetail() {
  526. //하단그리드에 전체선택버튼 비선택으로전환
  527. datagrid1.fixedcellischeck(0,1) = false; //그리드 헤더에 체크버튼 추가
  528. datagrid2.fixedcellischeck(0,1) = false; //그리드 헤더에 체크버튼 추가
  529. //하단그리드자료 조회
  530. var pGrd = grd_keepbaclist;
  531. if ( (pGrd.row >= pGrd.fixedRows) && (pGrd.isCell(event.target))) {
  532. model.toggle("case1");
  533. btn_case1.selected = true;
  534. btn_case2.selected = false;
  535. if (btn_case1.selected == true){
  536. readfunc1();
  537. }else{
  538. readfunc2();
  539. }
  540. }
  541. }
  542. //----------------------------------------------
  543. // 상단올리기
  544. //----------------------------------------------
  545. function fSetPatInfo() {
  546. var pGrd = grd_keepbaclist;
  547. var xPath = "/root/main/direcprcp/direcprcpinfo";
  548. var condparam = "";
  549. if (pGrd.rows <= 1 || pGrd.row <= 0 ) return;
  550. //--------------------------상단올리기 flag --------------------------
  551. // 01 O:외래, I:입원구분, T:수술예약 , E:응급
  552. // 02 등록번호
  553. // 03 수술시작일자
  554. // 04 cretno(없는 경우 ""로 처리)
  555. // 05 기관코드
  556. // 06 집도과부서
  557. // 07 집도의ID
  558. // 08 환자구분
  559. // 09 F -처리구분 무조건 F로 설정
  560. // 10 수술예약번호
  561. // 11 수술이력번호
  562. // 12 조회일자 2007-09-13 오지훈 추가...
  563. //------------------------------------------------------------------
  564. var pid = "";
  565. var indd= "";
  566. var cretno="";
  567. var instcd = "";
  568. var orddd= "";
  569. var ordtype = "";//"I";
  570. ioflag = model.getValue(xPath + "["+pGrd.row+"]/iogb") ;
  571. if ( ioflag == "D" ) ioflag == "I";
  572. pid = model.getValue(xPath + "["+pGrd.row+"]/pid") ;
  573. indd = model.getValue(xPath + "["+pGrd.row+"]/indd") ;
  574. cretno = model.getValue(xPath + "["+pGrd.row+"]/cretno") ; //그리드에 추가해야함
  575. instcd = model.getValue(xPath + "["+pGrd.row+"]/instcd"); //전역변수에 추가해야함
  576. orddd = model.getValue(xPath + "["+pGrd.row+"]]/prcpdd"); //처방일(orddd)
  577. ordtype = ioflag;
  578. // 상단 세팅을 위한 파라미터
  579. condparam = ordtype + "▦" + pid + "▦" + indd + "▦" + cretno + "▦" + instcd+ "▦" + orddd;
  580. setParameter("condparam", condparam);
  581. //상단 세팅 화면 사이즈 작게 띄움
  582. modal("SPMMO08900", "", "", "", "SPMMO08900", "", ""); //alert("환자기본정보설정중......");
  583. //----------------------------------------------------
  584. //설정된 상단정보를 불러옴
  585. // alert("내리기");
  586. // model.makeNode("/root/main/paminfo");
  587. // var node = getGlobalVariable("paminfo");
  588. // setCSVToNode("/root/main/paminfo", node);
  589. //----------------------------------------------------
  590. }
  591. //---------------------------------------
  592. // 자동설정기능 제어
  593. //---------------------------------------
  594. function fGrdSelect(sflag) {
  595. var pGrd;
  596. if (sflag == "1") {
  597. pGrd = datagrid1; //처방내역
  598. } else {
  599. pGrd = datagrid2; //실시내역
  600. }
  601. if (pGrd.rows <= 1 ) return;
  602. if (pGrd.col != pGrd.colRef("chk") || pGrd.row != 0) {
  603. return;
  604. } else {
  605. for (var row=1;row<pGrd.rows;row++) {
  606. //선택하면 안되는 자료를 제외시킨다.
  607. if (pGrd.isReadOnly(row,pGrd.colref("chk"),row,pGrd.colref("chk") )== "1") {
  608. if (sflag=="1") {
  609. model.setValue("/root/main/prcpdetl/prcpdetlinfo[" + row + "]/chk","false");
  610. } else {
  611. model.setValue("/root/main/execprcp/execprcpinfo[" + row + "]/chk","false");
  612. }
  613. } else {
  614. pGrd.addStatus(row,"update"); //수정된것으로 본다.
  615. }
  616. }
  617. }
  618. model.refresh();
  619. }
  620. // --------------------------------------------------
  621. // 오른쪽 마우스버튼
  622. // --------------------------------------------------
  623. function fnonmousedown() {
  624. var pGrd = grd_keepbaclist;
  625. pGrd.row = pGrd.mouseRow;
  626. if (pGrd.rows <= 1 || pGrd.row <= 0 ) return;
  627. fShowPopupMenu("grd_keepbaclist","/root/main/menuitems/inmenu/item");
  628. /*
  629. if (model.getValue( "/root/main/dsc/dscList["+grd_dscList.mouseRow+"]/pid")== "") return;
  630. var colnm = grd_dscList.valueMatrix(0, grd_dscList.mouseCol);
  631. var tmpcareinrmdd = model.getValue( "/root/main/dsc/dscList["+grd_dscList.mouseRow+"]/tmpcareinrmdd");
  632. var oppatflagcd = model.getValue( "/root/main/dsc/dscList["+grd_dscList.mouseRow+"]/oppatflagcd");
  633. colnm = colnm.substring(0,2);
  634. var sdschdd1 = model.getValue( "/root/main/dsc/dscList["+grd_dscList.mouseRow+"]/dschdd");
  635. sdschdd1 = sdschdd1.replace("-","");
  636. sdschdd1 = sdschdd1.substring(0,1);
  637. //---(수술환자+angio(수술정보없음)
  638. // if(oppatflagcd=="D"&&colnm== "입실"&&tmpcareinrmdd.substring(0,1)=="-") { // DSC 환자, 입실시각칼럼, 입실시각이 적용되지 않은 경우("-")에만 입실시각 메뉴 나타나도록
  639. // fShowPopupMenu("grd_dscList","/root/main/menuitems/inmenu/item");
  640. // }else {
  641. // fShowPopupMenu("grd_dscList","/root/main/menuitems/grdmenu/item");
  642. // }
  643. if (rdo_dscflag.value == "D") {
  644. //if(colnm== "입실"&&tmpcareinrmdd.substring(0,1)=="-") { // DSC 환자, 입실시각칼럼, 입실시각이 적용되지 않은 경우("-")에만 입실시각 메뉴 나타나도록
  645. if(colnm== "입실") { // DSC 환자, 입실시각칼럼, 입실시각이 적용되지 않은 경우("-")에만 입실시각 메뉴 나타나도록
  646. fShowPopupMenu("grd_dscList","/root/main/menuitems/inmenu/item");
  647. }else {
  648. fShowPopupMenu("grd_dscList","/root/main/menuitems/grdmenu/item");
  649. }
  650. } else {
  651. fShowPopupMenu("grd_dscList","/root/main/menuitems/grdmenu/item");
  652. }
  653. */
  654. }
  655. // --------------------------------------------------
  656. // 팝업메뉴
  657. // --------------------------------------------------
  658. function fShowPopupMenu(gridID, menuPath)
  659. {
  660. var gridObj = document.controls.item(gridID);
  661. if(event.button == 3) {
  662. if(gridObj.isCell(event.target) && gridObj.mouseRow >= gridObj.fixedrows){
  663. window.setPopupMenu(true, menuPath, "name", "func", false);
  664. }else{
  665. window.setPopupMenu(false);
  666. }
  667. }
  668. }
  669. //-------------------------------------
  670. // 오른쪽 마우스 호출되는 팝업둑ENR
  671. //-------------------------------------
  672. function fSetPopup01() {
  673. //상단올리기
  674. fSetPatInfo();
  675. modal("SMLBD00700", "", "", "", "", "", ""); //공여자문진
  676. }
  677. function fSetPopup02() {
  678. //상단올리기
  679. fSetPatInfo();
  680. modal("SMLBD01300", "", "", "", "", "", ""); //공여자처방입력
  681. }
  682. function fSetPopup03() {
  683. //상단올리기
  684. fSetPatInfo();
  685. modal("SMLBD00900", "", "", "", "", "", ""); //검사결과판정조회
  686. }
  687. function fSetPopup04() {
  688. //상단올리기
  689. fSetPatInfo();
  690. modal("SMMRF02300", "", "", "", "", "", ""); //ocr서식지출력
  691. }
  692. function fSetPopup05() {
  693. //상단올리기
  694. fSetPatInfo();
  695. modal("SMMMO02500", "", "", "", "", "", ""); //환자진료정보조회
  696. }
  697. function fSetPopup06() {
  698. modal("SMLBD01600", "", "", "", "", "", ""); //APU혈액불출등록
  699. }
  700. function fSetPopup07() {
  701. //상단올리기
  702. fSetPatInfo();
  703. modal("SMAER00800", "", "", "", "", "", ""); //통합검사결과조회
  704. }
  705. function fSetPopup08() {
  706. //상단올리기
  707. fSetPatInfo();
  708. modal("SMMRI00400", "", "", "", "", "", ""); //통합기록조회
  709. }
  710. //--------------------------
  711. // prn 선택시
  712. //--------------------------
  713. function fnPrn() {
  714. //선택구분설정
  715. var xPathMainCond = "/root/main/cond";
  716. model.setValue(xPathMainCond + "/workflag", "prn");
  717. fInqurySelectedPrgm();
  718. }