Esempio n. 1
0
        public void ClampVitals(
            int hrMin, int hrMax,
            int spo2Min, int spo2Max,
            int etco2Min, int etco2Max,
            int sbpMin, int sbpMax, int dbpMin, int dbpMax,
            int pspMin, int pspMax, int pdpMin, int pdpMax)
        {
            VS_Settings.HR    = Utility.Clamp(VS_Settings.HR, hrMin, hrMax);
            VS_Settings.SPO2  = Utility.Clamp(VS_Settings.SPO2, spo2Min, spo2Max);
            VS_Settings.ETCO2 = Utility.Clamp(VS_Settings.ETCO2, etco2Min, etco2Max);
            VS_Settings.NSBP  = Utility.Clamp(VS_Settings.NSBP, sbpMin, sbpMax);
            VS_Settings.NDBP  = Utility.Clamp(VS_Settings.NDBP, dbpMin, dbpMax);
            VS_Settings.NMAP  = Patient.CalculateMAP(VS_Settings.NSBP, VS_Settings.NDBP);
            VS_Settings.ASBP  = Utility.Clamp(VS_Settings.ASBP, sbpMin, sbpMax);
            VS_Settings.ADBP  = Utility.Clamp(VS_Settings.ADBP, sbpMin, sbpMax);
            VS_Settings.AMAP  = Patient.CalculateMAP(VS_Settings.ASBP, VS_Settings.ADBP);
            VS_Settings.PSP   = Utility.Clamp(VS_Settings.PSP, pspMin, pspMax);
            VS_Settings.PDP   = Utility.Clamp(VS_Settings.PDP, pdpMin, pdpMax);
            VS_Settings.PMP   = Patient.CalculateMAP(VS_Settings.PSP, VS_Settings.PDP);

            VS_Actual.Set(VS_Settings);

            bufferCardiac_BaseHR     = VS_Settings.HR;
            bufferParadoxus_BaseASBP = VS_Settings.ASBP;
            switchParadoxus          = false;

            SetTimers();
            OnCardiac_Baseline();
            OnRespiratory_Baseline();
            OnPatientEvent(PatientEventTypes.Vitals_Change);
        }
