Circuits.h
1 /* Distributed under the Apache License, Version 2.0.
2  See accompanying NOTICE file for details.*/
3 
4 #pragma once
5 class PulseController;
6 class SEFluidCircuit;
7 class SEThermalCircuit;
8 #include "circuit/SECircuitManager.h"
9 
13 class PULSE_DECL PulseCircuits : public SECircuitManager
14 {
15 public:
16 
18  virtual ~PulseCircuits();
19 
20  virtual void Clear();
21  virtual void StateChange();
22 
23  virtual void SetReadOnlyFluid(bool b);
24 
25  // Active methods return the circuit configuration to be calculated
26  SEFluidCircuit& GetActiveCardiovascularCircuit();
27  SEFluidCircuit& GetCardiovascularCircuit();
28  SEFluidCircuit& GetRenalCircuit();
29 
30  SEFluidCircuit& GetActiveRespiratoryCircuit();
31  SEFluidCircuit& GetRespiratoryCircuit();
32  SEFluidCircuit& GetRespiratoryAndAnesthesiaMachineCircuit();
33  SEFluidCircuit& GetRespiratoryAndInhalerCircuit();
34  SEFluidCircuit& GetRespiratoryAndMechanicalVentilatorCircuit();
35 
36  SEThermalCircuit& GetTemperatureCircuit();
37  SEThermalCircuit& GetExternalTemperatureCircuit();
38  SEThermalCircuit& GetInternalTemperatureCircuit();
39 
40  SEFluidCircuit& GetAnesthesiaMachineCircuit();
41 
42 protected:
43 
45 
46  // Note, I am not making a tissue or inhaler standalone circuit
47  // this are super simple circuits and can't be tested by themselves
48 
49  // The combined cardiovascular circuit only needs to be built once,
50  // but we can build it different ways, with or without renal and tissue subcircuits.
51  // It depends on how the engine is configured, but this configuration does not change
52  // once it's set. Tests can also configure how it's built and test appropriately.
53 
55 
58 
60 
62 
63  // Based on if equipment is hooked up, we have to build out the combination of
64  // these 2 circuits and graphs as we don't want to dynamically modify circuits
65  // It's quicker and easier to test these combiniation circuits
69 
71  SEThermalCircuit* m_InternalTemperatureCircuit;// Attempt at circuit independence
72  SEThermalCircuit* m_ExternalTemperatureCircuit;// Attempt at circuit independence
73 };
74 
76 // Respiratory Circuit Enums //
78 
79 namespace pulse {
80 
81  class Circuits
82  {
83  public:
84  DEFINE_STATIC_STRING(FullCardiovascular);
85  DEFINE_STATIC_STRING(Cardiovascular);
86  DEFINE_STATIC_STRING(Renal);
87  DEFINE_STATIC_STRING(Respiratory);
88  DEFINE_STATIC_STRING(AnesthesiaMachine);
89  DEFINE_STATIC_STRING(RespiratoryAnesthesia);
90  DEFINE_STATIC_STRING(RespiratoryInhaler);
91  DEFINE_STATIC_STRING(RespiratoryMechanicalVentilator);
92  DEFINE_STATIC_STRING(Temperature);
93  DEFINE_STATIC_STRING(InternalTemperature);
94  DEFINE_STATIC_STRING(ExternalTemperature);
95  };
96 
98  // Chyme Circuit Enums //
100 
101  class ChymeNode
102  {
103  public:
104  DEFINE_STATIC_STRING(SmallIntestineC1);
105  };
106 
107  class ChymePath
108  {
109  public:
110  DEFINE_STATIC_STRING(SmallIntestineC1ToSmallIntestine1);
111  DEFINE_STATIC_STRING(GroundToSmallIntestineC1);
112  DEFINE_STATIC_STRING(GutT1ToGround);
113  };
114 
115 
117  {
118  public:
119  DEFINE_STATIC_STRING(Carina);
120 
121  DEFINE_STATIC_STRING(LeftAlveoli);
122  DEFINE_STATIC_STRING(LeftAlveoliLeak);
123  DEFINE_STATIC_STRING(LeftAnatomicDeadSpace);
124  DEFINE_STATIC_STRING(LeftChestLeak);
125  DEFINE_STATIC_STRING(LeftPleural);
126  DEFINE_STATIC_STRING(LeftPleuralConnection);
127 
128  DEFINE_STATIC_STRING(Mouth);
129 
130  DEFINE_STATIC_STRING(RightAlveoli);
131  DEFINE_STATIC_STRING(RightAlveoliLeak);
132  DEFINE_STATIC_STRING(RightAnatomicDeadSpace);
133  DEFINE_STATIC_STRING(RightChestLeak);
134  DEFINE_STATIC_STRING(RightPleural);
135  DEFINE_STATIC_STRING(RightPleuralConnection);
136 
137  DEFINE_STATIC_STRING(Stomach);
138  DEFINE_STATIC_STRING(RespiratoryMuscle);
139 
140  };
141 
143  {
144  public:
145  DEFINE_STATIC_STRING(CarinaToLeftAnatomicDeadSpace);
146  DEFINE_STATIC_STRING(CarinaToRightAnatomicDeadSpace);
147 
148  DEFINE_STATIC_STRING(EnvironmentToLeftChestLeak);
149  DEFINE_STATIC_STRING(EnvironmentToMouth);
150  DEFINE_STATIC_STRING(EnvironmentToRightChestLeak);
151 
152  DEFINE_STATIC_STRING(LeftAlveoliLeakToLeftPleural);
153  DEFINE_STATIC_STRING(LeftAlveoliToLeftAlveoliLeak);
154  DEFINE_STATIC_STRING(LeftAlveoliToLeftPleuralConnection);
155  DEFINE_STATIC_STRING(LeftPleuralConnectionToLeftPleural);
156  DEFINE_STATIC_STRING(LeftAnatomicDeadSpaceToLeftAlveoli);
157  DEFINE_STATIC_STRING(LeftAnatomicDeadSpaceToLeftPleuralConnection);
158  DEFINE_STATIC_STRING(LeftChestLeakToLeftPleural);
159  DEFINE_STATIC_STRING(LeftPleuralToEnvironment);
160  DEFINE_STATIC_STRING(LeftPleuralToRespiratoryMuscle);
161 
162  DEFINE_STATIC_STRING(MouthToCarina);
163  DEFINE_STATIC_STRING(MouthToStomach);
164 
165  DEFINE_STATIC_STRING(RightAlveoliLeakToRightPleural);
166  DEFINE_STATIC_STRING(RightAlveoliToRightAlveoliLeak);
167  DEFINE_STATIC_STRING(RightAlveoliToRightPleuralConnection);
168  DEFINE_STATIC_STRING(RightPleuralConnectionToRightPleural);
169  DEFINE_STATIC_STRING(RightAnatomicDeadSpaceToRightAlveoli);
170  DEFINE_STATIC_STRING(RightAnatomicDeadSpaceToRightPleuralConnection);
171  DEFINE_STATIC_STRING(RightChestLeakToRightPleural);
172  DEFINE_STATIC_STRING(RightPleuralToEnvironment);
173  DEFINE_STATIC_STRING(RightPleuralToRespiratoryMuscle);
174 
175  DEFINE_STATIC_STRING(EnvironmentToRespiratoryMuscle);
176  DEFINE_STATIC_STRING(StomachToEnvironment);
177  };
178 
180  // Anesthesia Machine Circuit Enums //
182 
184  {
185  public:
186  DEFINE_STATIC_STRING(AnesthesiaConnection);
187  DEFINE_STATIC_STRING(ExpiratoryLimb);
188  DEFINE_STATIC_STRING(GasInlet);
189  DEFINE_STATIC_STRING(GasSource);
190  DEFINE_STATIC_STRING(InspiratoryLimb);
191  DEFINE_STATIC_STRING(ReliefValve);
192  DEFINE_STATIC_STRING(Scrubber);
193  DEFINE_STATIC_STRING(Selector);
194  DEFINE_STATIC_STRING(Ventilator);
195  DEFINE_STATIC_STRING(VentilatorConnection);
196  DEFINE_STATIC_STRING(YPiece);
197  };
198 
200  {
201  public:
202  DEFINE_STATIC_STRING(EnvironmentToVentilator);
203  DEFINE_STATIC_STRING(EnvironmentToReliefValve);
204  DEFINE_STATIC_STRING(VentilatorToVentilatorConnection);
205  DEFINE_STATIC_STRING(VentilatorConnectionToSelector);
206  DEFINE_STATIC_STRING(SelectorToReliefValve);
207  DEFINE_STATIC_STRING(SelectorToScrubber);
208  DEFINE_STATIC_STRING(ScrubberToGasInlet);
209  DEFINE_STATIC_STRING(EnvironmentToGasSource);
210  DEFINE_STATIC_STRING(GasSourceToGasInlet);
211  DEFINE_STATIC_STRING(GasInletToInspiratoryLimb);
212  DEFINE_STATIC_STRING(InspiratoryLimbToYPiece);
213  DEFINE_STATIC_STRING(YPieceToExpiratoryLimb);
214  DEFINE_STATIC_STRING(ExpiratoryLimbToSelector);
215  DEFINE_STATIC_STRING(YPieceToAnesthesiaConnection);
216  DEFINE_STATIC_STRING(AnesthesiaConnectionToEnvironment);
217  DEFINE_STATIC_STRING(SelectorToEnvironment);
218  };
219 
221  {
222  public:
223  DEFINE_STATIC_STRING(AnesthesiaConnectionToMouth);
224  DEFINE_STATIC_STRING(GroundConnection);
225  };
226 
228  // Inhaler Circuit Enums //
230 
232  {
233  public:
234  DEFINE_STATIC_STRING(Mouthpiece);
235  };
236 
238  {
239  public:
240  DEFINE_STATIC_STRING(EnvironmentToMouthpiece);
241  DEFINE_STATIC_STRING(MouthpieceToMouth);
242  };
243 
245  // Mechanical Ventilator Circuit Enums //
247 
249  {
250  public:
251  DEFINE_STATIC_STRING_EX(Connection,MechanicalVentilatorConnection);
252  };
253 
255  {
256  public:
257  DEFINE_STATIC_STRING_EX(ConnectionToMouth,MechanicalVentilatorConnectionToMouth);
258 DEFINE_STATIC_STRING_EX(GroundToConnection, MechanicalVentilatorGroundToConnection);
259  };
260 
261 
263  // Environment Gas Circuit Enums //
265 
267  {
268  public:
269  DEFINE_STATIC_STRING(Ambient);
270  };
271 
273  // External Temperature Circuit Enums //
275 
277  {
278  public:
279  DEFINE_STATIC_STRING(Active);
280  DEFINE_STATIC_STRING(Clothing);
281  DEFINE_STATIC_STRING(Enclosure);
282  DEFINE_STATIC_STRING(ExternalCore);
283  DEFINE_STATIC_STRING(ExternalSkin);
284  DEFINE_STATIC_STRING(ExternalGround);
285  DEFINE_STATIC_STRING(Ambient);
286  };
287 
289  {
290  public:
291  DEFINE_STATIC_STRING(ActiveToClothing);
292  DEFINE_STATIC_STRING(ClothingToEnclosure);
293  DEFINE_STATIC_STRING(ClothingToEnvironment);
294  DEFINE_STATIC_STRING(ExternalCoreToGround);
295  DEFINE_STATIC_STRING(GroundToActive);
296  DEFINE_STATIC_STRING(GroundToClothing);
297  DEFINE_STATIC_STRING(GroundToEnclosure);
298  DEFINE_STATIC_STRING(GroundToEnvironment);
299  DEFINE_STATIC_STRING(ExternalSkinToGround);
300  DEFINE_STATIC_STRING(ExternalSkinToClothing);
301  };
302 
304  // Internal Temperature Circuit Enums //
306 
308  {
309  public:
310  DEFINE_STATIC_STRING(InternalCore);
311  DEFINE_STATIC_STRING(InternalSkin);
312  DEFINE_STATIC_STRING(InternalGround);
313  };
314 
316  {
317  public:
318  DEFINE_STATIC_STRING(GroundToInternalCore);
319  DEFINE_STATIC_STRING(InternalCoreToInternalSkin);
320  DEFINE_STATIC_STRING(InternalCoreToGround);
321  DEFINE_STATIC_STRING(InternalSkinToGround);
322  };
323 
325  // Combined Temperature Circuit Enums //
327 
329  {
330  public:
331  DEFINE_STATIC_STRING(InternalCoreToExternalCore);
332  DEFINE_STATIC_STRING(InternalSkinToExternalSkin);
333  };
334 
336  {
337  public:
338  DEFINE_STATIC_STRING(RightHeart1);
339  DEFINE_STATIC_STRING(RightHeart2);
340  DEFINE_STATIC_STRING(RightHeart3);
341 
342  DEFINE_STATIC_STRING(MainPulmonaryArteries);
343  DEFINE_STATIC_STRING(LeftIntermediatePulmonaryArteries);
344  DEFINE_STATIC_STRING(LeftPulmonaryArteries);
345  DEFINE_STATIC_STRING(RightIntermediatePulmonaryArteries);
346  DEFINE_STATIC_STRING(RightPulmonaryArteries);
347 
348  DEFINE_STATIC_STRING(LeftPulmonaryCapillaries);
349  DEFINE_STATIC_STRING(RightPulmonaryCapillaries);
350 
351  DEFINE_STATIC_STRING(LeftIntermediatePulmonaryVeins);
352  DEFINE_STATIC_STRING(LeftPulmonaryVeins);
353  DEFINE_STATIC_STRING(RightIntermediatePulmonaryVeins);
354  DEFINE_STATIC_STRING(RightPulmonaryVeins);
355 
356  DEFINE_STATIC_STRING(LeftHeart1);
357  DEFINE_STATIC_STRING(LeftHeart2);
358  DEFINE_STATIC_STRING(LeftHeart3);
359 
360  DEFINE_STATIC_STRING(Aorta1);
361  DEFINE_STATIC_STRING(Aorta2);
362  DEFINE_STATIC_STRING(Aorta3);
363  DEFINE_STATIC_STRING(Aorta4);
364 
365  DEFINE_STATIC_STRING(AbdominalCavity1);
366 
367  DEFINE_STATIC_STRING(Bone1);
368  DEFINE_STATIC_STRING(Bone2);
369 
370  DEFINE_STATIC_STRING(Brain1);
371  DEFINE_STATIC_STRING(Brain2);
372 
373  DEFINE_STATIC_STRING(Fat1);
374  DEFINE_STATIC_STRING(Fat2);
375 
376  DEFINE_STATIC_STRING(LargeIntestine1);
377 
378  DEFINE_STATIC_STRING(Liver1);
379  DEFINE_STATIC_STRING(Liver2);
380  DEFINE_STATIC_STRING(PortalVein1);
381 
382  DEFINE_STATIC_STRING(LeftArm1);
383  DEFINE_STATIC_STRING(LeftArm2);
384 
385  DEFINE_STATIC_STRING(LeftKidney1);
386  DEFINE_STATIC_STRING(LeftKidney2);
387 
388  DEFINE_STATIC_STRING(LeftLeg1);
389  DEFINE_STATIC_STRING(LeftLeg2);
390 
391  DEFINE_STATIC_STRING(Muscle1);
392  DEFINE_STATIC_STRING(Muscle2);
393 
394  DEFINE_STATIC_STRING(Myocardium1);
395  DEFINE_STATIC_STRING(Myocardium2);
396 
397  DEFINE_STATIC_STRING(Pericardium1);
398 
399  DEFINE_STATIC_STRING(RightArm1);
400  DEFINE_STATIC_STRING(RightArm2);
401 
402  DEFINE_STATIC_STRING(RightKidney1);
403  DEFINE_STATIC_STRING(RightKidney2);
404 
405  DEFINE_STATIC_STRING(RightLeg1);
406  DEFINE_STATIC_STRING(RightLeg2);
407 
408  DEFINE_STATIC_STRING(Skin1);
409  DEFINE_STATIC_STRING(Skin2);
410 
411  DEFINE_STATIC_STRING(SmallIntestine1);
412 
413  DEFINE_STATIC_STRING(Splanchnic1);
414 
415  DEFINE_STATIC_STRING(Spleen1);
416 
417  DEFINE_STATIC_STRING(VenaCava);
418 
419  DEFINE_STATIC_STRING(Ground);
420  };
421 
423  {
424  public:
425  // Heart and Lungs
426  DEFINE_STATIC_STRING(VenaCavaToRightHeart2);
427  DEFINE_STATIC_STRING(RightHeart2ToRightHeart1);
428  DEFINE_STATIC_STRING(RightHeart1ToRightHeart3);
429  DEFINE_STATIC_STRING(RightHeart3ToGround);
430  DEFINE_STATIC_STRING(RightHeart1ToMainPulmonaryArteries);
431  DEFINE_STATIC_STRING(MainPulmonaryArteriesToRightIntermediatePulmonaryArteries);
432  DEFINE_STATIC_STRING(RightIntermediatePulmonaryArteriesToRightPulmonaryArteries);
433  DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightPulmonaryVeins);
434  DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightPulmonaryCapillaries);
435  DEFINE_STATIC_STRING(RightPulmonaryArteriesToGround);
436  DEFINE_STATIC_STRING(RightPulmonaryCapillariesToRightPulmonaryVeins);
437  DEFINE_STATIC_STRING(RightPulmonaryCapillariesToGround);
438  DEFINE_STATIC_STRING(RightPulmonaryVeinsToRightIntermediatePulmonaryVeins);
439  DEFINE_STATIC_STRING(RightPulmonaryVeinsToGround);
440  DEFINE_STATIC_STRING(RightIntermediatePulmonaryVeinsToLeftHeart2);
441  DEFINE_STATIC_STRING(MainPulmonaryArteriesToLeftIntermediatePulmonaryArteries);
442  DEFINE_STATIC_STRING(LeftIntermediatePulmonaryArteriesToLeftPulmonaryArteries);
443  DEFINE_STATIC_STRING(LeftPulmonaryArteriesToLeftPulmonaryVeins);
444  DEFINE_STATIC_STRING(LeftPulmonaryArteriesToLeftPulmonaryCapillaries);
445  DEFINE_STATIC_STRING(LeftPulmonaryArteriesToGround);
446  DEFINE_STATIC_STRING(LeftPulmonaryCapillariesToGround);
447  DEFINE_STATIC_STRING(LeftPulmonaryCapillariesToLeftPulmonaryVeins);
448  DEFINE_STATIC_STRING(LeftPulmonaryVeinsToLeftIntermediatePulmonaryVeins);
449  DEFINE_STATIC_STRING(LeftPulmonaryVeinsToGround);
450  DEFINE_STATIC_STRING(LeftIntermediatePulmonaryVeinsToLeftHeart2)
451  DEFINE_STATIC_STRING(LeftHeart2ToLeftHeart1);
452  DEFINE_STATIC_STRING(LeftHeart1ToLeftHeart3);
453  DEFINE_STATIC_STRING(LeftHeart3ToGround);
454  DEFINE_STATIC_STRING(LeftHeart1ToAorta2);
455  DEFINE_STATIC_STRING(Aorta2ToAorta3);
456  DEFINE_STATIC_STRING(Aorta3ToAorta1);
457  DEFINE_STATIC_STRING(Aorta1ToAorta4);
458 
459  // Abdominal Cavity
460  DEFINE_STATIC_STRING(GroundToAorta4);
461  DEFINE_STATIC_STRING(AbdominalCavity1ToGround);
462  DEFINE_STATIC_STRING(GroundToAbdominalCavity1);
463 
464  // Brain
465  DEFINE_STATIC_STRING(Aorta1ToBrain1);
466  DEFINE_STATIC_STRING(Brain1ToGround);
467  DEFINE_STATIC_STRING(Brain1ToBrain2);
468  DEFINE_STATIC_STRING(Brain2ToVenaCava);
469  // Bone
470  DEFINE_STATIC_STRING(Aorta1ToBone1);
471  DEFINE_STATIC_STRING(Bone1ToGround);
472  DEFINE_STATIC_STRING(Bone1ToBone2);
473  DEFINE_STATIC_STRING(Bone2ToVenaCava);
474  // Fat
475  DEFINE_STATIC_STRING(Aorta1ToFat1);
476  DEFINE_STATIC_STRING(Fat1ToGround);
477  DEFINE_STATIC_STRING(Fat1ToFat2);
478  DEFINE_STATIC_STRING(Fat2ToVenaCava);
479  // Large Intestine
480  DEFINE_STATIC_STRING(Aorta1ToLargeIntestine);
481  DEFINE_STATIC_STRING(LargeIntestineToGround);
482  DEFINE_STATIC_STRING(LargeIntestineToPortalVein);
483  // Left Arm
484  DEFINE_STATIC_STRING(Aorta1ToLeftArm1);
485  DEFINE_STATIC_STRING(LeftArm1ToGround);
486  DEFINE_STATIC_STRING(LeftArm1ToLeftArm2);
487  DEFINE_STATIC_STRING(LeftArm2ToVenaCava);
488  // Left Kidney
489  DEFINE_STATIC_STRING(Aorta1ToLeftKidney1);
490  DEFINE_STATIC_STRING(LeftKidney1ToGround);
491  DEFINE_STATIC_STRING(LeftKidney1ToLeftKidney2);
492  DEFINE_STATIC_STRING(LeftKidney2ToVenaCava);
493  // Left Leg
494  DEFINE_STATIC_STRING(Aorta1ToLeftLeg1);
495  DEFINE_STATIC_STRING(LeftLeg1ToGround);
496  DEFINE_STATIC_STRING(LeftLeg1ToLeftLeg2);
497  DEFINE_STATIC_STRING(LeftLeg2ToVenaCava);
498  // Liver
499  DEFINE_STATIC_STRING(Aorta1ToLiver1);
500  DEFINE_STATIC_STRING(Liver1ToGround);
501  DEFINE_STATIC_STRING(PortalVeinToLiver1);
502  DEFINE_STATIC_STRING(Liver1ToLiver2);
503  DEFINE_STATIC_STRING(Liver2ToVenaCava);
504  // Muscle
505  DEFINE_STATIC_STRING(Aorta1ToMuscle1);
506  DEFINE_STATIC_STRING(Muscle1ToGround);
507  DEFINE_STATIC_STRING(Muscle1ToMuscle2);
508  DEFINE_STATIC_STRING(Muscle2ToVenaCava);
509  // Myocardium
510  DEFINE_STATIC_STRING(Aorta1ToMyocardium1);
511  DEFINE_STATIC_STRING(Myocardium1ToGround);
512  DEFINE_STATIC_STRING(Myocardium1ToMyocardium2);
513  DEFINE_STATIC_STRING(Myocardium2ToVenaCava);
514  // Pericardium
515  DEFINE_STATIC_STRING(Pericardium1ToGround);
516  DEFINE_STATIC_STRING(GroundToPericardium1);
517  // Right Arm
518  DEFINE_STATIC_STRING(Aorta1ToRightArm1);
519  DEFINE_STATIC_STRING(RightArm1ToGround);
520  DEFINE_STATIC_STRING(RightArm1ToRightArm2);
521  DEFINE_STATIC_STRING(RightArm2ToVenaCava);
522  // Right Kidney
523  DEFINE_STATIC_STRING(Aorta1ToRightKidney1);
524  DEFINE_STATIC_STRING(RightKidney1ToGround);
525  DEFINE_STATIC_STRING(RightKidney1ToRightKidney2);
526  DEFINE_STATIC_STRING(RightKidney2ToVenaCava);
527  // Right Leg
528  DEFINE_STATIC_STRING(Aorta1ToRightLeg1);
529  DEFINE_STATIC_STRING(RightLeg1ToGround);
530  DEFINE_STATIC_STRING(RightLeg1ToRightLeg2);
531  DEFINE_STATIC_STRING(RightLeg2ToVenaCava);
532  // Skin
533  DEFINE_STATIC_STRING(Aorta1ToSkin1);
534  DEFINE_STATIC_STRING(Skin1ToGround);
535  DEFINE_STATIC_STRING(Skin1ToSkin2);
536  DEFINE_STATIC_STRING(Skin2ToVenaCava);
537  // Small Intestine
538  DEFINE_STATIC_STRING(Aorta1ToSmallIntestine);
539  DEFINE_STATIC_STRING(SmallIntestineToGround);
540  DEFINE_STATIC_STRING(SmallIntestineToPortalVein);
541  // Splanchnic
542  DEFINE_STATIC_STRING(Aorta1ToSplanchnic);
543  DEFINE_STATIC_STRING(SplanchnicToGround);
544  DEFINE_STATIC_STRING(SplanchnicToPortalVein);
545  // Spleen
546  DEFINE_STATIC_STRING(Aorta1ToSpleen);
547  DEFINE_STATIC_STRING(SpleenToGround);
548  DEFINE_STATIC_STRING(SpleenToPortalVein);
549  // Vena Cava
550  DEFINE_STATIC_STRING(VenaCavaToGround);
551  DEFINE_STATIC_STRING(IVToVenaCava);
552  };
553 
555  {
556  public:
557  DEFINE_STATIC_STRING(BoneT1);
558  DEFINE_STATIC_STRING(BoneT2);
559  DEFINE_STATIC_STRING(BoneT3);
560  DEFINE_STATIC_STRING(BrainT1);
561  DEFINE_STATIC_STRING(BrainT2);
562  DEFINE_STATIC_STRING(BrainT3);
563  DEFINE_STATIC_STRING(FatT1);
564  DEFINE_STATIC_STRING(FatT2);
565  DEFINE_STATIC_STRING(FatT3);
566  DEFINE_STATIC_STRING(GutT1);
567  DEFINE_STATIC_STRING(GutT2);
568  DEFINE_STATIC_STRING(GutT3);
569  DEFINE_STATIC_STRING(LiverT1);
570  DEFINE_STATIC_STRING(LiverT2);
571  DEFINE_STATIC_STRING(LiverT3);
572  DEFINE_STATIC_STRING(LeftKidneyT1);
573  DEFINE_STATIC_STRING(LeftKidneyT2);
574  DEFINE_STATIC_STRING(LeftKidneyT3);
575  DEFINE_STATIC_STRING(LeftLungT1);
576  DEFINE_STATIC_STRING(LeftLungT2);
577  DEFINE_STATIC_STRING(LeftLungT3);
578  DEFINE_STATIC_STRING(Lymph);
579  DEFINE_STATIC_STRING(MuscleT1);
580  DEFINE_STATIC_STRING(MuscleT2);
581  DEFINE_STATIC_STRING(MuscleT3);
582  DEFINE_STATIC_STRING(MyocardiumT1);
583  DEFINE_STATIC_STRING(MyocardiumT2);
584  DEFINE_STATIC_STRING(MyocardiumT3);
585  DEFINE_STATIC_STRING(RightLungT1);
586  DEFINE_STATIC_STRING(RightLungT2);
587  DEFINE_STATIC_STRING(RightLungT3);
588  DEFINE_STATIC_STRING(RightKidneyT1);
589  DEFINE_STATIC_STRING(RightKidneyT2);
590  DEFINE_STATIC_STRING(RightKidneyT3);
591  DEFINE_STATIC_STRING(SkinT1);
592  DEFINE_STATIC_STRING(SkinT2);
593  DEFINE_STATIC_STRING(SkinT3);
594  DEFINE_STATIC_STRING(SpleenT1);
595  DEFINE_STATIC_STRING(SpleenT2);
596  DEFINE_STATIC_STRING(SpleenT3);
597  };
598 
600  {
601  public:
602  DEFINE_STATIC_STRING(Bone1ToBoneT2);
603  DEFINE_STATIC_STRING(BoneT2ToBoneT1);
604  DEFINE_STATIC_STRING(BoneT1ToBoneT3);
605  DEFINE_STATIC_STRING(GroundToBoneT3);
606  DEFINE_STATIC_STRING(BoneT1ToLymph);
607 
608  DEFINE_STATIC_STRING(Brain1ToBrainT2);
609  DEFINE_STATIC_STRING(BrainT2ToBrainT1);
610  DEFINE_STATIC_STRING(BrainT1ToBrainT3);
611  DEFINE_STATIC_STRING(GroundToBrainT3);
612  DEFINE_STATIC_STRING(BrainT1ToLymph);
613 
614  DEFINE_STATIC_STRING(Fat1ToFatT2);
615  DEFINE_STATIC_STRING(FatT2ToFatT1);
616  DEFINE_STATIC_STRING(FatT1ToFatT3);
617  DEFINE_STATIC_STRING(GroundToFatT3);
618  DEFINE_STATIC_STRING(FatT1ToLymph);
619 
620  DEFINE_STATIC_STRING(SmallIntestine1ToGutT2);
621  DEFINE_STATIC_STRING(LargeIntestine1ToGutT2);
622  DEFINE_STATIC_STRING(Splanchnic1ToGutT2);
623  DEFINE_STATIC_STRING(GutT2ToGutT1);
624  DEFINE_STATIC_STRING(GutT1ToGutT3);
625  DEFINE_STATIC_STRING(GroundToGutT3);
626  DEFINE_STATIC_STRING(GutT1ToLymph);
627 
628  DEFINE_STATIC_STRING(Liver1ToLiverT2);
629  DEFINE_STATIC_STRING(LiverT2ToLiverT1);
630  DEFINE_STATIC_STRING(LiverT1ToLiverT3);
631  DEFINE_STATIC_STRING(GroundToLiverT3);
632  DEFINE_STATIC_STRING(LiverT1ToLymph);
633 
634  DEFINE_STATIC_STRING(LeftKidney1ToLeftKidneyT2);
635  DEFINE_STATIC_STRING(LeftKidneyT2ToLeftKidneyT1);
636  DEFINE_STATIC_STRING(LeftKidneyT1ToLeftKidneyT3);
637  DEFINE_STATIC_STRING(GroundToLeftKidneyT3);
638  DEFINE_STATIC_STRING(LeftKidneyT1ToLymph);
639 
640  DEFINE_STATIC_STRING(LeftLung1ToLeftLungT2);
641  DEFINE_STATIC_STRING(LeftLungT2ToLeftLungT1);
642  DEFINE_STATIC_STRING(LeftLungT1ToLeftLungT3);
643  DEFINE_STATIC_STRING(GroundToLeftLungT3);
644  DEFINE_STATIC_STRING(LeftLungT1ToLymph);
645 
646  DEFINE_STATIC_STRING(LymphToVenaCava);
647 
648  DEFINE_STATIC_STRING(Muscle1ToMuscleT2);
649  DEFINE_STATIC_STRING(MuscleT2ToMuscleT1);
650  DEFINE_STATIC_STRING(MuscleT1ToMuscleT3);
651  DEFINE_STATIC_STRING(GroundToMuscleT3);
652  DEFINE_STATIC_STRING(MuscleT1ToLymph);
653 
654  DEFINE_STATIC_STRING(Myocardium1ToMyocardiumT2);
655  DEFINE_STATIC_STRING(MyocardiumT2ToMyocardiumT1);
656  DEFINE_STATIC_STRING(MyocardiumT1ToMyocardiumT3);
657  DEFINE_STATIC_STRING(GroundToMyocardiumT3);
658  DEFINE_STATIC_STRING(MyocardiumT1ToLymph);
659 
660  DEFINE_STATIC_STRING(RightLung1ToRightLungT2);
661  DEFINE_STATIC_STRING(RightLungT2ToRightLungT1);
662  DEFINE_STATIC_STRING(RightLungT1ToRightLungT3);
663  DEFINE_STATIC_STRING(GroundToRightLungT3);
664  DEFINE_STATIC_STRING(RightLungT1ToLymph);
665 
666  DEFINE_STATIC_STRING(RightKidney1ToRightKidneyT2);
667  DEFINE_STATIC_STRING(RightKidneyT2ToRightKidneyT1);
668  DEFINE_STATIC_STRING(RightKidneyT1ToRightKidneyT3);
669  DEFINE_STATIC_STRING(GroundToRightKidneyT3);
670  DEFINE_STATIC_STRING(RightKidneyT1ToLymph);
671 
672  DEFINE_STATIC_STRING(Skin1ToSkinT2);
673  DEFINE_STATIC_STRING(SkinT2ToSkinT1);
674  DEFINE_STATIC_STRING(SkinT1ToSkinT3);
675  DEFINE_STATIC_STRING(GroundToSkinT3);
676  DEFINE_STATIC_STRING(SkinT1ToLymph);
677  DEFINE_STATIC_STRING(SkinSweating);
678 
679  DEFINE_STATIC_STRING(Spleen1ToSpleenT2);
680  DEFINE_STATIC_STRING(SpleenT2ToSpleenT1);
681  DEFINE_STATIC_STRING(SpleenT1ToSpleenT3);
682  DEFINE_STATIC_STRING(GroundToSpleenT3);
683  DEFINE_STATIC_STRING(SpleenT1ToLymph);
684  };
685 
686  class RenalNode
687  {
688  public:
689  // Blood
690  DEFINE_STATIC_STRING(RightAortaConnection);
691  DEFINE_STATIC_STRING(RightRenalArtery);
692  DEFINE_STATIC_STRING(RightAfferentArteriole);
693  DEFINE_STATIC_STRING(RightGlomerularCapillaries);
694  DEFINE_STATIC_STRING(RightNetGlomerularCapillaries);
695  DEFINE_STATIC_STRING(RightEfferentArteriole);
696  DEFINE_STATIC_STRING(RightPeritubularCapillaries);
697  DEFINE_STATIC_STRING(RightNetPeritubularCapillaries);
698  DEFINE_STATIC_STRING(RightRenalVein);
699  DEFINE_STATIC_STRING(RightVenaCavaConnection);
700  // Urine
701  DEFINE_STATIC_STRING(RightBowmansCapsules);
702  DEFINE_STATIC_STRING(RightNetBowmansCapsules);
703  DEFINE_STATIC_STRING(RightTubules);
704  DEFINE_STATIC_STRING(RightNetTubules);
705  DEFINE_STATIC_STRING(RightUreter);
706 
707  // Blood
708  DEFINE_STATIC_STRING(LeftAortaConnection);
709  DEFINE_STATIC_STRING(LeftRenalArtery);
710  DEFINE_STATIC_STRING(LeftAfferentArteriole);
711  DEFINE_STATIC_STRING(LeftGlomerularCapillaries);
712  DEFINE_STATIC_STRING(LeftNetGlomerularCapillaries);
713  DEFINE_STATIC_STRING(LeftEfferentArteriole);
714  DEFINE_STATIC_STRING(LeftPeritubularCapillaries);
715  DEFINE_STATIC_STRING(LeftNetPeritubularCapillaries);
716  DEFINE_STATIC_STRING(LeftRenalVein);
717  DEFINE_STATIC_STRING(LeftVenaCavaConnection);
718  // Urine
719  DEFINE_STATIC_STRING(LeftNetBowmansCapsules);
720  DEFINE_STATIC_STRING(LeftBowmansCapsules);
721  DEFINE_STATIC_STRING(LeftTubules);
722  DEFINE_STATIC_STRING(LeftNetTubules);
723  DEFINE_STATIC_STRING(LeftUreter);
724 
725  DEFINE_STATIC_STRING(Bladder);
726 
727  DEFINE_STATIC_STRING(Ground);
728  };
729 
730  class RenalPath
731  {
732  public:
733  DEFINE_STATIC_STRING(RightAortaConnectionToRenalArtery);
734  DEFINE_STATIC_STRING(RightRenalArteryToAfferentArteriole);
735  DEFINE_STATIC_STRING(RightRenalArteryCompliance);
736  DEFINE_STATIC_STRING(RightAfferentArterioleToGlomerularCapillaries);
737  DEFINE_STATIC_STRING(RightGlomerularCapillariesToEfferentArteriole);
738  DEFINE_STATIC_STRING(RightGlomerularCapillariesCompliance);
739  DEFINE_STATIC_STRING(RightEfferentArterioleToPeritubularCapillaries);
740  DEFINE_STATIC_STRING(RightPeritubularCapillariesToRenalVein);
741  DEFINE_STATIC_STRING(RightRenalVeinToVenaCavaConnection);
742  DEFINE_STATIC_STRING(RightRenalVeinCompliance);
743 
744  DEFINE_STATIC_STRING(RightGlomerularCapillariesToNetGlomerularCapillaries);
745  DEFINE_STATIC_STRING(RightNetGlomerularCapillariesToNetBowmansCapsules);
746  DEFINE_STATIC_STRING(RightBowmansCapsulesToNetBowmansCapsules);
747  DEFINE_STATIC_STRING(RightBowmansCapsulesToTubules);
748  DEFINE_STATIC_STRING(RightTubulesToUreter);
749  DEFINE_STATIC_STRING(RightTubulesToNetTubules);
750  DEFINE_STATIC_STRING(RightNetTubulesToNetPeritubularCapillaries);
751  DEFINE_STATIC_STRING(RightPeritubularCapillariesToNetPeritubularCapillaries);
752  DEFINE_STATIC_STRING(RightUreterToBladder);
753 
754  DEFINE_STATIC_STRING(LeftAortaConnectionToRenalArtery);
755  DEFINE_STATIC_STRING(LeftRenalArteryToAfferentArteriole);
756  DEFINE_STATIC_STRING(LeftRenalArteryCompliance);
757  DEFINE_STATIC_STRING(LeftAfferentArterioleToGlomerularCapillaries);
758  DEFINE_STATIC_STRING(LeftGlomerularCapillariesToEfferentArteriole);
759  DEFINE_STATIC_STRING(LeftGlomerularCapillariesCompliance);
760  DEFINE_STATIC_STRING(LeftEfferentArterioleToPeritubularCapillaries);
761  DEFINE_STATIC_STRING(LeftPeritubularCapillariesToRenalVein);
762  DEFINE_STATIC_STRING(LeftRenalVeinToVenaCavaConnection);
763  DEFINE_STATIC_STRING(LeftRenalVeinCompliance);
764 
765  DEFINE_STATIC_STRING(LeftGlomerularCapillariesToNetGlomerularCapillaries);
766  DEFINE_STATIC_STRING(LeftNetGlomerularCapillariesToNetBowmansCapsules);
767  DEFINE_STATIC_STRING(LeftBowmansCapsulesToNetBowmansCapsules);
768  DEFINE_STATIC_STRING(LeftBowmansCapsulesToTubules);
769  DEFINE_STATIC_STRING(LeftTubulesToUreter);
770  DEFINE_STATIC_STRING(LeftTubulesToNetTubules);
771  DEFINE_STATIC_STRING(LeftNetTubulesToNetPeritubularCapillaries);
772  DEFINE_STATIC_STRING(LeftPeritubularCapillariesToNetPeritubularCapillaries);
773  DEFINE_STATIC_STRING(LeftUreterToBladder);
774 
775  DEFINE_STATIC_STRING(BladderToGroundPressure);
776  DEFINE_STATIC_STRING(BladderToGroundUrinate);
777  };
778 
780  {
781  public:
782  DEFINE_STATIC_STRING(GutChyme);
783  };
784 
786  {
787  public:
788  DEFINE_STATIC_STRING(GutChymeToSmallIntestineVascular);
789  };
790 }
Definition: Circuits.h:220
SEThermalCircuit * m_ExternalTemperatureCircuit
Definition: Circuits.h:72
SEFluidCircuit * m_AnesthesiaMachineCircuit
Definition: Circuits.h:61
Definition: Circuits.h:81
The Respiratory System class handles the analysis and storage of data related the respiratory physiol...
Definition: Respiratory.h:33
SEFluidCircuit * m_RenalCircuit
Definition: Circuits.h:57
SEFluidCircuit * m_RespiratoryCircuit
Definition: Circuits.h:59
Definition: Circuits.h:307
Definition: Circuits.h:183
Definition: Circuits.h:730
Definition: Circuits.h:288
Definition: Circuits.h:554
Definition: Circuits.h:199
Manages and controls execution of all data/systems in Pulse.
Definition: Controller.h:50
Definition: Circuits.h:79
Definition: Circuits.h:328
SEThermalCircuit * m_TemperatureCircuit
Definition: Circuits.h:70
Definition: Circuits.h:231
SEFluidCircuit * m_CombinedRespiratoryAnesthesiaCircuit
Definition: Circuits.h:66
Definition: Circuits.h:254
virtual void Clear()
Definition: SECircuitManager.cpp:36
Definition: Circuits.h:422
The Cardiovascular system utilizes circuit methodology to characterize the intravascular fluid dynami...
Definition: Cardiovascular.h:30
Definition: Circuits.h:248
PulseController & m_data
Definition: Circuits.h:44
SEThermalCircuit * m_InternalTemperatureCircuit
Definition: Circuits.h:71
Definition: Circuits.h:785
Definition: SEFluidCircuit.h:11
virtual void StateChange()
Definition: SECircuitManager.h:46
Definition: Circuits.h:266
Definition: SEThermalCircuit.h:11
Definition: Circuits.h:779
Definition: Circuits.h:276
Definition: SECircuitManager.h:37
Definition: Circuits.h:107
Definition: Circuits.h:237
Manages all circuits associated with all Pulse systems/equipement.
Definition: Circuits.h:13
Generic anesthesia machine for positive pressure ventilation.
Definition: AnesthesiaMachine.h:17
Definition: Circuits.h:116
Definition: Circuits.h:142
Definition: Circuits.h:335
Definition: Circuits.h:101
Definition: Circuits.h:315
virtual void SetReadOnlyFluid(bool b)
Definition: SECircuitManager.cpp:92
SEFluidCircuit * m_CombinedRespiratoryMechanicalVentilatorCircuit
Definition: Circuits.h:68
SEFluidCircuit * m_CombinedRespiratoryInhalerCircuit
Definition: Circuits.h:67
Definition: Renal.h:20
SEFluidCircuit * m_CombinedCardiovascularCircuit
Definition: Circuits.h:54
Definition: Circuits.h:686
SEFluidCircuit * m_CardiovascularCircuit
Definition: Circuits.h:56
Definition: Circuits.h:599