Browse Source

设置设备血压标定参数

datasub12_previous
H Vs 1 year ago
parent
commit
181a565385
1 changed files with 45 additions and 4 deletions
  1. +45
    -4
      HealthMonitor.Service/Resolver/BloodpressResolver.cs

+ 45
- 4
HealthMonitor.Service/Resolver/BloodpressResolver.cs View File

@@ -1,5 +1,6 @@
 
using HealthMonitor.Common; using HealthMonitor.Common;
using HealthMonitor.Common.helper;
using HealthMonitor.Service.Biz.db; using HealthMonitor.Service.Biz.db;
using HealthMonitor.Service.Cache; using HealthMonitor.Service.Cache;
using HealthMonitor.Service.Resolver.Interface; using HealthMonitor.Service.Resolver.Interface;
@@ -27,15 +28,18 @@ namespace HealthMonitor.Service.Resolver
private readonly TDengineService _serviceTDengine; private readonly TDengineService _serviceTDengine;
private readonly BloodPressReferenceValueCacheManager _bpRefValCacheManager; private readonly BloodPressReferenceValueCacheManager _bpRefValCacheManager;


private readonly HttpHelper _httpHelper = default!;

private readonly AsyncLocal<string> _messageId = new(); private readonly AsyncLocal<string> _messageId = new();
private readonly AsyncLocal<HisGpsBloodPress> _msgData = new(); private readonly AsyncLocal<HisGpsBloodPress> _msgData = new();


public BloodpressResolver( public BloodpressResolver(
TDengineService serviceDengine, TDengineService serviceDengine,
BloodPressReferenceValueCacheManager bpRefValCacheManager, BloodPressReferenceValueCacheManager bpRefValCacheManager,
PersonCacheManager personCacheMgr,
PersonCacheManager personCacheMgr, HttpHelper httpHelper,
ILogger<BloodpressResolver> logger) ILogger<BloodpressResolver> logger)
{ {
_httpHelper = httpHelper;
_serviceTDengine = serviceDengine; _serviceTDengine = serviceDengine;
_bpRefValCacheManager = bpRefValCacheManager; _bpRefValCacheManager = bpRefValCacheManager;
_logger = logger; _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 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 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 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 systolicMax = systolicAggregate.Max;
var diastolicMax = diastolicAggregate.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 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}"); 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不保存"); _logger.LogWarning("平均值为0不保存");
return; return;
@@ -151,7 +155,7 @@ namespace HealthMonitor.Service.Resolver








#region 插入BP增量值 hm_bloodpress_stats_inc #region 插入BP增量值 hm_bloodpress_stats_inc
// 自动建表 // 自动建表
@@ -189,6 +193,43 @@ namespace HealthMonitor.Service.Resolver
$"{isHypertension})"; $"{isHypertension})";


_serviceTDengine.ExecuteInsertSQL(sql); _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 #endregion
} }




Loading…
Cancel
Save