Exemplo n.º 1
0
        private ChartDTO GetChartDataByHead(MonitorCollectDataEntity eHead)
        {
            MonitorHelper oldHelper = new MonitorHelper();
            IList <MonitorCollectDataEntryEntity> lstDetail = oldHelper.GetMonitorData(eHead.FID, mIsCompressed);

            mDetailEntity = lstDetail;

            if (Convert.ToInt32(Sensor.SensorType).Equals(Convert.ToInt32(Common.Consts.SensorType.Sterilizer)))
            {
                // 灭菌
                return(GetSterilizerChartData(eHead, lstDetail));
            }
            else if (Convert.ToInt32(Sensor.SensorType).Equals(Convert.ToInt32(Common.Consts.SensorType.Washer)))
            {
                // 清洗
                return(GetWasherChartData(eHead, lstDetail));
            }
            else
            {
                logger.WarnFormat("未处理的设备类型([传感器:{0},设备类型:{1}])", Sensor.SensorKey, Sensor.SensorType);

                return(null);
            }

            //return null;
        }
Exemplo n.º 2
0
        public ChartDTO GetChartData(string sdhID)
        {
            IsNew = true;

            SensorOldHelper          helper = new SensorOldHelper();
            MonitorCollectDataEntity eHead  = helper.SelectSingle <MonitorCollectDataEntity>(string.Format("FID = {0}", sdhID), string.Empty);

            mHeadEntity   = eHead;
            mDetailEntity = null;

            if (eHead == null)
            {
                return(null);
            }
            else
            {
                if (eHead.FHasCompress != null && eHead.FHasCompress == 1)
                {
                    // 已压缩
                    mIsCompressed = true;
                }

                return(GetChartDataByHead(eHead));
            }
        }
Exemplo n.º 3
0
        private string GetChartTitle(MonitorCollectDataEntity eHead)
        {
            string programCaption = string.Empty;
            string programName    = eHead.FPargramName;

            if (!string.IsNullOrEmpty(programName))
            {
                programCaption = Business.Utility.GetProgramNameCaption(Sensor, programName);
            }

            return(string.Format("{0}\n{1}", mSensor.SensorName, programCaption));
        }
Exemplo n.º 4
0
        private ChartDTO GetSterilizerChartData(MonitorCollectDataEntity eHead, IList <MonitorCollectDataEntryEntity> lstDetail)
        {
            SeriesDTO s1 = GetSeries(lstDetail, "FValue1", Properties.Resource.SterilizerSeries1);
            SeriesDTO s2 = GetSeries(lstDetail, "FValue2", Properties.Resource.SterilizerSeries2);
            SeriesDTO s3 = GetSeries(lstDetail, "FValue3", Properties.Resource.SterilizerSeries3);
            SeriesDTO s4 = GetSeries(lstDetail, "FValue4", Properties.Resource.SterilizerSeries4);
            SeriesDTO s5 = GetSeries(lstDetail, "FValue5", Properties.Resource.SterilizerSeries5);
            SeriesDTO s6 = GetSeries(lstDetail, "FValue6", Properties.Resource.SterilizerSeries6);

            AxesDTO axesTemp = new AxesDTO(AxesName.Temperature.ToString());

            axesTemp.AxisYProperty.Add(AxesDTO.AxisProperty.MinValueSerializable.ToString(), Properties.Resource.TempMinValue);
            axesTemp.AxisYProperty.Add(AxesDTO.AxisProperty.MaxValueSerializable.ToString(), Properties.Resource.TempMaxValue);
            axesTemp.AxisYProperty.Add(AxesDTO.AxisProperty.EndText.ToString(), Properties.Resource.TempUnit);

            AxesDTO axesPressure = new AxesDTO(AxesName.Pressure.ToString());

            if (Properties.Resource.PressureMinValue.Equals(Properties.Resource.PressureMaxValue))
            {
                axesPressure.AxisYProperty.Add(AxesDTO.AxisProperty.MinValueSerializable.ToString(), Properties.Resource.PressureMinValue);
                axesPressure.AxisYProperty.Add(AxesDTO.AxisProperty.MaxValueSerializable.ToString(), Properties.Resource.PressureMaxValue);
            }
            axesPressure.AxisYProperty.Add(AxesDTO.AxisProperty.EndText.ToString(), Properties.Resource.PressureUnit);

            Dictionary <string, SeriesDTO> dicSeriesTemp = new Dictionary <string, SeriesDTO>();

            dicSeriesTemp.Add(Properties.Resource.SterilizerSeries1, s1);
            dicSeriesTemp.Add(Properties.Resource.SterilizerSeries2, s2);
            Dictionary <string, SeriesDTO> dicSeriesPressure = new Dictionary <string, SeriesDTO>();

            dicSeriesPressure.Add(Properties.Resource.SterilizerSeries3, s3);
            dicSeriesPressure.Add(Properties.Resource.SterilizerSeries4, s4);
            dicSeriesPressure.Add(Properties.Resource.SterilizerSeries5, s5);
            dicSeriesPressure.Add(Properties.Resource.SterilizerSeries6, s6);

            ChartDTO chartData = new ChartDTO();

            chartData.ChartTitle = GetChartTitle(eHead);
            chartData.AxesDictionary.Add(AxesName.Temperature.ToString(), axesTemp);
            chartData.AxesDictionary.Add(AxesName.Pressure.ToString(), axesPressure);
            chartData.SeriesDictionary.Add(AxesName.Temperature.ToString(), dicSeriesTemp);
            chartData.SeriesDictionary.Add(AxesName.Pressure.ToString(), dicSeriesPressure);

            chartData.Comment = GetComment(eHead, s1);

            return(chartData);
        }
