SPMNR05700_SJH.js 50 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020
  1. /*
  2. 경구입력(SMMNR05700.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. var xPathBizFlag = "/root/main/cond/bizflag";
  7. /**
  8. * @group :
  9. * @ver : 2008.06.20
  10. * @by : 양천덕
  11. * @---------------------------------------------------
  12. * @type : function
  13. * @access : public
  14. * @desc : 화면 초기화
  15. * @param :
  16. * @return :
  17. * @---------------------------------------------------
  18. */
  19. function fInitialize(){
  20. model.removeNode("/root/main/oralsuminfo/oralsumlist");
  21. model.removeNode("/root/main/deloralinfo/delorallist");
  22. //IO기준시간 조회
  23. submit("TRMNR05703");
  24. var duty1 = model.getValue("/root/main/dietinfo/iotminfo/iotmlist/duty1"); //Day
  25. var duty2 = model.getValue("/root/main/dietinfo/iotminfo/iotmlist/duty2"); //Evening
  26. var duty3 = model.getValue("/root/main/dietinfo/iotminfo/iotmlist/duty3"); //Night
  27. var curtm = getCurrentTime();
  28. var flag = "";
  29. if(curtm >= duty1 && curtm <= duty2) {
  30. flag= "1";
  31. } else if(curtm >= duty2&& curtm <= duty3) {
  32. flag = "2";
  33. } else {
  34. flag= "3";
  35. }
  36. model.setValue(rdo_duty.attribute("ref"), flag);
  37. rdo_duty.refresh();
  38. if(checkOpener()){
  39. /**
  40. SPMNR05700_Param
  41. pid▦indd▦cretno▦wardcd▩ ==> 등록번호▦입원일자▦생성번호▦병동코드▩
  42. **/
  43. var sParamInfo = opener.javascript.getParameter("SPMNR05700_Param");
  44. //var sParamInfo = "pid▦indd▦cretno▦wardcd▦recdd▩18864191▦20080104▦800340900▦3050107000▦20080621▩"
  45. model.setValue("/root/main/cond/pid", getArrayData(sParamInfo,1,0));
  46. model.setValue("/root/main/cond/orddd", getArrayData(sParamInfo,1,1));
  47. model.setValue("/root/main/cond/cretno", getArrayData(sParamInfo,1,2));
  48. model.setValue("/root/main/cond/wardcd", getArrayData(sParamInfo,1,3));
  49. model.setValue("/root/main/cond/seardd", getArrayData(sParamInfo,1,4));
  50. }
  51. if(model.getValue("/root/main/cond/seardd") == ""){
  52. ipt_seardd.value = getCurrentDate();
  53. }
  54. model.copynode("root/send", "root/main/cond");
  55. model.setValue(xPathBizFlag, "insert");
  56. fOrdddChng();
  57. fSearDietRec();
  58. //submit("TRMNR05701");
  59. for(var irow = grd_etcdiet.fixedRows ; irow <= grd_etcdiet.rows - grd_etcdiet.fixedRows ;irow++){
  60. grd_etcdiet.isReadOnly(irow, grd_etcdiet.colRef("itemnm"), irow, grd_etcdiet.colRef("baseqty")) = true;
  61. }
  62. }
  63. /**
  64. * @group :
  65. * @ver : 2008.06.20
  66. * @by : 양천덕
  67. * @---------------------------------------------------
  68. * @type : function
  69. * @access : public
  70. * @desc : 끼니 선택 변경
  71. * @param :
  72. * @return :
  73. * @---------------------------------------------------
  74. */
  75. function fChngMeal(pFlag){
  76. fInitOralIntake("prcpdiet");
  77. switch (pFlag){
  78. case "1" :
  79. grd_prcpdiet.valueMatrix(1, grd_prcpdiet.colRef("baseqty")) = model.getValue("/root/main/dietinfo/dietlist/dietprcplist/breakrice");
  80. grd_prcpdiet.valueMatrix(2, grd_prcpdiet.colRef("baseqty")) = model.getValue("/root/main/dietinfo/dietlist/dietprcplist/breakgruel");
  81. break;
  82. case "2" :
  83. grd_prcpdiet.valueMatrix(1, grd_prcpdiet.colRef("baseqty")) = model.getValue("/root/main/dietinfo/dietlist/dietprcplist/lunchrice");
  84. grd_prcpdiet.valueMatrix(2, grd_prcpdiet.colRef("baseqty")) = model.getValue("/root/main/dietinfo/dietlist/dietprcplist/lunchgruel");
  85. break;
  86. case "3" :
  87. grd_prcpdiet.valueMatrix(1, grd_prcpdiet.colRef("baseqty")) = model.getValue("/root/main/dietinfo/dietlist/dietprcplist/dinnerrice");
  88. grd_prcpdiet.valueMatrix(2, grd_prcpdiet.colRef("baseqty")) = model.getValue("/root/main/dietinfo/dietlist/dietprcplist/dinnergruel");
  89. break;
  90. }
  91. }
  92. /**
  93. * @group :
  94. * @ver : 2008.06.20
  95. * @by : 양천덕
  96. * @---------------------------------------------------
  97. * @type : function
  98. * @access : public
  99. * @desc : 기타 식이 행추가
  100. * @param :
  101. * @return :
  102. * @---------------------------------------------------
  103. */
  104. function fEtcDietAddRow(){
  105. grd_etcdiet.addRow(true);
  106. grd_etcdiet.valueMatrix(grd_etcdiet.rows -1, grd_etcdiet.colRef("itemcd")) = "HI999999";
  107. grd_etcdiet.cellStyle("background-color", grd_etcdiet.rows -1, 0, grd_etcdiet.rows -1, 0) = "#ffff99";
  108. grd_etcdiet.topRow = grd_etcdiet.rows -1;
  109. }
  110. /**
  111. * @group :
  112. * @ver : 2008.06.20
  113. * @by : 양천덕
  114. * @---------------------------------------------------
  115. * @type : function
  116. * @access : public
  117. * @desc : 기타 식이 행삭제
  118. * @param :
  119. * @return :
  120. * @---------------------------------------------------
  121. */
  122. function fEtcDietDelRow(){
  123. if(grd_etcdiet.valueMatrix(grd_etcdiet.row, grd_etcdiet.colRef("carerecseqno")) == "" && grd_etcdiet.valueMatrix(grd_etcdiet.row, grd_etcdiet.colRef("itemcd")) == "" ){
  124. grd_etcdiet.deleteRow(grd_etcdiet.row, false);
  125. }else{
  126. messageBox("고정항목은 삭제할 수", "I004");
  127. }
  128. }
  129. /**
  130. * @group :
  131. * @ver : 2008.06.20
  132. * @by : 양천덕
  133. * @---------------------------------------------------
  134. * @type : function
  135. * @access : public
  136. * @desc : 식이 입력
  137. * @param :
  138. * @return :
  139. * @---------------------------------------------------
  140. */
  141. function fPrcpDietMove(pFlag){
  142. if(model.getValue("/root/main/cond/duty") == ""){
  143. //fInitOralIntake("All");
  144. messageBox("Duty를 선택하십시오.","I");
  145. return;
  146. }
  147. var insduty = model.getValue("/root/main/cond/duty");
  148. var insmealflag = model.getValue("/root/main/cond/mealflag");
  149. var insprcpnm = "";
  150. var insitemcd = "";
  151. var insintakeqty = 0;
  152. var insitemnm = "";
  153. var instotalrow = 0;
  154. var insetcitemcd = "";
  155. var insetcintakeqty = "";
  156. var insetcdietdesc = "";
  157. var insetcdietitemnm = "";
  158. var chkDuty = 0;
  159. var sBizFlag = model.getValue(xPathBizFlag);
  160. switch(pFlag){
  161. case "prcpdiet" :
  162. if(model.getValue("/root/main/cond/mealflag") == ""){
  163. messageBox("끼니를 선택하십시오","I");
  164. return;
  165. }
  166. if(insmealflag == "1"){
  167. insprcpnm = model.getValue("/root/main/dietinfo/dietlist/dietprcplist/breakdietprcpnm");
  168. }else if(insmealflag == "2"){
  169. insprcpnm = model.getValue("/root/main/dietinfo/dietlist/dietprcplist/lunchdietprcpnm");
  170. }else{
  171. insprcpnm = model.getValue("/root/main/dietinfo/dietlist/dietprcplist/dinnerdietprcpnm");
  172. }
  173. switch(sBizFlag){
  174. case "insert" :
  175. if(grd_dietsubtotal.rows- grd_dietsubtotal.fixedRows > 0){
  176. for(var j = grd_dietsubtotal.fixedRows ; j <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows ; j++){
  177. var sduty = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty"));
  178. var smealflag = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("mealflag"));
  179. //if(insduty == sduty && insmealflag == smealflag ){
  180. if(insmealflag == smealflag ){
  181. chkDuty = j;
  182. }
  183. }
  184. }
  185. if(chkDuty > 0){
  186. var mealflagnm = model.getValue("/root/hidden/mealinfo/meallist[value="+insmealflag+"]/name");
  187. messageBox(mealflagnm +" 입력 값이 있습니다. 조회테이블에서 [구분]을 선택하여 수정하십시오.", "I");
  188. return;
  189. }
  190. for(var i = grd_prcpdiet.fixedRows ; i <= grd_prcpdiet.rows - grd_prcpdiet.fixedRows ; i++){
  191. if(grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("intakeqty")) != "" ){
  192. insitemcd = grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("itemcd")) ;
  193. insintakeqty = grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("intakeqty")) ;
  194. insitemnm = grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("itemnm")) ;
  195. instotalrow++;
  196. var saveRow = 0;
  197. var insRowDuty = 0;
  198. if(grd_dietsubtotal.rows- grd_dietsubtotal.fixedRows > 0){
  199. for(var j = grd_dietsubtotal.fixedRows ; j <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows ; j++){
  200. var sduty = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty"));
  201. var smealflag = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("mealflag"));
  202. var sitemcd = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("itemcd"));
  203. //이전 입력 데이터 행 조회
  204. if(insduty == sduty && insmealflag == smealflag && insitemcd == sitemcd){
  205. saveRow = j;
  206. }
  207. //입력 위치행 조회
  208. if(insduty +insmealflag >= sduty + smealflag ){
  209. insRowDuty = j;
  210. }
  211. }
  212. }
  213. if(saveRow == 0){
  214. grd_dietsubtotal.insertRow(insRowDuty, "below", false, true);
  215. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("duty")) = insduty;
  216. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("mealflag")) = insmealflag;
  217. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("prcpnm")) = insprcpnm;
  218. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("itemnm")) = insitemnm;
  219. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("itemcd")) = insitemcd;
  220. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("intakeqty")) = insintakeqty;
  221. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("lnkitemcd")) = model.getvalue("/root/main/dietinfo/dietlist/dietsubitem[mealflag="+insmealflag+"]/itemcd") ;
  222. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("status")) = "I";
  223. }else{
  224. grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("intakeqty")) = insintakeqty;
  225. grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("status")) = "U";
  226. }
  227. }
  228. }
  229. break;
  230. case "update" :
  231. model.removenodeSet("/root/main/deloralinfo");
  232. for(var i = grd_prcpdiet.fixedRows ; i <= grd_prcpdiet.rows - grd_prcpdiet.fixedRows ; i++){
  233. insitemcd = grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("itemcd")) ;
  234. insintakeqty = grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("intakeqty")) ;
  235. insitemnm = grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("itemnm")) ;
  236. if(grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("intakeqty")) != "" ){
  237. instotalrow++;
  238. var saveRow = 0;
  239. var insRowDuty = 0;
  240. for(var j = grd_dietsubtotal.fixedRows ; j <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows ; j++){
  241. var sduty = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty"));
  242. var smealflag = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("mealflag"));
  243. var sitemcd = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("itemcd"));
  244. //이전 입력 데이터 행 조회
  245. if(insduty == sduty && insmealflag == smealflag && insitemcd == sitemcd){
  246. if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("status")) == "I"){
  247. grd_dietsubtotal.deleteRow(j, false);
  248. }else{
  249. saveRow = j;
  250. }
  251. }
  252. //입력 위치행 조회
  253. if(insduty >= sduty && insmealflag >= smealflag ){
  254. insRowDuty = j;
  255. }
  256. }
  257. if(saveRow == 0){
  258. grd_dietsubtotal.insertRow(insRowDuty, "below", false, true);
  259. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("duty")) = insduty;
  260. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("mealflag")) = insmealflag;
  261. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("prcpnm")) = insprcpnm;
  262. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("itemnm")) = insitemnm;
  263. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("itemcd")) = insitemcd;
  264. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("intakeqty")) = insintakeqty;
  265. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("lnkitemcd")) = model.getvalue("/root/main/dietinfo/dietlist/dietsubitem[mealflag="+insmealflag+"]/itemcd") ;
  266. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("status")) = "I";
  267. }else{
  268. grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("prcpnm")) = insprcpnm;
  269. grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("intakeqty")) = insintakeqty;
  270. grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("status")) = "U";
  271. }
  272. }else{
  273. for(var j = grd_dietsubtotal.fixedRows ; j <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows ; j++){
  274. var sduty = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty"));
  275. var smealflag = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("mealflag"));
  276. var sitemcd = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("itemcd"));
  277. if(insduty == sduty && insmealflag == smealflag && insitemcd == sitemcd){
  278. if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("status")) != "I"){
  279. var NodeNum = eval(getNodesetCount("/root/main/deloralinfo/delorallist"))+1;
  280. model.makeValue("/root/main/deloralinfo/delorallist["+NodeNum+"]/status", "D");
  281. model.makeValue("/root/main/deloralinfo/delorallist["+NodeNum+"]/carerecseqno", grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("carerecseqno")));
  282. }
  283. grd_dietsubtotal.deleteRow(j, false);
  284. }
  285. }
  286. }
  287. }
  288. break;
  289. }
  290. grd_dietsubtotal.refresh();
  291. //섭취량 초기화 및 입력 상태 변경
  292. fInitOralIntake("prcpdiet");
  293. break;
  294. case "etcdiet" :
  295. insmealflag = "4";
  296. switch(sBizFlag){
  297. case "insert" :
  298. if(grd_dietsubtotal.rows- grd_dietsubtotal.fixedRows > 0){
  299. for(var j = grd_dietsubtotal.fixedRows ; j <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows ; j++){
  300. var sduty = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty"));
  301. var smealflag = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("mealflag"));
  302. if(insduty == sduty && insmealflag == smealflag ){
  303. chkDuty = j;
  304. }
  305. }
  306. }
  307. if(chkDuty > 0 && model.getValue(xPathBizFlag)== "insert"){
  308. var mealflagnm = model.getValue("/root/hidden/mealinfo/meallist[value="+insmealflag+"]/name");
  309. messageBox(mealflagnm +" 입력 값이 있습니다. 조회테이블에서 [구분]을 선택하여 수정하십시오.", "I");
  310. return;
  311. }
  312. for(var i = grd_etcdiet.fixedRows ; i <= grd_etcdiet.rows - grd_etcdiet.fixedRows ; i++){
  313. if(grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("intakeqty")) != "" ){
  314. if(grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("itemnm")) == ""){
  315. messageBox("추가한 기타식이 항목 종류를 입력하십시오","I");
  316. return;
  317. }
  318. if(insetcitemcd == ""){
  319. insetcitemcd = grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("itemcd"));
  320. insetcintakeqty = grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("intakeqty"));
  321. insetcdietitemnm = grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("itemnm"));
  322. }else{
  323. insetcitemcd += "^"+grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("itemcd"));
  324. insetcintakeqty += "^"+grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("intakeqty"));
  325. insetcdietitemnm += "^"+grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("itemnm"));
  326. }
  327. insintakeqty += eval(grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("intakeqty")));
  328. instotalrow++;
  329. }
  330. }
  331. if(instotalrow > 0){
  332. insitemcd = model.getValue("/root/main/dietinfo/dietlist/dietsubitem[mealflag = "+ "4" + "]/itemcd");
  333. insetcdietdesc = insetcitemcd + "|" + insetcintakeqty + "|" + insetcdietitemnm;
  334. }else{
  335. break;
  336. }
  337. var saveRow = 0;
  338. var insRowDuty = 0;
  339. if(grd_dietsubtotal.rows- grd_dietsubtotal.fixedRows > 0){
  340. for(var j = grd_dietsubtotal.fixedRows ; j <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows ; j++){
  341. var sduty = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty"));
  342. var smealflag = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("mealflag"));
  343. var sitemcd = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("itemcd"));
  344. //이전 입력 데이터 행 조회
  345. if(insduty == sduty && insmealflag == smealflag && insitemcd == sitemcd){
  346. saveRow = j;
  347. }
  348. //입력 위치행 조회
  349. if(insduty + insmealflag >= sduty + smealflag){
  350. insRowDuty = j;
  351. }
  352. }
  353. }
  354. if(saveRow == 0){
  355. grd_dietsubtotal.insertRow(insRowDuty, "below", false, true);
  356. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("duty")) = insduty;
  357. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("mealflag")) = insmealflag;
  358. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("prcpnm")) = insprcpnm;
  359. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("itemnm")) = insitemnm;
  360. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("itemcd")) = insitemcd;
  361. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("intakeqty")) = insintakeqty;
  362. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("lnkitemcd")) = model.getvalue("/root/main/dietinfo/dietlist/dietsubitem[mealflag="+insmealflag+"]/itemcd") ;
  363. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("etcdietdesc")) = insetcdietdesc;
  364. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("status")) = "I";
  365. }else{
  366. grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("intakeqty")) = insintakeqty;
  367. grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("etcdietdesc")) = insetcdietdesc;
  368. grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("status")) = "U";
  369. }
  370. break;
  371. case "update" :
  372. for(var i = grd_etcdiet.fixedRows ; i <= grd_etcdiet.rows - grd_etcdiet.fixedRows ; i++){
  373. if(grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("intakeqty")) != "" ){
  374. if(grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("itemnm")) == ""){
  375. messageBox("추가한 기타식이 항목 종류를 입력하십시오","I");
  376. return;
  377. }
  378. if(insetcitemcd == ""){
  379. insetcitemcd = grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("itemcd"));
  380. insetcintakeqty = grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("intakeqty"));
  381. insetcdietitemnm = grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("itemnm"));
  382. }else{
  383. insetcitemcd += "^"+grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("itemcd"));
  384. insetcintakeqty += "^"+grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("intakeqty"));
  385. insetcdietitemnm += "^"+grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("itemnm"));
  386. }
  387. insintakeqty += eval(grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("intakeqty")));
  388. instotalrow++;
  389. }
  390. }
  391. if(instotalrow > 0){
  392. insitemcd = model.getValue("/root/main/dietinfo/dietlist/dietsubitem[mealflag = "+ "4" + "]/itemcd");
  393. insetcdietdesc = insetcitemcd + "|" + insetcintakeqty + "|" + insetcdietitemnm;
  394. var saveRow = 0;
  395. var insRowDuty = 0;
  396. var sStatus = "";
  397. if(grd_dietsubtotal.rows- grd_dietsubtotal.fixedRows > 0){
  398. for(var j = grd_dietsubtotal.fixedRows ; j <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows ; j++){
  399. var sduty = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty"));
  400. var smealflag = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("mealflag"));
  401. var sitemcd = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("itemcd"));
  402. sStatus = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("status"));
  403. //이전 입력 데이터 행 조회
  404. if(insduty == sduty && insmealflag == smealflag && insitemcd == sitemcd){
  405. saveRow = j;
  406. }
  407. //입력 위치행 조회
  408. if(insduty >= sduty && insmealflag >= smealflag ){
  409. insRowDuty = j;
  410. }
  411. }
  412. }
  413. if(saveRow == 0){
  414. grd_dietsubtotal.insertRow(insRowDuty, "below", false, true);
  415. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("duty")) = insduty;
  416. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("mealflag")) = insmealflag;
  417. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("prcpnm")) = insprcpnm;
  418. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("itemnm")) = insitemnm;
  419. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("itemcd")) = insitemcd;
  420. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("intakeqty")) = insintakeqty;
  421. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("lnkitemcd")) = model.getvalue("/root/main/dietinfo/dietlist/dietsubitem[mealflag="+insmealflag+"]/itemcd") ;
  422. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("etcdietdesc")) = insetcdietdesc;
  423. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("status")) = "I";
  424. }else{
  425. grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("intakeqty")) = insintakeqty;
  426. grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("etcdietdesc")) = insetcdietdesc;
  427. if(sStatus != "I") grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("status")) = "U";
  428. }
  429. }else{
  430. for(var j = grd_dietsubtotal.fixedRows ; j <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows ; j++){
  431. var sduty = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty"));
  432. var smealflag = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("mealflag"));
  433. if(insduty == sduty && insmealflag == smealflag){
  434. if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("status")) != "I"){
  435. var NodeNum = getNodesetCount("/root/main/deloralinfo/delorallist");
  436. model.makeValue("/root/main/deloralinfo/delorallist["+NodeNum+"]/status", "D");
  437. model.makeValue("/root/main/deloralinfo/delorallist["+NodeNum+"]/carerecseqno", grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("carerecseqno")));
  438. }
  439. grd_dietsubtotal.deleteRow(j, false);
  440. }
  441. }
  442. }
  443. break;
  444. }
  445. grd_dietsubtotal.refresh();
  446. //섭취량 초기화 및 입력 상태 변경
  447. fInitOralIntake("etcdiet");
  448. break;
  449. }
  450. if(instotalrow == 0){
  451. if(grd_dietsubtotal.rows > 0){
  452. grd_dietsubtotal.deleteRow(grd_dietsubtotal.findRow("4", 1, grd_dietsubtotal.colRef("duty")));
  453. return;
  454. }else{
  455. messageBox("이동할 식이 항목이 존재하지 않습니다.", "I");
  456. return;
  457. }
  458. }
  459. //total행 삭제
  460. grd_dietsubtotal.deleteRow(grd_dietsubtotal.findRow("4", 1, grd_dietsubtotal.colRef("duty")));
  461. fOralSherGridMerge();
  462. }
  463. /**
  464. * @group :
  465. * @ver : 2008.06.20
  466. * @by : 양천덕
  467. * @---------------------------------------------------
  468. * @type : function
  469. * @access : public
  470. * @desc : 경구 조회 그리드 Merge
  471. * @param :
  472. * @return :
  473. * @---------------------------------------------------
  474. */
  475. function fOralSherGridMerge(){
  476. var sumtotal = 0;
  477. var Dsubtotal = 0;
  478. var Esubtotal = 0;
  479. var Nsubtotal = 0;
  480. var instotalrow = 0;
  481. for(var j = grd_dietsubtotal.fixedRows ; j <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows ; j++){
  482. if(grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows < 2){
  483. sumtotal = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("intakeqty"));
  484. grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("totalsum")) = sumtotal;
  485. }else{
  486. if(j == 1){ //첫번째 행
  487. if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty")) == "1"){
  488. Dsubtotal += eval(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("intakeqty"))) ;
  489. }else if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty")) == "2"){
  490. Esubtotal += eval(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("intakeqty"))) ;
  491. }else{
  492. Nsubtotal += eval(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("intakeqty"))) ;
  493. }
  494. instotalrow = j;
  495. }else{
  496. //전 행과 duty가 동일하다면 duty별 합계 변수에 추가
  497. if(grd_dietsubtotal.valueMatrix(j-1, grd_dietsubtotal.colRef("duty")) == grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty"))){
  498. if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty")) == "1"){
  499. Dsubtotal += eval(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("intakeqty"))) ;
  500. }else if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty")) == "2"){
  501. Esubtotal += eval(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("intakeqty"))) ;
  502. }else{
  503. Nsubtotal += eval(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("intakeqty"))) ;
  504. }
  505. //전 행과 duty가 동일하지 않다면 이전 duty에 합계 입력
  506. }else{
  507. for(var i = instotalrow; i < j ; i++){
  508. if(grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("duty")) == "1"){
  509. grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("totalsum")) = Dsubtotal;
  510. }else if(grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("duty")) == "2"){
  511. grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("totalsum")) = Esubtotal;
  512. }else{
  513. grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("totalsum")) = Nsubtotal;
  514. }
  515. }
  516. //새로운 해당행에 해당하는 duty별 합계 변수에 입력
  517. if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty")) == "1"){
  518. Dsubtotal += eval(grd_dietsubtotal.valueMatrix( j, grd_dietsubtotal.colRef("intakeqty")));
  519. }else if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty")) == "2"){
  520. Esubtotal += eval(grd_dietsubtotal.valueMatrix( j, grd_dietsubtotal.colRef("intakeqty")));
  521. }else{
  522. Nsubtotal += eval(grd_dietsubtotal.valueMatrix( j, grd_dietsubtotal.colRef("intakeqty")));
  523. }
  524. instotalrow = j;
  525. }
  526. //마지막 행일 경우 마지막 행과 동일한 duty에 합계 입력
  527. if(j == grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows){
  528. for(var i = instotalrow; i <= j ; i++){
  529. if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty")) == "1"){
  530. grd_dietsubtotal.valueMatrix( i, grd_dietsubtotal.colRef("totalsum")) = Dsubtotal;
  531. }else if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty")) == "2"){
  532. grd_dietsubtotal.valueMatrix( i, grd_dietsubtotal.colRef("totalsum")) = Esubtotal;
  533. }else{
  534. grd_dietsubtotal.valueMatrix( i, grd_dietsubtotal.colRef("totalsum")) = Nsubtotal;
  535. }
  536. }
  537. }
  538. }
  539. }
  540. }
  541. //total 합계 Row추가 및 Sum값 입력
  542. grd_dietsubtotal.addRow(false);
  543. grd_dietsubtotal.valueMatrix(grd_dietsubtotal.rows-1, grd_dietsubtotal.colRef("duty")) = "4";
  544. if(eval(sumtotal) > 0 ){
  545. grd_dietsubtotal.valueMatrix(grd_dietsubtotal.rows-1, grd_dietsubtotal.colRef("totalsum")) = sumtotal;
  546. }else{
  547. grd_dietsubtotal.valueMatrix(grd_dietsubtotal.rows-1, grd_dietsubtotal.colRef("totalsum")) = eval(Dsubtotal) + eval(Esubtotal) + eval(Nsubtotal);
  548. }
  549. //그리드 머지 작업
  550. grd_dietsubtotal.mergecells = "byrestriccol";
  551. grd_dietsubtotal.mergecol(0) = true;
  552. grd_dietsubtotal.mergecol(1) = true;
  553. grd_dietsubtotal.mergecol(2) = true;
  554. grd_dietsubtotal.mergecol(3) = true;
  555. grd_dietsubtotal.isReadOnly(grd_dietsubtotal.rows-1, grd_dietsubtotal.colRef("duty")) = true;
  556. grd_dietsubtotal.isReadOnly(grd_dietsubtotal.rows-1, grd_dietsubtotal.colRef("mealflag")) = true;
  557. }
  558. /**
  559. * @group :
  560. * @ver : 2008.06.20
  561. * @by : 양천덕
  562. * @---------------------------------------------------
  563. * @type : function
  564. * @access : public
  565. * @desc : 경구입력 섭취량 초기화
  566. * @param :
  567. * @return :
  568. * @---------------------------------------------------
  569. */
  570. function fInitOralIntake(pFlag){
  571. switch(pFlag){
  572. case "prcpdiet" : // 식이처방 그리드 섭취량 초기화
  573. for(var i = grd_prcpdiet.fixedRows ; i <= grd_prcpdiet.rows - grd_prcpdiet.fixedRows ; i++){
  574. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("intakeqty")) = "";
  575. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol1")) = "N";
  576. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol2")) = "N";
  577. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol3")) = "N";
  578. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol4")) = "N";
  579. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol5")) = "N";
  580. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol6")) = "N";
  581. }
  582. //grd_prcpdiet.valueMatrix(1, grd_prcpdiet.colRef("baseqty")) = "";
  583. //grd_prcpdiet.valueMatrix(2, grd_prcpdiet.colRef("baseqty")) = "";
  584. break;
  585. case "etcdiet" : // 기타식이 그리드 섭취량 초기화 & 행추가된 행 삭제
  586. grd_etcdiet.allstyle( "all", "background-color" ) = "#FFFFFF";
  587. for(var i = grd_etcdiet.fixedRows ; i <= grd_etcdiet.rows - grd_etcdiet.fixedRows ; i++){
  588. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("intakeqty")) = "";
  589. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol1")) = "N";
  590. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol2")) = "N";
  591. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol3")) = "N";
  592. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol4")) = "N";
  593. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol5")) = "N";
  594. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol6")) = "N";
  595. grd_etcdiet.deleteRow(grd_etcdiet.findRow("", 1, 1), false);
  596. }
  597. grd_etcdiet.topRow = 1;
  598. break;
  599. case "All" : //식이처방 그리드 & 기타식이 그리드 섭취량 기준량 초기화
  600. for(var i = grd_prcpdiet.fixedRows ; i <= grd_prcpdiet.rows - grd_prcpdiet.fixedRows ; i++){
  601. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("intakeqty")) = "";
  602. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol1")) = "N";
  603. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol2")) = "N";
  604. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol3")) = "N";
  605. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol4")) = "N";
  606. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol5")) = "N";
  607. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol6")) = "N";
  608. }
  609. grd_prcpdiet.valueMatrix(1, grd_prcpdiet.colRef("baseqty")) = "";
  610. grd_prcpdiet.valueMatrix(2, grd_prcpdiet.colRef("baseqty")) = "";
  611. for(var i = grd_etcdiet.fixedRows ; i <= grd_etcdiet.rows - grd_etcdiet.fixedRows ; i++){
  612. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("intakeqty")) = "";
  613. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol1")) = "N";
  614. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol2")) = "N";
  615. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol3")) = "N";
  616. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol4")) = "N";
  617. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol5")) = "N";
  618. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol6")) = "N";
  619. grd_etcdiet.deleteRow(grd_etcdiet.findRow("", 1, 1), false);
  620. }
  621. grd_etcdiet.topRow = 1;
  622. break;
  623. }
  624. model.setValue(xPathBizFlag,"insert");
  625. }
  626. /**
  627. * @group :
  628. * @ver : 2008.06.20
  629. * @by : 양천덕
  630. * @---------------------------------------------------
  631. * @type : function
  632. * @access : public
  633. * @desc : 경구 정보 수정
  634. * @param :
  635. * @return :
  636. * @---------------------------------------------------
  637. */
  638. function fUpdtDietInfo(pDuty, pMeal){
  639. rdo_duty.value = pDuty;
  640. rdo_mealtype.value = pMeal;
  641. fChngMeal(pMeal);
  642. var sEtcInfo0 = "";
  643. var sEtcInfoCd = "";
  644. var sEtcInfoQty = "";
  645. var sEtcInfoName = "";
  646. for(var i = grd_dietsubtotal.fixedRows ; i <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows ; i++){
  647. var sItemeCd = "";
  648. var sIntakeQty = "";
  649. var sEtcDietDesc = "";
  650. var sEtcDietDescInfo = "";
  651. if(grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("duty")) == pDuty && grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("mealflag")) == pMeal){
  652. sItemeCd = grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("itemcd"));
  653. sIntakeQty= grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("intakeqty"));
  654. sEtcDietDesc = grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("etcdietdesc"));
  655. if(pMeal == "4"){
  656. sEtcDietDescInfo = sEtcDietDesc.split("|");
  657. if(sEtcDietDescInfo =="" || sEtcDietDescInfo ==null) { //구분이 기타이면서 기타식이처방이 아닐때
  658. for(var j = grd_prcpdiet.fixedRows ; j <= grd_prcpdiet.rows - grd_prcpdiet.fixedRows ; j++){
  659. if( sItemeCd == grd_prcpdiet.valueMatrix(j, grd_prcpdiet.colRef("itemcd"))){
  660. grd_prcpdiet.valueMatrix(j, grd_prcpdiet.colRef("intakeqty")) = sIntakeQty;
  661. }
  662. }
  663. } else {
  664. for(var k = 0 ; k < 3 ; k++){
  665. if(k == 0)sEtcInfoCd = sEtcDietDescInfo[0].split("^");
  666. if(k == 1)sEtcInfoQty = sEtcDietDescInfo[1].split("^");
  667. if(k == 2)sEtcInfoName = sEtcDietDescInfo[2].split("^");
  668. }
  669. for(var k = 0; k < sEtcInfoCd.length ; k++){
  670. var sRow = grd_etcdiet.findRow(sEtcInfoCd[k],1, grd_etcdiet.colRef("itemcd"));
  671. if(sRow > 0 ){
  672. grd_etcdiet.valueMatrix(sRow, grd_etcdiet.colRef("intakeqty")) = sEtcInfoQty[k];
  673. }else{
  674. grd_etcdiet.addRow(false);
  675. grd_etcdiet.cellStyle("background-color", grd_etcdiet.rows -1, 0, grd_etcdiet.rows -1, 0) = "#ffff99";
  676. grd_etcdiet.valueMatrix(grd_etcdiet.rows -1 , grd_etcdiet.colRef("itemcd")) = sEtcInfoCd[k];
  677. grd_etcdiet.valueMatrix(grd_etcdiet.rows -1 , grd_etcdiet.colRef("intakeqty")) = sEtcInfoQty[k];
  678. grd_etcdiet.valueMatrix(grd_etcdiet.rows -1 , grd_etcdiet.colRef("itemnm")) = sEtcInfoName[k];
  679. }
  680. }
  681. }
  682. }else{
  683. for(var j = grd_prcpdiet.fixedRows ; j <= grd_prcpdiet.rows - grd_prcpdiet.fixedRows ; j++){
  684. if( sItemeCd == grd_prcpdiet.valueMatrix(j, grd_prcpdiet.colRef("itemcd"))){
  685. grd_prcpdiet.valueMatrix(j, grd_prcpdiet.colRef("intakeqty")) = sIntakeQty;
  686. }
  687. }
  688. }
  689. }
  690. }
  691. model.setValue(xPathBizFlag,"update");
  692. }
  693. /**
  694. * @group :
  695. * @ver : 2008.06.20
  696. * @by : 양천덕
  697. * @---------------------------------------------------
  698. * @type : function
  699. * @access : public
  700. * @desc : 경구 정보 저장
  701. * @param :
  702. * @return :
  703. * @---------------------------------------------------
  704. */
  705. function fSaveOralInfo(){
  706. model.removeNodeSet("/root/send");
  707. model.makeValue("/root/send/pid", model.getValue("/root/main/cond/pid"));
  708. model.makeValue("/root/send/cretno", model.getValue("/root/main/cond/cretno"));
  709. model.makeValue("/root/send/orddd", model.getValue("/root/main/cond/orddd"));
  710. model.makeValue("/root/send/seardd", model.getValue("/root/main/cond/seardd"));
  711. model.makeValue("/root/send/wardcd", model.getValue("/root/main/cond/wardcd"));
  712. model.makeValue("/root/send/seartodd", model.getValue("/root/main/cond/seartodd"));
  713. model.makeValue("/root/send/seartodd2", model.getValue("/root/main/cond/seartodd2"));
  714. var sOralHeader = "status▦carerecseqno▦duty▦totalsum▦mealflag▦prcpnm▦itemnm▦intakeqty▦itemcd▦etcdietdesc▦lnkitemcd▩";
  715. for(var i = grd_dietsubtotal.fixedrows ; i <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedrows ; i ++){
  716. var sStatus = grd_dietsubtotal.valuematrix(i, grd_dietsubtotal.colRef("status"));
  717. if( sStatus == "I" || sStatus == "U"){
  718. sOralHeader += grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("status")) + "▦"
  719. + grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("carerecseqno")) + "▦"
  720. + grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("duty")) + "▦"
  721. + grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("totalsum")) + "▦"
  722. + grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("mealflag")) + "▦"
  723. + grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("prcpnm")) + "▦"
  724. + grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("itemnm")) + "▦"
  725. + grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("intakeqty")) + "▦"
  726. + grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("itemcd")) + "▦"
  727. + grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("etcdietdesc")) + "▦"
  728. + grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("lnkitemcd")) + "▩";
  729. }
  730. }
  731. model.makeValue("/root/send/dietinfo", sOralHeader);
  732. if(getNodesetCount("/root/main/deloralinfo/delorallist") > 0 ){
  733. var sDelOralHeader = "status▦carerecseqno▩";
  734. for(var i = 1; i <= getNodesetCount("/root/main/deloralinfo/delorallist") ; i ++ ){
  735. if(model.getValue("root/main/deloralinfo/delorallist["+i+"]/carerecseqno") != ""){
  736. sDelOralHeader += model.getValue("root/main/deloralinfo/delorallist["+i+"]/status") + "▦"
  737. + model.getValue("root/main/deloralinfo/delorallist["+i+"]/carerecseqno")+"▩";
  738. }
  739. }
  740. model.makeValue("/root/send/deloralinfo", sDelOralHeader);
  741. }
  742. grd_dietsubtotal.deleteRow(grd_dietsubtotal.findRow("4", 1, grd_dietsubtotal.colRef("duty")));
  743. submit("TXMNR05701_SJH");
  744. model.removeNodeSet("/root/main/deloralinfo/delorallist");
  745. model.makeNode("/root/main/deloralinfo/delorallist");
  746. fOralSherGridMerge();
  747. fSearDietRec();
  748. }
  749. /**
  750. * @group :
  751. * @ver : 2008.06.20
  752. * @by : 양천덕
  753. * @---------------------------------------------------
  754. * @type : function
  755. * @access : public
  756. * @desc : 업무일자 변경시 익일 계산
  757. * @param :
  758. * @return :
  759. * @---------------------------------------------------
  760. */
  761. function fOrdddChng(){
  762. model.setValue("/root/main/cond/seartodd" , getDateCalc(ipt_seardd.value, 1, "+"));
  763. model.setValue("/root/main/cond/seartodd2", getDateCalc(ipt_seardd.value, 1, "-"));
  764. }
  765. /**
  766. * @group :
  767. * @ver : 2008.06.20
  768. * @by : 양천덕
  769. * @---------------------------------------------------
  770. * @type : function
  771. * @access : public
  772. * @desc : 식이 기록 정보 조회
  773. * @param :
  774. * @return :
  775. * @---------------------------------------------------
  776. */
  777. function fSearDietRec(){
  778. grd_dietsubtotal.deleteRow(grd_dietsubtotal.findRow("4", 1, grd_dietsubtotal.colRef("duty")));
  779. model.removeNodeSet("/root/send");
  780. model.makeValue("/root/send/pid", model.getValue("/root/main/cond/pid"));
  781. model.makeValue("/root/send/cretno", model.getValue("/root/main/cond/cretno"));
  782. model.makeValue("/root/send/orddd", model.getValue("/root/main/cond/orddd"));
  783. model.makeValue("/root/send/seardd", model.getValue("/root/main/cond/seardd"));
  784. model.makeValue("/root/send/wardcd", model.getValue("/root/main/cond/wardcd"));
  785. model.makeValue("/root/send/seartodd", model.getValue("/root/main/cond/seartodd"));
  786. model.makeValue("/root/send/seartodd2", model.getValue("/root/main/cond/seartodd2"));
  787. submit("TRMNR05702_SJH", false);
  788. submit("TRMNR05701");
  789. //섭취량 초기화 및 입력 상태 변경
  790. model.removeNodeSet("/root/main/deloralinfo/delorallist");
  791. model.makeNode("/root/main/deloralinfo/delorallist");
  792. fInitOralIntake("prcpdiet");
  793. fOralSherGridMerge();
  794. }
  795. /**
  796. * @group :
  797. * @ver : 2008.06.20
  798. * @by : 양천덕
  799. * @---------------------------------------------------
  800. * @type : function
  801. * @access : public
  802. * @desc : 식이 처방 그리드 & 기타식이 그리드 체크박스 선택시 자동 계산 구현
  803. * @param : pFlag - prcpdiet 식이 처방 그리드 Event
  804. * etcdiet 기타 식이 그리드 Event
  805. * pCol - 값이 변경된 Col Index
  806. * pRow - 값이 변경된 Row Index
  807. * @return :
  808. * @---------------------------------------------------
  809. */
  810. function fChngValue(pFlag, pCol, pRow){
  811. switch(pFlag){
  812. case "prcpdiet" :
  813. if(pCol >= 2 && pCol <= 7){
  814. if(grd_prcpdiet.valueMatrix(pRow, grd_prcpdiet.colRef("baseqty")) != "" ){
  815. for(var iCol = 2 ; iCol <= 7 ; iCol ++){
  816. if(iCol != pCol){
  817. grd_prcpdiet.valueMatrix(pRow, iCol) = "N";
  818. }
  819. }
  820. var sBaseQty = grd_prcpdiet.valueMatrix(pRow, grd_prcpdiet.colRef("baseqty"));
  821. var sCalcQty = "";
  822. switch(pCol){
  823. case 2 :
  824. sCalcQty = sBaseQty;
  825. break;
  826. case 3 :
  827. sCalcQty = Math.floor(eval(sBaseQty) / 2);
  828. break;
  829. case 4 :
  830. sCalcQty = Math.floor(eval(sBaseQty) / 3);
  831. break;
  832. case 5 :
  833. sCalcQty = Math.floor(eval(sBaseQty) * 2 / 3);
  834. break;
  835. case 6 :
  836. sCalcQty = eval(sBaseQty) * 2 ;
  837. break;
  838. case 7 :
  839. sCalcQty = eval(sBaseQty) * 3 ;
  840. break;
  841. }
  842. grd_prcpdiet.valueMatrix(pRow, grd_prcpdiet.colRef("intakeqty")) = sCalcQty;
  843. }else{
  844. grd_prcpdiet.valueMatrix(pRow, pCol) = "N";
  845. }
  846. }else if(pCol == 8){
  847. for(var iCol = 2 ; iCol <= 7 ; iCol ++){
  848. grd_prcpdiet.valueMatrix(pRow, iCol) = "N";
  849. }
  850. }
  851. break;
  852. case "etcdiet" :
  853. if(pCol >= 2 && pCol <= 7){
  854. if(grd_etcdiet.valueMatrix(pRow, grd_etcdiet.colRef("baseqty")) != ""){
  855. for(var iCol = 2 ; iCol <= 7 ; iCol ++){
  856. if(iCol != pCol){
  857. grd_etcdiet.valueMatrix(pRow, iCol) = "N";
  858. }
  859. }
  860. var sBaseQty = grd_etcdiet.valueMatrix(pRow, grd_etcdiet.colRef("baseqty"));
  861. var sCalcQty = "";
  862. switch(pCol){
  863. case 2 :
  864. sCalcQty = sBaseQty;
  865. break;
  866. case 3 :
  867. sCalcQty = Math.floor(eval(sBaseQty) / 2);
  868. break;
  869. case 4 :
  870. sCalcQty = Math.floor(eval(sBaseQty) / 3);
  871. break;
  872. case 5 :
  873. sCalcQty = Math.floor(eval(sBaseQty) * 2 / 3);
  874. break;
  875. case 6 :
  876. sCalcQty = eval(sBaseQty) * 2 ;
  877. break;
  878. case 7 :
  879. sCalcQty = eval(sBaseQty) * 3 ;
  880. break;
  881. }
  882. grd_etcdiet.valueMatrix(pRow, grd_etcdiet.colRef("intakeqty")) = sCalcQty;
  883. }else{
  884. grd_etcdiet.valueMatrix(pRow, pCol) = "N";
  885. }
  886. }else if(pCol == 8){
  887. for(var iCol = 2 ; iCol <= 7 ; iCol ++){
  888. grd_etcdiet.valueMatrix(pRow, iCol) = "N";
  889. }
  890. }
  891. break;
  892. }
  893. }
  894. /**
  895. * @group :
  896. * @ver : 2008.06.20
  897. * @by : 양천덕
  898. * @---------------------------------------------------
  899. * @type : function
  900. * @access : public
  901. * @desc : 수정 및 삭제 데이터 존재 여부 확인
  902. * @param :
  903. * @return :
  904. * @---------------------------------------------------
  905. */
  906. function fReturnViewStatus(){
  907. return rtnValue;
  908. }