SMMNR07500.js 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916
  1. /*
  2. 투약시간 기준관리(SMMNW075.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. var dept_tims = 0;
  7. var dept_row = 0;
  8. /**
  9. * @group :
  10. * @ver : 2007.04.19
  11. * @by : 하재륜
  12. * @---------------------------------------------------
  13. * @type : function
  14. * @access : public
  15. * @desc : 병동코드 조회
  16. * @param :
  17. * @return :
  18. * @---------------------------------------------------
  19. */
  20. function fInitialize(){
  21. zbcfGetCodeList(new Array("A0017"), new Array("/root/init/A0017list"));
  22. model.removenode("/root/init/init");
  23. submit("TRMNR00601");
  24. var cnt = getNodesetCount("/root/init/init/ward");
  25. model.makeValue("/root/init/init/ward1/wardcd", "ALL");
  26. model.makeValue("/root/init/init/ward1/wardnm", "공통");
  27. for(var i = 1; i <= cnt; i++){
  28. model.makenode("/root/init/init/ward1[" + (i+1) + "]");
  29. model.copynode("/root/init/init/ward1[" + (i+1) + "]","/root/init/init/ward[" + i + "]");
  30. }
  31. model.setValue("/root/init/A0017list", "N");
  32. model.setValue("/root/init/baseflaglist", "N");
  33. model.setValue("/root/init/deptcdList", getUserInfo("dutplcecd"));
  34. fmthdChange("mthdcd");
  35. fDeptSerch();
  36. var userid = getUserId();
  37. if(userid == "ENR"){
  38. btn_mthddel.disabled = false;
  39. btn_mthdsave.disabled = false;
  40. btn_mechdel.disabled = false;
  41. btn_mechsave.disabled = false;
  42. }else{
  43. btn_mthddel.disabled = true;
  44. btn_mthdsave.disabled = true;
  45. btn_mechdel.disabled = true;
  46. btn_mechsave.disabled = true;
  47. }
  48. model.refresh();
  49. }
  50. /**
  51. * @group :
  52. * @ver : 2007.04.19
  53. * @by : 하재륜
  54. * @---------------------------------------------------
  55. * @type : function
  56. * @access : public
  57. * @desc : 용법코드 조회 후 콤보박스에 저장
  58. * @param : direccd
  59. * @return : mthdcd
  60. * @---------------------------------------------------
  61. */
  62. function fmthdChange(flg){
  63. cmb_deptBaseflg.value = cmb_baseflg.value;
  64. var direccd = model.getValue("/root/init/A0017list");
  65. var mthdcd = model.getValue("/root/init/mthdcdlist");
  66. model.removenode("/root/send");
  67. model.makeValue("/root/send/direccd", direccd);
  68. model.makeValue("/root/send/mthdcd", mthdcd);
  69. if(flg=="mthdcd") {
  70. model.removenode("/root/init/mthdcdlist");
  71. model.setValue("/root/init/mthdcdlist_1/basecnt","");
  72. model.makeValue("/root/send/flg", "mthdcd");
  73. submit("TRMNR07501");
  74. model.removenodeset("/root/main/picmmech/picmmechList");
  75. fSearch();// 용법별 조회
  76. }else if(flg=="basecnt"){
  77. fSearch();// 용법별 조회
  78. fMechSerch("direccd");// 약품코드별 조회
  79. }
  80. }
  81. /**
  82. * @group :
  83. * @ver : 2007.04.19
  84. * @by : 하재륜
  85. * @---------------------------------------------------
  86. * @type : function
  87. * @access : public
  88. * @desc : 기준시간관리 저장
  89. * @param :
  90. * @return :
  91. * @---------------------------------------------------
  92. */
  93. function fDtimSave(){
  94. var apnttm;
  95. var basedayno;
  96. var orgtm;
  97. var baseflag = model.getValue("/root/init/A0017list");
  98. var direccd = model.getValue("/root/init/mthdcdlist");
  99. var exectims = model.getValue("/root/init/mthdcdlist_1/basecnt");
  100. var comnyn = model.getValue("/root/hidden/comnyn");
  101. var drugtmspec = "";//투여시간 text 형시으로 표시
  102. var drugtmspeccal = "";//투여시간 text 형시으로 표시(익일시간 추가)
  103. if(baseflag == ""){
  104. messageBox("기준구분을 ","C002");
  105. return;
  106. }
  107. if(direccd == ""){
  108. messageBox("용법종류를 ","C002");
  109. return;
  110. }
  111. if(exectims == ""){
  112. messageBox("투약회수를 ","C002");
  113. return;
  114. }
  115. var time = "";
  116. var day = "";
  117. drugtmspec = "";
  118. for (var i=1 ; i<=exectims ; i++){
  119. time = grd_mnrmdtim.valueMatrix(1,i);
  120. day = grd_mnrmdtim.valueMatrix(2,i);
  121. if(i != 1) {
  122. drugtmspec += " ";
  123. drugtmspeccal += " ";
  124. }
  125. if(day == "0" || day == ""){
  126. drugtmspec += time;
  127. drugtmspeccal += time;
  128. }else{
  129. drugtmspec += time;
  130. time = (Number(time) + Number(day) * 24);
  131. drugtmspeccal += Number(time);
  132. }
  133. }
  134. var sData = "";
  135. //헤드
  136. sData = "direccd"; // 용법코드
  137. sData += "▦prcpcd"; // 처방코드
  138. sData += "▦deptcd"; // 부서코드
  139. sData += "▦seqno"; // 일련번호
  140. sData += "▦baseflag"; // 기준구분
  141. sData += "▦apnttm"; // 지정시간
  142. sData += "▦basedayno"; // 기준일수
  143. sData += "▦orgtm"; // 실제시간
  144. sData += "▦exectims"; // 수행횟수
  145. sData += "▦comnyn"; // 공통여부
  146. sData += "▦drugtmspec"; // 투여시간text표시
  147. sData += "▦drugtmspeccal"; // 코드구분자
  148. sData += "▦flg"; // 투여시간text표시(24시간 기준)
  149. sData += "▩"; // Record(Row) 분리기호
  150. for(var i=1 ; i<=exectims ; i++){
  151. apnttm = grd_mnrmdtim.valueMatrix(1,i);
  152. basedayno = grd_mnrmdtim.valueMatrix(2,i);
  153. if(basedayno == "") {
  154. basedayno = "0";
  155. orgtm = apnttm;
  156. }else if(basedayno == "0"){
  157. orgtm = apnttm;
  158. }else if(basedayno == "1"){
  159. orgtm = Number(apnttm) + 24;
  160. }else{}
  161. if(!((grd_mnrmdtim.valueMatrix(2,i) == "") ||(grd_mnrmdtim.valueMatrix(2,i) == "0")||(grd_mnrmdtim.valueMatrix(2,i) == "1"))){
  162. messageBox("Day 항목은 0 또는 1 만 ","C001");
  163. return;
  164. }
  165. //data
  166. sData += direccd +"▦";
  167. sData += "ALL" +"▦";
  168. sData += "ALL" +"▦";
  169. sData += i +"▦";
  170. sData += baseflag +"▦";
  171. sData += apnttm +"▦";
  172. sData += basedayno +"▦";
  173. sData += orgtm +"▦";
  174. sData += exectims +"▦";
  175. sData += comnyn +"▦";
  176. if(i == 1){
  177. sData += drugtmspec +"▦";
  178. sData += drugtmspeccal+"▦";
  179. }else{
  180. sData += "" +"▦";
  181. sData += "" +"▦";
  182. }
  183. sData += "fDtimSave" +"▩";
  184. }
  185. model.removenode("/root/send");
  186. model.makeValue("/root/send/sData" ,sData );
  187. submit("TXMNR07501");
  188. fSearch();
  189. }
  190. /**
  191. * @group :
  192. * @ver : 2007.04.27
  193. * @by : 하재륜
  194. * @---------------------------------------------------
  195. * @type : function
  196. * @access : public
  197. * @desc : 투약시간기준관리(용법별)
  198. * @param :
  199. * @param :
  200. * @return :
  201. * @---------------------------------------------------
  202. */
  203. function fSearch(){
  204. var direccd = model.getValue("/root/init/mthdcdlist");
  205. if(direccd == "") direccd = "%";
  206. for (var i=1 ; i<=13 ; i++){
  207. grd_mnrmdtim.valueMatrix(1,i) = "";
  208. grd_mnrmdtim.valueMatrix(2,i) = "";
  209. }
  210. model.removenodeset("/root/main/mnrmdtim/mnrmdtimList");
  211. model.removenode("/root/send");
  212. model.makeValue("/root/send/baseflag", model.getValue("/root/init/A0017list"));
  213. model.makeValue("/root/send/direccd",direccd);
  214. submit("TRMNR07504");
  215. }
  216. /**
  217. * @group :
  218. * @ver : 2007.04.27
  219. * @by : 하재륜
  220. * @---------------------------------------------------
  221. * @type : function
  222. * @access : public
  223. * @desc : 투약시간기준관리(약품코드별)
  224. * @param :
  225. * @param :
  226. * @return :
  227. * @---------------------------------------------------
  228. */
  229. function fMechSerch(gubun){
  230. model.removenodeset("/root/main/picmmech/picmmechList");
  231. model.removenode("/root/send");
  232. model.makeValue("/root/send/baseflag", model.getValue("/root/init/A0017list"));
  233. if (gubun=="direccd"){
  234. var direccd = model.getValue("/root/init/mthdcdlist");
  235. model.makeValue("/root/send/direccd",direccd);
  236. }else if(gubun=="grdclick"){
  237. var direccd = grd_dtimList.valueMatrix(grd_dtimList.row, 1);
  238. model.makeValue("/root/send/direccd",direccd);
  239. }
  240. submit("TRMNR07505");
  241. }
  242. /**
  243. * @group :
  244. * @ver : 2007.05.08
  245. * @by : 하재륜
  246. * @---------------------------------------------------
  247. * @type : function
  248. * @access : public
  249. * @desc : 투약시간기준관리(약품코드별) 적용
  250. * @param :
  251. * @param :
  252. * @return :
  253. * @---------------------------------------------------
  254. */
  255. function fMechApply(){
  256. if(grd_mechList.row<1){
  257. return;
  258. }
  259. var cnt = grd_mechList.rows-1;
  260. var chkcnt =0;
  261. for(var i=1 ;i <= cnt ; i++){
  262. if((model.getValue("/root/main/picmmech/picmmechList[" + i + "]/status"))=="true"){
  263. chkcnt++;
  264. }
  265. }
  266. if(chkcnt<1){
  267. messageBox("적용할 항목을 ","C002");
  268. return;
  269. }
  270. var direccd = model.getValue("/root/init/mthdcdlist");
  271. var exectims = model.getValue("/root/init/mthdcdlist_1/basecnt");
  272. var drugtmspec = ""; //투여시간 text 형시으로 표시
  273. var drugtmspeccal = "";//투여시간 text 형시으로 표시(24시간기준)
  274. var time = "";
  275. var day = "";
  276. for (var i=1 ; i<=exectims ; i++){
  277. if(i==1){
  278. drugtmspec = grd_mnrmdtim.valueMatrix(1,i);
  279. }else{
  280. drugtmspec = drugtmspec + " " + grd_mnrmdtim.valueMatrix(1,i);
  281. }
  282. }
  283. for (var i=1 ; i <= exectims ; i++){
  284. time = grd_mnrmdtim.valueMatrix(1,i);
  285. day = grd_mnrmdtim.valueMatrix(2,i);
  286. if(i != 1) {
  287. drugtmspeccal += " ";
  288. }
  289. if(day == "0" || day == ""){
  290. drugtmspeccal += time;
  291. }else{
  292. time = (Number(time) + Number(day) * 24);
  293. drugtmspeccal += Number(time);
  294. }
  295. }
  296. for(var i=1 ;i <= cnt ; i++){
  297. if((model.getValue("/root/main/picmmech/picmmechList["+i+"]/status")) == "true"){
  298. model.setValue("/root/main/picmmech/picmmechList["+i+"]/direccd", direccd);
  299. model.setValue("/root/main/picmmech/picmmechList["+i+"]/exectims", exectims);
  300. model.setValue("/root/main/picmmech/picmmechList["+i+"]/drugtmspec", drugtmspec);
  301. model.setValue("/root/main/picmmech/picmmechList["+i+"]/drugtmspeccal", drugtmspeccal);
  302. }
  303. }
  304. for(var j=1 ;j < grd_dtimList.rows ; j++){
  305. model.setValue("/root/main/mnrmdtim/mnrmdtimList["+j+"]/status", "");
  306. }
  307. model.refresh();
  308. }
  309. /**
  310. * @group :
  311. * @ver : 2007.04.17
  312. * @by : 하재륜
  313. * @---------------------------------------------------
  314. * @type : function
  315. * @access : public
  316. * @desc : 기준시간 삭제
  317. * @param : dtim : 용법별 , mech : 약품코드별 , dept : 부서별
  318. * @param :
  319. * @return :
  320. * @---------------------------------------------------
  321. */
  322. function fDtimDelete(gubun) {
  323. var cnt ;
  324. var chkcnt = 0;
  325. var xpathDtim;
  326. //삭제 버튼 구분
  327. if(gubun=="dtim"){// 용법별
  328. cnt = grd_dtimList.rows-1;
  329. xpathGubun = "/root/main/mnrmdtim/mnrmdtimList";
  330. }else if(gubun=="mech"){// 약품코드별
  331. cnt = grd_mechList.rows-1;
  332. xpathGubun = "/root/main/picmmech/picmmechList";
  333. }else if(gubun=="dept"){// 부서별
  334. cnt = grd_deptList.rows-1;
  335. xpathGubun = "/root/main/deptdtim/deptdtimList";
  336. }
  337. for(var i=1 ;i <= cnt ; i++){
  338. if((model.getValue(xpathGubun+"["+i+"]/status"))=="true"){
  339. chkcnt = chkcnt+1;
  340. }
  341. }
  342. if(chkcnt < 1){
  343. messageBox("삭제할 항목을 ","C002");
  344. return;
  345. }
  346. var sData = "direccd" ;// 용법코드
  347. sData += "▦prcpcd" ;// 처방코드
  348. sData += "▦deptcd" ;// 부서코드
  349. sData += "▦baseflag" ;// 기준구분
  350. sData += "▦exectims" ;// 수행횟수
  351. sData += "▦flg" ;// 코드구분자
  352. sData += "▩" ;// Record(Row) 분리기호
  353. for(var i=1 ;i <= cnt ; i++){
  354. if ((model.getValue(xpathGubun+"["+i+"]/status"))=="true"){
  355. sData += model.getValue(xpathGubun+"["+i+"]/direccd") + "▦";
  356. if(gubun=="dept"){
  357. if((model.getValue(xpathGubun+"["+i+"]/prcpcd"))=="" ) {
  358. sData += "ALL" +"▦";
  359. }else
  360. sData += model.getValue(xpathGubun+"["+i+"]/prcpcd") + "▦";
  361. }else{
  362. sData += model.getValue(xpathGubun+"["+i+"]/prcpcd") + "▦";
  363. }
  364. sData += model.getValue(xpathGubun+"["+i+"]/deptcd") + "▦";
  365. sData += model.getValue(xpathGubun+"["+i+"]/baseflag") + "▦";
  366. sData += model.getValue(xpathGubun+"["+i+"]/exectims") + "▦";
  367. sData += "fDtimDelete" + "▩";
  368. }
  369. }
  370. model.removenode("/root/send");
  371. model.makeValue("/root/send/sData", sData );
  372. submit("TXMNR07501");
  373. if(gubun == "dtim"){
  374. fSearch();//용법별 조회
  375. }else if(gubun == "mech"){
  376. fMechSerch("direccd");//약품코드별 조회
  377. }else if(gubun == "dept"){
  378. fDeptSerch();//부서별 조회
  379. }else{}
  380. }
  381. /**
  382. * @group :
  383. * @ver : 2007.04.17
  384. * @by : 하재륜
  385. * @---------------------------------------------------
  386. * @type : function
  387. * @access : public
  388. * @desc : 약품코드별 저장
  389. * @param :
  390. * @param :
  391. * @return :
  392. * @---------------------------------------------------
  393. */
  394. function fMechSave() {
  395. var cnt = grd_mechList.rows-1;
  396. var chkcnt =0;
  397. for(var i = 1 ;i <= cnt ; i++){
  398. if((model.getValue("/root/main/picmmech/picmmechList["+i+"]/status"))=="true"){
  399. chkcnt++;
  400. }
  401. }
  402. if(chkcnt < 1){
  403. messageBox("저장할 항목을 ","C002");
  404. return;
  405. }
  406. var sData = "direccd" ;//용법코드
  407. sData += "▦prcpcd" ;//처방코드
  408. sData += "▦deptcd" ;//부서코드
  409. sData += "▦seqno" ;//일련번호
  410. sData += "▦baseflag" ;//기준구분
  411. sData += "▦apnttm" ;//지정시간
  412. sData += "▦basedayno" ;//기준일수
  413. sData += "▦orgtm" ;//실제시간
  414. sData += "▦exectims" ;//수행횟수
  415. sData += "▦comnyn" ;//공통여부
  416. sData += "▦drugtmspec" ;//투여시간text표시
  417. sData += "▦drugtmspeccal";//투여시간text표시
  418. sData += "▦flg" ;//코드구분자
  419. sData += "▩" ;//Record(Row) 분리기호
  420. for(var i = 1; i <= cnt; i++){
  421. if((model.getValue("/root/main/picmmech/picmmechList[" + i + "]/status")) == "true"){
  422. if((model.getValue("/root/main/picmmech/picmmechList[" + i + "]/prcpcd")) == ""){
  423. messageBox("약품코드를 ","C001");
  424. return;
  425. }
  426. if((model.getValue("/root/main/picmmech/picmmechList[" + i + "]/hngnm")) == ""){
  427. messageBox("잘못된 약품코드입니다 다시 ","C001");
  428. return;
  429. }
  430. if((model.getValue("/root/main/picmmech/picmmechList[" + i + "]/direccd")) == ""){
  431. messageBox("적용버튼을 누른후 ","C001");
  432. return;
  433. }
  434. sData += grd_mechList.valueMatrix(i,3) +"▦";
  435. sData += grd_mechList.valueMatrix(i,1) +"▦";
  436. sData += "ALL" +"▦";
  437. sData += '1' +"▦";
  438. sData += model.getValue("/root/init/A0017list") +"▦";
  439. sData += "" +"▦";
  440. sData += "" +"▦";
  441. sData += "" +"▦";
  442. sData += grd_mechList.valueMatrix(i,4) +"▦";
  443. sData += model.getValue("/root/hidden/comnyn") +"▦";
  444. sData += grd_mechList.valueMatrix(i,5) +"▦";
  445. sData += grd_mechList.valueMatrix(i,6) +"▦";
  446. sData += "fDtimSave" +"▩";
  447. }
  448. }
  449. model.removenode("/root/send");
  450. model.makeValue("/root/send/sData", sData );
  451. submit("TXMNR07501");
  452. fMechSerch("direccd"); // 약품코드별 조회
  453. }
  454. /**
  455. * @group :
  456. * @ver : 2007.04.17
  457. * @by : 하재륜
  458. * @---------------------------------------------------
  459. * @type : function
  460. * @access : public
  461. * @desc : 부서별 저장
  462. * @param :
  463. * @param :
  464. * @return :
  465. * @---------------------------------------------------
  466. */
  467. function fDeptSave() {
  468. var cnt = grd_deptList.rows - 1;
  469. var chkcnt = 0;
  470. for(var i = 1 ;i <= cnt ; i++){
  471. if((model.getValue("/root/main/deptdtim/deptdtimList["+i+"]/status")) == "true"){
  472. chkcnt++;
  473. }
  474. }
  475. if(chkcnt<1){
  476. messageBox("저장할 항목을 ","C002");
  477. return;
  478. }
  479. var sData = "direccd" ; // 용법코드
  480. sData += "▦prcpcd" ; // 처방코드
  481. sData += "▦deptcd" ; // 부서코드
  482. sData += "▦seqno" ; // 일련번호
  483. sData += "▦baseflag" ; // 기준구분
  484. sData += "▦apnttm" ; // 지정시간
  485. sData += "▦basedayno" ; // 기준일수
  486. sData += "▦orgtm" ; // 실제시간
  487. sData += "▦exectims" ; // 수행횟수
  488. sData += "▦comnyn" ; // 공통여부
  489. sData += "▦drugtmspec" ; // 투여시간text표시
  490. sData += "▦drugtmspeccal"; // 투여시간text표시(24시간 기준)
  491. sData += "▦flg" ; // 코드구분자
  492. sData += "▩" ; // Record(Row) 분리기호
  493. for(var i = 1; i <= cnt; i++){
  494. if((model.getValue("/root/main/deptdtim/deptdtimList["+i+"]/status")) == "true"){
  495. sData += grd_deptList.valueMatrix(i,2) + "▦";
  496. if(grd_deptList.valueMatrix(i,1) == ""){
  497. sData += "ALL" + "▦";
  498. }else{
  499. sData += grd_deptList.valueMatrix(i,1) + "▦";
  500. }
  501. sData += model.getValue("/root/init/deptcdList") + "▦";
  502. sData += '1' +"▦";
  503. sData += model.getValue("/root/init/baseflaglist") + "▦";
  504. sData += "" +"▦";
  505. sData += "" +"▦";
  506. sData += "" +"▦";
  507. sData += grd_deptList.valueMatrix(i,3) + "▦";
  508. sData += model.getValue("/root/hidden/comnyn") + "▦";
  509. sData += grd_deptList.valueMatrix(i,4) + "▦";
  510. sData += grd_deptList.valueMatrix(i,5) + "▦";
  511. sData += "fDtimSave" + "▩";
  512. }
  513. }
  514. model.removenode("/root/send");
  515. model.makeValue("/root/send/sData", sData );
  516. submit("TXMNR07501");
  517. fDeptSerch(); // 약품코드별 조회
  518. }
  519. /**
  520. * @group :
  521. * @ver : 2007.05.08
  522. * @by : 하재륜
  523. * @---------------------------------------------------
  524. * @type : function
  525. * @access : public
  526. * @desc : 약품코드명 조회
  527. * @param :
  528. * @param :
  529. * @return :
  530. * @---------------------------------------------------
  531. */
  532. function fPrcpSerch(){
  533. var calcscorcd;
  534. if(grd_mechList.col==1){
  535. calcscorcd = grd_mechList.valueMatrix(grd_mechList.row,1);
  536. for(var i=0 ;grd_mechList.rows-1;i++ ){
  537. if(calcscorcd == (grd_mechList.valueMatrix(i,1))){
  538. if(i == grd_mechList.row){
  539. break;
  540. }
  541. messageBox("약품이 ","E006");
  542. return;
  543. }
  544. }
  545. model.removenode("/root/send");
  546. model.makeValue("/root/send/calcscorcd", calcscorcd);
  547. submit("TRMNR07506");
  548. if(model.getValue("/root/hidden/mech/hngnm") == ""){
  549. grd_mechList.valueMatrix(grd_mechList.row,2) = "";
  550. messageBox("조회된 약품코드가 ","I004");
  551. }else grd_mechList.valueMatrix(grd_mechList.row,2) = model.getValue("/root/hidden/mech/hngnm");
  552. model.refresh();
  553. }
  554. }
  555. /**
  556. * @group :
  557. * @ver : 2007.05.08
  558. * @by : 하재륜
  559. * @---------------------------------------------------
  560. * @type : function
  561. * @access : public
  562. * @desc : 부서별 설정에 적용
  563. * @param :
  564. * @param :
  565. * @return :
  566. * @---------------------------------------------------
  567. */
  568. function fDeptApply(){
  569. var dtimcnt = grd_dtimList.rows - 1;
  570. var cnt = grd_mechList.rows - 1;
  571. var chkcnt = 0;
  572. for(var i = 1; i <= dtimcnt; i++){
  573. if((model.getValue("/root/main/mnrmdtim/mnrmdtimList[" + i + "]/status")) == "true"){
  574. chkcnt++;
  575. }
  576. }
  577. for(var i = 1;i <= cnt; i++){
  578. if((model.getValue("/root/main/picmmech/picmmechList[" + i + "]/status")) == "true"){
  579. chkcnt++;
  580. }
  581. }
  582. if(chkcnt < 1){
  583. messageBox("적용할 항목을 ","C002");
  584. return;
  585. }
  586. //용법코드별 적용
  587. for(var i=1 ;i <= dtimcnt ; i++){
  588. if ((model.getValue("/root/main/mnrmdtim/mnrmdtimList[" + i + "]/status"))=="true") {
  589. grd_dtimList.valueMatrix(i,0) = "false";
  590. //부서별 초기값설정 그리드 약품코드 중복체크
  591. var deptcnt = grd_deptList.rows;
  592. if (deptcnt > 0 ){
  593. for(var j=1 ; j < deptcnt ; j++ ){
  594. if(model.getValue("/root/main/deptdtim/deptdtimList[" + j + "]/prcpcd") == ""){
  595. if((model.getValue("/root/main/mnrmdtim/mnrmdtimList[" + i + "]/direccd") == grd_deptList.valueMatrix(j,2)) &&
  596. (model.getValue("/root/main/mnrmdtim/mnrmdtimList[" + i + "]/exectims") == grd_deptList.valueMatrix(j,3))
  597. ){
  598. grd_dtimList.valueMatrix(i,0) ="true";
  599. messageBox("용법이 ","E006");
  600. return;
  601. }
  602. }
  603. }
  604. }
  605. grd_deptList.addrow(false);
  606. model.setValue("/root/main/deptdtim/deptdtimList[" + (grd_deptList.rows-1) + "]/status", "true");
  607. model.setValue("/root/main/deptdtim/deptdtimList[" + (grd_deptList.rows-1) + "]/prcpcd", "");
  608. model.setValue("/root/main/deptdtim/deptdtimList[" + (grd_deptList.rows-1) + "]/direccd", model.getValue("/root/main/mnrmdtim/mnrmdtimList[" + i + "]/direccd"));
  609. model.setValue("/root/main/deptdtim/deptdtimList[" + (grd_deptList.rows-1) + "]/exectims", model.getValue("/root/main/mnrmdtim/mnrmdtimList[" + i + "]/exectims"));
  610. model.setValue("/root/main/deptdtim/deptdtimList[" + (grd_deptList.rows-1) + "]/drugtmspec", model.getValue("/root/main/mnrmdtim/mnrmdtimList[" + i + "]/drugtmspec"));
  611. model.setValue("/root/main/deptdtim/deptdtimList[" + (grd_deptList.rows-1) + "]/drugtmspeccal",model.getValue("/root/main/mnrmdtim/mnrmdtimList[" + i + "]/drugtmspeccal"));
  612. }
  613. }
  614. //약품코드별 적용
  615. for(var i = 1; i <= cnt; i++){
  616. if((model.getValue("/root/main/picmmech/picmmechList[" + i + "]/status")) == "true"){
  617. grd_mechList.valueMatrix(i,0) = "false";
  618. //부서별 초기값설정 그리드 약품코드 중복체크
  619. var deptcnt = grd_deptList.rows;
  620. if (deptcnt > 0 ){
  621. for(var j = 1; j < deptcnt; j++){
  622. if(model.getValue("/root/main/picmmech/picmmechList[" + i + "]/prcpcd") == (grd_deptList.valueMatrix(j,1))){
  623. grd_mechList.valueMatrix(i,0) = "true";
  624. messageBox("약품이 ","E006");
  625. return;
  626. }
  627. }
  628. }
  629. grd_deptList.addItem();
  630. model.setValue("/root/main/deptdtim/deptdtimList[" + (grd_deptList.rows-1) + "]/prcpcd", model.getValue("/root/main/picmmech/picmmechList[" + i + "]/prcpcd"));
  631. model.setValue("/root/main/deptdtim/deptdtimList[" + (grd_deptList.rows-1) + "]/direccd", model.getValue("/root/main/picmmech/picmmechList[" + i + "]/direccd"));
  632. model.setValue("/root/main/deptdtim/deptdtimList[" + (grd_deptList.rows-1) + "]/exectims", model.getValue("/root/main/picmmech/picmmechList[" + i + "]/exectims"));
  633. model.setValue("/root/main/deptdtim/deptdtimList[" + (grd_deptList.rows-1) + "]/drugtmspec",model.getValue("/root/main/picmmech/picmmechList[" + i + "]/drugtmspec"));
  634. model.setValue("/root/main/deptdtim/deptdtimList[" + (grd_deptList.rows-1) + "]/drugtmspeccal",model.getValue("/root/main/picmmech/picmmechList[" + i + "]/drugtmspeccal"));
  635. }
  636. }
  637. model.refresh();
  638. }
  639. /**
  640. * @group :
  641. * @ver : 2007.05.09
  642. * @by : 하재륜
  643. * @---------------------------------------------------
  644. * @type : function
  645. * @access : public
  646. * @desc : 투약시간기준관리(부서별)
  647. * @param :
  648. * @param :
  649. * @return :
  650. * @---------------------------------------------------
  651. */
  652. function fDeptSerch(){
  653. cmb_baseflg.value = cmb_deptBaseflg.value;
  654. var deptcd = model.getValue("/root/init/deptcdList");
  655. var baseflaglist = model.getValue("/root/init/baseflaglist");
  656. if(baseflaglist == ""){
  657. baseflaglist = "%";
  658. }
  659. model.removenodeset("/root/main/deptdtim");
  660. model.removenode("/root/send");
  661. model.makeValue("/root/send/baseflag", baseflaglist);
  662. model.makeValue("/root/send/deptcd", deptcd);
  663. submit("TRMNR07507");
  664. }
  665. /**
  666. * @group :
  667. * @ver : 2007.05.08
  668. * @by : 하재륜
  669. * @---------------------------------------------------
  670. * @type : function
  671. * @access : public
  672. * @desc : 투약시간기준관리(부서별) 적용
  673. * @param :
  674. * @param :
  675. * @return :
  676. * @---------------------------------------------------
  677. */
  678. function fDeptlistApply(flag){
  679. if(grd_deptList.row < 1){
  680. return;
  681. }
  682. var cnt = grd_deptList.rows - 1;
  683. var drugtmspec = "";; //투여시간 text 형시으로 표시
  684. var drugtmspeccal = ""; //투여시간 text 형시으로 표시
  685. var day = "";
  686. for (var i = 1 ; i <= dept_tims ; i++){
  687. time = grd_deptdtim.valueMatrix(1,i);
  688. day = grd_deptdtim.valueMatrix(2,i);
  689. if(time.length != 4){
  690. messageBox("시간은 4자리를","C001");
  691. return;
  692. }
  693. if(i != 1) {
  694. drugtmspec += " ";
  695. drugtmspeccal += " ";
  696. }
  697. if(day == "0" || day == ""){
  698. drugtmspec += time;
  699. drugtmspeccal += time;
  700. }else{
  701. drugtmspec += time;
  702. time = (Number(time) + Number(day) * 2400);
  703. drugtmspeccal += time;
  704. }
  705. }
  706. if(flag == "all"){
  707. for(var i = 1; i <= cnt; i++){
  708. if(dept_tims == model.getValue("/root/main/deptdtim/deptdtimList[" + i + "]/exectims"))
  709. if((model.getValue("/root/main/deptdtim/deptdtimList[" + i + "]/status")) == "true"){
  710. model.setValue("/root/main/deptdtim/deptdtimList[" + i + "]/drugtmspec", drugtmspec);
  711. model.setValue("/root/main/deptdtim/deptdtimList[" + i + "]/drugtmspeccal", drugtmspeccal);
  712. }
  713. }
  714. }else if(flag == "direccd"){
  715. if(dept_row > 0 && dept_tims == model.getValue("/root/main/deptdtim/deptdtimList[" + dept_row + "]/exectims")){
  716. model.setValue("/root/main/deptdtim/deptdtimList[" + dept_row + "]/drugtmspec", drugtmspec);
  717. model.setValue("/root/main/deptdtim/deptdtimList[" + dept_row + "]/drugtmspeccal", drugtmspeccal);
  718. }
  719. }else{}
  720. model.refresh();
  721. }
  722. /**
  723. * @group :
  724. * @ver : 2007.12.07
  725. * @by : 최경용
  726. * @---------------------------------------------------
  727. * @type : function
  728. * @access : public
  729. * @desc : 수액기준관리 조회
  730. * @param :
  731. * @param :
  732. * @return :
  733. * @---------------------------------------------------
  734. */
  735. function fGetSapList(){
  736. model.removenode("/root/send");
  737. model.makeValue("/root/send/deptcd",model.getValue("/root/main/cond/deptcd"));
  738. model.makeValue("/root/send/drugcd",model.getValue("/root/main/cond/drugcd"));
  739. submit("TRMNR07508");
  740. var rows = grd_saplist.rows;
  741. for(var i = 2; i <= rows; i++){
  742. grd_saplist.isReadOnly(i, 2) = true;
  743. }
  744. grd_saplist.refresh();
  745. }
  746. /**
  747. * @group :
  748. * @ver : 2007.12.07
  749. * @by : 최경용
  750. * @---------------------------------------------------
  751. * @type : function
  752. * @access : public
  753. * @desc : 수액기준관리 저장
  754. * @param :
  755. * @param :
  756. * @return :
  757. * @---------------------------------------------------
  758. */
  759. function fSaveSapInfo(){
  760. var rows = grd_saplist.rows-1;
  761. for(var i = 1; i < rows; i++){
  762. if((grd_saplist.rowStatus(i+1) == 1 || grd_saplist.rowStatus(i+1) == 3) &&
  763. model.getValue("/root/main/sapinfo/saplist/saplist[" + i + "]/drugnm") == ""){
  764. grd_saplist.deleteRow(i+1);
  765. }
  766. }
  767. grd_saplist.rebuildStyle();
  768. var sSateData = "";
  769. model.removenode("/root/send");
  770. model.makeValue("/root/send/saplist", grd_saplist.getUpdateData());
  771. model.makeValue("/root/send/deptcd",model.getValue("/root/main/cond/deptcd"));
  772. model.makeValue("/root/send/drugcd",model.getValue("/root/main/cond/drugcd"));
  773. if(submit("TXMNR07502")){
  774. messageBox("성공적으로","I001");
  775. }
  776. grd_saplist.rebuild();
  777. }
  778. /**
  779. * @group :
  780. * @ver : 2007.12.07
  781. * @by : 최경용
  782. * @---------------------------------------------------
  783. * @type : function
  784. * @access : public
  785. * @desc : 약품정보 조회(수액기준관리)
  786. * @param :
  787. * @param :
  788. * @return :
  789. * @---------------------------------------------------
  790. */
  791. function fSapDbClick(){
  792. model.setValue("/root/temp/receivedata/receiveref", "/root/temp/druginfo");
  793. modal("SPADB60100",0,100,150,"SPADB60100","/root/temp/receivedata","/root/temp/receivedata");
  794. var drugcd = model.getValue("/root/temp/druginfo");
  795. var drugnm = "";
  796. var row = grd_saplist.row -1;
  797. if(drugcd != ""){
  798. model.removenode("/root/send");
  799. model.makeValue("/root/send/calcscorcd", drugcd);
  800. submit("TRMNR07506");
  801. drugnm = model.getValue("/root/hidden/mech/hngnm");
  802. if(drugnm != ""){
  803. model.setValue("/root/main/sapinfo/saplist/saplist[" + row + "]/drugcd", drugcd);
  804. model.setValue("/root/main/sapinfo/saplist/saplist[" + row + "]/drugnm", drugnm);
  805. model.setValue("/root/temp/druginfo", "");
  806. }else{
  807. messageBox("약품 유효기간이 지났습니다.","E999");
  808. }
  809. }
  810. model.refresh();
  811. }
  812. /**
  813. * @group :
  814. * @ver : 2007.12.07
  815. * @by : 최경용
  816. * @---------------------------------------------------
  817. * @type : function
  818. * @access : public
  819. * @desc : 수액기준관리 삭제
  820. * @param :
  821. * @param :
  822. * @return :
  823. * @---------------------------------------------------
  824. */
  825. function fClickSapDelete(){
  826. var row = grd_saplist.row;
  827. if(model.getValue("/root/main/sapinfo/saplist/saplist[" + (row-1) + "]/delcheck") == "true"){
  828. if(grd_saplist.rowStatus(row) == "2"){
  829. grd_saplist.rowStatus(row) = 4;
  830. }else if(grd_saplist.rowStatus(row) == "3" || grd_saplist.rowStatus(row) == "1"){
  831. grd_saplist.deleteRow(row);
  832. }else{}
  833. }else if(model.getValue("/root/main/sapinfo/saplist/saplist[" + (row-1) + "]/delcheck") == "false"){
  834. grd_saplist.rowStatus(row) = 2;
  835. }else{}
  836. grd_saplist.refresh();
  837. }