6 #include "engine/CommonDefs.h"
7 #include "cdm/PhysiologyEngine.h"
8 #include "cdm/utils/ScopedMutex.h"
17 enum class eModelType { HumanAdultWholeBody=0, HumanAdultVentilationMechanics, HumanAdultHemodynamics };
18 PULSE_DECL
bool eModelType_ValueOf(
const std::string s, eModelType& t);
20 PULSE_DECL std::unique_ptr<PhysiologyEngine> CreatePulseEngine(eModelType type = eModelType::HumanAdultWholeBody,
Logger* logger =
nullptr);
31 DEFINE_STATIC_STRING(ActiveCardiovascular);
32 DEFINE_STATIC_STRING(Cardiovascular);
33 DEFINE_STATIC_STRING(Renal);
34 DEFINE_STATIC_STRING(Respiratory);
35 DEFINE_STATIC_STRING(RespiratoryAndAnesthesiaMachine);
36 DEFINE_STATIC_STRING(RespiratoryAndBagValveMask);
37 DEFINE_STATIC_STRING(RespiratoryAndInhaler);
38 DEFINE_STATIC_STRING(RespiratoryAndMechanicalVentilation);
39 DEFINE_STATIC_STRING(RespiratoryAndMechanicalVentilator);
40 DEFINE_STATIC_STRING(RespiratoryAndNasalCannula);
41 DEFINE_STATIC_STRING(RespiratoryAndNonRebreatherMask);
42 DEFINE_STATIC_STRING(RespiratoryAndSimpleMask);
43 DEFINE_STATIC_STRING(Aerosol);
44 DEFINE_STATIC_STRING(AerosolAndBagValveMask);
45 DEFINE_STATIC_STRING(AerosolAndInhaler);
46 DEFINE_STATIC_STRING(AerosolAndMechanicalVentilation);
47 DEFINE_STATIC_STRING(AerosolAndMechanicalVentilator);
48 DEFINE_STATIC_STRING(AnesthesiaMachine);
49 DEFINE_STATIC_STRING(BagValveMask);
50 DEFINE_STATIC_STRING(MechanicalVentilator);
52 static const std::vector<std::string>& GetValues()
57 _values.push_back(ActiveCardiovascular);
58 _values.push_back(Cardiovascular);
59 _values.push_back(Renal);
60 _values.push_back(Respiratory);
61 _values.push_back(RespiratoryAndAnesthesiaMachine);
62 _values.push_back(RespiratoryAndBagValveMask);
63 _values.push_back(RespiratoryAndInhaler);
64 _values.push_back(RespiratoryAndMechanicalVentilation);
65 _values.push_back(RespiratoryAndMechanicalVentilator);
66 _values.push_back(RespiratoryAndNasalCannula);
67 _values.push_back(RespiratoryAndNonRebreatherMask);
68 _values.push_back(RespiratoryAndSimpleMask);
69 _values.push_back(Aerosol);
70 _values.push_back(AerosolAndBagValveMask);
71 _values.push_back(AerosolAndInhaler);
72 _values.push_back(AerosolAndMechanicalVentilation);
73 _values.push_back(AerosolAndMechanicalVentilator);
74 _values.push_back(BagValveMask);
75 _values.push_back(AnesthesiaMachine);
76 _values.push_back(MechanicalVentilator);
80 static bool HasValue(
const std::string& v)
82 return std::find(_values.begin(), _values.end(), v) != _values.end();
84 static void AddValue(
const std::string& v)
93 static std::vector<std::string> _values;
97 class CerebrospinalFluidCompartment
100 DEFINE_STATIC_STRING(IntracranialSpace);
102 static const std::vector<std::string>& GetValues()
107 _values.push_back(IntracranialSpace);
111 static bool HasValue(
const std::string& v)
113 return std::find(_values.begin(), _values.end(), v) != _values.end();
115 static void AddValue(
const std::string& v)
120 _values.push_back(v);
124 static std::vector<std::string> _values;
127 class ChymeCompartment
130 DEFINE_STATIC_STRING_EX(SmallIntestine, SmallIntestineChyme);
132 static const std::vector<std::string>& GetValues()
137 _values.push_back(SmallIntestine);
141 static bool HasValue(
const std::string& v)
143 return std::find(_values.begin(), _values.end(), v) != _values.end();
145 static void AddValue(
const std::string& v)
150 _values.push_back(v);
154 static std::vector<std::string> _values;
160 DEFINE_STATIC_STRING(SmallIntestineChymeToVasculature);
162 static const std::vector<std::string>& GetValues()
167 _values.push_back(SmallIntestineChymeToVasculature);
171 static bool HasValue(
const std::string& v)
173 return std::find(_values.begin(), _values.end(), v) != _values.end();
175 static void AddValue(
const std::string& v)
180 _values.push_back(v);
184 static std::vector<std::string> _values;
187 class PulmonaryCompartment
190 DEFINE_STATIC_STRING(Airway);
191 DEFINE_STATIC_STRING(Stomach);
192 DEFINE_STATIC_STRING(Pharynx);
193 DEFINE_STATIC_STRING(Carina);
194 DEFINE_STATIC_STRING_EX(Lungs, PulmonaryLungs);
195 DEFINE_STATIC_STRING(Alveoli);
196 DEFINE_STATIC_STRING(AlveolarDeadSpace);
197 DEFINE_STATIC_STRING(AnatomicDeadSpace);
198 DEFINE_STATIC_STRING_EX(LeftLung, LeftLungPulmonary);
199 DEFINE_STATIC_STRING(LeftAnatomicDeadSpace);
200 DEFINE_STATIC_STRING(LeftAlveolarDeadSpace);
201 DEFINE_STATIC_STRING(LeftAlveoli);
202 DEFINE_STATIC_STRING_EX(RightLung, RightLungPulmonary);
203 DEFINE_STATIC_STRING(RightAnatomicDeadSpace);
204 DEFINE_STATIC_STRING(RightAlveolarDeadSpace);
205 DEFINE_STATIC_STRING(RightAlveoli);
206 DEFINE_STATIC_STRING(PleuralCavity);
207 DEFINE_STATIC_STRING(LeftPleuralCavity);
208 DEFINE_STATIC_STRING(RightPleuralCavity);
210 DEFINE_STATIC_STRING(LeftAlveoliLeak);
211 DEFINE_STATIC_STRING(LeftChestLeak);
212 DEFINE_STATIC_STRING(LeftNeedle);
213 DEFINE_STATIC_STRING(RightAlveoliLeak);
214 DEFINE_STATIC_STRING(RightChestLeak);
215 DEFINE_STATIC_STRING(RightNeedle);
217 static const std::vector<std::string>& GetValues()
222 _values.push_back(Airway);
223 _values.push_back(Stomach);
224 _values.push_back(Pharynx);
225 _values.push_back(Carina);
226 _values.push_back(Lungs);
227 _values.push_back(Alveoli);
228 _values.push_back(AlveolarDeadSpace);
229 _values.push_back(AnatomicDeadSpace);
230 _values.push_back(LeftLung);
231 _values.push_back(LeftAnatomicDeadSpace);
232 _values.push_back(LeftAlveolarDeadSpace);
233 _values.push_back(LeftAlveoli);
234 _values.push_back(RightLung);
235 _values.push_back(RightAnatomicDeadSpace);
236 _values.push_back(RightAlveolarDeadSpace);
237 _values.push_back(RightAlveoli);
238 _values.push_back(PleuralCavity);
239 _values.push_back(LeftPleuralCavity);
240 _values.push_back(RightPleuralCavity);
241 _values.push_back(LeftAlveoliLeak);
242 _values.push_back(LeftChestLeak);
243 _values.push_back(LeftNeedle);
244 _values.push_back(RightAlveoliLeak);
245 _values.push_back(RightChestLeak);
246 _values.push_back(RightNeedle);
250 static bool HasValue(
const std::string& v)
252 return std::find(_values.begin(), _values.end(), v) != _values.end();
254 static void AddValue(
const std::string& v)
259 _values.push_back(v);
263 static std::vector<std::string> _values;
269 DEFINE_STATIC_STRING(EnvironmentToAirway);
270 DEFINE_STATIC_STRING(AirwayToPharynx);
271 DEFINE_STATIC_STRING(AirwayToStomach);
272 DEFINE_STATIC_STRING(PharynxToCarina);
273 DEFINE_STATIC_STRING(PharynxToEnvironment);
274 DEFINE_STATIC_STRING(CarinaToLeftAnatomicDeadSpace);
275 DEFINE_STATIC_STRING(LeftAnatomicDeadSpaceToLeftAlveolarDeadSpace);
276 DEFINE_STATIC_STRING(LeftAlveolarDeadSpaceToLeftAlveoli);
277 DEFINE_STATIC_STRING(CarinaToRightAnatomicDeadSpace);
278 DEFINE_STATIC_STRING(RightAnatomicDeadSpaceToRightAlveolarDeadSpace);
279 DEFINE_STATIC_STRING(RightAlveolarDeadSpaceToRightAlveoli);
280 DEFINE_STATIC_STRING(EnvironmentToLeftChestLeak);
281 DEFINE_STATIC_STRING(EnvironmentToRightChestLeak);
282 DEFINE_STATIC_STRING(LeftAlveoliLeakToLeftPleural);
283 DEFINE_STATIC_STRING(LeftAlveoliToLeftAlveoliLeak);
284 DEFINE_STATIC_STRING(LeftChestLeakToLeftPleural);
285 DEFINE_STATIC_STRING(LeftNeedleToLeftPleural);
286 DEFINE_STATIC_STRING(EnvironmentToLeftNeedle);
287 DEFINE_STATIC_STRING(RightAlveoliLeakToRightPleural);
288 DEFINE_STATIC_STRING(RightAlveoliToRightAlveoliLeak);
289 DEFINE_STATIC_STRING(RightChestLeakToRightPleural);
290 DEFINE_STATIC_STRING(RightNeedleToRightPleural);
291 DEFINE_STATIC_STRING(EnvironmentToRightNeedle);
293 static const std::vector<std::string>& GetValues()
298 _values.push_back(EnvironmentToAirway);
299 _values.push_back(AirwayToPharynx);
300 _values.push_back(AirwayToStomach);
301 _values.push_back(PharynxToCarina);
302 _values.push_back(PharynxToEnvironment);
303 _values.push_back(CarinaToLeftAnatomicDeadSpace);
304 _values.push_back(LeftAnatomicDeadSpaceToLeftAlveolarDeadSpace);
305 _values.push_back(LeftAlveolarDeadSpaceToLeftAlveoli);
306 _values.push_back(CarinaToRightAnatomicDeadSpace);
307 _values.push_back(RightAnatomicDeadSpaceToRightAlveolarDeadSpace);
308 _values.push_back(RightAlveolarDeadSpaceToRightAlveoli);
309 _values.push_back(EnvironmentToLeftChestLeak);
310 _values.push_back(EnvironmentToRightChestLeak);
311 _values.push_back(LeftAlveoliLeakToLeftPleural);
312 _values.push_back(LeftAlveoliToLeftAlveoliLeak);
313 _values.push_back(LeftChestLeakToLeftPleural);
314 _values.push_back(LeftNeedleToLeftPleural);
315 _values.push_back(EnvironmentToLeftNeedle);
316 _values.push_back(RightAlveoliLeakToRightPleural);
317 _values.push_back(RightAlveoliToRightAlveoliLeak);
318 _values.push_back(RightChestLeakToRightPleural);
319 _values.push_back(RightNeedleToRightPleural);
320 _values.push_back(EnvironmentToRightNeedle);
324 static bool HasValue(
const std::string& v)
326 return std::find(_values.begin(), _values.end(), v)!=_values.end();
328 static void AddValue(
const std::string& v)
333 _values.push_back(v);
337 static std::vector<std::string> _values;
340 class ExpandedPulmonaryCompartment
344 static const std::vector<std::string>& GetValues()
353 static bool HasValue(
const std::string& v)
355 return std::find(_values.begin(), _values.end(), v) != _values.end();
357 static void AddValue(
const std::string& v)
362 _values.push_back(v);
366 static std::vector<std::string> _values;
369 class ExpandedPulmonaryLink
373 static const std::vector<std::string>& GetValues()
382 static bool HasValue(
const std::string& v)
384 return std::find(_values.begin(), _values.end(), v) != _values.end();
386 static void AddValue(
const std::string& v)
391 _values.push_back(v);
395 static std::vector<std::string> _values;
398 class TissueCompartment
401 DEFINE_STATIC_STRING_EX(Bone, BoneTissue);
402 DEFINE_STATIC_STRING_EX(Brain, BrainTissue);
403 DEFINE_STATIC_STRING_EX(Fat, FatTissue);
404 DEFINE_STATIC_STRING_EX(Gut, GutTissue);
405 DEFINE_STATIC_STRING_EX(LeftKidney, LeftKidneyTissue);
406 DEFINE_STATIC_STRING_EX(LeftLung, LeftLungTissue);
407 DEFINE_STATIC_STRING_EX(Liver, LiverTissue);
408 DEFINE_STATIC_STRING_EX(Muscle, MuscleTissue);
409 DEFINE_STATIC_STRING_EX(Myocardium, MyocardiumTissue);
410 DEFINE_STATIC_STRING_EX(RightKidney, RightKidneyTissue);
411 DEFINE_STATIC_STRING_EX(RightLung, RightLungTissue);
412 DEFINE_STATIC_STRING_EX(Skin, SkinTissue);
413 DEFINE_STATIC_STRING_EX(Spleen, SpleenTissue);
415 static const std::vector<std::string>& GetValues()
420 _values.push_back(Bone);
421 _values.push_back(Brain);
422 _values.push_back(Fat);
423 _values.push_back(Gut);
424 _values.push_back(LeftKidney);
425 _values.push_back(LeftLung);
426 _values.push_back(Liver);
427 _values.push_back(Muscle);
428 _values.push_back(Myocardium);
429 _values.push_back(RightKidney);
430 _values.push_back(RightLung);
431 _values.push_back(Skin);
432 _values.push_back(Spleen);
436 static bool HasValue(
const std::string& v)
438 return std::find(_values.begin(), _values.end(), v) != _values.end();
440 static void AddValue(
const std::string& v)
445 _values.push_back(v);
449 static std::vector<std::string> _values;
452 class ExtravascularCompartment
455 DEFINE_STATIC_STRING_EX(BoneExtracellular, BoneTissueExtracellular);
456 DEFINE_STATIC_STRING_EX(BrainExtracellular, BrainTissueExtracellular);
457 DEFINE_STATIC_STRING_EX(FatExtracellular, FatTissueExtracellular);
458 DEFINE_STATIC_STRING_EX(GutExtracellular, GutTissueExtracellular);
459 DEFINE_STATIC_STRING_EX(LeftKidneyExtracellular, LeftKidneyTissueExtracellular);
460 DEFINE_STATIC_STRING_EX(LeftLungExtracellular, LeftLungTissueExtracellular);
461 DEFINE_STATIC_STRING_EX(LiverExtracellular, LiverTissueExtracellular);
462 DEFINE_STATIC_STRING_EX(MuscleExtracellular, MuscleTissueExtracellular);
463 DEFINE_STATIC_STRING_EX(MyocardiumExtracellular, MyocardiumTissueExtracellular);
464 DEFINE_STATIC_STRING_EX(RightKidneyExtracellular, RightKidneyTissueExtracellular);
465 DEFINE_STATIC_STRING_EX(RightLungExtracellular, RightLungTissueExtracellular);
466 DEFINE_STATIC_STRING_EX(SkinExtracellular, SkinTissueExtracellular);
467 DEFINE_STATIC_STRING_EX(SpleenExtracellular, SpleenTissueExtracellular);
469 DEFINE_STATIC_STRING_EX(BoneIntracellular, BoneTissueIntracellular);
470 DEFINE_STATIC_STRING_EX(BrainIntracellular, BrainTissueIntracellular);
471 DEFINE_STATIC_STRING_EX(FatIntracellular, FatTissueIntracellular);
472 DEFINE_STATIC_STRING_EX(GutIntracellular, GutTissueIntracellular);
473 DEFINE_STATIC_STRING_EX(LeftKidneyIntracellular, LeftKidneyTissueIntracellular);
474 DEFINE_STATIC_STRING_EX(LeftLungIntracellular, LeftLungTissueIntracellular);
475 DEFINE_STATIC_STRING_EX(LiverIntracellular, LiverTissueIntracellular);
476 DEFINE_STATIC_STRING_EX(MuscleIntracellular, MuscleTissueIntracellular);
477 DEFINE_STATIC_STRING_EX(MyocardiumIntracellular, MyocardiumTissueIntracellular);
478 DEFINE_STATIC_STRING_EX(RightKidneyIntracellular, RightKidneyTissueIntracellular);
479 DEFINE_STATIC_STRING_EX(RightLungIntracellular, RightLungTissueIntracellular);
480 DEFINE_STATIC_STRING_EX(SkinIntracellular, SkinTissueIntracellular);
481 DEFINE_STATIC_STRING_EX(SpleenIntracellular, SpleenTissueIntracellular);
483 static const std::vector<std::string>& GetValues()
488 _values.push_back(BoneExtracellular);
489 _values.push_back(BrainExtracellular);
490 _values.push_back(FatExtracellular);
491 _values.push_back(GutExtracellular);
492 _values.push_back(LeftKidneyExtracellular);
493 _values.push_back(LeftLungExtracellular);
494 _values.push_back(LiverExtracellular);
495 _values.push_back(MuscleExtracellular);
496 _values.push_back(MyocardiumExtracellular);
497 _values.push_back(RightKidneyExtracellular);
498 _values.push_back(RightLungExtracellular);
499 _values.push_back(SkinExtracellular);
500 _values.push_back(SpleenExtracellular);
502 _values.push_back(BoneIntracellular);
503 _values.push_back(BrainIntracellular);
504 _values.push_back(FatIntracellular);
505 _values.push_back(GutIntracellular);
506 _values.push_back(LeftKidneyIntracellular);
507 _values.push_back(LeftLungIntracellular);
508 _values.push_back(LiverIntracellular);
509 _values.push_back(MuscleIntracellular);
510 _values.push_back(MyocardiumIntracellular);
511 _values.push_back(RightKidneyIntracellular);
512 _values.push_back(RightLungIntracellular);
513 _values.push_back(SkinIntracellular);
514 _values.push_back(SpleenIntracellular);
518 static bool HasValue(
const std::string& v)
520 return std::find(_values.begin(), _values.end(), v) != _values.end();
522 static void AddValue(
const std::string& v)
527 _values.push_back(v);
531 static std::vector<std::string> _values;
534 class VascularCompartment
538 DEFINE_STATIC_STRING(Aorta);
539 DEFINE_STATIC_STRING(Heart);
540 DEFINE_STATIC_STRING_EX(Myocardium, MyocardiumVasculature);
541 DEFINE_STATIC_STRING(LeftHeart);
542 DEFINE_STATIC_STRING(RightHeart);
543 DEFINE_STATIC_STRING(Pericardium);
544 DEFINE_STATIC_STRING(VenaCava);
546 DEFINE_STATIC_STRING(PulmonaryArteries);
547 DEFINE_STATIC_STRING(PulmonaryCapillaries);
548 DEFINE_STATIC_STRING(PulmonaryVeins);
549 DEFINE_STATIC_STRING_EX(Lungs, LungsVasculature);
550 DEFINE_STATIC_STRING_EX(LeftLung, LeftLungVasculature);
551 DEFINE_STATIC_STRING(LeftPulmonaryArteries);
552 DEFINE_STATIC_STRING(LeftPulmonaryCapillaries);
553 DEFINE_STATIC_STRING(LeftPulmonaryVeins);
554 DEFINE_STATIC_STRING_EX(RightLung, RightLungVasculature);
555 DEFINE_STATIC_STRING(RightPulmonaryArteries);
556 DEFINE_STATIC_STRING(RightPulmonaryCapillaries);
557 DEFINE_STATIC_STRING(RightPulmonaryVeins);
559 DEFINE_STATIC_STRING_EX(Kidneys, KidneyVasculature);
560 DEFINE_STATIC_STRING_EX(LeftKidney, LeftKidneyVasculature);
561 DEFINE_STATIC_STRING(LeftRenalArtery);
562 DEFINE_STATIC_STRING(LeftNephron);
563 DEFINE_STATIC_STRING(LeftAfferentArteriole);
564 DEFINE_STATIC_STRING(LeftGlomerularCapillaries);
565 DEFINE_STATIC_STRING(LeftEfferentArteriole);
566 DEFINE_STATIC_STRING(LeftPeritubularCapillaries);
567 DEFINE_STATIC_STRING(LeftBowmansCapsules);
568 DEFINE_STATIC_STRING(LeftTubules);
569 DEFINE_STATIC_STRING(LeftRenalVein);
570 DEFINE_STATIC_STRING_EX(RightKidney, RightKidneyVasculature);
571 DEFINE_STATIC_STRING(RightRenalArtery);
572 DEFINE_STATIC_STRING(RightNephron);
573 DEFINE_STATIC_STRING(RightAfferentArteriole);
574 DEFINE_STATIC_STRING(RightGlomerularCapillaries);
575 DEFINE_STATIC_STRING(RightEfferentArteriole);
576 DEFINE_STATIC_STRING(RightPeritubularCapillaries);
577 DEFINE_STATIC_STRING(RightBowmansCapsules);
578 DEFINE_STATIC_STRING(RightTubules);
579 DEFINE_STATIC_STRING(RightRenalVein);
581 DEFINE_STATIC_STRING_EX(Bone, BoneVasculature);
582 DEFINE_STATIC_STRING_EX(Brain, BrainVasculature);
583 DEFINE_STATIC_STRING_EX(Fat, FatVasculature);
584 DEFINE_STATIC_STRING_EX(Gut, GutVasculature);
585 DEFINE_STATIC_STRING_EX(Splanchnic, SplanchnicVasculature);
586 DEFINE_STATIC_STRING_EX(SmallIntestine, SmallIntestineVasculature);
587 DEFINE_STATIC_STRING_EX(LargeIntestine, LargeIntestineVasculature);
588 DEFINE_STATIC_STRING_EX(Liver, LiverVasculature);
589 DEFINE_STATIC_STRING_EX(Spleen, SpleenVasculature);
590 DEFINE_STATIC_STRING_EX(Skin, SkinVasculature);
591 DEFINE_STATIC_STRING_EX(Muscle, MuscleVasculature);
592 DEFINE_STATIC_STRING_EX(LeftArm, LeftArmVasculature);
593 DEFINE_STATIC_STRING_EX(LeftLeg, LeftLegVasculature);
594 DEFINE_STATIC_STRING_EX(RightArm, RightArmVasculature);
595 DEFINE_STATIC_STRING_EX(RightLeg, RightLegVasculature);
596 DEFINE_STATIC_STRING(Abdomen);
597 DEFINE_STATIC_STRING(AbdominalCavity);
599 DEFINE_STATIC_STRING(Ground);
602 static const std::vector<std::string>& GetValues()
607 _values.push_back(Aorta);
608 _values.push_back(Abdomen);
609 _values.push_back(Heart);
610 _values.push_back(Myocardium);
611 _values.push_back(LeftHeart);
612 _values.push_back(RightHeart);
613 _values.push_back(Pericardium);
614 _values.push_back(VenaCava);
615 _values.push_back(PulmonaryArteries);
616 _values.push_back(PulmonaryCapillaries);
617 _values.push_back(PulmonaryVeins);
618 _values.push_back(Lungs);
619 _values.push_back(LeftLung);
620 _values.push_back(LeftPulmonaryArteries);
621 _values.push_back(LeftPulmonaryCapillaries);
622 _values.push_back(LeftPulmonaryVeins);
623 _values.push_back(RightLung);
624 _values.push_back(RightPulmonaryArteries);
625 _values.push_back(RightPulmonaryCapillaries);
626 _values.push_back(RightPulmonaryVeins);
627 _values.push_back(Kidneys);
628 _values.push_back(LeftKidney);
629 _values.push_back(LeftRenalArtery);
630 _values.push_back(LeftNephron);
631 _values.push_back(LeftAfferentArteriole);
632 _values.push_back(LeftGlomerularCapillaries);
633 _values.push_back(LeftEfferentArteriole);
634 _values.push_back(LeftPeritubularCapillaries);
635 _values.push_back(LeftBowmansCapsules);
636 _values.push_back(LeftTubules);
637 _values.push_back(LeftRenalVein);
638 _values.push_back(RightKidney);
639 _values.push_back(RightRenalArtery);
640 _values.push_back(RightNephron);
641 _values.push_back(RightAfferentArteriole);
642 _values.push_back(RightGlomerularCapillaries);
643 _values.push_back(RightEfferentArteriole);
644 _values.push_back(RightPeritubularCapillaries);
645 _values.push_back(RightBowmansCapsules);
646 _values.push_back(RightTubules);
647 _values.push_back(RightRenalVein);
648 _values.push_back(Bone);
649 _values.push_back(Brain);
650 _values.push_back(Fat);
651 _values.push_back(Gut);
652 _values.push_back(Splanchnic);
653 _values.push_back(SmallIntestine);
654 _values.push_back(LargeIntestine);
655 _values.push_back(Liver);
656 _values.push_back(Spleen);
657 _values.push_back(Skin);
658 _values.push_back(Muscle);
659 _values.push_back(LeftArm);
660 _values.push_back(LeftLeg);
661 _values.push_back(RightArm);
662 _values.push_back(RightLeg);
667 static bool HasValue(
const std::string& v)
669 return std::find(_values.begin(), _values.end(), v) != _values.end();
671 static void AddValue(
const std::string& v)
676 _values.push_back(v);
680 static std::vector<std::string> _values;
687 DEFINE_STATIC_STRING(VenaCavaToRightHeart);
688 DEFINE_STATIC_STRING(RightHeartToLeftPulmonaryArteries);
689 DEFINE_STATIC_STRING(LeftPulmonaryArteriesToCapillaries);
690 DEFINE_STATIC_STRING(LeftPulmonaryArteriesToVeins);
691 DEFINE_STATIC_STRING(LeftPulmonaryCapillariesToVeins);
692 DEFINE_STATIC_STRING(LeftPulmonaryVeinsLeak);
693 DEFINE_STATIC_STRING(LeftPulmonaryVeinsToLeftHeart);
694 DEFINE_STATIC_STRING(RightHeartToRightPulmonaryArteries);
695 DEFINE_STATIC_STRING(RightPulmonaryArteriesToCapillaries);
696 DEFINE_STATIC_STRING(RightPulmonaryArteriesToVeins);
697 DEFINE_STATIC_STRING(RightPulmonaryCapillariesToVeins);
698 DEFINE_STATIC_STRING(RightPulmonaryVeinsLeak);
699 DEFINE_STATIC_STRING(RightPulmonaryVeinsToLeftHeart);
700 DEFINE_STATIC_STRING(LeftHeartToAorta);
702 DEFINE_STATIC_STRING(AortaToBone);
703 DEFINE_STATIC_STRING(BoneToVenaCava);
705 DEFINE_STATIC_STRING(AortaToBrain);
706 DEFINE_STATIC_STRING(BrainToVenaCava);
708 DEFINE_STATIC_STRING(AortaToFat);
709 DEFINE_STATIC_STRING(FatToVenaCava);
711 DEFINE_STATIC_STRING(AortaToLargeIntestine);
712 DEFINE_STATIC_STRING(LargeIntestineToLiver);
714 DEFINE_STATIC_STRING(AortaToLeftArm);
715 DEFINE_STATIC_STRING(LeftArmToVenaCava);
717 DEFINE_STATIC_STRING(AortaToLeftKidney);
718 DEFINE_STATIC_STRING(LeftKidneyToVenaCava);
720 DEFINE_STATIC_STRING(AortaToLeftLeg);
721 DEFINE_STATIC_STRING(LeftLegToVenaCava);
723 DEFINE_STATIC_STRING(AortaToLiver);
724 DEFINE_STATIC_STRING(LiverToVenaCava);
726 DEFINE_STATIC_STRING(AortaToMuscle);
727 DEFINE_STATIC_STRING(MuscleToVenaCava);
729 DEFINE_STATIC_STRING(AortaToMyocardium);
730 DEFINE_STATIC_STRING(MyocardiumToVenaCava);
732 DEFINE_STATIC_STRING(AortaToRightArm);
733 DEFINE_STATIC_STRING(RightArmToVenaCava);
735 DEFINE_STATIC_STRING(AortaToRightKidney);
736 DEFINE_STATIC_STRING(RightKidneyToVenaCava);
738 DEFINE_STATIC_STRING(AortaToRightLeg);
739 DEFINE_STATIC_STRING(RightLegToVenaCava);
741 DEFINE_STATIC_STRING(AortaToSkin);
742 DEFINE_STATIC_STRING(SkinToVenaCava);
744 DEFINE_STATIC_STRING(AortaToSmallIntestine);
745 DEFINE_STATIC_STRING(SmallIntestineToLiver);
747 DEFINE_STATIC_STRING(AortaToSplanchnic);
748 DEFINE_STATIC_STRING(SplanchnicToLiver);
750 DEFINE_STATIC_STRING(AortaToSpleen);
751 DEFINE_STATIC_STRING(SpleenToLiver);
754 DEFINE_STATIC_STRING(VenaCavaIV);
757 DEFINE_STATIC_STRING(BoneVascularToTissue);
758 DEFINE_STATIC_STRING(BrainVascularToTissue);
759 DEFINE_STATIC_STRING(FatVascularToTissue);
760 DEFINE_STATIC_STRING(SmallIntestineVascularToTissue);
761 DEFINE_STATIC_STRING(LargeIntestineVascularToTissue);
762 DEFINE_STATIC_STRING(SplanchnicVascularToTissue);
763 DEFINE_STATIC_STRING(LeftKidneyVascularToTissue);
764 DEFINE_STATIC_STRING(LeftLungVascularToTissue);
765 DEFINE_STATIC_STRING(LiverVascularToTissue);
766 DEFINE_STATIC_STRING(MuscleVascularToTissue);
767 DEFINE_STATIC_STRING(MyocardiumVascularToTissue);
768 DEFINE_STATIC_STRING(RightKidneyVascularToTissue);
769 DEFINE_STATIC_STRING(RightLungVascularToTissue);
770 DEFINE_STATIC_STRING(SkinVascularToTissue);
771 DEFINE_STATIC_STRING(SpleenVascularToTissue);
775 DEFINE_STATIC_STRING(LeftRenalArteryToAfferentArteriole);
776 DEFINE_STATIC_STRING(LeftAfferentArterioleToGlomerularCapillaries);
777 DEFINE_STATIC_STRING(LeftGlomerularCapillariesToEfferentArteriole);
778 DEFINE_STATIC_STRING(LeftGlomerularCapillariesToBowmansCapsules);
779 DEFINE_STATIC_STRING(LeftBowmansCapsulesToTubules);
780 DEFINE_STATIC_STRING(LeftTubulesToPeritubularCapillaries);
781 DEFINE_STATIC_STRING(LeftEfferentArterioleToPeritubularCapillaries);
782 DEFINE_STATIC_STRING(LeftPeritubularCapillariesToRenalVein);
786 DEFINE_STATIC_STRING(RightRenalArteryToAfferentArteriole);
787 DEFINE_STATIC_STRING(RightAfferentArterioleToGlomerularCapillaries);
788 DEFINE_STATIC_STRING(RightGlomerularCapillariesToEfferentArteriole);
789 DEFINE_STATIC_STRING(RightGlomerularCapillariesToBowmansCapsules);
790 DEFINE_STATIC_STRING(RightBowmansCapsulesToTubules);
791 DEFINE_STATIC_STRING(RightTubulesToPeritubularCapillaries);
792 DEFINE_STATIC_STRING(RightEfferentArterioleToPeritubularCapillaries);
793 DEFINE_STATIC_STRING(RightPeritubularCapillariesToRenalVein);
797 static const std::vector<std::string>& GetValues()
802 _values.push_back(VenaCavaToRightHeart);
803 _values.push_back(RightHeartToLeftPulmonaryArteries);
804 _values.push_back(LeftPulmonaryArteriesToCapillaries);
805 _values.push_back(LeftPulmonaryArteriesToVeins);
806 _values.push_back(LeftPulmonaryCapillariesToVeins);
807 _values.push_back(LeftPulmonaryVeinsLeak);
808 _values.push_back(LeftPulmonaryVeinsToLeftHeart);
809 _values.push_back(RightHeartToRightPulmonaryArteries);
810 _values.push_back(RightPulmonaryArteriesToCapillaries);
811 _values.push_back(RightPulmonaryArteriesToVeins);
812 _values.push_back(RightPulmonaryCapillariesToVeins);
813 _values.push_back(RightPulmonaryVeinsLeak);
814 _values.push_back(RightPulmonaryVeinsToLeftHeart);
815 _values.push_back(LeftHeartToAorta);
816 _values.push_back(AortaToBone);
817 _values.push_back(BoneToVenaCava);
818 _values.push_back(AortaToBrain);
819 _values.push_back(BrainToVenaCava);
820 _values.push_back(AortaToFat);
821 _values.push_back(FatToVenaCava);
822 _values.push_back(AortaToLargeIntestine);
823 _values.push_back(LargeIntestineToLiver);
824 _values.push_back(AortaToLeftArm);
825 _values.push_back(LeftArmToVenaCava);
826 _values.push_back(AortaToLeftKidney);
827 _values.push_back(LeftKidneyToVenaCava);
828 _values.push_back(AortaToLeftLeg);
829 _values.push_back(LeftLegToVenaCava);
830 _values.push_back(AortaToLiver);
831 _values.push_back(LiverToVenaCava);
832 _values.push_back(AortaToMuscle);
833 _values.push_back(MuscleToVenaCava);
834 _values.push_back(AortaToMyocardium);
835 _values.push_back(MyocardiumToVenaCava);
836 _values.push_back(AortaToRightArm);
837 _values.push_back(RightArmToVenaCava);
838 _values.push_back(AortaToRightKidney);
839 _values.push_back(RightKidneyToVenaCava);
840 _values.push_back(AortaToRightLeg);
841 _values.push_back(RightLegToVenaCava);
842 _values.push_back(AortaToSkin);
843 _values.push_back(SkinToVenaCava);
844 _values.push_back(AortaToSmallIntestine);
845 _values.push_back(SmallIntestineToLiver);
846 _values.push_back(AortaToSplanchnic);
847 _values.push_back(SplanchnicToLiver);
848 _values.push_back(AortaToSpleen);
849 _values.push_back(SpleenToLiver);
851 _values.push_back(BoneVascularToTissue);
852 _values.push_back(BrainVascularToTissue);
853 _values.push_back(FatVascularToTissue);
854 _values.push_back(SmallIntestineVascularToTissue);
855 _values.push_back(LargeIntestineVascularToTissue);
856 _values.push_back(SplanchnicVascularToTissue);
857 _values.push_back(LeftKidneyVascularToTissue);
858 _values.push_back(LeftLungVascularToTissue);
859 _values.push_back(LiverVascularToTissue);
860 _values.push_back(MuscleVascularToTissue);
861 _values.push_back(MyocardiumVascularToTissue);
862 _values.push_back(RightKidneyVascularToTissue);
863 _values.push_back(RightLungVascularToTissue);
864 _values.push_back(SkinVascularToTissue);
865 _values.push_back(SpleenVascularToTissue);
867 _values.push_back(LeftRenalArteryToAfferentArteriole);
868 _values.push_back(LeftAfferentArterioleToGlomerularCapillaries);
869 _values.push_back(LeftGlomerularCapillariesToEfferentArteriole);
870 _values.push_back(LeftGlomerularCapillariesToBowmansCapsules);
871 _values.push_back(LeftBowmansCapsulesToTubules);
872 _values.push_back(LeftTubulesToPeritubularCapillaries);
873 _values.push_back(LeftEfferentArterioleToPeritubularCapillaries);
874 _values.push_back(LeftPeritubularCapillariesToRenalVein);
875 _values.push_back(RightRenalArteryToAfferentArteriole);
876 _values.push_back(RightAfferentArterioleToGlomerularCapillaries);
877 _values.push_back(RightGlomerularCapillariesToEfferentArteriole);
878 _values.push_back(RightGlomerularCapillariesToBowmansCapsules);
879 _values.push_back(RightBowmansCapsulesToTubules);
880 _values.push_back(RightTubulesToPeritubularCapillaries);
881 _values.push_back(RightEfferentArterioleToPeritubularCapillaries);
882 _values.push_back(RightPeritubularCapillariesToRenalVein);
886 static bool HasValue(
const std::string& v)
888 return std::find(_values.begin(), _values.end(), v) != _values.end();
890 static void AddValue(
const std::string& v)
895 _values.push_back(v);
899 static std::vector<std::string> _values;
902 class ExpandedVascularCompartment
906 DEFINE_STATIC_STRING(Aorta);
907 DEFINE_STATIC_STRING(ArterialBuffer);
908 DEFINE_STATIC_STRING(Heart);
909 DEFINE_STATIC_STRING_EX(Myocardium, MyocardiumVasculature);
910 DEFINE_STATIC_STRING(LeftHeart);
911 DEFINE_STATIC_STRING(RightHeart);
912 DEFINE_STATIC_STRING(Pericardium);
913 DEFINE_STATIC_STRING(VenaCava);
914 DEFINE_STATIC_STRING(VenousBuffer);
916 DEFINE_STATIC_STRING(PulmonaryArteries);
917 DEFINE_STATIC_STRING(PulmonaryCapillaries);
918 DEFINE_STATIC_STRING(PulmonaryVeins);
919 DEFINE_STATIC_STRING_EX(Lungs, LungsVasculature);
920 DEFINE_STATIC_STRING_EX(LeftLung, LeftLungVasculature);
921 DEFINE_STATIC_STRING(LeftPulmonaryArteries);
922 DEFINE_STATIC_STRING(LeftPulmonaryCapillaries);
923 DEFINE_STATIC_STRING(LeftPulmonaryVeins);
924 DEFINE_STATIC_STRING_EX(RightLung, RightLungVasculature);
925 DEFINE_STATIC_STRING(RightPulmonaryArteries);
926 DEFINE_STATIC_STRING(RightPulmonaryCapillaries);
927 DEFINE_STATIC_STRING(RightPulmonaryVeins);
929 DEFINE_STATIC_STRING_EX(Kidneys, KidneyVasculature);
930 DEFINE_STATIC_STRING_EX(LeftKidney, LeftKidneyVasculature);
931 DEFINE_STATIC_STRING(LeftRenalArtery);
932 DEFINE_STATIC_STRING(LeftNephron);
933 DEFINE_STATIC_STRING(LeftAfferentArteriole);
934 DEFINE_STATIC_STRING(LeftGlomerularCapillaries);
935 DEFINE_STATIC_STRING(LeftEfferentArteriole);
936 DEFINE_STATIC_STRING(LeftPeritubularCapillaries);
937 DEFINE_STATIC_STRING(LeftBowmansCapsules);
938 DEFINE_STATIC_STRING(LeftTubules);
939 DEFINE_STATIC_STRING(LeftRenalVein);
940 DEFINE_STATIC_STRING_EX(RightKidney, RightKidneyVasculature);
941 DEFINE_STATIC_STRING(RightRenalArtery);
942 DEFINE_STATIC_STRING(RightNephron);
943 DEFINE_STATIC_STRING(RightAfferentArteriole);
944 DEFINE_STATIC_STRING(RightGlomerularCapillaries);
945 DEFINE_STATIC_STRING(RightEfferentArteriole);
946 DEFINE_STATIC_STRING(RightPeritubularCapillaries);
947 DEFINE_STATIC_STRING(RightBowmansCapsules);
948 DEFINE_STATIC_STRING(RightTubules);
949 DEFINE_STATIC_STRING(RightRenalVein);
951 DEFINE_STATIC_STRING_EX(Bone, BoneVasculature);
952 DEFINE_STATIC_STRING_EX(Head, HeadVasculature);
953 DEFINE_STATIC_STRING_EX(Extracranial, ExtracranialVasculature);
954 DEFINE_STATIC_STRING_EX(Intracranial, IntracranialVasculature);
955 DEFINE_STATIC_STRING_EX(Fat, FatVasculature);
956 DEFINE_STATIC_STRING_EX(Gut, GutVasculature);
957 DEFINE_STATIC_STRING_EX(Gut1, Gut1Vasculature);
958 DEFINE_STATIC_STRING_EX(Splanchnic, SplanchnicVasculature);
959 DEFINE_STATIC_STRING_EX(SmallIntestine, SmallIntestineVasculature);
960 DEFINE_STATIC_STRING_EX(LargeIntestine, LargeIntestineVasculature);
961 DEFINE_STATIC_STRING_EX(LeftArm, LeftArmVasculature);
962 DEFINE_STATIC_STRING_EX(LeftArmArterioles, LeftArmArteriolesVasculature);
963 DEFINE_STATIC_STRING_EX(LeftArmBone, LeftArmBoneVasculature);
964 DEFINE_STATIC_STRING_EX(LeftArmFat, LeftArmFatVasculature);
965 DEFINE_STATIC_STRING(LeftArmMicrovasculature);
966 DEFINE_STATIC_STRING_EX(LeftArmMuscle, LeftArmMuscleVasculature);
967 DEFINE_STATIC_STRING_EX(LeftArmSkin, LeftArmSkinVasculature);
968 DEFINE_STATIC_STRING_EX(LeftArmVenules, LeftArmVenulesVasculature);
969 DEFINE_STATIC_STRING_EX(LeftLeg, LeftLegVasculature);
970 DEFINE_STATIC_STRING_EX(LeftLegArterioles, LeftLegArteriolesVasculature);
971 DEFINE_STATIC_STRING_EX(LeftLegBone, LeftLegBoneVasculature);
972 DEFINE_STATIC_STRING_EX(LeftLegFat, LeftLegFatVasculature);
973 DEFINE_STATIC_STRING(LeftLegMicrovasculature);
974 DEFINE_STATIC_STRING_EX(LeftLegMuscle, LeftLegMuscleVasculature);
975 DEFINE_STATIC_STRING_EX(LeftLegSkin, LeftLegSkinVasculature);
976 DEFINE_STATIC_STRING_EX(LeftLegVenules, LeftLegVenulesVasculature);
977 DEFINE_STATIC_STRING_EX(Liver, LiverVasculature);
978 DEFINE_STATIC_STRING_EX(Muscle, MuscleVasculature);
979 DEFINE_STATIC_STRING_EX(RightArm, RightArmVasculature);
980 DEFINE_STATIC_STRING_EX(RightArmArterioles, RightArmArteriolesVasculature);
981 DEFINE_STATIC_STRING_EX(RightArmBone, RightArmBoneVasculature);
982 DEFINE_STATIC_STRING_EX(RightArmFat, RightArmFatVasculature);
983 DEFINE_STATIC_STRING(RightArmMicrovasculature);
984 DEFINE_STATIC_STRING_EX(RightArmMuscle, RightArmMuscleVasculature);
985 DEFINE_STATIC_STRING_EX(RightArmSkin, RightArmSkinVasculature);
986 DEFINE_STATIC_STRING_EX(RightArmVenules, RightArmVenulesVasculature);
987 DEFINE_STATIC_STRING_EX(RightLeg, RightLegVasculature);
988 DEFINE_STATIC_STRING_EX(RightLegArterioles, RightLegArteriolesVasculature);
989 DEFINE_STATIC_STRING_EX(RightLegBone, RightLegBoneVasculature);
990 DEFINE_STATIC_STRING_EX(RightLegFat, RightLegFatVasculature);
991 DEFINE_STATIC_STRING(RightLegMicrovasculature);
992 DEFINE_STATIC_STRING_EX(RightLegMuscle, RightLegMuscleVasculature);
993 DEFINE_STATIC_STRING_EX(RightLegSkin, RightLegSkinVasculature);
994 DEFINE_STATIC_STRING_EX(RightLegVenules, RightLegVenulesVasculature);
995 DEFINE_STATIC_STRING_EX(Skin, SkinVasculature);
996 DEFINE_STATIC_STRING_EX(Spleen, SpleenVasculature);
997 DEFINE_STATIC_STRING_EX(Torso, TorsoVasculature);
998 DEFINE_STATIC_STRING_EX(TorsoArterioles, TorsoArteriolesVasculature);
999 DEFINE_STATIC_STRING_EX(TorsoBone, TorsoBoneVasculature);
1000 DEFINE_STATIC_STRING_EX(TorsoFat, TorsoFatVasculature);
1001 DEFINE_STATIC_STRING(TorsoMicrovasculature);
1002 DEFINE_STATIC_STRING_EX(TorsoMuscle, TorsoMuscleVasculature);
1003 DEFINE_STATIC_STRING_EX(TorsoSkin, TorsoSkinVasculature);
1004 DEFINE_STATIC_STRING_EX(TorsoVenules, TorsoVenulesVasculature);
1005 DEFINE_STATIC_STRING(Abdomen);
1006 DEFINE_STATIC_STRING(AbdominalCavity);
1008 DEFINE_STATIC_STRING(Ground);
1011 static const std::vector<std::string>& GetValues()
1014 if (_values.empty())
1016 _values.push_back(Aorta);
1017 _values.push_back(ArterialBuffer);
1018 _values.push_back(Abdomen);
1019 _values.push_back(Heart);
1020 _values.push_back(Myocardium);
1021 _values.push_back(LeftHeart);
1022 _values.push_back(RightHeart);
1023 _values.push_back(Pericardium);
1024 _values.push_back(VenaCava);
1025 _values.push_back(VenousBuffer);
1026 _values.push_back(PulmonaryArteries);
1027 _values.push_back(PulmonaryCapillaries);
1028 _values.push_back(PulmonaryVeins);
1029 _values.push_back(Lungs);
1030 _values.push_back(LeftLung);
1031 _values.push_back(LeftPulmonaryArteries);
1032 _values.push_back(LeftPulmonaryCapillaries);
1033 _values.push_back(LeftPulmonaryVeins);
1034 _values.push_back(RightLung);
1035 _values.push_back(RightPulmonaryArteries);
1036 _values.push_back(RightPulmonaryCapillaries);
1037 _values.push_back(RightPulmonaryVeins);
1038 _values.push_back(Kidneys);
1039 _values.push_back(LeftKidney);
1040 _values.push_back(LeftRenalArtery);
1041 _values.push_back(LeftNephron);
1042 _values.push_back(LeftAfferentArteriole);
1043 _values.push_back(LeftGlomerularCapillaries);
1044 _values.push_back(LeftEfferentArteriole);
1045 _values.push_back(LeftPeritubularCapillaries);
1046 _values.push_back(LeftBowmansCapsules);
1047 _values.push_back(LeftTubules);
1048 _values.push_back(LeftRenalVein);
1049 _values.push_back(RightKidney);
1050 _values.push_back(RightRenalArtery);
1051 _values.push_back(RightNephron);
1052 _values.push_back(RightAfferentArteriole);
1053 _values.push_back(RightGlomerularCapillaries);
1054 _values.push_back(RightEfferentArteriole);
1055 _values.push_back(RightPeritubularCapillaries);
1056 _values.push_back(RightBowmansCapsules);
1057 _values.push_back(RightTubules);
1058 _values.push_back(RightRenalVein);
1059 _values.push_back(Bone);
1060 _values.push_back(Head);
1061 _values.push_back(Extracranial);
1062 _values.push_back(Intracranial);
1063 _values.push_back(Fat);
1064 _values.push_back(Gut);
1065 _values.push_back(Gut1);
1066 _values.push_back(Splanchnic);
1067 _values.push_back(SmallIntestine);
1068 _values.push_back(LargeIntestine);
1069 _values.push_back(Liver);
1070 _values.push_back(Spleen);
1071 _values.push_back(Skin);
1072 _values.push_back(Muscle);
1073 _values.push_back(LeftArm);
1074 _values.push_back(LeftArmArterioles);
1075 _values.push_back(LeftArmFat);
1076 _values.push_back(LeftArmMuscle);
1077 _values.push_back(LeftArmSkin);
1078 _values.push_back(LeftArmBone);
1079 _values.push_back(LeftArmMicrovasculature);
1080 _values.push_back(LeftArmVenules);
1081 _values.push_back(LeftLeg);
1082 _values.push_back(LeftLegArterioles);
1083 _values.push_back(LeftLegFat);
1084 _values.push_back(LeftLegMuscle);
1085 _values.push_back(LeftLegSkin);
1086 _values.push_back(LeftLegBone);
1087 _values.push_back(LeftLegMicrovasculature);
1088 _values.push_back(LeftLegVenules);
1089 _values.push_back(RightArm);
1090 _values.push_back(RightArmArterioles);
1091 _values.push_back(RightArmFat);
1092 _values.push_back(RightArmMuscle);
1093 _values.push_back(RightArmSkin);
1094 _values.push_back(RightArmBone);
1095 _values.push_back(RightArmMicrovasculature);
1096 _values.push_back(RightArmVenules);
1097 _values.push_back(RightLeg);
1098 _values.push_back(RightLegArterioles);
1099 _values.push_back(RightLegFat);
1100 _values.push_back(RightLegMuscle);
1101 _values.push_back(RightLegSkin);
1102 _values.push_back(RightLegBone);
1103 _values.push_back(RightLegMicrovasculature);
1104 _values.push_back(RightLegVenules);
1105 _values.push_back(Torso);
1106 _values.push_back(TorsoArterioles);
1107 _values.push_back(TorsoBone);
1108 _values.push_back(TorsoFat);
1109 _values.push_back(TorsoMicrovasculature);
1110 _values.push_back(TorsoMuscle);
1111 _values.push_back(TorsoSkin);
1112 _values.push_back(TorsoVenules);
1117 static bool HasValue(
const std::string& v)
1119 return std::find(_values.begin(), _values.end(), v) != _values.end();
1121 static void AddValue(
const std::string& v)
1126 _values.push_back(v);
1130 static std::vector<std::string> _values;
1133 class ExpandedVascularLink
1138 DEFINE_STATIC_STRING(VenousBufferToVenaCava);
1139 DEFINE_STATIC_STRING(VenaCavaToRightHeart);
1140 DEFINE_STATIC_STRING(RightHeartToLeftPulmonaryArteries);
1141 DEFINE_STATIC_STRING(LeftPulmonaryArteriesToCapillaries);
1142 DEFINE_STATIC_STRING(LeftPulmonaryArteriesToVeins);
1143 DEFINE_STATIC_STRING(LeftPulmonaryCapillariesToVeins);
1144 DEFINE_STATIC_STRING(LeftPulmonaryVeinsToLeftHeart);
1145 DEFINE_STATIC_STRING(RightHeartToRightPulmonaryArteries);
1146 DEFINE_STATIC_STRING(RightPulmonaryArteriesToCapillaries);
1147 DEFINE_STATIC_STRING(RightPulmonaryArteriesToVeins);
1148 DEFINE_STATIC_STRING(RightPulmonaryCapillariesToVeins);
1149 DEFINE_STATIC_STRING(RightPulmonaryVeinsToLeftHeart);
1150 DEFINE_STATIC_STRING(LeftHeartToAorta);
1151 DEFINE_STATIC_STRING(AortaToArterialBuffer);
1153 DEFINE_STATIC_STRING(AortaToIntracranial);
1154 DEFINE_STATIC_STRING(IntracranialToVenaCava);
1155 DEFINE_STATIC_STRING(AortaToExtracranial);
1156 DEFINE_STATIC_STRING(ExtracranialToVenaCava);
1158 DEFINE_STATIC_STRING(AortaToLeftArmArterioles);
1159 DEFINE_STATIC_STRING(LeftArmArteriolesToLeftArmBone);
1160 DEFINE_STATIC_STRING(LeftArmArteriolesToLeftArmFat);
1161 DEFINE_STATIC_STRING(LeftArmArteriolesToLeftArmMicrovasculature);
1162 DEFINE_STATIC_STRING(LeftArmArteriolesToLeftArmMuscle);
1163 DEFINE_STATIC_STRING(LeftArmArteriolesToLeftArmSkin);
1165 DEFINE_STATIC_STRING(LeftArmBoneToLeftArmVenules);
1166 DEFINE_STATIC_STRING(LeftArmFatToLeftArmVenules);
1167 DEFINE_STATIC_STRING(LeftArmMicrovasculatureToLeftArmVenules);
1168 DEFINE_STATIC_STRING(LeftArmMuscleToLeftArmVenules);
1169 DEFINE_STATIC_STRING(LeftArmSkinToLeftArmVenules);
1170 DEFINE_STATIC_STRING(LeftArmVenulesToVenaCava);
1173 DEFINE_STATIC_STRING(AortaToLeftKidney);
1174 DEFINE_STATIC_STRING(LeftKidneyToVenaCava);
1176 DEFINE_STATIC_STRING(AortaToLeftLegArterioles);
1177 DEFINE_STATIC_STRING(LeftLegArteriolesToLeftLegBone);
1178 DEFINE_STATIC_STRING(LeftLegArteriolesToLeftLegFat);
1179 DEFINE_STATIC_STRING(LeftLegArteriolesToLeftLegMicrovasculature);
1180 DEFINE_STATIC_STRING(LeftLegArteriolesToLeftLegMuscle);
1181 DEFINE_STATIC_STRING(LeftLegArteriolesToLeftLegSkin);
1183 DEFINE_STATIC_STRING(LeftLegBoneToLeftLegVenules);
1184 DEFINE_STATIC_STRING(LeftLegFatToLeftLegVenules);
1185 DEFINE_STATIC_STRING(LeftLegMicrovasculatureToLeftLegVenules);
1186 DEFINE_STATIC_STRING(LeftLegMuscleToLeftLegVenules);
1187 DEFINE_STATIC_STRING(LeftLegSkinToLeftLegVenules);
1188 DEFINE_STATIC_STRING(LeftLegVenulesToVenaCava);
1190 DEFINE_STATIC_STRING(AortaToGut);
1192 DEFINE_STATIC_STRING(AortaToLargeIntestine);
1193 DEFINE_STATIC_STRING(LargeIntestineToLiver);
1195 DEFINE_STATIC_STRING(AortaToSmallIntestine);
1196 DEFINE_STATIC_STRING(SmallIntestineToLiver);
1198 DEFINE_STATIC_STRING(AortaToSplanchnic);
1199 DEFINE_STATIC_STRING(SplanchnicToLiver);
1201 DEFINE_STATIC_STRING(AortaToSpleen);
1202 DEFINE_STATIC_STRING(SpleenToLiver);
1204 DEFINE_STATIC_STRING(AortaToLiver);
1205 DEFINE_STATIC_STRING(LiverToVenaCava);
1207 DEFINE_STATIC_STRING(AortaToMyocardium);
1208 DEFINE_STATIC_STRING(MyocardiumToVenaCava);
1210 DEFINE_STATIC_STRING(AortaToRightArmArterioles);
1211 DEFINE_STATIC_STRING(RightArmArteriolesToRightArmBone);
1212 DEFINE_STATIC_STRING(RightArmArteriolesToRightArmFat);
1213 DEFINE_STATIC_STRING(RightArmArteriolesToRightArmMicrovasculature);
1214 DEFINE_STATIC_STRING(RightArmArteriolesToRightArmMuscle);
1215 DEFINE_STATIC_STRING(RightArmArteriolesToRightArmSkin);
1217 DEFINE_STATIC_STRING(RightArmBoneToRightArmVenules);
1218 DEFINE_STATIC_STRING(RightArmFatToRightArmVenules);
1219 DEFINE_STATIC_STRING(RightArmMicrovasculatureToRightArmVenules);
1220 DEFINE_STATIC_STRING(RightArmMuscleToRightArmVenules);
1221 DEFINE_STATIC_STRING(RightArmSkinToRightArmVenules);
1222 DEFINE_STATIC_STRING(RightArmVenulesToVenaCava);
1225 DEFINE_STATIC_STRING(AortaToRightKidney);
1226 DEFINE_STATIC_STRING(RightKidneyToVenaCava);
1228 DEFINE_STATIC_STRING(AortaToRightLegArterioles);
1229 DEFINE_STATIC_STRING(RightLegArteriolesToRightLegBone);
1230 DEFINE_STATIC_STRING(RightLegArteriolesToRightLegFat);
1231 DEFINE_STATIC_STRING(RightLegArteriolesToRightLegMicrovasculature);
1232 DEFINE_STATIC_STRING(RightLegArteriolesToRightLegMuscle);
1233 DEFINE_STATIC_STRING(RightLegArteriolesToRightLegSkin);
1235 DEFINE_STATIC_STRING(RightLegBoneToRightLegVenules);
1236 DEFINE_STATIC_STRING(RightLegFatToRightLegVenules);
1237 DEFINE_STATIC_STRING(RightLegMicrovasculatureToRightLegVenules);
1238 DEFINE_STATIC_STRING(RightLegMuscleToRightLegVenules);
1239 DEFINE_STATIC_STRING(RightLegSkinToRightLegVenules);
1240 DEFINE_STATIC_STRING(RightLegVenulesToVenaCava);
1243 DEFINE_STATIC_STRING(AortaToTorsoArterioles);
1244 DEFINE_STATIC_STRING(TorsoArteriolesToTorsoBone);
1245 DEFINE_STATIC_STRING(TorsoArteriolesToTorsoFat);
1246 DEFINE_STATIC_STRING(TorsoArteriolesToTorsoMicrovasculature);
1247 DEFINE_STATIC_STRING(TorsoArteriolesToTorsoMuscle);
1248 DEFINE_STATIC_STRING(TorsoArteriolesToTorsoSkin);
1250 DEFINE_STATIC_STRING(TorsoSkinToTorsoVenules);
1251 DEFINE_STATIC_STRING(TorsoMuscleToTorsoVenules);
1252 DEFINE_STATIC_STRING(TorsoMicrovasculatureToTorsoVenules);
1253 DEFINE_STATIC_STRING(TorsoFatToTorsoVenules);
1254 DEFINE_STATIC_STRING(TorsoBoneToTorsoVenules);
1255 DEFINE_STATIC_STRING(TorsoVenulesToVenaCava);
1257 DEFINE_STATIC_STRING(VenaCavaIV);
1260 DEFINE_STATIC_STRING(TorsoBoneVascularToTissue);
1261 DEFINE_STATIC_STRING(LeftArmBoneVascularToTissue);
1262 DEFINE_STATIC_STRING(LeftLegBoneVascularToTissue);
1263 DEFINE_STATIC_STRING(RightArmBoneVascularToTissue);
1264 DEFINE_STATIC_STRING(RightLegBoneVascularToTissue);
1265 DEFINE_STATIC_STRING(BrainVascularToTissue);
1266 DEFINE_STATIC_STRING(TorsoFatVascularToTissue);
1267 DEFINE_STATIC_STRING(LeftArmFatVascularToTissue);
1268 DEFINE_STATIC_STRING(LeftLegFatVascularToTissue);
1269 DEFINE_STATIC_STRING(RightArmFatVascularToTissue);
1270 DEFINE_STATIC_STRING(RightLegFatVascularToTissue);
1271 DEFINE_STATIC_STRING(SmallIntestineVascularToTissue);
1272 DEFINE_STATIC_STRING(LargeIntestineVascularToTissue);
1273 DEFINE_STATIC_STRING(SplanchnicVascularToTissue);
1274 DEFINE_STATIC_STRING(LeftKidneyVascularToTissue);
1275 DEFINE_STATIC_STRING(LeftLungVascularToTissue);
1276 DEFINE_STATIC_STRING(LiverVascularToTissue);
1277 DEFINE_STATIC_STRING(TorsoMuscleVascularToTissue);
1278 DEFINE_STATIC_STRING(LeftArmMuscleVascularToTissue);
1279 DEFINE_STATIC_STRING(LeftLegMuscleVascularToTissue);
1280 DEFINE_STATIC_STRING(RightArmMuscleVascularToTissue);
1281 DEFINE_STATIC_STRING(RightLegMuscleVascularToTissue);
1282 DEFINE_STATIC_STRING(MyocardiumVascularToTissue);
1283 DEFINE_STATIC_STRING(RightKidneyVascularToTissue);
1284 DEFINE_STATIC_STRING(RightLungVascularToTissue);
1285 DEFINE_STATIC_STRING(TorsoSkinVascularToTissue);
1286 DEFINE_STATIC_STRING(LeftArmSkinVascularToTissue);
1287 DEFINE_STATIC_STRING(LeftLegSkinVascularToTissue);
1288 DEFINE_STATIC_STRING(RightArmSkinVascularToTissue);
1289 DEFINE_STATIC_STRING(RightLegSkinVascularToTissue);
1290 DEFINE_STATIC_STRING(SpleenVascularToTissue);
1294 DEFINE_STATIC_STRING(LeftRenalArteryToAfferentArteriole);
1295 DEFINE_STATIC_STRING(LeftAfferentArterioleToGlomerularCapillaries);
1296 DEFINE_STATIC_STRING(LeftGlomerularCapillariesToEfferentArteriole);
1297 DEFINE_STATIC_STRING(LeftGlomerularCapillariesToBowmansCapsules);
1298 DEFINE_STATIC_STRING(LeftBowmansCapsulesToTubules);
1299 DEFINE_STATIC_STRING(LeftTubulesToPeritubularCapillaries);
1300 DEFINE_STATIC_STRING(LeftEfferentArterioleToPeritubularCapillaries);
1301 DEFINE_STATIC_STRING(LeftPeritubularCapillariesToRenalVein);
1305 DEFINE_STATIC_STRING(RightRenalArteryToAfferentArteriole);
1306 DEFINE_STATIC_STRING(RightAfferentArterioleToGlomerularCapillaries);
1307 DEFINE_STATIC_STRING(RightGlomerularCapillariesToEfferentArteriole);
1308 DEFINE_STATIC_STRING(RightGlomerularCapillariesToBowmansCapsules);
1309 DEFINE_STATIC_STRING(RightBowmansCapsulesToTubules);
1310 DEFINE_STATIC_STRING(RightTubulesToPeritubularCapillaries);
1311 DEFINE_STATIC_STRING(RightEfferentArterioleToPeritubularCapillaries);
1312 DEFINE_STATIC_STRING(RightPeritubularCapillariesToRenalVein);
1316 static const std::vector<std::string>& GetValues()
1319 if (_values.empty())
1321 _values.push_back(VenaCavaToRightHeart);
1322 _values.push_back(RightHeartToLeftPulmonaryArteries);
1323 _values.push_back(LeftPulmonaryArteriesToCapillaries);
1324 _values.push_back(LeftPulmonaryArteriesToVeins);
1325 _values.push_back(LeftPulmonaryCapillariesToVeins);
1326 _values.push_back(LeftPulmonaryVeinsToLeftHeart);
1327 _values.push_back(RightHeartToRightPulmonaryArteries);
1328 _values.push_back(RightPulmonaryArteriesToCapillaries);
1329 _values.push_back(RightPulmonaryArteriesToVeins);
1330 _values.push_back(RightPulmonaryCapillariesToVeins);
1331 _values.push_back(RightPulmonaryVeinsToLeftHeart);
1332 _values.push_back(LeftHeartToAorta);
1333 _values.push_back(AortaToIntracranial);
1334 _values.push_back(IntracranialToVenaCava);
1335 _values.push_back(AortaToExtracranial);
1336 _values.push_back(ExtracranialToVenaCava);
1337 _values.push_back(AortaToLargeIntestine);
1338 _values.push_back(LargeIntestineToLiver);
1339 _values.push_back(LeftArmArteriolesToLeftArmBone);
1340 _values.push_back(LeftArmArteriolesToLeftArmFat);
1341 _values.push_back(LeftArmArteriolesToLeftArmMicrovasculature);
1342 _values.push_back(LeftArmArteriolesToLeftArmMuscle);
1343 _values.push_back(LeftArmArteriolesToLeftArmSkin);
1345 _values.push_back(AortaToLeftKidney);
1346 _values.push_back(LeftKidneyToVenaCava);
1347 _values.push_back(LeftLegArteriolesToLeftLegBone);
1348 _values.push_back(LeftLegArteriolesToLeftLegFat);
1349 _values.push_back(LeftLegArteriolesToLeftLegMicrovasculature);
1350 _values.push_back(LeftLegArteriolesToLeftLegMuscle);
1351 _values.push_back(LeftLegArteriolesToLeftLegSkin);
1352 _values.push_back(AortaToLiver);
1353 _values.push_back(LiverToVenaCava);
1354 _values.push_back(AortaToMyocardium);
1355 _values.push_back(MyocardiumToVenaCava);
1356 _values.push_back(RightArmArteriolesToRightArmBone);
1357 _values.push_back(RightArmArteriolesToRightArmFat);
1358 _values.push_back(RightArmArteriolesToRightArmMicrovasculature);
1359 _values.push_back(RightArmArteriolesToRightArmMuscle);
1360 _values.push_back(RightArmArteriolesToRightArmSkin);
1362 _values.push_back(AortaToRightKidney);
1363 _values.push_back(RightKidneyToVenaCava);
1364 _values.push_back(RightLegArteriolesToRightLegBone);
1365 _values.push_back(RightLegArteriolesToRightLegFat);
1366 _values.push_back(RightLegArteriolesToRightLegMicrovasculature);
1367 _values.push_back(RightLegArteriolesToRightLegMuscle);
1368 _values.push_back(RightLegArteriolesToRightLegSkin);
1372 _values.push_back(AortaToSmallIntestine);
1373 _values.push_back(SmallIntestineToLiver);
1374 _values.push_back(AortaToSplanchnic);
1375 _values.push_back(SplanchnicToLiver);
1376 _values.push_back(AortaToSpleen);
1377 _values.push_back(SpleenToLiver);
1378 _values.push_back(AortaToTorsoArterioles);
1379 _values.push_back(TorsoArteriolesToTorsoBone);
1380 _values.push_back(TorsoArteriolesToTorsoFat);
1381 _values.push_back(TorsoArteriolesToTorsoMicrovasculature);
1382 _values.push_back(TorsoArteriolesToTorsoMuscle);
1383 _values.push_back(TorsoArteriolesToTorsoSkin);
1385 _values.push_back(RightArmBoneToRightArmVenules);
1386 _values.push_back(RightArmFatToRightArmVenules);
1387 _values.push_back(RightArmMicrovasculatureToRightArmVenules);
1388 _values.push_back(RightArmMuscleToRightArmVenules);
1389 _values.push_back(RightArmSkinToRightArmVenules);
1390 _values.push_back(RightLegBoneToRightLegVenules);
1391 _values.push_back(RightLegFatToRightLegVenules);
1392 _values.push_back(RightLegMicrovasculatureToRightLegVenules);
1393 _values.push_back(RightLegMuscleToRightLegVenules);
1394 _values.push_back(RightLegSkinToRightLegVenules);
1395 _values.push_back(LeftArmBoneToLeftArmVenules);
1396 _values.push_back(LeftArmFatToLeftArmVenules);
1397 _values.push_back(LeftArmMicrovasculatureToLeftArmVenules);
1398 _values.push_back(LeftArmMuscleToLeftArmVenules);
1399 _values.push_back(LeftArmSkinToLeftArmVenules);
1400 _values.push_back(LeftLegBoneToLeftLegVenules);
1401 _values.push_back(LeftLegFatToLeftLegVenules);
1402 _values.push_back(LeftLegMicrovasculatureToLeftLegVenules);
1403 _values.push_back(LeftLegMuscleToLeftLegVenules);
1404 _values.push_back(LeftLegSkinToLeftLegVenules);
1405 _values.push_back(TorsoSkinToTorsoVenules);
1406 _values.push_back(TorsoMuscleToTorsoVenules);
1407 _values.push_back(TorsoMicrovasculatureToTorsoVenules);
1408 _values.push_back(TorsoFatToTorsoVenules);
1409 _values.push_back(TorsoBoneToTorsoVenules);
1410 _values.push_back(TorsoVenulesToVenaCava);
1413 _values.push_back(TorsoBoneVascularToTissue);
1414 _values.push_back(LeftArmBoneVascularToTissue);
1415 _values.push_back(LeftLegBoneVascularToTissue);
1416 _values.push_back(RightArmBoneVascularToTissue);
1417 _values.push_back(RightLegBoneVascularToTissue);
1418 _values.push_back(BrainVascularToTissue);
1419 _values.push_back(TorsoFatVascularToTissue);
1420 _values.push_back(LeftArmFatVascularToTissue);
1421 _values.push_back(LeftLegFatVascularToTissue);
1422 _values.push_back(RightArmFatVascularToTissue);
1423 _values.push_back(RightLegFatVascularToTissue);
1424 _values.push_back(SmallIntestineVascularToTissue);
1425 _values.push_back(LargeIntestineVascularToTissue);
1426 _values.push_back(SplanchnicVascularToTissue);
1427 _values.push_back(LeftKidneyVascularToTissue);
1428 _values.push_back(LeftLungVascularToTissue);
1429 _values.push_back(LiverVascularToTissue);
1430 _values.push_back(TorsoMuscleVascularToTissue);
1431 _values.push_back(LeftArmMuscleVascularToTissue);
1432 _values.push_back(LeftLegMuscleVascularToTissue);
1433 _values.push_back(RightArmMuscleVascularToTissue);
1434 _values.push_back(RightLegMuscleVascularToTissue);
1435 _values.push_back(MyocardiumVascularToTissue);
1436 _values.push_back(RightKidneyVascularToTissue);
1437 _values.push_back(RightLungVascularToTissue);
1438 _values.push_back(TorsoSkinVascularToTissue);
1439 _values.push_back(LeftArmSkinVascularToTissue);
1440 _values.push_back(LeftLegSkinVascularToTissue);
1441 _values.push_back(RightArmSkinVascularToTissue);
1442 _values.push_back(RightLegSkinVascularToTissue);
1443 _values.push_back(SpleenVascularToTissue);
1445 _values.push_back(LeftRenalArteryToAfferentArteriole);
1446 _values.push_back(LeftAfferentArterioleToGlomerularCapillaries);
1447 _values.push_back(LeftGlomerularCapillariesToEfferentArteriole);
1448 _values.push_back(LeftGlomerularCapillariesToBowmansCapsules);
1449 _values.push_back(LeftBowmansCapsulesToTubules);
1450 _values.push_back(LeftTubulesToPeritubularCapillaries);
1451 _values.push_back(LeftEfferentArterioleToPeritubularCapillaries);
1452 _values.push_back(LeftPeritubularCapillariesToRenalVein);
1453 _values.push_back(RightRenalArteryToAfferentArteriole);
1454 _values.push_back(RightAfferentArterioleToGlomerularCapillaries);
1455 _values.push_back(RightGlomerularCapillariesToEfferentArteriole);
1456 _values.push_back(RightGlomerularCapillariesToBowmansCapsules);
1457 _values.push_back(RightBowmansCapsulesToTubules);
1458 _values.push_back(RightTubulesToPeritubularCapillaries);
1459 _values.push_back(RightEfferentArterioleToPeritubularCapillaries);
1460 _values.push_back(RightPeritubularCapillariesToRenalVein);
1464 static bool HasValue(
const std::string& v)
1466 return std::find(_values.begin(), _values.end(), v) != _values.end();
1468 static void AddValue(
const std::string& v)
1473 _values.push_back(v);
1477 static std::vector<std::string> _values;
1481 class UrineCompartment
1484 DEFINE_STATIC_STRING(Ureters);
1485 DEFINE_STATIC_STRING(LeftUreter);
1486 DEFINE_STATIC_STRING(RightUreter);
1487 DEFINE_STATIC_STRING(Bladder);
1489 static const std::vector<std::string>& GetValues()
1492 if (_values.empty())
1494 _values.push_back(Ureters);
1495 _values.push_back(LeftUreter);
1496 _values.push_back(RightUreter);
1497 _values.push_back(Bladder);
1501 static bool HasValue(
const std::string& v)
1503 return std::find(_values.begin(), _values.end(), v) != _values.end();
1505 static void AddValue(
const std::string& v)
1510 _values.push_back(v);
1514 static std::vector<std::string> _values;
1520 DEFINE_STATIC_STRING(LeftTubulesToUreter);
1521 DEFINE_STATIC_STRING(LeftUreterToBladder);
1523 DEFINE_STATIC_STRING(RightTubulesToUreter);
1524 DEFINE_STATIC_STRING(RightUreterToBladder);
1526 DEFINE_STATIC_STRING(BladderToGround);
1527 DEFINE_STATIC_STRING(BladderToGroundSource);
1529 static const std::vector<std::string>& GetValues()
1532 if (_values.empty())
1534 _values.push_back(LeftTubulesToUreter);
1535 _values.push_back(LeftUreterToBladder);
1536 _values.push_back(RightTubulesToUreter);
1537 _values.push_back(RightUreterToBladder);
1538 _values.push_back(BladderToGround);
1539 _values.push_back(BladderToGroundSource);
1543 static bool HasValue(
const std::string& v)
1545 return std::find(_values.begin(), _values.end(), v) != _values.end();
1547 static void AddValue(
const std::string& v)
1552 _values.push_back(v);
1556 static std::vector<std::string> _values;
1559 class LymphCompartment
1562 DEFINE_STATIC_STRING(Lymph);
1564 static const std::vector<std::string>& GetValues()
1567 if (_values.empty())
1569 _values.push_back(Lymph);
1573 static bool HasValue(
const std::string& v)
1575 return std::find(_values.begin(), _values.end(), v) != _values.end();
1577 static void AddValue(
const std::string& v)
1582 _values.push_back(v);
1586 static std::vector<std::string> _values;
1592 DEFINE_STATIC_STRING(BoneTissueToLymph);
1593 DEFINE_STATIC_STRING(BrainTissueToLymph);
1594 DEFINE_STATIC_STRING(FatTissueToLymph);
1595 DEFINE_STATIC_STRING(GutTissueToLymph);
1596 DEFINE_STATIC_STRING(LeftKidneyTissueToLymph);
1597 DEFINE_STATIC_STRING(LeftLungTissueToLymph);
1598 DEFINE_STATIC_STRING(LiverTissueToLymph);
1599 DEFINE_STATIC_STRING(MuscleTissueToLymph);
1600 DEFINE_STATIC_STRING(MyocardiumTissueToLymph);
1601 DEFINE_STATIC_STRING(RightKidneyTissueToLymph);
1602 DEFINE_STATIC_STRING(RightLungTissueToLymph);
1603 DEFINE_STATIC_STRING(SkinTissueToLymph);
1604 DEFINE_STATIC_STRING(SpleenTissueToLymph);
1606 DEFINE_STATIC_STRING(LymphToVenaCava);
1608 static const std::vector<std::string>& GetValues()
1611 if (_values.empty())
1613 _values.push_back(BoneTissueToLymph);
1614 _values.push_back(BrainTissueToLymph);
1615 _values.push_back(FatTissueToLymph);
1616 _values.push_back(GutTissueToLymph);
1617 _values.push_back(LeftKidneyTissueToLymph);
1618 _values.push_back(LeftLungTissueToLymph);
1619 _values.push_back(LiverTissueToLymph);
1620 _values.push_back(MuscleTissueToLymph);
1621 _values.push_back(MyocardiumTissueToLymph);
1622 _values.push_back(RightKidneyTissueToLymph);
1623 _values.push_back(RightLungTissueToLymph);
1624 _values.push_back(SkinTissueToLymph);
1625 _values.push_back(SpleenTissueToLymph);
1626 _values.push_back(LymphToVenaCava);
1630 static bool HasValue(
const std::string& v)
1632 return std::find(_values.begin(), _values.end(), v) != _values.end();
1634 static void AddValue(
const std::string& v)
1639 _values.push_back(v);
1643 static std::vector<std::string> _values;
1646 class TemperatureCompartment
1649 DEFINE_STATIC_STRING(Active);
1650 DEFINE_STATIC_STRING(Ambient);
1651 DEFINE_STATIC_STRING(Clothing);
1652 DEFINE_STATIC_STRING(Enclosure);
1653 DEFINE_STATIC_STRING(ExternalCore);
1654 DEFINE_STATIC_STRING(ExternalSkin);
1655 DEFINE_STATIC_STRING(ExternalGround);
1656 DEFINE_STATIC_STRING(InternalCore);
1657 DEFINE_STATIC_STRING(InternalSkin);
1658 DEFINE_STATIC_STRING(InternalGround);
1660 static const std::vector<std::string>& GetValues()
1663 if (_values.empty())
1665 _values.push_back(Active);
1666 _values.push_back(Ambient);
1667 _values.push_back(Clothing);
1668 _values.push_back(Enclosure);
1669 _values.push_back(ExternalCore);
1670 _values.push_back(ExternalSkin);
1671 _values.push_back(ExternalGround);
1672 _values.push_back(InternalCore);
1673 _values.push_back(InternalSkin);
1674 _values.push_back(InternalGround);
1678 static bool HasValue(
const std::string& v)
1680 return std::find(_values.begin(), _values.end(), v) != _values.end();
1682 static void AddValue(
const std::string& v)
1687 _values.push_back(v);
1691 static std::vector<std::string> _values;
1694 class TemperatureLink
1698 DEFINE_STATIC_STRING(ActiveToClothing);
1699 DEFINE_STATIC_STRING(ClothingToEnclosure);
1700 DEFINE_STATIC_STRING(ClothingToEnvironment);
1701 DEFINE_STATIC_STRING(ExternalCoreToGround);
1702 DEFINE_STATIC_STRING(GroundToActive);
1703 DEFINE_STATIC_STRING(GroundToClothing);
1704 DEFINE_STATIC_STRING(GroundToEnclosure);
1705 DEFINE_STATIC_STRING(GroundToEnvironment);
1706 DEFINE_STATIC_STRING(ExternalSkinToGround);
1707 DEFINE_STATIC_STRING(ExternalSkinToClothing);
1708 DEFINE_STATIC_STRING(GroundToInternalCore);
1709 DEFINE_STATIC_STRING(InternalCoreToInternalSkin);
1710 DEFINE_STATIC_STRING(InternalCoreToGround);
1711 DEFINE_STATIC_STRING(InternalSkinToGround);
1712 DEFINE_STATIC_STRING(InternalCoreToExternalCore);
1713 DEFINE_STATIC_STRING(InternalSkinToExternalSkin);
1715 static const std::vector<std::string>& GetValues()
1718 if (_values.empty())
1720 _values.push_back(ActiveToClothing);
1721 _values.push_back(ClothingToEnclosure);
1722 _values.push_back(ClothingToEnvironment);
1723 _values.push_back(ExternalCoreToGround);
1724 _values.push_back(GroundToActive);
1725 _values.push_back(GroundToClothing);
1726 _values.push_back(GroundToEnclosure);
1727 _values.push_back(GroundToEnvironment);
1728 _values.push_back(ExternalSkinToGround);
1729 _values.push_back(ExternalSkinToClothing);
1730 _values.push_back(GroundToInternalCore);
1731 _values.push_back(InternalCoreToInternalSkin);
1732 _values.push_back(InternalCoreToGround);
1733 _values.push_back(InternalSkinToGround);
1734 _values.push_back(InternalCoreToExternalCore);
1735 _values.push_back(InternalSkinToExternalSkin);
1739 static bool HasValue(
const std::string& v)
1741 return std::find(_values.begin(), _values.end(), v) != _values.end();
1743 static void AddValue(
const std::string& v)
1748 _values.push_back(v);
1752 static std::vector<std::string> _values;
1755 class EnvironmentCompartment
1758 DEFINE_STATIC_STRING(Ambient);
1760 static const std::vector<std::string>& GetValues()
1763 if (_values.empty())
1765 _values.push_back(Ambient);
1769 static bool HasValue(
const std::string& v)
1771 return std::find(_values.begin(), _values.end(), v) != _values.end();
1773 static void AddValue(
const std::string& v)
1778 _values.push_back(v);
1782 static std::vector<std::string> _values;
1785 class AnesthesiaMachineCompartment
1788 DEFINE_STATIC_STRING_EX(Connection, AnesthesiaMachineConnection);
1789 DEFINE_STATIC_STRING_EX(ExpiratoryLimb, AnesthesiaMachineExpiratoryLimb);
1790 DEFINE_STATIC_STRING_EX(GasInlet, AnesthesiaMachineGasInlet);
1791 DEFINE_STATIC_STRING_EX(GasSource, AnesthesiaMachineGasSource);
1792 DEFINE_STATIC_STRING_EX(InspiratoryLimb, AnesthesiaMachineInspiratoryLimb);
1793 DEFINE_STATIC_STRING_EX(ReliefValve, AnesthesiaMachineReliefValve);
1794 DEFINE_STATIC_STRING_EX(Scrubber, AnesthesiaMachineScrubber);
1795 DEFINE_STATIC_STRING_EX(Selector, AnesthesiaMachineSelector);
1796 DEFINE_STATIC_STRING_EX(Ventilator, AnesthesiaMachineVentilator);
1797 DEFINE_STATIC_STRING_EX(YPiece, AnesthesiaMachineYPiece);
1799 static const std::vector<std::string>& GetValues()
1802 if (_values.empty())
1804 _values.push_back(Connection);
1805 _values.push_back(ExpiratoryLimb);
1806 _values.push_back(GasInlet);
1807 _values.push_back(GasSource);
1808 _values.push_back(InspiratoryLimb);
1809 _values.push_back(ReliefValve);
1810 _values.push_back(Scrubber);
1811 _values.push_back(Selector);
1812 _values.push_back(Ventilator);
1813 _values.push_back(YPiece);
1817 static bool HasValue(
const std::string& v)
1819 return std::find(_values.begin(), _values.end(), v) != _values.end();
1821 static void AddValue(
const std::string& v)
1826 _values.push_back(v);
1830 static std::vector<std::string> _values;
1833 class AnesthesiaMachineLink
1836 DEFINE_STATIC_STRING_EX(EnvironmentToReliefValve, EnvironmentToAnesthesiaMachineReliefValve);
1837 DEFINE_STATIC_STRING_EX(VentilatorToSelector, AnesthesiaMachineVentilatorToSelector);
1838 DEFINE_STATIC_STRING_EX(SelectorToReliefValve, AnesthesiaMachineSelectorToReliefValve);
1839 DEFINE_STATIC_STRING_EX(SelectorToScrubber, AnesthesiaMachineSelectorToScrubber);
1840 DEFINE_STATIC_STRING_EX(ScrubberToGasInlet, AnesthesiaMachineScrubberToGasInlet);
1841 DEFINE_STATIC_STRING_EX(GasSourceToGasInlet, AnesthesiaMachineGasSourceToGasInlet);
1842 DEFINE_STATIC_STRING_EX(GasInletToInspiratoryLimb, AnesthesiaMachineGasInletToInspiratoryLimb);
1843 DEFINE_STATIC_STRING_EX(InspiratoryLimbToYPiece, AnesthesiaMachineInspiratoryLimbToYPiece);
1844 DEFINE_STATIC_STRING_EX(YPieceToExpiratoryLimb, AnesthesiaMachineYPieceToExpiratoryLimb);
1845 DEFINE_STATIC_STRING_EX(ExpiratoryLimbToSelector, AnesthesiaMachineExpiratoryLimbToSelector);
1846 DEFINE_STATIC_STRING_EX(YPieceToConnection, AnesthesiaMachineYPieceToConnection);
1847 DEFINE_STATIC_STRING_EX(ConnectionLeak, AnesthesiaMachineConnectionLeak);
1848 DEFINE_STATIC_STRING_EX(ConnectionToAirway, AnesthesiaMachineConnectionToAirway);
1850 static const std::vector<std::string>& GetValues()
1853 if (_values.empty())
1855 _values.push_back(EnvironmentToReliefValve);
1856 _values.push_back(VentilatorToSelector);
1857 _values.push_back(SelectorToReliefValve);
1858 _values.push_back(SelectorToScrubber);
1859 _values.push_back(ScrubberToGasInlet);
1860 _values.push_back(GasSourceToGasInlet);
1861 _values.push_back(GasInletToInspiratoryLimb);
1862 _values.push_back(InspiratoryLimbToYPiece);
1863 _values.push_back(YPieceToExpiratoryLimb);
1864 _values.push_back(ExpiratoryLimbToSelector);
1865 _values.push_back(YPieceToConnection);
1866 _values.push_back(ConnectionLeak);
1867 _values.push_back(ConnectionToAirway);
1871 static bool HasValue(
const std::string& v)
1873 return std::find(_values.begin(), _values.end(), v) != _values.end();
1875 static void AddValue(
const std::string& v)
1880 _values.push_back(v);
1884 static std::vector<std::string> _values;
1887 class BagValveMaskCompartment
1890 DEFINE_STATIC_STRING_EX(Reservoir, BagValveMaskReservoir);
1891 DEFINE_STATIC_STRING_EX(Bag, BagValveMaskBag);
1892 DEFINE_STATIC_STRING_EX(Valve, BagValveMaskValve);
1893 DEFINE_STATIC_STRING_EX(Filter, BagValveMaskFilter);
1894 DEFINE_STATIC_STRING_EX(Connection, BagValveMaskConnection);
1896 static const std::vector<std::string>& GetValues()
1899 if (_values.empty())
1901 _values.push_back(Reservoir);
1902 _values.push_back(Bag);
1903 _values.push_back(Valve);
1904 _values.push_back(Filter);
1905 _values.push_back(Connection);
1910 static std::vector<std::string> _values;
1913 class BagValveMaskLink
1916 DEFINE_STATIC_STRING_EX(ReservoirToBag, BagValveMaskReservoirToBag);
1917 DEFINE_STATIC_STRING_EX(BagToValve, BagValveMaskBagToValve);
1918 DEFINE_STATIC_STRING_EX(ValveToFilter, BagValveMaskValveToFilter);
1919 DEFINE_STATIC_STRING_EX(FilterToConnection, BagValveMaskFilterToConnection);
1920 DEFINE_STATIC_STRING_EX(ConnectionToEnvironment, BagValveMaskConnectionToEnvironment);
1921 DEFINE_STATIC_STRING_EX(ConnectionToAirway, BagValveMaskConnectionToAirway);
1923 static const std::vector<std::string>& GetValues()
1926 if (_values.empty())
1928 _values.push_back(ReservoirToBag);
1929 _values.push_back(BagToValve);
1930 _values.push_back(ValveToFilter);
1931 _values.push_back(FilterToConnection);
1932 _values.push_back(ConnectionToEnvironment);
1933 _values.push_back(ConnectionToAirway);
1938 static std::vector<std::string> _values;
1941 class ECMOCompartment
1944 DEFINE_STATIC_STRING_EX(Oxygenator, ECMOOxygenator);
1945 DEFINE_STATIC_STRING_EX(BloodSamplingPort, ECMOBloodSamplingPort);
1947 static const std::vector<std::string>& GetValues()
1950 if (_values.empty())
1952 _values.push_back(Oxygenator);
1953 _values.push_back(BloodSamplingPort);
1957 static bool HasValue(
const std::string& v)
1959 return std::find(_values.begin(), _values.end(), v) != _values.end();
1961 static void AddValue(
const std::string& v)
1966 _values.push_back(v);
1970 static std::vector<std::string> _values;
1976 DEFINE_STATIC_STRING(OxygenatorToVasculature);
1977 DEFINE_STATIC_STRING(VasculatureToBloodSamplingPort);
1978 DEFINE_STATIC_STRING(BloodSamplingPortToOxygenator);
1980 static const std::vector<std::string>& GetValues()
1983 if (_values.empty())
1985 _values.push_back(OxygenatorToVasculature);
1986 _values.push_back(VasculatureToBloodSamplingPort);
1987 _values.push_back(BloodSamplingPortToOxygenator);
1991 static bool HasValue(
const std::string& v)
1993 return std::find(_values.begin(), _values.end(), v) != _values.end();
1995 static void AddValue(
const std::string& v)
2000 _values.push_back(v);
2004 static std::vector<std::string> _values;
2007 class InhalerCompartment
2010 DEFINE_STATIC_STRING_EX(Mouthpiece, InhalerMouthpiece);
2012 static const std::vector<std::string>& GetValues()
2015 if (_values.empty())
2017 _values.push_back(Mouthpiece);
2021 static bool HasValue(
const std::string& v)
2023 return std::find(_values.begin(), _values.end(), v) != _values.end();
2025 static void AddValue(
const std::string& v)
2030 _values.push_back(v);
2034 static std::vector<std::string> _values;
2040 DEFINE_STATIC_STRING_EX(EnvironmentToMouthpiece, EnvironmentToInhalerMouthpiece);
2041 DEFINE_STATIC_STRING_EX(MouthpieceToAirway, InhalerMouthpieceToAirway);
2043 static const std::vector<std::string>& GetValues()
2046 if (_values.empty())
2048 _values.push_back(EnvironmentToMouthpiece);
2049 _values.push_back(MouthpieceToAirway);
2053 static bool HasValue(
const std::string& v)
2055 return std::find(_values.begin(), _values.end(), v) != _values.end();
2057 static void AddValue(
const std::string& v)
2062 _values.push_back(v);
2066 static std::vector<std::string> _values;
2069 class MechanicalVentilationCompartment
2072 DEFINE_STATIC_STRING_EX(Connection, MechanicalVentilationConnection);
2074 static const std::vector<std::string>& GetValues()
2077 if (_values.empty())
2079 _values.push_back(Connection);
2083 static bool HasValue(
const std::string& v)
2085 return std::find(_values.begin(), _values.end(), v) != _values.end();
2087 static void AddValue(
const std::string& v)
2092 _values.push_back(v);
2096 static std::vector<std::string> _values;
2099 class MechanicalVentilationLink
2102 DEFINE_STATIC_STRING_EX(ConnectionToAirway, MechanicalVentilationConnectionToAirway);
2104 static const std::vector<std::string>& GetValues()
2107 if (_values.empty())
2109 _values.push_back(ConnectionToAirway);
2113 static bool HasValue(
const std::string& v)
2115 return std::find(_values.begin(), _values.end(), v) != _values.end();
2117 static void AddValue(
const std::string& v)
2122 _values.push_back(v);
2126 static std::vector<std::string> _values;
2129 class MechanicalVentilatorCompartment
2132 DEFINE_STATIC_STRING(MechanicalVentilator);
2133 DEFINE_STATIC_STRING_EX(ExpiratoryValve, MechanicalVentilatorExpiratoryValve);
2134 DEFINE_STATIC_STRING_EX(InspiratoryValve, MechanicalVentilatorInspiratoryValve);
2135 DEFINE_STATIC_STRING_EX(ExpiratoryLimb, MechanicalVentilatorExpiratoryLimb);
2136 DEFINE_STATIC_STRING_EX(InspiratoryLimb, MechanicalVentilatorInspiratoryLimb);
2137 DEFINE_STATIC_STRING_EX(YPiece, MechanicalVentilatorYPiece);
2138 DEFINE_STATIC_STRING_EX(ReliefValve, MechanicalVentilatorReliefValve);
2139 DEFINE_STATIC_STRING_EX(Connection, MechanicalVentilatorConnection);
2141 static const std::vector<std::string>& GetValues()
2144 if (_values.empty())
2146 _values.push_back(MechanicalVentilator);
2147 _values.push_back(ExpiratoryValve);
2148 _values.push_back(InspiratoryValve);
2149 _values.push_back(ExpiratoryLimb);
2150 _values.push_back(InspiratoryLimb);
2151 _values.push_back(YPiece);
2152 _values.push_back(ReliefValve);
2153 _values.push_back(Connection);
2157 static bool HasValue(
const std::string& v)
2159 return std::find(_values.begin(), _values.end(), v) != _values.end();
2161 static void AddValue(
const std::string& v)
2166 _values.push_back(v);
2170 static std::vector<std::string> _values;
2173 class MechanicalVentilatorLink
2176 DEFINE_STATIC_STRING(MechanicalVentilatorToExpiratoryValve);
2177 DEFINE_STATIC_STRING(MechanicalVentilatorToInspiratoryValve);
2178 DEFINE_STATIC_STRING_EX(ExpiratoryLimbToExpiratoryValve, MechanicalVentilatorExpiratoryLimbToExpiratoryValve);
2179 DEFINE_STATIC_STRING_EX(InspiratoryValveToInspiratoryLimb, MechanicalVentilatorInspiratoryValveToInspiratoryLimb);
2180 DEFINE_STATIC_STRING_EX(ExpiratoryLimbToYPiece, MechanicalVentilatorExpiratoryLimbToYPiece);
2181 DEFINE_STATIC_STRING_EX(InspiratoryLimbToYPiece, MechanicalVentilatorInspiratoryLimbToYPiece);
2182 DEFINE_STATIC_STRING_EX(YPieceToConnection, MechanicalVentilatorYPieceToConnection);
2183 DEFINE_STATIC_STRING_EX(LeakConnectionToEnvironment, MechanicalVentilatorLeakConnectionToEnvironment);
2184 DEFINE_STATIC_STRING_EX(ConnectionToReliefValve, MechanicalVentilatorConnectionToReliefValve);
2185 DEFINE_STATIC_STRING_EX(EnvironmentToReliefValve, MechanicalVentilatorEnvironmentToReliefValve);
2186 DEFINE_STATIC_STRING_EX(ConnectionToEnvironment, MechanicalVentilatorConnectionToEnvironment);
2187 DEFINE_STATIC_STRING_EX(ConnectionToAirway, MechanicalVentilatorConnectionToAirway);
2189 static const std::vector<std::string>& GetValues()
2192 if (_values.empty())
2194 _values.push_back(MechanicalVentilatorToExpiratoryValve);
2195 _values.push_back(MechanicalVentilatorToInspiratoryValve);
2196 _values.push_back(ExpiratoryLimbToExpiratoryValve);
2197 _values.push_back(InspiratoryValveToInspiratoryLimb);
2198 _values.push_back(ExpiratoryLimbToYPiece);
2199 _values.push_back(InspiratoryLimbToYPiece);
2200 _values.push_back(YPieceToConnection);
2201 _values.push_back(LeakConnectionToEnvironment);
2202 _values.push_back(ConnectionToReliefValve);
2203 _values.push_back(EnvironmentToReliefValve);
2204 _values.push_back(ConnectionToEnvironment);
2205 _values.push_back(ConnectionToAirway);
2209 static bool HasValue(
const std::string& v)
2211 return std::find(_values.begin(), _values.end(), v) != _values.end();
2213 static void AddValue(
const std::string& v)
2218 _values.push_back(v);
2222 static std::vector<std::string> _values;
2225 class NasalCannulaCompartment
2228 DEFINE_STATIC_STRING(NasalCannulaOxygenSource);
2229 DEFINE_STATIC_STRING(NasalCannula);
2231 static const std::vector<std::string>& GetValues()
2234 if (_values.empty())
2236 _values.push_back(NasalCannulaOxygenSource);
2237 _values.push_back(NasalCannula);
2241 static bool HasValue(
const std::string& v)
2243 return std::find(_values.begin(), _values.end(), v) != _values.end();
2245 static void AddValue(
const std::string& v)
2250 _values.push_back(v);
2254 static std::vector<std::string> _values;
2257 class NasalCannulaLink
2260 DEFINE_STATIC_STRING(NasalCannulaOxygenInlet);
2261 DEFINE_STATIC_STRING(NasalCannulaSeal);
2262 DEFINE_STATIC_STRING(NasalCannulaToAirway);
2264 static const std::vector<std::string>& GetValues()
2267 if (_values.empty())
2269 _values.push_back(NasalCannulaOxygenInlet);
2270 _values.push_back(NasalCannulaSeal);
2271 _values.push_back(NasalCannulaToAirway);
2275 static bool HasValue(
const std::string& v)
2277 return std::find(_values.begin(), _values.end(), v) != _values.end();
2279 static void AddValue(
const std::string& v)
2284 _values.push_back(v);
2288 static std::vector<std::string> _values;
2291 class NonRebreatherMaskCompartment
2294 DEFINE_STATIC_STRING(NonRebreatherMaskOxygenSource);
2295 DEFINE_STATIC_STRING(NonRebreatherMaskPorts);
2296 DEFINE_STATIC_STRING(NonRebreatherMaskBag);
2297 DEFINE_STATIC_STRING(NonRebreatherMask);
2299 static const std::vector<std::string>& GetValues()
2302 if (_values.empty())
2304 _values.push_back(NonRebreatherMaskOxygenSource);
2305 _values.push_back(NonRebreatherMaskPorts);
2306 _values.push_back(NonRebreatherMaskBag);
2307 _values.push_back(NonRebreatherMask);
2311 static bool HasValue(
const std::string& v)
2313 return std::find(_values.begin(), _values.end(), v) != _values.end();
2315 static void AddValue(
const std::string& v)
2320 _values.push_back(v);
2324 static std::vector<std::string> _values;
2327 class NonRebreatherMaskLink
2330 DEFINE_STATIC_STRING(NonRebreatherMaskOxygenInlet);
2331 DEFINE_STATIC_STRING(NonRebreatherMaskReservoirValve);
2332 DEFINE_STATIC_STRING(NonRebreatherMaskSeal);
2333 DEFINE_STATIC_STRING(NonRebreatherMaskExhalationValves);
2334 DEFINE_STATIC_STRING(NonRebreatherMaskExhalation);
2335 DEFINE_STATIC_STRING(NonRebreatherMaskToAirway);
2337 static const std::vector<std::string>& GetValues()
2340 if (_values.empty())
2342 _values.push_back(NonRebreatherMaskOxygenInlet);
2343 _values.push_back(NonRebreatherMaskReservoirValve);
2344 _values.push_back(NonRebreatherMaskSeal);
2345 _values.push_back(NonRebreatherMaskExhalationValves);
2346 _values.push_back(NonRebreatherMaskExhalation);
2347 _values.push_back(NonRebreatherMaskToAirway);
2351 static bool HasValue(
const std::string& v)
2353 return std::find(_values.begin(), _values.end(), v) != _values.end();
2355 static void AddValue(
const std::string& v)
2360 _values.push_back(v);
2364 static std::vector<std::string> _values;
2367 class SimpleMaskCompartment
2370 DEFINE_STATIC_STRING(SimpleMaskOxygenSource);
2371 DEFINE_STATIC_STRING(SimpleMask);
2373 static const std::vector<std::string>& GetValues()
2376 if (_values.empty())
2378 _values.push_back(SimpleMaskOxygenSource);
2379 _values.push_back(SimpleMask);
2383 static bool HasValue(
const std::string& v)
2385 return std::find(_values.begin(), _values.end(), v) != _values.end();
2387 static void AddValue(
const std::string& v)
2392 _values.push_back(v);
2396 static std::vector<std::string> _values;
2399 class SimpleMaskLink
2402 DEFINE_STATIC_STRING(SimpleMaskOxygenInlet);
2403 DEFINE_STATIC_STRING(SimpleMaskSeal);
2404 DEFINE_STATIC_STRING(SimpleMaskPorts);
2405 DEFINE_STATIC_STRING(SimpleMaskToAirway);
2407 static const std::vector<std::string>& GetValues()
2410 if (_values.empty())
2412 _values.push_back(SimpleMaskOxygenInlet);
2413 _values.push_back(SimpleMaskSeal);
2414 _values.push_back(SimpleMaskPorts);
2415 _values.push_back(SimpleMaskToAirway);
2419 static bool HasValue(
const std::string& v)
2421 return std::find(_values.begin(), _values.end(), v) != _values.end();
2423 static void AddValue(
const std::string& v)
2428 _values.push_back(v);
2432 static std::vector<std::string> _values;
Definition: ScopedMutex.h:7