diff --git a/HealthMonitor.Service/Resolver/BloodpressResolver.cs b/HealthMonitor.Service/Resolver/BloodpressResolver.cs index bbeec90..fa6fe30 100644 --- a/HealthMonitor.Service/Resolver/BloodpressResolver.cs +++ b/HealthMonitor.Service/Resolver/BloodpressResolver.cs @@ -196,53 +196,52 @@ namespace HealthMonitor.Service.Resolver var systolicAvg = await _serviceTDengine.GetAvgExceptMaxMinValueAsync("systolic_value", "stb_hm_bloodpress", $"ts>='{startTime:yyyy-MM-ddTHH:mm:ss.fffZ}' and ts <='{endTime:yyyy-MM-ddTHH:mm:ss.fffZ}' and serialno='{bp.Serialno}' and systolic_value < {systolicRefValue} "); var diastolicAvg = await _serviceTDengine.GetAvgExceptMaxMinValueAsync("diastolic_value", "stb_hm_bloodpress", $"ts>='{startTime:yyyy-MM-ddTHH:mm:ss.fffZ}' and ts <='{endTime:yyyy-MM-ddTHH:mm:ss.fffZ}' and serialno='{bp.Serialno}' and diastolic_value < {diastolicRefValue}"); + // if (systolicAvg.Equals(0) || diastolicAvg.Equals(0)) { - _logger.LogWarning("平均值为0不保存"); + _logger.LogWarning($"{bp.Serialno} 历史数据{startTime}---{endTime}除最大值和最小值和异常值的平均值为0,使用测试量当做平均值"); systolicAvg = bp.SystolicValue; diastolicAvg = bp.DiastolicValue; - systolicInc = (int)((systolicRefValue - systolicAvg) * systolicAvgOffset)! > 0? (int)((systolicRefValue - systolicAvg) * systolicAvgOffset)!:0; - diastolicInc = (int)((diastolicRefValue - diastolicAvg) * diastolicAvgOffset)! >0? (int)((diastolicRefValue - diastolicAvg) * diastolicAvgOffset)!:0; + //systolicInc = (int)((systolicRefValue - systolicAvg) * systolicAvgOffset)! > 0? (int)((systolicRefValue - systolicAvg) * systolicAvgOffset)!:0; + //diastolicInc = (int)((diastolicRefValue - diastolicAvg) * diastolicAvgOffset)! >0? (int)((diastolicRefValue - diastolicAvg) * diastolicAvgOffset)!:0; - // 初始化 remark - remarkFlag = await _serviceIotWebApi.UpdatePersonRemarksAsync(bp.Serialno, (int)systolicRefValue!, (int)diastolicRefValue!, systolicInc, diastolicInc).ConfigureAwait(false); - if (remarkFlag) - { - // 下推 - BloodPressCalibrationConfigModel bpIncData = new() - { - Imei = bp.Serialno, - SystolicRefValue = (int)systolicRefValue!, //收缩压标定值,值为0 表示不生效 - DiastolicRefValue = (int)diastolicRefValue!, //舒张压标定值,值为0表示不生效 - SystolicIncValue = systolicInc, //收缩压显示增量,值为0 表示不生效 - DiastolicIncValue = diastolicInc //舒张压显示增量,值为0 表示不生效 - }; - // 下发 IOT 增量值 - var flagIot = await _serviceIotWebApi.SetBloodPressCalibrationConfigAsync(bpIncData).ConfigureAwait(false); - if (flagIot) - { - #region 保存下推记录 stb_hm_bp_push_ref_inc_value - sql = $"INSERT INTO health_monitor.hm_bp_push_ref_inc_value_{bp.Serialno.Substring(bp.Serialno.Length - 2)} " + - $"USING health_monitor.stb_hm_bp_push_ref_inc_value " + - $"TAGS ('{bp.Serialno.Substring(bp.Serialno.Length - 2)}') " + - $"VALUES(" + - $"'{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}'," + - $"'{bp.Serialno}'," + - $"{systolicRefValue}," + - $"{diastolicRefValue}," + - $"{systolicInc}," + - $"{diastolicInc}," + - $"{true})"; - - _serviceTDengine.ExecuteInsertSQL(sql); - #endregion - } - } + //// 初始化 remark + //remarkFlag = await _serviceIotWebApi.UpdatePersonRemarksAsync(bp.Serialno, (int)systolicRefValue!, (int)diastolicRefValue!, systolicInc, diastolicInc).ConfigureAwait(false); + //if (remarkFlag) + //{ + // // 下推 + // BloodPressCalibrationConfigModel bpIncData = new() + // { + // Imei = bp.Serialno, + // SystolicRefValue = (int)systolicRefValue!, //收缩压标定值,值为0 表示不生效 + // DiastolicRefValue = (int)diastolicRefValue!, //舒张压标定值,值为0表示不生效 + // SystolicIncValue = systolicInc, //收缩压显示增量,值为0 表示不生效 + // DiastolicIncValue = diastolicInc //舒张压显示增量,值为0 表示不生效 + // }; + // // 下发 IOT 增量值 + // var flagIot = await _serviceIotWebApi.SetBloodPressCalibrationConfigAsync(bpIncData).ConfigureAwait(false); + // if (flagIot) + // { + // #region 保存下推记录 stb_hm_bp_push_ref_inc_value + // sql = $"INSERT INTO health_monitor.hm_bp_push_ref_inc_value_{bp.Serialno.Substring(bp.Serialno.Length - 2)} " + + // $"USING health_monitor.stb_hm_bp_push_ref_inc_value " + + // $"TAGS ('{bp.Serialno.Substring(bp.Serialno.Length - 2)}') " + + // $"VALUES(" + + // $"'{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}'," + + // $"'{bp.Serialno}'," + + // $"{systolicRefValue}," + + // $"{diastolicRefValue}," + + // $"{systolicInc}," + + // $"{diastolicInc}," + + // $"{true})"; + + // _serviceTDengine.ExecuteInsertSQL(sql); + // #endregion + // } + //} - return; + //return; } - - //var systolicAvg = _serviceTDengine.GetAvgExceptMaxMinValue("systolic_value", "hm_bloodpress", $"ts>='{startTime:yyyy-MM-ddTHH:mm:ss.fffZ}' and ts <='{endTime:yyyy-MM-ddTHH:mm:ss.fffZ}' and serialno='{bp.Serialno}' and systolic_value < {systolicRefValue} "); //var diastolicAvg = _serviceTDengine.GetAvgExceptMaxMinValue("diastolic_value", "hm_bloodpress", $"ts>='{startTime:yyyy-MM-ddTHH:mm:ss.fffZ}' and ts <='{endTime:yyyy-MM-ddTHH:mm:ss.fffZ}' and serialno='{bp.Serialno}' and diastolic_value < {diastolicRefValue}"); @@ -291,6 +290,9 @@ namespace HealthMonitor.Service.Resolver // 发送到 设置设备血压标定参数 #endregion + + + #region 初始化 gps_persoon remarks // 初始化 remark remarkFlag = await _serviceIotWebApi.UpdatePersonRemarksAsync(bp.Serialno, (int)systolicRefValue!, (int)diastolicRefValue!, systolicInc, diastolicInc).ConfigureAwait(false); if (remarkFlag) @@ -327,6 +329,11 @@ namespace HealthMonitor.Service.Resolver } } + #endregion + + + /** 取消 + // 注册定时下发事件 // 获取当前时间 //DateTime sNow = DateTime.Now; @@ -366,7 +373,9 @@ namespace HealthMonitor.Service.Resolver //var result = JsonConvert.SerializeObject(data); //var result = bp.Serialno; + */ + #region 定时下发触发器 var key = $"health_moniter/schedule_push/imei/{bp.Serialno}"; var schedule_push = await _serviceEtcd.GetValAsync(key).ConfigureAwait(false); if (string.IsNullOrWhiteSpace(schedule_push)) @@ -443,7 +452,10 @@ namespace HealthMonitor.Service.Resolver } - + #endregion + + + /** 取消 //// 生效 //if (DateTime.Now.Hour == 1) //{ @@ -473,7 +485,7 @@ namespace HealthMonitor.Service.Resolver // _logger.LogInformation($"将 {JsonConvert.SerializeObject(data)}发送到 {url} 并且返回 {JsonConvert.SerializeObject(result)}"); //} - + */ }