SERenalSystem.h
1/* Distributed under the Apache License, Version 2.0.
2 See accompanying NOTICE file for details.*/
3
4#pragma once
5#include "cdm/system/SESystem.h"
6
7class CDM_DECL SERenalSystem : public SESystem
8{
9 friend class PBPhysiology;//friend the serialization class
10public:
11
12 SERenalSystem(Logger* logger);
13 virtual ~SERenalSystem();
14
15 void Clear() override;// Deletes all members
16
17 const SEScalar* GetScalar(const std::string& name) override;
18
19 virtual bool HasGlomerularFiltrationRate() const;
20 virtual SEScalarVolumePerTime& GetGlomerularFiltrationRate();
21 virtual double GetGlomerularFiltrationRate(const VolumePerTimeUnit& unit) const;
22
23 virtual bool HasFiltrationFraction() const;
24 virtual SEScalar0To1& GetFiltrationFraction();
25 virtual double GetFiltrationFraction() const;
26
27 virtual bool HasLeftAfferentArterioleResistance() const;
28 virtual SEScalarPressureTimePerVolume& GetLeftAfferentArterioleResistance();
29 virtual double GetLeftAfferentArterioleResistance(const PressureTimePerVolumeUnit& unit) const;
30
31 virtual bool HasLeftBowmansCapsulesHydrostaticPressure() const;
32 virtual SEScalarPressure& GetLeftBowmansCapsulesHydrostaticPressure();
33 virtual double GetLeftBowmansCapsulesHydrostaticPressure(const PressureUnit& unit) const;
34
35 virtual bool HasLeftBowmansCapsulesOsmoticPressure() const;
36 virtual SEScalarPressure& GetLeftBowmansCapsulesOsmoticPressure();
37 virtual double GetLeftBowmansCapsulesOsmoticPressure(const PressureUnit& unit) const;
38
39 virtual bool HasLeftEfferentArterioleResistance() const;
40 virtual SEScalarPressureTimePerVolume& GetLeftEfferentArterioleResistance();
41 virtual double GetLeftEfferentArterioleResistance(const PressureTimePerVolumeUnit& unit) const;
42
43 virtual bool HasLeftGlomerularCapillariesHydrostaticPressure() const;
44 virtual SEScalarPressure& GetLeftGlomerularCapillariesHydrostaticPressure();
45 virtual double GetLeftGlomerularCapillariesHydrostaticPressure(const PressureUnit& unit) const;
46
47 virtual bool HasLeftGlomerularCapillariesOsmoticPressure() const;
48 virtual SEScalarPressure& GetLeftGlomerularCapillariesOsmoticPressure();
49 virtual double GetLeftGlomerularCapillariesOsmoticPressure(const PressureUnit& unit) const;
50
51 virtual bool HasLeftGlomerularFiltrationCoefficient() const;
52 virtual SEScalarVolumePerTimePressure& GetLeftGlomerularFiltrationCoefficient();
53 virtual double GetLeftGlomerularFiltrationCoefficient(const VolumePerTimePressureUnit& unit) const;
54
55 virtual bool HasLeftGlomerularFiltrationRate() const;
56 virtual SEScalarVolumePerTime& GetLeftGlomerularFiltrationRate();
57 virtual double GetLeftGlomerularFiltrationRate(const VolumePerTimeUnit& unit) const;
58
59 virtual bool HasLeftGlomerularFiltrationSurfaceArea() const;
60 virtual SEScalarArea& GetLeftGlomerularFiltrationSurfaceArea();
61 virtual double GetLeftGlomerularFiltrationSurfaceArea(const AreaUnit& unit) const;
62
63 virtual bool HasLeftGlomerularFluidPermeability() const;
64 virtual SEScalarVolumePerTimePressureArea& GetLeftGlomerularFluidPermeability();
65 virtual double GetLeftGlomerularFluidPermeability(const VolumePerTimePressureAreaUnit& unit) const;
66
67 virtual bool HasLeftFiltrationFraction() const;
68 virtual SEScalar0To1& GetLeftFiltrationFraction();
69 virtual double GetLeftFiltrationFraction() const;
70
71 virtual bool HasLeftNetFiltrationPressure() const;
72 virtual SEScalarPressure& GetLeftNetFiltrationPressure();
73 virtual double GetLeftNetFiltrationPressure(const PressureUnit& unit) const;
74
75 virtual bool HasLeftNetReabsorptionPressure() const;
76 virtual SEScalarPressure& GetLeftNetReabsorptionPressure();
77 virtual double GetLeftNetReabsorptionPressure(const PressureUnit& unit) const;
78
79 virtual bool HasLeftPeritubularCapillariesHydrostaticPressure() const;
80 virtual SEScalarPressure& GetLeftPeritubularCapillariesHydrostaticPressure();
81 virtual double GetLeftPeritubularCapillariesHydrostaticPressure(const PressureUnit& unit) const;
82
83 virtual bool HasLeftPeritubularCapillariesOsmoticPressure() const;
84 virtual SEScalarPressure& GetLeftPeritubularCapillariesOsmoticPressure();
85 virtual double GetLeftPeritubularCapillariesOsmoticPressure(const PressureUnit& unit) const;
86
87 virtual bool HasLeftReabsorptionFiltrationCoefficient() const;
88 virtual SEScalarVolumePerTimePressure& GetLeftReabsorptionFiltrationCoefficient();
89 virtual double GetLeftReabsorptionFiltrationCoefficient(const VolumePerTimePressureUnit& unit) const;
90
91 virtual bool HasLeftReabsorptionRate() const;
92 virtual SEScalarVolumePerTime& GetLeftReabsorptionRate();
93 virtual double GetLeftReabsorptionRate(const VolumePerTimeUnit& unit) const;
94
95 virtual bool HasLeftTubularReabsorptionFiltrationSurfaceArea() const;
96 virtual SEScalarArea& GetLeftTubularReabsorptionFiltrationSurfaceArea();
97 virtual double GetLeftTubularReabsorptionFiltrationSurfaceArea(const AreaUnit& unit) const;
98
99 virtual bool HasLeftTubularReabsorptionFluidPermeability() const;
100 virtual SEScalarVolumePerTimePressureArea& GetLeftTubularReabsorptionFluidPermeability();
101 virtual double GetLeftTubularReabsorptionFluidPermeability(const VolumePerTimePressureAreaUnit& unit) const;
102
103 virtual bool HasLeftTubularHydrostaticPressure() const;
104 virtual SEScalarPressure& GetLeftTubularHydrostaticPressure();
105 virtual double GetLeftTubularHydrostaticPressure(const PressureUnit& unit) const;
106
107 virtual bool HasLeftTubularOsmoticPressure() const;
108 virtual SEScalarPressure& GetLeftTubularOsmoticPressure();
109 virtual double GetLeftTubularOsmoticPressure(const PressureUnit& unit) const;
110
111 virtual bool HasRenalBloodFlow() const;
112 virtual SEScalarVolumePerTime& GetRenalBloodFlow();
113 virtual double GetRenalBloodFlow(const VolumePerTimeUnit& unit) const;
114
115 virtual bool HasRenalPlasmaFlow() const;
116 virtual SEScalarVolumePerTime& GetRenalPlasmaFlow();
117 virtual double GetRenalPlasmaFlow(const VolumePerTimeUnit& unit) const;
118
119 virtual bool HasRenalVascularResistance() const;
120 virtual SEScalarPressureTimePerVolume& GetRenalVascularResistance();
121 virtual double GetRenalVascularResistance(const PressureTimePerVolumeUnit& unit) const;
122
123 virtual bool HasRightAfferentArterioleResistance() const;
124 virtual SEScalarPressureTimePerVolume& GetRightAfferentArterioleResistance();
125 virtual double GetRightAfferentArterioleResistance(const PressureTimePerVolumeUnit& unit) const;
126
127 virtual bool HasRightBowmansCapsulesHydrostaticPressure() const;
128 virtual SEScalarPressure& GetRightBowmansCapsulesHydrostaticPressure();
129 virtual double GetRightBowmansCapsulesHydrostaticPressure(const PressureUnit& unit) const;
130
131 virtual bool HasRightBowmansCapsulesOsmoticPressure() const;
132 virtual SEScalarPressure& GetRightBowmansCapsulesOsmoticPressure();
133 virtual double GetRightBowmansCapsulesOsmoticPressure(const PressureUnit& unit) const;
134
135 virtual bool HasRightEfferentArterioleResistance() const;
136 virtual SEScalarPressureTimePerVolume& GetRightEfferentArterioleResistance();
137 virtual double GetRightEfferentArterioleResistance(const PressureTimePerVolumeUnit& unit) const;
138
139 virtual bool HasRightGlomerularCapillariesHydrostaticPressure() const;
140 virtual SEScalarPressure& GetRightGlomerularCapillariesHydrostaticPressure();
141 virtual double GetRightGlomerularCapillariesHydrostaticPressure(const PressureUnit& unit) const;
142
143 virtual bool HasRightGlomerularCapillariesOsmoticPressure() const;
144 virtual SEScalarPressure& GetRightGlomerularCapillariesOsmoticPressure();
145 virtual double GetRightGlomerularCapillariesOsmoticPressure(const PressureUnit& unit) const;
146
147 virtual bool HasRightGlomerularFiltrationCoefficient() const;
148 virtual SEScalarVolumePerTimePressure& GetRightGlomerularFiltrationCoefficient();
149 virtual double GetRightGlomerularFiltrationCoefficient(const VolumePerTimePressureUnit& unit) const;
150
151 virtual bool HasRightGlomerularFiltrationRate() const;
152 virtual SEScalarVolumePerTime& GetRightGlomerularFiltrationRate();
153 virtual double GetRightGlomerularFiltrationRate(const VolumePerTimeUnit& unit) const;
154
155 virtual bool HasRightGlomerularFiltrationSurfaceArea() const;
156 virtual SEScalarArea& GetRightGlomerularFiltrationSurfaceArea();
157 virtual double GetRightGlomerularFiltrationSurfaceArea(const AreaUnit& unit) const;
158
159 virtual bool HasRightGlomerularFluidPermeability() const;
160 virtual SEScalarVolumePerTimePressureArea& GetRightGlomerularFluidPermeability();
161 virtual double GetRightGlomerularFluidPermeability(const VolumePerTimePressureAreaUnit& unit) const;
162
163 virtual bool HasRightFiltrationFraction() const;
164 virtual SEScalar0To1& GetRightFiltrationFraction();
165 virtual double GetRightFiltrationFraction() const;
166
167 virtual bool HasRightNetFiltrationPressure() const;
168 virtual SEScalarPressure& GetRightNetFiltrationPressure();
169 virtual double GetRightNetFiltrationPressure(const PressureUnit& unit) const;
170
171 virtual bool HasRightNetReabsorptionPressure() const;
172 virtual SEScalarPressure& GetRightNetReabsorptionPressure();
173 virtual double GetRightNetReabsorptionPressure(const PressureUnit& unit) const;
174
175 virtual bool HasRightPeritubularCapillariesHydrostaticPressure() const;
176 virtual SEScalarPressure& GetRightPeritubularCapillariesHydrostaticPressure();
177 virtual double GetRightPeritubularCapillariesHydrostaticPressure(const PressureUnit& unit) const;
178
179 virtual bool HasRightPeritubularCapillariesOsmoticPressure() const;
180 virtual SEScalarPressure& GetRightPeritubularCapillariesOsmoticPressure();
181 virtual double GetRightPeritubularCapillariesOsmoticPressure(const PressureUnit& unit) const;
182
183 virtual bool HasRightReabsorptionFiltrationCoefficient() const;
184 virtual SEScalarVolumePerTimePressure& GetRightReabsorptionFiltrationCoefficient();
185 virtual double GetRightReabsorptionFiltrationCoefficient(const VolumePerTimePressureUnit& unit) const;
186
187 virtual bool HasRightReabsorptionRate() const;
188 virtual SEScalarVolumePerTime& GetRightReabsorptionRate();
189 virtual double GetRightReabsorptionRate(const VolumePerTimeUnit& unit) const;
190
191 virtual bool HasRightTubularReabsorptionFiltrationSurfaceArea() const;
192 virtual SEScalarArea& GetRightTubularReabsorptionFiltrationSurfaceArea();
193 virtual double GetRightTubularReabsorptionFiltrationSurfaceArea(const AreaUnit& unit) const;
194
195 virtual bool HasRightTubularReabsorptionFluidPermeability() const;
196 virtual SEScalarVolumePerTimePressureArea& GetRightTubularReabsorptionFluidPermeability();
197 virtual double GetRightTubularReabsorptionFluidPermeability(const VolumePerTimePressureAreaUnit& unit) const;
198
199 virtual bool HasRightTubularHydrostaticPressure() const;
200 virtual SEScalarPressure& GetRightTubularHydrostaticPressure();
201 virtual double GetRightTubularHydrostaticPressure(const PressureUnit& unit) const;
202
203 virtual bool HasRightTubularOsmoticPressure() const;
204 virtual SEScalarPressure& GetRightTubularOsmoticPressure();
205 virtual double GetRightTubularOsmoticPressure(const PressureUnit& unit) const;
206
207 virtual bool HasUrinationRate() const;
208 virtual SEScalarVolumePerTime& GetUrinationRate();
209 virtual double GetUrinationRate(const VolumePerTimeUnit& unit) const;
210
211 virtual bool HasUrineOsmolality() const;
212 virtual SEScalarOsmolality& GetUrineOsmolality();
213 virtual double GetUrineOsmolality(const OsmolalityUnit& unit) const;
214
215 virtual bool HasUrineOsmolarity() const;
216 virtual SEScalarOsmolarity& GetUrineOsmolarity();
217 virtual double GetUrineOsmolarity(const OsmolarityUnit& unit) const;
218
219 virtual bool HasUrineProductionRate() const;
220 virtual SEScalarVolumePerTime& GetUrineProductionRate();
221 virtual double GetUrineProductionRate(const VolumePerTimeUnit& unit) const;
222
223 virtual bool HasUrineSpecificGravity() const;
224 virtual SEScalar& GetUrineSpecificGravity();
225 virtual double GetUrineSpecificGravity() const;
226
227 virtual bool HasUrineVolume() const;
228 virtual SEScalarVolume& GetUrineVolume();
229 virtual double GetUrineVolume(const VolumeUnit& unit) const;
230
231 virtual bool HasUrineUreaNitrogenConcentration() const;
232 virtual SEScalarMassPerVolume& GetUrineUreaNitrogenConcentration();
233 virtual double GetUrineUreaNitrogenConcentration(const MassPerVolumeUnit& unit) const;
234
235protected:
236
239
261
265
287
295};
Definition: SEScalarArea.h:8
Definition: Logger.h:71
Definition: SEScalarMassPerVolume.h:8
Definition: SEScalarOsmolality.h:8
Definition: SEScalarOsmolarity.h:8
Definition: PBPhysiology.h:24
Definition: SEScalarPressureTimePerVolume.h:8
Definition: SEScalarPressure.h:8
Definition: SERenalSystem.h:8
SEScalarOsmolality * m_UrineOsmolality
Definition: SERenalSystem.h:289
SEScalarPressure * m_LeftPeritubularCapillariesOsmoticPressure
Definition: SERenalSystem.h:254
SEScalar0To1 * m_RightFiltrationFraction
Definition: SERenalSystem.h:276
SEScalar0To1 * m_FiltrationFraction
Definition: SERenalSystem.h:238
SEScalarVolume * m_UrineVolume
Definition: SERenalSystem.h:293
SEScalarPressure * m_LeftNetReabsorptionPressure
Definition: SERenalSystem.h:252
SEScalarPressureTimePerVolume * m_RightAfferentArterioleResistance
Definition: SERenalSystem.h:266
SEScalar * m_UrineSpecificGravity
Definition: SERenalSystem.h:292
SEScalarPressure * m_LeftBowmansCapsulesOsmoticPressure
Definition: SERenalSystem.h:242
SEScalarVolumePerTime * m_UrineProductionRate
Definition: SERenalSystem.h:291
SEScalarVolumePerTimePressure * m_RightReabsorptionFiltrationCoefficient
Definition: SERenalSystem.h:281
SEScalarArea * m_LeftGlomerularFiltrationSurfaceArea
Definition: SERenalSystem.h:248
SEScalarArea * m_RightGlomerularFiltrationSurfaceArea
Definition: SERenalSystem.h:274
SEScalarPressure * m_RightPeritubularCapillariesOsmoticPressure
Definition: SERenalSystem.h:280
SEScalarVolumePerTimePressureArea * m_LeftGlomerularFluidPermeability
Definition: SERenalSystem.h:249
SEScalarPressure * m_LeftBowmansCapsulesHydrostaticPressure
Definition: SERenalSystem.h:241
SEScalarVolumePerTimePressure * m_LeftGlomerularFiltrationCoefficient
Definition: SERenalSystem.h:246
SEScalarPressure * m_LeftNetFiltrationPressure
Definition: SERenalSystem.h:251
SEScalarVolumePerTime * m_RenalBloodFlow
Definition: SERenalSystem.h:262
SEScalarVolumePerTime * m_LeftGlomerularFiltrationRate
Definition: SERenalSystem.h:247
SEScalarPressure * m_RightPeritubularCapillariesHydrostaticPressure
Definition: SERenalSystem.h:279
SEScalarVolumePerTime * m_UrinationRate
Definition: SERenalSystem.h:288
SEScalarVolumePerTimePressureArea * m_RightGlomerularFluidPermeability
Definition: SERenalSystem.h:275
SEScalarVolumePerTime * m_RightReabsorptionRate
Definition: SERenalSystem.h:282
SEScalarPressure * m_RightTubularHydrostaticPressure
Definition: SERenalSystem.h:285
SEScalarPressure * m_RightGlomerularCapillariesOsmoticPressure
Definition: SERenalSystem.h:271
SEScalarVolumePerTimePressureArea * m_RightTubularReabsorptionFluidPermeability
Definition: SERenalSystem.h:284
SEScalarPressureTimePerVolume * m_RenalVascularResistance
Definition: SERenalSystem.h:264
SEScalarPressure * m_LeftGlomerularCapillariesHydrostaticPressure
Definition: SERenalSystem.h:244
SEScalarPressure * m_RightTubularOsmoticPressure
Definition: SERenalSystem.h:286
SEScalarPressure * m_RightBowmansCapsulesHydrostaticPressure
Definition: SERenalSystem.h:267
SEScalarPressure * m_RightNetReabsorptionPressure
Definition: SERenalSystem.h:278
SEScalarVolumePerTime * m_GlomerularFiltrationRate
Definition: SERenalSystem.h:237
SEScalarPressureTimePerVolume * m_LeftAfferentArterioleResistance
Definition: SERenalSystem.h:240
SEScalarPressure * m_RightGlomerularCapillariesHydrostaticPressure
Definition: SERenalSystem.h:270
SEScalarArea * m_RightTubularReabsorptionFiltrationSurfaceArea
Definition: SERenalSystem.h:283
SEScalarPressure * m_LeftTubularOsmoticPressure
Definition: SERenalSystem.h:260
SEScalarPressure * m_LeftTubularHydrostaticPressure
Definition: SERenalSystem.h:259
SEScalarVolumePerTime * m_LeftReabsorptionRate
Definition: SERenalSystem.h:256
SEScalarVolumePerTimePressure * m_RightGlomerularFiltrationCoefficient
Definition: SERenalSystem.h:272
SEScalarVolumePerTime * m_RightGlomerularFiltrationRate
Definition: SERenalSystem.h:273
SEScalarMassPerVolume * m_UrineUreaNitrogenConcentration
Definition: SERenalSystem.h:294
SEScalarVolumePerTimePressureArea * m_LeftTubularReabsorptionFluidPermeability
Definition: SERenalSystem.h:258
SEScalarPressureTimePerVolume * m_LeftEfferentArterioleResistance
Definition: SERenalSystem.h:243
SEScalarVolumePerTimePressure * m_LeftReabsorptionFiltrationCoefficient
Definition: SERenalSystem.h:255
SEScalarArea * m_LeftTubularReabsorptionFiltrationSurfaceArea
Definition: SERenalSystem.h:257
SEScalarPressureTimePerVolume * m_RightEfferentArterioleResistance
Definition: SERenalSystem.h:269
SEScalarPressure * m_LeftPeritubularCapillariesHydrostaticPressure
Definition: SERenalSystem.h:253
SEScalarPressure * m_LeftGlomerularCapillariesOsmoticPressure
Definition: SERenalSystem.h:245
SEScalarPressure * m_RightBowmansCapsulesOsmoticPressure
Definition: SERenalSystem.h:268
SEScalarPressure * m_RightNetFiltrationPressure
Definition: SERenalSystem.h:277
SEScalarVolumePerTime * m_RenalPlasmaFlow
Definition: SERenalSystem.h:263
SEScalarOsmolarity * m_UrineOsmolarity
Definition: SERenalSystem.h:290
SEScalar0To1 * m_LeftFiltrationFraction
Definition: SERenalSystem.h:250
Definition: SEScalar0To1.h:8
Definition: SEScalarArea.h:25
Definition: SEScalar.h:19
Definition: SEScalarMassPerVolume.h:37
Definition: SEScalarOsmolality.h:25
Definition: SEScalarOsmolarity.h:25
Definition: SEScalarPressure.h:29
Definition: SEScalarPressureTimePerVolume.h:29
Definition: SEScalarVolume.h:28
Definition: SEScalarVolumePerTime.h:32
Definition: SEScalarVolumePerTimePressureArea.h:25
Definition: SEScalarVolumePerTimePressure.h:27
Definition: SESystem.h:8
virtual const SEScalar * GetScalar(const std::string &name)=0
virtual void Clear()
Definition: SESystem.cpp:17
Definition: SEScalarVolumePerTimePressureArea.h:8
Definition: SEScalarVolumePerTimePressure.h:8
Definition: SEScalarVolumePerTime.h:8
Definition: SEScalarVolume.h:8

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.