Exemplo n.º 5
0
        private ChartDTO GetWasherChartData(MonitorCollectDataEntity eHead, IList <MonitorCollectDataEntryEntity> lstDetail)
        {
            SeriesDTO s1 = GetSeries(lstDetail, "FValue1", Properties.Resource.WasherSeries1);  //Med
            SeriesDTO s2 = GetSeries(lstDetail, "FValue2", Properties.Resource.WasherSeries2);  //CT
            SeriesDTO s3 = GetSeries(lstDetail, "FValue3", Properties.Resource.WasherSeries3);  //CDNo
            SeriesDTO s5 = GetSeries(lstDetail, "FValue4", Properties.Resource.WasherSeries5);  //Ao
            SeriesDTO s4 = GetSeries(lstDetail, "FValue5", Properties.Resource.WasherSeries4);  //DosV

            AxesDTO axesTemp = new AxesDTO(AxesName.Temperature.ToString());

            axesTemp.AxisYProperty.Add(AxesDTO.AxisProperty.EndText.ToString(), Properties.Resource.TempUnit);
            //axesTemp.SeriesList.Add(sTempIndepCham);

            AxesDTO axesAo = new AxesDTO(AxesName.AoValue.ToString());

            axesAo.AxisYProperty.Add(AxesDTO.AxisProperty.MinValueSerializable.ToString(), Properties.Resource.A0MinValue);
            axesAo.AxisYProperty.Add(AxesDTO.AxisProperty.MaxValueSerializable.ToString(), Properties.Resource.A0MaxValue);

            Dictionary <string, SeriesDTO> dicSeriesTemp = new Dictionary <string, SeriesDTO>();

            dicSeriesTemp.Add(Properties.Resource.WasherSeries2, s2);
            Dictionary <string, SeriesDTO> dicSeriesAo = new Dictionary <string, SeriesDTO>();

            dicSeriesAo.Add(Properties.Resource.WasherSeries5, s5);
            dicSeriesAo.Add(Properties.Resource.WasherSeries1, s1);
            dicSeriesAo.Add(Properties.Resource.WasherSeries3, s3);
            dicSeriesAo.Add(Properties.Resource.WasherSeries4, s4);

            ChartDTO chartData = new ChartDTO();

            chartData.ChartTitle = GetChartTitle(eHead);

            chartData.AxesDictionary.Add(AxesName.Temperature.ToString(), axesTemp);
            chartData.AxesDictionary.Add(AxesName.AoValue.ToString(), axesAo);
            chartData.SeriesDictionary.Add(AxesName.Temperature.ToString(), dicSeriesTemp);
            chartData.SeriesDictionary.Add(AxesName.AoValue.ToString(), dicSeriesAo);

            chartData.Comment = GetComment(eHead, s1);

            //chartData.ErrorData = Utility.GetSensorErrors(eHead, mSyncLast);

            return(chartData);
        }
Exemplo n.º 6
0
        private static string GetComment(MonitorCollectDataEntity eHead, SeriesDTO dtoSeries)
        {
            if (eHead == null || !eHead.FBeginDate.HasValue || dtoSeries == null || dtoSeries.Points == null || dtoSeries.Points.Count == 0)
            {
                return(string.Empty);
            }

            StringBuilder builder = new StringBuilder();

            builder.AppendLine("开始日期:");
            builder.Append("  ").AppendLine(eHead.FBeginDate.Value.ToString("yyyy-MM-dd"));
            builder.Append("  ").AppendLine(eHead.FBeginDate.Value.ToString("HH:mm:ss"));

            DateTime dtEnd = Convert.ToDateTime(dtoSeries.Points[dtoSeries.Points.Count - 1].Argument);
            TimeSpan ts    = dtEnd - eHead.FBeginDate.Value;

            builder.AppendLine("消耗总时间:");
            builder.Append("  ").Append(ts.TotalMinutes.ToString("f2")).AppendLine("分");

            return(builder.ToString());
        }