Esempio n. 2
0
        public void UpdateParameters(
            int hr, int spo2, int rr, int etco2,
            double t,
            int cvp,
            int nsbp, int ndbp, int nmap,
            int asbp, int adbp, int amap,
            int psp, int pdp, int pmp,
            int icp, int iap,
            int pacer_threshold,
            bool puls_paradoxus, bool puls_alternans,
            double [] st_elev, double [] t_elev,
            Cardiac_Rhythms.Values card_rhythm,
            CardiacAxes.Values card_axis,
            Respiratory_Rhythms.Values resp_rhythm,
            float resp_ier_i, float resp_ier_e,
            bool mech_vent,
            int fhr, Intensity.Values fhr_var, List <FetalHeartDecelerations.Values> fhr_rhythms,
            int uc_freq, int uc_duration, Intensity.Values uc_intensity)
        {
            Updated = DateTime.UtcNow;

            // Set all vital sign parameters

            VS_Settings.HR    = hr;
            VS_Settings.RR    = rr;
            VS_Settings.SPO2  = spo2;
            VS_Settings.ETCO2 = etco2;
            VS_Settings.T     = t;
            VS_Settings.CVP   = cvp;
            VS_Settings.ICP   = icp;
            VS_Settings.IAP   = iap;

            VS_Settings.NSBP = nsbp;
            VS_Settings.NDBP = ndbp;
            VS_Settings.NMAP = nmap;
            VS_Settings.ASBP = asbp;
            VS_Settings.ADBP = adbp;
            VS_Settings.AMAP = amap;
            VS_Settings.PSP  = psp;
            VS_Settings.PDP  = pdp;
            VS_Settings.PMP  = pmp;

            // Reset actual vital signs to set parameters
            VS_Actual.Set(VS_Settings);

            // Change in cardiac or respiratory rhythm? Reset all buffer counters and switches
            if (Cardiac_Rhythm.Value != card_rhythm)
            {
                counterCardiac_Aberrancy     = 0;
                counterCardiac_Arrhythmia    = 0;
                switchCardiac_Arrhythmia     = false;
                bufferCardiac_BaseHR         = hr;
                Cardiac_Rhythm.AberrantBeat  = false;
                Cardiac_Rhythm.AlternansBeat = false;
            }
            if (Respiratory_Rhythm.Value != resp_rhythm)
            {
                Respiration_Inflated = false;
            }

            Cardiac_Rhythm.Value = card_rhythm;
            Cardiac_Axis.Value   = card_axis;
            Pacemaker_Threshold  = pacer_threshold;
            ST_Elevation         = st_elev;
            T_Elevation          = t_elev;

            // Reset buffers and switches for pulsus paradoxus (must be below ASBP!)
            bufferParadoxus_BaseASBP = VS_Settings.ASBP;
            switchParadoxus          = false;
            Pulsus_Paradoxus         = puls_paradoxus;
            Pulsus_Alternans         = puls_alternans;

            Respiratory_Rhythm.Value = resp_rhythm;
            Respiratory_IERatio_I    = resp_ier_i;
            Respiratory_IERatio_E    = resp_ier_e;
            Mechanically_Ventilated  = mech_vent;

            FHR = fhr;
            FHR_Variability.Value       = fhr_var;
            FHR_Decelerations.ValueList = fhr_rhythms;
            UC_Frequency       = uc_freq;
            UC_Duration        = uc_duration;
            UC_Intensity.Value = uc_intensity;

            SetTimers();
            OnCardiac_Baseline();
            OnRespiratory_Baseline();

            OnPatientEvent(PatientEventTypes.Vitals_Change);
        }
