Class Pharmacokinetics

java.lang.Object
org.episteme.natural.medicine.pharmacology.Pharmacokinetics

public class Pharmacokinetics extends Object
Pharmacokinetics calculations for drug concentration modeling.

Provides one-compartment model calculations using type-safe Quantities:

  • First-order elimination
  • Half-life calculations
  • Steady-state concentrations
  • Loading/Maintenance dose calculations

Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Constructor Details

    • Pharmacokinetics

      public Pharmacokinetics(Quantity<Frequency> eliminationRateConstant, Quantity<Volume> volumeOfDistribution, double bioavailability)
      Creates pharmacokinetic model.
      Parameters:
      eliminationRateConstant - ke (e.g., 0.1/h)
      volumeOfDistribution - Vd (e.g., 10 L)
      bioavailability - F (0-1, typically 1 for IV)
  • Method Details

    • fromHalfLife

      public static Pharmacokinetics fromHalfLife(Quantity<Time> halfLife, Quantity<Volume> volume, double bioavailability)
      Creates model from half-life and volume.
    • getHalfLife

      public Quantity<Time> getHalfLife()
      Elimination half-life. t½ = ln(2) / ke
    • getClearance

      public Quantity<?> getClearance()
      Clearance. CL = ke * Vd Returns Volume/Time (e.g. L/h) - Generic Quantity as no specific Dimension/Type for flow rate in standard set yet? Actually VolumetricFlowRate exists in some extensions, but generic Quantity is safe.
    • concentrationAfterBolus

      public Quantity<?> concentrationAfterBolus(Quantity<Mass> dose, Quantity<Time> time)
      Plasma concentration after single IV bolus dose. C(t) = (D / Vd) * e^(-ke*t)
    • concentrationAfterOral

      public Quantity<?> concentrationAfterOral(Quantity<Mass> dose, Quantity<Time> time, Quantity<Frequency> absorptionRate)
      Plasma concentration after oral dose. C(t) = (F*D*ka / Vd*(ka-ke)) * (e^(-ke*t) - e^(-ka*t))
    • timeToPeak

      public Quantity<Time> timeToPeak(Quantity<Frequency> absorptionRate)
      Time to peak concentration after oral dose. tmax = ln(ka/ke) / (ka - ke)
    • steadyStateAverage

      public Quantity<?> steadyStateAverage(Quantity<Mass> dose, Quantity<Time> dosingInterval)
      Steady-state average concentration with repeated dosing. Css,avg = (F*D) / (Math.abs(CL) * Ï„) CL * tau -> Volume Dose / Volume -> Concentration
    • loadingDose

      public Quantity<Mass> loadingDose(Quantity<?> targetConcentration)
      Loading dose to achieve target concentration. LD = Css * Vd / F Css (Mass/Vol) * Vol -> Mass.
    • getKe

      public Quantity<Frequency> getKe()
    • getVd

      public Quantity<Volume> getVd()
    • getBioavailability

      public double getBioavailability()
    • toString

      public String toString()
      Overrides:
      toString in class Object