SMMMR02100.js 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669
  1. /**
  2. * @desc : 화면 초기화
  3. * @
  4. * @param :
  5. * @return :
  6. * @---------------------------------------------------
  7. */
  8. function fInitialize(){
  9. //등록정보 없으면 상단정보 가져온다.
  10. if (isPopup())
  11. var parampid = opener.javascript.getParameter("pid");
  12. if(parampid == "undefined" || parampid == "" || parampid == null){
  13. fGetTopInfo();
  14. }
  15. zbcfGetCodeList(new Array("A0161"), new Array("/root/main/common"));
  16. copyNodeset("/root/main/code", "/root/main/common/A0161");
  17. // model.setValue("/root/main/ordinfo/pid","19993");
  18. // model.setValue("/root/main/ordinfo/orddd","20070101");
  19. var fpid = model.getValue("/root/main/ordinfo/pid");
  20. if( fpid != ""){
  21. // BMT 정보 조회
  22. fGetBMTInfo();
  23. }
  24. //기록일시 getCurrentDate() getCurrentTime
  25. model.makeValue("/root/main/info/newhsct/recdd" ,getCurrentDate());
  26. model.makeValue("/root/main/info/newhsct/recdt" ,getCurrentTime());
  27. model.refresh();
  28. }
  29. /**
  30. * @desc : 상단정보 구하기
  31. * @
  32. * @param :
  33. * @return :
  34. * @---------------------------------------------------
  35. */
  36. function fGetTopInfo(){
  37. var paminfo;
  38. var paminfocnt = 0;
  39. var paminfoflag;
  40. var paminfotag;
  41. var paminfovalue;
  42. var sexinfo;
  43. var ageinfo;
  44. paminfo = getGlobalVariable("paminfo");
  45. if(paminfo.length > 0){
  46. paminfoflag = paminfo.split("▩");
  47. paminfotag = paminfoflag[0].split("▦");
  48. paminfovalue = paminfoflag[1].split("▦");
  49. while(paminfocnt < paminfotag.length){
  50. switch(paminfotag[paminfocnt])
  51. {
  52. case "pid":
  53. model.setValue("/root/main/ordinfo/pid", paminfovalue[paminfocnt]);
  54. break;
  55. case "orddd":
  56. model.setValue("/root/main/ordinfo/orddd", paminfovalue[paminfocnt]);
  57. break;
  58. case "indd":
  59. model.setValue("/root/main/ordinfo/orddd", paminfovalue[paminfocnt]);
  60. break;
  61. case "orddeptcd":
  62. model.setValue("/root/main/ordinfo/orddeptcd", paminfovalue[paminfocnt]);
  63. break;
  64. case "orddrid":
  65. model.setValue("/root/main/ordinfo/drid", paminfovalue[paminfocnt]);
  66. break;
  67. case "ioflag":
  68. model.setValue("/root/main/ordinfo/ordtype", paminfovalue[paminfocnt]);
  69. break;
  70. case "hngnm":
  71. model.setValue("/root/main/ordinfo/patnm", paminfovalue[paminfocnt]);
  72. break;
  73. case "roomcd":
  74. model.setValue("/root/main/ordinfo/inroomcd", paminfovalue[paminfocnt]);
  75. break;
  76. case "cretno":
  77. model.setValue("/root/main/ordinfo/cretno", paminfovalue[paminfocnt]);
  78. break;
  79. case "age":
  80. ageinfo = paminfovalue[paminfocnt];
  81. break;
  82. case "sex":
  83. sexinfo = paminfovalue[paminfocnt];
  84. break;
  85. case "rrgstno1":
  86. model.setValue("/root/main/ordinfo/rrgstno", paminfovalue[paminfocnt]);
  87. break;
  88. }
  89. paminfocnt++;
  90. }
  91. model.makeValue("/root/hidden/topinfo/exist", "Y");
  92. }
  93. /* if(sexinfo == "M"){
  94. model.setValue("/root/main/ordinfo/rrgstno", model.getValue("/root/main/rodinfo/rrgstno" + "-1XXXXXX"));
  95. } else if(sexinfo =="F") {
  96. model.setValue("/root/main/ordinfo/rrgstno", model.getValue("/root/main/rodinfo/rrgstno" + "-2XXXXXX"));
  97. }
  98. model.setValue("/root/main/ordinfo/sa", sexinfo + "/" + ageinfo);
  99. */
  100. model.setValue("/root/main/ordinfo/orddeptnm", getPatientInfo("orddept"));
  101. model.setValue("/root/main/ordinfo/drnm", getPatientInfo("apntdr"));
  102. }
  103. /**
  104. * @desc : 이식일 입력
  105. * @
  106. * @param :
  107. * @return :
  108. * @---------------------------------------------------
  109. */
  110. function fSetTrmpt(){
  111. model.removeNodeset("/root/main/list/mngtlist");
  112. grd_mngtlist.rebuild();
  113. var fDate = model.getValue("/root/main/info/newrcipnt/trnptdd");
  114. //alert("이식일"+fDate);
  115. for(var i = 12; i > 0 ; i--){
  116. grd_mngtlist.addRow(false);
  117. var fgetdd = fDate.toDate();
  118. var isDate = fgetdd.getAddDate(-i);
  119. model.makeValue("/root/main/list/mngtlist[" + grd_mngtlist.row + "]/dayflag","-"+i);
  120. model.makeValue("/root/main/list/mngtlist[" + grd_mngtlist.row + "]/hsctday",isDate.getDateFormat() );
  121. model.makeValue("/root/main/list/mngtlist[" + grd_mngtlist.row + "]/hsctdw",isDate.getDayOfWeek("K"));
  122. // model.makeValue("/root/main/list/mngtlist[" + grd_mngtlist.row + "]/mngt","내용");
  123. }
  124. for(var i = 0; i < 7 ; i++){
  125. grd_mngtlist.addRow(false);
  126. var fgetdd = fDate.toDate();
  127. var isDate = fgetdd.getAddDate(i);
  128. if( i == 0 )
  129. {
  130. model.makeValue("/root/main/list/mngtlist[" + grd_mngtlist.row + "]/dayflag","D"+i); // D-day
  131. }else if( i == 1 )
  132. {
  133. model.makeValue("/root/main/list/mngtlist[" + grd_mngtlist.row + "]/dayflag","D"+i); // D-day +1일
  134. }else
  135. {
  136. model.makeValue("/root/main/list/mngtlist[" + grd_mngtlist.row + "]/dayflag","+"+ (i-1)); // +1일
  137. }
  138. model.makeValue("/root/main/list/mngtlist[" + grd_mngtlist.row + "]/hsctday",isDate.getDateFormat() );
  139. model.makeValue("/root/main/list/mngtlist[" + grd_mngtlist.row + "]/hsctdw",isDate.getDayOfWeek("K"));
  140. //model.makeValue("/root/main/list/mngtlist[" + grd_mngtlist.row + "]/mngt","내용");
  141. }
  142. }
  143. /**
  144. * @desc : 이식일 입력
  145. * @
  146. * @param :
  147. * @return :
  148. * @---------------------------------------------------
  149. */
  150. function fSetTrmptcnt(){
  151. var j = 0;
  152. var count = 0;
  153. var dDay;
  154. var dayflag = false;
  155. for (var i= grd_mngtlist.fixedRows; i < grd_mngtlist.rows+1 ;i++ )
  156. {
  157. dDay = model.getValue("/root/main/list/mngtlist[" + i + "]/dayflag");
  158. //alert("dDay"+dDay);
  159. if(dDay == "D" +0 ){
  160. dayflag = true;
  161. count = i;
  162. break;
  163. }
  164. }
  165. //alert(j + dayflag);
  166. //alert("count"+count);
  167. // 이식일 이전 날짜
  168. var iRow = 0;
  169. var fDate = model.getValue("/root/main/info/newhsct/trnptdd");
  170. if(dayflag == true){
  171. for(var i = count-1 ; i > 0 ; i--){
  172. var fgetdd = fDate.toDate();
  173. var isDate = fgetdd.getAddDate(-i);
  174. iRow += 1;
  175. model.makeValue("/root/main/list/mngtlist[" + iRow + "]/dayflag","-"+i );
  176. model.makeValue("/root/main/list/mngtlist[" + iRow + "]/hsctday",isDate.getDateFormat() );
  177. model.makeValue("/root/main/list/mngtlist[" + iRow + "]/hsctdw" ,isDate.getDayOfWeek("K"));
  178. }
  179. // 이식일 이후 날짜
  180. var allRow = ( grd_mngtlist.rows)- count
  181. // alert(allRow);
  182. var allCount = count+1;
  183. for(var j = 1; j < allRow; j++ ) {
  184. var fgetdd = fDate.toDate();
  185. var isDate = fgetdd.getAddDate(j);
  186. model.makeValue("/root/main/list/mngtlist[" + allCount + "]/dayflag","+"+j );
  187. model.makeValue("/root/main/list/mngtlist[" + allCount + "]/hsctday",isDate.getDateFormat() );
  188. model.makeValue("/root/main/list/mngtlist[" + allCount + "]/hsctdw" ,isDate.getDayOfWeek("K"));
  189. // alert("="+allCount);
  190. allCount++;
  191. }
  192. }
  193. // alert( grd_mngtlist.rows+2 );
  194. model.refresh();
  195. }
  196. /**
  197. * @desc : 줄추가
  198. * @
  199. * @param :
  200. * @return :
  201. * @---------------------------------------------------
  202. */
  203. function fAddMngtlist(){
  204. grd_mngtlist.insertRow(grd_mngtlist.row , "below");
  205. }
  206. /**
  207. * @desc : 윗줄추가
  208. * @
  209. * @param :
  210. * @return :
  211. * @---------------------------------------------------
  212. */
  213. function fUprowAdd(){
  214. var daydiff = model.getValue("/root/main/info/manage["+grd_mngtlist.row+"]/daydiff");
  215. var belowDay = model.getValue("/root/main/info/manage["+ (grd_mngtlist.row - 1) +"]/daydiff");
  216. var trnptdate = model.getValue("/root/main/info/manage["+grd_mngtlist.row+"]/trnptdd");
  217. daydiff = parseInt(daydiff) - 1;
  218. if(daydiff == belowDay){
  219. messageBox("중복된 일자는 입력", "E001");
  220. return;
  221. }else if(trnptdate == ""){
  222. messageBox("이식일자 항목이 비어있어 추가", "E001");
  223. return;
  224. }else {
  225. grd_mngtlist.insertRow(grd_mngtlist.row , "above");
  226. var cur_row = grd_mngtlist.row;
  227. model.makeValue("/root/main/info/manage["+cur_row+"]/daydiff", daydiff);
  228. model.makeValue("/root/main/info/manage["+cur_row+"]/trnptdd", getDateAddc(trnptdate, -1));
  229. model.makeValue("/root/main/info/manage["+cur_row+"]/dw", getDateAddc(trnptdate, -1).toDate().getDayOfWeek("K"));
  230. model.makeValue("/root/main/info/manage["+cur_row+"]/pid", model.getValue("/root/hidden/newdnor/pid"));
  231. model.makeValue("/root/main/info/manage["+cur_row+"]/trnptdg", model.getValue("/root/hidden/newdnor/trnptdg"));
  232. model.makeValue("/root/main/info/manage["+cur_row+"]/instcd", model.getValue("/root/hidden/newdnor/instcd"));
  233. }
  234. }
  235. /**
  236. * @desc : 아랫줄추가
  237. * @
  238. * @param :
  239. * @return :
  240. * @---------------------------------------------------
  241. */
  242. function fDownrowAdd(){
  243. var daydiff = model.getValue("/root/main/info/manage["+grd_mngtlist.row+"]/daydiff");
  244. var belowDay = model.getValue("/root/main/info/manage["+ (grd_mngtlist.row + 1) +"]/daydiff");
  245. var trnptdate = model.getValue("/root/main/info/manage["+grd_mngtlist.row+"]/trnptdd");
  246. daydiff = parseInt(daydiff) + 1;
  247. if(daydiff == belowDay){
  248. messageBox("중복된 일자는 입력", "E001");
  249. return;
  250. }else if(trnptdate == ""){
  251. messageBox("이식일자 항목이 비어있어 추가", "E001");
  252. return;
  253. }else {
  254. grd_mngtlist.insertRow(grd_mngtlist.row , "below");
  255. var cur_row = grd_mngtlist.row;
  256. model.makeValue("/root/main/info/manage["+cur_row+"]/daydiff", daydiff);
  257. model.makeValue("/root/main/info/manage["+cur_row+"]/trnptdd", getDateAddc(trnptdate, 1));
  258. model.makeValue("/root/main/info/manage["+cur_row+"]/dw", getDateAddc(trnptdate, 1).toDate().getDayOfWeek("K"));
  259. model.makeValue("/root/main/info/manage["+cur_row+"]/pid", model.getValue("/root/hidden/newdnor/pid"));
  260. model.makeValue("/root/main/info/manage["+cur_row+"]/trnptdg", model.getValue("/root/hidden/newdnor/trnptdg"));
  261. model.makeValue("/root/main/info/manage["+cur_row+"]/instcd", model.getValue("/root/hidden/newdnor/instcd"));
  262. }
  263. }
  264. /**
  265. * @desc : 줄삭제
  266. * @
  267. * @param :
  268. * @return :
  269. * @---------------------------------------------------
  270. */
  271. function fDelMngtlist(){
  272. var dDay = model.getValue("/root/main/info/manage["+grd_mngtlist.row+"]/daydiff");
  273. if(dDay == "0"){
  274. messageBox("이식일 당일은 삭제", "E001");
  275. return;
  276. }else {
  277. grd_mngtlist.deleteRow(grd_mngtlist.row);
  278. }
  279. }
  280. /**
  281. * @desc : BMT 저장
  282. * @
  283. * @param :
  284. * @return :
  285. * @---------------------------------------------------
  286. */
  287. function fSaveBMT(){
  288. for(var i = grd_mngtlist.fixedRows; i < grd_mngtlist.rows; i++){
  289. var rowstat = grd_mngtlist.rowStatus(i);
  290. if(rowstat == "4" ){
  291. grd_mngtlist.valueMatrix(i, 4) = "Y"; // 삭제여부;
  292. }else {
  293. grd_mngtlist.rowStatus(i) = 1;
  294. }
  295. }
  296. copyNodeset("/root/send/savedata", "/root/main/info/bmt");
  297. var grdData = grd_mngtlist.getUpdateData();
  298. model.makeValue("/root/send/grddata", grdData);
  299. if(submit("TXMMR02101")){
  300. messageBox("", "I001");
  301. }
  302. //model.refresh();
  303. }
  304. /**
  305. * @desc : 서식부제목을 가져온다.
  306. * @
  307. * @param :
  308. * @return :
  309. * @---------------------------------------------------
  310. */
  311. function fGetFormSubTitle()
  312. {
  313. var list = getGlobalVariable("emr_gsv_formsubtitlelist");
  314. if(list!=""){
  315. setCSVToNode("/root/init/formsubtitle",list,"formsubtitlelist");
  316. }else{
  317. submit("TRMMR04401");
  318. fFormSubTitlesetglobal(); //Global 변수에 저장
  319. }
  320. model.refresh();
  321. }
  322. /**
  323. * @desc : 서식부제목을 전역변수로 설정
  324. * @
  325. * @param :
  326. * @return :
  327. * @---------------------------------------------------
  328. */
  329. function fFormSubTitlesetglobal()
  330. {
  331. var reqnode = model.instances(0).selectNodes("/root/init/formsubtitle/formsubtitlelist");
  332. var csv = getNodeListCSV(reqnode);
  333. setGlobalVariable("emr_gsv_formsubtitlelist",csv);
  334. }
  335. /**
  336. * @desc : BMT 스케줄 기록 정보 조회
  337. * @
  338. * @param :
  339. * @return :
  340. * @---------------------------------------------------
  341. */
  342. function fGetBMTInfo(){
  343. var sPamInfo = getGlobalVariable("paminfo");
  344. setCSVToNode("/root/main/paminfo",sPamInfo,"pamlist"); // 상단 환자정보내리기
  345. var sPID = model.getValue("/root/main/paminfo/pamlist/pid");
  346. model.setValue("/root/send/pid", model.getValue("/root/main/ordinfo/pid"));
  347. model.setValue("/root/send/orddd", model.getValue("/root/main/ordinfo/orddd"));
  348. var trnptdg = model.getValue("/root/temp/bmtpatientinfo/trnptdg"); // BMT 환자 팝업으로 환자 선택시
  349. if (trnptdg != ""){
  350. model.setValue("/root/send/pid", model.getValue("/root/temp/bmtpatientinfo/pid"));
  351. model.setValue("/root/send/trnptdg", trnptdg);
  352. }
  353. submit("TRMMR02101");
  354. copyNodeset("/root/main/info/bmt", "/root/hidden/newdnor");
  355. var dnorcnt = model.getValue("/root/main/info/bmt/dnorcnt");
  356. if(dnorcnt == "2"){
  357. group4.visible = true;
  358. group2.attribute("width")= "370";
  359. group3.attribute("left")= "260";
  360. tar_donor.attribute("left") = "375";
  361. tar_donor.attribute("width") = "465";
  362. group6.visible = true;
  363. group6.attribute("left") = "165";
  364. group5.attribute("left") = "260";
  365. group7.attribute("left") = "355";
  366. group8.attribute("left") = "450";
  367. group8.attribute("width") = "395";
  368. caption22.attribute("width") = "394";
  369. input30.attribute("width") = "394";
  370. input27.attribute("width") = "394";
  371. input28.attribute("width") = "394";
  372. input29.attribute("width") = "394";
  373. input33.attribute("width") = "394";
  374. input41.attribute("width") = "349";
  375. button4.attribute("left") = "375";
  376. }else{
  377. group4.visible = false;
  378. group2.attribute("width")= "280";
  379. group3.attribute("left")= "165";
  380. tar_donor.attribute("left") = "285";
  381. tar_donor.attribute("width") = "555";
  382. group6.visible = false;
  383. group6.attribute("left") = "165";
  384. group5.attribute("left") = "165";
  385. group7.attribute("left") = "260";
  386. group8.attribute("left") = "355";
  387. group8.attribute("width") = "485";
  388. caption22.attribute("width") = "484";
  389. input30.attribute("width") = "484";
  390. input27.attribute("width") = "484";
  391. input28.attribute("width") = "484";
  392. input29.attribute("width") = "484";
  393. input33.attribute("width") = "484";
  394. input41.attribute("width") = "439";
  395. button4.attribute("left") = "465";
  396. }
  397. var PID = model.getValue("/root/hidden/newdnor/pid");
  398. var trnptDG = model.getValue("/root/hidden/newdnor/trnptdg");
  399. var instCD = model.getValue("/root/hidden/newdnor/instcd");
  400. if(PID != ""){
  401. model.setValue("/root/main/ordinfo/pid", PID);
  402. model.setValue("/root/main/ordinfo/orddd", model.getValue("/root/hidden/newdnor/indd"));
  403. model.setValue("/root/main/ordinfo/patnm", model.getValue("/root/hidden/newdnor/patnm"));
  404. }
  405. var rsltFlag = model.getValue(("/root/hidden/newdnor/rsltflag"));
  406. var remark2 = "♣ Gut decontamination & Prevention of CMV & fungal infection\n"
  407. + "\tW-CF 500 mg #2 PO and ITZS 0.5/kg #2 PO from conditioning to ANC > 1,000/㎣\n"
  408. + "\t& then S-BTR 1T AM PO from engraftment to post BMT 6 months\n"
  409. + "\tIVGV weekly infusion from D-7 to engraftment, & IV acyclovir from D-7 to D+28\n"
  410. + "♣ Preparative regimen: TBI 400 cGy/day for 2 days (total 800 cGy),\n"
  411. + "\t\t\t\t\tCyclophosphamide 60 mg/kg/day for 2days (total 120 mg/kg)\n"
  412. + "♣ GVHD Prophylaxis with FK506 0.03 mg/kg CIV from D-1, 0.2 mg/kg # 2 PO (D+21, D+22) & 0.12 mg/kg # 2 PO (D+23~),\n"
  413. + " Methotrexate 5 mg/m ive D+1, +3, +6, +11\n"
  414. + "♣ VOD prophylaxis with PGE1\n"
  415. + "♣ LGT 350㎍ SC daily from D+7 to WBC>3,000/㎣";
  416. if(rsltFlag == "ast"){
  417. model.setValue("/root/main/info/bmt/remark2", remark2 );
  418. model.setValue("/root/main/info/bmt/ent", "NS" );
  419. model.setValue("/root/main/info/bmt/dent", "NS" );
  420. model.setValue("/root/main/info/bmt/echo", "EF=%" );
  421. model.setValue("/root/main/info/bmt/pft", "DLCO(%) FEV1(%) FEV1/FEV(%)" );
  422. model.setValue("/root/main/info/bmt/doppler", "NS" );
  423. var trnptdd = model.getValue("/root/main/info/bmt/trnptdd");
  424. model.removeNode("/root/main/info/manage");
  425. for(var i = 1; i <= 16; i++){
  426. model.makeValue("/root/main/info/manage["+i+"]/pid", PID);
  427. model.makeValue("/root/main/info/manage["+i+"]/trnptdg", trnptDG);
  428. model.makeValue("/root/main/info/manage["+i+"]/instcd", instCD);
  429. model.makeValue("/root/main/info/manage["+i+"]/management", "");
  430. if( i <= 12){
  431. model.makeValue("/root/main/info/manage["+i+"]/daydiff", i-11);
  432. model.makeValue("/root/main/info/manage["+i+"]/trnptdd", getDateAddc(trnptdd, i-11));
  433. model.makeValue("/root/main/info/manage["+i+"]/dw", getDateAddc(trnptdd, i-11).toDate().getDayOfWeek("K"));
  434. if(i == 4){
  435. model.makeValue("/root/main/info/manage["+i+"]/management", "Gut decontamination with W-CF &Prophylaxis of fungal infection with ITZS");
  436. }
  437. if(i == 11){
  438. model.makeValue("/root/main/info/manage["+i+"]/daydiff", "D0");
  439. grd_mngtlist.rowstyle(i, "data", "background-color") = '#FFCCCC';
  440. }
  441. }
  442. }
  443. model.makeValue("/root/main/info/manage[13]/daydiff", 3);
  444. model.makeValue("/root/main/info/manage[13]/trnptdd", getDateAddc(trnptdd, 3));
  445. model.makeValue("/root/main/info/manage[13]/dw", getDateAddc(trnptdd, 3).toDate().getDayOfWeek("K"));
  446. model.makeValue("/root/main/info/manage[14]/daydiff", 6);
  447. model.makeValue("/root/main/info/manage[14]/trnptdd", getDateAddc(trnptdd, 6));
  448. model.makeValue("/root/main/info/manage[14]/dw", getDateAddc(trnptdd, 6).toDate().getDayOfWeek("K"));
  449. model.makeValue("/root/main/info/manage[15]/daydiff", 7);
  450. model.makeValue("/root/main/info/manage[15]/trnptdd", getDateAddc(trnptdd, 7));
  451. model.makeValue("/root/main/info/manage[15]/dw", getDateAddc(trnptdd, 7).toDate().getDayOfWeek("K"));
  452. model.makeValue("/root/main/info/manage[16]/daydiff", 11);
  453. model.makeValue("/root/main/info/manage[16]/trnptdd", getDateAddc(trnptdd, 11));
  454. model.makeValue("/root/main/info/manage[16]/dw", getDateAddc(trnptdd, 11).toDate().getDayOfWeek("K"));
  455. fCalcDnorBsa();
  456. fCalcPatBsa();
  457. fCalcDnor2Bsa();
  458. } else if(rsltFlag != "ast"){
  459. copyNodeset("/root/main/info/manage", "/root/hidden/grid");
  460. }
  461. model.refresh();
  462. for (var i= grd_mngtlist.fixedRows; i < grd_mngtlist.rows; i++ ){
  463. var dayFlag = model.getValue("/root/main/info/manage["+i+"]/daydiff");
  464. if( dayFlag == "D0"){
  465. grd_mngtlist.rowstyle(i, "data", "background-color") = '#FFCCCC';
  466. var d0 = model.getValue("/root/main/info/manage["+i+"]/trnptdd");
  467. }
  468. }
  469. model.makeValue("/root/main/info/bmt/d0", d0);
  470. model.refresh();
  471. }
  472. function getDateAddc(inputday,addend){
  473. var backDate ="";
  474. var rt = 0;
  475. var yyyy = inputday.substring(0,4) +"";
  476. var mm = inputday.substring(4,6) +"";
  477. var dd = inputday.substring(6,8) +"";
  478. var startDate = new Date(yyyy,(eval(mm)-1),dd);
  479. startDate.setTime(startDate.getTime()+(86400000*addend));
  480. NowYear = startDate.getYear();// 년
  481. NowMonth = startDate.getMonth()+1;// 월
  482. NowDay = startDate.getDate(); // 일
  483. backDate += NowYear ; //년도
  484. if (NowMonth < 10 ) backDate += "0" + NowMonth ;
  485. else backDate += (startDate.getMonth() + 1);
  486. if (NowDay < 10 ) backDate += "0" + NowDay ;
  487. else backDate += (startDate.getDate());
  488. return backDate ;
  489. }
  490. function fSetDate(){
  491. var trnDD = model.getValue("/root/main/info/bmt/d0");
  492. for (var i= grd_mngtlist.fixedRows; i < grd_mngtlist.rows; i++ ){
  493. var dayFlag = model.getValue("/root/main/info/manage["+i+"]/daydiff");
  494. if( dayFlag != "D0"){
  495. model.makeValue("/root/main/info/manage["+i+"]/trnptdd", getDateAddc(trnDD, dayFlag));
  496. model.makeValue("/root/main/info/manage["+i+"]/dw", getDateAddc(trnDD, dayFlag).toDate().getDayOfWeek("K"));
  497. }
  498. else
  499. {
  500. model.makeValue("/root/main/info/manage["+i+"]/trnptdd", trnDD);
  501. model.makeValue("/root/main/info/manage["+i+"]/dw", trnDD.toDate().getDayOfWeek("K"));
  502. }
  503. }
  504. }
  505. function fCalcDnorBsa(){
  506. var ht = model.getValue("/root/main/info/bmt/dnorbdht");
  507. var wt = model.getValue("/root/main/info/bmt/dnorbdwt");
  508. var sex = model.getValue("/root/main/info/bmt/dnorsa").substr(0,1);
  509. if(ht != ht || wt != wt){
  510. }else if((!isNaN(ht) || !isNaN(wt)) && (ht!=''||wt!='')){
  511. if(sex == "M"){
  512. model.setValue("/root/main/info/bmt/dnoribw", parseFloat(ht*ht*22/10000).toFixed(2));
  513. }
  514. if(sex == "F"){
  515. model.setValue("/root/main/info/bmt/dnoribw", parseFloat(ht*ht*21/10000).toFixed(2));
  516. }
  517. model.setValue("/root/main/info/bmt/dnorbsa", parseFloat(Math.sqrt((ht*wt/3600))).toFixed(2));
  518. var dibw = model.getValue("/root/main/info/bmt/dnoribw");
  519. model.setValue("/root/main/info/bmt/dnorabw", parseFloat(parseFloat(dibw)+0.4*(parseFloat(wt)-parseFloat(dibw))).toFixed(2));
  520. }
  521. model.refresh();
  522. }
  523. function fCalcPatBsa(){
  524. var ht = model.getValue("/root/main/info/bmt/patbdht");
  525. var wt = model.getValue("/root/main/info/bmt/patbdwt");
  526. var sex = model.getValue("/root/main/info/bmt/patsa").substr(0,1);
  527. if(ht != ht || wt != wt){
  528. }else if((!isNaN(ht) || !isNaN(wt)) && (ht!=''||wt!='')){
  529. if(sex == "M"){
  530. model.setValue("/root/main/info/bmt/patibw", parseFloat(ht*ht*22/10000).toFixed(2));
  531. }
  532. if(sex == "F"){
  533. model.setValue("/root/main/info/bmt/patibw", parseFloat(ht*ht*21/10000).toFixed(2));
  534. }
  535. model.setValue("/root/main/info/bmt/patbsa", parseFloat(Math.sqrt((ht*wt/3600))).toFixed(2));
  536. var pibw = model.getValue("/root/main/info/bmt/patibw");
  537. model.setValue("/root/main/info/bmt/patabw", parseFloat(parseFloat(pibw)+0.4*(parseFloat(wt)-parseFloat(pibw))).toFixed(2));
  538. }
  539. model.refresh();
  540. }
  541. function fCalcDnor2Bsa(){
  542. var ht = model.getValue("/root/main/info/bmt/dnorbdht2");
  543. var wt = model.getValue("/root/main/info/bmt/dnorbdwt2");
  544. var sex = model.getValue("/root/main/info/bmt/dnorsa2").substr(0,1);
  545. if(ht != ht || wt != wt){
  546. }else if((!isNaN(ht) || !isNaN(wt)) && (ht!=''||wt!='')){
  547. if(sex == "M"){
  548. model.setValue("/root/main/info/bmt/dnoribw2", parseFloat(ht*ht*22/10000).toFixed(2));
  549. }
  550. if(sex == "F"){
  551. model.setValue("/root/main/info/bmt/dnoribw2", parseFloat(ht*ht*21/10000).toFixed(2));
  552. }
  553. model.setValue("/root/main/info/bmt/dnorbsa2", parseFloat(Math.sqrt((ht*wt/3600))).toFixed(2));
  554. var d2ibw = model.getValue("/root/main/info/bmt/dnoribw2");
  555. model.setValue("/root/main/info/bmt/dnorabw2", parseFloat(parseFloat(d2ibw)+0.4*(parseFloat(wt)-parseFloat(d2ibw))).toFixed(2));
  556. }
  557. model.refresh();
  558. }