public void Add_Beat__Cardiac_Ventricular_Mechanical(Patient p) { switch (Lead.Value) { default: return; case Lead.Values.SPO2: Overwrite(Draw.SPO2_Rhythm(p, 1f)); break; case Lead.Values.ABP: if (p.IABP_Active) { Overwrite(Scale(p, Draw.IABP_ABP_Rhythm(p, 1f))); } else if (p.Cardiac_Rhythm.HasPulse_Ventricular) { Overwrite(Scale(p, Draw.ABP_Rhythm(p, 1f))); } break; case Lead.Values.CVP: Overwrite(Draw.CVP_Rhythm(p, 1f)); break; case Lead.Values.PA: // Vary PA waveforms based on PA catheter placement if (p.PulmonaryArtery_Placement.Value == PulmonaryArtery_Rhythms.Values.Right_Atrium) { Overwrite(Scale(p, Draw.CVP_Rhythm(p, 1f))); } else if (p.PulmonaryArtery_Placement.Value == PulmonaryArtery_Rhythms.Values.Right_Ventricle) { Overwrite(Scale(p, Draw.RV_Rhythm(p, 1f))); } else if (p.PulmonaryArtery_Placement.Value == PulmonaryArtery_Rhythms.Values.Pulmonary_Artery) { Overwrite(Scale(p, Draw.PA_Rhythm(p, 1f))); } else if (p.PulmonaryArtery_Placement.Value == PulmonaryArtery_Rhythms.Values.Pulmonary_Capillary_Wedge) { Overwrite(Scale(p, Draw.PCW_Rhythm(p, 1f))); } break; case Lead.Values.ICP: Overwrite(Draw.ICP_Rhythm(p, 1f)); break; case Lead.Values.IAP: Overwrite(Draw.IAP_Rhythm(p, 1f)); break; } SortPoints(); }