v2.0

GoRules Version 2 is here - redesigned, now with managed cloud.GoRules Version 2 is here!

Watch the launch videoWatch

Medication Dosage Calculator

Clinical decision system that calculates precise medication dosages based on patient weight, age, and organ function to maximize safety and efficacy.

Solution

This medication dosage calculator provides healthcare providers with precise pharmaceutical dosing guidance that adapts to individual patient characteristics. The system analyzes patient weight, age, kidney function (GFR), and liver status to determine optimal medication amounts. It applies evidence-based dosage adjustments for children, elderly patients, and those with impaired organ function to prevent adverse events while maintaining therapeutic efficacy.

For medications like vancomycin, the calculator automatically applies weight-based calculations with kidney function adjustments. The system handles pediatric cases with specialized weight-based formulas distinct from adult dosing protocols. For hepatically metabolized drugs like warfarin, the calculator integrates liver function assessments to modify standard dosing. Each recommendation includes the appropriate dose amount, unit measurement, administration route, and frequency interval, along with clear documentation of any adjustments made.

How it works

The decision system follows a three-step evaluation process:

  1. Patient Data Collection: Captures essential clinical parameters including patient ID, medication name, weight, age, kidney function (GFR), liver status, allergies, and current medications.

  2. Clinical Parameter Analysis: Evaluates multiple patient factors including:

    • Age classification (pediatric vs adult vs elderly)
    • Renal function assessment
    • Liver function assessment
    • Weight-based adjustment factors
    • Organ-specific dosing modification requirements
  3. Medication-Specific Dosing: Applies medication-specific rules that consider:

    • Different dosing protocols for children versus adults
    • Renal impairment adjustments for kidney-cleared medications
    • Hepatic adjustment factors for liver-metabolized drugs
    • Age-appropriate dosing for elderly patients
    • Standard versus adjusted administration frequencies

Where teams use it

  • Hospital inpatient medication ordering
  • Outpatient prescription systems
  • Emergency department medication administration
  • Pediatric dosing calculations
  • Geriatric medication management
  • Clinical pharmacy services
  • Medication safety programs
  • Electronic health record integration

Inside the decision model

Medication Dosage Calculator ships as a JDM decision graph with 3 nodes, 1 decision table and 10 rules. Download it, load it into GoRules, and run it as-is on Zen Engine.

Decision graph3 nodes · read-only
input patientDataexpression calculateParameterstable calculateDosage
01

Patient Data

input

Dosing starts from a flat request validated against a JSON schema: medication, weightKg, ageYears, and gfrValue are required, liverFunction is constrained to the values normal through severe, and allergies plus currentMedications ride along for clinical context.

Sample requestJSON
{
  "patientId": "P12345",
  "medication": "vancomycin",
  "weightKg": 65,
  "ageYears": 72,
  "gfrValue": 45,
  "liverFunction": "normal",
  "allergies": [
    "penicillin",
    "sulfa"
  ],
  "currentMedications": [
    "metformin",
    "lisinopril"
  ]
}
02

Calculate Parameters

expression

Eight derived flags and factors turn raw demographics into dosing inputs: isChild (ageYears < 18), isElderly (ageYears >= 65), hasRenalImpairment (gfrValue < 60), and stepped multipliers where renalAdjustmentFactor drops to 0.75 below a GFR of 60 and 0.5 below 30 while liverAdjustmentFactor scales from 0.9 for 'mild' down to 0.5 for 'severe'. The dosage table matches on the flags and multiplies base doses by the factors, so every threshold judgment lives in this one node.

Expressions8 fields
isChildageYears < 18
isElderlyageYears >= 65
hasRenalImpairmentgfrValue < 60
hasLiverImpairmentliverFunction != 'normal'
weightFactorAdultweightKg / 70
weightFactorChildweightKg / 30
renalAdjustmentFactorgfrValue < 30 ? 0.5 : (gfrValue < 60 ? 0.75 : 1)
liverAdjustmentFactorliverFunction == 'severe' ? 0.5 : (liverFunction == 'moderate' ? 0.75 : (liverFunction == 'mild' ? 0.9 : 1))
03

Calculate Dosage

table

One column matches the medication name and four boolean columns pick the patient variant, first hit wins. 'amoxicillin' doses children at 50 * weightKg mg every 8 hours and adults at 500 * weightFactorAdult; 'paracetamol' gives children 15 * weightKg every 6 hours, renally impaired adults 500 * renalAdjustmentFactor with the reason 'adjusted for renal function', and other adults a flat 1000 mg; 'vancomycin' runs 15 * weightKg intravenously every 12 hours, multiplied by renalAdjustmentFactor when hasRenalImpairment is true; 'warfarin' starts at 5 mg daily, cut to 2 or 3 * liverAdjustmentFactor for liver impairment or isElderly. Row order settles conflicts, so an elderly patient with liver impairment takes the liver-adjusted warfarin row before the elderly one.

The formulas mirror real dosing conventions: pediatric drugs are dosed per kilogram rather than as flat amounts, vancomycin at 15 mg per kg twice daily with a renal reduction matches standard practice for a renally cleared, nephrotoxic antibiotic, and trimming warfarin initiation for elderly or hepatically impaired patients reflects its liver metabolism and narrow therapeutic index. The 0.75 and 0.5 multiplier steps are simplified stand-ins for the graded reductions found in drug monographs, a sensible template choice rather than values lifted from any single label.

Decision tablefirst hit policy
MedicationmedicationIs ChildisChildIs ElderlyisElderlyHas Renal ImpairmenthasRenalImpairmentHas Liver ImpairmenthasLiverImpairmentDose AmountcalculatedDose.amountDose UnitcalculatedDose.unitFrequency (hours)calculatedDose.frequencyHoursRoutecalculatedDose.routeAdjustment ReasoncalculatedDose.adjustmentReason
'amoxicillin'true---50 * weightKg'mg''8''oral''standard'
'amoxicillin'false---500 * weightFactorAdult'mg''8''oral''standard'
'paracetamol'true---15 * weightKg'mg''6''oral''standard'
'paracetamol'false--true500 * renalAdjustmentFactor'mg''8''oral''adjusted for renal function'
'paracetamol'false---1000'mg''6''oral''standard'
'vancomycin'--true-15 * weightKg * renalAdjustmentFactor'mg''12''intravenous''adjusted for renal function'

+4 more rows in the downloadable template

Make this template
your own.

Load Medication Dosage Calculator into GoRules, adjust the rules to your policy, and ship it behind your own API.