PulsePhysiologyEngine.h
1 /* Distributed under the Apache License, Version 2.0.
2  See accompanying NOTICE file for details.*/
3 
4 #pragma once
5 
6 #include "CommonDataModel.h"
7 // CDM Features in use
8 #include "PhysiologyEngine.h"
9 #include "utils/ScopedMutex.h"
10 
11 #include <memory>
12 
13 #define PULSE_DECL
14 #ifdef SHARED_PULSE
15  #if defined(__clang__)
16  #define PULSE_DECL
17  #elif defined(__gnu_linux__)
18  #define PULSE_DECL __attribute__ ((visibility ("default")))
19  #else
20  #ifdef SHARED_PULSE
21  #define PULSE_DECL __declspec(dllexport)
22  #else
23  #define PULSE_DECL __declspec(dllimport)
24  #endif
25  #endif
26 #endif
27 
28 PULSE_DECL std::unique_ptr<PhysiologyEngine> CreatePulseEngine(const std::string& logfile = "", const std::string& data_dir = ".");
29 PULSE_DECL std::unique_ptr<PhysiologyEngine> CreatePulseEngine(Logger* logger = nullptr, const std::string& data_dir =".");
30 
31 #define PULSE_BIND_DECL(type) \
32  class type;\
33  namespace pulse { namespace proto { class type##Data; } }
34 
35 // I bet there is a way cool macro you could do for these enums...
36 namespace pulse {
37 
38  DEFINE_STATIC_STRING_EX(Version, Pulse_1.0.0_beta);
39 
40  class Graph
41  {
42  public:
43  DEFINE_STATIC_STRING(ActiveCardiovascular);
47  DEFINE_STATIC_STRING(RespiratoryAndAnesthesiaMachine);
48  DEFINE_STATIC_STRING(RespiratoryAndInhaler);
49  DEFINE_STATIC_STRING(RespiratoryAndMechanicalVentilator);
50  DEFINE_STATIC_STRING(Aerosol);
51  DEFINE_STATIC_STRING(AerosolAndInhaler);
52  DEFINE_STATIC_STRING(AerosolAndMechanicalVentilator);
54 
55  static const std::vector<std::string>& GetValues()
56  {
57  ScopedMutex lock;
58  if (_values.empty())
59  {
60  _values.push_back(ActiveCardiovascular);
61  _values.push_back(Cardiovascular);
62  _values.push_back(Renal);
63  _values.push_back(Respiratory);
64  _values.push_back(RespiratoryAndAnesthesiaMachine);
65  _values.push_back(RespiratoryAndInhaler);
66  _values.push_back(RespiratoryAndMechanicalVentilator);
67  _values.push_back(Aerosol);
68  _values.push_back(AerosolAndInhaler);
69  _values.push_back(AerosolAndMechanicalVentilator);
70  _values.push_back(AnesthesiaMachine);
71  }
72  return _values;
73  }
74  protected:
75  static std::vector<std::string> _values;
76  };
77 
79  {
80  public:
81  DEFINE_STATIC_STRING_EX(SmallIntestine, SmallIntestineChyme);
82 
83  static const std::vector<std::string>& GetValues()
84  {
85  ScopedMutex lock;
86  if (_values.empty())
87  {
88  _values.push_back(SmallIntestine);
89  }
90  return _values;
91  }
92  protected:
93  static std::vector<std::string> _values;
94  };
95 
96  class ChymeLink
97  {
98  public:
99  DEFINE_STATIC_STRING(SmallIntestineChymeToVasculature);
100 
101  static const std::vector<std::string>& GetValues()
102  {
103  ScopedMutex lock;
104  if (_values.empty())
105  {
106  _values.push_back(SmallIntestineChymeToVasculature);
107  }
108  return _values;
109  }
110  protected:
111  static std::vector<std::string> _values;
112  };
113 
115  {
116  public:
117  DEFINE_STATIC_STRING(Mouth);
118  DEFINE_STATIC_STRING(Stomach);
119  DEFINE_STATIC_STRING(Carina);
120  DEFINE_STATIC_STRING_EX(Lungs, PulmonaryLungs);
121  DEFINE_STATIC_STRING_EX(LeftLung, LeftLungPulmonary);
122  /***/DEFINE_STATIC_STRING(LeftDeadSpace);
123  /***/DEFINE_STATIC_STRING(LeftAlveoli);
124  DEFINE_STATIC_STRING_EX(RightLung, RightLungPulmonary);
125  /***/DEFINE_STATIC_STRING(RightDeadSpace);
126  /***/DEFINE_STATIC_STRING(RightAlveoli);
127  DEFINE_STATIC_STRING(PleuralCavity);
128  DEFINE_STATIC_STRING(LeftPleuralCavity);
129  DEFINE_STATIC_STRING(RightPleuralCavity);
130 
131  DEFINE_STATIC_STRING(LeftAlveoliLeak);
132  DEFINE_STATIC_STRING(LeftChestLeak);
133  DEFINE_STATIC_STRING(RightAlveoliLeak);
134  DEFINE_STATIC_STRING(RightChestLeak);
135 
136  static const std::vector<std::string>& GetValues()
137  {
138  ScopedMutex lock;
139  if (_values.empty())
140  {
141  _values.push_back(Mouth);
142  _values.push_back(Stomach);
143  _values.push_back(Carina);
144  _values.push_back(Lungs);
145  _values.push_back(LeftLung);
146  _values.push_back(LeftDeadSpace);
147  _values.push_back(LeftAlveoli);
148  _values.push_back(RightLung);
149  _values.push_back(RightDeadSpace);
150  _values.push_back(RightAlveoli);
151  _values.push_back(PleuralCavity);
152  _values.push_back(LeftPleuralCavity);
153  _values.push_back(RightPleuralCavity);
154  _values.push_back(LeftAlveoliLeak);
155  _values.push_back(LeftChestLeak);
156  _values.push_back(RightAlveoliLeak);
157  _values.push_back(RightChestLeak);
158  }
159  return _values;
160  }
161  protected:
162  static std::vector<std::string> _values;
163  };
164 
166  {
167  public:
168  DEFINE_STATIC_STRING(EnvironmentToMouth);
169  DEFINE_STATIC_STRING(MouthToCarina);
170  DEFINE_STATIC_STRING(MouthToStomach);
171  DEFINE_STATIC_STRING(CarinaToLeftDeadSpace);
172  DEFINE_STATIC_STRING(LeftDeadSpaceToAlveoli);
173  DEFINE_STATIC_STRING(CarinaToRightDeadSpace);
174  DEFINE_STATIC_STRING(RightDeadSpaceToAlveoli);
175  DEFINE_STATIC_STRING(EnvironmentToLeftChestLeak);
176  DEFINE_STATIC_STRING(EnvironmentToRightChestLeak);
177  DEFINE_STATIC_STRING(LeftAlveoliLeakToLeftPleural);
178  DEFINE_STATIC_STRING(LeftAlveoliToLeftAlveoliLeak);
179  DEFINE_STATIC_STRING(LeftChestLeakToLeftPleural);
180  DEFINE_STATIC_STRING(LeftPleuralToEnvironment);
181  DEFINE_STATIC_STRING(RightAlveoliLeakToRightPleural);
182  DEFINE_STATIC_STRING(RightAlveoliToRightAlveoliLeak);
183  DEFINE_STATIC_STRING(RightChestLeakToRightPleural);
184  DEFINE_STATIC_STRING(RightPleuralToEnvironment);
185 
186  static const std::vector<std::string>& GetValues()
187  {
188  ScopedMutex lock;
189  if (_values.empty())
190  {
191  _values.push_back(EnvironmentToMouth);
192  _values.push_back(MouthToCarina);
193  _values.push_back(MouthToStomach);
194  _values.push_back(CarinaToLeftDeadSpace);
195  _values.push_back(LeftDeadSpaceToAlveoli);
196  _values.push_back(CarinaToRightDeadSpace);
197  _values.push_back(RightDeadSpaceToAlveoli);
198  _values.push_back(EnvironmentToLeftChestLeak);
199  _values.push_back(EnvironmentToRightChestLeak);
200  _values.push_back(LeftAlveoliLeakToLeftPleural);
201  _values.push_back(LeftAlveoliToLeftAlveoliLeak);
202  _values.push_back(LeftChestLeakToLeftPleural);
203  _values.push_back(LeftPleuralToEnvironment);
204  _values.push_back(RightAlveoliLeakToRightPleural);
205  _values.push_back(RightAlveoliToRightAlveoliLeak);
206  _values.push_back(RightChestLeakToRightPleural);
207  _values.push_back(RightPleuralToEnvironment);
208  }
209  return _values;
210  }
211  protected:
212  static std::vector<std::string> _values;
213  };
214 
216  {
217  public:
218  DEFINE_STATIC_STRING_EX(Bone, BoneTissue);
219  DEFINE_STATIC_STRING_EX(Brain, BrainTissue);
220  DEFINE_STATIC_STRING_EX(Fat, FatTissue);
221  DEFINE_STATIC_STRING_EX(Gut, GutTissue);
222  DEFINE_STATIC_STRING_EX(LeftKidney, LeftKidneyTissue);
223  DEFINE_STATIC_STRING_EX(LeftLung, LeftLungTissue);
224  DEFINE_STATIC_STRING_EX(Liver, LiverTissue);
225  DEFINE_STATIC_STRING_EX(Muscle, MuscleTissue);
226  DEFINE_STATIC_STRING_EX(Myocardium, MyocardiumTissue);
227  DEFINE_STATIC_STRING_EX(RightKidney, RightKidneyTissue);
228  DEFINE_STATIC_STRING_EX(RightLung, RightLungTissue);
229  DEFINE_STATIC_STRING_EX(Skin, SkinTissue);
230  DEFINE_STATIC_STRING_EX(Spleen, SpleenTissue);
231 
232  static const std::vector<std::string>& GetValues()
233  {
234  ScopedMutex lock;
235  if (_values.empty())
236  {
237  _values.push_back(Bone);
238  _values.push_back(Brain);
239  _values.push_back(Fat);
240  _values.push_back(Gut);
241  _values.push_back(LeftKidney);
242  _values.push_back(LeftLung);
243  _values.push_back(Liver);
244  _values.push_back(Muscle);
245  _values.push_back(Myocardium);
246  _values.push_back(RightKidney);
247  _values.push_back(RightLung);
248  _values.push_back(Skin);
249  _values.push_back(Spleen);
250  }
251  return _values;
252  }
253  protected:
254  static std::vector<std::string> _values;
255  };
256 
258  {
259  public:
260  DEFINE_STATIC_STRING_EX(BoneExtracellular, BoneTissueExtracellular);
261  DEFINE_STATIC_STRING_EX(BrainExtracellular, BrainTissueExtracellular);
262  DEFINE_STATIC_STRING_EX(FatExtracellular, FatTissueExtracellular);
263  DEFINE_STATIC_STRING_EX(GutExtracellular, GutTissueExtracellular);
264  DEFINE_STATIC_STRING_EX(LeftKidneyExtracellular, LeftKidneyTissueExtracellular);
265  DEFINE_STATIC_STRING_EX(LeftLungExtracellular, LeftLungTissueExtracellular);
266  DEFINE_STATIC_STRING_EX(LiverExtracellular, LiverTissueExtracellular);
267  DEFINE_STATIC_STRING_EX(MuscleExtracellular, MuscleTissueExtracellular);
268  DEFINE_STATIC_STRING_EX(MyocardiumExtracellular, MyocardiumTissueExtracellular);
269  DEFINE_STATIC_STRING_EX(RightKidneyExtracellular, RightKidneyTissueExtracellular);
270  DEFINE_STATIC_STRING_EX(RightLungExtracellular, RightLungTissueExtracellular);
271  DEFINE_STATIC_STRING_EX(SkinExtracellular, SkinTissueExtracellular);
272  DEFINE_STATIC_STRING_EX(SpleenExtracellular, SpleenTissueExtracellular);
273 
274  DEFINE_STATIC_STRING_EX(BoneIntracellular, BoneTissueIntracellular);
275  DEFINE_STATIC_STRING_EX(BrainIntracellular, BrainTissueIntracellular);
276  DEFINE_STATIC_STRING_EX(FatIntracellular, FatTissueIntracellular);
277  DEFINE_STATIC_STRING_EX(GutIntracellular, GutTissueIntracellular);
278  DEFINE_STATIC_STRING_EX(LeftKidneyIntracellular, LeftKidneyTissueIntracellular);
279  DEFINE_STATIC_STRING_EX(LeftLungIntracellular, LeftLungTissueIntracellular);
280  DEFINE_STATIC_STRING_EX(LiverIntracellular, LiverTissueIntracellular);
281  DEFINE_STATIC_STRING_EX(MuscleIntracellular, MuscleTissueIntracellular);
282  DEFINE_STATIC_STRING_EX(MyocardiumIntracellular, MyocardiumTissueIntracellular);
283  DEFINE_STATIC_STRING_EX(RightKidneyIntracellular, RightKidneyTissueIntracellular);
284  DEFINE_STATIC_STRING_EX(RightLungIntracellular, RightLungTissueIntracellular);
285  DEFINE_STATIC_STRING_EX(SkinIntracellular, SkinTissueIntracellular);
286  DEFINE_STATIC_STRING_EX(SpleenIntracellular, SpleenTissueIntracellular);
287 
288  static const std::vector<std::string>& GetValues()
289  {
290  ScopedMutex lock;
291  if (_values.empty())
292  {
293  _values.push_back(BoneExtracellular);
294  _values.push_back(BrainExtracellular);
295  _values.push_back(FatExtracellular);
296  _values.push_back(GutExtracellular);
297  _values.push_back(LeftKidneyExtracellular);
298  _values.push_back(LeftLungExtracellular);
299  _values.push_back(LiverExtracellular);
300  _values.push_back(MuscleExtracellular);
301  _values.push_back(MyocardiumExtracellular);
302  _values.push_back(RightKidneyExtracellular);
303  _values.push_back(RightLungExtracellular);
304  _values.push_back(SkinExtracellular);
305  _values.push_back(SpleenExtracellular);
306 
307  _values.push_back(BoneIntracellular);
308  _values.push_back(BrainIntracellular);
309  _values.push_back(FatIntracellular);
310  _values.push_back(GutIntracellular);
311  _values.push_back(LeftKidneyIntracellular);
312  _values.push_back(LeftLungIntracellular);
313  _values.push_back(LiverIntracellular);
314  _values.push_back(MuscleIntracellular);
315  _values.push_back(MyocardiumIntracellular);
316  _values.push_back(RightKidneyIntracellular);
317  _values.push_back(RightLungIntracellular);
318  _values.push_back(SkinIntracellular);
319  _values.push_back(SpleenIntracellular);
320  }
321  return _values;
322  }
323  protected:
324  static std::vector<std::string> _values;
325  };
326 
328  {
329  public:
330  // Cardio
331  DEFINE_STATIC_STRING(Aorta);
332  DEFINE_STATIC_STRING(Heart);
333  DEFINE_STATIC_STRING_EX(Myocardium, MyocardiumVasculature);
334  DEFINE_STATIC_STRING(LeftHeart);
335  DEFINE_STATIC_STRING(RightHeart);
336  DEFINE_STATIC_STRING(Pericardium);
337  DEFINE_STATIC_STRING(VenaCava);
338  // Pulmonary
339  DEFINE_STATIC_STRING(PulmonaryArteries);
340  DEFINE_STATIC_STRING(PulmonaryCapillaries);
341  DEFINE_STATIC_STRING(PulmonaryVeins);
342  DEFINE_STATIC_STRING_EX(Lungs, LungsVasculature);
343  DEFINE_STATIC_STRING_EX(LeftLung, LeftLungVasculature);
344  /***/DEFINE_STATIC_STRING(LeftPulmonaryArteries);
345  /***/DEFINE_STATIC_STRING(LeftPulmonaryCapillaries);
346  /***/DEFINE_STATIC_STRING(LeftPulmonaryVeins);
347  DEFINE_STATIC_STRING_EX(RightLung, RightLungVasculature);
348  /***/DEFINE_STATIC_STRING(RightPulmonaryArteries);
349  /***/DEFINE_STATIC_STRING(RightPulmonaryCapillaries);
350  /***/DEFINE_STATIC_STRING(RightPulmonaryVeins);
351  // Renal
352  DEFINE_STATIC_STRING_EX(Kidneys, KidneyVasculature);
353  DEFINE_STATIC_STRING_EX(LeftKidney, LeftKidneyVasculature);
354  /***/DEFINE_STATIC_STRING(LeftRenalArtery);
355  /***/DEFINE_STATIC_STRING(LeftNephron);
356  /*********/DEFINE_STATIC_STRING(LeftAfferentArteriole);
357  /*********/DEFINE_STATIC_STRING(LeftGlomerularCapillaries);
358  /*********/DEFINE_STATIC_STRING(LeftEfferentArteriole);
359  /*********/DEFINE_STATIC_STRING(LeftPeritubularCapillaries);
360  /*********/DEFINE_STATIC_STRING(LeftBowmansCapsules);
361  /*********/DEFINE_STATIC_STRING(LeftTubules);
362  /***/DEFINE_STATIC_STRING(LeftRenalVein);
363  DEFINE_STATIC_STRING_EX(RightKidney, RightKidneyVasculature);
364  /***/DEFINE_STATIC_STRING(RightRenalArtery);
365  /***/DEFINE_STATIC_STRING(RightNephron);
366  /*********/DEFINE_STATIC_STRING(RightAfferentArteriole);
367  /*********/DEFINE_STATIC_STRING(RightGlomerularCapillaries);
368  /*********/DEFINE_STATIC_STRING(RightEfferentArteriole);
369  /*********/DEFINE_STATIC_STRING(RightPeritubularCapillaries);
370  /*********/DEFINE_STATIC_STRING(RightBowmansCapsules);
371  /*********/DEFINE_STATIC_STRING(RightTubules);
372  /***/DEFINE_STATIC_STRING(RightRenalVein);
373  // General Organs and Periphery
374  DEFINE_STATIC_STRING_EX(Bone, BoneVasculature);
375  DEFINE_STATIC_STRING_EX(Brain, BrainVasculature);
376  DEFINE_STATIC_STRING_EX(Fat, FatVasculature);
377  DEFINE_STATIC_STRING_EX(Gut, GutVasculature);
378  DEFINE_STATIC_STRING_EX(Splanchnic, SplanchnicVasculature);
379  DEFINE_STATIC_STRING_EX(SmallIntestine, SmallIntestineVasculature);
380  DEFINE_STATIC_STRING_EX(LargeIntestine, LargeIntestineVasculature);
381  DEFINE_STATIC_STRING_EX(Liver, LiverVasculature);
382  DEFINE_STATIC_STRING_EX(Spleen, SpleenVasculature);
383  DEFINE_STATIC_STRING_EX(Skin, SkinVasculature);
384  DEFINE_STATIC_STRING_EX(Muscle, MuscleVasculature);
385  DEFINE_STATIC_STRING_EX(LeftArm, LeftArmVasculature);
386  DEFINE_STATIC_STRING_EX(LeftLeg, LeftLegVasculature);
387  DEFINE_STATIC_STRING_EX(RightArm, RightArmVasculature);
388  DEFINE_STATIC_STRING_EX(RightLeg, RightLegVasculature);
389  DEFINE_STATIC_STRING(Abdomen);
390  DEFINE_STATIC_STRING(AbdominalCavity);
391 
392  DEFINE_STATIC_STRING(Ground);
393 
394 
395  static const std::vector<std::string>& GetValues()
396  {
397  ScopedMutex lock;
398  if (_values.empty())
399  {
400  _values.push_back(Aorta);
401  _values.push_back(Abdomen);
402  _values.push_back(Heart);
403  _values.push_back(Myocardium);
404  _values.push_back(LeftHeart);
405  _values.push_back(RightHeart);
406  _values.push_back(Pericardium);
407  _values.push_back(VenaCava);
408  _values.push_back(PulmonaryArteries);
409  _values.push_back(PulmonaryCapillaries);
410  _values.push_back(PulmonaryVeins);
411  _values.push_back(Lungs);
412  _values.push_back(LeftLung);
413  _values.push_back(LeftPulmonaryArteries);
414  _values.push_back(LeftPulmonaryCapillaries);
415  _values.push_back(LeftPulmonaryVeins);
416  _values.push_back(RightLung);
417  _values.push_back(RightPulmonaryArteries);
418  _values.push_back(RightPulmonaryCapillaries);
419  _values.push_back(RightPulmonaryVeins);
420  _values.push_back(Kidneys);
421  _values.push_back(LeftKidney);
422  _values.push_back(LeftRenalArtery);
423  _values.push_back(LeftNephron);
424  _values.push_back(LeftAfferentArteriole);
425  _values.push_back(LeftGlomerularCapillaries);
426  _values.push_back(LeftEfferentArteriole);
427  _values.push_back(LeftPeritubularCapillaries);
428  _values.push_back(LeftBowmansCapsules);
429  _values.push_back(LeftTubules);
430  _values.push_back(LeftRenalVein);
431  _values.push_back(RightKidney);
432  _values.push_back(RightRenalArtery);
433  _values.push_back(RightNephron);
434  _values.push_back(RightAfferentArteriole);
435  _values.push_back(RightGlomerularCapillaries);
436  _values.push_back(RightEfferentArteriole);
437  _values.push_back(RightPeritubularCapillaries);
438  _values.push_back(RightBowmansCapsules);
439  _values.push_back(RightTubules);
440  _values.push_back(RightRenalVein);
441  _values.push_back(Bone);
442  _values.push_back(Brain);
443  _values.push_back(Fat);
444  _values.push_back(Gut);
445  _values.push_back(Splanchnic);
446  _values.push_back(SmallIntestine);
447  _values.push_back(LargeIntestine);
448  _values.push_back(Liver);
449  _values.push_back(Spleen);
450  _values.push_back(Skin);
451  _values.push_back(Muscle);
452  _values.push_back(LeftArm);
453  _values.push_back(LeftLeg);
454  _values.push_back(RightArm);
455  _values.push_back(RightLeg);
456  //_values.push_back(Ground);
457  }
458  return _values;
459  }
460  protected:
461  static std::vector<std::string> _values;
462  };
463 
465  {
466  public:
467  // Heart and Lungs
468  DEFINE_STATIC_STRING(VenaCavaToRightHeart);
469  DEFINE_STATIC_STRING(RightHeartToLeftPulmonaryArteries);
470  DEFINE_STATIC_STRING(LeftPulmonaryArteriesToCapillaries);
471  DEFINE_STATIC_STRING(LeftPulmonaryArteriesToVeins);
472  DEFINE_STATIC_STRING(LeftPulmonaryCapillariesToVeins);
473  DEFINE_STATIC_STRING(LeftPulmonaryVeinsToLeftHeart);
474  DEFINE_STATIC_STRING(RightHeartToRightPulmonaryArteries);
475  DEFINE_STATIC_STRING(RightPulmonaryArteriesToCapillaries);
476  DEFINE_STATIC_STRING(RightPulmonaryArteriesToVeins);
477  DEFINE_STATIC_STRING(RightPulmonaryCapillariesToVeins);
478  DEFINE_STATIC_STRING(RightPulmonaryVeinsToLeftHeart);
479  DEFINE_STATIC_STRING(LeftHeartToAorta);
480  // Bone
481  DEFINE_STATIC_STRING(AortaToBone);
482  DEFINE_STATIC_STRING(BoneToVenaCava);
483  // Brain
484  DEFINE_STATIC_STRING(AortaToBrain);
485  DEFINE_STATIC_STRING(BrainToVenaCava);
486  // Fat
487  DEFINE_STATIC_STRING(AortaToFat);
488  DEFINE_STATIC_STRING(FatToVenaCava);
489  // Large Intestine
490  DEFINE_STATIC_STRING(AortaToLargeIntestine);
491  DEFINE_STATIC_STRING(LargeIntestineToLiver);
492  // Left Arm
493  DEFINE_STATIC_STRING(AortaToLeftArm);
494  DEFINE_STATIC_STRING(LeftArmToVenaCava);
495  // Left Kidney
496  DEFINE_STATIC_STRING(AortaToLeftKidney);
497  DEFINE_STATIC_STRING(LeftKidneyToVenaCava);
498  // Left Leg
499  DEFINE_STATIC_STRING(AortaToLeftLeg);
500  DEFINE_STATIC_STRING(LeftLegToVenaCava);
501  // Liver
502  DEFINE_STATIC_STRING(AortaToLiver);
503  DEFINE_STATIC_STRING(LiverToVenaCava);
504  // Muscle
505  DEFINE_STATIC_STRING(AortaToMuscle);
506  DEFINE_STATIC_STRING(MuscleToVenaCava);
507  // Myocardium
508  DEFINE_STATIC_STRING(AortaToMyocardium);
509  DEFINE_STATIC_STRING(MyocardiumToVenaCava);
510  // Right Arm
511  DEFINE_STATIC_STRING(AortaToRightArm);
512  DEFINE_STATIC_STRING(RightArmToVenaCava);
513  // Right Kidney
514  DEFINE_STATIC_STRING(AortaToRightKidney);
515  DEFINE_STATIC_STRING(RightKidneyToVenaCava);
516  // Right Leg
517  DEFINE_STATIC_STRING(AortaToRightLeg);
518  DEFINE_STATIC_STRING(RightLegToVenaCava);
519  // Skin
520  DEFINE_STATIC_STRING(AortaToSkin);
521  DEFINE_STATIC_STRING(SkinToVenaCava);
522  // Small Intestine
523  DEFINE_STATIC_STRING(AortaToSmallIntestine);
524  DEFINE_STATIC_STRING(SmallIntestineToLiver);
525  // Splanchnic
526  DEFINE_STATIC_STRING(AortaToSplanchnic);
527  DEFINE_STATIC_STRING(SplanchnicToLiver);
528  // Spleen
529  DEFINE_STATIC_STRING(AortaToSpleen);
530  DEFINE_STATIC_STRING(SpleenToLiver);
531 
532  // Hemorrhage and IV
533  DEFINE_STATIC_STRING(VenaCavaIV);
534 
535  // Vascular To Tissue Links
536  DEFINE_STATIC_STRING(BoneVascularToTissue);
537  DEFINE_STATIC_STRING(BrainVascularToTissue);
538  DEFINE_STATIC_STRING(FatVascularToTissue);
539  DEFINE_STATIC_STRING(SmallIntestineVascularToTissue);
540  DEFINE_STATIC_STRING(LargeIntestineVascularToTissue);
541  DEFINE_STATIC_STRING(SplanchnicVascularToTissue);
542  DEFINE_STATIC_STRING(LeftKidneyVascularToTissue);
543  DEFINE_STATIC_STRING(LeftLungVascularToTissue);
544  DEFINE_STATIC_STRING(LiverVascularToTissue);
545  DEFINE_STATIC_STRING(MuscleVascularToTissue);
546  DEFINE_STATIC_STRING(MyocardiumVascularToTissue);
547  DEFINE_STATIC_STRING(RightKidneyVascularToTissue);
548  DEFINE_STATIC_STRING(RightLungVascularToTissue);
549  DEFINE_STATIC_STRING(SkinVascularToTissue);
550  DEFINE_STATIC_STRING(SpleenVascularToTissue);
551 
552  // Renal Links
553  // Reusing 'AortaToLeftKidney' to connect the Aorta To Left Renal Artery
554  DEFINE_STATIC_STRING(LeftRenalArteryToAfferentArteriole);
555  DEFINE_STATIC_STRING(LeftAfferentArterioleToGlomerularCapillaries);
556  DEFINE_STATIC_STRING(LeftGlomerularCapillariesToEfferentArteriole);
557  DEFINE_STATIC_STRING(LeftGlomerularCapillariesToBowmansCapsules);
558  DEFINE_STATIC_STRING(LeftBowmansCapsulesToTubules);
559  DEFINE_STATIC_STRING(LeftTubulesToPeritubularCapillaries);
560  DEFINE_STATIC_STRING(LeftEfferentArterioleToPeritubularCapillaries);
561  DEFINE_STATIC_STRING(LeftPeritubularCapillariesToRenalVein);
562  // Reusing 'LeftKidneyToVenaCava' to connect the Left Renal Vein To Vena Cava
563 
564  // Reusing 'AortaToRightKidney' to connect the Aorta To Right Renal Artery
565  DEFINE_STATIC_STRING(RightRenalArteryToAfferentArteriole);
566  DEFINE_STATIC_STRING(RightAfferentArterioleToGlomerularCapillaries);
567  DEFINE_STATIC_STRING(RightGlomerularCapillariesToEfferentArteriole);
568  DEFINE_STATIC_STRING(RightGlomerularCapillariesToBowmansCapsules);
569  DEFINE_STATIC_STRING(RightBowmansCapsulesToTubules);
570  DEFINE_STATIC_STRING(RightTubulesToPeritubularCapillaries);
571  DEFINE_STATIC_STRING(RightEfferentArterioleToPeritubularCapillaries);
572  DEFINE_STATIC_STRING(RightPeritubularCapillariesToRenalVein);
573  // Reusing 'RightKidneyToVenaCava' to connect the Right Renal Vein To Vena Cava);
574 
575 
576  static const std::vector<std::string>& GetValues()
577  {
578  ScopedMutex lock;
579  if (_values.empty())
580  {
581  _values.push_back(VenaCavaToRightHeart);
582  _values.push_back(RightHeartToLeftPulmonaryArteries);
583  _values.push_back(LeftPulmonaryArteriesToCapillaries);
584  _values.push_back(LeftPulmonaryArteriesToVeins);
585  _values.push_back(LeftPulmonaryCapillariesToVeins);
586  _values.push_back(LeftPulmonaryVeinsToLeftHeart);
587  _values.push_back(RightHeartToRightPulmonaryArteries);
588  _values.push_back(RightPulmonaryArteriesToCapillaries);
589  _values.push_back(RightPulmonaryArteriesToVeins);
590  _values.push_back(RightPulmonaryCapillariesToVeins);
591  _values.push_back(RightPulmonaryVeinsToLeftHeart);
592  _values.push_back(LeftHeartToAorta);
593  _values.push_back(AortaToBone);
594  _values.push_back(BoneToVenaCava);
595  _values.push_back(AortaToBrain);
596  _values.push_back(BrainToVenaCava);
597  _values.push_back(AortaToFat);
598  _values.push_back(FatToVenaCava);
599  _values.push_back(AortaToLargeIntestine);
600  _values.push_back(LargeIntestineToLiver);
601  _values.push_back(AortaToLeftArm);
602  _values.push_back(LeftArmToVenaCava);
603  _values.push_back(AortaToLeftKidney);
604  _values.push_back(LeftKidneyToVenaCava);
605  _values.push_back(AortaToLeftLeg);
606  _values.push_back(LeftLegToVenaCava);
607  _values.push_back(AortaToLiver);
608  _values.push_back(LiverToVenaCava);
609  _values.push_back(AortaToMuscle);
610  _values.push_back(MuscleToVenaCava);
611  _values.push_back(AortaToMyocardium);
612  _values.push_back(MyocardiumToVenaCava);
613  _values.push_back(AortaToRightArm);
614  _values.push_back(RightArmToVenaCava);
615  _values.push_back(AortaToRightKidney);
616  _values.push_back(RightKidneyToVenaCava);
617  _values.push_back(AortaToRightLeg);
618  _values.push_back(RightLegToVenaCava);
619  _values.push_back(AortaToSkin);
620  _values.push_back(SkinToVenaCava);
621  _values.push_back(AortaToSmallIntestine);
622  _values.push_back(SmallIntestineToLiver);
623  _values.push_back(AortaToSplanchnic);
624  _values.push_back(SplanchnicToLiver);
625  _values.push_back(AortaToSpleen);
626  _values.push_back(SpleenToLiver);
627 
628  _values.push_back(BoneVascularToTissue);
629  _values.push_back(BrainVascularToTissue);
630  _values.push_back(FatVascularToTissue);
631  _values.push_back(SmallIntestineVascularToTissue);
632  _values.push_back(LargeIntestineVascularToTissue);
633  _values.push_back(SplanchnicVascularToTissue);
634  _values.push_back(LeftKidneyVascularToTissue);
635  _values.push_back(LeftLungVascularToTissue);
636  _values.push_back(LiverVascularToTissue);
637  _values.push_back(MuscleVascularToTissue);
638  _values.push_back(MyocardiumVascularToTissue);
639  _values.push_back(RightKidneyVascularToTissue);
640  _values.push_back(RightLungVascularToTissue);
641  _values.push_back(SkinVascularToTissue);
642  _values.push_back(SpleenVascularToTissue);
643 
644  _values.push_back(LeftRenalArteryToAfferentArteriole);
645  _values.push_back(LeftAfferentArterioleToGlomerularCapillaries);
646  _values.push_back(LeftGlomerularCapillariesToEfferentArteriole);
647  _values.push_back(LeftGlomerularCapillariesToBowmansCapsules);
648  _values.push_back(LeftBowmansCapsulesToTubules);
649  _values.push_back(LeftTubulesToPeritubularCapillaries);
650  _values.push_back(LeftEfferentArterioleToPeritubularCapillaries);
651  _values.push_back(LeftPeritubularCapillariesToRenalVein);
652  _values.push_back(RightRenalArteryToAfferentArteriole);
653  _values.push_back(RightAfferentArterioleToGlomerularCapillaries);
654  _values.push_back(RightGlomerularCapillariesToEfferentArteriole);
655  _values.push_back(RightGlomerularCapillariesToBowmansCapsules);
656  _values.push_back(RightBowmansCapsulesToTubules);
657  _values.push_back(RightTubulesToPeritubularCapillaries);
658  _values.push_back(RightEfferentArterioleToPeritubularCapillaries);
659  _values.push_back(RightPeritubularCapillariesToRenalVein);
660  }
661  return _values;
662  }
663  protected:
664  static std::vector<std::string> _values;
665  };
666 
668  {
669  public:
670  DEFINE_STATIC_STRING(Ureters);
671  /*****/DEFINE_STATIC_STRING(LeftUreter);
672  /*****/DEFINE_STATIC_STRING(RightUreter);
673  DEFINE_STATIC_STRING(Bladder);
674 
675  static const std::vector<std::string>& GetValues()
676  {
677  ScopedMutex lock;
678  if (_values.empty())
679  {
680  _values.push_back(Ureters);
681  _values.push_back(LeftUreter);
682  _values.push_back(RightUreter);
683  _values.push_back(Bladder);
684  }
685  return _values;
686  }
687  protected:
688  static std::vector<std::string> _values;
689  };
690 
691  class UrineLink
692  {
693  public:
694  DEFINE_STATIC_STRING(LeftTubulesToUreter);
695  DEFINE_STATIC_STRING(LeftUreterToBladder);
696 
697  DEFINE_STATIC_STRING(RightTubulesToUreter);
698  DEFINE_STATIC_STRING(RightUreterToBladder);
699 
700  DEFINE_STATIC_STRING(BladderToGround);
701  DEFINE_STATIC_STRING(BladderToGroundSource);
702 
703  static const std::vector<std::string>& GetValues()
704  {
705  ScopedMutex lock;
706  if (_values.empty())
707  {
708  _values.push_back(LeftTubulesToUreter);
709  _values.push_back(LeftUreterToBladder);
710  _values.push_back(RightTubulesToUreter);
711  _values.push_back(RightUreterToBladder);
712  _values.push_back(BladderToGround);
713  _values.push_back(BladderToGroundSource);
714  }
715  return _values;
716  }
717  protected:
718  static std::vector<std::string> _values;
719  };
720 
722  {
723  public:
724  DEFINE_STATIC_STRING(Lymph);
725 
726  static const std::vector<std::string>& GetValues()
727  {
728  ScopedMutex lock;
729  if (_values.empty())
730  {
731  _values.push_back(Lymph);
732  }
733  return _values;
734  }
735  protected:
736  static std::vector<std::string> _values;
737  };
738 
739  class LymphLink
740  {
741  public:
742  DEFINE_STATIC_STRING(BoneTissueToLymph);
743  DEFINE_STATIC_STRING(BrainTissueToLymph);
744  DEFINE_STATIC_STRING(FatTissueToLymph);
745  DEFINE_STATIC_STRING(GutTissueToLymph);
746  DEFINE_STATIC_STRING(LeftKidneyTissueToLymph);
747  DEFINE_STATIC_STRING(LeftLungTissueToLymph);
748  DEFINE_STATIC_STRING(LiverTissueToLymph);
749  DEFINE_STATIC_STRING(MuscleTissueToLymph);
750  DEFINE_STATIC_STRING(MyocardiumTissueToLymph);
751  DEFINE_STATIC_STRING(RightKidneyTissueToLymph);
752  DEFINE_STATIC_STRING(RightLungTissueToLymph);
753  DEFINE_STATIC_STRING(SkinTissueToLymph);
754  DEFINE_STATIC_STRING(SpleenTissueToLymph);
755 
756  DEFINE_STATIC_STRING(LymphToVenaCava);
757 
758  static const std::vector<std::string>& GetValues()
759  {
760  ScopedMutex lock;
761  if (_values.empty())
762  {
763  _values.push_back(BoneTissueToLymph);
764  _values.push_back(BrainTissueToLymph);
765  _values.push_back(FatTissueToLymph);
766  _values.push_back(GutTissueToLymph);
767  _values.push_back(LeftKidneyTissueToLymph);
768  _values.push_back(LeftLungTissueToLymph);
769  _values.push_back(LiverTissueToLymph);
770  _values.push_back(MuscleTissueToLymph);
771  _values.push_back(MyocardiumTissueToLymph);
772  _values.push_back(RightKidneyTissueToLymph);
773  _values.push_back(RightLungTissueToLymph);
774  _values.push_back(SkinTissueToLymph);
775  _values.push_back(SpleenTissueToLymph);
776  _values.push_back(LymphToVenaCava);
777  }
778  return _values;
779  }
780  protected:
781  static std::vector<std::string> _values;
782  };
783 
785  {
786  public:
787  DEFINE_STATIC_STRING(Active);
788  DEFINE_STATIC_STRING(Ambient);
789  DEFINE_STATIC_STRING(Clothing);
790  DEFINE_STATIC_STRING(Enclosure);
791  DEFINE_STATIC_STRING(ExternalCore);
792  DEFINE_STATIC_STRING(ExternalSkin);
793  DEFINE_STATIC_STRING(ExternalGround);
794  DEFINE_STATIC_STRING(InternalCore);
795  DEFINE_STATIC_STRING(InternalSkin);
796  DEFINE_STATIC_STRING(InternalGround);
797 
798  static const std::vector<std::string>& GetValues()
799  {
800  ScopedMutex lock;
801  if (_values.empty())
802  {
803  _values.push_back(Active);
804  _values.push_back(Ambient);
805  _values.push_back(Clothing);
806  _values.push_back(Enclosure);
807  _values.push_back(ExternalCore);
808  _values.push_back(ExternalSkin);
809  _values.push_back(ExternalGround);
810  _values.push_back(InternalCore);
811  _values.push_back(InternalSkin);
812  _values.push_back(InternalGround);
813  }
814  return _values;
815  }
816  protected:
817  static std::vector<std::string> _values;
818  };
819 
821  {
822  public:
823 
824  DEFINE_STATIC_STRING(ActiveToClothing);
825  DEFINE_STATIC_STRING(ClothingToEnclosure);
826  DEFINE_STATIC_STRING(ClothingToEnvironment);
827  DEFINE_STATIC_STRING(ExternalCoreToGround);
828  DEFINE_STATIC_STRING(GroundToActive);
829  DEFINE_STATIC_STRING(GroundToClothing);
830  DEFINE_STATIC_STRING(GroundToEnclosure);
831  DEFINE_STATIC_STRING(GroundToEnvironment);
832  DEFINE_STATIC_STRING(ExternalSkinToGround);
833  DEFINE_STATIC_STRING(ExternalSkinToClothing);
834  DEFINE_STATIC_STRING(GroundToInternalCore);
835  DEFINE_STATIC_STRING(InternalCoreToInternalSkin);
836  DEFINE_STATIC_STRING(InternalCoreToGround);
837  DEFINE_STATIC_STRING(InternalSkinToGround);
838  DEFINE_STATIC_STRING(InternalCoreToExternalCore);
839  DEFINE_STATIC_STRING(InternalSkinToExternalSkin);
840 
841  static const std::vector<std::string>& GetValues()
842  {
843  ScopedMutex lock;
844  if (_values.empty())
845  {
846  _values.push_back(ActiveToClothing);
847  _values.push_back(ClothingToEnclosure);
848  _values.push_back(ClothingToEnvironment);
849  _values.push_back(ExternalCoreToGround);
850  _values.push_back(GroundToActive);
851  _values.push_back(GroundToClothing);
852  _values.push_back(GroundToEnclosure);
853  _values.push_back(GroundToEnvironment);
854  _values.push_back(ExternalSkinToGround);
855  _values.push_back(ExternalSkinToClothing);
856  _values.push_back(GroundToInternalCore);
857  _values.push_back(InternalCoreToInternalSkin);
858  _values.push_back(InternalCoreToGround);
859  _values.push_back(InternalSkinToGround);
860  _values.push_back(InternalCoreToExternalCore);
861  _values.push_back(InternalSkinToExternalSkin);
862  }
863  return _values;
864  }
865  protected:
866  static std::vector<std::string> _values;
867  };
868 
870  {
871  public:
872  DEFINE_STATIC_STRING(Ambient);
873 
874  static const std::vector<std::string>& GetValues()
875  {
876  ScopedMutex lock;
877  if (_values.empty())
878  {
879  _values.push_back(Ambient);
880  }
881  return _values;
882  }
883  protected:
884  static std::vector<std::string> _values;
885  };
886 
888  {
889  public:
890  DEFINE_STATIC_STRING(AnesthesiaConnection);
891  DEFINE_STATIC_STRING(ExpiratoryLimb);
892  DEFINE_STATIC_STRING(GasInlet);
893  DEFINE_STATIC_STRING(GasSource);
894  DEFINE_STATIC_STRING(InspiratoryLimb);
895  DEFINE_STATIC_STRING(ReliefValve);
896  DEFINE_STATIC_STRING(Scrubber);
897  DEFINE_STATIC_STRING(Selector);
898  DEFINE_STATIC_STRING(Ventilator);
899  DEFINE_STATIC_STRING(VentilatorConnection);
900  DEFINE_STATIC_STRING(YPiece);
901 
902  static const std::vector<std::string>& GetValues()
903  {
904  ScopedMutex lock;
905  if (_values.empty())
906  {
907  _values.push_back(AnesthesiaConnection);
908  _values.push_back(ExpiratoryLimb);
909  _values.push_back(GasInlet);
910  _values.push_back(GasSource);
911  _values.push_back(InspiratoryLimb);
912  _values.push_back(ReliefValve);
913  _values.push_back(Scrubber);
914  _values.push_back(Selector);
915  _values.push_back(Ventilator);
916  _values.push_back(VentilatorConnection);
917  _values.push_back(YPiece);
918  }
919  return _values;
920  }
921  protected:
922  static std::vector<std::string> _values;
923  };
924 
926  {
927  public:
928  DEFINE_STATIC_STRING(VentilatorToSelector);
929  DEFINE_STATIC_STRING(SelectorToReliefValve);
930  DEFINE_STATIC_STRING(SelectorToScrubber);
931  DEFINE_STATIC_STRING(ScrubberToGasInlet);
932  DEFINE_STATIC_STRING(Exhaust);
933  DEFINE_STATIC_STRING(GasSourceToGasInlet);
934  DEFINE_STATIC_STRING(GasInletToInspiratoryLimb);
935  DEFINE_STATIC_STRING(InspiratoryLimbToYPiece);
936  DEFINE_STATIC_STRING(YPieceToExpiratoryLimb);
937  DEFINE_STATIC_STRING(ExpiratoryLimbToSelector);
938  DEFINE_STATIC_STRING(YPieceToAnesthesiaConnection);
939  DEFINE_STATIC_STRING(AnesthesiaConnectionLeak);
940  DEFINE_STATIC_STRING(Mask);
941 
942  static const std::vector<std::string>& GetValues()
943  {
944  ScopedMutex lock;
945  if (_values.empty())
946  {
947  _values.push_back(VentilatorToSelector);
948  _values.push_back(SelectorToReliefValve);
949  _values.push_back(SelectorToScrubber);
950  _values.push_back(ScrubberToGasInlet);
951  _values.push_back(Exhaust);
952  _values.push_back(GasSourceToGasInlet);
953  _values.push_back(GasInletToInspiratoryLimb);
954  _values.push_back(InspiratoryLimbToYPiece);
955  _values.push_back(YPieceToExpiratoryLimb);
956  _values.push_back(ExpiratoryLimbToSelector);
957  _values.push_back(YPieceToAnesthesiaConnection);
958  _values.push_back(AnesthesiaConnectionLeak);
959  _values.push_back(Mask);
960  }
961  return _values;
962  }
963  protected:
964  static std::vector<std::string> _values;
965  };
966 
968  {
969  public:
970  DEFINE_STATIC_STRING(Mouthpiece);
971 
972  static const std::vector<std::string>& GetValues()
973  {
974  ScopedMutex lock;
975  if (_values.empty())
976  {
977  _values.push_back(Mouthpiece);
978  }
979  return _values;
980  }
981  protected:
982  static std::vector<std::string> _values;
983  };
984 
986  {
987  public:
988  DEFINE_STATIC_STRING(EnvironmentToMouthpiece);
989  DEFINE_STATIC_STRING(MouthpieceToMouth);
990 
991  static const std::vector<std::string>& GetValues()
992  {
993  ScopedMutex lock;
994  if (_values.empty())
995  {
996  _values.push_back(EnvironmentToMouthpiece);
997  _values.push_back(MouthpieceToMouth);
998  }
999  return _values;
1000  }
1001  protected:
1002  static std::vector<std::string> _values;
1003  };
1004 
1006  {
1007  public:
1008  DEFINE_STATIC_STRING(Connection);
1009 
1010  static const std::vector<std::string>& GetValues()
1011  {
1012  ScopedMutex lock;
1013  if (_values.empty())
1014  {
1015  _values.push_back(Connection);
1016  }
1017  return _values;
1018  }
1019  protected:
1020  static std::vector<std::string> _values;
1021  };
1022 
1024  {
1025  public:
1026  DEFINE_STATIC_STRING(ConnectionToMouth);
1027 
1028  static const std::vector<std::string>& GetValues()
1029  {
1030  ScopedMutex lock;
1031  if (_values.empty())
1032  {
1033  _values.push_back(ConnectionToMouth);
1034  }
1035  return _values;
1036  }
1037  protected:
1038  static std::vector<std::string> _values;
1039  };
1040 }
1041 
The Respiratory System class handles the analysis and storage of data related the respiratory physiol...
Definition: Respiratory.h:33
static std::vector< std::string > _values
Definition: PulsePhysiologyEngine.h:75
Definition: PulsePhysiologyEngine.h:721
static const std::vector< std::string > & GetValues()
Definition: PulsePhysiologyEngine.h:136
static const std::vector< std::string > & GetValues()
Definition: PulsePhysiologyEngine.h:874
static const std::vector< std::string > & GetValues()
Definition: PulsePhysiologyEngine.h:726
Definition: ScopedMutex.h:6
Definition: Logger.h:61
static const std::vector< std::string > & GetValues()
Definition: PulsePhysiologyEngine.h:232
Definition: PulsePhysiologyEngine.h:967
Definition: PulsePhysiologyEngine.h:78
Definition: Circuits.h:79
static const std::vector< std::string > & GetValues()
Definition: PulsePhysiologyEngine.h:798
static const std::vector< std::string > & GetValues()
Definition: PulsePhysiologyEngine.h:83
static std::vector< std::string > _values
Definition: PulsePhysiologyEngine.h:922
Definition: PulsePhysiologyEngine.h:114
DEFINE_STATIC_STRING_EX(Version, Pulse_1.0.0_beta)
The Cardiovascular system utilizes circuit methodology to characterize the intravascular fluid dynami...
Definition: Cardiovascular.h:30
Definition: PulsePhysiologyEngine.h:257
static std::vector< std::string > _values
Definition: PulsePhysiologyEngine.h:884
static std::vector< std::string > _values
Definition: PulsePhysiologyEngine.h:688
DEFINE_STATIC_STRING(ActiveCardiovascular)
static const std::vector< std::string > & GetValues()
Definition: PulsePhysiologyEngine.h:902
static std::vector< std::string > _values
Definition: PulsePhysiologyEngine.h:817
static std::vector< std::string > _values
Definition: PulsePhysiologyEngine.h:1020
static const std::vector< std::string > & GetValues()
Definition: PulsePhysiologyEngine.h:288
static std::vector< std::string > _values
Definition: PulsePhysiologyEngine.h:461
static std::vector< std::string > _values
Definition: PulsePhysiologyEngine.h:254
Definition: PulsePhysiologyEngine.h:784
Generic anesthesia machine for positive pressure ventilation.
Definition: AnesthesiaMachine.h:17
Definition: PulsePhysiologyEngine.h:667
static const std::vector< std::string > & GetValues()
Definition: PulsePhysiologyEngine.h:972
static const std::vector< std::string > & GetValues()
Definition: PulsePhysiologyEngine.h:395
Definition: PulsePhysiologyEngine.h:869
static std::vector< std::string > _values
Definition: PulsePhysiologyEngine.h:324
static std::vector< std::string > _values
Definition: PulsePhysiologyEngine.h:93
static std::vector< std::string > _values
Definition: PulsePhysiologyEngine.h:736
Definition: PulsePhysiologyEngine.h:887
static const std::vector< std::string > & GetValues()
Definition: PulsePhysiologyEngine.h:675
Definition: PulsePhysiologyEngine.h:215
Definition: PulsePhysiologyEngine.h:1005
Definition: PulsePhysiologyEngine.h:40
Definition: PulsePhysiologyEngine.h:327
Definition: Renal.h:20
static std::vector< std::string > _values
Definition: PulsePhysiologyEngine.h:982
static std::vector< std::string > _values
Definition: PulsePhysiologyEngine.h:162
static const std::vector< std::string > & GetValues()
Definition: PulsePhysiologyEngine.h:55
static const std::vector< std::string > & GetValues()
Definition: PulsePhysiologyEngine.h:1010