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.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
}



Loading…
Cancel
Save