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 !!
7enum class eElectroCardioGram_WaveformType { Sinus = 0,
8 VentricularFibrillation,
9 VentricularTachycardia };
10extern CDM_DECL const std::string& eElectroCardioGram_WaveformType_Name(eElectroCardioGram_WaveformType m);
11
12// Keep enums in sync with appropriate schema/cdm/CompartmentEnums.proto file !!
13enum 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 };
26extern CDM_DECL const std::string& eElectroCardioGram_WaveformLead_Name(eElectroCardioGram_WaveformLead m);
27
28
30{
31 friend class PBElectroCardioGram;//friend the serialization class
32public:
33
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
61protected:
62
63 eElectroCardioGram_WaveformLead m_LeadNumber;
64 eElectroCardioGram_WaveformType m_Type;
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.