Exemplo n.º 7
0
        /// <summary>
        /// 匹配CSSD记录
        /// </summary>
        /// <param name="dv"></param>
        private void MatchMonitorRecord(MonitorDeviceEntity dv)
        {
            try
            {
                MonitorDeviceQueueEntity MonitorEntity = null;
                MonitorCollectDataEntity CollectEntity = null;
                MonitorDeviceEntity      Device        = dv;
                MonitorHelper            monitor       = new MonitorHelper();

                MonitorEntity = (MonitorDeviceQueueEntity)monitor.SelectSingle(typeof(MonitorDeviceQueueEntity),
                                                                               String.Format("FDeviceID='{0}'", Device.Code), "FBeginDate Desc");

                if (MonitorEntity != null)
                {
                    DateTime deBegin = MonitorEntity.FBeginDate.Value.AddMinutes(-5);
                    DateTime deEnd   = MonitorEntity.FBeginDate.Value.AddMinutes(20);

                    #region 队列表中有记录处理

                    CollectEntity = (MonitorCollectDataEntity)monitor.SelectSingle(typeof(MonitorCollectDataEntity),
                                                                                   string.Format("FLogID='{0}' And FDeviceID='{1}' And FMonitorType={2}", MonitorEntity.FLogID,
                                                                                                 MonitorEntity.FDeviceID, Device.DeviceType), string.Empty);

                    if (CollectEntity != null)
                    {
                        //正常情况处理:正常情况是指先在PC系统中做灭菌记录,然后开始启动灭菌设备.
                        if (CollectEntity.FEndDate != null)
                        {
                            monitor.Delete(MonitorEntity);
                        }
                        logger.Info("正常情况匹配完成");
                    }
                    else
                    {
                        //非正常情况处理
                        CollectEntity = monitor.SelectSingle("FDeviceID='" + MonitorEntity.FDeviceID + "' And FBeginDate>='" +
                                                             deBegin.ToString("yyyy-MM-dd HH:mm:ss") + "' And FBeginDate<='" +
                                                             deEnd.ToString("yyyy-MM-dd HH:mm:ss") + "'",
                                                             "FBeginDate Desc");

                        //CollectEntity = (MonitorCollectDataEntity)monitor.SelectSingle(typeof(MonitorCollectDataEntity),
                        //    string.Format("FDeviceID='{0}' And FMonitorType={1}",
                        //    MonitorEntity.FDeviceID, Device.DeviceType), "FBeginDate Desc");

                        //如果有记录,取时间最近的与当前灭菌记录匹配,并更新FLogID
                        if (CollectEntity == null)
                        {
                            logger.WarnFormat("非正常情况:在时间区间【-5~20】内,未找到监控主数据!(设备ID:[{0}]; 开始时间:[{1}]; 结束时间:[{2}])",
                                              MonitorEntity.FDeviceID, deBegin.ToString("yyyy-MM-dd HH:mm:ss"), deEnd.ToString("yyyy-MM-dd HH:mm:ss"));
                            //CollectEntity = new MonitorCollectDataEntity();
                            //CollectEntity.FID = monitor.GetMaxIDByEntity(typeof(MonitorCollectDataEntity));
                            //CollectEntity.FLogID = MonitorEntity.FLogID; CollectEntity.FDeviceID = MonitorEntity.FDeviceID;
                            //CollectEntity.FMonitorType = Device.DeviceType;
                            //CollectEntity.FDataSourceType = Device.SourceType;
                            //CollectEntity.FBeginDate = MonitorEntity.FBeginDate;
                            //monitor.Create(CollectEntity);
                        }
                        else
                        {
                            using (TransactionScope tran = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 5, 0)))
                            {
                                CollectEntity.FLogID = MonitorEntity.FLogID;
                                monitor.Update(CollectEntity);

                                DevicesUseLogEntity uselog = (DevicesUseLogEntity)monitor.SelectSingle(typeof(DevicesUseLogEntity),
                                                                                                       string.Format("LogID='{0}'", MonitorEntity.FLogID), string.Empty);
                                if (uselog != null)
                                {
                                    uselog.MonitorDataID = CollectEntity.FID;

                                    if (CollectEntity.FBeginDate != null && CollectEntity.FBeginDate.HasValue)
                                    {
                                        uselog.OldBeginDate = uselog.BeginDate;
                                        uselog.BeginDate    = CollectEntity.FBeginDate.Value;
                                    }
                                    uselog.EndDate = CollectEntity.FEndDate;

                                    monitor.Update(uselog);
                                }

                                tran.Complete();
                            }
                            logger.InfoFormat("非正常情况匹配成功,MonitorDeviceQueueEntity.FlogID: [{0}]", MonitorEntity.FLogID);
                        }
                    }

                    #endregion
                }
                else
                {
                }
            }
            catch (Exception ex)
            {
                logger.Error(dv);
                throw ex;
            }
        }