SEDataRequest.h
1/* Distributed under the Apache License, Version 2.0.
2 See accompanying NOTICE file for details.*/
3
4#pragma once
6class CCompoundUnit;
8#include "cdm/engine/SEDecimalFormat.h"
9
10enum class eDataRequest_Category {
11 Patient = 0, Physiology, Environment, Action,
12 GasCompartment, LiquidCompartment, ThermalCompartment, TissueCompartment,
13 Substance, AnesthesiaMachine, BagValveMask, ECG, ECMO, Inhaler, MechanicalVentilator
14};
15extern const std::string& eDataRequest_Category_Name(eDataRequest_Category m);
16
17class CDM_DECL SEDataRequest : public SEDecimalFormat
18{
19 friend class PBEngine;//friend the serialization class
21protected:
23 SEDataRequest(eDataRequest_Category category, const SEDecimalFormat* dfault = nullptr);
24public:
25
26 virtual ~SEDataRequest();
27
28 virtual void Clear(); //clear memory
29 virtual bool IsValid();
30 virtual void Copy(const SEDataRequest& src);
31
32 virtual size_t HashCode() const;
33
34 // The Request Category
35 virtual eDataRequest_Category GetCategory() const;
36
37 // OPTIONAL The Action Name holding the property
38 virtual std::string GetActionName() const;
39 virtual void SetActionName(const std::string& name);
40 virtual bool HasActionName() const;
41 virtual void InvalidateActionName();
42
43 // OPTIONAL The Compartment Name holding the property
44 virtual std::string GetCompartmentName() const;
45 virtual void SetCompartmentName(const std::string& name);
46 virtual bool HasCompartmentName() const;
47 virtual void InvalidateCompartmentName();
48
49 // OPTIONAL The Substance Name holding the property
50 virtual std::string GetSubstanceName() const;
51 virtual void SetSubstanceName(const std::string& name);
52 virtual bool HasSubstanceName() const;
53 virtual void InvalidateSubstanceName();
54
55 // The System Property Name
56 virtual std::string GetPropertyName() const;
57 virtual void SetPropertyName(const std::string& name);
58 virtual bool HasPropertyName() const;
59 virtual void InvalidatePropertyName();
60
61 // The Requested Unit String
62 virtual std::string GetRequestedUnit() const;
63 virtual void SetRequestedUnit(const std::string& unit);
64 virtual bool HasRequestedUnit() const;
65 virtual void InvalidateRequestedUnit();
66
67 // The Unit that data will be retrieved in
68 // If the Requested unit is present, this should be set to that unit
69 // I cannot do this automatically, since I don't know what the quantity of the property is, so some other logic needs to complete this logic
70 // If the Requested unit is NOT present, this should be set to whatever the unit of the System Property is set as
71 virtual const CCompoundUnit* GetUnit() const;
72 virtual void SetUnit(const CCompoundUnit& unit);
73 virtual bool HasUnit() const;
74 virtual void InvalidateUnit();
75
76 virtual std::string ToString() const;
77 virtual std::string GetHeaderName() const;
78
79protected:
80
81 eDataRequest_Category m_Category;
82 std::string m_ActionName;
83 std::string m_CompartmentName;
84 std::string m_SubstanceName;
85 std::string m_PropertyName;
86 std::string m_RequestedUnit;
88};
Definition: CompoundUnit.h:40
Definition: PBEngine.h:31
Definition: SEDataRequest.h:18
std::string m_ActionName
Definition: SEDataRequest.h:82
std::string m_PropertyName
Definition: SEDataRequest.h:85
eDataRequest_Category m_Category
Definition: SEDataRequest.h:81
std::string m_SubstanceName
Definition: SEDataRequest.h:84
std::string m_CompartmentName
Definition: SEDataRequest.h:83
const CCompoundUnit * m_Unit
Definition: SEDataRequest.h:87
std::string m_RequestedUnit
Definition: SEDataRequest.h:86
Definition: SEDataRequestManager.h:10
void Copy(const SEDataRequestManager &src)
Definition: SEDataRequestManager.cpp:35
Definition: SEDecimalFormat.h:10
virtual void Clear()
Definition: SEDecimalFormat.cpp:21
Definition: SESubstanceManager.h:9

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.