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
14namespace 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 };
68END_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.