What’s New in the Pulse Physiology Engine 4.4.0
×
SEThermalBurn.h
1/* Distributed under the Apache License, Version 2.0.
2 See accompanying NOTICE file for details.*/
3
4#pragma once
5#include "cdm/patient/actions/SEPatientAction.h"
6
7// Keep enums in sync with appropriate schema/cdm/PatientActions.proto file !!
8enum class eThermalBurn_Compartment
9{
10 None = 0,
11 Head = 1,
12 Neck = 2,
13 AnteriorTrunk = 3,
14 PosteriorTrunk = 4,
15 RightUpperArm = 5,
16 LeftUpperArm = 6,
17 RightLowerArm = 7,
18 LeftLowerArm = 8,
19 RightHand = 9,
20 LeftHand = 10,
21 RightButtock = 11,
22 LeftButtock = 12,
23 Genitalia = 13,
24 RightThigh = 14,
25 LeftThigh = 15,
26 RightLeg = 16,
27 LeftLeg = 17,
28 RightFoot = 18,
29 LeftFoot = 19
30};
31extern CDM_DECL const std::string& eThermalBurn_Compartment_Name(eThermalBurn_Compartment c);
32extern CDM_DECL eThermalBurn_Compartment eThermalBurn_Compartment_Parse(const std::string& s);
33
34class SEScalar0To1;
35class SEScalarArea;
36
38class CDM_DECL SEBurnWound
39{
40 friend class PBPatientAction;
41public:
43 virtual ~SEBurnWound();
44
45 virtual void Clear();
46 virtual bool IsValid() const;
47
48 virtual bool HasSurfaceAreaFraction() const;
49 virtual SEScalar0To1& GetSurfaceAreaFraction();
50 virtual double GetSurfaceAreaFraction() const;
51
52 virtual bool HasSurfaceArea() const;
53 virtual SEScalarArea& GetSurfaceArea();
54 virtual double GetSurfaceArea(const AreaUnit& unit) const;
55
56 virtual bool HasSeverity() const;
57 virtual SEScalar0To1& GetSeverity();
58 virtual double GetSeverity() const;
59
60protected:
64};
65
66using BurnWoundMap = std::map<eThermalBurn_Compartment, SEBurnWound*>;
67
68class CDM_DECL SEThermalBurn : public SEPatientAction
69{
70 friend class PBPatientAction;
71public:
72
73 SEThermalBurn(Logger* logger=nullptr);
74 virtual ~SEThermalBurn();
75
76 static constexpr char const* Name = "Thermal Burn";
77 std::string GetName() const override { return Name; }
78
79 void Clear() override;
80 void Copy(const SEThermalBurn& src, bool preserveState=false);
81
82 const SEScalar* GetScalar(const std::string& name) override;
83
84 bool IsValid() const override;
85 bool IsActive() const override;
86 void Activate() override;
87 void Deactivate() override;
88
89 virtual bool HasWound() const;
90 virtual BurnWoundMap& GetWounds();
91 virtual const BurnWoundMap& GetWounds() const;
92 virtual bool HasWound(eThermalBurn_Compartment cmpt) const;
93 virtual SEBurnWound& GetWound(eThermalBurn_Compartment cmpt);
94 virtual const SEBurnWound* GetWound(eThermalBurn_Compartment cmpt) const;
95
96 virtual bool HasTotalBodySurfaceArea() const;
97 virtual SEScalar0To1& GetTotalBodySurfaceArea();
98 virtual double GetTotalBodySurfaceArea() const;
99
100 virtual bool HasTotalWeightedSeverity() const;
101 virtual SEScalar0To1& GetTotalWeightedSeverity();
102 virtual double GetTotalWeightedSeverity() const;
103
104protected:
105 BurnWoundMap m_Wounds;
108};
Definition: SEScalarArea.h:8
Definition: Logger.h:71
Definition: PBPatientActions.h:56
static void Copy(const SEAcuteAnemia &src, SEAcuteAnemia &dst)
Definition: PBPatientActions.cpp:95
Represents a single burn wound at a specific body surface location.
Definition: SEThermalBurn.h:39
SEScalarArea * m_SurfaceArea
Definition: SEThermalBurn.h:62
SEScalar0To1 * m_SurfaceAreaFraction
Definition: SEThermalBurn.h:61
SEScalar0To1 * m_Severity
Definition: SEThermalBurn.h:63
Definition: SEPatientAction.h:8
Definition: SEScalar0To1.h:8
Definition: SEScalarArea.h:25
Definition: SEScalar.h:19
Definition: SEThermalBurn.h:69
BurnWoundMap m_Wounds
Definition: SEThermalBurn.h:105
SEScalar0To1 * m_TotalWeightedSeverity
Definition: SEThermalBurn.h:107
SEScalar0To1 * m_TotalBodySurfaceArea
Definition: SEThermalBurn.h:106
std::string GetName() const override
Definition: SEThermalBurn.h:77

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.