SEConditionManager.h
1 /**************************************************************************************
2 Copyright 2015 Applied Research Associates, Inc.
3 Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4 this file except in compliance with the License. You may obtain a copy of the License
5 at:
6 http://www.apache.org/licenses/LICENSE-2.0
7 Unless required by applicable law or agreed to in writing, software distributed under
8 the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
9 CONDITIONS OF ANY KIND, either express or implied. See the License for the
10 specific language governing permissions and limitations under the License.
11 **************************************************************************************/
12 
13 #pragma once
14 #include <biogears/cdm/CommonDataModel.h>
15 #include <biogears/exports.h>
16 
17 CDM_BIND_DECL(ConditionData);
18 
19 namespace biogears {
20 class SECondition;
21 class SEChronicAnemia;
22 class SEChronicHeartFailure;
23 class SEChronicObstructivePulmonaryDisease;
24 class SEChronicPericardialEffusion;
25 class SEChronicVentricularSystolicDysfunction;
26 class SEChronicRenalStenosis;
27 class SEStarvation;
28 class SEDehydration;
29 class SEDiabetesType1;
30 class SEDiabetesType2;
31 class SEFasting;
32 class SEImpairedAlveolarExchange;
33 class SELobarPneumonia;
34 class SEInitialEnvironment;
35 class SESubstanceManager;
36 
37 class BIOGEARS_API SEConditionManager : public Loggable {
38 public:
41 
42  void Clear();
43 
44  void Unload(std::vector<CDM::ConditionData*>& to);
45 
46  bool ProcessCondition(const SECondition& condition);
47  bool ProcessCondition(const CDM::ConditionData& condition);
48 
49  // Not too many conditions, so just have one manager
50  // If we start getting alot, I will make patient/environment/equipment condition managers, like the action managers
51 
52  // Patient Conditions
53 
54  bool HasChronicAnemia() const;
55  SEChronicAnemia* GetChronicAnemia() const;
56 
57  bool HasChronicObstructivePulmonaryDisease() const;
58  SEChronicObstructivePulmonaryDisease* GetChronicObstructivePulmonaryDisease() const;
59 
60  bool HasChronicHeartFailure() const;
61  bool HasChronicVentricularSystolicDysfunction() const;
62  SEChronicVentricularSystolicDysfunction* GetChronicVentricularSystolicDysfunction() const;
63 
64  bool HasChronicPericardialEffusion() const;
65  SEChronicPericardialEffusion* GetChronicPericardialEffusion() const;
66 
67  bool HasChronicRenalStenosis() const;
68  SEChronicRenalStenosis* GetChronicRenalStenosis() const;
69 
70  bool HasStarvation() const;
71  SEStarvation* GetStarvation() const;
72 
73  bool HasDehydration() const;
74  SEDehydration* GetDehydration() const;
75 
76  bool HasDiabetesType1() const;
77  SEDiabetesType1* GetDiabetesType1() const;
78 
79  bool HasDiabetesType2() const;
80  SEDiabetesType2* GetDiabetesType2() const;
81 
82  bool HasImpairedAlveolarExchange() const;
83  SEImpairedAlveolarExchange* GetImpairedAlveolarExchange() const;
84 
85  bool HasLobarPneumonia() const;
86  SELobarPneumonia* GetLobarPneumonia() const;
87 
88  // Environment Conditions
89 
90  bool HasInitialEnvironment() const;
91  SEInitialEnvironment* GetInitialEnvironment() const;
92 
93 protected:
106 
108 
109  std::vector<SECondition*> m_Conditions;
110  std::stringstream m_ss;
111 };
112 }
SEDiabetesType1 * m_DiabetesType1
Definition: SEConditionManager.h:99
std::vector< SECondition * > m_Conditions
Definition: SEConditionManager.h:109
SEChronicRenalStenosis * m_RenalStenosis
Definition: SEConditionManager.h:105
Definition: SEChronicRenalStenosis.h:23
Definition: SEStarvation.h:18
SEDiabetesType2 * m_DiabetesType2
Definition: SEConditionManager.h:100
Definition: SEDiabetesType1.h:23
SEChronicObstructivePulmonaryDisease * m_COPD
Definition: SEConditionManager.h:97
Definition: SEChronicObstructivePulmonaryDisease.h:23
SELobarPneumonia * m_LobarPneumonia
Definition: SEConditionManager.h:104
Definition: SEChronicPericardialEffusion.h:23
Definition: SEImpairedAlveolarExchange.h:21
Definition: Logger.h:27
SEChronicHeartFailure * m_HeartFailure
Definition: SEConditionManager.h:101
Definition: SEDiabetesType2.h:23
Definition: SELobarPneumonia.h:20
SEChronicPericardialEffusion * m_PericardialEffusion
Definition: SEConditionManager.h:103
Definition: SEChronicHeartFailure.h:19
Definition: SEChronicAnemia.h:23
SEImpairedAlveolarExchange * m_ImpairedAlveolarExchange
Definition: SEConditionManager.h:102
Definition: SEConditionManager.h:37
Definition: SEInitialEnvironment.h:18
SEChronicAnemia * m_Anemia
Definition: SEConditionManager.h:95
std::stringstream m_ss
Definition: SEConditionManager.h:110
SESubstanceManager & m_Substances
Definition: SEConditionManager.h:94
Definition: SEDehydration.h:23
SEDehydration * m_Dehydration
Definition: SEConditionManager.h:98
SEStarvation * m_Starvation
Definition: SEConditionManager.h:96
SEInitialEnvironment * m_InitialEnvironment
Definition: SEConditionManager.h:107
Definition: SESubstanceManager.h:23
Definition: SEElectricalCircuit.h:18
Definition: SEChronicVentricularSystolicDysfunction.h:21
Class corresponding to the ConditionData schema type.
Definition: Scenario.hxx:706
Definition: SECondition.h:22