SESubstanceClearance.h
1 /**************************************************************************************
2 Copyright 2015 Applied Research Associates, Inc.
3 Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4 this file except in compliance with the License. You may obtain a copy of the License
5 at:
6 http://www.apache.org/licenses/LICENSE-2.0
7 Unless required by applicable law or agreed to in writing, software distributed under
8 the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
9 CONDITIONS OF ANY KIND, either express or implied. See the License for the
10 specific language governing permissions and limitations under the License.
11 **************************************************************************************/
12 
13 #pragma once
14 #include <biogears/cdm/CommonDataModel.h>
15 #include <biogears/exports.h>
16 
17 #include <biogears/schema/cdm/Substance.hxx>
18 #include "biogears/cdm/properties/SEScalarFrequency.h"
19 
20 CDM_BIND_DECL(SubstanceClearanceData)
21 
22 namespace biogears {
23 class SEScalar;
24 class SEScalarVolumePerTimeMass;
25 class VolumePerTimeMassUnit;
26 class MassPerTimeUnit;
27 class SEScalarMassPerTime;
28 class SESubstanceClearanceAnatomyEffect;
29 class SEScalarVolumePerTimeMass;
30 class SEScalarFraction;
31 
32 
33 enum class RenalDynamic { Clearance,
34  Regulation };
35 class BIOGEARS_API SESubstanceClearance : public Loggable {
36 public:
38  virtual ~SESubstanceClearance();
39 
40  virtual void Clear();
41  virtual bool IsValid() const;
42 
43  virtual const SEScalar* GetScalar(const char* name);
44  virtual const SEScalar* GetScalar(const std::string& name);
45 
46  virtual bool Load(const CDM::SubstanceClearanceData& in);
47  virtual CDM::SubstanceClearanceData* Unload() const;
48 
49 protected:
50  virtual void Unload(CDM::SubstanceClearanceData& data) const;
51 
52 public:
53  virtual bool HasSystemic() const { return m_hasSystemic; }
54  virtual void SetSystemic(bool b) { m_hasSystemic = b; }
55 
56  virtual bool HasCellular() const { return m_hasCellular; }
57  virtual void SetCellular(bool b) { m_hasCellular = b; }
58 
59  virtual bool HasCellBirthRate() const;
60  virtual SEScalarFrequency& GetCellBirthRate();
61  virtual double GetCellBirthRate(const FrequencyUnit& unit) const;
62 
63  virtual bool HasCellDeathRate() const;
64  virtual SEScalarFrequency& GetCellDeathRate();
65  virtual double GetCellDeathRate(const FrequencyUnit& unit) const;
66 
67  virtual CDM::enumCharge::value GetChargeInBlood() const;
68  virtual void SetChargeInBlood(CDM::enumCharge::value type);
69  virtual bool HasChargeInBlood() const;
70  virtual void InvalidateChargeInBlood();
71 
72  virtual bool HasFractionExcretedInFeces() const;
73  virtual SEScalarFraction& GetFractionExcretedInFeces();
74  virtual double GetFractionExcretedInFeces() const;
75 
76  virtual bool HasFractionExcretedInUrine() const;
77  virtual SEScalarFraction& GetFractionExcretedInUrine();
78  virtual double GetFractionExcretedInUrine() const;
79 
80  virtual bool HasFractionMetabolizedInGut() const;
81  virtual SEScalarFraction& GetFractionMetabolizedInGut();
82  virtual double GetFractionMetabolizedInGut() const;
83 
84  virtual bool HasFractionUnboundInPlasma() const;
85  virtual SEScalarFraction& GetFractionUnboundInPlasma();
86  virtual double GetFractionUnboundInPlasma() const;
87 
88  virtual bool HasGlomerularFilterability() const;
89  virtual SEScalar& GetGlomerularFilterability();
90  virtual double GetGlomerularFilterability() const;
91 
92  virtual bool HasIntrinsicClearance() const;
93  virtual SEScalarVolumePerTimeMass& GetIntrinsicClearance();
94  virtual double GetIntrinsicClearance(const VolumePerTimeMassUnit& unit) const;
95 
96  virtual RenalDynamic GetRenalDynamic() const;
97  virtual void SetRenalDynamic(RenalDynamic d);
98  virtual bool HasRenalDynamic() const;
99  virtual void InvalidateRenalDynamic();
100 
101  virtual bool HasRenalClearance() const;
102  virtual SEScalarVolumePerTimeMass& GetRenalClearance();
103  virtual double GetRenalClearance(const VolumePerTimeMassUnit& unit) const;
104 
105  virtual bool HasRenalReabsorptionRatio() const;
106  virtual SEScalar& GetRenalReabsorptionRatio();
107  virtual double GetRenalReabsorptionRatio() const;
108 
109  virtual bool HasRenalTransportMaximum() const;
110  virtual SEScalarMassPerTime& GetRenalTransportMaximum();
111  virtual double GetRenalTransportMaximum(const MassPerTimeUnit& unit) const;
112 
113  virtual bool HasRenalFiltrationRate() const;
114  virtual SEScalarMassPerTime& GetRenalFiltrationRate();
115  virtual double GetRenalFiltrationRate(const MassPerTimeUnit& unit) const;
116 
117  virtual bool HasRenalReabsorptionRate() const;
118  virtual SEScalarMassPerTime& GetRenalReabsorptionRate();
119  virtual double GetRenalReabsorptionRate(const MassPerTimeUnit& unit) const;
120 
121  virtual bool HasRenalExcretionRate() const;
122  virtual SEScalarMassPerTime& GetRenalExcretionRate();
123  virtual double GetRenalExcretionRate(const MassPerTimeUnit& unit) const;
124 
125  virtual bool HasSystemicClearance() const;
126  virtual SEScalarVolumePerTimeMass& GetSystemicClearance();
127  virtual double GetSystemicClearance(const VolumePerTimeMassUnit& unit) const;
128 
129 protected:
134 
150 };
151 }
RenalDynamic m_RenalDynamic
Definition: SESubstanceClearance.h:141
virtual bool HasCellular() const
Definition: SESubstanceClearance.h:56
CDM::enumCharge::value m_ChargeInBlood
Definition: SESubstanceClearance.h:135
Definition: SEScalarFrequency.h:18
Definition: SEScalarFrequency.h:36
Definition: SEScalar.h:33
SEScalarFrequency * m_CellBirthRate
Definition: SESubstanceClearance.h:132
SEScalar * m_GlomerularFilterability
Definition: SESubstanceClearance.h:148
SEScalar * m_RenalReabsorptionRatio
Definition: SESubstanceClearance.h:143
SEScalarVolumePerTimeMass * m_RenalClearance
Definition: SESubstanceClearance.h:142
SEScalarMassPerTime * m_RenalExcretionRate
Definition: SESubstanceClearance.h:147
SEScalarMassPerTime * m_RenalFiltrationRate
Definition: SESubstanceClearance.h:145
Definition: Logger.h:27
SEScalarFraction * m_FractionExcretedInFeces
Definition: SESubstanceClearance.h:136
Definition: Logger.h:75
Definition: SEScalarFraction.h:18
Definition: SEScalarVolumePerTimeMass.h:37
SEScalarFraction * m_FractionExcretedInUrine
Definition: SESubstanceClearance.h:137
SEScalarVolumePerTimeMass * m_IntrinsicClearance
Definition: SESubstanceClearance.h:140
SEScalarMassPerTime * m_RenalReabsorptionRate
Definition: SESubstanceClearance.h:146
Definition: SEScalarMassPerTime.h:18
virtual void SetSystemic(bool b)
Definition: SESubstanceClearance.h:54
SEScalarMassPerTime * m_RenalTransportMaximum
Definition: SESubstanceClearance.h:144
SEScalarVolumePerTimeMass * m_SystemicClearance
Definition: SESubstanceClearance.h:149
bool m_hasCellular
Definition: SESubstanceClearance.h:131
value
Underlying enum type.
Definition: Substance.hxx:1174
SEScalarFraction * m_FractionUnboundInPlasma
Definition: SESubstanceClearance.h:139
RenalDynamic
Definition: SESubstanceClearance.h:33
Definition: SEScalarMassPerTime.h:40
SEScalarFrequency * m_CellDeathRate
Definition: SESubstanceClearance.h:133
virtual bool HasSystemic() const
Definition: SESubstanceClearance.h:53
Definition: SEScalarVolumePerTimeMass.h:18
Definition: SEElectricalCircuit.h:18
Definition: SESubstanceClearance.h:35
virtual void SetCellular(bool b)
Definition: SESubstanceClearance.h:57
SEScalarFraction * m_FractionMetabolizedInGut
Definition: SESubstanceClearance.h:138
bool m_hasSystemic
Definition: SESubstanceClearance.h:130
Class corresponding to the SubstanceClearanceData schema type.
Definition: Substance.hxx:4108