Result
Please enter all values to calculate the infusion rate.
function calculateInfusionRate() {
var medicationDose = parseFloat(document.getElementById("medicationDose").value);
var medicationVolume = parseFloat(document.getElementById("medicationVolume").value);
var infusionTimeHours = parseFloat(document.getElementById("infusionTimeHours").value);
var infusionTimeMinutes = parseFloat(document.getElementById("infusionTimeMinutes").value);
var resultDiv = document.getElementById("result");
resultDiv.innerHTML = ""; // Clear previous results
if (isNaN(medicationDose) || isNaN(medicationVolume) || isNaN(infusionTimeHours) || isNaN(infusionTimeMinutes)) {
resultDiv.innerHTML = "Please enter valid numbers for all fields.";
return;
}
if (medicationDose <= 0 || medicationVolume <= 0 || (infusionTimeHours <= 0 && infusionTimeMinutes <= 0)) {
resultDiv.innerHTML = "Please enter positive values for dose, volume, and infusion time.";
return;
}
var totalInfusionMinutes = (infusionTimeHours * 60) + infusionTimeMinutes;
if (totalInfusionMinutes 0) {
rate_mg_per_hour = medicationDose / (totalInfusionMinutes / 60);
} else if (infusionTimeHours > 0) {
// Use the combined time for mg/hour calculation for consistency
rate_mg_per_hour = medicationDose / ((infusionTimeHours * 60 + infusionTimeMinutes) / 60);
}
// Standard practice is often mL/hr. Let's prioritize that, but show mg/hr too.
resultDiv.innerHTML = `
Infusion Rate: ${rate_mL_per_hour.toFixed(2)} mL/hour
Drug Concentration: ${(medicationDose / medicationVolume).toFixed(2)} mg/mL
Total Drug Amount: ${medicationDose} mg
Total Infusion Duration: ${infusionTimeHours} hours and ${infusionTimeMinutes} minutes (${totalInfusionMinutes} minutes)
`;
}
.calculator-container {
font-family: sans-serif;
border: 1px solid #ccc;
border-radius: 8px;
padding: 20px;
max-width: 600px;
margin: 20px auto;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.calculator-form h2 {
text-align: center;
color: #333;
margin-bottom: 15px;
}
.calculator-form p {
text-align: center;
color: #555;
margin-bottom: 25px;
font-size: 0.95em;
}
.form-group {
margin-bottom: 15px;
display: flex;
flex-direction: column;
}
.form-group label {
margin-bottom: 5px;
font-weight: bold;
color: #444;
}
.form-group input[type="number"] {
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 1em;
width: calc(100% – 22px); /* Adjust for padding and border */
}
.form-group input[type="number"]:focus {
outline: none;
border-color: #007bff;
box-shadow: 0 0 0 3px rgba(0,123,255,.25);
}
.calculator-form button {
display: block;
width: 100%;
padding: 12px 15px;
background-color: #007bff;
color: white;
border: none;
border-radius: 4px;
font-size: 1.1em;
cursor: pointer;
transition: background-color 0.2s ease;
}
.calculator-form button:hover {
background-color: #0056b3;
}
.calculator-result {
margin-top: 30px;
padding: 15px;
background-color: #f8f9fa;
border: 1px solid #e0e0e0;
border-radius: 4px;
}
.calculator-result h3 {
margin-top: 0;
color: #333;
border-bottom: 1px solid #eee;
padding-bottom: 10px;
margin-bottom: 10px;
}
#result p {
margin: 5px 0;
color: #555;
font-size: 1em;
text-align: left; /* Align result text left */
}
#result p strong {
color: #333;
}