/* - ¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì MDCS ( SMMMD03600_MDCS.xrw - JScript ) - ¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì¢Ì */ /** * @desc : SMMMD03600_MDCS.xrw Calculator ¹öư Ŭ¸¯½Ã iviewer ÆäÀÌÁö °áÁ¤ * @ * @param : * @return : * @author : Á¤¿¬¿ì */ function fCalcBtnClick(){ var trgObj = document.controls(event.target); if( trgObj.elementName == "xforms:button" ) { var buttonObj = trgObj; var buttonID = buttonObj.attribute("id"); if (buttonID == "button1") { iviewer1.src = "SMMMD03700_Ç÷Áß³óµµ.xrw"; } else if (buttonID == "button2") { iviewer1.src = "SMMMD04000_¿ë·®º¯°æ.xrw"; } else if (buttonID == "button3") { iviewer1.src = "SMMMD04200_û¼ÒÀ².xrw"; } else if (buttonID == "button6") { iviewer1.src = "SMMMD03800_Åõ¿©·®.xrw"; } else if (buttonID == "button7") { alert("Â÷ÈÄ È­¸éÃß°¡ ¿¹Á¤ÀÔ´Ï´Ù."); } else if (buttonID == "button8") { iviewer1.src = "SMMMD04300_IBW.xrw"; } else if (buttonID == "button9") { iviewer1.src = "SMMMD04100_Capacity.xrw"; //iviewer1.src = "SMMMD04100_À¯Áö¿ë·®.xrw"; } else if (buttonID == "button10") { //alert("±¸ÇöÁß"); } else if (buttonID == "button11") { iviewer1.src = "SMMMD03900_Åõ¿©°£°Ý.xrw"; } else if (buttonID == "button13") { iviewer1.src = "SMMMD04400_BMI.xrw"; } else if (buttonID == "button16") { iviewer1.src = "SMMMD04500_Fluid volume.xrw"; } else if (buttonID == "button17") { alert("Â÷ÈÄ È­¸éÃß°¡ ¿¹Á¤ÀÔ´Ï´Ù."); } else if (buttonID == "button5") { alert("Â÷ÈÄ È­¸éÃß°¡ ¿¹Á¤ÀÔ´Ï´Ù."); } else if (buttonID == "button15") { alert("Â÷ÈÄ È­¸éÃß°¡ ¿¹Á¤ÀÔ´Ï´Ù."); } else if (buttonID == "button20") { alert("Â÷ÈÄ È­¸éÃß°¡ ¿¹Á¤ÀÔ´Ï´Ù."); } else if (buttonID == "button4") { alert("Â÷ÈÄ È­¸éÃß°¡ ¿¹Á¤ÀÔ´Ï´Ù."); } else { alert("±¸ÇöÁß"); } } } // ¿£ÅÍ ÀԷ½à Æ÷Ä¿½º À̵¿ function fMoveFocus(vCtrlID){ if( event.keyCode == 13 ) { if( vCtrlID != "" ) model.setFocus(vCtrlID); } } // ¼Ò¼öÁ¡ ÀÚ¸®¼ö ÀÚ¸£±â function getCutNumber(num, place) { return Math.floor( num * Math.pow(10,parseInt(place,10)) ) / Math.pow(10,parseInt(place,10)); } /** * @desc : SMMMD03700_Ç÷Áß³óµµ.xrw ÅǺ° UI(Caption, input)°áÁ¤ * @ * @param : * @return : * @author : Á¤¿¬¿ì */ function fSetBolusUI(btnStr){ if(btnStr == "ivbolus"){ caption1.visible = true; caption2.visible = true; caption3.visible = false; caption4.visible = true; caption5.visible = true; caption6.visible = false; caption7.visible = true; caption8.visible = false; caption9.visible = true; caption11.visible = true; caption12.visible = true; caption14.visible = false; caption15.visible = false; caption16.visible = false; input1.visible = true; input2.visible = true; input3.visible = false; input4.visible = true; input5.visible = true; input6.visible = false; input7.visible = true; input8.visible = false; input9.visible = true; input10.visible = true; input11.visible = true; input13.visible = false; input14.visible = false; } else if(btnStr == "infusioninter"){ caption1.visible = false; caption2.visible = true; caption3.visible = false; caption4.visible = true; caption5.visible = true; caption6.visible = false; caption7.visible = true; caption8.visible = true; caption9.visible = true; caption11.visible = true; caption12.visible = true; caption14.visible = false; caption15.visible = false; caption16.visible = true; input1.visible = true; input2.visible = true; input3.visible = false; input4.visible = true; input5.visible = true; input6.visible = false; input7.visible = true; input8.visible = true; input9.visible = true; input10.visible = true; input11.visible = true; input13.visible = false; input14.visible = false; } else if(btnStr == "infusioncont"){ caption1.visible = false; caption2.visible = false; caption3.visible = false; caption4.visible = true; caption5.visible = false; caption6.visible = false; caption7.visible = true; caption8.visible = false; caption9.visible = true; caption11.visible = false; caption12.visible = false; caption14.visible = true; caption15.visible = false; caption16.visible = true; input1.visible = true; input2.visible = false; input3.visible = false; input4.visible = true; input5.visible = false; input6.visible = false; input7.visible = true; input8.visible = false; input9.visible = true; input10.visible = false; input11.visible = false; input13.visible = true; input14.visible = true; } else { caption1.visible = true; caption2.visible = true; caption3.visible = true; caption4.visible = true; caption5.visible = true; caption6.visible = true; caption7.visible = true; caption8.visible = false; caption9.visible = true; caption11.visible = false; caption12.visible = true; caption14.visible = true; caption15.visible = true; caption16.visible = false; input1.visible = true; input2.visible = true; input3.visible = true; input4.visible = true; input5.visible = true; input6.visible = true; input7.visible = true; input8.visible = false; input9.visible = true; input10.visible = true; input11.visible = true; input13.visible = false; input14.visible = false; } } // Ç÷Áß³óµµ - Ç÷Áß³óµµ °è»ê function fCalcBloodBolus(selectedTab) { // °è»ê¿¡ ÇÊ¿äÇÑ Ç׸ñ var admin_val = model.getValue("/root/main/cond/adminval"); // Åõ¿©·® var admin_times = model.getValue("/root/main/cond/admintimes"); // Åõ¿©È½¼ö var use_rate = model.getValue("/root/main/cond/userate"); // »ýüÀÌ¿ë·ü var range_capacity = model.getValue("/root/main/cond/rangecapacity"); // ºÐÆ÷¿ëÀû var admin_interval = model.getValue("/root/main/cond/admininterval"); // Åõ¿©°£°Ý var suction_rate = model.getValue("/root/main/cond/suctionrate"); // Èí¼öÀ² var half_life = model.getValue("/root/main/cond/halflife"); // ¹Ý°¨±â var infusion_time1 = model.getValue("/root/main/cond/infusiontime1"); // Infusion ½Ã°£1 var infusion_time2 = model.getValue("/root/main/cond/infusiontime2"); // Infusion ½Ã°£2 var after_time = model.getValue("/root/main/cond/aftertime"); // Åõ¿©ÈÄ °æ°ú½Ã°£ // Divide By Zero °ü·Ã ó¸® if(admin_val == "0") { messageBox("Åõ¿©·®Àº '0'°ªÀ» ÀÔ·Â", "E001"); model.setFocus("input1"); return; } else if(range_capacity == "0") { messageBox("ºÐÆ÷¿ëÀûÀº '0'°ªÀ» ÀÔ·Â", "E001"); model.setFocus("input4"); return; } else if(half_life == "0") { messageBox("¹Ý°¨±â´Â '0'°ªÀ» ÀÔ·Â", "E001"); model.setFocus("input7"); return; } else if(admin_interval == "0") { messageBox("Åõ¿©°£°ÝÀº '0'°ªÀ» ÀÔ·Â", "E001"); model.setFocus("input5"); return; } // °è»ê¿¡ ÇÊ¿äÇÑ µ¥ÀÌÅÍ À¯¹« °ËÁõ if(admin_val == "" || range_capacity == "" || half_life == "" || after_time == "" ) { // Åõ¿©·®, ºÐÆ÷¿ëÀû, ¹Ý°¨±â, Åõ¿©°æ°ú½Ã°£Àº °øÅë messageBox("¸ðµç ÀԷ¶õÀº ", "I003"); return; } // ÅǺ° °è»ê¿¡ ÇÊ¿äÇÑ µ¥ÀÌÅÍ À¯¹«°ËÁõ ¹× °è»ê var ke = 0.693 / half_life; // ¼Ò½Ç·ü(ke) ke = getCutNumber(ke, 4); var peak; var trough; var ivbolus; var statusbolus; if(selectedTab == "tab_ivbolus") { if(admin_times == "" || admin_interval == "") { messageBox("¸ðµç ÀԷ¶õÀº ", "I003"); return; } // IV bolus °è»ê peak = getBolusPeak(selectedTab, ke, admin_val, range_capacity, admin_interval, infusion_time1, use_rate); trough = getBolusTrough(selectedTab, ke, admin_val, range_capacity, admin_interval, infusion_time1, use_rate, suction_rate); ivbolus = getIvbolus(selectedTab, ke, admin_val, range_capacity, admin_interval, admin_times, after_time, infusion_time1, infusion_time2, use_rate, suction_rate); }else if(selectedTab == "tab_infusioninter") { if(admin_times == "" || admin_interval == "" || infusion_time1 == "") { messageBox("¸ðµç ÀԷ¶õÀº ", "I003"); return; } // IV infusion(inter) °è»ê peak = getBolusPeak(selectedTab, ke, admin_val, range_capacity, admin_interval, infusion_time1, use_rate); trough = getBolusTrough(selectedTab, ke, admin_val, range_capacity, admin_interval, infusion_time1, use_rate, suction_rate); ivbolus = getIvbolus(selectedTab, ke, admin_val, range_capacity, admin_interval, admin_times, after_time, infusion_time1, infusion_time2, use_rate, suction_rate); }else if(selectedTab == "tab_infusioncont") { if(infusion_time2 == "") { messageBox("¸ðµç ÀԷ¶õÀº ", "I003"); return; } // IV infusion(cont) °è»ê statusbolus = getStatusbolus(selectedTab, ke, admin_val, range_capacity); ivbolus = getIvbolus(selectedTab, ke, admin_val, range_capacity, admin_interval, admin_times, after_time, infusion_time1, infusion_time2, use_rate, suction_rate); }else{ if(admin_times == "" || admin_interval == "" || use_rate == "" || suction_rate == "") { messageBox("¸ðµç ÀԷ¶õÀº ", "I003"); return; } // Oral bolus °è»ê peak = getBolusPeak(selectedTab, ke, admin_val, range_capacity, admin_interval, infusion_time1, use_rate); // Average °è»ê trough = getBolusTrough(selectedTab, ke, admin_val, range_capacity, admin_interval, infusion_time1, use_rate, suction_rate); ivbolus = getIvbolus(selectedTab, ke, admin_val, range_capacity, admin_interval, admin_times, after_time, infusion_time1, infusion_time2, use_rate, suction_rate); } // °è»êµÈ °ª ¼ÂÆÃ model.setValue("/root/send/savedata/peak", peak); // Peak °è»ê°ª ¼ÂÆÃ(Oral bolus¿¡¼­´Â Average) model.setValue("/root/send/savedata/trough", trough); // Trough °è»ê°ª ¼ÂÆÃ model.setValue("/root/send/savedata/ivbolus", ivbolus); // ƯÁ¤½Ã°£ °æ°úÈÄ ³óµµ °è»ê°ª ¼ÂÆÃ model.setValue("/root/send/savedata/statusbolus", statusbolus); // Ç×Á¤»óÅ¿¡¼­ÀÇ ³óµµ °è»ê°ª ¼ÂÆÃ model.refresh(); } // Ç÷Áß³óµµ - Peak °è»ê(Oral bolus¿¡¼­´Â Average) function getBolusPeak(selectedTab, ke, adminVal, rangeCapacity, adminInterval, infusionTime1, useRate){ var thisPeak = 0; var temp1 = getCutNumber(Math.exp(-ke * adminInterval), 4); var temp2; // Divide By Zero °ü·Ã ó¸® if(temp1 == 1) { temp2 = 0; } else { temp2 = 1 / (1 - temp1); } if(selectedTab == "tab_ivbolus"){ thisPeak = (adminVal / rangeCapacity) * temp2; }else if(selectedTab == "tab_infusioninter"){ thisPeak = (adminVal / (ke * rangeCapacity)) * (1 - Math.exp(-ke * infusionTime1)) * temp2; }else if(selectedTab == "tab_oralbolus"){ thisPeak = (useRate * adminVal) / (ke * rangeCapacity * adminInterval); //Average } return getCutNumber(thisPeak, 4); } // Ç÷Áß³óµµ - Trough °è»ê function getBolusTrough(selectedTab, ke, adminVal, rangeCapacity, adminInterval, infusionTime1, useRate, suctionRate){ var thisTrough = 0; var temp1; var temp2; var temp3; var temp4; temp1 = getCutNumber(Math.exp(-ke * adminInterval), 4); // Divide By Zero °ü·Ã ó¸® if(temp1 == 1) { temp2 = 0; } else{ temp2 = 1 / (1 - temp1); } temp1 = Math.exp(-ke * infusionTime1); //alert("temp1:"+temp1); if(temp1 == 1) { temp3 = 0; } else{ temp3 = 1 - temp1; } temp1 = Math.exp(-suctionRate * adminInterval); if(temp1 == 1) { temp4 = 0; } else{ temp4 = 1 / (1 - temp1); } if(selectedTab == "tab_ivbolus"){ thisTrough = (adminVal / rangeCapacity) * temp2 * Math.exp(-ke * adminInterval); }else if(selectedTab == "tab_infusioninter"){ thisTrough = (adminVal / (ke * rangeCapacity)) * temp3 * temp2 * Math.exp(-ke * adminInterval); }else if(selectedTab == "tab_oralbolus"){ thisTrough = ((useRate * adminVal) / rangeCapacity) * (suctionRate / (suctionRate - ke)) * (temp2 - temp4); } return getCutNumber(thisTrough, 4); } // Ç÷Áß³óµµ - ½Ã°£°æ°úÈÄ ³óµµ °è»ê function getIvbolus(selectedTab, ke, adminVal, rangeCapacity, adminInterval, adminTimes, afterTime, infusionTime1, infusionTime2, useRate, suctionRate){ var thisIvbolus = 0; var temp1 = getCutNumber(Math.exp(-ke * adminInterval), 4); var temp2; var temp3 = getCutNumber(Math.exp(-suctionRate * adminInterval), 4); var temp4; // Divide By Zero °ü·Ã ó¸® if(temp1 == 1) { temp2 = 0; } else { temp2 = (1 - Math.exp(-ke * adminInterval * adminTimes)) / (1 - temp1); } if(temp3 == 1) { temp4 = 0; } else { temp4 = (1 - Math.exp(-suctionRate * adminInterval * adminTimes)) / (1 - temp3); } if(selectedTab == "tab_ivbolus"){ thisIvbolus = (adminVal / rangeCapacity) * temp2 * Math.exp(-ke * afterTime); }else if(selectedTab == "tab_infusioninter"){ thisIvbolus = (adminVal / (ke * rangeCapacity)) * (1 - Math.exp(-ke * infusionTime1)) * temp2 * Math.exp(-ke * adminInterval); }else if(selectedTab == "tab_infusioncont"){ thisIvbolus = (adminVal / (ke * rangeCapacity)) * (1 - Math.exp(-ke * afterTime)); }else if(selectedTab == "tab_oralbolus"){ thisIvbolus = ((useRate * adminVal) / rangeCapacity) * (suctionRate / (suctionRate - ke)) * ((Math.exp(-ke * afterTime) * temp2) - (Math.exp(-suctionRate * afterTime) * temp4)); } return getCutNumber(thisIvbolus, 4); } // Ç÷Áß³óµµ - Ç×Á¤»óÅ¿¡¼­ÀÇ ³óµµ °è»ê function getStatusbolus(selectedTab, ke, adminVal, rangeCapacity){ var thisStatusbolus = 0; thisStatusbolus = adminVal / (ke * rangeCapacity); return getCutNumber(thisStatusbolus, 4); } /** * @desc : SMMMD03800_Åõ¿©·®.xrw ÅǺ° UI(Caption, input)°áÁ¤ * @ * @param : * @return : * @author : Á¤¿¬¿ì */ function fSetAdminUI(btnStr){ if(btnStr == "ivbolus"){ caption1.visible = true; caption2.visible = true; caption3.visible = false; caption4.visible = true; caption5.visible = true; caption6.visible = false; caption7.visible = false; caption8.visible = true; caption9.visible = true; caption10.visible = true; caption11.visible = true; caption12.visible = false; caption13.visible = true; input1.visible = true; input2.visible = true; input3.visible = false; input4.visible = true; input5.visible = true; input6.visible = false; input7.visible = false; input8.visible = true; input9.visible = true; input10.visible = true; input11.visible = true; input12.visible = true; } else if(btnStr == "infusioninter"){ caption1.visible = true; caption2.visible = true; caption3.visible = false; caption4.visible = true; caption5.visible = true; caption6.visible = false; caption7.visible = true; caption8.visible = true; caption9.visible = true; caption10.visible = true; caption11.visible = true; caption12.visible = false; caption13.visible = true; input1.visible = true; input2.visible = true; input3.visible = false; input4.visible = true; input5.visible = true; input6.visible = false; input7.visible = true; input8.visible = true; input9.visible = true; input10.visible = true; input11.visible = true; input12.visible = true; } else if(btnStr == "infusioncont"){ caption1.visible = true; caption2.visible = false; caption3.visible = false; caption4.visible = true; caption5.visible = false; caption6.visible = false; caption7.visible = true; caption8.visible = true; caption9.visible = true; caption10.visible = true; caption11.visible = true; caption12.visible = false; caption13.visible = true; input1.visible = true; input2.visible = false; input3.visible = false; input4.visible = true; input5.visible = false; input6.visible = false; input7.visible = true; input8.visible = true; input9.visible = true; input10.visible = true; input11.visible = true; input12.visible = true; } else { caption1.visible = true; caption2.visible = true; caption3.visible = true; caption4.visible = true; caption5.visible = true; caption6.visible = true; caption7.visible = false; caption8.visible = true; caption9.visible = true; caption10.visible = false; caption11.visible = true; caption12.visible = true; caption13.visible = true; input1.visible = true; input2.visible = true; input3.visible = true; input4.visible = true; input5.visible = true; input6.visible = true; input7.visible = false; input8.visible = true; input9.visible = true; input10.visible = true; input11.visible = true; input12.visible = true; } } // Åõ¿©·® °è»ê function fCalcAdminVal(selectedTab) { // °è»ê¿¡ ÇÊ¿äÇÑ Ç׸ñ var range_capacity = model.getValue("/root/main/cond/rangecapacity"); // ºÐÆ÷¿ëÀû var admin_times = model.getValue("/root/main/cond/admintimes"); // Åõ¿©È½¼ö var use_rate = model.getValue("/root/main/cond/userate"); // »ýüÀÌ¿ë·ü var half_life = model.getValue("/root/main/cond/halflife"); // ¹Ý°¨±â var admin_interval = model.getValue("/root/main/cond/admininterval"); // Åõ¿©°£°Ý var suction_rate = model.getValue("/root/main/cond/suctionrate"); // Èí¼öÀ² var infusion_time = model.getValue("/root/main/cond/infusiontime"); // Infusion ½Ã°£ //var special_time = model.getValue("/root/main/cond/specialtime"); var after_time = model.getValue("/root/main/cond/specialtime"); // ƯÁ¤½Ã°£ var blood_bolus = model.getValue("/root/main/cond/bloodbolus"); // Ç÷Áß³óµµ var peak_level = model.getValue("/root/main/cond/peaklevel"); // Peak level var tro_level = model.getValue("/root/main/cond/trolevel"); // Trough level // Divide By Zero °ü·Ã ó¸® if(range_capacity == "0") { messageBox("ºÐÆ÷¿ëÀûÀº '0'°ªÀ» ÀÔ·Â", "E001"); model.setFocus("input1"); return; } else if(use_rate == "0") { messageBox("»ýüÀÌ¿ë·üÀº '0'°ªÀ» ÀÔ·Â", "E001"); model.setFocus("input3"); return; } else if(half_life == "0") { messageBox("¹Ý°¨±â´Â '0'°ªÀ» ÀÔ·Â", "E001"); model.setFocus("input4"); return; } else if(suction_rate == "0") { messageBox("Èí¼öÀ²Àº '0'°ªÀ» ÀÔ·Â", "E001"); model.setFocus("input6"); return; } // °è»ê¿¡ ÇÊ¿äÇÑ µ¥ÀÌÅÍ À¯¹« °ËÁõ if(range_capacity == "" || half_life == "" || after_time == "" ) { // Åõ¿©·®, ºÐÆ÷¿ëÀû, ¹Ý°¨±â, Åõ¿©°æ°ú½Ã°£Àº °øÅë messageBox("¸ðµç ÀԷ¶õÀº ", "I003"); return; } // ÅǺ° °è»ê¿¡ ÇÊ¿äÇÑ µ¥ÀÌÅÍ À¯¹«°ËÁõ ¹× °è»ê var ke = 0.693 / half_life; // ¼Ò½Ç·ü(ke) var calc_val_rslt; // Åõ¿©·® °è»ê°á°ú if(selectedTab == "tab_ivbolus") { if(admin_times == "" || admin_interval == "") { messageBox("¸ðµç ÀԷ¶õÀº ", "I003"); return; } calc_val_rslt = getCalcRslt(selectedTab, ke, range_capacity, admin_interval, admin_times, after_time, infusion_time, use_rate, suction_rate, blood_bolus, peak_level, tro_level); }else if(selectedTab == "tab_infusioninter") { calc_val_rslt = getCalcRslt(selectedTab, ke, range_capacity, admin_interval, admin_times, after_time, infusion_time, use_rate, suction_rate, blood_bolus, peak_level, tro_level); }else if(selectedTab == "tab_infusioncont") { calc_val_rslt = getCalcRslt(selectedTab, ke, range_capacity, admin_interval, admin_times, after_time, infusion_time, use_rate, suction_rate, blood_bolus, peak_level, tro_level); }else{ calc_val_rslt = getCalcRslt(selectedTab, ke, range_capacity, admin_interval, admin_times, after_time, infusion_time, use_rate, suction_rate, blood_bolus, peak_level, tro_level); } // °è»êµÈ °ª ¼ÂÆÃ model.setValue("/root/send/savedata/adminresult", calc_val_rslt); model.refresh(); } // Åõ¿©·® - Åõ¿©·® °è»ê°á°ú function getCalcRslt(selectedTab, ke, rangeCapacity, adminInterval, adminTimes, afterTime, infusionTime, useRate, suctionRate, cTarget, cPeak, cTrough){ var thisRslt = 0; var temp1 = getCutNumber(Math.exp(-ke * adminInterval * adminTimes), 4); var temp2; var temp3; var temp4; var temp5; // Divide By Zero °ü·Ã ó¸® if(temp1 == 1) { temp2 = 0; } else { temp2 = (1 - Math.exp(-ke * adminInterval)) / (1 - temp1); } temp1 = Math.exp(-ke * infusionTime); if(temp1 == 1) { temp3 = 0; } else { temp3 = (cTarget * ke * rangeCapacity) / (1 - temp1); } temp1 = Math.exp(-ke * afterTime); if(temp1 == 1) { temp5 = 0; // temp4°¡ '0'À̸é divide by zero¿¡ °É¸² } else { temp4 = 1 / (1 - temp1); temp5 = (cTarget * ke * rangeCapacity) / temp4 } if(selectedTab == "tab_ivbolus"){ thisRslt = ((cTarget * rangeCapacity) / (Math.exp(-ke * afterTime))) * temp2; //nȸ Åõ¿©ÈÄ Æ¯Á¤½Ã°£ ƯÁ¤³óµµ¿¡ µµ´ÞÇϱâ À§ÇÑ Åõ¿©·® //thisRslt = (cPeak * rangeCapacity) * ((1 - Math.exp(-ke * adminInterval)); // Ç×Á¤»óÅ¿¡¼­ Èñ¸Á peak level¿¡ µµ´ÞÇϱâ À§ÇÑ Åõ¿©·® //thisRslt = ((cTrough * rangeCapacity) / Math.exp(-ke * adminInterval)) * ((1 - Math.exp(-ke * adminInterval)); // Ç×Á¤»óÅ¿¡¼­ Èñ¸Á trough level¿¡ µµ´ÞÇϱâ À§ÇÑ Åõ¿©·® }else if(selectedTab == "tab_infusioninter"){ thisRslt = temp3 * temp2 * temp4; //nȸ Åõ¿©ÈÄ Æ¯Á¤½Ã°£ ƯÁ¤³óµµ¿¡ µµ´ÞÇϱâ À§ÇÑ ½Ã°£´ç Åõ¿©·® //thisRslt = ((cPeak * ke * rangeCapacity) * ((1 - Math.exp(-ke * adminInterval)); // Ç×Á¤»óÅ¿¡¼­ Èñ¸Á peak level¿¡ µµ´ÞÇϱâ À§ÇÑ ½Ã°£´ç Åõ¿©·® //thisRslt = ((cTrough * ke * rangeCapacity) * ((1 - Math.exp(-ke * adminInterval)) * (1 / (1 - Math.exp(-ke * afterTime))); // Ç×Á¤»óÅ¿¡¼­ Èñ¸Á trough level¿¡ µµ´ÞÇϱâ À§ÇÑ ½Ã°£´ç Åõ¿©·® }else if(selectedTab == "tab_infusioncont"){ thisRslt = temp5; // ƯÁ¤½Ã°£ ƯÁ¤³óµµ¿¡ µµ´ÞÇϱâ À§ÇÑ ½Ã°£´ç Åõ¿©·® //thisRslt = cPeak * ke * rangeCapacity; // Ç×Á¤»óÅ¿¡¼­ Èñ¸Á ³óµµ¿¡ µµ´ÞÇϱâ À§ÇÑ ½Ã°£´ç Åõ¿©·® }else if(selectedTab == "tab_oralbolus"){ var temp1 = getCutNumber(Math.exp(-ke * afterTime), 4); var temp2 = getCutNumber(Math.exp(-ke * adminInterval * adminTimes), 4); var temp3 = getCutNumber(Math.exp(-ke * adminInterval), 4); var temp4 = getCutNumber(Math.exp(-suctionRate * afterTime), 4); var temp5 = getCutNumber(Math.exp(-suctionRate * adminInterval * adminTimes), 4); var temp6 = getCutNumber(Math.exp(-suctionRate * adminInterval), 4); var temp7; var temp8; var temp9; // Divide By Zero °ü·Ã ó¸® if(temp2 == 1 && temp3 == 1) { temp7 = 0; } else { temp7 = (1 - temp2) / (1 - temp3); } if(temp5 == 1 && temp6 == 1) { temp8 = 0; } else { temp8 = (1 - temp5) / (1 - temp6); } var temp = (temp1 * temp7) - (temp4 * temp8); // Divide By Zero °ü·Ã ó¸® temp = getCutNumber(temp, 4); if(temp == 0){ temp9 = 0; } else { temp9 = temp9 = getCutNumber((1 / temp),4); } thisRslt = getCutNumber(((cTarget * rangeCapacity) / useRate),4) * getCutNumber(((suctionRate - ke) / suctionRate),4) * temp9; //nȸ Åõ¿©ÈÄ Æ¯Á¤½Ã°£ ƯÁ¤³óµµ¿¡ µµ´ÞÇϱâ À§ÇÑ Åõ¿©·® //temp = (1 / (1 - Math.exp(-ke * adminInterval))) - (1 / (1 - Math.exp(-suctionRate * adminInterval))); //temp = getCutNumber(temp, 4); //thisRslt = ((cTrough * rangeCapacity) / useRate) * ((suctionRate - ke) / suctionRate) * (1 / temp); // Ç×Á¤»óÅ¿¡¼­ Èñ¸Á trough level¿¡ µµ´ÞÇϱâ À§ÇÑ Åõ¿©·® //thisRslt = (cPeak * ke * rangeCapacity * adminInterval) / useRate; // Ç×Á¤»óÅ¿¡¼­ Èñ¸Á average level¿¡ µµ´ÞÇϱâ À§ÇÑ Åõ¿©·® } return getCutNumber(thisRslt, 4); } // Åõ¿©°£°Ý °è»ê function fCalcAdminItv() { // °è»ê¿¡ ÇÊ¿äÇÑ Ç׸ñ var peak_level = model.getValue("/root/main/cond/peaklevel"); // Peak level var tro_level = model.getValue("/root/main/cond/trolevel"); // Trough level var half_life = model.getValue("/root/main/cond/halflife"); // ¹Ý°¨±â // Divide By Zero °ü·Ã ó¸® if(peak_level == "0") { messageBox("peak levelÀº '0'°ªÀ» ÀÔ·Â", "E001"); model.setFocus("input1"); return; } else if(tro_level == "0") { messageBox("trough levelÀº '0'°ªÀ» ÀÔ·Â", "E001"); model.setFocus("input2"); return; } else if(half_life == "0") { messageBox("¹Ý°¨±â´Â '0'°ªÀ» ÀÔ·Â", "E001"); model.setFocus("input3"); return; } // °è»ê¿¡ ÇÊ¿äÇÑ µ¥ÀÌÅÍ À¯¹« °ËÁõ if(peak_level == "" || tro_level == "" || half_life == "" ) { // Peak level, Trough level, ¹Ý°¨±â messageBox("¸ðµç ÀԷ¶õÀº ", "I003"); return; } // ÅǺ° °è»ê¿¡ ÇÊ¿äÇÑ µ¥ÀÌÅÍ À¯¹«°ËÁõ ¹× °è»ê var ke = 0.693 / half_life; // ¼Ò½Ç·ü(ke) var calc_itv_rslt; // Åõ¿©°£°Ý °è»ê°á°ú calc_itv_rslt = getCalcItvRslt(ke, peak_level, tro_level); // °è»êµÈ °ª ¼ÂÆÃ model.setValue("/root/send/savedata/intervalresult", calc_itv_rslt); model.refresh(); } // Åõ¿©°£°Ý °è»ê °á°ú function getCalcItvRslt(ke, cPeak, cTrough){ var thisRslt = 0; var temp = cPeak / cTrough; temp = getCutNumber(temp, 4); ke = getCutNumber(ke, 4); thisRslt = Math.log(temp) / ke; // Natural log cf) base 10 log -> log10(double a) return getCutNumber(thisRslt, 4); } // ¿ë·®º¯°æ function fCalcAdmin(){ // °è»ê¿¡ ÇÊ¿äÇÑ Ç׸ñ var base_val = model.getValue("/root/main/cond/baseval"); // ±âÁ¸Åõ¿©·® var calc_concent = model.getValue("/root/main/cond/calcconcentration"); // ÃøÁ¤Ç÷Áß³óµµ var expect_concent = model.getValue("/root/main/cond/expectconcentration"); // Èñ¸ÁÇ÷Áß³óµµ // Divide By Zero °ü·Ã ó¸® if(calc_concent == "0") { messageBox("ÃøÁ¤Ç÷Áß³óµµ´Â '0'°ªÀ» ÀÔ·Â", "E001"); model.setFocus("input2"); return; } // °è»ê¿¡ ÇÊ¿äÇÑ µ¥ÀÌÅÍ À¯¹« °ËÁõ if(base_val == "" || calc_concent == "" || expect_concent == "" ) { // ±âÁ¸Åõ¿©·®, ÃøÁ¤Ç÷Áß³óµµ, Èñ¸ÁÇ÷Áß³óµµ messageBox("¸ðµç ÀԷ¶õÀº ", "I003"); return; } var calc_admin_rslt; calc_value_rslt = getCalcAdmin(base_val, calc_concent, expect_concent); // °è»êµÈ °ª ¼ÂÆÃ model.setValue("/root/send/savedata/valresult", calc_value_rslt); model.refresh(); } // ¿ë·®º¯°æ °è»ê °á°ú function getCalcAdmin(baseVal, calcConcent, expectConcent){ var thisRslt = 0; thisRslt = (expectConcent * baseVal) / calcConcent return getCutNumber(thisRslt, 4); } // À¯Áö¿ë·® °è»ê function fCalcMaintenance() { // °è»ê¿¡ ÇÊ¿äÇÑ Ç׸ñ var loading_dose = model.getValue("/root/main/cond/loadingdose"); // Loading dose var half_life = model.getValue("/root/main/cond/halflife"); // ¹Ý°¨±â var admin_interval = model.getValue("/root/main/cond/admininterval"); // À¯Áö¿ë·® Åõ¿©°£°Ý // Divide By Zero °ü·Ã ó¸® if(half_life == "0") { messageBox("¹Ý°¨±â´Â '0'°ªÀ» ÀÔ·Â", "E001"); model.setFocus("input2"); return; } // °è»ê¿¡ ÇÊ¿äÇÑ µ¥ÀÌÅÍ À¯¹« °ËÁõ if(loading_dose == "" || half_life == "" || admin_interval == "" ) { // Loading dose, ¹Ý°¨±â, À¯Áö¿ë·® Åõ¿©°£°Ý messageBox("¸ðµç ÀԷ¶õÀº ", "I003"); return; } var ke = 0.693 / half_life; // ¼Ò½Ç·ü(ke) ke = getCutNumber(ke, 4); var calc_itv_rslt; // À¯Áö¿ë·® Åõ¿©°£°Ý calc_value_rslt = getCalcValRslt(ke, loading_dose, admin_interval); // °è»êµÈ °ª ¼ÂÆÃ model.setValue("/root/send/savedata/valresult", calc_value_rslt); model.refresh(); } // À¯Áö¿ë·® °è»ê °á°ú function getCalcValRslt(ke, loadingDose, adminInterval){ var thisRslt = 0; thisRslt = loadingDose * (1 - Math.exp(-ke * adminInterval)); return getCutNumber(thisRslt, 4); } // û¼ÒÀ² °è»ê function fCalcCleanRate() { // °è»ê¿¡ ÇÊ¿äÇÑ Ç׸ñ var weight = model.getValue("/root/main/cond/weight"); // üÁß var height = model.getValue("/root/main/cond/height"); // Ű var scr = model.getValue("/root/main/cond/scr"); // scr var sex = model.getValue("/root/main/cond/sex"); // ¼ºº° var age = model.getValue("/root/main/cond/patage"); // ³ªÀÌ if(age == 0) { messageBox("ȯÀÚÁ¤º¸°¡ ¾ø¾î °è»ê","E001"); return; } // Divide By Zero °ü·Ã ó¸® if(weight == "0") { messageBox("¸ö´©°Ô´Â '0'°ªÀ» ÀÔ·Â", "E001"); model.setFocus("input2"); return; } else if(height == "0") { messageBox("Ű´Â '0'°ªÀ» ÀÔ·Â", "E001"); model.setFocus("input2"); return; } else if(scr == "0") { messageBox("ScrÀº '0'°ªÀ» ÀÔ·Â", "E001"); model.setFocus("input2"); return; } // °è»ê¿¡ ÇÊ¿äÇÑ µ¥ÀÌÅÍ À¯¹« °ËÁõ if(weight == "" || height == "" || scr == "" || sex == "") { // üÁß, Ű, scr, ¼ºº° messageBox("¸ðµç ÀԷ¶õÀº ", "I003"); return; } var adult_cl; var adult_gfr; var child_cl; var child_gfr; adult_cl = getAdultCl(weight, height, scr, sex, age); adult_gfr = getAdultGfr(weight, height, scr, sex, age); child_cl = getChildCl(weight, height, scr, sex, age); child_gfr = getChildGfr(weight, height, scr, sex, age); // °è»êµÈ °ª ¼ÂÆÃ model.setValue("/root/send/savedata/adulcl", adult_cl); model.setValue("/root/send/savedata/adulgfr", adult_gfr); model.setValue("/root/send/savedata/childcl", child_cl); model.setValue("/root/send/savedata/childgfr", child_gfr); model.refresh(); } // û¼ÒÀ² - Adult Cl function getAdultCl(weight, height, scr, sex, age){ var thisRslt = 0; if(sex == "M"){ // ³²ÀÚ thisRslt = ((140 - age) * weight) / (72 * scr); } else { // ¿©ÀÚ thisRslt = ((140 - age) * weight) / (72 * scr) * 0.85; } return getCutNumber(thisRslt, 4); } // û¼ÒÀ² - Adult GFR function getAdultGfr(weight, height, scr, sex, age){ var thisRslt = 0; if(sex == "M"){ // ³²ÀÚ thisRslt = 186 / ((Math.pow(scr, 1.154) * Math.pow(age, 0.203))); } else { // ¿©ÀÚ thisRslt = (186 * 0.742) / ((Math.pow(scr, 1.154) * Math.pow(age, 0.203))); } return getCutNumber(thisRslt, 4); } // û¼ÒÀ² - Child Cl function getChildCl(height, scr){ var thisRslt = 0; thisRslt = (0.55 * height) / scr; return getCutNumber(thisRslt, 4); } // û¼ÒÀ² - Child GFR function getChildGfr(weight, height, scr, sex, age){ var thisRslt = 0; thisRslt = (0.43 * height) / scr; return getCutNumber(thisRslt, 4); } // IBW °è»ê function fCalcIBW() { // °è»ê¿¡ ÇÊ¿äÇÑ Ç׸ñ var weight = model.getValue("/root/main/cond/weight"); // üÁß var height = model.getValue("/root/main/cond/height"); // Ű var sex = model.getValue("/root/main/cond/sex"); // ¼ºº° var age = model.getValue("/root/main/cond/patage"); // ³ªÀÌ // Divide By Zero °ü·Ã ó¸® // °è»ê¿¡ ÇÊ¿äÇÑ µ¥ÀÌÅÍ À¯¹« °ËÁõ if(weight == "" || height == "" || sex == "") { // üÁß, Ű, ¼ºº° messageBox("¸ðµç ÀԷ¶õÀº ", "I003"); return; } var devine; var robinson; var miller; var lemmens; devine = getCalcIBW(weight, height, sex, 50, 2.3, 45.5, 2.3); // Devine equation robinson = getCalcIBW(weight, height, sex, 52, 1.9, 49, 1.7); // Robinson equation miller = getCalcIBW(weight, height, sex, 56.2, 1.41, 53.1, 1.36); // Miller equation lemmens = getLemmens(weight, height); // Lemmens equation // °è»êµÈ °ª ¼ÂÆÃ model.setValue("/root/send/savedata/adulcl", devine); model.setValue("/root/send/savedata/adulgfr", robinson); model.setValue("/root/send/savedata/childcl", miller); model.setValue("/root/send/savedata/childgfr", lemmens); model.refresh(); } // IBW - Devine equation, Robinson equation, Miller equation function getCalcIBW(weight, height, sex, var1, var2, var3, var4){ var thisRslt = 0; var temp = 0; if(height > 152.4){ temp = (height - 152.4) / 2.54; temp = getCutNumber(temp, 4); } if(sex == "M"){ // ³²ÀÚ thisRslt = var1 + (var2 * temp); } else { // ¿©ÀÚ thisRslt = var3 + (var4 * temp); } return getCutNumber(thisRslt, 4); } // IBW - Lemmens function getLemmens(weight, height){ var thisRslt = 0; thisRslt = 22 * Math.pow(height, 2) return getCutNumber(thisRslt, 4); } // BMI °è»ê function fCalcBMI() { // °è»ê¿¡ ÇÊ¿äÇÑ Ç׸ñ var weight = model.getValue("/root/main/cond/weight"); // üÁß var height = model.getValue("/root/main/cond/height"); // Ű // Divide By Zero °ü·Ã ó¸® if(height == "0") { messageBox("Ű´Â '0'°ªÀ» ÀÔ·Â", "E001"); model.setFocus("input5"); return; } // °è»ê¿¡ ÇÊ¿äÇÑ µ¥ÀÌÅÍ À¯¹« °ËÁõ if(weight == "" || height == "") { // üÁß, Ű messageBox("¸ðµç ÀԷ¶õÀº ", "I003"); return; } var cal_bmi; bmi_result = getCalcBMI(weight, height); // °è»êµÈ °ª ¼ÂÆÃ model.setValue("/root/send/savedata/bmiresult", bmi_result); model.refresh(); } // BMI °è»ê°á°ú function getCalcBMI(weight, height){ var thisRslt = 0; thisRslt = weight / Math.pow(height, 2) return getCutNumber(thisRslt, 4); } // Fluid volume °è»ê function fCalcFluidVol(selectedTab) { /* // °è»ê¿¡ ÇÊ¿äÇÑ Ç׸ñ var weight = model.getValue("/root/main/cond/weight"); // üÁß var surface = model.getValue("/root/main/cond/surface"); // üǥ¸éÀû var kcal = model.getValue("/root/main/cond/kcal"); // Ä®·Î¸® // Divide By Zero °ü·Ã ó¸® // °è»ê¿¡ ÇÊ¿äÇÑ µ¥ÀÌÅÍ À¯¹« °ËÁõ //if(weight == "" || surface == "" || kcal == "" ) { // üÁß, üǥ¸éÀû, Ä®·Î¸® // messageBox("¸ðµç ÀԷ¶õÀº ", "I003"); return; //} var calc_day_water; // 1ÀϼöºÐÀ¯Áö·® var calc_na; // Na var calc_k; // k var calc_glucose; // glucose // if(admin_times == "" || admin_interval == "") { // messageBox("¸ðµç ÀԷ¶õÀº ", "I003"); return; // } calc_day_water = getCalcWater(selectedTab, weight, surface, kcal); // °è»êµÈ °ª ¼ÂÆÃ model.setValue("/root/send/savedata/daywater", calc_day_water); model.refresh(); */ alert("ÇØ´ç °è»ê½Ä Á¡°ËÁßÀÔ´Ï´Ù."); } // BMI °è»ê°á°ú function getCalcWater(selectedTab, weight, surface, kca){ var thisRslt = 0; //thisRslt = weight / Math.pow(height, 2) return getCutNumber(thisRslt, 4); }