All in one Medical Calculator
- BMI (Body Mass Index)
- BSA (Body Surface Area) – Mosteller Formula
- Ideal Body Weight (IBW) – Devine Formula
- Adjusted Body Weight (ABW) for Obese Patients
- Creatinine Clearance (CrCl) – Cockcroft-Gault Equation
- Mean Arterial Pressure (MAP)
- Anion Gap (AG) for Metabolic Acidosis
- Corrected Sodium in Hyperglycemia
- Corrected Calcium (For Albumin)
- Fractional Excretion of Sodium (FeNa)
- A-a Gradient (Alveolar-arterial Oxygen Gradient)
- Glasgow Coma Scale (GCS)
- Parkland Formula for Burns Fluid Resuscitation
- Rule of Nines for Burn Estimation
- Pediatric Fluid Maintenance (Holliday-Segar Method)
- APGAR Score for Newborn Assessment
- Corrected QT Interval (QTc) – Bazett’s Formula
- WINTERS Formula (Expected PCOâ‚‚ in Metabolic Acidosis)
- Oxygen Flow Rate Calculation for Nasal Cannula
- ETT (Endotracheal Tube) Size for Pediatrics
Medical Calculators
body { font-family: sans-serif; }
.calculator { border: 1px solid #ccc; padding: 10px; margin-bottom: 10px; }
.result { margin-top: 10px; font-weight: bold; }
Medical Calculators
1. BMI (Body Mass Index)
Weight (kg):
Height (m):
2. BSA (Body Surface Area) – Mosteller Formula
Height (cm):
Weight (kg):
3. Ideal Body Weight (IBW) – Devine Formula
Height (inches):
Gender:
Male
Female
4. Adjusted Body Weight (ABW) for Obese Patients
Actual Weight (kg):
IBW (kg):
5. Creatinine Clearance (CrCl) – Cockcroft-Gault Equation
Age:
Weight (kg):
Serum Creatinine (mg/dL):
Gender:
Male
Female
6. Mean Arterial Pressure (MAP)
SBP:
DBP:
7. Anion Gap (AG) for Metabolic Acidosis
Na:
Cl:
HCO3:
8. Corrected Sodium in Hyperglycemia
Measured Na:
Glucose:
9. Corrected Calcium (For Albumin)
Measured Ca:
Albumin:
10. Fractional Excretion of Sodium (FeNa)
Urine Na:
Serum Cr:
Serum Na:
Urine Cr:
11. A-a Gradient (Alveolar-arterial Oxygen Gradient)
FiO2:
PaCO2:
PaO2:
19. Oxygen Flow Rate Calculation for Nasal Cannula
Oxygen Flow Rate (L/min):
20. ETT (Endotracheal Tube) Size for Pediatrics
Age:
12. Glasgow Coma Scale (GCS)
Eye (1-4):
1
2
3
4
Verbal (1-5):
1
2
3
4
5
Motor (1-6):
1
2
3
4
5
6
13. Parkland Formula for Burns Fluid Resuscitation
TBSA (%):
Weight (kg):
15. Pediatric Fluid Maintenance (Holliday-Segar Method)
Weight (kg):
16. APGAR Score for Newborn Assessment
Appearance (0-2):
0
1
2
Pulse (0-2):
0
1
2
Grimace (0-2):
0
1
2
Activity (0-2):
0
1
2
Respiration (0-2):
0
1
2
17. Corrected QT Interval (QTc) – Bazett’s Formula
QT Interval (ms):
RR Interval (s):
18. WINTERS Formula (Expected PCOâ‚‚ in Metabolic Acidosis)
HCO3:
function calculateBMI() {
const weight = parseFloat(document.getElementById(‘bmiWeight’).value);
const height = parseFloat(document.getElementById(‘bmiHeight’).value);
const bmi = weight / (height * height);
let interpretation = “”;
if (bmi < 18.5) interpretation = "Underweight";
else if (bmi < 25) interpretation = "Normal weight";
else if (bmi < 30) interpretation = "Overweight";
else interpretation = "Obese";
document.getElementById('bmiResult').textContent = `BMI: ${bmi.toFixed(2)} (${interpretation})`;
}
function calculateBSA() {
const height = parseFloat(document.getElementById('bsaHeight').value);
const weight = parseFloat(document.getElementById('bsaWeight').value);
const bsa = Math.sqrt((height * weight) / 3600);
document.getElementById('bsaResult').textContent = `BSA: ${bsa.toFixed(2)} m²`;
}
function calculateIBW() {
const height = parseFloat(document.getElementById('ibwHeight').value);
const gender = document.getElementById('ibwGender').value;
let ibw = 0;
if (gender === 'male') ibw = 50 + 2.3 * (height – 60);
else ibw = 45.5 + 2.3 * (height – 60);
document.getElementById('ibwResult').textContent = `IBW: ${ibw.toFixed(2)} kg`;
}
function calculateABW() {
const actualWeight = parseFloat(document.getElementById('abwActualWeight').value);
const ibw = parseFloat(document.getElementById('abwIBW').value);
const abw = ibw + 0.4 * (actualWeight – ibw);
document.getElementById('abwResult').textContent = `ABW: ${abw.toFixed(2)} kg`;
}
function calculateCrCl() {
const age = parseFloat(document.getElementById('crclAge').value);
const weight = parseFloat(document.getElementById('crclWeight').value);
const serumCreatinine = parseFloat(document.getElementById('crclSerumCreatinine').value);
const gender = document.getElementById('crclGender').value;
let crcl = (140 – age) * weight / (72 * serumCreatinine);
if (gender === 'female') crcl *= 0.85;
document.getElementById('crclResult').textContent = `CrCl: ${crcl.toFixed(2)} mL/min`;
}
function calculateMAP() {
const sbp = parseFloat(document.getElementById('mapSBP').value);
const dbp = parseFloat(document.getElementById('mapDBP').value);
const map = (sbp + 2 * dbp) / 3;
document.getElementById('mapResult').textContent = `MAP: ${map.toFixed(2)} mmHg`;
}
function calculateAG() {
const na = parseFloat(document.getElementById('agNa').value);
const cl = parseFloat(document.getElementById('agCl').value);
const hco3 = parseFloat(document.getElementById('agHCO3').value);
const ag = na – (cl + hco3);
let interpretation = "";
if (ag 12) interpretation = “Abnormal”;
else interpretation = “Normal”;
document.getElementById(‘agResult’).textContent = `AG: ${ag.toFixed(2)} mEq/L (${interpretation})`;
}
function calculateCorrectedNa() {
const measuredNa = parseFloat(document.getElementById(‘correctedNaMeasured’).value);
const glucose = parseFloat(document.getElementById(‘correctedNaGlucose’).value);
const correctedNa = measuredNa + 0.016 * (glucose – 100);
document.getElementById(‘correctedNaResult’).textContent = `Corrected Na: ${correctedNa.toFixed(2)} mEq/L`;
}
function calculateCorrectedCa() {
const measuredCa = parseFloat(document.getElementById(‘correctedCaMeasured’).value);
const albumin = parseFloat(document.getElementById(‘correctedCaAlbumin’).value);
const correctedCa = measuredCa + 0.8 * (4 – albumin);
document.getElementById(‘correctedCaResult’).textContent = `Corrected Ca: ${correctedCa.toFixed(2)} mg/dL`;
}
function calculateFeNa() {
const urineNa = parseFloat(document.getElementById(‘fenaUrineNa’).value);
const serumCr = parseFloat(document.getElementById(‘fenaSerumCr’).value);
const serumNa = parseFloat(document.getElementById(‘fenaSerumNa’).value);
const urineCr = parseFloat(document.getElementById(‘fenaUrineCr’).value);
const fena = (urineNa * serumCr / (serumNa * urineCr)) * 100;
document.getElementById(‘fenaResult’).textContent = `FeNa: ${fena.toFixed(2)}%`;
}
function calculateAaGradient() {
const fio2 = parseFloat(document.getElementById(‘aaGradientFiO2’).value);
const paco2 = parseFloat(document.getElementById(‘aaGradientPaCO2’).value);
const pao2 = parseFloat(document.getElementById(‘aaGradientPaO2’).value);
const aaGradient = (fio2 * (760 – 47) – paco2 / 0.8) – pao2;
document.getElementById(‘aaGradientResult’).textContent = `A-a Gradient: ${aaGradient.toFixed(2)} mmHg`;
}
function calculateGCS() {
const eye = parseInt(document.getElementById(‘gcsEye’).value);
const verbal = parseInt(document.getElementById(‘gcsVerbal’).value);
const motor = parseInt(document.getElementById(‘gcsMotor’).value);
const gcs = eye + verbal + motor;
document.getElementById(‘gcsResult’).textContent = `GCS: ${gcs} (Eye: ${eye}, Verbal: ${verbal}, Motor: ${motor})`;
}
function calculatePediatricFluid() {
const weight = parseFloat(document.getElementById(‘pedFluidWeight’).value);
let fluids = 0;
if (weight <= 10) fluids = weight * 100;
else if (weight <= 20) fluids = 1000 + (weight – 10) * 50;
else fluids = 1500 + (weight – 20) * 20;
document.getElementById('pedFluidResult').textContent = `Fluids: ${fluids.toFixed(2)} mL`;
}
function calculateParkland() {
const tbsa = parseFloat(document.getElementById('parklandTBSA').value);
const weight = parseFloat(document.getElementById('parklandWeight').value);
const fluids = 4 * tbsa * weight;
document.getElementById('parklandResult').textContent = `Fluids: ${fluids.toFixed(2)} mL`;
}
function calculateOxygenFlowRate() {
const flowRate = parseFloat(document.getElementById('oxygenFlowRate').value);
const fio2 = 20 + (4 * flowRate);
document.getElementById('oxygenFlowRateResult').textContent = `Estimated FiO2: ${fio2}%`;
}
function calculateETTSize() {
const age = parseFloat(document.getElementById('ettAge').value);
const ettSize = (age + 4) / 4;
document.getElementById('ettResult').textContent = `ETT Size (uncuffed): ${ettSize.toFixed(2)}`;
}
function calculateAPGAR() {
const appearance = parseInt(document.getElementById('apgarAppearance').value);
const pulse = parseInt(document.getElementById('apgarPulse').value);
const grimace = parseInt(document.getElementById('apgarGrimace').value);
const activity = parseInt(document.getElementById('apgarActivity').value);
const respiration = parseInt(document.getElementById('apgarRespiration').value);
const apgar = appearance + pulse + grimace + activity + respiration;
document.getElementById('apgarResult').textContent = `APGAR Score: ${apgar}`;
}
function calculateQTc() {
const qt = parseFloat(document.getElementById('qtcQT').value);
const rr = parseFloat(document.getElementById('qtcRR').value);
const qtc = qt / Math.sqrt(rr);
document.getElementById('qtcResult').textContent = `QTc: ${qtc.toFixed(2)} ms`;
}
function calculateWinters() {
const hco3 = parseFloat(document.getElementById('wintersHCO3').value);
const pco2 = (1.5 * hco3) + 8;
document.getElementById('wintersResult').textContent = `Expected PCO2: ${pco2.toFixed(2)} ± 2 mmHg`;
}


