Building Medical Digital Twins with Pulse: Open Source Simulation Tools for Developers and Researchers
×
DrugModel.h
1 /* Distributed under the Apache License, Version 2.0.
2  See accompanying NOTICE file for details.*/
3 
4 #pragma once
5 
6 #include "engine/common/system/Model.h"
7 #include "engine/common/system/Systems.h"
8 
13 
14 namespace pulse
15 {
16  class PBPhysiology;
17  class EngineTest;
25  class PULSE_DECL DrugModel : public DrugSystem, public Model
26  {
27  friend PBPhysiology;//friend the serialization class
28  friend EngineTest;
29  public:
30  DrugModel(Data& data);
31  virtual ~DrugModel();
32 
33  void Clear() override;
34 
35  // Set members to a stable homeostatic state
36  void Initialize() override;
37  // Set pointers and other member varialbes common to both homeostatic initialization and loading a state
38  void SetUp() override;
39 
40  void AtSteadyState() override;
41  void PreProcess() override;
42  void Process(bool solve_and_transport = true) override;
43  void PostProcess(bool solve_and_transport = true) override;
44 
45  protected:
46  void ComputeExposedModelParameters() override;
47 
48  void AdministerSubstanceBolus();
49  void AdministerSubstanceInfusion();
50  void AdministerSubstanceCompoundInfusion();
51 
52  void CalculatePartitionCoefficients();
53  void CalculateSubstanceClearance();
54  void CalculatePlasmaSubstanceConcentration();
55  void CalculateDrugEffects();
56 
57  // Stateless member variable (Set in SetUp)
58  SESubstanceCompound* m_Saline;
59  SESubstanceCompound* m_Blood;
60  SELiquidCompartment* m_aortaVascular;
61  SELiquidCompartment* m_venaCavaVascular;
62  SELiquidCompartment* m_muscleIntracellular;
63  SELiquidCompartment* m_liverVascular;
64  SETissueCompartment* m_liverTissue;
65  SEFluidCircuitPath* m_IVToVenaCava;
66  SETissueCompartment* m_fatTissue;
67  };
68 END_NAMESPACE
Definition: PBPhysiology.h:24
Definition: SEFluidCircuitPath.h:9
Definition: SELiquidCompartment.h:11
Definition: SESubstanceCompound.h:10
Definition: SETissueCompartment.h:9
Definition: Logger.h:14

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.