返回顶部
🇺🇸 English
🇨🇳 简体中文
🇨🇳 繁體中文
🇺🇸 English
🇯🇵 日本語
🇰🇷 한국어
🇫🇷 Français
🇩🇪 Deutsch
🇪🇸 Español
🇷🇺 Русский
b

bmi-bsa-calculator

Calculate Body Mass Index (BMI) and Body Surface Area (BSA) for clinical

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 0.1.0
安全检测
已通过
135
下载量
0
收藏
概述
安装方式
版本历史

bmi-bsa-calculator

# BMI & BSA Calculator ## Overview Clinical calculator for anthropometric measurements used in health assessment, obesity screening, and chemotherapy dosing calculations. **Key Capabilities:** - **BMI Calculation**: Standard and adjusted BMI formulas - **BSA Estimation**: Multiple validated formulas (DuBois, Mosteller, Haycock) - **Weight Classification**: WHO and CDC category assignment - **Dosing Support**: Chemotherapy and medication dose calculations - **Pediatric Support**: Age-appropriate norms and calculations - **Unit Flexibility**: Metric and imperial input support ## When to Use **✅ Use this skill when:** - Calculating chemotherapy doses requiring BSA (mg/m²) - Screening for obesity or underweight in clinical practice - Adjusting drug doses based on body composition - Documenting baseline anthropometrics in patient charts - Teaching medical students clinical calculations - Quick assessment in resource-limited settings **❌ Do NOT use when:** - BMI alone for clinical diagnosis → Use comprehensive metabolic assessment - Pregnancy weight assessment → Use gestational weight gain charts - Pediatric growth evaluation → Use WHO/CDC growth charts with percentiles - Body composition analysis → Use DEXA or bioimpedance - Athletic/muscular patients → Consider body fat % instead of BMI **Integration:** - **Upstream**: `ehr-semantic-compressor` (patient data extraction), `automated-soap-note-generator` (vital signs) - **Downstream**: `drug-interaction-checker` (dose calculation), `medication-reconciliation` (dosing verification) ## Core Capabilities ### 1. BMI Calculation Calculate Body Mass Index with classification: ```python from scripts.calculator import BMIBSACalculator calc = BMIBSACalculator() # Calculate BMI 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}") # Normal weight print(f"Ideal weight range: {result.ideal_weight_range}") ``` **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 | **Adjusted BMI:** - **BMI Prime**: BMI / 25 (obesity severity index) - **Ponderal Index**: BMI for tall/short individuals - **Age-adjusted**: For elderly patients (>65) ### 2. BSA Calculation Multiple formulas for different clinical scenarios: ```python # Calculate BSA using different formulas bsa_results = calc.calculate_bsa( weight_kg=70, height_cm=175, formulas=["dubois", "mosteller", "haycock", "gehan_george"] ) for formula, bsa in bsa_results.items(): print(f"{formula}: {bsa:.2f} m²") ``` **BSA Formulas:** | Formula | Equation | Best For | |---------|----------|----------| | **DuBois** | 0.007184 × W^0.425 × H^0.725 | Adults (most common) | | **Mosteller** | √(W × H / 3600) | Adults (simplified) | | **Haycock** | 0.024265 × W^0.5378 × H^0.3964 | Pediatrics | | **Gehan-George** | 0.0235 × W^0.51456 × H^0.42246 | Oncology | | **Yu** | 0.015925 × W^0.5 × H^0.5 | Asian populations | ### 3. Drug Dosing Calculations Apply BSA to medication dosing: ```python # Calculate chemotherapy dose dose = calc.calculate_dose( bsa=bsa_results["dubois"], drug="carboplatin", dose_per_m2=400, # mg/m² max_dose=800 # mg cap ) print(f"Calculated dose: {dose:.0f} mg") print(f"BSA used: {bsa_results['dubois']:.2f} m²") ``` **Common BSA-Based Doses:** - Carboplatin: AUC-based (Calvert formula) - 5-FU: 400-600 mg/m² - Doxorubicin: 60-75 mg/m² (lifetime max 450-550 mg/m²) - Paclitaxel: 135-175 mg/m² ### 4. Pediatric Calculations Age-appropriate calculations for children: ```python pediatric = calc.pediatric_mode( weight_kg=25, height_cm=120, age_years=8, sex="female" ) print(f"BMI-for-age percentile: {pediatric.bmi_percentile}%") print(f"Weight status: {pediatric.weight_status}") print(f"BSA (Haycock): {pediatric.bsa:.2f} m²") ``` **Pediatric Considerations:** - BMI percentiles (not absolute values) - Growth chart integration - Age-specific BSA formulas - Body composition changes with development ## Common Patterns ### Pattern 1: Chemotherapy Dosing **Scenario**: Calculate carboplatin dose for cancer patient. ```bash # Calculate BSA and dose python scripts/main.py \ --weight 70 \ --height 175 \ --drug carboplatin \ --target-auc 5 \ --creatinine-clearance 80 \ --output dose_calculation.txt ``` **Output:** ``` BSA (DuBois): 1.79 m² Calvert Formula: Dose = Target AUC × (GFR + 25) = 5 × (80 + 25) = 525 mg Maximum dose check: 525 mg ≤ 800 mg ✓ Recommended dose: 525 mg ``` ### Pattern 2: Obesity Screening **Scenario**: BMI assessment for weight management clinic. ```python # BMI with full assessment assessment = calc.assess_bmi( weight_kg=95, height_cm=165, age=52, sex="female", waist_cm=98 ) print(f"BMI: {assessment.bmi:.1f} (Obese Class II)") print(f"Waist-to-height ratio: {assessment.whtr:.2f} (High risk)") print(f"Comorbidity risk: {assessment.health_risk}") print(f"Recommended: {assessment.recommendations}") ``` ### Pattern 3: Pediatric Growth Assessment **Scenario**: Calculate child's BSA for medication dosing. ```python # Pediatric dosing child = calc.pediatric_assessment( weight_kg=20, height_cm=110, age_years=6, sex="male" ) print(f"BSA: {child.bsa:.2f} m² (Haycock formula)") print(f"BMI percentile: {child.bmi_percentile}th") print(f"Doxorubicin dose: {child.bsa * 60:.0f} mg") ``` ### Pattern 4: Rapid Clinical Assessment **Scenario**: Quick BMI/BSA for admission vital signs. ```bash # Quick calculation python scripts/main.py --weight 80 --height 180 --quick # Output: # BMI: 24.7 kg/m² (Normal) # BSA: 2.00 m² (DuBois) # Ideal weight: 65-80 kg ``` ## Complete Workflow Example **Comprehensive patient assessment:** ```python from scripts.calculator import BMIBSACalculator from scripts.reports import ClinicalReport # Initialize calc = BMIBSACalculator() report = ClinicalReport() # Patient data patient = { "weight_kg": 75, "height_cm": 170, "age": 55, "sex": "female", "waist_cm": 88 } # Calculate all metrics bmi = calc.calculate_bmi(**patient) bsa = calc.calculate_bsa(**patient, formula="dubois") assessment = calc.comprehensive_assessment(**patient) # Generate report report_data = { "bmi": bmi, "bsa": bsa, "assessment": assessment, "recommendations": assessment.recommendations } report.generate(report_data, output="patient_assessment.pdf") ``` ## Quality Checklist **Input Validation:** - [ ] Weight realistic (2-300 kg range) - [ ] Height realistic (50-250 cm range) - [ ] Units clearly specified (kg/lbs, cm/in) - [ ] Age appropriate for formulas used **Calculation Accuracy:** - [ ] Formula selection appropriate for patient - [ ] BSA formula matches clinical context - [ ] Pediatric vs. adult norms correctly applied - [ ] Rounding appropriate (1-2 decimal places) **Clinical Interpretation:** - [ ] **CRITICAL**: BMI is screening tool, not diagnostic - [ ] Ethnicity-specific cutoffs considered - [ ] Muscle mass considered (athletes) - [ ] Age adjustments applied (elderly/children) **Documentation:** - [ ] Formula used documented (DuBois vs. Mosteller) - [ ] Units clearly stated - [ ] Date of calculation recorded - [ ] Dose limits verified for chemotherapy ## Common Pitfalls **Calculation Errors:** - ❌ **Unit confusion** → Pounds vs. kg, inches vs. cm - ✅ Always verify units; convert if necessary - ❌ **Wrong formula** → Using adult BSA for infants - ✅ Use Haycock for children < 12 years - ❌ **BMI over-interpretation** → Diagnosing based on BMI alone - ✅ BMI is screening tool; clinical correlation required **Clinical Misuse:** - ❌ **Athletes misclassified** → Muscular patients marked obese - ✅ Consider waist circumference or body fat % - ❌ **Elderly inappropriate norms** → Same cutoffs for all ages - ✅ Use age-adjusted BMI for >65 years - ❌ **Ignoring ethnicity** → Universal cutoffs applied - ✅ Asian populations: lower obesity thresholds **Dosing Errors:** - ❌ **BSA rounding** → 1.79 m² rounded to 1.8 m² - ✅ Use precise values for chemotherapy - ❌ **Max dose ignored** → Exceeding lifetime limits - ✅ Always check cumulative doses (doxorubicin) ## References Available in `references/` directory: - `bsa_formulas_comparison.md` - Formula accuracy by population - `pediatric_norms.md` - Growth charts and percentiles - `chemotherapy_dosing.md` - BSA-based drug calculations - `ethnic_adjustments.md` - Population-specific cutoffs - `calculator_validation.md` - Comparison with reference standards ## Scripts Located in `scripts/` directory: - `main.py` - CLI calculator interface - `calculator.py` - Core BMI/BSA calculations - `formulas.py` - Multiple BSA formula implementations - `pediatric.py` - Child-specific calculations - `dosing.py` - Medication dose calculations - `reports.py` - Clinical report generation ## Limitations - **BMI Limitations**: Doesn't distinguish fat from muscle; varies by ethnicity - **BSA Estimation**: All formulas are approximations; 10-15% variation normal - **Extreme Values**: Very short/tall patients may have inaccurate estimates - **Not for Diagnosis**: BMI/BSA are tools, not clinical diagnoses - **Amputees**: Standard formulas inaccurate; adjustment needed - **Pregnancy**: Special considerations not included ## Parameters | Parameter | Type | Default | Required | Description | |-----------|------|---------|----------|-------------| | `--weight`, `-w` | float | - | Yes | Weight in kilograms | | `--height`, `-H` | float | - | Yes | Height in centimeters | | `--dose`, `-d` | float | - | No | Standard drug dose per m² in mg (optional) | | `--format`, `-f` | string | text | No | Output format (text, json) | | `--output`, `-o` | string | - | No | Output file path (optional) | ## Usage ### Basic Usage ```bash # 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 ``` ## Risk Assessment | Risk Indicator | Assessment | Level | |----------------|------------|-------| | Code Execution | Python script executed locally | Low | | Network Access | No external API calls | Low | | File System Access | Optional file output only | Low | | Data Exposure | No sensitive data stored | Low | | Clinical Risk | Results used for medical decisions | Medium | ## Security Checklist - [x] No hardcoded credentials or API keys - [x] No unauthorized file system access - [x] Input validation for weight/height - [x] Output does not expose sensitive information - [x] Error messages sanitized - [x] Script execution in sandboxed environment ## Prerequisites ```bash # Python 3.7+ # No additional packages required (uses standard library) ``` ## Evaluation Criteria ### Success Metrics - [x] Successfully calculates BMI using standard formula - [x] Successfully calculates BSA using DuBois formula - [x] Correctly categorizes BMI (Underweight, Normal, Overweight, Obese) - [x] Calculates drug doses based on BSA when provided ### Test Cases 1. **Normal Adult**: 70kg, 175cm → BMI 22.9 (Normal), BSA ~1.85 m² 2. **Drug Dosing**: 70kg, 175cm, 100mg/m² → Dose 185mg 3. **JSON Output**: Valid JSON with all fields ## Lifecycle Status - **Current Stage**: Draft - **Next Review Date**: 2026-03-06 - **Known Issues**: None - **Planned Improvements**: - Add additional BSA formulas (Haycock, Mosteller) - Add pediatric BMI percentiles - Add unit conversion (lbs, ft/in) --- **⚕️ Clinical Note: BMI and BSA are screening and calculation tools, not substitutes for clinical judgment. Always correlate with physical examination, patient history, and other assessments. Double-check all chemotherapy calculations independently.**

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 bmi-bsa-calculator-1776262335 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 bmi-bsa-calculator-1776262335 技能

通过命令行安装

skillhub install bmi-bsa-calculator-1776262335

下载 Zip 包

⬇ 下载 bmi-bsa-calculator v0.1.0

文件大小: 7.71 KB | 发布时间: 2026-4-17 14:14

v0.1.0 最新 2026-4-17 14:14
Initial release: BMI & BSA Calculator for clinical and pediatric use.

- Calculates Body Mass Index (BMI) with weight classification based on adult/pediatric standards.
- Estimates Body Surface Area (BSA) using multiple formulas: DuBois, Mosteller, Haycock, Gehan-George, and Yu.
- Supports both adult and pediatric anthropometric assessment, including percentile and risk categorization.
- Provides utilities for chemotherapy and medication dosing by BSA, with sample clinical workflows.
- Accepts metric and imperial inputs, with detailed documentation and example usages.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部