SMMMR02100.xjs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[function fInitialize()
  3. {
  4. var parampid ;
  5. if (frmf_isPopup())
  6. {
  7. parampid = opener.frmf_getParameter("pid");
  8. }
  9. if(parampid == "undefined" || parampid == "" || utlf_isNull(parampid))
  10. {
  11. fGetTopInfo();
  12. }
  13. var fpid = ds_main_ordinfo.getColumn(0, "pid");
  14. if(!utlf_isNull(fpid))
  15. {
  16. fGetBMTInfo();
  17. }
  18. dsf_makeValue(ds_main_info_bmt, "recdd", "string", utlf_getCurrentDate(), 0);
  19. dsf_makeValue(ds_main_info_bmt, "recdt", "string", utlf_getCurrentTime(), 0);
  20. }
  21. function fGetTopInfo()
  22. {
  23. var paminfo;
  24. var paminfocnt = 0;
  25. var paminfoflag;
  26. var paminfotag;
  27. var paminfovalue;
  28. var sexinfo;
  29. var ageinfo;
  30. paminfo = sysf_getGlobalVariable("paminfo");
  31. if(paminfo.length > 0)
  32. {
  33. paminfoflag = paminfo.split("▩");
  34. paminfotag = paminfoflag[0].split("▦");
  35. paminfovalue = paminfoflag[1].split("▦");
  36. while(paminfocnt < paminfotag.length)
  37. {
  38. switch(paminfotag[paminfocnt])
  39. {
  40. case "pid":
  41. ds_main_ordinfo.setColumn(0, "pid", paminfovalue[paminfocnt]);
  42. break;
  43. case "orddd":
  44. ds_main_ordinfo.setColumn(0, "orddd", paminfovalue[paminfocnt]);
  45. break;
  46. case "indd":
  47. ds_main_ordinfo.setColumn(0, "orddd", paminfovalue[paminfocnt]);
  48. break;
  49. case "orddeptcd":
  50. ds_main_ordinfo.setColumn(0, "orddeptcd", paminfovalue[paminfocnt]);
  51. break;
  52. case "orddrid":
  53. ds_main_ordinfo.setColumn(0, "drid", paminfovalue[paminfocnt]);
  54. break;
  55. case "ioflag":
  56. ds_main_ordinfo.setColumn(0, "ordtype", paminfovalue[paminfocnt]);
  57. break;
  58. case "hngnm":
  59. ds_main_ordinfo.setColumn(0, "patnm", paminfovalue[paminfocnt]);
  60. break;
  61. case "roomcd":
  62. ds_main_ordinfo.setColumn(0, "inroomcd", paminfovalue[paminfocnt]);
  63. break;
  64. case "cretno":
  65. ds_main_ordinfo.setColumn(0, "cretno", paminfovalue[paminfocnt]);
  66. break;
  67. case "age":
  68. ageinfo = paminfovalue[paminfocnt];
  69. break;
  70. case "sex":
  71. sexinfo = paminfovalue[paminfocnt];
  72. break;
  73. case "rrgstno1":
  74. ds_main_ordinfo.setColumn(0, "rrgstno", paminfovalue[paminfocnt]);
  75. break;
  76. }
  77. paminfocnt++;
  78. }
  79. ds_hidden_topinfo.setColumn(0, "exist", "Y");
  80. }
  81. ds_main_ordinfo.setColumn(0, "orddeptnm", appf_getPatientInfo("orddept"));
  82. ds_main_ordinfo.setColumn(0, "drnm", appf_getPatientInfo("apntdr"));
  83. }
  84. function fGetBMTInfo()
  85. {
  86. var sPamInfo = sysf_getGlobalVariable("paminfo");
  87. dsf_setCSVToDs("ds_main_paminfo_pamlist", sPamInfo);
  88. var sPID = ds_main_paminfo_pamlist.getColumn(0, "pid");
  89. ds_send.setColumn(0, "pid", ds_main_ordinfo.getColumn(0, "pid"));
  90. ds_send.setColumn(0, "orddd", ds_main_ordinfo.getColumn(0, "orddd"));
  91. var trnptdg = ds_temp_bmtpatientinfo.getColumn(0, "trnptdg");
  92. if (!utlf_isNull(trnptdg))
  93. {
  94. ds_send.setColumn(0, "pid", ds_temp_bmtpatientinfo.getColumn(0, "pid"));
  95. ds_send.setColumn(0, "trnptdg", trnptdg);
  96. }
  97. var oParam = {};
  98. oParam.id = "TRMMR02101";
  99. oParam.service = "medirecapp.PrgmMediRec";
  100. oParam.method = "reqGetBmtScheDnorInfo";
  101. oParam.inds = "req=ds_send";
  102. oParam.outds = "ds_main_info_manage=grid ds_main_info_bmt=newdnor";
  103. oParam.async = false;
  104. //oParam.callback = "cf_TRMMR02101";
  105. tranf_submit(oParam);
  106. var dnorcnt = ds_main_info_bmt.getColumn(0, "dnorcnt");
  107. if(dnorcnt == "2")
  108. {
  109. group2.group4.visible = true;
  110. group2.group3.position.left = 267;
  111. group6.visible = true;
  112. group2.position.width = 378;
  113. tar_donor.position.width = 457;
  114. tar_donor.position.left = 382;
  115. }
  116. else
  117. {
  118. group2.group4.visible = false;
  119. group2.group3.position.left = 172;
  120. group6.visible = false;
  121. group2.position.width = 279;
  122. //tar_donor.position.width = 500;
  123. tar_donor.position.left = 283;
  124. }
  125. var PID = ds_main_info_bmt.getColumn(0, "pid");
  126. var trnptDG = ds_main_info_bmt.getColumn(0, "trnptdg");
  127. var instCD = ds_main_info_bmt.getColumn(0, "instcd");
  128. if(!utlf_isNull(PID))
  129. {
  130. ds_main_ordinfo.setColumn(0, "pid", PID);
  131. ds_main_ordinfo.setColumn(0, "orddd", ds_main_info_bmt.getColumn(0, "indd"));
  132. ds_main_ordinfo.setColumn(0, "patnm", ds_main_info_bmt.getColumn(0, "patnm"));
  133. }
  134. var rsltFlag = ds_main_info_bmt.getColumn(0, "rsltflag");
  135. var remark2 = "♣ Gut decontamination & Prevention of CMV & fungal infection\n"
  136. + "\tW-CF 500 mg #2 PO and ITZS 0.5/kg #2 PO from conditioning to ANC > 1,000/㎣\n"
  137. + "\t& then S-BTR 1T AM PO from engraftment to post BMT 6 months\n"
  138. + "\tIVGV weekly infusion from D-7 to engraftment, & IV acyclovir from D-7 to D+28\n"
  139. + "♣ Preparative regimen: TBI 400 cGy/day for 2 days (total 800 cGy),\n"
  140. + "\t\t\t\t\tCyclophosphamide 60 mg/kg/day for 2days (total 120 mg/kg)\n"
  141. + "♣ 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"
  142. + " Methotrexate 5 mg/m ive D+1, +3, +6, +11\n"
  143. + "♣ VOD prophylaxis with PGE1\n"
  144. + "♣ LGT 350㎍ SC daily from D+7 to WBC>3,000/㎣";
  145. if(rsltFlag == "ast")
  146. {
  147. ds_main_info_bmt.setColumn(0, "remark2", remark2);
  148. ds_main_info_bmt.setColumn(0, "ent", "NS");
  149. ds_main_info_bmt.setColumn(0, "dent", "NS");
  150. ds_main_info_bmt.setColumn(0, "echo", "EF=%");
  151. ds_main_info_bmt.setColumn(0, "pft", "DLCO(%) FEV1(%) FEV1/FEV(%)");
  152. ds_main_info_bmt.setColumn(0, "doppler", "NS");
  153. var trnptdd = ds_main_info_bmt.getColumn(0, "trnptdd");
  154. ds_main_info_manage.clearData();
  155. for(var i = 0; i < 16; i++)
  156. {
  157. var row = ds_main_info_manage.addRow();
  158. dsf_makeValue(ds_main_info_manage, "pid", "string", PID, row);
  159. dsf_makeValue(ds_main_info_manage, "trnptdg", "string", trnptDG, row);
  160. dsf_makeValue(ds_main_info_manage, "instcd", "string", instCD, row);
  161. dsf_makeValue(ds_main_info_manage, "management", "string", "", row);
  162. if( i < 12)
  163. {
  164. dsf_makeValue(ds_main_info_manage, "daydiff", "string", i-10, row);
  165. dsf_makeValue(ds_main_info_manage, "trnptdd", "string", getDateAddc(trnptdd, i-10), row);
  166. dsf_makeValue(ds_main_info_manage, "dw", "string", getDateAddc(trnptdd, i-10).toDate().getDayOfWeek("K"), row);
  167. if(i == 3)
  168. {
  169. dsf_makeValue(ds_main_info_manage, "management", "string", "Gut decontamination with W-CF &Prophylaxis of fungal infection with ITZS", row);
  170. }
  171. if(i == 10)
  172. {
  173. dsf_makeValue(ds_main_info_manage, "daydiff", "string", "D0", row);
  174. }
  175. }
  176. }
  177. ds_main_info_manage.setColumn(12, "daydiff", 3);
  178. ds_main_info_manage.setColumn(12, "trnptdd", getDateAddc(trnptdd, 3));
  179. ds_main_info_manage.setColumn(12, "dw", getDateAddc(trnptdd, 3).toDate().getDayOfWeek("K"));
  180. ds_main_info_manage.setColumn(13, "daydiff", 6);
  181. ds_main_info_manage.setColumn(13, "trnptdd", getDateAddc(trnptdd, 6));
  182. ds_main_info_manage.setColumn(13, "dw", getDateAddc(trnptdd, 6).toDate().getDayOfWeek("K"));
  183. ds_main_info_manage.setColumn(14, "daydiff", 7);
  184. ds_main_info_manage.setColumn(14, "trnptdd", getDateAddc(trnptdd, 7));
  185. ds_main_info_manage.setColumn(14, "dw", getDateAddc(trnptdd, 7).toDate().getDayOfWeek("K"));
  186. ds_main_info_manage.setColumn(15, "daydiff", 11);
  187. ds_main_info_manage.setColumn(15, "trnptdd", getDateAddc(trnptdd, 11));
  188. ds_main_info_manage.setColumn(15, "dw", getDateAddc(trnptdd, 11).toDate().getDayOfWeek("K"));
  189. fCalcDnorBsa();
  190. fCalcPatBsa();
  191. fCalcDnor2Bsa();
  192. }
  193. else if(rsltFlag != "ast")
  194. {
  195. }
  196. dsf_makeValue(ds_main_info_bmt, "d0", "string", ds_main_info_manage.lookup("daydiff", "D0", "trnptdd"), 0);
  197. }
  198. function getDateAddc(inputday,addend)
  199. {
  200. var backDate ="";
  201. var rt = 0;
  202. var yyyy = inputday.substr(0,4) +"";
  203. var mm = inputday.substr(4,2) +"";
  204. var dd = inputday.substr(6,2) +"";
  205. var startDate = new Date(yyyy,(eval(mm)-1),dd);
  206. startDate.setTime(startDate.getTime()+(86400000*addend));
  207. NowYear = startDate.getYear();// 년
  208. NowMonth = startDate.getMonth()+1;// 월
  209. NowDay = startDate.getDate(); // 일
  210. backDate += NowYear ; //년도
  211. if (NowMonth < 10 )
  212. {
  213. backDate += "0" + NowMonth ;
  214. }
  215. else
  216. {
  217. backDate += (startDate.getMonth() + 1);
  218. }
  219. if (NowDay < 10 )
  220. {
  221. backDate += "0" + NowDay ;
  222. }
  223. else
  224. {
  225. backDate += (startDate.getDate());
  226. }
  227. return backDate ;
  228. }
  229. function fCalcDnorBsa()
  230. {
  231. var ht = ds_main_info_bmt.getColumn(0, "dnorbdht");
  232. var wt = ds_main_info_bmt.getColumn(0, "dnorbdwt");
  233. var sex = ds_main_info_bmt.getColumn(0, "dnorsa").substr(0,1);
  234. if(ht != ht || wt != wt)
  235. {
  236. }
  237. else if((!isNaN(ht) || !isNaN(wt)) && (!utlf_isNull(ht)|| !utlf_isNull(wt)))
  238. {
  239. if(sex == "M")
  240. {
  241. ds_main_info_bmt.setColumn(0, "dnoribw", parseFloat(ht*ht*22/10000).toFixed(2));
  242. }
  243. if(sex == "F")
  244. {
  245. ds_main_info_bmt.setColumn(0, "dnoribw", parseFloat(ht*ht*21/10000).toFixed(2));
  246. }
  247. ds_main_info_bmt.setColumn(0, "dnorbsa", parseFloat(Math.sqrt((ht*wt/3600))).toFixed(2));
  248. var dibw = ds_main_info_bmt.getColumn(0, "dnoribw");
  249. ds_main_info_bmt.setColumn(0, "dnorabw", parseFloat(parseFloat(dibw)+0.4*(parseFloat(wt)-parseFloat(dibw))).toFixed(2));
  250. }
  251. }
  252. function fCalcPatBsa()
  253. {
  254. var ht = ds_main_info_bmt.getColumn(0, "patbdht");
  255. var wt = ds_main_info_bmt.getColumn(0, "patbdwt");
  256. var sex = ds_main_info_bmt.getColumn(0, "patsa").substr(0,1);
  257. if(ht != ht || wt != wt)
  258. {
  259. }
  260. else if((!isNaN(ht) || !isNaN(wt)) && (!utlf_isNull(ht)||!utlf_isNull(wt)))
  261. {
  262. if(sex == "M")
  263. {
  264. ds_main_info_bmt.setColumn(0, "patibw", parseFloat(ht*ht*22/10000).toFixed(2));
  265. }
  266. if(sex == "F")
  267. {
  268. ds_main_info_bmt.setColumn(0, "patibw", parseFloat(ht*ht*21/10000).toFixed(2));
  269. }
  270. ds_main_info_bmt.setColumn(0, "patbsa", parseFloat(Math.sqrt((ht*wt/3600))).toFixed(2));
  271. var pibw = ds_main_info_bmt.getColumn(0, "patibw");
  272. ds_main_info_bmt.setColumn(0, "patibw", parseFloat(parseFloat(pibw)+0.4*(parseFloat(wt)-parseFloat(pibw))).toFixed(2));
  273. }
  274. }
  275. function fCalcDnor2Bsa()
  276. {
  277. var ht = ds_main_info_bmt.getColumn(0, "dnorbdht2");
  278. var wt = ds_main_info_bmt.getColumn(0, "dnorbdwt2");
  279. var sex = String(ds_main_info_bmt.getColumn(0, "dnorsa2")).substr(0,1);
  280. if(ht != ht || wt != wt)
  281. {
  282. }
  283. else if((!isNaN(ht) || !isNaN(wt)) && (!utlf_isNull(ht)||!utlf_isNull(wt)))
  284. {
  285. if(sex == "M")
  286. {
  287. ds_main_info_bmt.setColumn(0, "dnoribw2", parseFloat(ht*ht*22/10000).toFixed(2));
  288. }
  289. if(sex == "F")
  290. {
  291. ds_main_info_bmt.setColumn(0, "dnoribw2", parseFloat(ht*ht*21/10000).toFixed(2));
  292. }
  293. ds_main_info_bmt.setColumn(0, "dnorbsa2", parseFloat(Math.sqrt((ht*wt/3600))).toFixed(2));
  294. var d2ibw = ds_main_info_bmt.getColumn(0, "dnoribw2");
  295. ds_main_info_bmt.setColumn(0, "dnoribw2", parseFloat(parseFloat(d2ibw)+0.4*(parseFloat(wt)-parseFloat(d2ibw))).toFixed(2));
  296. }
  297. }
  298. function fSetDate()
  299. {
  300. var trnDD = ds_main_info_bmt.getColumn(0, "d0");
  301. for(var i = 0; i < ds_main_info_manage.rowcount; i++)
  302. {
  303. var dayFlag = ds_main_info_manage.getColumn(i, "daydiff");
  304. if( dayFlag != "D0")
  305. {
  306. ds_main_info_manage.setColumn(i, "trnptdd", getDateAddc(trnDD, dayFlag));
  307. ds_main_info_manage.setColumn(i, "dw", getDateAddc(trnDD, dayFlag).toDate().getDayOfWeek("K"));
  308. }
  309. else
  310. {
  311. ds_main_info_manage.setColumn(i, "trnptdd", trnDD);
  312. ds_main_info_manage.setColumn(i, "dw", trnDD.toDate().getDayOfWeek("K"));
  313. }
  314. }
  315. }
  316. function fUprowAdd()
  317. {
  318. var daydiff = ds_main_info_manage.getColumn(ds_main_info_manage.rowposition, "daydiff");
  319. var belowDay = ds_main_info_manage.getColumn(ds_main_info_manage.rowposition-1, "daydiff");
  320. var trnptdate = ds_main_info_manage.getColumn(ds_main_info_manage.rowposition, "trnptdd");
  321. daydiff = parseInt(daydiff) - 1;
  322. if(daydiff == belowDay)
  323. {
  324. sysf_messageBox("중복된 일자는 입력", "E001");
  325. return;
  326. }
  327. else if(utlf_isNull(trnptdate))
  328. {
  329. sysf_messageBox("이식일자 항목이 비어있어 추가", "E001");
  330. return;
  331. }
  332. else
  333. {
  334. var cur_row = ds_main_info_manage.insertRow(ds_main_info_manage.rowposition);
  335. dsf_makeValue(ds_main_info_manage, "daydiff", "string", daydiff, cur_row);
  336. dsf_makeValue(ds_main_info_manage, "trnptdd", "string", getDateAddc(trnptdate, -1), cur_row);
  337. dsf_makeValue(ds_main_info_manage, "dw", "string", getDateAddc(trnptdate, -1).toDate().getDayOfWeek("K"), cur_row);
  338. dsf_makeValue(ds_main_info_manage, "pid", "string", ds_main_info_bmt.getColumn(0, "pid"), cur_row);
  339. dsf_makeValue(ds_main_info_manage, "trnptdg", "string", ds_main_info_bmt.getColumn(0, "trnptdg"), cur_row);
  340. dsf_makeValue(ds_main_info_manage, "instcd", "string", ds_main_info_bmt.getColumn(0, "instcd"), cur_row);
  341. }
  342. }
  343. function fDownrowAdd()
  344. {
  345. var daydiff = ds_main_info_manage.getColumn(ds_main_info_manage.rowposition, "daydiff");
  346. var belowDay = ds_main_info_manage.getColumn(ds_main_info_manage.rowposition+1, "daydiff");
  347. var trnptdate = ds_main_info_manage.getColumn(ds_main_info_manage.rowposition, "trnptdd");
  348. daydiff = parseInt(daydiff) + 1;
  349. if(daydiff == belowDay)
  350. {
  351. sysf_messageBox("중복된 일자는 입력", "E001");
  352. return;
  353. }
  354. else if(utlf_isNull(trnptdate))
  355. {
  356. sysf_messageBox("이식일자 항목이 비어있어 추가", "E001");
  357. return;
  358. }
  359. else
  360. {
  361. var cur_row = ds_main_info_manage.insertRow(ds_main_info_manage.rowposition+1);
  362. dsf_makeValue(ds_main_info_manage, "daydiff", "string", daydiff, cur_row);
  363. dsf_makeValue(ds_main_info_manage, "trnptdd", "string", getDateAddc(trnptdate, 1), cur_row);
  364. dsf_makeValue(ds_main_info_manage, "dw", "string", getDateAddc(trnptdate, 1).toDate().getDayOfWeek("K"), cur_row);
  365. dsf_makeValue(ds_main_info_manage, "pid", "string", ds_main_info_bmt.getColumn(0, "pid"), cur_row);
  366. dsf_makeValue(ds_main_info_manage, "trnptdg", "string", ds_main_info_bmt.getColumn(0, "trnptdg"), cur_row);
  367. dsf_makeValue(ds_main_info_manage, "instcd", "string", ds_main_info_bmt.getColumn(0, "instcd"), cur_row);
  368. }
  369. }
  370. function fDelMngtlist()
  371. {
  372. var dDay = ds_main_info_manage.getColumn(ds_main_info_manage.rowposition, "daydiff");
  373. if(dDay == "0")
  374. {
  375. sysf_messageBox("이식일 당일은 삭제", "E001");
  376. return;
  377. }
  378. else
  379. {
  380. ds_main_info_manage.deleteRow(ds_main_info_manage.rowposition);
  381. }
  382. }
  383. function fSaveBMT()
  384. {
  385. for(var i = 0; i < ds_main_info_manage.rowcount; i++)
  386. {
  387. var rowstat = ds_main_info_manage.getRowType(i);
  388. if(rowstat == 8)
  389. {
  390. ds_main_info_manage.setColumn(i, "delyn", "Y");
  391. }
  392. else
  393. {
  394. ds_main_info_manage.updatecontrol = false;
  395. ds_main_info_manage.setRowType(i, "i");
  396. ds_main_info_manage.updatecontrol = true;
  397. }
  398. }
  399. var oParam = {};
  400. oParam.id = "TXMMR02101";
  401. oParam.service = "medirecapp.PrgmMediRec";
  402. oParam.method = "reqExeBmtSche";
  403. oParam.inds = "req=ds_main_info_bmt reqSub=ds_main_info_manage:U reqDel=ds_temp_delete";
  404. oParam.outds = "ds_=newrcipnt ds_main_info_manage=mngtlist";
  405. oParam.typeStr = "m";
  406. oParam.async = false;
  407. oParam.callback = "cf_TXMMR02101";
  408. tranf_submit(oParam);
  409. }
  410. ]]></Script>