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; }
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)); } }
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)); }
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); }
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); }
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()); }
/// <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; } }