Beispiel #1
0
        public void Add_Beat__Cardiac_Baseline(Patient patient)
        {
            SetForwardBuffer(patient);

            if (IsECG)
            {
                patient.Cardiac_Rhythm.ECG_Isoelectric(patient, this);
            }
            else if (Lead.Value != Leads.Values.RR && Lead.Value != Leads.Values.ETCO2)
            {
                // Fill waveform through to future buffer with flatline
                double fill = (lengthSeconds * forwardBuffer) - Last(Points).X;
                Concatenate(Waveforms.Waveform_Flatline(fill > patient.HR_Seconds ? fill : patient.HR_Seconds, 0f));
            }

            if (Lead.Value == Leads.Values.CVP)
            {
                if (patient.Cardiac_Rhythm.HasPulse_Atrial && !patient.Cardiac_Rhythm.HasPulse_Ventricular)
                {
                    Overwrite(Waveforms.CVP_Rhythm(patient, 0.25f));
                }
                else if (!patient.Cardiac_Rhythm.HasPulse_Atrial && patient.Cardiac_Rhythm.HasPulse_Ventricular)
                {
                    Overwrite(Waveforms.CVP_Rhythm(patient, 0.5f));
                }
                else if (patient.Cardiac_Rhythm.HasPulse_Atrial && patient.Cardiac_Rhythm.HasPulse_Ventricular)
                {
                    Overwrite(Waveforms.CVP_Rhythm(patient, 1f));
                }
            }
        }
Beispiel #2
0
 public void Add_Beat__Cardiac_Pacemaker(Patient patient)
 {
     if (IsECG)
     {
         Overwrite(Waveforms.ECG_Pacemaker(patient, Lead));
     }
 }
Beispiel #3
0
 public void Add_Beat__Cardiac_Defibrillation(Patient patient)
 {
     if (IsECG)
     {
         Overwrite(Waveforms.ECG_Defibrillation(patient, Lead));
     }
 }
Beispiel #4
0
        public void Add_Beat__Respiratory_Expiration(Patient patient)
        {
            switch (Lead.Value)
            {
            default: break;

            case Leads.Values.RR: Overwrite(Waveforms.RR_Rhythm(patient, false)); break;

            case Leads.Values.ETCO2: Overwrite(Waveforms.ETCO2_Rhythm(patient)); break;
            }
        }
Beispiel #5
0
        public void Add_Beat__Respiratory_Inspiration(Patient patient)
        {
            switch (Lead.Value)
            {
            default: break;

            case Leads.Values.RR: Overwrite(Waveforms.RR_Rhythm(patient, true)); break;

            case Leads.Values.ETCO2: break;        // End-tidal waveform is only present on expiration!! Is flatline on inspiration.
            }
        }
Beispiel #6
0
        public void Add_Beat__Respiratory_Baseline(Patient patient)
        {
            SetForwardBuffer(patient);

            if (Lead.Value == Leads.Values.RR || Lead.Value == Leads.Values.ETCO2)
            {
                // Fill waveform through to future buffer with flatline
                double fill = (lengthSeconds * forwardBuffer) - Last(Points).X;
                Concatenate(Waveforms.Waveform_Flatline(fill > patient.RR_Seconds ? fill : patient.RR_Seconds, 0f));
            }
        }
Beispiel #7
0
        public void Add_Beat__Cardiac_Ventricular(Patient patient)
        {
            if (IsECG)
            {
                patient.Cardiac_Rhythm.ECG_Ventricular(patient, this);
            }
            else if (Lead.Value == Leads.Values.SPO2 && patient.Cardiac_Rhythm.HasPulse_Ventricular)
            {
                Overwrite(Waveforms.SPO2_Rhythm(patient, 1f));
            }
            else if (Lead.Value == Leads.Values.ABP)
            {
                if (patient.IABP_Active)
                {
                    Overwrite(Waveforms.IABP_ABP_Rhythm(patient, 1f));
                }
                else if (patient.Cardiac_Rhythm.HasPulse_Ventricular)
                {
                    Overwrite(Waveforms.ABP_Rhythm(patient, 1f));
                }
            }
            else if (Lead.Value == Leads.Values.PA && patient.Cardiac_Rhythm.HasPulse_Ventricular)
            {
                Overwrite(Waveforms.PA_Rhythm(patient, 1f));
            }
            else if (Lead.Value == Leads.Values.ICP && patient.Cardiac_Rhythm.HasPulse_Ventricular)
            {
                Overwrite(Waveforms.ICP_Rhythm(patient, 1f));
            }
            else if (Lead.Value == Leads.Values.IAP && patient.Cardiac_Rhythm.HasPulse_Ventricular)
            {
                Overwrite(Waveforms.IAP_Rhythm(patient, 1f));
            }

            if (Lead.Value == Leads.Values.IABP && patient.IABP_Active)
            {
                if (patient.Cardiac_Rhythm.HasWaveform_Ventricular && patient.IABP_Trigger == "ECG")
                {
                    // ECG Trigger works only if ventricular ECG waveform
                    Overwrite(Waveforms.IABP_Balloon_Rhythm(patient, 1f));
                }
                else if (patient.Cardiac_Rhythm.HasPulse_Ventricular && patient.IABP_Trigger == "Pressure")
                {
                    // Pressure Trigger works only if ventricular pressure impulse
                    Overwrite(Waveforms.IABP_Balloon_Rhythm(patient, 1f));
                }
            }
        }