What’s New in the Pulse Physiology Engine 4.4.0
×
SEValidationTarget.h
1/* Distributed under the Apache License, Version 2.0.
2 See accompanying NOTICE file for details.*/
3
4#pragma once
5
6#include "cdm/CommonDefs.h"
7#include "cdm/engine/SEDataRequest.h"
8#include "cdm/engine/SEEventManager.h"
9
10
11enum class eValidationGrade { Good=0, Fair, Bad };
12
13class CDM_DECL SEValidationTarget : public Loggable
14{
15 friend class PBValidation;//friend the serialization class
16protected:
17 SEValidationTarget() { Clear(); }
18public:
19 virtual ~SEValidationTarget() = default;
20
21 virtual void Clear();
22 virtual bool IsValid();
23
24 std::string GetHeader() const { return m_Header; }
25 void SetHeader(const std::string& h) { m_Header = h; }
26
27 std::string GetReference() const { return m_Reference; }
28 void SetReference(const std::string& c) { m_Reference = c; }
29
30 std::string GetNotes() const { return m_Notes; }
31 void SetNotes(const std::string& n) { m_Notes = n; }
32
33 std::string GetTableFormatting() const { return m_TableFormatting; }
34 void SetTableFormatting(const std::string& f) { m_TableFormatting = f; }
35
36 double GetGoodPercentError() const { return m_GoodPercentError; }
37 void SetGoodPercentError(double e) { m_GoodPercentError = e; }
38
39 double GetFairPercentError() const { return m_FairPercentError; }
40 void SetFairPercentError(double e) { m_FairPercentError = e; }
41
42 bool GetComputedBool() const { return m_ComputedBool; }
43 void SetComputedBool(bool b) { m_ComputedBool = b; }
44
45 std::string GetComputedEnum() const { return m_ComputedEnum; }
46 void SetComputedEnum(const std::string& e) { m_ComputedEnum = e; }
47
48 double GetComputedValue() const { return m_ComputedValue; }
49 void SetComputedValue(double d) { m_ComputedValue = d; }
50
51 void SetGrade(eValidationGrade g) { m_Grade = g; }
52 eValidationGrade GetGrade() const { return m_Grade; }
53
54
55protected:
56 std::string m_Header;
57 std::string m_Reference;
58 std::string m_Notes;
59 std::string m_TableFormatting;
60
63
64 // Only 1 of these
66 std::string m_ComputedEnum;
68
69 eValidationGrade m_Grade;
70};
71
73{
74 friend class PBValidation;//friend the serialization class
75public:
77 {
78 eValidationGrade Grade;
79 double Error;
80 double Compare;
81 };
84
85 static bool SerializeToString(const std::vector<const SESegmentValidationTarget*>& src, std::string& output, eSerializationFormat m, Logger* logger);
86 static bool SerializeToFile(const std::vector<const SESegmentValidationTarget*>& src, const std::string& filename, Logger* logger);
87 static bool SerializeFromString(const std::string& src, std::vector<SESegmentValidationTarget*>& dst, eSerializationFormat m, Logger* logger);
88 static bool SerializeFromFile(const std::string& filename, std::vector<SESegmentValidationTarget*>& dst, Logger* logger);
89
90 void Clear() override;
91
92 std::string GetComparisonFormula() const { return m_ComparisonFormula; }
93 void SetComparisonFormula(const std::string& f) { m_ComparisonFormula = f; }
94
95 std::string GetExpressionJoin() const { return m_ExpressionJoin; }
96 void SetExpressionJoin(const std::string& e) { m_ExpressionJoin = e; }
97
98 // Not evaluating expressions here, so only adding a const getter here.
99 const std::map<std::string, Evaluation>& GetExpressions() const { return m_Expressions; }
100
101protected:
103 std::string m_ExpressionJoin;
104 std::map<std::string, Evaluation> m_Expressions; // Key is a piece of the comparison formula
105};
106
108{
109 friend class PBValidation;//friend the serialization class
110public:
111 enum class eComparisonType { None=0, TargetEnum, TargetValue, TargetRange };
112 enum class eEvaluationType { Mean=0, Minimum, Maximum,
113 MeanPerIdealWeight_kg, MaxPerIdealWeight_kg, MinPerIdealWeight_kg, Enumeration };
115 virtual ~SETimeSeriesValidationTarget() = default;
116
117 void Clear() override;
118
119 static bool SerializeToString(const std::vector<const SETimeSeriesValidationTarget*>&src, std::string& output, eSerializationFormat m, Logger* logger);
120 static bool SerializeToFile(const std::vector<const SETimeSeriesValidationTarget*>& src, const std::string& filename, Logger* logger);
121 static bool SerializeFromString(const std::string& src, std::vector<SETimeSeriesValidationTarget*>& dst, eSerializationFormat m, Logger* logger);
122 static bool SerializeFromFile(const std::string& filename, std::vector<SETimeSeriesValidationTarget*>& dst, Logger* logger);
123
124 eComparisonType GetComparisonType() const { return m_ComparisonType; }
125
126 void SetAssessment(const std::string& a) { m_Assessment = a; }
127 std::string GetAssessment() const { return m_Assessment; }
128
129 void SetPatientSpecific(bool b) { m_PatientSpecific = b; }
130 bool GetPatientSpecific() const { return m_PatientSpecific; }
131
132 eEvaluationType GetEvaluationType() const { return m_EvaluationType; }
133
134 void SetTargetEnum(const std::string& s);
135 std::string GetTargetEnum() const { return m_TargetEnum; }
136
137 void SetTargetValue(double d, eEvaluationType t);
138 double GetTargetValue() const { return m_TargetValue; }
139
140 void SetTargetRange(double min, double max, eEvaluationType t);
141 double GetTargetMaximum() const { return m_TargetMaximum; }
142 double GetTargetMinimum() const { return m_TargetMinimum; }
143
144 double GetError() const { return m_Error; }
145 void SetError(double d) { m_Error = d; }
146
147 // Maybe we want a different class to do the comparision
148 // For now, I just put it in line here for the CircuitOptimizer
149 bool ComputeError();
150 std::vector<double>& GetData() { return m_Data; }
151
152protected:
154
155 std::string m_Assessment;
158
159 std::string m_TargetEnum;
163
164 double m_Error;
165
166 // Not serializing
167 std::vector<double> m_Data;
168};
Definition: Logger.h:23
Definition: Logger.h:71
Definition: PBValidation.h:12
static bool SerializeFromString(const std::string &src, std::vector< SESegmentValidationTarget * > &dst, eSerializationFormat m, Logger *logger)
Definition: PBValidation.cpp:94
static bool SerializeFromFile(const std::string &filename, std::vector< SESegmentValidationTarget * > &dst, Logger *logger)
Definition: PBValidation.cpp:102
static bool SerializeToFile(const std::vector< const SESegmentValidationTarget * > &src, const std::string &filename, Logger *logger)
Definition: PBValidation.cpp:131
static bool SerializeToString(const std::vector< const SESegmentValidationTarget * > &src, std::string &output, eSerializationFormat m, Logger *logger)
Definition: PBValidation.cpp:123
Definition: SEValidationTarget.h:73
void SetExpressionJoin(const std::string &e)
Definition: SEValidationTarget.h:96
const std::map< std::string, Evaluation > & GetExpressions() const
Definition: SEValidationTarget.h:99
std::string GetExpressionJoin() const
Definition: SEValidationTarget.h:95
std::string m_ExpressionJoin
Definition: SEValidationTarget.h:103
std::map< std::string, Evaluation > m_Expressions
Definition: SEValidationTarget.h:104
void SetComparisonFormula(const std::string &f)
Definition: SEValidationTarget.h:93
std::string m_ComparisonFormula
Definition: SEValidationTarget.h:102
std::string GetComparisonFormula() const
Definition: SEValidationTarget.h:92
Definition: SEValidationTarget.h:108
eComparisonType m_ComparisonType
Definition: SEValidationTarget.h:153
std::string m_TargetEnum
Definition: SEValidationTarget.h:159
double GetTargetMaximum() const
Definition: SEValidationTarget.h:141
eComparisonType GetComparisonType() const
Definition: SEValidationTarget.h:124
eEvaluationType m_EvaluationType
Definition: SEValidationTarget.h:157
void SetError(double d)
Definition: SEValidationTarget.h:145
virtual ~SETimeSeriesValidationTarget()=default
void SetAssessment(const std::string &a)
Definition: SEValidationTarget.h:126
double m_Error
Definition: SEValidationTarget.h:164
eEvaluationType
Definition: SEValidationTarget.h:112
double m_TargetMaximum
Definition: SEValidationTarget.h:161
bool GetPatientSpecific() const
Definition: SEValidationTarget.h:130
std::vector< double > m_Data
Definition: SEValidationTarget.h:167
bool m_PatientSpecific
Definition: SEValidationTarget.h:156
double GetTargetValue() const
Definition: SEValidationTarget.h:138
double m_TargetValue
Definition: SEValidationTarget.h:160
std::string GetTargetEnum() const
Definition: SEValidationTarget.h:135
double GetTargetMinimum() const
Definition: SEValidationTarget.h:142
double GetError() const
Definition: SEValidationTarget.h:144
eComparisonType
Definition: SEValidationTarget.h:111
eEvaluationType GetEvaluationType() const
Definition: SEValidationTarget.h:132
double m_TargetMinimum
Definition: SEValidationTarget.h:162
std::string m_Assessment
Definition: SEValidationTarget.h:155
std::string GetAssessment() const
Definition: SEValidationTarget.h:127
void SetPatientSpecific(bool b)
Definition: SEValidationTarget.h:129
std::vector< double > & GetData()
Definition: SEValidationTarget.h:150
Definition: SEValidationTarget.h:14
std::string GetTableFormatting() const
Definition: SEValidationTarget.h:33
void SetComputedEnum(const std::string &e)
Definition: SEValidationTarget.h:46
eValidationGrade m_Grade
Definition: SEValidationTarget.h:69
std::string GetReference() const
Definition: SEValidationTarget.h:27
void SetGrade(eValidationGrade g)
Definition: SEValidationTarget.h:51
double GetFairPercentError() const
Definition: SEValidationTarget.h:39
double m_FairPercentError
Definition: SEValidationTarget.h:62
std::string m_Reference
Definition: SEValidationTarget.h:57
std::string GetHeader() const
Definition: SEValidationTarget.h:24
void SetFairPercentError(double e)
Definition: SEValidationTarget.h:40
void SetTableFormatting(const std::string &f)
Definition: SEValidationTarget.h:34
std::string GetComputedEnum() const
Definition: SEValidationTarget.h:45
SEValidationTarget()
Definition: SEValidationTarget.h:17
virtual ~SEValidationTarget()=default
double m_ComputedValue
Definition: SEValidationTarget.h:67
double GetComputedValue() const
Definition: SEValidationTarget.h:48
std::string m_TableFormatting
Definition: SEValidationTarget.h:59
void SetComputedValue(double d)
Definition: SEValidationTarget.h:49
std::string m_ComputedEnum
Definition: SEValidationTarget.h:66
double GetGoodPercentError() const
Definition: SEValidationTarget.h:36
bool m_ComputedBool
Definition: SEValidationTarget.h:65
void SetReference(const std::string &c)
Definition: SEValidationTarget.h:28
eValidationGrade GetGrade() const
Definition: SEValidationTarget.h:52
std::string GetNotes() const
Definition: SEValidationTarget.h:30
std::string m_Header
Definition: SEValidationTarget.h:56
void SetComputedBool(bool b)
Definition: SEValidationTarget.h:43
void SetNotes(const std::string &n)
Definition: SEValidationTarget.h:31
std::string m_Notes
Definition: SEValidationTarget.h:58
double m_GoodPercentError
Definition: SEValidationTarget.h:61
bool GetComputedBool() const
Definition: SEValidationTarget.h:42
void SetGoodPercentError(double e)
Definition: SEValidationTarget.h:37
void SetHeader(const std::string &h)
Definition: SEValidationTarget.h:25
Definition: SEValidationTarget.h:77
double Error
Definition: SEValidationTarget.h:79
eValidationGrade Grade
Definition: SEValidationTarget.h:78
double Compare
Definition: SEValidationTarget.h:80

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.