🛠️ToolsShed

Körperoberflächen-Rechner

Körperoberfläche mit den Formeln von Mosteller und DuBois berechnen — für Medikamentendosierung.

Häufig gestellte Fragen

Code-Implementierung

import math

def bsa_mosteller(height_cm: float, weight_kg: float) -> float:
    """
    Mosteller formula: BSA (m²) = sqrt(height_cm * weight_kg / 3600)
    Widely used due to simplicity and clinical accuracy.
    """
    return math.sqrt(height_cm * weight_kg / 3600)

def bsa_dubois(height_cm: float, weight_kg: float) -> float:
    """
    DuBois & DuBois formula (1916):
    BSA (m²) = 0.007184 * height_cm^0.725 * weight_kg^0.425
    """
    return 0.007184 * (height_cm ** 0.725) * (weight_kg ** 0.425)

def bsa_haycock(height_cm: float, weight_kg: float) -> float:
    """
    Haycock formula (1978) — recommended for children and neonates:
    BSA (m²) = 0.024265 * height_cm^0.3964 * weight_kg^0.5378
    """
    return 0.024265 * (height_cm ** 0.3964) * (weight_kg ** 0.5378)

# Comparison across formulas
cases = [
    ("Avg adult male",   178, 80),
    ("Avg adult female", 165, 65),
    ("Child (10 y)",     140, 35),
    ("Large adult",      190, 110),
]

print(f"{'Case':<22} {'Mosteller':>10} {'DuBois':>8} {'Haycock':>9}")
print("-" * 52)
for name, h, w in cases:
    m  = bsa_mosteller(h, w)
    d  = bsa_dubois(h, w)
    hc = bsa_haycock(h, w)
    print(f"{name:<22} {m:>10.3f} {d:>8.3f} {hc:>9.3f}")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.