Building Medical Digital Twins with Pulse: Open Source Simulation Tools for Developers and Researchers
×
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 class CDM_DECL SEValidationTarget : public Loggable
11 {
12  friend class PBValidation;//friend the serialization class
13 protected:
14  SEValidationTarget() { Clear(); }
15 public:
16  virtual ~SEValidationTarget() = default;
17 
18  virtual void Clear();
19  virtual bool IsValid();
20 
21  std::string GetHeader() const { return m_Header; }
22  void SetHeader(const std::string& h) { m_Header = h; }
23 
24  std::string GetReference() const { return m_Reference; }
25  void SetReference(const std::string& c) { m_Reference = c; }
26 
27  std::string GetNotes() const { return m_Notes; }
28  void SetNotes(const std::string& n) { m_Notes = n; }
29 
30  std::string GetTableFormatting() const { return m_TableFormatting; }
31  void SetTableFormatting(const std::string& f) { m_TableFormatting = f; }
32 
33  std::string GetComputedEnum() const { return m_ComputedEnum; }
34  void SetComputedEnum(const std::string& e) { m_ComputedEnum = e; }
35 
36  double GetComputedValue() const { return m_ComputedValue; }
37  void SetComputedValue(double d) { m_ComputedValue = d; }
38 
39  double GetError() const { return m_Error; }
40  void SetError(double d) { m_Error = d; }
41 
42  double GetGoodPercentError() const { return m_GoodPercentError; }
43  void SetGoodPercentError(double e) { m_GoodPercentError = e; }
44 
45  double GetFairPercentError() const { return m_FairPercentError; }
46  void SetFairPercentError(double e) { m_FairPercentError = e; }
47 
48 protected:
49  std::string m_Header;
50  std::string m_Reference;
51  std::string m_Notes;
52  std::string m_TableFormatting;
53 
54  std::string m_ComputedEnum;
56 
57  double m_Error;
60 };
61 
63 {
64  friend class PBValidation;//friend the serialization class
65 public:
67  virtual ~SESegmentValidationTarget() = default;
68 
69  static bool SerializeToString(const std::vector<const SESegmentValidationTarget*>& src, std::string& output, eSerializationFormat m, Logger* logger);
70  static bool SerializeToFile(const std::vector<const SESegmentValidationTarget*>& src, const std::string& filename, Logger* logger);
71  static bool SerializeFromString(const std::string& src, std::vector<SESegmentValidationTarget*>& dst, eSerializationFormat m, Logger* logger);
72  static bool SerializeFromFile(const std::string& filename, std::vector<SESegmentValidationTarget*>& dst, Logger* logger);
73 
74  void Clear() override;
75 
76  std::string GetComparisonFormula() const { return m_ComparisonFormula; }
77  void SetComparisonFormula(const std::string& f) { m_ComparisonFormula = f; }
78 
79 protected:
80  std::string m_ComparisonFormula;
81 };
82 
84 {
85  friend class PBValidation;//friend the serialization class
86 public:
87  enum class eComparisonType { None=0, TargetEnum, TargetValue, TargetRange };
88  enum class eTargetType { Mean=0, Minimum, Maximum,
89  MeanPerIdealWeight_kg, MaxPerIdealWeight_kg, MinPerIdealWeight_kg, Enumeration };
91  virtual ~SETimeSeriesValidationTarget() = default;
92 
93  void Clear() override;
94 
95  static bool SerializeToString(const std::vector<const SETimeSeriesValidationTarget*>&src, std::string& output, eSerializationFormat m, Logger* logger);
96  static bool SerializeToFile(const std::vector<const SETimeSeriesValidationTarget*>& src, const std::string& filename, Logger* logger);
97  static bool SerializeFromString(const std::string& src, std::vector<SETimeSeriesValidationTarget*>& dst, eSerializationFormat m, Logger* logger);
98  static bool SerializeFromFile(const std::string& filename, std::vector<SETimeSeriesValidationTarget*>& dst, Logger* logger);
99 
100  eTargetType GetTargetType() const { return m_TargetType; }
101  eComparisonType GetComparisonType() const { return m_ComparisonType; }
102 
103  void SetAssessment(const std::string& a) { m_Assessment = a; }
104  std::string GetAssessment() const { return m_Assessment; }
105 
106  void SetPatientSpecific(bool b) { m_PatientSpecific = b; }
107  bool GetPatientSpecific() const { return m_PatientSpecific; }
108 
109  void SetTargetEnum(const std::string& s);
110  std::string GetTargetEnum() const { return m_TargetEnum; }
111 
112  void SetTargetValue(double d, eTargetType t);
113  double GetTargetValue() const { return m_TargetValue; }
114 
115  void SetTargetRange(double min, double max, eTargetType t);
116  double GetTargetMaximum() const { return m_TargetMaximum; }
117  double GetTargetMinimum() const { return m_TargetMinimum; }
118 
119  // Maybe we want a different class to do the comparision
120  // For now, I just put it in line here for the CircuitOptimizer
121  bool ComputeError();
122  std::vector<double>& GetData() { return m_Data; }
123 
124 protected:
127 
128  std::string m_Assessment;
130 
131  std::string m_TargetEnum;
135 
136  // Not serializing
137  std::vector<double> m_Data;
138 };
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:81
static bool SerializeFromFile(const std::string &filename, std::vector< SESegmentValidationTarget * > &dst, Logger *logger)
Definition: PBValidation.cpp:89
static bool SerializeToFile(const std::vector< const SESegmentValidationTarget * > &src, const std::string &filename, Logger *logger)
Definition: PBValidation.cpp:118
static bool SerializeToString(const std::vector< const SESegmentValidationTarget * > &src, std::string &output, eSerializationFormat m, Logger *logger)
Definition: PBValidation.cpp:110
Definition: SEValidationTarget.h:63
virtual ~SESegmentValidationTarget()=default
void SetComparisonFormula(const std::string &f)
Definition: SEValidationTarget.h:77
std::string m_ComparisonFormula
Definition: SEValidationTarget.h:80
std::string GetComparisonFormula() const
Definition: SEValidationTarget.h:76
Definition: SEValidationTarget.h:84
eComparisonType m_ComparisonType
Definition: SEValidationTarget.h:125
eTargetType GetTargetType() const
Definition: SEValidationTarget.h:100
std::string m_TargetEnum
Definition: SEValidationTarget.h:131
double GetTargetMaximum() const
Definition: SEValidationTarget.h:116
eComparisonType GetComparisonType() const
Definition: SEValidationTarget.h:101
virtual ~SETimeSeriesValidationTarget()=default
void SetAssessment(const std::string &a)
Definition: SEValidationTarget.h:103
double m_TargetMaximum
Definition: SEValidationTarget.h:133
bool GetPatientSpecific() const
Definition: SEValidationTarget.h:107
std::vector< double > m_Data
Definition: SEValidationTarget.h:137
bool m_PatientSpecific
Definition: SEValidationTarget.h:129
double GetTargetValue() const
Definition: SEValidationTarget.h:113
std::vector< double > & GetData()
Definition: SEValidationTarget.h:122
double m_TargetValue
Definition: SEValidationTarget.h:132
eTargetType
Definition: SEValidationTarget.h:88
std::string GetTargetEnum() const
Definition: SEValidationTarget.h:110
double GetTargetMinimum() const
Definition: SEValidationTarget.h:117
eComparisonType
Definition: SEValidationTarget.h:87
double m_TargetMinimum
Definition: SEValidationTarget.h:134
std::string m_Assessment
Definition: SEValidationTarget.h:128
std::string GetAssessment() const
Definition: SEValidationTarget.h:104
eTargetType m_TargetType
Definition: SEValidationTarget.h:126
void SetPatientSpecific(bool b)
Definition: SEValidationTarget.h:106
Definition: SEValidationTarget.h:11
std::string GetTableFormatting() const
Definition: SEValidationTarget.h:30
void SetComputedEnum(const std::string &e)
Definition: SEValidationTarget.h:34
std::string GetReference() const
Definition: SEValidationTarget.h:24
double m_Error
Definition: SEValidationTarget.h:57
double GetFairPercentError() const
Definition: SEValidationTarget.h:45
double m_FairPercentError
Definition: SEValidationTarget.h:59
std::string m_Reference
Definition: SEValidationTarget.h:50
std::string GetHeader() const
Definition: SEValidationTarget.h:21
void SetFairPercentError(double e)
Definition: SEValidationTarget.h:46
void SetTableFormatting(const std::string &f)
Definition: SEValidationTarget.h:31
std::string GetComputedEnum() const
Definition: SEValidationTarget.h:33
SEValidationTarget()
Definition: SEValidationTarget.h:14
virtual ~SEValidationTarget()=default
double m_ComputedValue
Definition: SEValidationTarget.h:55
double GetComputedValue() const
Definition: SEValidationTarget.h:36
std::string m_TableFormatting
Definition: SEValidationTarget.h:52
void SetComputedValue(double d)
Definition: SEValidationTarget.h:37
std::string m_ComputedEnum
Definition: SEValidationTarget.h:54
double GetGoodPercentError() const
Definition: SEValidationTarget.h:42
void SetReference(const std::string &c)
Definition: SEValidationTarget.h:25
double GetError() const
Definition: SEValidationTarget.h:39
std::string GetNotes() const
Definition: SEValidationTarget.h:27
std::string m_Header
Definition: SEValidationTarget.h:49
void SetError(double d)
Definition: SEValidationTarget.h:40
void SetNotes(const std::string &n)
Definition: SEValidationTarget.h:28
std::string m_Notes
Definition: SEValidationTarget.h:51
double m_GoodPercentError
Definition: SEValidationTarget.h:58
void SetGoodPercentError(double e)
Definition: SEValidationTarget.h:43
void SetHeader(const std::string &h)
Definition: SEValidationTarget.h:22

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.