Esempio n. 3
0
        public void Load_Process(string inc)
        {
            StringReader sRead = new StringReader(inc);

            try {
                string line;
                while ((line = sRead.ReadLine()) != null)
                {
                    if (line.Contains(":"))
                    {
                        string pName  = line.Substring(0, line.IndexOf(':')),
                               pValue = line.Substring(line.IndexOf(':') + 1);
                        switch (pName)
                        {
                        default: break;

                        case "Updated": Updated = Utility.DateTime_FromString(pValue); break;

                        case "HR": VS_Settings.HR = int.Parse(pValue); break;

                        case "SPO2": VS_Settings.SPO2 = int.Parse(pValue); break;

                        case "RR": VS_Settings.RR = int.Parse(pValue); break;

                        case "ETCO2": VS_Settings.ETCO2 = int.Parse(pValue); break;

                        case "CVP": VS_Settings.CVP = int.Parse(pValue); break;

                        case "NSBP": VS_Settings.NSBP = int.Parse(pValue); break;

                        case "NDBP": VS_Settings.NDBP = int.Parse(pValue); break;

                        case "NMAP": VS_Settings.NMAP = int.Parse(pValue); break;

                        case "ASBP": VS_Settings.ASBP = int.Parse(pValue); break;

                        case "ADBP": VS_Settings.ADBP = int.Parse(pValue); break;

                        case "AMAP": VS_Settings.AMAP = int.Parse(pValue); break;

                        case "PSP": VS_Settings.PSP = int.Parse(pValue); break;

                        case "PDP": VS_Settings.PDP = int.Parse(pValue); break;

                        case "PMP": VS_Settings.PMP = int.Parse(pValue); break;

                        case "ICP": VS_Settings.ICP = int.Parse(pValue); break;

                        case "IAP": VS_Settings.IAP = int.Parse(pValue); break;

                        case "T": VS_Settings.T = double.Parse(pValue); break;

                        case "ST_Elevation":
                            string [] e_st = pValue.Split(',').Where((o) => o != "").ToArray();
                            for (int i = 0; i < e_st.Length && i < ST_Elevation.Length; i++)
                            {
                                ST_Elevation [i] = double.Parse(e_st [i]);
                            }
                            break;

                        case "T_Elevation":
                            string [] e_t = pValue.Split(',').Where((o) => o != "").ToArray();
                            for (int i = 0; i < e_t.Length && i < T_Elevation.Length; i++)
                            {
                                T_Elevation [i] = double.Parse(e_t [i]);
                            }
                            break;

                        case "Cardiac_Rhythm": Cardiac_Rhythm.Value = (Cardiac_Rhythms.Values)Enum.Parse(typeof(Cardiac_Rhythms.Values), pValue); break;

                        case "Cardiac_Axis": Cardiac_Axis.Value = (CardiacAxes.Values)Enum.Parse(typeof(CardiacAxes.Values), pValue); break;

                        case "PulsusParadoxus": Pulsus_Paradoxus = bool.Parse(pValue); break;

                        case "PulsusAlternans": Pulsus_Alternans = bool.Parse(pValue); break;

                        case "Pacemaker_Rate": Pacemaker_Rate = int.Parse(pValue); break;

                        case "Pacemaker_Energy": Pacemaker_Energy = int.Parse(pValue); break;

                        case "Pacemaker_Threshold": Pacemaker_Threshold = int.Parse(pValue); break;

                        case "TransducerZeroed_ABP": TransducerZeroed_ABP = bool.Parse(pValue); break;

                        case "TransducerZeroed_CVP": TransducerZeroed_CVP = bool.Parse(pValue); break;

                        case "TransducerZeroed_PA": TransducerZeroed_PA = bool.Parse(pValue); break;

                        case "TransducerZeroed_ICP": TransducerZeroed_ICP = bool.Parse(pValue); break;

                        case "TransducerZeroed_IAP": TransducerZeroed_IAP = bool.Parse(pValue); break;

                        case "Respiratory_Rhythm": Respiratory_Rhythm.Value = (Respiratory_Rhythms.Values)Enum.Parse(typeof(Respiratory_Rhythms.Values), pValue); break;

                        case "Respiration_Inflated": Respiration_Inflated = bool.Parse(pValue); break;

                        case "Respiratory_IERatio_I": Respiratory_IERatio_I = int.Parse(pValue); break;

                        case "Respiratory_IERatio_E": Respiratory_IERatio_E = int.Parse(pValue); break;

                        case "Mechanically_Ventilated": Mechanically_Ventilated = bool.Parse(pValue); break;

                        case "FHR": FHR = int.Parse(pValue); break;

                        case "FHR_Variability": FHR_Variability.Value = (Intensity.Values)Enum.Parse(typeof(Intensity.Values), pValue); break;

                        case "FHR_Rhythms":
                            foreach (string fhr_rhythm in pValue.Split(',').Where((o) => o != ""))
                            {
                                FHR_Decelerations.ValueList.Add((FetalHeartDecelerations.Values)Enum.Parse(typeof(FetalHeartDecelerations.Values), fhr_rhythm));
                            }
                            break;

                        case "UterineContraction_Frequency": UC_Frequency = int.Parse(pValue); break;

                        case "UterineContraction_Duration": UC_Duration = int.Parse(pValue); break;

                        case "UterineContraction_Intensity": UC_Intensity.Value = (Intensity.Values)Enum.Parse(typeof(Intensity.Values), pValue); break;
                        }
                    }
                }
            } catch (Exception e) {
                new Server.Servers().Post_Exception(e);
                // If the load fails... just bail on the actual value parsing and continue the load process
            }

            sRead.Close();

            // Reset measurements to set parameters
            VS_Actual.Set(VS_Settings);

            SetTimers();
            OnCardiac_Baseline();
            OnRespiratory_Baseline();

            OnPatientEvent(PatientEventTypes.Vitals_Change);
        }