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 
7 class CDM_DECL SERenalSystem : public SESystem
8 {
9  friend class PBPhysiology;//friend the serialization class
10 public:
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 
235 protected:
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 void Clear()
Definition: SESystem.cpp:17
virtual const SEScalar * GetScalar(const std::string &name)=0
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.