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 ExpandedLungsPulmonaryCompartment
343 DEFINE_STATIC_STRING(RightBranches);
344 DEFINE_STATIC_STRING(LeftBranches);
346 DEFINE_STATIC_STRING(RightMainBronchus);
347 DEFINE_STATIC_STRING(LeftMainBronchus);
348 DEFINE_STATIC_STRING(RightIntermediateBronchus);
349 DEFINE_STATIC_STRING(RightSuperiorLobarBronchus);
350 DEFINE_STATIC_STRING(RightMiddleLobarBronchus);
351 DEFINE_STATIC_STRING(RightInferiorLobarBronchus1);
352 DEFINE_STATIC_STRING(LeftInferiorLobarBronchus1);
353 DEFINE_STATIC_STRING(LeftSuperiorLobarBronchus);
354 DEFINE_STATIC_STRING(RightInferiorLobarBronchus2);
355 DEFINE_STATIC_STRING(LeftInferiorLobarBronchus2);
356 DEFINE_STATIC_STRING(RightSuperiorApicoposteriorBronchus);
357 DEFINE_STATIC_STRING(RightInferiorLobarBronchus3);
358 DEFINE_STATIC_STRING(LeftInferiorLobarBronchus3);
359 DEFINE_STATIC_STRING(LeftLingularBonchus);
360 DEFINE_STATIC_STRING(LeftSuperiorApicoposteriorBronchus);
361 DEFINE_STATIC_STRING(RightInferiorLobarBronchus4);
363 DEFINE_STATIC_STRING(RightSuperiorLobeApicalBronchiole);
364 DEFINE_STATIC_STRING(RightSuperiorLobePosteriorBronchiole);
365 DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorBronchiole);
366 DEFINE_STATIC_STRING(RightMiddleLobeLateralBronchiole);
367 DEFINE_STATIC_STRING(RightMiddleLobeMedialBronchiole);
368 DEFINE_STATIC_STRING(RightInferiorLobeSuperiorBronchiole);
369 DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalBronchiole);
370 DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalBronchiole);
371 DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalBronchiole);
372 DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalBronchiole);
374 DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalBronchiole);
375 DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalBronchiole);
376 DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalBronchiole);
377 DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorBronchiole);
378 DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaBronchiole);
379 DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaBronchiole);
380 DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorBronchiole);
381 DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorBronchiole);
383 DEFINE_STATIC_STRING(RightSuperiorLobeApicalAlveolarDeadSpace);
384 DEFINE_STATIC_STRING(RightSuperiorLobePosteriorAlveolarDeadSpace);
385 DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorAlveolarDeadSpace);
386 DEFINE_STATIC_STRING(RightMiddleLobeLateralAlveolarDeadSpace);
387 DEFINE_STATIC_STRING(RightMiddleLobeMedialAlveolarDeadSpace);
388 DEFINE_STATIC_STRING(RightInferiorLobeSuperiorAlveolarDeadSpace);
389 DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalAlveolarDeadSpace);
390 DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalAlveolarDeadSpace);
391 DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalAlveolarDeadSpace);
392 DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalAlveolarDeadSpace);
394 DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalAlveolarDeadSpace);
395 DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalAlveolarDeadSpace);
396 DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalAlveolarDeadSpace);
397 DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorAlveolarDeadSpace);
398 DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaAlveolarDeadSpace);
399 DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace);
400 DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorAlveolarDeadSpace);
401 DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorAlveolarDeadSpace);
403 DEFINE_STATIC_STRING(RightSuperiorLobeApicalAlveoli);
404 DEFINE_STATIC_STRING(RightSuperiorLobePosteriorAlveoli);
405 DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorAlveoli);
406 DEFINE_STATIC_STRING(RightMiddleLobeLateralAlveoli);
407 DEFINE_STATIC_STRING(RightMiddleLobeMedialAlveoli);
408 DEFINE_STATIC_STRING(RightInferiorLobeSuperiorAlveoli);
409 DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalAlveoli);
410 DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalAlveoli);
411 DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalAlveoli);
412 DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalAlveoli);
414 DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalAlveoli);
415 DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalAlveoli);
416 DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalAlveoli);
417 DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorAlveoli);
418 DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaAlveoli);
419 DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaAlveoli);
420 DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorAlveoli);
421 DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorAlveoli);
423 static const std::vector<std::string>& GetValues()
428 _values.push_back(RightBranches);
429 _values.push_back(LeftBranches);
431 _values.push_back(RightMainBronchus);
432 _values.push_back(LeftMainBronchus);
433 _values.push_back(RightIntermediateBronchus);
434 _values.push_back(RightSuperiorLobarBronchus);
435 _values.push_back(RightMiddleLobarBronchus);
436 _values.push_back(RightInferiorLobarBronchus1);
437 _values.push_back(LeftInferiorLobarBronchus1);
438 _values.push_back(LeftSuperiorLobarBronchus);
439 _values.push_back(RightInferiorLobarBronchus2);
440 _values.push_back(LeftInferiorLobarBronchus2);
441 _values.push_back(RightSuperiorApicoposteriorBronchus);
442 _values.push_back(RightInferiorLobarBronchus3);
443 _values.push_back(LeftInferiorLobarBronchus3);
444 _values.push_back(LeftLingularBonchus);
445 _values.push_back(LeftSuperiorApicoposteriorBronchus);
446 _values.push_back(RightInferiorLobarBronchus4);
448 _values.push_back(RightSuperiorLobeApicalBronchiole);
449 _values.push_back(RightSuperiorLobePosteriorBronchiole);
450 _values.push_back(RightSuperiorLobeAnteriorBronchiole);
451 _values.push_back(RightMiddleLobeLateralBronchiole);
452 _values.push_back(RightMiddleLobeMedialBronchiole);
453 _values.push_back(RightInferiorLobeSuperiorBronchiole);
454 _values.push_back(RightInferiorLobeMedialBasalBronchiole);
455 _values.push_back(RightInferiorLobeAnteriorBasalBronchiole);
456 _values.push_back(RightInferiorLobeLateralBasalBronchiole);
457 _values.push_back(RightInferiorLobePosteriorBasalBronchiole);
459 _values.push_back(LeftInferiorLobePosteriorBasalBronchiole);
460 _values.push_back(LeftInferiorLobeLateralBasalBronchiole);
461 _values.push_back(LeftInferiorLobeAnteromedialBasalBronchiole);
462 _values.push_back(LeftInferiorLobeSuperiorBronchiole);
463 _values.push_back(LeftSuperiorLobeInferiorLingulaBronchiole);
464 _values.push_back(LeftSuperiorLobeSuperiorLingulaBronchiole);
465 _values.push_back(LeftSuperiorLobeAnteriorBronchiole);
466 _values.push_back(LeftSuperiorLobeApicoposteriorBronchiole);
468 _values.push_back(RightSuperiorLobeApicalAlveolarDeadSpace);
469 _values.push_back(RightSuperiorLobePosteriorAlveolarDeadSpace);
470 _values.push_back(RightSuperiorLobeAnteriorAlveolarDeadSpace);
471 _values.push_back(RightMiddleLobeLateralAlveolarDeadSpace);
472 _values.push_back(RightMiddleLobeMedialAlveolarDeadSpace);
473 _values.push_back(RightInferiorLobeSuperiorAlveolarDeadSpace);
474 _values.push_back(RightInferiorLobeMedialBasalAlveolarDeadSpace);
475 _values.push_back(RightInferiorLobeAnteriorBasalAlveolarDeadSpace);
476 _values.push_back(RightInferiorLobeLateralBasalAlveolarDeadSpace);
477 _values.push_back(RightInferiorLobePosteriorBasalAlveolarDeadSpace);
479 _values.push_back(LeftInferiorLobePosteriorBasalAlveolarDeadSpace);
480 _values.push_back(LeftInferiorLobeLateralBasalAlveolarDeadSpace);
481 _values.push_back(LeftInferiorLobeAnteromedialBasalAlveolarDeadSpace);
482 _values.push_back(LeftInferiorLobeSuperiorAlveolarDeadSpace);
483 _values.push_back(LeftSuperiorLobeInferiorLingulaAlveolarDeadSpace);
484 _values.push_back(LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace);
485 _values.push_back(LeftSuperiorLobeAnteriorAlveolarDeadSpace);
486 _values.push_back(LeftSuperiorLobeApicoposteriorAlveolarDeadSpace);
488 _values.push_back(RightSuperiorLobeApicalAlveoli);
489 _values.push_back(RightSuperiorLobePosteriorAlveoli);
490 _values.push_back(RightSuperiorLobeAnteriorAlveoli);
491 _values.push_back(RightMiddleLobeLateralAlveoli);
492 _values.push_back(RightMiddleLobeMedialAlveoli);
493 _values.push_back(RightInferiorLobeSuperiorAlveoli);
494 _values.push_back(RightInferiorLobeMedialBasalAlveoli);
495 _values.push_back(RightInferiorLobeAnteriorBasalAlveoli);
496 _values.push_back(RightInferiorLobeLateralBasalAlveoli);
497 _values.push_back(RightInferiorLobePosteriorBasalAlveoli);
499 _values.push_back(LeftInferiorLobePosteriorBasalAlveoli);
500 _values.push_back(LeftInferiorLobeLateralBasalAlveoli);
501 _values.push_back(LeftInferiorLobeAnteromedialBasalAlveoli);
502 _values.push_back(LeftInferiorLobeSuperiorAlveoli);
503 _values.push_back(LeftSuperiorLobeInferiorLingulaAlveoli);
504 _values.push_back(LeftSuperiorLobeSuperiorLingulaAlveoli);
505 _values.push_back(LeftSuperiorLobeAnteriorAlveoli);
506 _values.push_back(LeftSuperiorLobeApicoposteriorAlveoli);
510 static bool HasValue(
const std::string& v)
512 return std::find(_values.begin(), _values.end(), v) != _values.end();
514 static void AddValue(
const std::string& v)
519 _values.push_back(v);
523 static std::vector<std::string> _values;
526 class ExpandedLungsPulmonaryLink
529 DEFINE_STATIC_STRING(CarinaToRightMainBronchus);
530 DEFINE_STATIC_STRING(RightMainBronchusToRightIntermediateBronchus);
531 DEFINE_STATIC_STRING(RightMainBronchusToRightSuperiorLobarBronchus);
532 DEFINE_STATIC_STRING(RightIntermediateBronchusToRightMiddleLobarBronchus);
533 DEFINE_STATIC_STRING(RightIntermediateBronchusToRightInferiorLobarBronchus1);
534 DEFINE_STATIC_STRING(RightInferiorLobarBronchus1ToRightInferiorLobarBronchus2);
535 DEFINE_STATIC_STRING(RightSuperiorLobarBronchusToRightSuperiorApicoposteriorBronchus);
536 DEFINE_STATIC_STRING(RightInferiorLobarBronchus2ToRightInferiorLobarBronchus3);
537 DEFINE_STATIC_STRING(RightInferiorLobarBronchus2ToRightInferiorLobarBronchus4);
539 DEFINE_STATIC_STRING(CarinaToLeftMainBronchus);
540 DEFINE_STATIC_STRING(LeftMainBronchusToLeftInferiorLobarBronchus1);
541 DEFINE_STATIC_STRING(LeftMainBronchusToLeftSuperiorLobarBronchus);
542 DEFINE_STATIC_STRING(LeftInferiorLobarBronchus1ToLeftInferiorLobarBronchus2);
543 DEFINE_STATIC_STRING(LeftInferiorLobarBronchus2ToLeftInferiorLobarBronchus3);
544 DEFINE_STATIC_STRING(LeftSuperiorLobarBronchusToLeftLingularBonchus);
545 DEFINE_STATIC_STRING(LeftSuperiorLobarBronchusToLeftSuperiorApicoposteriorBronchus);
547 DEFINE_STATIC_STRING(RightSuperiorApicoposteriorBronchusToRightSuperiorLobeApicalBronchiole);
548 DEFINE_STATIC_STRING(RightSuperiorApicoposteriorBronchusToRightSuperiorLobePosteriorBronchiole);
549 DEFINE_STATIC_STRING(RightSuperiorLobarBronchusToRightSuperiorLobeAnteriorBronchiole);
550 DEFINE_STATIC_STRING(RightMiddleLobarBronchusToRightMiddleLobeLateralBronchiole);
551 DEFINE_STATIC_STRING(RightMiddleLobarBronchusToRightMiddleLobeMedialBronchiole);
552 DEFINE_STATIC_STRING(RightInferiorLobarBronchus1ToRightInferiorLobeSuperiorBronchiole);
553 DEFINE_STATIC_STRING(RightInferiorLobarBronchus2ToRightInferiorLobeMedialBasalBronchiole);
554 DEFINE_STATIC_STRING(RightInferiorLobarBronchus3ToRightInferiorLobeAnteriorBasalBronchiole);
555 DEFINE_STATIC_STRING(RightInferiorLobarBronchus4ToRightInferiorLobeLateralBasalBronchiole);
556 DEFINE_STATIC_STRING(RightInferiorLobarBronchus4ToRightInferiorLobePosteriorBasalBronchiole);
558 DEFINE_STATIC_STRING(LeftInferiorLobarBronchus3ToLeftInferiorLobeLateralBasalBronchiole);
559 DEFINE_STATIC_STRING(LeftInferiorLobarBronchus3ToLeftInferiorLobePosteriorBasalBronchiole);
560 DEFINE_STATIC_STRING(LeftInferiorLobarBronchus2ToLeftInferiorLobeAnteromedialBasalBronchiole);
561 DEFINE_STATIC_STRING(LeftInferiorLobarBronchus1ToLeftInferiorLobeSuperiorBronchiole);
562 DEFINE_STATIC_STRING(LeftLingularBonchusToLeftSuperiorLobeInferiorLingulaBronchiole);
563 DEFINE_STATIC_STRING(LeftLingularBonchusToLeftSuperiorLobeSuperiorLingulaBronchiole);
564 DEFINE_STATIC_STRING(LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeAnteriorBronchiole);
565 DEFINE_STATIC_STRING(LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeApicoposteriorBronchiole);
567 DEFINE_STATIC_STRING(RightSuperiorLobeApicalBronchioleToRightSuperiorLobeApicalAlveolarDeadSpace);
568 DEFINE_STATIC_STRING(RightSuperiorLobePosteriorBronchioleToRightSuperiorLobePosteriorAlveolarDeadSpace);
569 DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorBronchioleToRightSuperiorLobeAnteriorAlveolarDeadSpace);
570 DEFINE_STATIC_STRING(RightMiddleLobeLateralBronchioleToRightMiddleLobeLateralAlveolarDeadSpace);
571 DEFINE_STATIC_STRING(RightMiddleLobeMedialBronchioleToRightMiddleLobeMedialAlveolarDeadSpace);
572 DEFINE_STATIC_STRING(RightInferiorLobeSuperiorBronchioleToRightInferiorLobeSuperiorAlveolarDeadSpace);
573 DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalBronchioleToRightInferiorLobeMedialBasalAlveolarDeadSpace);
574 DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalBronchioleToRightInferiorLobeAnteriorBasalAlveolarDeadSpace);
575 DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalBronchioleToRightInferiorLobeLateralBasalAlveolarDeadSpace);
576 DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalBronchioleToRightInferiorLobePosteriorBasalAlveolarDeadSpace);
578 DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalBronchioleToLeftInferiorLobePosteriorBasalAlveolarDeadSpace);
579 DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalBronchioleToLeftInferiorLobeLateralBasalAlveolarDeadSpace);
580 DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalBronchioleToLeftInferiorLobeAnteromedialBasalAlveolarDeadSpace);
581 DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorBronchioleToLeftInferiorLobeSuperiorAlveolarDeadSpace);
582 DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaBronchioleToLeftSuperiorLobeInferiorLingulaAlveolarDeadSpace);
583 DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaBronchioleToLeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace);
584 DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorBronchioleToLeftSuperiorLobeAnteriorAlveolarDeadSpace);
585 DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorBronchioleToLeftSuperiorLobeApicoposteriorAlveolarDeadSpace);
587 DEFINE_STATIC_STRING(RightSuperiorLobeApicalAlveolarDeadSpaceToRightSuperiorLobeApicalAlveoli);
588 DEFINE_STATIC_STRING(RightSuperiorLobePosteriorAlveolarDeadSpaceToRightSuperiorLobePosteriorAlveoli);
589 DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorAlveolarDeadSpaceToRightSuperiorLobeAnteriorAlveoli);
590 DEFINE_STATIC_STRING(RightMiddleLobeLateralAlveolarDeadSpaceToRightMiddleLobeLateralAlveoli);
591 DEFINE_STATIC_STRING(RightMiddleLobeMedialAlveolarDeadSpaceToRightMiddleLobeMedialAlveoli);
592 DEFINE_STATIC_STRING(RightInferiorLobeSuperiorAlveolarDeadSpaceToRightInferiorLobeSuperiorAlveoli);
593 DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalAlveolarDeadSpaceToRightInferiorLobeMedialBasalAlveoli);
594 DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalAlveolarDeadSpaceToRightInferiorLobeAnteriorBasalAlveoli);
595 DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalAlveolarDeadSpaceToRightInferiorLobeLateralBasalAlveoli);
596 DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalAlveolarDeadSpaceToRightInferiorLobePosteriorBasalAlveoli);
598 DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalAlveolarDeadSpaceToLeftInferiorLobePosteriorBasalAlveoli);
599 DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalAlveolarDeadSpaceToLeftInferiorLobeLateralBasalAlveoli);
600 DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalAlveolarDeadSpaceToLeftInferiorLobeAnteromedialBasalAlveoli);
601 DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorAlveolarDeadSpaceToLeftInferiorLobeSuperiorAlveoli);
602 DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeInferiorLingulaAlveoli);
603 DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeSuperiorLingulaAlveoli);
604 DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorAlveolarDeadSpaceToLeftSuperiorLobeAnteriorAlveoli);
605 DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorAlveolarDeadSpaceToLeftSuperiorLobeApicoposteriorAlveoli);
607 static const std::vector<std::string>& GetValues()
612 _values.push_back(CarinaToRightMainBronchus);
613 _values.push_back(RightMainBronchusToRightIntermediateBronchus);
614 _values.push_back(RightMainBronchusToRightSuperiorLobarBronchus);
615 _values.push_back(RightIntermediateBronchusToRightMiddleLobarBronchus);
616 _values.push_back(RightIntermediateBronchusToRightInferiorLobarBronchus1);
617 _values.push_back(RightInferiorLobarBronchus1ToRightInferiorLobarBronchus2);
618 _values.push_back(RightSuperiorLobarBronchusToRightSuperiorApicoposteriorBronchus);
619 _values.push_back(RightInferiorLobarBronchus2ToRightInferiorLobarBronchus3);
620 _values.push_back(RightInferiorLobarBronchus2ToRightInferiorLobarBronchus4);
622 _values.push_back(CarinaToLeftMainBronchus);
623 _values.push_back(LeftMainBronchusToLeftInferiorLobarBronchus1);
624 _values.push_back(LeftMainBronchusToLeftSuperiorLobarBronchus);
625 _values.push_back(LeftInferiorLobarBronchus1ToLeftInferiorLobarBronchus2);
626 _values.push_back(LeftInferiorLobarBronchus2ToLeftInferiorLobarBronchus3);
627 _values.push_back(LeftSuperiorLobarBronchusToLeftLingularBonchus);
628 _values.push_back(LeftSuperiorLobarBronchusToLeftSuperiorApicoposteriorBronchus);
630 _values.push_back(RightSuperiorApicoposteriorBronchusToRightSuperiorLobeApicalBronchiole);
631 _values.push_back(RightSuperiorApicoposteriorBronchusToRightSuperiorLobePosteriorBronchiole);
632 _values.push_back(RightSuperiorLobarBronchusToRightSuperiorLobeAnteriorBronchiole);
633 _values.push_back(RightMiddleLobarBronchusToRightMiddleLobeLateralBronchiole);
634 _values.push_back(RightMiddleLobarBronchusToRightMiddleLobeMedialBronchiole);
635 _values.push_back(RightInferiorLobarBronchus1ToRightInferiorLobeSuperiorBronchiole);
636 _values.push_back(RightInferiorLobarBronchus2ToRightInferiorLobeMedialBasalBronchiole);
637 _values.push_back(RightInferiorLobarBronchus3ToRightInferiorLobeAnteriorBasalBronchiole);
638 _values.push_back(RightInferiorLobarBronchus4ToRightInferiorLobeLateralBasalBronchiole);
639 _values.push_back(RightInferiorLobarBronchus4ToRightInferiorLobePosteriorBasalBronchiole);
641 _values.push_back(LeftInferiorLobarBronchus3ToLeftInferiorLobeLateralBasalBronchiole);
642 _values.push_back(LeftInferiorLobarBronchus3ToLeftInferiorLobePosteriorBasalBronchiole);
643 _values.push_back(LeftInferiorLobarBronchus2ToLeftInferiorLobeAnteromedialBasalBronchiole);
644 _values.push_back(LeftInferiorLobarBronchus1ToLeftInferiorLobeSuperiorBronchiole);
645 _values.push_back(LeftLingularBonchusToLeftSuperiorLobeInferiorLingulaBronchiole);
646 _values.push_back(LeftLingularBonchusToLeftSuperiorLobeSuperiorLingulaBronchiole);
647 _values.push_back(LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeAnteriorBronchiole);
648 _values.push_back(LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeApicoposteriorBronchiole);
650 _values.push_back(RightSuperiorLobeApicalBronchioleToRightSuperiorLobeApicalAlveolarDeadSpace);
651 _values.push_back(RightSuperiorLobePosteriorBronchioleToRightSuperiorLobePosteriorAlveolarDeadSpace);
652 _values.push_back(RightSuperiorLobeAnteriorBronchioleToRightSuperiorLobeAnteriorAlveolarDeadSpace);
653 _values.push_back(RightMiddleLobeLateralBronchioleToRightMiddleLobeLateralAlveolarDeadSpace);
654 _values.push_back(RightMiddleLobeMedialBronchioleToRightMiddleLobeMedialAlveolarDeadSpace);
655 _values.push_back(RightInferiorLobeSuperiorBronchioleToRightInferiorLobeSuperiorAlveolarDeadSpace);
656 _values.push_back(RightInferiorLobeMedialBasalBronchioleToRightInferiorLobeMedialBasalAlveolarDeadSpace);
657 _values.push_back(RightInferiorLobeAnteriorBasalBronchioleToRightInferiorLobeAnteriorBasalAlveolarDeadSpace);
658 _values.push_back(RightInferiorLobeLateralBasalBronchioleToRightInferiorLobeLateralBasalAlveolarDeadSpace);
659 _values.push_back(RightInferiorLobePosteriorBasalBronchioleToRightInferiorLobePosteriorBasalAlveolarDeadSpace);
661 _values.push_back(LeftInferiorLobePosteriorBasalBronchioleToLeftInferiorLobePosteriorBasalAlveolarDeadSpace);
662 _values.push_back(LeftInferiorLobeLateralBasalBronchioleToLeftInferiorLobeLateralBasalAlveolarDeadSpace);
663 _values.push_back(LeftInferiorLobeAnteromedialBasalBronchioleToLeftInferiorLobeAnteromedialBasalAlveolarDeadSpace);
664 _values.push_back(LeftInferiorLobeSuperiorBronchioleToLeftInferiorLobeSuperiorAlveolarDeadSpace);
665 _values.push_back(LeftSuperiorLobeInferiorLingulaBronchioleToLeftSuperiorLobeInferiorLingulaAlveolarDeadSpace);
666 _values.push_back(LeftSuperiorLobeSuperiorLingulaBronchioleToLeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace);
667 _values.push_back(LeftSuperiorLobeAnteriorBronchioleToLeftSuperiorLobeAnteriorAlveolarDeadSpace);
668 _values.push_back(LeftSuperiorLobeApicoposteriorBronchioleToLeftSuperiorLobeApicoposteriorAlveolarDeadSpace);
670 _values.push_back(RightSuperiorLobeApicalAlveolarDeadSpaceToRightSuperiorLobeApicalAlveoli);
671 _values.push_back(RightSuperiorLobePosteriorAlveolarDeadSpaceToRightSuperiorLobePosteriorAlveoli);
672 _values.push_back(RightSuperiorLobeAnteriorAlveolarDeadSpaceToRightSuperiorLobeAnteriorAlveoli);
673 _values.push_back(RightMiddleLobeLateralAlveolarDeadSpaceToRightMiddleLobeLateralAlveoli);
674 _values.push_back(RightMiddleLobeMedialAlveolarDeadSpaceToRightMiddleLobeMedialAlveoli);
675 _values.push_back(RightInferiorLobeSuperiorAlveolarDeadSpaceToRightInferiorLobeSuperiorAlveoli);
676 _values.push_back(RightInferiorLobeMedialBasalAlveolarDeadSpaceToRightInferiorLobeMedialBasalAlveoli);
677 _values.push_back(RightInferiorLobeAnteriorBasalAlveolarDeadSpaceToRightInferiorLobeAnteriorBasalAlveoli);
678 _values.push_back(RightInferiorLobeLateralBasalAlveolarDeadSpaceToRightInferiorLobeLateralBasalAlveoli);
679 _values.push_back(RightInferiorLobePosteriorBasalAlveolarDeadSpaceToRightInferiorLobePosteriorBasalAlveoli);
681 _values.push_back(LeftInferiorLobePosteriorBasalAlveolarDeadSpaceToLeftInferiorLobePosteriorBasalAlveoli);
682 _values.push_back(LeftInferiorLobeLateralBasalAlveolarDeadSpaceToLeftInferiorLobeLateralBasalAlveoli);
683 _values.push_back(LeftInferiorLobeAnteromedialBasalAlveolarDeadSpaceToLeftInferiorLobeAnteromedialBasalAlveoli);
684 _values.push_back(LeftInferiorLobeSuperiorAlveolarDeadSpaceToLeftInferiorLobeSuperiorAlveoli);
685 _values.push_back(LeftSuperiorLobeInferiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeInferiorLingulaAlveoli);
686 _values.push_back(LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeSuperiorLingulaAlveoli);
687 _values.push_back(LeftSuperiorLobeAnteriorAlveolarDeadSpaceToLeftSuperiorLobeAnteriorAlveoli);
688 _values.push_back(LeftSuperiorLobeApicoposteriorAlveolarDeadSpaceToLeftSuperiorLobeApicoposteriorAlveoli);
692 static bool HasValue(
const std::string& v)
694 return std::find(_values.begin(), _values.end(), v) != _values.end();
696 static void AddValue(
const std::string& v)
701 _values.push_back(v);
705 static std::vector<std::string> _values;
708 class TissueCompartment
711 DEFINE_STATIC_STRING_EX(Bone, BoneTissue);
712 DEFINE_STATIC_STRING_EX(Brain, BrainTissue);
713 DEFINE_STATIC_STRING_EX(Fat, FatTissue);
714 DEFINE_STATIC_STRING_EX(Gut, GutTissue);
715 DEFINE_STATIC_STRING_EX(LeftKidney, LeftKidneyTissue);
716 DEFINE_STATIC_STRING_EX(LeftLung, LeftLungTissue);
717 DEFINE_STATIC_STRING_EX(Liver, LiverTissue);
718 DEFINE_STATIC_STRING_EX(Muscle, MuscleTissue);
719 DEFINE_STATIC_STRING_EX(Myocardium, MyocardiumTissue);
720 DEFINE_STATIC_STRING_EX(RightKidney, RightKidneyTissue);
721 DEFINE_STATIC_STRING_EX(RightLung, RightLungTissue);
722 DEFINE_STATIC_STRING_EX(Skin, SkinTissue);
723 DEFINE_STATIC_STRING_EX(Spleen, SpleenTissue);
725 static const std::vector<std::string>& GetValues()
730 _values.push_back(Bone);
731 _values.push_back(Brain);
732 _values.push_back(Fat);
733 _values.push_back(Gut);
734 _values.push_back(LeftKidney);
735 _values.push_back(LeftLung);
736 _values.push_back(Liver);
737 _values.push_back(Muscle);
738 _values.push_back(Myocardium);
739 _values.push_back(RightKidney);
740 _values.push_back(RightLung);
741 _values.push_back(Skin);
742 _values.push_back(Spleen);
746 static bool HasValue(
const std::string& v)
748 return std::find(_values.begin(), _values.end(), v) != _values.end();
750 static void AddValue(
const std::string& v)
755 _values.push_back(v);
759 static std::vector<std::string> _values;
762 class ExtravascularCompartment
765 DEFINE_STATIC_STRING_EX(BoneExtracellular, BoneTissueExtracellular);
766 DEFINE_STATIC_STRING_EX(BrainExtracellular, BrainTissueExtracellular);
767 DEFINE_STATIC_STRING_EX(FatExtracellular, FatTissueExtracellular);
768 DEFINE_STATIC_STRING_EX(GutExtracellular, GutTissueExtracellular);
769 DEFINE_STATIC_STRING_EX(LeftKidneyExtracellular, LeftKidneyTissueExtracellular);
770 DEFINE_STATIC_STRING_EX(LeftLungExtracellular, LeftLungTissueExtracellular);
771 DEFINE_STATIC_STRING_EX(LiverExtracellular, LiverTissueExtracellular);
772 DEFINE_STATIC_STRING_EX(MuscleExtracellular, MuscleTissueExtracellular);
773 DEFINE_STATIC_STRING_EX(MyocardiumExtracellular, MyocardiumTissueExtracellular);
774 DEFINE_STATIC_STRING_EX(RightKidneyExtracellular, RightKidneyTissueExtracellular);
775 DEFINE_STATIC_STRING_EX(RightLungExtracellular, RightLungTissueExtracellular);
776 DEFINE_STATIC_STRING_EX(SkinExtracellular, SkinTissueExtracellular);
777 DEFINE_STATIC_STRING_EX(SpleenExtracellular, SpleenTissueExtracellular);
779 DEFINE_STATIC_STRING_EX(BoneIntracellular, BoneTissueIntracellular);
780 DEFINE_STATIC_STRING_EX(BrainIntracellular, BrainTissueIntracellular);
781 DEFINE_STATIC_STRING_EX(FatIntracellular, FatTissueIntracellular);
782 DEFINE_STATIC_STRING_EX(GutIntracellular, GutTissueIntracellular);
783 DEFINE_STATIC_STRING_EX(LeftKidneyIntracellular, LeftKidneyTissueIntracellular);
784 DEFINE_STATIC_STRING_EX(LeftLungIntracellular, LeftLungTissueIntracellular);
785 DEFINE_STATIC_STRING_EX(LiverIntracellular, LiverTissueIntracellular);
786 DEFINE_STATIC_STRING_EX(MuscleIntracellular, MuscleTissueIntracellular);
787 DEFINE_STATIC_STRING_EX(MyocardiumIntracellular, MyocardiumTissueIntracellular);
788 DEFINE_STATIC_STRING_EX(RightKidneyIntracellular, RightKidneyTissueIntracellular);
789 DEFINE_STATIC_STRING_EX(RightLungIntracellular, RightLungTissueIntracellular);
790 DEFINE_STATIC_STRING_EX(SkinIntracellular, SkinTissueIntracellular);
791 DEFINE_STATIC_STRING_EX(SpleenIntracellular, SpleenTissueIntracellular);
793 static const std::vector<std::string>& GetValues()
798 _values.push_back(BoneExtracellular);
799 _values.push_back(BrainExtracellular);
800 _values.push_back(FatExtracellular);
801 _values.push_back(GutExtracellular);
802 _values.push_back(LeftKidneyExtracellular);
803 _values.push_back(LeftLungExtracellular);
804 _values.push_back(LiverExtracellular);
805 _values.push_back(MuscleExtracellular);
806 _values.push_back(MyocardiumExtracellular);
807 _values.push_back(RightKidneyExtracellular);
808 _values.push_back(RightLungExtracellular);
809 _values.push_back(SkinExtracellular);
810 _values.push_back(SpleenExtracellular);
812 _values.push_back(BoneIntracellular);
813 _values.push_back(BrainIntracellular);
814 _values.push_back(FatIntracellular);
815 _values.push_back(GutIntracellular);
816 _values.push_back(LeftKidneyIntracellular);
817 _values.push_back(LeftLungIntracellular);
818 _values.push_back(LiverIntracellular);
819 _values.push_back(MuscleIntracellular);
820 _values.push_back(MyocardiumIntracellular);
821 _values.push_back(RightKidneyIntracellular);
822 _values.push_back(RightLungIntracellular);
823 _values.push_back(SkinIntracellular);
824 _values.push_back(SpleenIntracellular);
828 static bool HasValue(
const std::string& v)
830 return std::find(_values.begin(), _values.end(), v) != _values.end();
832 static void AddValue(
const std::string& v)
837 _values.push_back(v);
841 static std::vector<std::string> _values;
844 class VascularCompartment
848 DEFINE_STATIC_STRING(Aorta);
849 DEFINE_STATIC_STRING(Heart);
850 DEFINE_STATIC_STRING_EX(Myocardium, MyocardiumVasculature);
851 DEFINE_STATIC_STRING(LeftHeart);
852 DEFINE_STATIC_STRING(RightHeart);
853 DEFINE_STATIC_STRING(Pericardium);
854 DEFINE_STATIC_STRING(VenaCava);
856 DEFINE_STATIC_STRING(PulmonaryArteries);
857 DEFINE_STATIC_STRING(PulmonaryCapillaries);
858 DEFINE_STATIC_STRING(PulmonaryVeins);
859 DEFINE_STATIC_STRING_EX(Lungs, LungsVasculature);
860 DEFINE_STATIC_STRING_EX(LeftLung, LeftLungVasculature);
861 DEFINE_STATIC_STRING(LeftPulmonaryArteries);
862 DEFINE_STATIC_STRING(LeftPulmonaryCapillaries);
863 DEFINE_STATIC_STRING(LeftPulmonaryVeins);
864 DEFINE_STATIC_STRING_EX(RightLung, RightLungVasculature);
865 DEFINE_STATIC_STRING(RightPulmonaryArteries);
866 DEFINE_STATIC_STRING(RightPulmonaryCapillaries);
867 DEFINE_STATIC_STRING(RightPulmonaryVeins);
869 DEFINE_STATIC_STRING_EX(Kidneys, KidneyVasculature);
870 DEFINE_STATIC_STRING_EX(LeftKidney, LeftKidneyVasculature);
871 DEFINE_STATIC_STRING(LeftRenalArtery);
872 DEFINE_STATIC_STRING(LeftNephron);
873 DEFINE_STATIC_STRING(LeftAfferentArteriole);
874 DEFINE_STATIC_STRING(LeftGlomerularCapillaries);
875 DEFINE_STATIC_STRING(LeftEfferentArteriole);
876 DEFINE_STATIC_STRING(LeftPeritubularCapillaries);
877 DEFINE_STATIC_STRING(LeftBowmansCapsules);
878 DEFINE_STATIC_STRING(LeftTubules);
879 DEFINE_STATIC_STRING(LeftRenalVein);
880 DEFINE_STATIC_STRING_EX(RightKidney, RightKidneyVasculature);
881 DEFINE_STATIC_STRING(RightRenalArtery);
882 DEFINE_STATIC_STRING(RightNephron);
883 DEFINE_STATIC_STRING(RightAfferentArteriole);
884 DEFINE_STATIC_STRING(RightGlomerularCapillaries);
885 DEFINE_STATIC_STRING(RightEfferentArteriole);
886 DEFINE_STATIC_STRING(RightPeritubularCapillaries);
887 DEFINE_STATIC_STRING(RightBowmansCapsules);
888 DEFINE_STATIC_STRING(RightTubules);
889 DEFINE_STATIC_STRING(RightRenalVein);
891 DEFINE_STATIC_STRING_EX(Bone, BoneVasculature);
892 DEFINE_STATIC_STRING_EX(Brain, BrainVasculature);
893 DEFINE_STATIC_STRING_EX(Fat, FatVasculature);
894 DEFINE_STATIC_STRING_EX(Gut, GutVasculature);
895 DEFINE_STATIC_STRING_EX(Splanchnic, SplanchnicVasculature);
896 DEFINE_STATIC_STRING_EX(SmallIntestine, SmallIntestineVasculature);
897 DEFINE_STATIC_STRING_EX(LargeIntestine, LargeIntestineVasculature);
898 DEFINE_STATIC_STRING_EX(Liver, LiverVasculature);
899 DEFINE_STATIC_STRING_EX(Spleen, SpleenVasculature);
900 DEFINE_STATIC_STRING_EX(Skin, SkinVasculature);
901 DEFINE_STATIC_STRING_EX(Muscle, MuscleVasculature);
902 DEFINE_STATIC_STRING_EX(LeftArm, LeftArmVasculature);
903 DEFINE_STATIC_STRING_EX(LeftLeg, LeftLegVasculature);
904 DEFINE_STATIC_STRING_EX(RightArm, RightArmVasculature);
905 DEFINE_STATIC_STRING_EX(RightLeg, RightLegVasculature);
906 DEFINE_STATIC_STRING(Abdomen);
907 DEFINE_STATIC_STRING(AbdominalCavity);
909 DEFINE_STATIC_STRING(Ground);
912 static const std::vector<std::string>& GetValues()
917 _values.push_back(Aorta);
918 _values.push_back(Abdomen);
919 _values.push_back(Heart);
920 _values.push_back(Myocardium);
921 _values.push_back(LeftHeart);
922 _values.push_back(RightHeart);
923 _values.push_back(Pericardium);
924 _values.push_back(VenaCava);
925 _values.push_back(PulmonaryArteries);
926 _values.push_back(PulmonaryCapillaries);
927 _values.push_back(PulmonaryVeins);
928 _values.push_back(Lungs);
929 _values.push_back(LeftLung);
930 _values.push_back(LeftPulmonaryArteries);
931 _values.push_back(LeftPulmonaryCapillaries);
932 _values.push_back(LeftPulmonaryVeins);
933 _values.push_back(RightLung);
934 _values.push_back(RightPulmonaryArteries);
935 _values.push_back(RightPulmonaryCapillaries);
936 _values.push_back(RightPulmonaryVeins);
937 _values.push_back(Kidneys);
938 _values.push_back(LeftKidney);
939 _values.push_back(LeftRenalArtery);
940 _values.push_back(LeftNephron);
941 _values.push_back(LeftAfferentArteriole);
942 _values.push_back(LeftGlomerularCapillaries);
943 _values.push_back(LeftEfferentArteriole);
944 _values.push_back(LeftPeritubularCapillaries);
945 _values.push_back(LeftBowmansCapsules);
946 _values.push_back(LeftTubules);
947 _values.push_back(LeftRenalVein);
948 _values.push_back(RightKidney);
949 _values.push_back(RightRenalArtery);
950 _values.push_back(RightNephron);
951 _values.push_back(RightAfferentArteriole);
952 _values.push_back(RightGlomerularCapillaries);
953 _values.push_back(RightEfferentArteriole);
954 _values.push_back(RightPeritubularCapillaries);
955 _values.push_back(RightBowmansCapsules);
956 _values.push_back(RightTubules);
957 _values.push_back(RightRenalVein);
958 _values.push_back(Bone);
959 _values.push_back(Brain);
960 _values.push_back(Fat);
961 _values.push_back(Gut);
962 _values.push_back(Splanchnic);
963 _values.push_back(SmallIntestine);
964 _values.push_back(LargeIntestine);
965 _values.push_back(Liver);
966 _values.push_back(Spleen);
967 _values.push_back(Skin);
968 _values.push_back(Muscle);
969 _values.push_back(LeftArm);
970 _values.push_back(LeftLeg);
971 _values.push_back(RightArm);
972 _values.push_back(RightLeg);
977 static bool HasValue(
const std::string& v)
979 return std::find(_values.begin(), _values.end(), v) != _values.end();
981 static void AddValue(
const std::string& v)
986 _values.push_back(v);
990 static std::vector<std::string> _values;
997 DEFINE_STATIC_STRING(VenaCavaToRightHeart);
998 DEFINE_STATIC_STRING(RightHeartToLeftPulmonaryArteries);
999 DEFINE_STATIC_STRING(LeftPulmonaryArteriesToCapillaries);
1000 DEFINE_STATIC_STRING(LeftPulmonaryArteriesToVeins);
1001 DEFINE_STATIC_STRING(LeftPulmonaryCapillariesToVeins);
1002 DEFINE_STATIC_STRING(LeftPulmonaryVeinsLeak);
1003 DEFINE_STATIC_STRING(LeftPulmonaryVeinsToLeftHeart);
1004 DEFINE_STATIC_STRING(RightHeartToRightPulmonaryArteries);
1005 DEFINE_STATIC_STRING(RightPulmonaryArteriesToCapillaries);
1006 DEFINE_STATIC_STRING(RightPulmonaryArteriesToVeins);
1007 DEFINE_STATIC_STRING(RightPulmonaryCapillariesToVeins);
1008 DEFINE_STATIC_STRING(RightPulmonaryVeinsLeak);
1009 DEFINE_STATIC_STRING(RightPulmonaryVeinsToLeftHeart);
1010 DEFINE_STATIC_STRING(LeftHeartToAorta);
1012 DEFINE_STATIC_STRING(AortaToBone);
1013 DEFINE_STATIC_STRING(BoneToVenaCava);
1015 DEFINE_STATIC_STRING(AortaToBrain);
1016 DEFINE_STATIC_STRING(BrainToVenaCava);
1018 DEFINE_STATIC_STRING(AortaToFat);
1019 DEFINE_STATIC_STRING(FatToVenaCava);
1021 DEFINE_STATIC_STRING(AortaToLargeIntestine);
1022 DEFINE_STATIC_STRING(LargeIntestineToLiver);
1024 DEFINE_STATIC_STRING(AortaToLeftArm);
1025 DEFINE_STATIC_STRING(LeftArmToVenaCava);
1027 DEFINE_STATIC_STRING(AortaToLeftKidney);
1028 DEFINE_STATIC_STRING(LeftKidneyToVenaCava);
1030 DEFINE_STATIC_STRING(AortaToLeftLeg);
1031 DEFINE_STATIC_STRING(LeftLegToVenaCava);
1033 DEFINE_STATIC_STRING(AortaToLiver);
1034 DEFINE_STATIC_STRING(LiverToVenaCava);
1036 DEFINE_STATIC_STRING(AortaToMuscle);
1037 DEFINE_STATIC_STRING(MuscleToVenaCava);
1039 DEFINE_STATIC_STRING(AortaToMyocardium);
1040 DEFINE_STATIC_STRING(MyocardiumToVenaCava);
1042 DEFINE_STATIC_STRING(AortaToRightArm);
1043 DEFINE_STATIC_STRING(RightArmToVenaCava);
1045 DEFINE_STATIC_STRING(AortaToRightKidney);
1046 DEFINE_STATIC_STRING(RightKidneyToVenaCava);
1048 DEFINE_STATIC_STRING(AortaToRightLeg);
1049 DEFINE_STATIC_STRING(RightLegToVenaCava);
1051 DEFINE_STATIC_STRING(AortaToSkin);
1052 DEFINE_STATIC_STRING(SkinToVenaCava);
1054 DEFINE_STATIC_STRING(AortaToSmallIntestine);
1055 DEFINE_STATIC_STRING(SmallIntestineToLiver);
1057 DEFINE_STATIC_STRING(AortaToSplanchnic);
1058 DEFINE_STATIC_STRING(SplanchnicToLiver);
1060 DEFINE_STATIC_STRING(AortaToSpleen);
1061 DEFINE_STATIC_STRING(SpleenToLiver);
1064 DEFINE_STATIC_STRING(VenaCavaIV);
1067 DEFINE_STATIC_STRING(BoneVascularToTissue);
1068 DEFINE_STATIC_STRING(BrainVascularToTissue);
1069 DEFINE_STATIC_STRING(FatVascularToTissue);
1070 DEFINE_STATIC_STRING(SmallIntestineVascularToTissue);
1071 DEFINE_STATIC_STRING(LargeIntestineVascularToTissue);
1072 DEFINE_STATIC_STRING(SplanchnicVascularToTissue);
1073 DEFINE_STATIC_STRING(LeftKidneyVascularToTissue);
1074 DEFINE_STATIC_STRING(LeftLungVascularToTissue);
1075 DEFINE_STATIC_STRING(LiverVascularToTissue);
1076 DEFINE_STATIC_STRING(MuscleVascularToTissue);
1077 DEFINE_STATIC_STRING(MyocardiumVascularToTissue);
1078 DEFINE_STATIC_STRING(RightKidneyVascularToTissue);
1079 DEFINE_STATIC_STRING(RightLungVascularToTissue);
1080 DEFINE_STATIC_STRING(SkinVascularToTissue);
1081 DEFINE_STATIC_STRING(SpleenVascularToTissue);
1085 DEFINE_STATIC_STRING(LeftRenalArteryToAfferentArteriole);
1086 DEFINE_STATIC_STRING(LeftAfferentArterioleToGlomerularCapillaries);
1087 DEFINE_STATIC_STRING(LeftGlomerularCapillariesToEfferentArteriole);
1088 DEFINE_STATIC_STRING(LeftGlomerularCapillariesToBowmansCapsules);
1089 DEFINE_STATIC_STRING(LeftBowmansCapsulesToTubules);
1090 DEFINE_STATIC_STRING(LeftTubulesToPeritubularCapillaries);
1091 DEFINE_STATIC_STRING(LeftEfferentArterioleToPeritubularCapillaries);
1092 DEFINE_STATIC_STRING(LeftPeritubularCapillariesToRenalVein);
1096 DEFINE_STATIC_STRING(RightRenalArteryToAfferentArteriole);
1097 DEFINE_STATIC_STRING(RightAfferentArterioleToGlomerularCapillaries);
1098 DEFINE_STATIC_STRING(RightGlomerularCapillariesToEfferentArteriole);
1099 DEFINE_STATIC_STRING(RightGlomerularCapillariesToBowmansCapsules);
1100 DEFINE_STATIC_STRING(RightBowmansCapsulesToTubules);
1101 DEFINE_STATIC_STRING(RightTubulesToPeritubularCapillaries);
1102 DEFINE_STATIC_STRING(RightEfferentArterioleToPeritubularCapillaries);
1103 DEFINE_STATIC_STRING(RightPeritubularCapillariesToRenalVein);
1106 static const std::vector<std::string>& GetValues()
1109 if (_values.empty())
1111 _values.push_back(VenaCavaToRightHeart);
1112 _values.push_back(RightHeartToLeftPulmonaryArteries);
1113 _values.push_back(LeftPulmonaryArteriesToCapillaries);
1114 _values.push_back(LeftPulmonaryArteriesToVeins);
1115 _values.push_back(LeftPulmonaryCapillariesToVeins);
1116 _values.push_back(LeftPulmonaryVeinsLeak);
1117 _values.push_back(LeftPulmonaryVeinsToLeftHeart);
1118 _values.push_back(RightHeartToRightPulmonaryArteries);
1119 _values.push_back(RightPulmonaryArteriesToCapillaries);
1120 _values.push_back(RightPulmonaryArteriesToVeins);
1121 _values.push_back(RightPulmonaryCapillariesToVeins);
1122 _values.push_back(RightPulmonaryVeinsLeak);
1123 _values.push_back(RightPulmonaryVeinsToLeftHeart);
1124 _values.push_back(LeftHeartToAorta);
1125 _values.push_back(AortaToBone);
1126 _values.push_back(BoneToVenaCava);
1127 _values.push_back(AortaToBrain);
1128 _values.push_back(BrainToVenaCava);
1129 _values.push_back(AortaToFat);
1130 _values.push_back(FatToVenaCava);
1131 _values.push_back(AortaToLargeIntestine);
1132 _values.push_back(LargeIntestineToLiver);
1133 _values.push_back(AortaToLeftArm);
1134 _values.push_back(LeftArmToVenaCava);
1135 _values.push_back(AortaToLeftKidney);
1136 _values.push_back(LeftKidneyToVenaCava);
1137 _values.push_back(AortaToLeftLeg);
1138 _values.push_back(LeftLegToVenaCava);
1139 _values.push_back(AortaToLiver);
1140 _values.push_back(LiverToVenaCava);
1141 _values.push_back(AortaToMuscle);
1142 _values.push_back(MuscleToVenaCava);
1143 _values.push_back(AortaToMyocardium);
1144 _values.push_back(MyocardiumToVenaCava);
1145 _values.push_back(AortaToRightArm);
1146 _values.push_back(RightArmToVenaCava);
1147 _values.push_back(AortaToRightKidney);
1148 _values.push_back(RightKidneyToVenaCava);
1149 _values.push_back(AortaToRightLeg);
1150 _values.push_back(RightLegToVenaCava);
1151 _values.push_back(AortaToSkin);
1152 _values.push_back(SkinToVenaCava);
1153 _values.push_back(AortaToSmallIntestine);
1154 _values.push_back(SmallIntestineToLiver);
1155 _values.push_back(AortaToSplanchnic);
1156 _values.push_back(SplanchnicToLiver);
1157 _values.push_back(AortaToSpleen);
1158 _values.push_back(SpleenToLiver);
1160 _values.push_back(BoneVascularToTissue);
1161 _values.push_back(BrainVascularToTissue);
1162 _values.push_back(FatVascularToTissue);
1163 _values.push_back(SmallIntestineVascularToTissue);
1164 _values.push_back(LargeIntestineVascularToTissue);
1165 _values.push_back(SplanchnicVascularToTissue);
1166 _values.push_back(LeftKidneyVascularToTissue);
1167 _values.push_back(LeftLungVascularToTissue);
1168 _values.push_back(LiverVascularToTissue);
1169 _values.push_back(MuscleVascularToTissue);
1170 _values.push_back(MyocardiumVascularToTissue);
1171 _values.push_back(RightKidneyVascularToTissue);
1172 _values.push_back(RightLungVascularToTissue);
1173 _values.push_back(SkinVascularToTissue);
1174 _values.push_back(SpleenVascularToTissue);
1176 _values.push_back(LeftRenalArteryToAfferentArteriole);
1177 _values.push_back(LeftAfferentArterioleToGlomerularCapillaries);
1178 _values.push_back(LeftGlomerularCapillariesToEfferentArteriole);
1179 _values.push_back(LeftGlomerularCapillariesToBowmansCapsules);
1180 _values.push_back(LeftBowmansCapsulesToTubules);
1181 _values.push_back(LeftTubulesToPeritubularCapillaries);
1182 _values.push_back(LeftEfferentArterioleToPeritubularCapillaries);
1183 _values.push_back(LeftPeritubularCapillariesToRenalVein);
1184 _values.push_back(RightRenalArteryToAfferentArteriole);
1185 _values.push_back(RightAfferentArterioleToGlomerularCapillaries);
1186 _values.push_back(RightGlomerularCapillariesToEfferentArteriole);
1187 _values.push_back(RightGlomerularCapillariesToBowmansCapsules);
1188 _values.push_back(RightBowmansCapsulesToTubules);
1189 _values.push_back(RightTubulesToPeritubularCapillaries);
1190 _values.push_back(RightEfferentArterioleToPeritubularCapillaries);
1191 _values.push_back(RightPeritubularCapillariesToRenalVein);
1195 static bool HasValue(
const std::string& v)
1197 return std::find(_values.begin(), _values.end(), v) != _values.end();
1199 static void AddValue(
const std::string& v)
1204 _values.push_back(v);
1208 static std::vector<std::string> _values;
1211 class ExpandedLungsVascularCompartment
1214 DEFINE_STATIC_STRING(RightSuperiorLobeApicalPulmonaryCapillaries);
1215 DEFINE_STATIC_STRING(RightSuperiorLobePosteriorPulmonaryCapillaries);
1216 DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorPulmonaryCapillaries);
1217 DEFINE_STATIC_STRING(RightMiddleLobeLateralPulmonaryCapillaries);
1218 DEFINE_STATIC_STRING(RightMiddleLobeMedialPulmonaryCapillaries);
1219 DEFINE_STATIC_STRING(RightInferiorLobeSuperiorPulmonaryCapillaries);
1220 DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalPulmonaryCapillaries);
1221 DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalPulmonaryCapillaries);
1222 DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalPulmonaryCapillaries);
1223 DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalPulmonaryCapillaries);
1225 DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalPulmonaryCapillaries);
1226 DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalPulmonaryCapillaries);
1227 DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalPulmonaryCapillaries);
1228 DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorPulmonaryCapillaries);
1229 DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaPulmonaryCapillaries);
1230 DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries);
1231 DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorPulmonaryCapillaries);
1232 DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorPulmonaryCapillaries);
1235 static const std::vector<std::string>& GetValues()
1238 if (_values.empty())
1240 _values.push_back(RightSuperiorLobeApicalPulmonaryCapillaries);
1241 _values.push_back(RightSuperiorLobePosteriorPulmonaryCapillaries);
1242 _values.push_back(RightSuperiorLobeAnteriorPulmonaryCapillaries);
1243 _values.push_back(RightMiddleLobeLateralPulmonaryCapillaries);
1244 _values.push_back(RightMiddleLobeMedialPulmonaryCapillaries);
1245 _values.push_back(RightInferiorLobeSuperiorPulmonaryCapillaries);
1246 _values.push_back(RightInferiorLobeMedialBasalPulmonaryCapillaries);
1247 _values.push_back(RightInferiorLobeAnteriorBasalPulmonaryCapillaries);
1248 _values.push_back(RightInferiorLobeLateralBasalPulmonaryCapillaries);
1249 _values.push_back(RightInferiorLobePosteriorBasalPulmonaryCapillaries);
1251 _values.push_back(LeftInferiorLobePosteriorBasalPulmonaryCapillaries);
1252 _values.push_back(LeftInferiorLobeLateralBasalPulmonaryCapillaries);
1253 _values.push_back(LeftInferiorLobeAnteromedialBasalPulmonaryCapillaries);
1254 _values.push_back(LeftInferiorLobeSuperiorPulmonaryCapillaries);
1255 _values.push_back(LeftSuperiorLobeInferiorLingulaPulmonaryCapillaries);
1256 _values.push_back(LeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries);
1257 _values.push_back(LeftSuperiorLobeAnteriorPulmonaryCapillaries);
1258 _values.push_back(LeftSuperiorLobeApicoposteriorPulmonaryCapillaries);
1262 static bool HasValue(
const std::string& v)
1264 return std::find(_values.begin(), _values.end(), v) != _values.end();
1266 static void AddValue(
const std::string& v)
1271 _values.push_back(v);
1275 static std::vector<std::string> _values;
1278 class ExpandedLungsVascularLink
1281 DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightSuperiorLobeApicalPulmonaryCapillaries);
1282 DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightSuperiorLobePosteriorPulmonaryCapillaries);
1283 DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightSuperiorLobeAnteriorPulmonaryCapillaries);
1284 DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightMiddleLobeLateralPulmonaryCapillaries);
1285 DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightMiddleLobeMedialPulmonaryCapillaries);
1286 DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightInferiorLobeSuperiorPulmonaryCapillaries);
1287 DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightInferiorLobeMedialBasalPulmonaryCapillaries);
1288 DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightInferiorLobeAnteriorBasalPulmonaryCapillaries);
1289 DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightInferiorLobeLateralBasalPulmonaryCapillaries);
1290 DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightInferiorLobePosteriorBasalPulmonaryCapillaries);
1292 DEFINE_STATIC_STRING(LeftPulmonaryArteriesToLeftInferiorLobePosteriorBasalPulmonaryCapillaries);
1293 DEFINE_STATIC_STRING(LeftPulmonaryArteriesToLeftInferiorLobeLateralBasalPulmonaryCapillaries);
1294 DEFINE_STATIC_STRING(LeftPulmonaryArteriesToLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries);
1295 DEFINE_STATIC_STRING(LeftPulmonaryArteriesToLeftInferiorLobeSuperiorPulmonaryCapillaries);
1296 DEFINE_STATIC_STRING(LeftPulmonaryArteriesToLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries);
1297 DEFINE_STATIC_STRING(LeftPulmonaryArteriesToLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries);
1298 DEFINE_STATIC_STRING(LeftPulmonaryArteriesToLeftSuperiorLobeAnteriorPulmonaryCapillaries);
1299 DEFINE_STATIC_STRING(LeftPulmonaryArteriesToLeftSuperiorLobeApicoposteriorPulmonaryCapillaries);
1301 DEFINE_STATIC_STRING(RightSuperiorLobeApicalPulmonaryCapillariesToRightPulmonaryVeins);
1302 DEFINE_STATIC_STRING(RightSuperiorLobePosteriorPulmonaryCapillariesToRightPulmonaryVeins);
1303 DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorPulmonaryCapillariesToRightPulmonaryVeins);
1304 DEFINE_STATIC_STRING(RightMiddleLobeLateralPulmonaryCapillariesToRightPulmonaryVeins);
1305 DEFINE_STATIC_STRING(RightMiddleLobeMedialPulmonaryCapillariesToRightPulmonaryVeins);
1306 DEFINE_STATIC_STRING(RightInferiorLobeSuperiorPulmonaryCapillariesToRightPulmonaryVeins);
1307 DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalPulmonaryCapillariesToRightPulmonaryVeins);
1308 DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalPulmonaryCapillariesToRightPulmonaryVeins);
1309 DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalPulmonaryCapillariesToRightPulmonaryVeins);
1310 DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalPulmonaryCapillariesToRightPulmonaryVeins);
1312 DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalPulmonaryCapillariesToLeftPulmonaryVeins);
1313 DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalPulmonaryCapillariesToLeftPulmonaryVeins);
1314 DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToLeftPulmonaryVeins);
1315 DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorPulmonaryCapillariesToLeftPulmonaryVeins);
1316 DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins);
1317 DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins);
1318 DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorPulmonaryCapillariesToLeftPulmonaryVeins);
1319 DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorPulmonaryCapillariesToLeftPulmonaryVeins);
1321 DEFINE_STATIC_STRING(RightSuperiorLobeApicalShunt);
1322 DEFINE_STATIC_STRING(RightSuperiorLobePosteriorShunt);
1323 DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorShunt);
1324 DEFINE_STATIC_STRING(RightMiddleLobeLateralShunt);
1325 DEFINE_STATIC_STRING(RightMiddleLobeMedialShunt);
1326 DEFINE_STATIC_STRING(RightInferiorLobeSuperiorShunt);
1327 DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalShunt);
1328 DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalShunt);
1329 DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalShunt);
1330 DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalShunt);
1332 DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalShunt);
1333 DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalShunt);
1334 DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalShunt);
1335 DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorShunt);
1336 DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaShunt);
1337 DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaShunt);
1338 DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorShunt);
1339 DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorShunt);
1342 static const std::vector<std::string>& GetValues()
1345 if (_values.empty())
1347 _values.push_back(RightPulmonaryArteriesToRightSuperiorLobeApicalPulmonaryCapillaries);
1348 _values.push_back(RightPulmonaryArteriesToRightSuperiorLobePosteriorPulmonaryCapillaries);
1349 _values.push_back(RightPulmonaryArteriesToRightSuperiorLobeAnteriorPulmonaryCapillaries);
1350 _values.push_back(RightPulmonaryArteriesToRightMiddleLobeLateralPulmonaryCapillaries);
1351 _values.push_back(RightPulmonaryArteriesToRightMiddleLobeMedialPulmonaryCapillaries);
1352 _values.push_back(RightPulmonaryArteriesToRightInferiorLobeSuperiorPulmonaryCapillaries);
1353 _values.push_back(RightPulmonaryArteriesToRightInferiorLobeMedialBasalPulmonaryCapillaries);
1354 _values.push_back(RightPulmonaryArteriesToRightInferiorLobeAnteriorBasalPulmonaryCapillaries);
1355 _values.push_back(RightPulmonaryArteriesToRightInferiorLobeLateralBasalPulmonaryCapillaries);
1356 _values.push_back(RightPulmonaryArteriesToRightInferiorLobePosteriorBasalPulmonaryCapillaries);
1358 _values.push_back(LeftPulmonaryArteriesToLeftInferiorLobePosteriorBasalPulmonaryCapillaries);
1359 _values.push_back(LeftPulmonaryArteriesToLeftInferiorLobeLateralBasalPulmonaryCapillaries);
1360 _values.push_back(LeftPulmonaryArteriesToLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries);
1361 _values.push_back(LeftPulmonaryArteriesToLeftInferiorLobeSuperiorPulmonaryCapillaries);
1362 _values.push_back(LeftPulmonaryArteriesToLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries);
1363 _values.push_back(LeftPulmonaryArteriesToLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries);
1364 _values.push_back(LeftPulmonaryArteriesToLeftSuperiorLobeAnteriorPulmonaryCapillaries);
1365 _values.push_back(LeftPulmonaryArteriesToLeftSuperiorLobeApicoposteriorPulmonaryCapillaries);
1367 _values.push_back(RightSuperiorLobeApicalPulmonaryCapillariesToRightPulmonaryVeins);
1368 _values.push_back(RightSuperiorLobePosteriorPulmonaryCapillariesToRightPulmonaryVeins);
1369 _values.push_back(RightSuperiorLobeAnteriorPulmonaryCapillariesToRightPulmonaryVeins);
1370 _values.push_back(RightMiddleLobeLateralPulmonaryCapillariesToRightPulmonaryVeins);
1371 _values.push_back(RightMiddleLobeMedialPulmonaryCapillariesToRightPulmonaryVeins);
1372 _values.push_back(RightInferiorLobeSuperiorPulmonaryCapillariesToRightPulmonaryVeins);
1373 _values.push_back(RightInferiorLobeMedialBasalPulmonaryCapillariesToRightPulmonaryVeins);
1374 _values.push_back(RightInferiorLobeAnteriorBasalPulmonaryCapillariesToRightPulmonaryVeins);
1375 _values.push_back(RightInferiorLobeLateralBasalPulmonaryCapillariesToRightPulmonaryVeins);
1376 _values.push_back(RightInferiorLobePosteriorBasalPulmonaryCapillariesToRightPulmonaryVeins);
1378 _values.push_back(LeftInferiorLobePosteriorBasalPulmonaryCapillariesToLeftPulmonaryVeins);
1379 _values.push_back(LeftInferiorLobeLateralBasalPulmonaryCapillariesToLeftPulmonaryVeins);
1380 _values.push_back(LeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToLeftPulmonaryVeins);
1381 _values.push_back(LeftInferiorLobeSuperiorPulmonaryCapillariesToLeftPulmonaryVeins);
1382 _values.push_back(LeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins);
1383 _values.push_back(LeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins);
1384 _values.push_back(LeftSuperiorLobeAnteriorPulmonaryCapillariesToLeftPulmonaryVeins);
1385 _values.push_back(LeftSuperiorLobeApicoposteriorPulmonaryCapillariesToLeftPulmonaryVeins);
1387 _values.push_back(RightSuperiorLobeApicalShunt);
1388 _values.push_back(RightSuperiorLobePosteriorShunt);
1389 _values.push_back(RightSuperiorLobeAnteriorShunt);
1390 _values.push_back(RightMiddleLobeLateralShunt);
1391 _values.push_back(RightMiddleLobeMedialShunt);
1392 _values.push_back(RightInferiorLobeSuperiorShunt);
1393 _values.push_back(RightInferiorLobeMedialBasalShunt);
1394 _values.push_back(RightInferiorLobeAnteriorBasalShunt);
1395 _values.push_back(RightInferiorLobeLateralBasalShunt);
1396 _values.push_back(RightInferiorLobePosteriorBasalShunt);
1398 _values.push_back(LeftInferiorLobePosteriorBasalShunt);
1399 _values.push_back(LeftInferiorLobeLateralBasalShunt);
1400 _values.push_back(LeftInferiorLobeAnteromedialBasalShunt);
1401 _values.push_back(LeftInferiorLobeSuperiorShunt);
1402 _values.push_back(LeftSuperiorLobeInferiorLingulaShunt);
1403 _values.push_back(LeftSuperiorLobeSuperiorLingulaShunt);
1404 _values.push_back(LeftSuperiorLobeAnteriorShunt);
1405 _values.push_back(LeftSuperiorLobeApicoposteriorShunt);
1409 static bool HasValue(
const std::string& v)
1411 return std::find(_values.begin(), _values.end(), v) != _values.end();
1413 static void AddValue(
const std::string& v)
1418 _values.push_back(v);
1422 static std::vector<std::string> _values;
1425 class ComputationalLifeVascularCompartment
1428 DEFINE_STATIC_STRING(ArterialBuffer);
1429 DEFINE_STATIC_STRING(VenousBuffer);
1431 DEFINE_STATIC_STRING_EX(Head, HeadVasculature);
1432 DEFINE_STATIC_STRING_EX(Extracranial, ExtracranialVasculature);
1433 DEFINE_STATIC_STRING_EX(Intracranial, IntracranialVasculature);
1435 DEFINE_STATIC_STRING_EX(Gut1, Gut1Vasculature);
1436 DEFINE_STATIC_STRING_EX(LeftArmArterioles, LeftArmArteriolesVasculature);
1437 DEFINE_STATIC_STRING_EX(LeftArmBone, LeftArmBoneVasculature);
1438 DEFINE_STATIC_STRING_EX(LeftArmFat, LeftArmFatVasculature);
1439 DEFINE_STATIC_STRING(LeftArmMicrovasculature);
1440 DEFINE_STATIC_STRING_EX(LeftArmMuscle, LeftArmMuscleVasculature);
1441 DEFINE_STATIC_STRING_EX(LeftArmSkin, LeftArmSkinVasculature);
1442 DEFINE_STATIC_STRING_EX(LeftArmVenules, LeftArmVenulesVasculature);
1443 DEFINE_STATIC_STRING_EX(LeftLegArterioles, LeftLegArteriolesVasculature);
1444 DEFINE_STATIC_STRING_EX(LeftLegBone, LeftLegBoneVasculature);
1445 DEFINE_STATIC_STRING_EX(LeftLegFat, LeftLegFatVasculature);
1446 DEFINE_STATIC_STRING(LeftLegMicrovasculature);
1447 DEFINE_STATIC_STRING_EX(LeftLegMuscle, LeftLegMuscleVasculature);
1448 DEFINE_STATIC_STRING_EX(LeftLegSkin, LeftLegSkinVasculature);
1449 DEFINE_STATIC_STRING_EX(LeftLegVenules, LeftLegVenulesVasculature);
1450 DEFINE_STATIC_STRING_EX(RightArmArterioles, RightArmArteriolesVasculature);
1451 DEFINE_STATIC_STRING_EX(RightArmBone, RightArmBoneVasculature);
1452 DEFINE_STATIC_STRING_EX(RightArmFat, RightArmFatVasculature);
1453 DEFINE_STATIC_STRING(RightArmMicrovasculature);
1454 DEFINE_STATIC_STRING_EX(RightArmMuscle, RightArmMuscleVasculature);
1455 DEFINE_STATIC_STRING_EX(RightArmSkin, RightArmSkinVasculature);
1456 DEFINE_STATIC_STRING_EX(RightArmVenules, RightArmVenulesVasculature);
1457 DEFINE_STATIC_STRING_EX(RightLegArterioles, RightLegArteriolesVasculature);
1458 DEFINE_STATIC_STRING_EX(RightLegBone, RightLegBoneVasculature);
1459 DEFINE_STATIC_STRING_EX(RightLegFat, RightLegFatVasculature);
1460 DEFINE_STATIC_STRING(RightLegMicrovasculature);
1461 DEFINE_STATIC_STRING_EX(RightLegMuscle, RightLegMuscleVasculature);
1462 DEFINE_STATIC_STRING_EX(RightLegSkin, RightLegSkinVasculature);
1463 DEFINE_STATIC_STRING_EX(RightLegVenules, RightLegVenulesVasculature);
1464 DEFINE_STATIC_STRING_EX(Torso, TorsoVasculature);
1465 DEFINE_STATIC_STRING_EX(TorsoArterioles, TorsoArteriolesVasculature);
1466 DEFINE_STATIC_STRING_EX(TorsoBone, TorsoBoneVasculature);
1467 DEFINE_STATIC_STRING_EX(TorsoFat, TorsoFatVasculature);
1468 DEFINE_STATIC_STRING(TorsoMicrovasculature);
1469 DEFINE_STATIC_STRING_EX(TorsoMuscle, TorsoMuscleVasculature);
1470 DEFINE_STATIC_STRING_EX(TorsoSkin, TorsoSkinVasculature);
1471 DEFINE_STATIC_STRING_EX(TorsoVenules, TorsoVenulesVasculature);
1474 static const std::vector<std::string>& GetValues()
1477 if (_values.empty())
1479 _values.push_back(ArterialBuffer);
1480 _values.push_back(VenousBuffer);
1481 _values.push_back(Head);
1482 _values.push_back(Extracranial);
1483 _values.push_back(Intracranial);
1484 _values.push_back(Gut1);
1485 _values.push_back(LeftArmArterioles);
1486 _values.push_back(LeftArmFat);
1487 _values.push_back(LeftArmMuscle);
1488 _values.push_back(LeftArmSkin);
1489 _values.push_back(LeftArmBone);
1490 _values.push_back(LeftArmMicrovasculature);
1491 _values.push_back(LeftArmVenules);
1492 _values.push_back(LeftLegArterioles);
1493 _values.push_back(LeftLegFat);
1494 _values.push_back(LeftLegMuscle);
1495 _values.push_back(LeftLegSkin);
1496 _values.push_back(LeftLegBone);
1497 _values.push_back(LeftLegMicrovasculature);
1498 _values.push_back(LeftLegVenules);
1499 _values.push_back(RightArmArterioles);
1500 _values.push_back(RightArmFat);
1501 _values.push_back(RightArmMuscle);
1502 _values.push_back(RightArmSkin);
1503 _values.push_back(RightArmBone);
1504 _values.push_back(RightArmMicrovasculature);
1505 _values.push_back(RightArmVenules);
1506 _values.push_back(RightLegArterioles);
1507 _values.push_back(RightLegFat);
1508 _values.push_back(RightLegMuscle);
1509 _values.push_back(RightLegSkin);
1510 _values.push_back(RightLegBone);
1511 _values.push_back(RightLegMicrovasculature);
1512 _values.push_back(RightLegVenules);
1513 _values.push_back(Torso);
1514 _values.push_back(TorsoArterioles);
1515 _values.push_back(TorsoBone);
1516 _values.push_back(TorsoFat);
1517 _values.push_back(TorsoMicrovasculature);
1518 _values.push_back(TorsoMuscle);
1519 _values.push_back(TorsoSkin);
1520 _values.push_back(TorsoVenules);
1524 static bool HasValue(
const std::string& v)
1526 return std::find(_values.begin(), _values.end(), v) != _values.end();
1528 static void AddValue(
const std::string& v)
1533 _values.push_back(v);
1537 static std::vector<std::string> _values;
1540 class ComputationalLifeVascularLink
1544 DEFINE_STATIC_STRING(VenousBufferToVenaCava);
1545 DEFINE_STATIC_STRING(AortaToArterialBuffer);
1547 DEFINE_STATIC_STRING(AortaToIntracranial);
1548 DEFINE_STATIC_STRING(IntracranialToVenaCava);
1549 DEFINE_STATIC_STRING(AortaToExtracranial);
1550 DEFINE_STATIC_STRING(ExtracranialToVenaCava);
1552 DEFINE_STATIC_STRING(AortaToLeftArmArterioles);
1553 DEFINE_STATIC_STRING(LeftArmArteriolesToLeftArmBone);
1554 DEFINE_STATIC_STRING(LeftArmArteriolesToLeftArmFat);
1555 DEFINE_STATIC_STRING(LeftArmArteriolesToLeftArmMicrovasculature);
1556 DEFINE_STATIC_STRING(LeftArmArteriolesToLeftArmMuscle);
1557 DEFINE_STATIC_STRING(LeftArmArteriolesToLeftArmSkin);
1559 DEFINE_STATIC_STRING(LeftArmBoneToLeftArmVenules);
1560 DEFINE_STATIC_STRING(LeftArmFatToLeftArmVenules);
1561 DEFINE_STATIC_STRING(LeftArmMicrovasculatureToLeftArmVenules);
1562 DEFINE_STATIC_STRING(LeftArmMuscleToLeftArmVenules);
1563 DEFINE_STATIC_STRING(LeftArmSkinToLeftArmVenules);
1564 DEFINE_STATIC_STRING(LeftArmVenulesToVenaCava);
1567 DEFINE_STATIC_STRING(AortaToLeftLegArterioles);
1568 DEFINE_STATIC_STRING(LeftLegArteriolesToLeftLegBone);
1569 DEFINE_STATIC_STRING(LeftLegArteriolesToLeftLegFat);
1570 DEFINE_STATIC_STRING(LeftLegArteriolesToLeftLegMicrovasculature);
1571 DEFINE_STATIC_STRING(LeftLegArteriolesToLeftLegMuscle);
1572 DEFINE_STATIC_STRING(LeftLegArteriolesToLeftLegSkin);
1574 DEFINE_STATIC_STRING(LeftLegBoneToLeftLegVenules);
1575 DEFINE_STATIC_STRING(LeftLegFatToLeftLegVenules);
1576 DEFINE_STATIC_STRING(LeftLegMicrovasculatureToLeftLegVenules);
1577 DEFINE_STATIC_STRING(LeftLegMuscleToLeftLegVenules);
1578 DEFINE_STATIC_STRING(LeftLegSkinToLeftLegVenules);
1579 DEFINE_STATIC_STRING(LeftLegVenulesToVenaCava);
1582 DEFINE_STATIC_STRING(AortaToGut);
1585 DEFINE_STATIC_STRING(AortaToRightArmArterioles);
1586 DEFINE_STATIC_STRING(RightArmArteriolesToRightArmBone);
1587 DEFINE_STATIC_STRING(RightArmArteriolesToRightArmFat);
1588 DEFINE_STATIC_STRING(RightArmArteriolesToRightArmMicrovasculature);
1589 DEFINE_STATIC_STRING(RightArmArteriolesToRightArmMuscle);
1590 DEFINE_STATIC_STRING(RightArmArteriolesToRightArmSkin);
1592 DEFINE_STATIC_STRING(RightArmBoneToRightArmVenules);
1593 DEFINE_STATIC_STRING(RightArmFatToRightArmVenules);
1594 DEFINE_STATIC_STRING(RightArmMicrovasculatureToRightArmVenules);
1595 DEFINE_STATIC_STRING(RightArmMuscleToRightArmVenules);
1596 DEFINE_STATIC_STRING(RightArmSkinToRightArmVenules);
1597 DEFINE_STATIC_STRING(RightArmVenulesToVenaCava);
1600 DEFINE_STATIC_STRING(AortaToRightLegArterioles);
1601 DEFINE_STATIC_STRING(RightLegArteriolesToRightLegBone);
1602 DEFINE_STATIC_STRING(RightLegArteriolesToRightLegFat);
1603 DEFINE_STATIC_STRING(RightLegArteriolesToRightLegMicrovasculature);
1604 DEFINE_STATIC_STRING(RightLegArteriolesToRightLegMuscle);
1605 DEFINE_STATIC_STRING(RightLegArteriolesToRightLegSkin);
1607 DEFINE_STATIC_STRING(RightLegBoneToRightLegVenules);
1608 DEFINE_STATIC_STRING(RightLegFatToRightLegVenules);
1609 DEFINE_STATIC_STRING(RightLegMicrovasculatureToRightLegVenules);
1610 DEFINE_STATIC_STRING(RightLegMuscleToRightLegVenules);
1611 DEFINE_STATIC_STRING(RightLegSkinToRightLegVenules);
1612 DEFINE_STATIC_STRING(RightLegVenulesToVenaCava);
1615 DEFINE_STATIC_STRING(AortaToTorsoArterioles);
1616 DEFINE_STATIC_STRING(TorsoArteriolesToTorsoBone);
1617 DEFINE_STATIC_STRING(TorsoArteriolesToTorsoFat);
1618 DEFINE_STATIC_STRING(TorsoArteriolesToTorsoMicrovasculature);
1619 DEFINE_STATIC_STRING(TorsoArteriolesToTorsoMuscle);
1620 DEFINE_STATIC_STRING(TorsoArteriolesToTorsoSkin);
1622 DEFINE_STATIC_STRING(TorsoSkinToTorsoVenules);
1623 DEFINE_STATIC_STRING(TorsoMuscleToTorsoVenules);
1624 DEFINE_STATIC_STRING(TorsoMicrovasculatureToTorsoVenules);
1625 DEFINE_STATIC_STRING(TorsoFatToTorsoVenules);
1626 DEFINE_STATIC_STRING(TorsoBoneToTorsoVenules);
1627 DEFINE_STATIC_STRING(TorsoVenulesToVenaCava);
1630 DEFINE_STATIC_STRING(TorsoBoneVascularToTissue);
1631 DEFINE_STATIC_STRING(LeftArmBoneVascularToTissue);
1632 DEFINE_STATIC_STRING(LeftLegBoneVascularToTissue);
1633 DEFINE_STATIC_STRING(RightArmBoneVascularToTissue);
1634 DEFINE_STATIC_STRING(RightLegBoneVascularToTissue);
1635 DEFINE_STATIC_STRING(BrainVascularToTissue);
1636 DEFINE_STATIC_STRING(TorsoFatVascularToTissue);
1637 DEFINE_STATIC_STRING(LeftArmFatVascularToTissue);
1638 DEFINE_STATIC_STRING(LeftLegFatVascularToTissue);
1639 DEFINE_STATIC_STRING(RightArmFatVascularToTissue);
1640 DEFINE_STATIC_STRING(RightLegFatVascularToTissue);
1641 DEFINE_STATIC_STRING(SmallIntestineVascularToTissue);
1642 DEFINE_STATIC_STRING(LargeIntestineVascularToTissue);
1643 DEFINE_STATIC_STRING(SplanchnicVascularToTissue);
1644 DEFINE_STATIC_STRING(LeftKidneyVascularToTissue);
1645 DEFINE_STATIC_STRING(LeftLungVascularToTissue);
1646 DEFINE_STATIC_STRING(LiverVascularToTissue);
1647 DEFINE_STATIC_STRING(TorsoMuscleVascularToTissue);
1648 DEFINE_STATIC_STRING(LeftArmMuscleVascularToTissue);
1649 DEFINE_STATIC_STRING(LeftLegMuscleVascularToTissue);
1650 DEFINE_STATIC_STRING(RightArmMuscleVascularToTissue);
1651 DEFINE_STATIC_STRING(RightLegMuscleVascularToTissue);
1652 DEFINE_STATIC_STRING(MyocardiumVascularToTissue);
1653 DEFINE_STATIC_STRING(RightKidneyVascularToTissue);
1654 DEFINE_STATIC_STRING(RightLungVascularToTissue);
1655 DEFINE_STATIC_STRING(TorsoSkinVascularToTissue);
1656 DEFINE_STATIC_STRING(LeftArmSkinVascularToTissue);
1657 DEFINE_STATIC_STRING(LeftLegSkinVascularToTissue);
1658 DEFINE_STATIC_STRING(RightArmSkinVascularToTissue);
1659 DEFINE_STATIC_STRING(RightLegSkinVascularToTissue);
1660 DEFINE_STATIC_STRING(SpleenVascularToTissue);
1662 static const std::vector<std::string>& GetValues()
1665 if (_values.empty())
1667 _values.push_back(AortaToIntracranial);
1668 _values.push_back(IntracranialToVenaCava);
1669 _values.push_back(AortaToExtracranial);
1670 _values.push_back(ExtracranialToVenaCava);
1672 _values.push_back(LeftArmArteriolesToLeftArmBone);
1673 _values.push_back(LeftArmArteriolesToLeftArmFat);
1674 _values.push_back(LeftArmArteriolesToLeftArmMicrovasculature);
1675 _values.push_back(LeftArmArteriolesToLeftArmMuscle);
1676 _values.push_back(LeftArmArteriolesToLeftArmSkin);
1678 _values.push_back(LeftLegArteriolesToLeftLegBone);
1679 _values.push_back(LeftLegArteriolesToLeftLegFat);
1680 _values.push_back(LeftLegArteriolesToLeftLegMicrovasculature);
1681 _values.push_back(LeftLegArteriolesToLeftLegMuscle);
1682 _values.push_back(LeftLegArteriolesToLeftLegSkin);
1684 _values.push_back(RightArmArteriolesToRightArmBone);
1685 _values.push_back(RightArmArteriolesToRightArmFat);
1686 _values.push_back(RightArmArteriolesToRightArmMicrovasculature);
1687 _values.push_back(RightArmArteriolesToRightArmMuscle);
1688 _values.push_back(RightArmArteriolesToRightArmSkin);
1690 _values.push_back(RightLegArteriolesToRightLegBone);
1691 _values.push_back(RightLegArteriolesToRightLegFat);
1692 _values.push_back(RightLegArteriolesToRightLegMicrovasculature);
1693 _values.push_back(RightLegArteriolesToRightLegMuscle);
1694 _values.push_back(RightLegArteriolesToRightLegSkin);
1696 _values.push_back(AortaToTorsoArterioles);
1697 _values.push_back(TorsoArteriolesToTorsoBone);
1698 _values.push_back(TorsoArteriolesToTorsoFat);
1699 _values.push_back(TorsoArteriolesToTorsoMicrovasculature);
1700 _values.push_back(TorsoArteriolesToTorsoMuscle);
1701 _values.push_back(TorsoArteriolesToTorsoSkin);
1703 _values.push_back(RightArmBoneToRightArmVenules);
1704 _values.push_back(RightArmFatToRightArmVenules);
1705 _values.push_back(RightArmMicrovasculatureToRightArmVenules);
1706 _values.push_back(RightArmMuscleToRightArmVenules);
1707 _values.push_back(RightArmSkinToRightArmVenules);
1708 _values.push_back(RightLegBoneToRightLegVenules);
1709 _values.push_back(RightLegFatToRightLegVenules);
1710 _values.push_back(RightLegMicrovasculatureToRightLegVenules);
1711 _values.push_back(RightLegMuscleToRightLegVenules);
1712 _values.push_back(RightLegSkinToRightLegVenules);
1713 _values.push_back(LeftArmBoneToLeftArmVenules);
1714 _values.push_back(LeftArmFatToLeftArmVenules);
1715 _values.push_back(LeftArmMicrovasculatureToLeftArmVenules);
1716 _values.push_back(LeftArmMuscleToLeftArmVenules);
1717 _values.push_back(LeftArmSkinToLeftArmVenules);
1718 _values.push_back(LeftLegBoneToLeftLegVenules);
1719 _values.push_back(LeftLegFatToLeftLegVenules);
1720 _values.push_back(LeftLegMicrovasculatureToLeftLegVenules);
1721 _values.push_back(LeftLegMuscleToLeftLegVenules);
1722 _values.push_back(LeftLegSkinToLeftLegVenules);
1723 _values.push_back(TorsoSkinToTorsoVenules);
1724 _values.push_back(TorsoMuscleToTorsoVenules);
1725 _values.push_back(TorsoMicrovasculatureToTorsoVenules);
1726 _values.push_back(TorsoFatToTorsoVenules);
1727 _values.push_back(TorsoBoneToTorsoVenules);
1728 _values.push_back(TorsoVenulesToVenaCava);
1731 _values.push_back(TorsoBoneVascularToTissue);
1732 _values.push_back(LeftArmBoneVascularToTissue);
1733 _values.push_back(LeftLegBoneVascularToTissue);
1734 _values.push_back(RightArmBoneVascularToTissue);
1735 _values.push_back(RightLegBoneVascularToTissue);
1736 _values.push_back(BrainVascularToTissue);
1737 _values.push_back(TorsoFatVascularToTissue);
1738 _values.push_back(LeftArmFatVascularToTissue);
1739 _values.push_back(LeftLegFatVascularToTissue);
1740 _values.push_back(RightArmFatVascularToTissue);
1741 _values.push_back(RightLegFatVascularToTissue);
1742 _values.push_back(SmallIntestineVascularToTissue);
1743 _values.push_back(LargeIntestineVascularToTissue);
1744 _values.push_back(SplanchnicVascularToTissue);
1745 _values.push_back(LeftKidneyVascularToTissue);
1746 _values.push_back(LeftLungVascularToTissue);
1747 _values.push_back(LiverVascularToTissue);
1748 _values.push_back(TorsoMuscleVascularToTissue);
1749 _values.push_back(LeftArmMuscleVascularToTissue);
1750 _values.push_back(LeftLegMuscleVascularToTissue);
1751 _values.push_back(RightArmMuscleVascularToTissue);
1752 _values.push_back(RightLegMuscleVascularToTissue);
1753 _values.push_back(MyocardiumVascularToTissue);
1754 _values.push_back(RightKidneyVascularToTissue);
1755 _values.push_back(RightLungVascularToTissue);
1756 _values.push_back(TorsoSkinVascularToTissue);
1757 _values.push_back(LeftArmSkinVascularToTissue);
1758 _values.push_back(LeftLegSkinVascularToTissue);
1759 _values.push_back(RightArmSkinVascularToTissue);
1760 _values.push_back(RightLegSkinVascularToTissue);
1761 _values.push_back(SpleenVascularToTissue);
1765 static bool HasValue(
const std::string& v)
1767 return std::find(_values.begin(), _values.end(), v) != _values.end();
1769 static void AddValue(
const std::string& v)
1774 _values.push_back(v);
1778 static std::vector<std::string> _values;
1781 class UrineCompartment
1784 DEFINE_STATIC_STRING(Ureters);
1785 DEFINE_STATIC_STRING(LeftUreter);
1786 DEFINE_STATIC_STRING(RightUreter);
1787 DEFINE_STATIC_STRING(Bladder);
1789 static const std::vector<std::string>& GetValues()
1792 if (_values.empty())
1794 _values.push_back(Ureters);
1795 _values.push_back(LeftUreter);
1796 _values.push_back(RightUreter);
1797 _values.push_back(Bladder);
1801 static bool HasValue(
const std::string& v)
1803 return std::find(_values.begin(), _values.end(), v) != _values.end();
1805 static void AddValue(
const std::string& v)
1810 _values.push_back(v);
1814 static std::vector<std::string> _values;
1820 DEFINE_STATIC_STRING(LeftTubulesToUreter);
1821 DEFINE_STATIC_STRING(LeftUreterToBladder);
1823 DEFINE_STATIC_STRING(RightTubulesToUreter);
1824 DEFINE_STATIC_STRING(RightUreterToBladder);
1826 DEFINE_STATIC_STRING(BladderToGround);
1827 DEFINE_STATIC_STRING(BladderToGroundSource);
1829 static const std::vector<std::string>& GetValues()
1832 if (_values.empty())
1834 _values.push_back(LeftTubulesToUreter);
1835 _values.push_back(LeftUreterToBladder);
1836 _values.push_back(RightTubulesToUreter);
1837 _values.push_back(RightUreterToBladder);
1838 _values.push_back(BladderToGround);
1839 _values.push_back(BladderToGroundSource);
1843 static bool HasValue(
const std::string& v)
1845 return std::find(_values.begin(), _values.end(), v) != _values.end();
1847 static void AddValue(
const std::string& v)
1852 _values.push_back(v);
1856 static std::vector<std::string> _values;
1859 class LymphCompartment
1862 DEFINE_STATIC_STRING(Lymph);
1864 static const std::vector<std::string>& GetValues()
1867 if (_values.empty())
1869 _values.push_back(Lymph);
1873 static bool HasValue(
const std::string& v)
1875 return std::find(_values.begin(), _values.end(), v) != _values.end();
1877 static void AddValue(
const std::string& v)
1882 _values.push_back(v);
1886 static std::vector<std::string> _values;
1892 DEFINE_STATIC_STRING(BoneTissueToLymph);
1893 DEFINE_STATIC_STRING(BrainTissueToLymph);
1894 DEFINE_STATIC_STRING(FatTissueToLymph);
1895 DEFINE_STATIC_STRING(GutTissueToLymph);
1896 DEFINE_STATIC_STRING(LeftKidneyTissueToLymph);
1897 DEFINE_STATIC_STRING(LeftLungTissueToLymph);
1898 DEFINE_STATIC_STRING(LiverTissueToLymph);
1899 DEFINE_STATIC_STRING(MuscleTissueToLymph);
1900 DEFINE_STATIC_STRING(MyocardiumTissueToLymph);
1901 DEFINE_STATIC_STRING(RightKidneyTissueToLymph);
1902 DEFINE_STATIC_STRING(RightLungTissueToLymph);
1903 DEFINE_STATIC_STRING(SkinTissueToLymph);
1904 DEFINE_STATIC_STRING(SpleenTissueToLymph);
1906 DEFINE_STATIC_STRING(LymphToVenaCava);
1908 static const std::vector<std::string>& GetValues()
1911 if (_values.empty())
1913 _values.push_back(BoneTissueToLymph);
1914 _values.push_back(BrainTissueToLymph);
1915 _values.push_back(FatTissueToLymph);
1916 _values.push_back(GutTissueToLymph);
1917 _values.push_back(LeftKidneyTissueToLymph);
1918 _values.push_back(LeftLungTissueToLymph);
1919 _values.push_back(LiverTissueToLymph);
1920 _values.push_back(MuscleTissueToLymph);
1921 _values.push_back(MyocardiumTissueToLymph);
1922 _values.push_back(RightKidneyTissueToLymph);
1923 _values.push_back(RightLungTissueToLymph);
1924 _values.push_back(SkinTissueToLymph);
1925 _values.push_back(SpleenTissueToLymph);
1926 _values.push_back(LymphToVenaCava);
1930 static bool HasValue(
const std::string& v)
1932 return std::find(_values.begin(), _values.end(), v) != _values.end();
1934 static void AddValue(
const std::string& v)
1939 _values.push_back(v);
1943 static std::vector<std::string> _values;
1946 class TemperatureCompartment
1949 DEFINE_STATIC_STRING(Active);
1950 DEFINE_STATIC_STRING(Ambient);
1951 DEFINE_STATIC_STRING(Clothing);
1952 DEFINE_STATIC_STRING(Enclosure);
1953 DEFINE_STATIC_STRING(ExternalCore);
1954 DEFINE_STATIC_STRING(ExternalSkin);
1955 DEFINE_STATIC_STRING(ExternalGround);
1956 DEFINE_STATIC_STRING(InternalCore);
1957 DEFINE_STATIC_STRING(InternalSkin);
1958 DEFINE_STATIC_STRING(InternalGround);
1960 static const std::vector<std::string>& GetValues()
1963 if (_values.empty())
1965 _values.push_back(Active);
1966 _values.push_back(Ambient);
1967 _values.push_back(Clothing);
1968 _values.push_back(Enclosure);
1969 _values.push_back(ExternalCore);
1970 _values.push_back(ExternalSkin);
1971 _values.push_back(ExternalGround);
1972 _values.push_back(InternalCore);
1973 _values.push_back(InternalSkin);
1974 _values.push_back(InternalGround);
1978 static bool HasValue(
const std::string& v)
1980 return std::find(_values.begin(), _values.end(), v) != _values.end();
1982 static void AddValue(
const std::string& v)
1987 _values.push_back(v);
1991 static std::vector<std::string> _values;
1994 class TemperatureLink
1998 DEFINE_STATIC_STRING(ActiveToClothing);
1999 DEFINE_STATIC_STRING(ClothingToEnclosure);
2000 DEFINE_STATIC_STRING(ClothingToEnvironment);
2001 DEFINE_STATIC_STRING(ExternalCoreToGround);
2002 DEFINE_STATIC_STRING(GroundToActive);
2003 DEFINE_STATIC_STRING(GroundToClothing);
2004 DEFINE_STATIC_STRING(GroundToEnclosure);
2005 DEFINE_STATIC_STRING(GroundToEnvironment);
2006 DEFINE_STATIC_STRING(ExternalSkinToGround);
2007 DEFINE_STATIC_STRING(ExternalSkinToClothing);
2008 DEFINE_STATIC_STRING(GroundToInternalCore);
2009 DEFINE_STATIC_STRING(InternalCoreToInternalSkin);
2010 DEFINE_STATIC_STRING(InternalCoreToGround);
2011 DEFINE_STATIC_STRING(InternalSkinToGround);
2012 DEFINE_STATIC_STRING(InternalCoreToExternalCore);
2013 DEFINE_STATIC_STRING(InternalSkinToExternalSkin);
2015 static const std::vector<std::string>& GetValues()
2018 if (_values.empty())
2020 _values.push_back(ActiveToClothing);
2021 _values.push_back(ClothingToEnclosure);
2022 _values.push_back(ClothingToEnvironment);
2023 _values.push_back(ExternalCoreToGround);
2024 _values.push_back(GroundToActive);
2025 _values.push_back(GroundToClothing);
2026 _values.push_back(GroundToEnclosure);
2027 _values.push_back(GroundToEnvironment);
2028 _values.push_back(ExternalSkinToGround);
2029 _values.push_back(ExternalSkinToClothing);
2030 _values.push_back(GroundToInternalCore);
2031 _values.push_back(InternalCoreToInternalSkin);
2032 _values.push_back(InternalCoreToGround);
2033 _values.push_back(InternalSkinToGround);
2034 _values.push_back(InternalCoreToExternalCore);
2035 _values.push_back(InternalSkinToExternalSkin);
2039 static bool HasValue(
const std::string& v)
2041 return std::find(_values.begin(), _values.end(), v) != _values.end();
2043 static void AddValue(
const std::string& v)
2048 _values.push_back(v);
2052 static std::vector<std::string> _values;
2055 class EnvironmentCompartment
2058 DEFINE_STATIC_STRING(Ambient);
2060 static const std::vector<std::string>& GetValues()
2063 if (_values.empty())
2065 _values.push_back(Ambient);
2069 static bool HasValue(
const std::string& v)
2071 return std::find(_values.begin(), _values.end(), v) != _values.end();
2073 static void AddValue(
const std::string& v)
2078 _values.push_back(v);
2082 static std::vector<std::string> _values;
2085 class AnesthesiaMachineCompartment
2088 DEFINE_STATIC_STRING_EX(Connection, AnesthesiaMachineConnection);
2089 DEFINE_STATIC_STRING_EX(ExpiratoryLimb, AnesthesiaMachineExpiratoryLimb);
2090 DEFINE_STATIC_STRING_EX(GasInlet, AnesthesiaMachineGasInlet);
2091 DEFINE_STATIC_STRING_EX(GasSource, AnesthesiaMachineGasSource);
2092 DEFINE_STATIC_STRING_EX(InspiratoryLimb, AnesthesiaMachineInspiratoryLimb);
2093 DEFINE_STATIC_STRING_EX(ReliefValve, AnesthesiaMachineReliefValve);
2094 DEFINE_STATIC_STRING_EX(Scrubber, AnesthesiaMachineScrubber);
2095 DEFINE_STATIC_STRING_EX(Selector, AnesthesiaMachineSelector);
2096 DEFINE_STATIC_STRING_EX(Ventilator, AnesthesiaMachineVentilator);
2097 DEFINE_STATIC_STRING_EX(YPiece, AnesthesiaMachineYPiece);
2099 static const std::vector<std::string>& GetValues()
2102 if (_values.empty())
2104 _values.push_back(Connection);
2105 _values.push_back(ExpiratoryLimb);
2106 _values.push_back(GasInlet);
2107 _values.push_back(GasSource);
2108 _values.push_back(InspiratoryLimb);
2109 _values.push_back(ReliefValve);
2110 _values.push_back(Scrubber);
2111 _values.push_back(Selector);
2112 _values.push_back(Ventilator);
2113 _values.push_back(YPiece);
2117 static bool HasValue(
const std::string& v)
2119 return std::find(_values.begin(), _values.end(), v) != _values.end();
2121 static void AddValue(
const std::string& v)
2126 _values.push_back(v);
2130 static std::vector<std::string> _values;
2133 class AnesthesiaMachineLink
2136 DEFINE_STATIC_STRING_EX(EnvironmentToReliefValve, EnvironmentToAnesthesiaMachineReliefValve);
2137 DEFINE_STATIC_STRING_EX(VentilatorToSelector, AnesthesiaMachineVentilatorToSelector);
2138 DEFINE_STATIC_STRING_EX(SelectorToReliefValve, AnesthesiaMachineSelectorToReliefValve);
2139 DEFINE_STATIC_STRING_EX(SelectorToScrubber, AnesthesiaMachineSelectorToScrubber);
2140 DEFINE_STATIC_STRING_EX(ScrubberToGasInlet, AnesthesiaMachineScrubberToGasInlet);
2141 DEFINE_STATIC_STRING_EX(GasSourceToGasInlet, AnesthesiaMachineGasSourceToGasInlet);
2142 DEFINE_STATIC_STRING_EX(GasInletToInspiratoryLimb, AnesthesiaMachineGasInletToInspiratoryLimb);
2143 DEFINE_STATIC_STRING_EX(InspiratoryLimbToYPiece, AnesthesiaMachineInspiratoryLimbToYPiece);
2144 DEFINE_STATIC_STRING_EX(YPieceToExpiratoryLimb, AnesthesiaMachineYPieceToExpiratoryLimb);
2145 DEFINE_STATIC_STRING_EX(ExpiratoryLimbToSelector, AnesthesiaMachineExpiratoryLimbToSelector);
2146 DEFINE_STATIC_STRING_EX(YPieceToConnection, AnesthesiaMachineYPieceToConnection);
2147 DEFINE_STATIC_STRING_EX(ConnectionLeak, AnesthesiaMachineConnectionLeak);
2148 DEFINE_STATIC_STRING_EX(ConnectionToAirway, AnesthesiaMachineConnectionToAirway);
2150 static const std::vector<std::string>& GetValues()
2153 if (_values.empty())
2155 _values.push_back(EnvironmentToReliefValve);
2156 _values.push_back(VentilatorToSelector);
2157 _values.push_back(SelectorToReliefValve);
2158 _values.push_back(SelectorToScrubber);
2159 _values.push_back(ScrubberToGasInlet);
2160 _values.push_back(GasSourceToGasInlet);
2161 _values.push_back(GasInletToInspiratoryLimb);
2162 _values.push_back(InspiratoryLimbToYPiece);
2163 _values.push_back(YPieceToExpiratoryLimb);
2164 _values.push_back(ExpiratoryLimbToSelector);
2165 _values.push_back(YPieceToConnection);
2166 _values.push_back(ConnectionLeak);
2167 _values.push_back(ConnectionToAirway);
2171 static bool HasValue(
const std::string& v)
2173 return std::find(_values.begin(), _values.end(), v) != _values.end();
2175 static void AddValue(
const std::string& v)
2180 _values.push_back(v);
2184 static std::vector<std::string> _values;
2187 class BagValveMaskCompartment
2190 DEFINE_STATIC_STRING_EX(Reservoir, BagValveMaskReservoir);
2191 DEFINE_STATIC_STRING_EX(Bag, BagValveMaskBag);
2192 DEFINE_STATIC_STRING_EX(Valve, BagValveMaskValve);
2193 DEFINE_STATIC_STRING_EX(Filter, BagValveMaskFilter);
2194 DEFINE_STATIC_STRING_EX(Connection, BagValveMaskConnection);
2196 static const std::vector<std::string>& GetValues()
2199 if (_values.empty())
2201 _values.push_back(Reservoir);
2202 _values.push_back(Bag);
2203 _values.push_back(Valve);
2204 _values.push_back(Filter);
2205 _values.push_back(Connection);
2210 static std::vector<std::string> _values;
2213 class BagValveMaskLink
2216 DEFINE_STATIC_STRING_EX(ReservoirToBag, BagValveMaskReservoirToBag);
2217 DEFINE_STATIC_STRING_EX(BagToValve, BagValveMaskBagToValve);
2218 DEFINE_STATIC_STRING_EX(ValveToFilter, BagValveMaskValveToFilter);
2219 DEFINE_STATIC_STRING_EX(FilterToConnection, BagValveMaskFilterToConnection);
2220 DEFINE_STATIC_STRING_EX(ConnectionToEnvironment, BagValveMaskConnectionToEnvironment);
2221 DEFINE_STATIC_STRING_EX(ConnectionToAirway, BagValveMaskConnectionToAirway);
2223 static const std::vector<std::string>& GetValues()
2226 if (_values.empty())
2228 _values.push_back(ReservoirToBag);
2229 _values.push_back(BagToValve);
2230 _values.push_back(ValveToFilter);
2231 _values.push_back(FilterToConnection);
2232 _values.push_back(ConnectionToEnvironment);
2233 _values.push_back(ConnectionToAirway);
2238 static std::vector<std::string> _values;
2241 class ECMOCompartment
2244 DEFINE_STATIC_STRING_EX(Oxygenator, ECMOOxygenator);
2245 DEFINE_STATIC_STRING_EX(BloodSamplingPort, ECMOBloodSamplingPort);
2247 static const std::vector<std::string>& GetValues()
2250 if (_values.empty())
2252 _values.push_back(Oxygenator);
2253 _values.push_back(BloodSamplingPort);
2257 static bool HasValue(
const std::string& v)
2259 return std::find(_values.begin(), _values.end(), v) != _values.end();
2261 static void AddValue(
const std::string& v)
2266 _values.push_back(v);
2270 static std::vector<std::string> _values;
2276 DEFINE_STATIC_STRING(OxygenatorToVasculature);
2277 DEFINE_STATIC_STRING(VasculatureToBloodSamplingPort);
2278 DEFINE_STATIC_STRING(BloodSamplingPortToOxygenator);
2280 static const std::vector<std::string>& GetValues()
2283 if (_values.empty())
2285 _values.push_back(OxygenatorToVasculature);
2286 _values.push_back(VasculatureToBloodSamplingPort);
2287 _values.push_back(BloodSamplingPortToOxygenator);
2291 static bool HasValue(
const std::string& v)
2293 return std::find(_values.begin(), _values.end(), v) != _values.end();
2295 static void AddValue(
const std::string& v)
2300 _values.push_back(v);
2304 static std::vector<std::string> _values;
2307 class InhalerCompartment
2310 DEFINE_STATIC_STRING_EX(Mouthpiece, InhalerMouthpiece);
2312 static const std::vector<std::string>& GetValues()
2315 if (_values.empty())
2317 _values.push_back(Mouthpiece);
2321 static bool HasValue(
const std::string& v)
2323 return std::find(_values.begin(), _values.end(), v) != _values.end();
2325 static void AddValue(
const std::string& v)
2330 _values.push_back(v);
2334 static std::vector<std::string> _values;
2340 DEFINE_STATIC_STRING_EX(EnvironmentToMouthpiece, EnvironmentToInhalerMouthpiece);
2341 DEFINE_STATIC_STRING_EX(MouthpieceToAirway, InhalerMouthpieceToAirway);
2343 static const std::vector<std::string>& GetValues()
2346 if (_values.empty())
2348 _values.push_back(EnvironmentToMouthpiece);
2349 _values.push_back(MouthpieceToAirway);
2353 static bool HasValue(
const std::string& v)
2355 return std::find(_values.begin(), _values.end(), v) != _values.end();
2357 static void AddValue(
const std::string& v)
2362 _values.push_back(v);
2366 static std::vector<std::string> _values;
2369 class MechanicalVentilationCompartment
2372 DEFINE_STATIC_STRING_EX(Connection, MechanicalVentilationConnection);
2373 DEFINE_STATIC_STRING_EX(DeadSpace, MechanicalVentilationDeadSpace);
2375 static const std::vector<std::string>& GetValues()
2378 if (_values.empty())
2380 _values.push_back(Connection);
2381 _values.push_back(DeadSpace);
2385 static bool HasValue(
const std::string& v)
2387 return std::find(_values.begin(), _values.end(), v) != _values.end();
2389 static void AddValue(
const std::string& v)
2394 _values.push_back(v);
2398 static std::vector<std::string> _values;
2401 class MechanicalVentilationLink
2404 DEFINE_STATIC_STRING_EX(ConnectionToDeadSpace, MechanicalVentilationConnectionToDeadSpace);
2405 DEFINE_STATIC_STRING_EX(DeadSpaceToAirway, MechanicalVentilationDeadSpaceToAirway);
2407 static const std::vector<std::string>& GetValues()
2410 if (_values.empty())
2412 _values.push_back(ConnectionToDeadSpace);
2413 _values.push_back(DeadSpaceToAirway);
2417 static bool HasValue(
const std::string& v)
2419 return std::find(_values.begin(), _values.end(), v) != _values.end();
2421 static void AddValue(
const std::string& v)
2426 _values.push_back(v);
2430 static std::vector<std::string> _values;
2433 class MechanicalVentilatorCompartment
2436 DEFINE_STATIC_STRING(MechanicalVentilator);
2437 DEFINE_STATIC_STRING_EX(ExpiratoryValve, MechanicalVentilatorExpiratoryValve);
2438 DEFINE_STATIC_STRING_EX(InspiratoryValve, MechanicalVentilatorInspiratoryValve);
2439 DEFINE_STATIC_STRING_EX(ExpiratoryLimb, MechanicalVentilatorExpiratoryLimb);
2440 DEFINE_STATIC_STRING_EX(InspiratoryLimb, MechanicalVentilatorInspiratoryLimb);
2441 DEFINE_STATIC_STRING_EX(YPiece, MechanicalVentilatorYPiece);
2442 DEFINE_STATIC_STRING_EX(ReliefValve, MechanicalVentilatorReliefValve);
2443 DEFINE_STATIC_STRING_EX(Connection, MechanicalVentilatorConnection);
2445 static const std::vector<std::string>& GetValues()
2448 if (_values.empty())
2450 _values.push_back(MechanicalVentilator);
2451 _values.push_back(ExpiratoryValve);
2452 _values.push_back(InspiratoryValve);
2453 _values.push_back(ExpiratoryLimb);
2454 _values.push_back(InspiratoryLimb);
2455 _values.push_back(YPiece);
2456 _values.push_back(ReliefValve);
2457 _values.push_back(Connection);
2461 static bool HasValue(
const std::string& v)
2463 return std::find(_values.begin(), _values.end(), v) != _values.end();
2465 static void AddValue(
const std::string& v)
2470 _values.push_back(v);
2474 static std::vector<std::string> _values;
2477 class MechanicalVentilatorLink
2480 DEFINE_STATIC_STRING(MechanicalVentilatorToExpiratoryValve);
2481 DEFINE_STATIC_STRING(MechanicalVentilatorToInspiratoryValve);
2482 DEFINE_STATIC_STRING_EX(ExpiratoryLimbToExpiratoryValve, MechanicalVentilatorExpiratoryLimbToExpiratoryValve);
2483 DEFINE_STATIC_STRING_EX(InspiratoryValveToInspiratoryLimb, MechanicalVentilatorInspiratoryValveToInspiratoryLimb);
2484 DEFINE_STATIC_STRING_EX(ExpiratoryLimbToYPiece, MechanicalVentilatorExpiratoryLimbToYPiece);
2485 DEFINE_STATIC_STRING_EX(InspiratoryLimbToYPiece, MechanicalVentilatorInspiratoryLimbToYPiece);
2486 DEFINE_STATIC_STRING_EX(YPieceToConnection, MechanicalVentilatorYPieceToConnection);
2487 DEFINE_STATIC_STRING_EX(LeakConnectionToEnvironment, MechanicalVentilatorLeakConnectionToEnvironment);
2488 DEFINE_STATIC_STRING_EX(ConnectionToReliefValve, MechanicalVentilatorConnectionToReliefValve);
2489 DEFINE_STATIC_STRING_EX(EnvironmentToReliefValve, MechanicalVentilatorEnvironmentToReliefValve);
2490 DEFINE_STATIC_STRING_EX(ConnectionToEnvironment, MechanicalVentilatorConnectionToEnvironment);
2491 DEFINE_STATIC_STRING_EX(ConnectionToAirway, MechanicalVentilatorConnectionToAirway);
2493 static const std::vector<std::string>& GetValues()
2496 if (_values.empty())
2498 _values.push_back(MechanicalVentilatorToExpiratoryValve);
2499 _values.push_back(MechanicalVentilatorToInspiratoryValve);
2500 _values.push_back(ExpiratoryLimbToExpiratoryValve);
2501 _values.push_back(InspiratoryValveToInspiratoryLimb);
2502 _values.push_back(ExpiratoryLimbToYPiece);
2503 _values.push_back(InspiratoryLimbToYPiece);
2504 _values.push_back(YPieceToConnection);
2505 _values.push_back(LeakConnectionToEnvironment);
2506 _values.push_back(ConnectionToReliefValve);
2507 _values.push_back(EnvironmentToReliefValve);
2508 _values.push_back(ConnectionToEnvironment);
2509 _values.push_back(ConnectionToAirway);
2513 static bool HasValue(
const std::string& v)
2515 return std::find(_values.begin(), _values.end(), v) != _values.end();
2517 static void AddValue(
const std::string& v)
2522 _values.push_back(v);
2526 static std::vector<std::string> _values;
2529 class NasalCannulaCompartment
2532 DEFINE_STATIC_STRING(NasalCannulaOxygenSource);
2533 DEFINE_STATIC_STRING(NasalCannula);
2535 static const std::vector<std::string>& GetValues()
2538 if (_values.empty())
2540 _values.push_back(NasalCannulaOxygenSource);
2541 _values.push_back(NasalCannula);
2545 static bool HasValue(
const std::string& v)
2547 return std::find(_values.begin(), _values.end(), v) != _values.end();
2549 static void AddValue(
const std::string& v)
2554 _values.push_back(v);
2558 static std::vector<std::string> _values;
2561 class NasalCannulaLink
2564 DEFINE_STATIC_STRING(NasalCannulaOxygenInlet);
2565 DEFINE_STATIC_STRING(NasalCannulaSeal);
2566 DEFINE_STATIC_STRING(NasalCannulaToAirway);
2568 static const std::vector<std::string>& GetValues()
2571 if (_values.empty())
2573 _values.push_back(NasalCannulaOxygenInlet);
2574 _values.push_back(NasalCannulaSeal);
2575 _values.push_back(NasalCannulaToAirway);
2579 static bool HasValue(
const std::string& v)
2581 return std::find(_values.begin(), _values.end(), v) != _values.end();
2583 static void AddValue(
const std::string& v)
2588 _values.push_back(v);
2592 static std::vector<std::string> _values;
2595 class NonRebreatherMaskCompartment
2598 DEFINE_STATIC_STRING(NonRebreatherMaskOxygenSource);
2599 DEFINE_STATIC_STRING(NonRebreatherMaskPorts);
2600 DEFINE_STATIC_STRING(NonRebreatherMaskBag);
2601 DEFINE_STATIC_STRING(NonRebreatherMask);
2603 static const std::vector<std::string>& GetValues()
2606 if (_values.empty())
2608 _values.push_back(NonRebreatherMaskOxygenSource);
2609 _values.push_back(NonRebreatherMaskPorts);
2610 _values.push_back(NonRebreatherMaskBag);
2611 _values.push_back(NonRebreatherMask);
2615 static bool HasValue(
const std::string& v)
2617 return std::find(_values.begin(), _values.end(), v) != _values.end();
2619 static void AddValue(
const std::string& v)
2624 _values.push_back(v);
2628 static std::vector<std::string> _values;
2631 class NonRebreatherMaskLink
2634 DEFINE_STATIC_STRING(NonRebreatherMaskOxygenInlet);
2635 DEFINE_STATIC_STRING(NonRebreatherMaskReservoirValve);
2636 DEFINE_STATIC_STRING(NonRebreatherMaskSeal);
2637 DEFINE_STATIC_STRING(NonRebreatherMaskExhalationValves);
2638 DEFINE_STATIC_STRING(NonRebreatherMaskExhalation);
2639 DEFINE_STATIC_STRING(NonRebreatherMaskToAirway);
2641 static const std::vector<std::string>& GetValues()
2644 if (_values.empty())
2646 _values.push_back(NonRebreatherMaskOxygenInlet);
2647 _values.push_back(NonRebreatherMaskReservoirValve);
2648 _values.push_back(NonRebreatherMaskSeal);
2649 _values.push_back(NonRebreatherMaskExhalationValves);
2650 _values.push_back(NonRebreatherMaskExhalation);
2651 _values.push_back(NonRebreatherMaskToAirway);
2655 static bool HasValue(
const std::string& v)
2657 return std::find(_values.begin(), _values.end(), v) != _values.end();
2659 static void AddValue(
const std::string& v)
2664 _values.push_back(v);
2668 static std::vector<std::string> _values;
2671 class SimpleMaskCompartment
2674 DEFINE_STATIC_STRING(SimpleMaskOxygenSource);
2675 DEFINE_STATIC_STRING(SimpleMask);
2677 static const std::vector<std::string>& GetValues()
2680 if (_values.empty())
2682 _values.push_back(SimpleMaskOxygenSource);
2683 _values.push_back(SimpleMask);
2687 static bool HasValue(
const std::string& v)
2689 return std::find(_values.begin(), _values.end(), v) != _values.end();
2691 static void AddValue(
const std::string& v)
2696 _values.push_back(v);
2700 static std::vector<std::string> _values;
2703 class SimpleMaskLink
2706 DEFINE_STATIC_STRING(SimpleMaskOxygenInlet);
2707 DEFINE_STATIC_STRING(SimpleMaskSeal);
2708 DEFINE_STATIC_STRING(SimpleMaskPorts);
2709 DEFINE_STATIC_STRING(SimpleMaskToAirway);
2711 static const std::vector<std::string>& GetValues()
2714 if (_values.empty())
2716 _values.push_back(SimpleMaskOxygenInlet);
2717 _values.push_back(SimpleMaskSeal);
2718 _values.push_back(SimpleMaskPorts);
2719 _values.push_back(SimpleMaskToAirway);
2723 static bool HasValue(
const std::string& v)
2725 return std::find(_values.begin(), _values.end(), v) != _values.end();
2727 static void AddValue(
const std::string& v)
2732 _values.push_back(v);
2736 static std::vector<std::string> _values;
Definition: ScopedMutex.h:7