SEElectroCardioGramWaveform.h
1 /* Distributed under the Apache License, Version 2.0.
2  See accompanying NOTICE file for details.*/
3 
4 #pragma once
5 
6 // Keep enums in sync with appropriate schema/cdm/ElectroCardioGram.proto file !!
7 enum class eElectroCardioGram_WaveformType { Sinus = 0,
8  VentricularFibrillation,
9  VentricularTachycardia };
10 extern CDM_DECL const std::string& eElectroCardioGram_WaveformType_Name(eElectroCardioGram_WaveformType m);
11 
12 // Keep enums in sync with appropriate schema/cdm/CompartmentEnums.proto file !!
13 enum class eElectroCardioGram_WaveformLead { NullLead = 0,
14  Lead1,
15  Lead2,
16  Lead3,
17  Lead4,
18  Lead5,
19  Lead6,
20  Lead7,
21  Lead8,
22  Lead9,
23  Lead10,
24  Lead11,
25  Lead12 };
26 extern CDM_DECL const std::string& eElectroCardioGram_WaveformLead_Name(eElectroCardioGram_WaveformLead m);
27 
28 
29 class CDM_DECL SEElectroCardioGramWaveform : public Loggable
30 {
31  friend class PBElectroCardioGram;//friend the serialization class
32 public:
33 
35  virtual ~SEElectroCardioGramWaveform();
36 
37  virtual void Clear();// Deletes all members
38 
39  virtual bool HasLeadNumber() const;
40  virtual eElectroCardioGram_WaveformLead GetLeadNumber() const;
41  virtual void SetLeadNumber(eElectroCardioGram_WaveformLead n);
42  virtual void InvalidateLeadNumber();
43 
44  virtual eElectroCardioGram_WaveformType GetType() const;
45  virtual void SetType(eElectroCardioGram_WaveformType t);
46 
47  virtual bool HasOriginalData() const;
48  virtual SEArrayElectricPotential& GetOriginalData();
49  virtual const SEArrayElectricPotential* GetOriginalData() const;
50 
51  virtual bool HasActiveCycle() const;
52  virtual SEArrayElectricPotential& GetActiveCycle();
53  virtual const SEArrayElectricPotential* GetActiveCycle() const;
54  virtual void GenerateActiveCycle(const SEScalarFrequency& hr, const SEScalarTime& step, double amplitudeModifier);
55 
56  virtual size_t GetActiveIndex() { return m_ActiveIndex; }
57  virtual void SetActiveIndex(size_t idx) { m_ActiveIndex = idx; }
58 
59  virtual void GetCycleValue(SEScalarElectricPotential& v, bool advance);
60 
61 protected:
62 
63  eElectroCardioGram_WaveformLead m_LeadNumber;
64  eElectroCardioGram_WaveformType m_Type;
67  size_t m_ActiveIndex;
69 };
Definition: Logger.h:23
Definition: Logger.h:71
Definition: PBElectroCardioGram.h:10
Definition: SEArrayElectricPotential.h:8
Definition: SEElectroCardioGramWaveform.h:30
SEArrayElectricPotential * m_OriginalData
Definition: SEElectroCardioGramWaveform.h:65
bool m_Recycling
Definition: SEElectroCardioGramWaveform.h:68
SEArrayElectricPotential * m_ActiveCycle
Definition: SEElectroCardioGramWaveform.h:66
size_t m_ActiveIndex
Definition: SEElectroCardioGramWaveform.h:67
virtual size_t GetActiveIndex()
Definition: SEElectroCardioGramWaveform.h:56
eElectroCardioGram_WaveformLead m_LeadNumber
Definition: SEElectroCardioGramWaveform.h:63
eElectroCardioGram_WaveformType m_Type
Definition: SEElectroCardioGramWaveform.h:64
virtual void SetActiveIndex(size_t idx)
Definition: SEElectroCardioGramWaveform.h:57
Definition: SEScalarElectricPotential.h:25
Definition: SEScalarFrequency.h:26
Definition: SEScalarTime.h:28

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.