Browse Source

曾经有下发记录,重置设备,取正常值标定值

datasub12_previous
H Vs 1 year ago
parent
commit
6b50b1598e
1 changed files with 23 additions and 16 deletions
  1. +23
    -16
      HealthMonitor.Service/Resolver/BloodpressResolver.cs

+ 23
- 16
HealthMonitor.Service/Resolver/BloodpressResolver.cs View File

@@ -120,7 +120,7 @@ namespace HealthMonitor.Service.Resolver


var bpRef = await _bpRefValCacheManager.GetBloodPressReferenceValueAsync(age, gender, isHypertension); var bpRef = await _bpRefValCacheManager.GetBloodPressReferenceValueAsync(age, gender, isHypertension);


var last = await _serviceTDengine.GetLastAsync("stb_hm_bp_push_ref_inc_value", $"serialno='{bp.Serialno}' order by ts desc");
var lastPush = await _serviceTDengine.GetLastAsync("stb_hm_bp_push_ref_inc_value", $"serialno='{bp.Serialno}' order by ts desc");
//var ts = last?[0]; //var ts = last?[0];
var systolicRefValue = bpRef?.Systolic;//? var systolicRefValue = bpRef?.Systolic;//?
var diastolicRefValue = bpRef?.Diastolic;//? var diastolicRefValue = bpRef?.Diastolic;//?
@@ -133,15 +133,31 @@ namespace HealthMonitor.Service.Resolver
var remarkFlag = false; var remarkFlag = false;


// 曾经有下发记录 // 曾经有下发记录
if (last?.Count!=0)
if (lastPush?.Count!=0)
{ {
if (DateTime.TryParse(last?[0]!.ToString(), out DateTime newTs))
{
systolicRefValue = (int)last?[2]!;
diastolicRefValue = (int)last?[3]!;
// 重置设备,取正常值标定值
if (
(int)lastPush![2] == 0
&& (int)lastPush![3] == 0
&& (int)lastPush![4] == 0
&& (int)lastPush![5] == 0
)
{
systolicRefValue = bpRef?.Systolic;//?
diastolicRefValue = bpRef?.Diastolic;//?
}
// 取最后一条下推的标定值
else
{
systolicRefValue = (int)lastPush?[2]!;
diastolicRefValue = (int)lastPush?[3]!;
}

if (DateTime.TryParse(lastPush?[0]!.ToString(), out DateTime newTs))
{
duration = SafeType.SafeInt64(((DateTime)bp.LastUpdate! - newTs).TotalMilliseconds); duration = SafeType.SafeInt64(((DateTime)bp.LastUpdate! - newTs).TotalMilliseconds);
} }
} }


@@ -170,11 +186,8 @@ namespace HealthMonitor.Service.Resolver
// 最小值 // 最小值
var systolicMin = systolicAggregate.Min; var systolicMin = systolicAggregate.Min;
var diastolicMin = diastolicAggregate.Min; var diastolicMin = diastolicAggregate.Min;


// 偏移参数 // 偏移参数
var avgOffset = 0.25M; var avgOffset = 0.25M;

var systolicAvgOffset = avgOffset; var systolicAvgOffset = avgOffset;
var diastolicAvgOffset = avgOffset; var diastolicAvgOffset = avgOffset;


@@ -198,7 +211,6 @@ namespace HealthMonitor.Service.Resolver
// 下推 // 下推
BloodPressCalibrationConfigModel bpIncData = new() BloodPressCalibrationConfigModel bpIncData = new()
{ {

Imei = bp.Serialno, Imei = bp.Serialno,
SystolicRefValue = (int)systolicRefValue!, //收缩压标定值,值为0 表示不生效 SystolicRefValue = (int)systolicRefValue!, //收缩压标定值,值为0 表示不生效
DiastolicRefValue = (int)diastolicRefValue!, //舒张压标定值,值为0表示不生效 DiastolicRefValue = (int)diastolicRefValue!, //舒张压标定值,值为0表示不生效
@@ -234,11 +246,6 @@ namespace HealthMonitor.Service.Resolver
//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 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}"); //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}");







// 增量值=(标定值-平均值)* 0.25 // 增量值=(标定值-平均值)* 0.25
systolicInc = systolicAvg.Equals(0M) ? 0 : (int)((systolicRefValue - systolicAvg) * systolicAvgOffset)!; systolicInc = systolicAvg.Equals(0M) ? 0 : (int)((systolicRefValue - systolicAvg) * systolicAvgOffset)!;
diastolicInc = diastolicAvg.Equals(0M) ? 0 : (int)((diastolicRefValue - diastolicAvg) * diastolicAvgOffset)!; diastolicInc = diastolicAvg.Equals(0M) ? 0 : (int)((diastolicRefValue - diastolicAvg) * diastolicAvgOffset)!;


Loading…
Cancel
Save