BioGearsPhysiologyEngine.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/exports.h>
15 
16 #include <biogears/cdm/CommonDataModel.h>
17 // CDM Features in use
18 #include <biogears/cdm/engine/PhysiologyEngine.h>
19 #include <biogears/cdm/utils/FileUtils.h>
20 
21 #include <memory>
22 
23 namespace biogears {
24 BIOGEARS_API std::unique_ptr<biogears::PhysiologyEngine> CreateBioGearsEngine(biogears::Logger* logger = nullptr);
25 BIOGEARS_API std::unique_ptr<biogears::PhysiologyEngine> CreateBioGearsEngine(const std::string logfile = "");
26 BIOGEARS_API std::unique_ptr<biogears::PhysiologyEngine> CreateBioGearsEngine(const char* logfile = "");
27 BIOGEARS_API std::unique_ptr<biogears::PhysiologyEngine> CreateBioGearsEngine(const std::string working_dir, const std::string logfile);
28 BIOGEARS_API std::unique_ptr<biogears::PhysiologyEngine> CreateBioGearsEngine(const char* working_dir, const char* logfile);
29 BIOGEARS_API std::unique_ptr<biogears::PhysiologyEngine> CreateBioGearsEngine(const std::string working_dir, biogears::Logger* logger);
30 BIOGEARS_API std::unique_ptr<biogears::PhysiologyEngine> CreateBioGearsEngine(const char* working_dir, biogears::Logger* logger);
31 }
32 
33 namespace mil {
34 namespace tatrc {
35  namespace physiology {
36  namespace biogears {
37 
38  DEFINE_STATIC_STRING_EX(Version, BioGears_6 .1.1_beta);
39 
40  namespace Graph {
41 
42  DEFINE_STATIC_STRING(ActiveCardiovascular);
43  DEFINE_STATIC_STRING(Cardiovascular);
44  DEFINE_STATIC_STRING(Cerebral);
45  DEFINE_STATIC_STRING(Renal);
46  DEFINE_STATIC_STRING(Respiratory);
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(AnesthesiaMachine);
53 
54  static const std::vector<std::string>& GetValues()
55  {
56  static std::vector<std::string> _values = {
57  ActiveCardiovascular, Cardiovascular, Renal, Respiratory, RespiratoryAndAnesthesiaMachine, RespiratoryAndInhaler, RespiratoryAndMechanicalVentilator, Aerosol, AerosolAndInhaler, AnesthesiaMachine
58  };
59  return _values;
60  }
61  };
62 
63  namespace ChymeCompartment {
64 
65  DEFINE_STATIC_STRING_EX(SmallIntestine, SmallIntestineChyme);
66 
67  static const std::vector<std::string>& GetValues()
68  {
69  static std::vector<std::string> _values = {
70  SmallIntestine
71  };
72  return _values;
73  }
74  };
75 
76  namespace ChymeLink {
77 
78  DEFINE_STATIC_STRING(SmallIntestineChymeToVasculature);
79  static const std::vector<std::string>& GetValues()
80  {
81 
82  static std::vector<std::string> _values = {
83  SmallIntestineChymeToVasculature
84  };
85  return _values;
86  }
87  };
88 
89  namespace PulmonaryCompartment {
90  DEFINE_STATIC_STRING(Mouth);
91  DEFINE_STATIC_STRING(Stomach);
92  DEFINE_STATIC_STRING(Trachea);
93  DEFINE_STATIC_STRING_EX(Lungs, PulmonaryLungs);
94  DEFINE_STATIC_STRING_EX(LeftLung, LeftLungPulmonary);
95  DEFINE_STATIC_STRING(LeftBronchi);
96  DEFINE_STATIC_STRING(LeftAlveoli);
97  DEFINE_STATIC_STRING_EX(RightLung, RightLungPulmonary);
98  DEFINE_STATIC_STRING(RightBronchi);
99  DEFINE_STATIC_STRING(RightAlveoli);
100  DEFINE_STATIC_STRING(PleuralCavity);
101  DEFINE_STATIC_STRING(LeftPleuralCavity);
102  DEFINE_STATIC_STRING(RightPleuralCavity);
103 
104  DEFINE_STATIC_STRING(LeftAlveoliLeak);
105  DEFINE_STATIC_STRING(LeftChestLeak);
106  DEFINE_STATIC_STRING(RightAlveoliLeak);
107  DEFINE_STATIC_STRING(RightChestLeak);
108 
109  static const std::vector<std::string>& GetValues()
110  {
111 
112  static std::vector<std::string> _values = {
113  Mouth, Stomach, Trachea, Lungs, LeftLung, LeftBronchi, LeftAlveoli, RightLung, RightBronchi, RightAlveoli, PleuralCavity, LeftPleuralCavity, RightPleuralCavity, LeftAlveoliLeak, LeftChestLeak, RightAlveoliLeak, RightChestLeak
114  };
115  return _values;
116  }
117  };
118 
119  namespace PulmonaryLink {
120 
121  DEFINE_STATIC_STRING(EnvironmentToMouth);
122  DEFINE_STATIC_STRING(MouthToTrachea);
123  DEFINE_STATIC_STRING(MouthToStomach);
124  DEFINE_STATIC_STRING(TracheaToLeftBronchi);
125  DEFINE_STATIC_STRING(LeftBronchiToAlveoli);
126  DEFINE_STATIC_STRING(TracheaToRightBronchi);
127  DEFINE_STATIC_STRING(RightBronchiToAlveoli);
128  DEFINE_STATIC_STRING(EnvironmentToLeftChestLeak);
129  DEFINE_STATIC_STRING(EnvironmentToRightChestLeak);
130  DEFINE_STATIC_STRING(LeftAlveoliLeakToLeftPleuralCavity);
131  DEFINE_STATIC_STRING(LeftAlveoliToLeftAlveoliLeak);
132  DEFINE_STATIC_STRING(LeftChestLeakToLeftPleuralCavity);
133  DEFINE_STATIC_STRING(LeftPleuralCavityToEnvironment);
134  DEFINE_STATIC_STRING(RightAlveoliLeakToRightPleuralCavity);
135  DEFINE_STATIC_STRING(RightAlveoliToRightAlveoliLeak);
136  DEFINE_STATIC_STRING(RightChestLeakToRightPleuralCavity);
137  DEFINE_STATIC_STRING(RightPleuralCavityToEnvironment);
138 
139  static const std::vector<std::string>& GetValues()
140  {
141 
142  static std::vector<std::string> _values = {
143  EnvironmentToMouth, MouthToTrachea, MouthToStomach, TracheaToLeftBronchi, LeftBronchiToAlveoli, TracheaToRightBronchi, RightBronchiToAlveoli, EnvironmentToLeftChestLeak, EnvironmentToRightChestLeak, LeftAlveoliLeakToLeftPleuralCavity, LeftAlveoliToLeftAlveoliLeak, LeftChestLeakToLeftPleuralCavity, LeftPleuralCavityToEnvironment, RightAlveoliLeakToRightPleuralCavity, RightAlveoliToRightAlveoliLeak, RightChestLeakToRightPleuralCavity, RightPleuralCavityToEnvironment
144  };
145  return _values;
146  }
147  };
148 
149  namespace TissueCompartment {
150 
151  DEFINE_STATIC_STRING_EX(Bone, BoneTissue);
152  DEFINE_STATIC_STRING_EX(Brain, BrainTissue);
153  DEFINE_STATIC_STRING_EX(Fat, FatTissue);
154  DEFINE_STATIC_STRING_EX(Gut, GutTissue);
155  DEFINE_STATIC_STRING_EX(LeftKidney, LeftKidneyTissue);
156  DEFINE_STATIC_STRING_EX(LeftLung, LeftLungTissue);
157  DEFINE_STATIC_STRING_EX(Liver, LiverTissue);
158  DEFINE_STATIC_STRING_EX(Muscle, MuscleTissue);
159  DEFINE_STATIC_STRING_EX(Myocardium, MyocardiumTissue);
160  DEFINE_STATIC_STRING_EX(RightKidney, RightKidneyTissue);
161  DEFINE_STATIC_STRING_EX(RightLung, RightLungTissue);
162  DEFINE_STATIC_STRING_EX(Skin, SkinTissue);
163  DEFINE_STATIC_STRING_EX(Spleen, SpleenTissue);
164 
165  static const std::vector<std::string>& GetValues()
166  {
167  static std::vector<std::string> _values = {
168  Bone, Brain, Fat, Gut, LeftKidney, LeftLung, Liver, Muscle, Myocardium, RightKidney, RightLung, Skin, Spleen
169  };
170  return _values;
171  }
172  };
173 
174  namespace ExtravascularCompartment {
175 
176  DEFINE_STATIC_STRING_EX(BoneExtracellular, BoneTissueExtracellular);
177  DEFINE_STATIC_STRING_EX(BrainExtracellular, BrainTissueExtracellular);
178  DEFINE_STATIC_STRING(CerebralSpinalFluid);
179  DEFINE_STATIC_STRING_EX(FatExtracellular, FatTissueExtracellular);
180  DEFINE_STATIC_STRING_EX(GutExtracellular, GutTissueExtracellular);
181  DEFINE_STATIC_STRING_EX(LeftKidneyExtracellular, LeftKidneyTissueExtracellular);
182  DEFINE_STATIC_STRING_EX(LeftLungExtracellular, LeftLungTissueExtracellular);
183  DEFINE_STATIC_STRING_EX(LiverExtracellular, LiverTissueExtracellular);
184  DEFINE_STATIC_STRING_EX(MuscleExtracellular, MuscleTissueExtracellular);
185  DEFINE_STATIC_STRING_EX(MyocardiumExtracellular, MyocardiumTissueExtracellular);
186  DEFINE_STATIC_STRING_EX(RightKidneyExtracellular, RightKidneyTissueExtracellular);
187  DEFINE_STATIC_STRING_EX(RightLungExtracellular, RightLungTissueExtracellular);
188  DEFINE_STATIC_STRING_EX(SkinExtracellular, SkinTissueExtracellular);
189  DEFINE_STATIC_STRING_EX(SpleenExtracellular, SpleenTissueExtracellular);
190 
191  DEFINE_STATIC_STRING_EX(BoneIntracellular, BoneTissueIntracellular);
192  DEFINE_STATIC_STRING_EX(BrainIntracellular, BrainTissueIntracellular);
193  DEFINE_STATIC_STRING_EX(FatIntracellular, FatTissueIntracellular);
194  DEFINE_STATIC_STRING_EX(GutIntracellular, GutTissueIntracellular);
195  DEFINE_STATIC_STRING_EX(LeftKidneyIntracellular, LeftKidneyTissueIntracellular);
196  DEFINE_STATIC_STRING_EX(LeftLungIntracellular, LeftLungTissueIntracellular);
197  DEFINE_STATIC_STRING_EX(LiverIntracellular, LiverTissueIntracellular);
198  DEFINE_STATIC_STRING_EX(MuscleIntracellular, MuscleTissueIntracellular);
199  DEFINE_STATIC_STRING_EX(MyocardiumIntracellular, MyocardiumTissueIntracellular);
200  DEFINE_STATIC_STRING_EX(RightKidneyIntracellular, RightKidneyTissueIntracellular);
201  DEFINE_STATIC_STRING_EX(RightLungIntracellular, RightLungTissueIntracellular);
202  DEFINE_STATIC_STRING_EX(SkinIntracellular, SkinTissueIntracellular);
203  DEFINE_STATIC_STRING_EX(SpleenIntracellular, SpleenTissueIntracellular);
204 
205  static const std::vector<std::string>& GetValues()
206  {
207  static std::vector<std::string> _values = {
208  BoneExtracellular, BrainExtracellular, CerebralSpinalFluid, FatExtracellular, GutExtracellular, LeftKidneyExtracellular, LeftLungExtracellular, LiverExtracellular, MuscleExtracellular, MyocardiumExtracellular, RightKidneyExtracellular, RightLungExtracellular, SkinExtracellular, SpleenExtracellular, BoneIntracellular, BrainIntracellular, FatIntracellular, GutIntracellular, LeftKidneyIntracellular, LeftLungIntracellular, LiverIntracellular, MuscleIntracellular, MyocardiumIntracellular, RightKidneyIntracellular, RightLungIntracellular, SkinIntracellular, SpleenIntracellular
209  };
210  return _values;
211  }
212  };
213 
214  namespace VascularCompartment {
215 
216  // Cardio
217  DEFINE_STATIC_STRING(Aorta);
218  DEFINE_STATIC_STRING(Heart);
219  DEFINE_STATIC_STRING_EX(Myocardium, MyocardiumVasculature);
220  DEFINE_STATIC_STRING(LeftHeart);
221  DEFINE_STATIC_STRING(LeftAtrium);
222  DEFINE_STATIC_STRING(LeftVentricle);
223  DEFINE_STATIC_STRING(RightHeart);
224  DEFINE_STATIC_STRING(RightAtrium);
225  DEFINE_STATIC_STRING(RightVentricle);
226  DEFINE_STATIC_STRING(Pericardium);
227  DEFINE_STATIC_STRING(VenaCava);
228  //Cerebral
229  DEFINE_STATIC_STRING(NeckArteries);
230  DEFINE_STATIC_STRING(CerebralArteries);
231  DEFINE_STATIC_STRING(CerebralCapillaries);
232  DEFINE_STATIC_STRING(CerebralVeins);
233  DEFINE_STATIC_STRING(NeckVeins);
234 
235  // Pulmonary
236  DEFINE_STATIC_STRING(PulmonaryArteries);
237  DEFINE_STATIC_STRING(PulmonaryCapillaries);
238  DEFINE_STATIC_STRING(PulmonaryVeins);
239  DEFINE_STATIC_STRING_EX(Lungs, LungsVasculature);
240  DEFINE_STATIC_STRING_EX(LeftLung, LeftLungVasculature);
241  DEFINE_STATIC_STRING(LeftPulmonaryArteries);
242  DEFINE_STATIC_STRING(LeftPulmonaryCapillaries);
243  DEFINE_STATIC_STRING(LeftPulmonaryVeins);
244  DEFINE_STATIC_STRING_EX(RightLung, RightLungVasculature);
245  DEFINE_STATIC_STRING(RightPulmonaryArteries);
246  DEFINE_STATIC_STRING(RightPulmonaryCapillaries);
247  DEFINE_STATIC_STRING(RightPulmonaryVeins);
248  // Renal
249  DEFINE_STATIC_STRING_EX(Kidneys, KidneyVasculature);
250  DEFINE_STATIC_STRING_EX(LeftKidney, LeftKidneyVasculature);
251  DEFINE_STATIC_STRING(LeftRenalArtery);
252  DEFINE_STATIC_STRING(LeftNephron);
253  DEFINE_STATIC_STRING(LeftAfferentArteriole);
254  DEFINE_STATIC_STRING(LeftGlomerularCapillaries);
255  DEFINE_STATIC_STRING(LeftEfferentArteriole);
256  DEFINE_STATIC_STRING(LeftPeritubularCapillaries);
257  DEFINE_STATIC_STRING(LeftBowmansCapsules);
258  DEFINE_STATIC_STRING(LeftTubules);
259  DEFINE_STATIC_STRING(LeftRenalVein);
260  DEFINE_STATIC_STRING_EX(RightKidney, RightKidneyVasculature);
261  DEFINE_STATIC_STRING(RightRenalArtery);
262  DEFINE_STATIC_STRING(RightNephron);
263  DEFINE_STATIC_STRING(RightAfferentArteriole);
264  DEFINE_STATIC_STRING(RightGlomerularCapillaries);
265  DEFINE_STATIC_STRING(RightEfferentArteriole);
266  DEFINE_STATIC_STRING(RightPeritubularCapillaries);
267  DEFINE_STATIC_STRING(RightBowmansCapsules);
268  DEFINE_STATIC_STRING(RightTubules);
269  DEFINE_STATIC_STRING(RightRenalVein);
270  // General Organs and Periphery
271  DEFINE_STATIC_STRING_EX(Bone, BoneVasculature);
272  DEFINE_STATIC_STRING_EX(Brain, BrainVasculature);
273  DEFINE_STATIC_STRING_EX(Fat, FatVasculature);
274  DEFINE_STATIC_STRING_EX(Gut, GutVasculature);
275  DEFINE_STATIC_STRING_EX(Splanchnic, SplanchnicVasculature);
276  DEFINE_STATIC_STRING_EX(SmallIntestine, SmallIntestineVasculature);
277  DEFINE_STATIC_STRING_EX(LargeIntestine, LargeIntestineVasculature);
278  DEFINE_STATIC_STRING_EX(Liver, LiverVasculature);
279  DEFINE_STATIC_STRING_EX(Spleen, SpleenVasculature);
280  DEFINE_STATIC_STRING_EX(Skin, SkinVasculature);
281  DEFINE_STATIC_STRING_EX(Muscle, MuscleVasculature);
282  DEFINE_STATIC_STRING_EX(LeftArm, LeftArmVasculature);
283  DEFINE_STATIC_STRING_EX(LeftLeg, LeftLegVasculature);
284  DEFINE_STATIC_STRING_EX(RightArm, RightArmVasculature);
285  DEFINE_STATIC_STRING_EX(RightLeg, RightLegVasculature);
286 
287  DEFINE_STATIC_STRING(Ground);
288 
289  static const std::vector<std::string>& GetValues()
290  {
291  static std::vector<std::string> _values = {
292  Aorta, Heart, Myocardium, LeftHeart, LeftAtrium, LeftVentricle, RightHeart, RightAtrium, RightVentricle, Pericardium, VenaCava, CerebralArteries, CerebralCapillaries, CerebralVeins, NeckArteries, NeckVeins, PulmonaryArteries, PulmonaryCapillaries, PulmonaryVeins, Lungs, LeftLung, LeftPulmonaryArteries, LeftPulmonaryCapillaries, LeftPulmonaryVeins, RightLung, RightPulmonaryArteries, RightPulmonaryCapillaries, RightPulmonaryVeins, Kidneys, LeftKidney, LeftRenalArtery, LeftNephron, LeftAfferentArteriole, LeftGlomerularCapillaries, LeftEfferentArteriole, LeftPeritubularCapillaries, LeftBowmansCapsules, LeftTubules, LeftRenalVein, RightKidney, RightRenalArtery, RightNephron, RightAfferentArteriole, RightGlomerularCapillaries, RightEfferentArteriole, RightPeritubularCapillaries, RightBowmansCapsules, RightTubules, RightRenalVein, Bone, Brain, Fat, Gut, Splanchnic, SmallIntestine, LargeIntestine, Liver, Spleen, Skin, Muscle, LeftArm, LeftLeg, RightArm, RightLeg
293  //,Ground
294  };
295  return _values;
296  }
297  };
298 
299  namespace VascularLink {
300 
301  // Heart and Lungs
302  DEFINE_STATIC_STRING(VenaCavaToRightAtrium);
303  DEFINE_STATIC_STRING(RightAtriumToRightVentricle);
304  DEFINE_STATIC_STRING(RightVentricleToLeftPulmonaryArteries);
305  DEFINE_STATIC_STRING(LeftPulmonaryArteriesToCapillaries);
306  DEFINE_STATIC_STRING(LeftPulmonaryArteriesToVeins);
307  DEFINE_STATIC_STRING(LeftPulmonaryCapillariesToVeins);
308  DEFINE_STATIC_STRING(LeftPulmonaryVeinsToLeftAtrium);
309  DEFINE_STATIC_STRING(RightVentricleToRightPulmonaryArteries);
310  DEFINE_STATIC_STRING(RightPulmonaryArteriesToCapillaries);
311  DEFINE_STATIC_STRING(RightPulmonaryArteriesToVeins);
312  DEFINE_STATIC_STRING(RightPulmonaryCapillariesToVeins);
313  DEFINE_STATIC_STRING(RightPulmonaryVeinsToLeftAtrium);
314  DEFINE_STATIC_STRING(LeftAtriumToLeftVentricle);
315  DEFINE_STATIC_STRING(LeftVentricleToAorta);
316  //Cerebral
317  DEFINE_STATIC_STRING(AortaToNeckArteries);
318  DEFINE_STATIC_STRING(NeckArteriesToCerebralArteries);
319  DEFINE_STATIC_STRING(CerebralArteriesToCerebralCapillaries);
320  DEFINE_STATIC_STRING(CerebralCapillariesToCerebralVeins);
321  DEFINE_STATIC_STRING(CerebralVeinsToNeckVeins);
322  DEFINE_STATIC_STRING(NeckVeinsToVenaCava);
323  // Bone
324  DEFINE_STATIC_STRING(AortaToBone);
325  DEFINE_STATIC_STRING(BoneToVenaCava);
326  // Brain
327  DEFINE_STATIC_STRING(AortaToBrain);
328  DEFINE_STATIC_STRING(BrainToVenaCava);
329  // Fat
330  DEFINE_STATIC_STRING(AortaToFat);
331  DEFINE_STATIC_STRING(FatToVenaCava);
332  // Large Intestine
333  DEFINE_STATIC_STRING(AortaToLargeIntestine);
334  DEFINE_STATIC_STRING(LargeIntestineToLiver);
335  // Left Arm
336  DEFINE_STATIC_STRING(AortaToLeftArm);
337  DEFINE_STATIC_STRING(LeftArmToVenaCava);
338  // Left Kidney
339  DEFINE_STATIC_STRING(AortaToLeftKidney);
340  DEFINE_STATIC_STRING(LeftKidneyToVenaCava);
341  // Left Leg
342  DEFINE_STATIC_STRING(AortaToLeftLeg);
343  DEFINE_STATIC_STRING(LeftLegToVenaCava);
344  // Liver
345  DEFINE_STATIC_STRING(AortaToLiver);
346  DEFINE_STATIC_STRING(LiverToVenaCava);
347  // Muscle
348  DEFINE_STATIC_STRING(AortaToMuscle);
349  DEFINE_STATIC_STRING(MuscleToVenaCava);
350  // Myocardium
351  DEFINE_STATIC_STRING(AortaToMyocardium);
352  DEFINE_STATIC_STRING(MyocardiumToVenaCava);
353  // Right Arm
354  DEFINE_STATIC_STRING(AortaToRightArm);
355  DEFINE_STATIC_STRING(RightArmToVenaCava);
356  // Right Kidney
357  DEFINE_STATIC_STRING(AortaToRightKidney);
358  DEFINE_STATIC_STRING(RightKidneyToVenaCava);
359  // Right Leg
360  DEFINE_STATIC_STRING(AortaToRightLeg);
361  DEFINE_STATIC_STRING(RightLegToVenaCava);
362  // Skin
363  DEFINE_STATIC_STRING(AortaToSkin);
364  DEFINE_STATIC_STRING(SkinToVenaCava);
365  // Small Intestine
366  DEFINE_STATIC_STRING(AortaToSmallIntestine);
367  DEFINE_STATIC_STRING(SmallIntestineToLiver);
368  // Splanchnic
369  DEFINE_STATIC_STRING(AortaToSplanchnic);
370  DEFINE_STATIC_STRING(SplanchnicToLiver);
371  // Spleen
372  DEFINE_STATIC_STRING(AortaToSpleen);
373  DEFINE_STATIC_STRING(SpleenToLiver);
374 
375  // Hemorrhage and IV
376  DEFINE_STATIC_STRING(VenaCavaIV);
377  DEFINE_STATIC_STRING(VenaCavaHemorrhage);
378  DEFINE_STATIC_STRING(AortaHemorrhage);
379  DEFINE_STATIC_STRING(BrainHemorrhage);
380  DEFINE_STATIC_STRING(HeartHemorrhage);
381  DEFINE_STATIC_STRING(LeftLungHemorrhage);
382  DEFINE_STATIC_STRING(RightLungHemorrhage);
383  DEFINE_STATIC_STRING(LeftArmHemorrhage);
384  DEFINE_STATIC_STRING(RightArmHemorrhage);
385  DEFINE_STATIC_STRING(SpleenHemorrhage);
386  DEFINE_STATIC_STRING(SmallIntestineHemorrhage);
387  DEFINE_STATIC_STRING(LargeIntestineHemorrhage);
388  DEFINE_STATIC_STRING(SplanchnicHemorrhage);
389  DEFINE_STATIC_STRING(LeftKidneyHemorrhage);
390  DEFINE_STATIC_STRING(RightKidneyHemorrhage);
391  DEFINE_STATIC_STRING(LiverHemorrhage);
392  DEFINE_STATIC_STRING(LeftLegHemorrhage);
393  DEFINE_STATIC_STRING(RightLegHemorrhage);
394 
395  // Vascular To Tissue Links
396  DEFINE_STATIC_STRING(BoneVascularToTissue);
397  DEFINE_STATIC_STRING(BrainVascularToTissue);
398  DEFINE_STATIC_STRING(FatVascularToTissue);
399  DEFINE_STATIC_STRING(SmallIntestineVascularToTissue);
400  DEFINE_STATIC_STRING(LargeIntestineVascularToTissue);
401  DEFINE_STATIC_STRING(SplanchnicVascularToTissue);
402  DEFINE_STATIC_STRING(LeftKidneyVascularToTissue);
403  DEFINE_STATIC_STRING(LeftLungVascularToTissue);
404  DEFINE_STATIC_STRING(LiverVascularToTissue);
405  DEFINE_STATIC_STRING(MuscleVascularToTissue);
406  DEFINE_STATIC_STRING(MyocardiumVascularToTissue);
407  DEFINE_STATIC_STRING(RightKidneyVascularToTissue);
408  DEFINE_STATIC_STRING(RightLungVascularToTissue);
409  DEFINE_STATIC_STRING(SkinVascularToTissue);
410  DEFINE_STATIC_STRING(SpleenVascularToTissue);
411 
412  // Renal Links
413  // Reusing 'AortaToLeftKidney' to connect the Aorta To Left Renal Artery
414  DEFINE_STATIC_STRING(LeftRenalArteryToAfferentArteriole);
415  DEFINE_STATIC_STRING(LeftAfferentArterioleToGlomerularCapillaries);
416  DEFINE_STATIC_STRING(LeftGlomerularCapillariesToEfferentArteriole);
417  DEFINE_STATIC_STRING(LeftGlomerularCapillariesToBowmansCapsules);
418  DEFINE_STATIC_STRING(LeftBowmansCapsulesToTubules);
419  DEFINE_STATIC_STRING(LeftTubulesToPeritubularCapillaries);
420  DEFINE_STATIC_STRING(LeftEfferentArterioleToPeritubularCapillaries);
421  DEFINE_STATIC_STRING(LeftPeritubularCapillariesToRenalVein);
422  // Reusing 'LeftKidneyToVenaCava' to connect the Left Renal Vein To Vena Cava
423 
424  // Reusing 'AortaToRightKidney' to connect the Aorta To Right Renal Artery
425  DEFINE_STATIC_STRING(RightRenalArteryToAfferentArteriole);
426  DEFINE_STATIC_STRING(RightAfferentArterioleToGlomerularCapillaries);
427  DEFINE_STATIC_STRING(RightGlomerularCapillariesToEfferentArteriole);
428  DEFINE_STATIC_STRING(RightGlomerularCapillariesToBowmansCapsules);
429  DEFINE_STATIC_STRING(RightBowmansCapsulesToTubules);
430  DEFINE_STATIC_STRING(RightTubulesToPeritubularCapillaries);
431  DEFINE_STATIC_STRING(RightEfferentArterioleToPeritubularCapillaries);
432  DEFINE_STATIC_STRING(RightPeritubularCapillariesToRenalVein);
433  // Reusing 'RightKidneyToVenaCava' to connect the Right Renal Vein To Vena Cava);
434 
435  static const std::vector<std::string>& GetValues()
436  {
437  static std::vector<std::string> _values = {
438  VenaCavaToRightAtrium, RightAtriumToRightVentricle, RightVentricleToLeftPulmonaryArteries, LeftPulmonaryArteriesToCapillaries, LeftPulmonaryArteriesToVeins, LeftPulmonaryCapillariesToVeins, LeftPulmonaryVeinsToLeftAtrium, RightVentricleToRightPulmonaryArteries, RightPulmonaryArteriesToCapillaries, RightPulmonaryArteriesToVeins, RightPulmonaryCapillariesToVeins, RightPulmonaryVeinsToLeftAtrium, LeftAtriumToLeftVentricle, LeftVentricleToAorta, AortaToBone, BoneToVenaCava, AortaToBrain, BrainToVenaCava, AortaToFat, FatToVenaCava, AortaToLargeIntestine, LargeIntestineToLiver, AortaToLeftArm, LeftArmToVenaCava, AortaToLeftKidney, LeftKidneyToVenaCava, AortaToLeftLeg, LeftLegToVenaCava, AortaToLiver, LiverToVenaCava, AortaToMuscle, MuscleToVenaCava, AortaToMyocardium, MyocardiumToVenaCava, AortaToRightArm, RightArmToVenaCava, AortaToRightKidney, RightKidneyToVenaCava, AortaToRightLeg, RightLegToVenaCava, AortaToSkin, SkinToVenaCava, AortaToSmallIntestine, SmallIntestineToLiver, AortaToSplanchnic, SplanchnicToLiver, AortaToSpleen, SpleenToLiver
439 
440  ,
441  AortaToNeckArteries, NeckArteriesToCerebralArteries, CerebralArteriesToCerebralCapillaries, CerebralCapillariesToCerebralVeins, CerebralVeinsToNeckVeins, NeckVeinsToVenaCava
442 
443  ,
444  BoneVascularToTissue, BrainVascularToTissue, FatVascularToTissue, SmallIntestineVascularToTissue, LargeIntestineVascularToTissue, SplanchnicVascularToTissue, LeftKidneyVascularToTissue, LeftLungVascularToTissue, LiverVascularToTissue, MuscleVascularToTissue, MyocardiumVascularToTissue, RightKidneyVascularToTissue, RightLungVascularToTissue, SkinVascularToTissue, SpleenVascularToTissue
445 
446  ,
447  LeftRenalArteryToAfferentArteriole, LeftAfferentArterioleToGlomerularCapillaries, LeftGlomerularCapillariesToEfferentArteriole, LeftGlomerularCapillariesToBowmansCapsules, LeftBowmansCapsulesToTubules, LeftTubulesToPeritubularCapillaries, LeftEfferentArterioleToPeritubularCapillaries, LeftPeritubularCapillariesToRenalVein, RightRenalArteryToAfferentArteriole, RightAfferentArterioleToGlomerularCapillaries, RightGlomerularCapillariesToEfferentArteriole, RightGlomerularCapillariesToBowmansCapsules, RightBowmansCapsulesToTubules, RightTubulesToPeritubularCapillaries, RightEfferentArterioleToPeritubularCapillaries, RightPeritubularCapillariesToRenalVein
448  };
449  return _values;
450  }
451  };
452 
453  namespace UrineCompartment {
454 
455  DEFINE_STATIC_STRING(Ureters);
456  DEFINE_STATIC_STRING(LeftUreter);
457  DEFINE_STATIC_STRING(RightUreter);
458  DEFINE_STATIC_STRING(Bladder);
459 
460  static const std::vector<std::string>& GetValues()
461  {
462  static std::vector<std::string> _values = {
463  Ureters, LeftUreter, RightUreter, Bladder
464  };
465  return _values;
466  }
467  };
468 
469  namespace UrineLink {
470 
471  DEFINE_STATIC_STRING(LeftTubulesToUreter);
472  DEFINE_STATIC_STRING(LeftUreterToBladder);
473 
474  DEFINE_STATIC_STRING(RightTubulesToUreter);
475  DEFINE_STATIC_STRING(RightUreterToBladder);
476 
477  DEFINE_STATIC_STRING(BladderToGround);
478  DEFINE_STATIC_STRING(BladderToGroundSource);
479 
480  static const std::vector<std::string>& GetValues()
481  {
482  static std::vector<std::string> _values = {
483  LeftTubulesToUreter, LeftUreterToBladder, RightTubulesToUreter, RightUreterToBladder, BladderToGround, BladderToGroundSource
484  };
485  return _values;
486  }
487  };
488 
489  namespace LymphCompartment {
490 
491  DEFINE_STATIC_STRING(Lymph);
492 
493  static const std::vector<std::string>& GetValues()
494  {
495  static std::vector<std::string> _values = {
496  Lymph
497  };
498  return _values;
499  }
500  };
501 
502  namespace LymphLink {
503 
504  DEFINE_STATIC_STRING(BoneTissueToLymph);
505  DEFINE_STATIC_STRING(BrainTissueToLymph);
506  DEFINE_STATIC_STRING(FatTissueToLymph);
507  DEFINE_STATIC_STRING(GutTissueToLymph);
508  DEFINE_STATIC_STRING(LeftKidneyTissueToLymph);
509  DEFINE_STATIC_STRING(LeftLungTissueToLymph);
510  DEFINE_STATIC_STRING(LiverTissueToLymph);
511  DEFINE_STATIC_STRING(MuscleTissueToLymph);
512  DEFINE_STATIC_STRING(MyocardiumTissueToLymph);
513  DEFINE_STATIC_STRING(RightKidneyTissueToLymph);
514  DEFINE_STATIC_STRING(RightLungTissueToLymph);
515  DEFINE_STATIC_STRING(SkinTissueToLymph);
516  DEFINE_STATIC_STRING(SpleenTissueToLymph);
517 
518  DEFINE_STATIC_STRING(LymphToVenaCava);
519 
520  static const std::vector<std::string>& GetValues()
521  {
522  static std::vector<std::string> _values = {
523  BoneTissueToLymph, BrainTissueToLymph, FatTissueToLymph, GutTissueToLymph, LeftKidneyTissueToLymph, LeftLungTissueToLymph, LiverTissueToLymph, MuscleTissueToLymph, MyocardiumTissueToLymph, RightKidneyTissueToLymph, RightLungTissueToLymph, SkinTissueToLymph, SpleenTissueToLymph, LymphToVenaCava
524  };
525  return _values;
526  }
527  };
528 
529  namespace TemperatureCompartment {
530 
531  DEFINE_STATIC_STRING(Active);
532  DEFINE_STATIC_STRING(Ambient);
533  DEFINE_STATIC_STRING(Clothing);
534  DEFINE_STATIC_STRING(Enclosure);
535  DEFINE_STATIC_STRING(ExternalCore);
536  DEFINE_STATIC_STRING(ExternalSkin);
537  DEFINE_STATIC_STRING(ExternalGround);
538  DEFINE_STATIC_STRING(InternalCore);
539  DEFINE_STATIC_STRING(InternalSkin);
540  DEFINE_STATIC_STRING(InternalGround);
541 
542  static const std::vector<std::string>& GetValues()
543  {
544  static std::vector<std::string> _values = {
545  Active, Ambient, Clothing, Enclosure, ExternalCore, ExternalSkin, ExternalGround, InternalCore, InternalSkin, InternalGround
546  };
547  return _values;
548  }
549  };
550 
551  namespace TemperatureLink {
552 
553  DEFINE_STATIC_STRING(ActiveToClothing);
554  DEFINE_STATIC_STRING(ClothingToEnclosure);
555  DEFINE_STATIC_STRING(ClothingToEnvironment);
556  DEFINE_STATIC_STRING(ExternalCoreToGround);
557  DEFINE_STATIC_STRING(GroundToActive);
558  DEFINE_STATIC_STRING(GroundToClothing);
559  DEFINE_STATIC_STRING(GroundToEnclosure);
560  DEFINE_STATIC_STRING(GroundToEnvironment);
561  DEFINE_STATIC_STRING(ExternalSkinToGround);
562  DEFINE_STATIC_STRING(ExternalSkinToClothing);
563  DEFINE_STATIC_STRING(GroundToInternalCore);
564  DEFINE_STATIC_STRING(InternalCoreToInternalSkin);
565  DEFINE_STATIC_STRING(InternalCoreToGround);
566  DEFINE_STATIC_STRING(InternalSkinToGround);
567  DEFINE_STATIC_STRING(InternalCoreToExternalCore);
568  DEFINE_STATIC_STRING(InternalSkinToExternalSkin);
569 
570  static const std::vector<std::string>& GetValues()
571  {
572  static std::vector<std::string> _values = {
573  ActiveToClothing, ClothingToEnclosure, ClothingToEnvironment, ExternalCoreToGround, GroundToActive, GroundToClothing, GroundToEnclosure, GroundToEnvironment, ExternalSkinToGround, ExternalSkinToClothing, GroundToInternalCore, InternalCoreToInternalSkin, InternalCoreToGround, InternalSkinToGround, InternalCoreToExternalCore, InternalSkinToExternalSkin
574  };
575  return _values;
576  }
577  };
578 
579  namespace EnvironmentCompartment {
580 
581  DEFINE_STATIC_STRING(Ambient);
582 
583  static const std::vector<std::string>& GetValues()
584  {
585  static std::vector<std::string> _values = {
586  Ambient
587  };
588  return _values;
589  }
590  };
591 
592  namespace AnesthesiaMachineCompartment {
593 
594  DEFINE_STATIC_STRING(AnesthesiaConnection);
595  DEFINE_STATIC_STRING(ExpiratoryLimb);
596  DEFINE_STATIC_STRING(GasInlet);
597  DEFINE_STATIC_STRING(GasSource);
598  DEFINE_STATIC_STRING(InspiratoryLimb);
599  DEFINE_STATIC_STRING(ReliefValve);
600  DEFINE_STATIC_STRING(Scrubber);
601  DEFINE_STATIC_STRING(Selector);
602  DEFINE_STATIC_STRING(Ventilator);
603  DEFINE_STATIC_STRING(VentilatorConnection);
604  DEFINE_STATIC_STRING(YPiece);
605 
606  static const std::vector<std::string>& GetValues()
607  {
608  static std::vector<std::string> _values = {
609  AnesthesiaConnection, ExpiratoryLimb, GasInlet, GasSource, InspiratoryLimb, ReliefValve, Scrubber, Selector, Ventilator, VentilatorConnection, YPiece
610  };
611  return _values;
612  }
613  };
614 
615  namespace AnesthesiaMachineLink {
616 
617  DEFINE_STATIC_STRING(VentilatorToSelector);
618  DEFINE_STATIC_STRING(SelectorToReliefValve);
619  DEFINE_STATIC_STRING(SelectorToScrubber);
620  DEFINE_STATIC_STRING(ScrubberToGasInlet);
621  DEFINE_STATIC_STRING(Exhaust);
622  DEFINE_STATIC_STRING(GasSourceToGasInlet);
623  DEFINE_STATIC_STRING(GasInletToInspiratoryLimb);
624  DEFINE_STATIC_STRING(InspiratoryLimbToYPiece);
625  DEFINE_STATIC_STRING(YPieceToExpiratoryLimb);
626  DEFINE_STATIC_STRING(ExpiratoryLimbToSelector);
627  DEFINE_STATIC_STRING(YPieceToAnesthesiaConnection);
628  DEFINE_STATIC_STRING(AnesthesiaConnectionLeak);
629  DEFINE_STATIC_STRING(Mask);
630 
631  static const std::vector<std::string>& GetValues()
632  {
633  static std::vector<std::string> _values = {
634  VentilatorToSelector, SelectorToReliefValve, SelectorToScrubber, ScrubberToGasInlet, Exhaust, GasSourceToGasInlet, GasInletToInspiratoryLimb, InspiratoryLimbToYPiece, YPieceToExpiratoryLimb, ExpiratoryLimbToSelector, YPieceToAnesthesiaConnection, AnesthesiaConnectionLeak, Mask
635  };
636  return _values;
637  }
638  };
639 
640  namespace InhalerCompartment {
641 
642  DEFINE_STATIC_STRING(Mouthpiece);
643 
644  static const std::vector<std::string>& GetValues()
645  {
646  static std::vector<std::string> _values = {
647  Mouthpiece
648  };
649  return _values;
650  }
651  };
652 
653  namespace InhalerLink {
654 
655  DEFINE_STATIC_STRING(EnvironmentToMouthpiece);
656  DEFINE_STATIC_STRING(MouthpieceToMouth);
657 
658  static const std::vector<std::string>& GetValues()
659  {
660  static std::vector<std::string> _values = {
661  EnvironmentToMouthpiece, MouthpieceToMouth
662  };
663  return _values;
664  }
665  };
666 
667  namespace MechanicalVentilatorCompartment {
668 
669  DEFINE_STATIC_STRING(Connection);
670 
671  static const std::vector<std::string>& GetValues()
672  {
673  static std::vector<std::string> _values = {
674  Connection
675  };
676  return _values;
677  }
678  };
679 
680  namespace MechanicalVentilatorLink {
681 
682  DEFINE_STATIC_STRING(ConnectionToMouth);
683 
684  static const std::vector<std::string>& GetValues()
685  {
686  static std::vector<std::string> _values = {
687  ConnectionToMouth
688  };
689  return _values;
690  }
691  };
692 
693  } //namespace biogears
694  } //namespace physiology
695 } //namespace tatrc
696 } //namespace mil
697 
static const std::vector< std::string > & GetValues()
Definition: BioGearsPhysiologyEngine.h:644
DEFINE_STATIC_STRING_EX(BoneExtracellular, BoneTissueExtracellular)
DEFINE_STATIC_STRING_EX(Myocardium, MyocardiumVasculature)
static const std::vector< std::string > & GetValues()
Definition: BioGearsPhysiologyEngine.h:460
DEFINE_STATIC_STRING_EX(Version, BioGears_6.1.1_beta)
static const std::vector< std::string > & GetValues()
Definition: BioGearsPhysiologyEngine.h:54
Definition: BioGears.cxx:43
Definition: BioGearsPhysiologyEngine.h:36
static const std::vector< std::string > & GetValues()
Definition: BioGearsPhysiologyEngine.h:671
static const std::vector< std::string > & GetValues()
Definition: BioGearsPhysiologyEngine.h:205
DEFINE_STATIC_STRING_EX(SmallIntestine, SmallIntestineChyme)
static const std::vector< std::string > & GetValues()
Definition: BioGearsPhysiologyEngine.h:542
Definition: Logger.h:75
static const std::vector< std::string > & GetValues()
Definition: BioGearsPhysiologyEngine.h:67
static const std::vector< std::string > & GetValues()
Definition: BioGearsPhysiologyEngine.h:109
static const std::vector< std::string > & GetValues()
Definition: BioGearsPhysiologyEngine.h:289
DEFINE_STATIC_STRING(ActiveCardiovascular)
static const std::vector< std::string > & GetValues()
Definition: BioGearsPhysiologyEngine.h:583
static const std::vector< std::string > & GetValues()
Definition: BioGearsPhysiologyEngine.h:493
static const std::vector< std::string > & GetValues()
Definition: BioGearsPhysiologyEngine.h:606
BIOGEARS_API std::unique_ptr< biogears::PhysiologyEngine > CreateBioGearsEngine(biogears::Logger *logger=nullptr)
Definition: BioGearsEngine.cpp:41
Definition: SEElectricalCircuit.h:18
static const std::vector< std::string > & GetValues()
Definition: BioGearsPhysiologyEngine.h:165