计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
bmi-bsa-calculator【效率与协作】Calculate Body Mass Index (BMI) and Body Surface Area (BSA) for clinical assessment, obesity screening, and chemotherapy dosing. Supports multiple BSA formulas (DuBois, Mosteller, Haycock), WHO weight classification, pediatric calculations, and metric/imperial input.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Clinical calculator for anthropometric measurements used in health assessment, obesity screening, and chemotherapy dosing calculations.
Key Capabilities:
This skill accepts: weight (kg or lbs), height (cm or inches), and optional parameters (age, sex, drug dose per m², output format). All values must be physiologically plausible.
Valid ranges: weight 2–300 kg, height 50–250 cm.
If the request does not involve calculating BMI or BSA — for example, asking to diagnose a condition, interpret lab results, or provide dietary advice — do not proceed. Instead respond:
"BMI & BSA Calculator is designed to calculate Body Mass Index and Body Surface Area for clinical screening and dosing support. Please provide weight and height values. For clinical diagnosis or treatment decisions, consult a qualified healthcare professional."
python -m py_compile scripts/main.py
python scripts/main.py --help
Fallback: If --weight or --height is missing, respond: "Required parameters missing. Please provide --weight (kg) and --height (cm). Cannot calculate BMI or BSA without both values."
from scripts.calculator import BMIBSACalculator
calc = BMIBSACalculator()
result = calc.calculate_bmi(weight_kg=70, height_cm=175, age=45, sex="male")
print(f"BMI: {result.bmi:.1f} kg/m²")
print(f"Category: {result.category}")
BMI Categories (WHO):
| Category | BMI Range | Clinical Significance |
|---|---|---|
| Underweight | < 18.5 | Malnutrition risk |
| Normal | 18.5–24.9 | Healthy range |
| Overweight | 25.0–29.9 | Increased risk |
| Obese I | 30.0–34.9 | High risk |
| Obese II | 35.0–39.9 | Very high risk |
| Obese III | ≥ 40.0 | Extremely high risk |
bsa_results = calc.calculate_bsa(
weight_kg=70, height_cm=175,
formulas=["dubois", "mosteller", "haycock", "gehan_george"]
)
BSA Formulas:
| Formula | Best For |
|---|---|
| DuBois | Adults (most common) |
| Mosteller | Adults (simplified) |
| Haycock | Pediatrics |
| Gehan-George | Oncology |
| Yu | Asian populations |
dose = calc.calculate_dose(bsa=1.79, drug="carboplatin", dose_per_m2=400, max_dose=800)
Common BSA-based doses: Carboplatin (Calvert formula), 5-FU 400–600 mg/m², Doxorubicin 60–75 mg/m², Paclitaxel 135–175 mg/m².
pediatric = calc.pediatric_mode(weight_kg=25, height_cm=120, age_years=8, sex="female")
print(f"BMI-for-age percentile: {pediatric.bmi_percentile}%")
# Calculate BMI and BSA
python scripts/main.py --weight 70 --height 175
# Calculate with drug dosing
python scripts/main.py --weight 70 --height 175 --dose 100
# Output as JSON
python scripts/main.py --weight 70 --height 175 --format json --output results.json
| Parameter | Type | Required | Description |
|---|---|---|---|
--weight, -w | float | Yes | Weight in kilograms |
--height, -H | float | Yes | Height in centimeters |
--dose, -d | float | No | Drug dose per m² in mg |
--format, -f | string | No | Output format (text, json) |
--output, -o | string | No | Output file path |
Every final response must make these explicit:
--weight or --height is missing, state the missing parameter and request it.scripts/main.py fails, report the failure point and provide manual calculation fallback.⚕️ Clinical Note: BMI and BSA are screening and calculation tools, not substitutes for clinical judgment. Always correlate with physical examination and patient history. Double-check all chemotherapy calculations independently.
references/bsa_formulas_comparison.md — Formula accuracy by populationreferences/pediatric_norms.md — Growth charts and percentilesreferences/chemotherapy_dosing.md — BSA-based drug calculationsreferences/ethnic_adjustments.md — Population-specific cutoffs