|
|
@@ -1,5 +1,6 @@ |
|
|
|
|
|
|
|
using HealthMonitor.Common; |
|
|
|
using HealthMonitor.Common.helper; |
|
|
|
using HealthMonitor.Service.Biz.db; |
|
|
|
using HealthMonitor.Service.Cache; |
|
|
|
using HealthMonitor.Service.Resolver.Interface; |
|
|
@@ -27,15 +28,18 @@ namespace HealthMonitor.Service.Resolver |
|
|
|
private readonly TDengineService _serviceTDengine; |
|
|
|
private readonly BloodPressReferenceValueCacheManager _bpRefValCacheManager; |
|
|
|
|
|
|
|
private readonly HttpHelper _httpHelper = default!; |
|
|
|
|
|
|
|
private readonly AsyncLocal<string> _messageId = new(); |
|
|
|
private readonly AsyncLocal<HisGpsBloodPress> _msgData = new(); |
|
|
|
|
|
|
|
public BloodpressResolver( |
|
|
|
TDengineService serviceDengine, |
|
|
|
BloodPressReferenceValueCacheManager bpRefValCacheManager, |
|
|
|
PersonCacheManager personCacheMgr, |
|
|
|
PersonCacheManager personCacheMgr, HttpHelper httpHelper, |
|
|
|
ILogger<BloodpressResolver> logger) |
|
|
|
{ |
|
|
|
_httpHelper = httpHelper; |
|
|
|
_serviceTDengine = serviceDengine; |
|
|
|
_bpRefValCacheManager = bpRefValCacheManager; |
|
|
|
_logger = logger; |
|
|
@@ -110,7 +114,7 @@ namespace HealthMonitor.Service.Resolver |
|
|
|
var diastolicAggregate = await _serviceTDengine.GetAggregateValueAsync("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}'"); |
|
|
|
//var systolicAggregate = _serviceTDengine.GetAggregateValue("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}'"); |
|
|
|
//var diastolicAggregate = _serviceTDengine.GetAggregateValue("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}'"); |
|
|
|
|
|
|
|
|
|
|
|
// 最大值 |
|
|
|
var systolicMax = systolicAggregate.Max; |
|
|
|
var diastolicMax = diastolicAggregate.Max; |
|
|
@@ -123,7 +127,7 @@ 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)) |
|
|
|
if (systolicAvg.Equals(0) || diastolicAvg.Equals(0)) |
|
|
|
{ |
|
|
|
_logger.LogWarning("平均值为0不保存"); |
|
|
|
return; |
|
|
@@ -151,7 +155,7 @@ namespace HealthMonitor.Service.Resolver |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 插入BP增量值 hm_bloodpress_stats_inc |
|
|
|
// 自动建表 |
|
|
@@ -189,6 +193,43 @@ namespace HealthMonitor.Service.Resolver |
|
|
|
$"{isHypertension})"; |
|
|
|
|
|
|
|
_serviceTDengine.ExecuteInsertSQL(sql); |
|
|
|
// 发送到 设置设备血压标定参数 |
|
|
|
var url = $"http://id.ssjlai.com/webapi/api/Command/SetBloodPressCalibrationConfig"; |
|
|
|
List<KeyValuePair<string, string>> headers = new() |
|
|
|
{ |
|
|
|
new KeyValuePair<string, string>("AuthKey", "key1") |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// 生效 |
|
|
|
if (DateTime.Now.Hour == 1) |
|
|
|
{ |
|
|
|
var data = new |
|
|
|
{ |
|
|
|
imei = bp.Serialno, |
|
|
|
systolicCalibrationValue = systolicRefValue, //收缩压标定值,值为0 表示不生效 |
|
|
|
diastolicCalibrationValue = diastolicRefValue, //舒张压标定值,值为0表示不生效 |
|
|
|
systolicIncValue = systolicInc, //收缩压显示增量,值为0 表示不生效 |
|
|
|
diastolicIncValue = diastolicInc //舒张压显示增量,值为0 表示不生效 |
|
|
|
}; |
|
|
|
var result = await _httpHelper.HttpToPostAsync(url, data, headers).ConfigureAwait(false); |
|
|
|
_logger.LogInformation($"将 {JsonConvert.SerializeObject(data)}发送到 {url} 并且返回 {JsonConvert.SerializeObject(result)}"); |
|
|
|
} |
|
|
|
// 不生效 |
|
|
|
else if (DateTime.Now.Hour == 3) |
|
|
|
{ |
|
|
|
var data = new |
|
|
|
{ |
|
|
|
imei = bp.Serialno, |
|
|
|
systolicCalibrationValue = 0, //收缩压标定值,值为0 表示不生效 |
|
|
|
diastolicCalibrationValue = 0, //舒张压标定值,值为0表示不生效 |
|
|
|
systolicIncValue = 0, //收缩压显示增量,值为0 表示不生效 |
|
|
|
diastolicIncValue = 0 //舒张压显示增量,值为0 表示不生效 |
|
|
|
}; |
|
|
|
var result = await _httpHelper.HttpToPostAsync(url, data, headers).ConfigureAwait(false); |
|
|
|
_logger.LogInformation($"将 {JsonConvert.SerializeObject(data)}发送到 {url} 并且返回 {JsonConvert.SerializeObject(result)}"); |
|
|
|
} |
|
|
|
|
|
|
|
#endregion |
|
|
|
} |
|
|
|
|
|
|
|