SEUrinalysis.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/assessments/SEPatientAssessment.h"
7
8// Keep enums in sync with appropriate schema/cdm/PatienAssessmentEnums.proto file !!
9enum class eUrinalysis_PresenceIndicator {
10 NullPresence = 0,
11 Positive,
12 Negative
13};
14extern const std::string& eUrinalysis_PresenceIndicator_Name(eUrinalysis_PresenceIndicator m);
15
16// Keep enums in sync with appropriate schema/cdm/PatienAssessmentEnums.proto file !!
17enum class eUrinalysis_ClarityIndicator {
18 NullClarity = 0,
19 Translucent,
20 SlightlyCloudy,
21 Cloudy,
22 Turbid
23};
24extern const std::string& eUrinalysis_ClarityIndicator_Name(eUrinalysis_ClarityIndicator m);
25
26// Keep enums in sync with appropriate schema/cdm/PatienAssessmentEnums.proto file !!
27enum class eUrinalysis_UrineColor {
28 NullColor = 0,
29 PaleYellow,
30 Yellow,
31 DarkYellow
32};
33extern const std::string& eUrinalysis_UrineColor_Name(eUrinalysis_UrineColor m);
34
35
36class CDM_DECL SEUrinalysis : public SEPatientAssessment
37{
38 friend class PBPatientAssessment;//friend the serialization class
39public:
40
41 SEUrinalysis(Logger* logger);
42 virtual ~SEUrinalysis();
43
44 virtual void Clear();
45
46 bool SerializeToString(std::string& output, eSerializationFormat m) const;
47 bool SerializeToFile(const std::string& filename) const;
48
49 virtual bool HasColor() const;
50 virtual eUrinalysis_UrineColor GetColor() const;
51 virtual void SetColor(eUrinalysis_UrineColor color);
52 virtual void InvalidateColor();
53
54 virtual bool HasAppearance() const;
55 virtual eUrinalysis_ClarityIndicator GetAppearance() const;
56 virtual void SetAppearance(eUrinalysis_ClarityIndicator c);
57 virtual void InvalidateAppearance();
58
59 virtual bool HasGlucose() const;
60 virtual eUrinalysis_PresenceIndicator GetGlucose() const;
61 virtual void SetGlucose(eUrinalysis_PresenceIndicator p);
62 virtual void InvalidateGlucose();
63
64 virtual bool HasKetone() const;
65 virtual eUrinalysis_PresenceIndicator GetKetone() const;
66 virtual void SetKetone(eUrinalysis_PresenceIndicator p);
67 virtual void InvalidateKetone();
68
69 virtual bool HasBilirubin() const;
70 virtual SEScalar& GetBilirubin();
71 virtual double GetBilirubin() const;
72
73 virtual bool HasSpecificGravity() const;
74 virtual SEScalar& GetSpecificGravity();
75 virtual double GetSpecificGravity() const;
76
77 virtual bool HasBlood() const;
78 virtual eUrinalysis_PresenceIndicator GetBlood() const;
79 virtual void SetBlood(eUrinalysis_PresenceIndicator p);
80 virtual void InvalidateBlood();
81
82 virtual bool HasPH() const;
83 virtual SEScalar& GetPH();
84 virtual double GetPH() const;
85
86 virtual bool HasProtein() const;
87 virtual eUrinalysis_PresenceIndicator GetProtein() const;
88 virtual void SetProtein(eUrinalysis_PresenceIndicator p);
89 virtual void InvalidateProtein();
90
91 virtual bool HasUrobilinogen() const;
92 virtual SEScalarMassPerVolume& GetUrobilinogen();
93 virtual double GetUrobilinogen(const MassPerVolumeUnit& unit) const;
94
95 virtual bool HasNitrite() const;
96 virtual eUrinalysis_PresenceIndicator GetNitrite() const;
97 virtual void SetNitrite(eUrinalysis_PresenceIndicator p);
98 virtual void InvalidateNitrite();
99
100 virtual bool HasLeukocyteEsterase() const;
101 virtual eUrinalysis_PresenceIndicator GetLeukocyteEsterase() const;
102 virtual void SetLeukocyteEsterase(eUrinalysis_PresenceIndicator p);
103 virtual void InvalidateLeukocyteEsterase();
104
105 virtual bool HasMicroscopic() const;
106 virtual SEUrinalysisMicroscopic& GetMicroscopic();
107 virtual const SEUrinalysisMicroscopic* GetMicroscopic() const;
108 virtual void RemoveMicroscopic();
109
110protected:
111
112 eUrinalysis_UrineColor m_Color;
113 eUrinalysis_ClarityIndicator m_Appearance;
114 eUrinalysis_PresenceIndicator m_Glucose;
115 eUrinalysis_PresenceIndicator m_Ketone;
118 eUrinalysis_PresenceIndicator m_Blood;
120 eUrinalysis_PresenceIndicator m_Protein;
122 eUrinalysis_PresenceIndicator m_Nitrite;
123 eUrinalysis_PresenceIndicator m_LeukocyteEsterase;
124
126};
Definition: Logger.h:71
Definition: SEScalarMassPerVolume.h:8
Definition: PBPatientAssessments.h:13
Data formed at a level of a clinicians report. This is high level data, such as a mean or generalized...
Definition: SEPatientAssessment.h:22
virtual bool SerializeToFile(const std::string &filename) const =0
virtual void Clear()
Definition: SEPatientAssessment.cpp:17
virtual bool SerializeToString(std::string &output, eSerializationFormat m) const =0
Definition: SEScalar.h:19
Definition: SEScalarMassPerVolume.h:37
Definition: SEUrinalysis.h:37
SEScalar * m_SpecificGravity
Definition: SEUrinalysis.h:117
eUrinalysis_UrineColor m_Color
Definition: SEUrinalysis.h:112
eUrinalysis_PresenceIndicator m_Nitrite
Definition: SEUrinalysis.h:122
eUrinalysis_ClarityIndicator m_Appearance
Definition: SEUrinalysis.h:113
SEScalarMassPerVolume * m_Urobilinogen
Definition: SEUrinalysis.h:121
eUrinalysis_PresenceIndicator m_Protein
Definition: SEUrinalysis.h:120
eUrinalysis_PresenceIndicator m_Glucose
Definition: SEUrinalysis.h:114
SEScalar * m_pH
Definition: SEUrinalysis.h:119
eUrinalysis_PresenceIndicator m_Ketone
Definition: SEUrinalysis.h:115
eUrinalysis_PresenceIndicator m_Blood
Definition: SEUrinalysis.h:118
SEScalar * m_Bilirubin
Definition: SEUrinalysis.h:116
eUrinalysis_PresenceIndicator m_LeukocyteEsterase
Definition: SEUrinalysis.h:123
SEUrinalysisMicroscopic * m_Microscopic
Definition: SEUrinalysis.h:125
Definition: SEUrinalysisMicroscopic.h:26

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.