From 738d1f6c7c93a2d37476de9b0bc612a89a00ae08 Mon Sep 17 00:00:00 2001 From: H Vs Date: Fri, 15 Nov 2024 18:18:45 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Resolver/PregnancyHeartRateResolver.cs | 22 +++++++++++-------- HealthMonitor.WebApi/Worker.cs | 9 +++++--- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/HealthMonitor.Service/Resolver/PregnancyHeartRateResolver.cs b/HealthMonitor.Service/Resolver/PregnancyHeartRateResolver.cs index 42cd5b2..0efc63d 100644 --- a/HealthMonitor.Service/Resolver/PregnancyHeartRateResolver.cs +++ b/HealthMonitor.Service/Resolver/PregnancyHeartRateResolver.cs @@ -441,15 +441,16 @@ namespace HealthMonitor.Service.Resolver if (ts < highFreqSampleTimes) { /// 不够10分钟最近12个数据的最小值生成胎心值 - _logger.LogInformation($"{heartRate.Serialno} 不够10分钟最近12个数据的最小值生成胎心值"); - heartRate.HeartRate = lastPhr.Select(i=>i.PregnancyHeartRate).Min(); + heartRate.HeartRate = lastPhr.Select(i => i.PregnancyHeartRate).Min(); + _logger.LogInformation($"{heartRate.Serialno} 不够10分钟最近12个数据的最小值 {heartRate.HeartRate} 生成胎心值"); + heartRate.LastUpdate = lastFreqHr.LastUpdate; } else { heartRate.HeartRate = lastPhr.Select(i => i.PregnancyHeartRate).Min(); /// 超过10分钟最近12个数据的最小值生成胎心值 - _logger.LogInformation($"{heartRate.Serialno} 超过10分钟最近12个数据的最小值生成胎心值"); + _logger.LogInformation($"{heartRate.Serialno} 超过10分钟最近12个数据的最小值 {heartRate.HeartRate} 生成胎心值"); } _logger.LogInformation($"{heartRate.Serialno} 高频数据触发连续12个值都是正常的的高频心率处理"); await SaveAndPushFetalHeartRateEndFreqHeartRateAsync(heartRate, commonPHR,highFreqSampleTimes ,upperAlarmThreshold, lowerAlarmThreshold, DateTimeUtil.ConvertToTimeStamp(phrFreqstatus!.LastUpdate).ToString(), phrFreqstatus!.LastUpdate, FreqStatsEnd); @@ -510,15 +511,16 @@ namespace HealthMonitor.Service.Resolver if (ts < highFreqSampleTimes) { /// 不够10分钟最近12个数据的最小值生成胎心值 - _logger.LogInformation($"{heartRate.Serialno} 不够10分钟最近12个数据的最小值生成胎心值"); heartRate.HeartRate = lastPhr.Select(i => i.PregnancyHeartRate).Min(); + _logger.LogInformation($"{heartRate.Serialno} 不够10分钟最近12个数据的最小值 {heartRate.HeartRate} 生成胎心值"); + heartRate.LastUpdate = lastFreqHr.LastUpdate; } else { heartRate.HeartRate = lastPhr.Select(i => i.PregnancyHeartRate).Min(); /// 超过10分钟最近12个数据的最小值生成胎心值 - _logger.LogInformation($"{heartRate.Serialno} 超过10分钟最近12个数据的最小值生成胎心值"); + _logger.LogInformation($"{heartRate.Serialno} 超过10分钟最近12个数据的最小值 {heartRate.HeartRate} 生成胎心值"); } _logger.LogInformation($"{heartRate.Serialno} 高频结束后的highFreqSampleTimes=0的高频心率处理"); await SaveAndPushFetalHeartRateEndFreqHeartRateAsync(heartRate, commonPHR, highFreqSampleTimes, upperAlarmThreshold, lowerAlarmThreshold, DateTimeUtil.ConvertToTimeStamp(phrFreqstatus!.LastUpdate).ToString(), phrFreqstatus!.LastUpdate, FreqStatsEnd); @@ -568,15 +570,16 @@ namespace HealthMonitor.Service.Resolver if (ts < highFreqSampleTimes) { /// 不够10分钟最近12个数据的最小值生成胎心值 - _logger.LogInformation($"{heartRate.Serialno} 不够10分钟最近12个数据的最小值生成胎心值"); heartRate.HeartRate = lastPhr.Select(i => i.PregnancyHeartRate).Min(); + _logger.LogInformation($"{heartRate.Serialno} 不够10分钟最近12个数据的最小值 {heartRate.HeartRate} 生成胎心值"); + heartRate.LastUpdate = lastFreqHr.LastUpdate; } else { heartRate.HeartRate = lastPhr.Select(i => i.PregnancyHeartRate).Min(); /// 超过10分钟最近12个数据的最小值生成胎心值 - _logger.LogInformation($"{heartRate.Serialno} 超过10分钟最近12个数据的最小值生成胎心值"); + _logger.LogInformation($"{heartRate.Serialno} 超过10分钟最近12个数据的最小值 {heartRate.HeartRate} 生成胎心值"); } _logger.LogInformation($"{heartRate.Serialno} 高频结束后的在highFreqSampleTimes>0 正常心率(通常情况)触发的高频心率处理"); await SaveAndPushFetalHeartRateEndFreqHeartRateAsync(heartRate, commonPHR, highFreqSampleTimes, upperAlarmThreshold, lowerAlarmThreshold, DateTimeUtil.ConvertToTimeStamp(phrFreqstatus!.LastUpdate).ToString(), phrFreqstatus!.LastUpdate, FreqStatsEnd); @@ -649,15 +652,16 @@ namespace HealthMonitor.Service.Resolver if (ts < highFreqSampleTimes) { /// 不够10分钟最近12个数据的最小值生成胎心值 - _logger.LogInformation($"{heartRate.Serialno} 不够10分钟最近12个数据的最小值生成胎心值"); heartRate.HeartRate = lastPhr.Select(i => i.PregnancyHeartRate).Min(); + _logger.LogInformation($"{heartRate.Serialno} 不够10分钟最近12个数据的最小值 {heartRate.HeartRate} 生成胎心值"); + heartRate.LastUpdate = lastFreqHr.LastUpdate; } else { heartRate.HeartRate = lastPhr.Select(i => i.PregnancyHeartRate).Min(); /// 超过10分钟最近12个数据的最小值生成胎心值 - _logger.LogInformation($"{heartRate.Serialno} 超过10分钟最近12个数据的最小值生成胎心值"); + _logger.LogInformation($"{heartRate.Serialno} 超过10分钟最近12个数据的最小值 {heartRate.HeartRate} 生成胎心值"); } _logger.LogInformation($"{heartRate.Serialno} 高频结束后的时间倒序的正常心率触发的高频心率处理"); await SaveAndPushFetalHeartRateEndFreqHeartRateAsync(heartRate, commonPHR, highFreqSampleTimes, upperAlarmThreshold, lowerAlarmThreshold, DateTimeUtil.ConvertToTimeStamp(phrFreqstatus!.LastUpdate).ToString(), phrFreqstatus!.LastUpdate, FreqStatsEnd); diff --git a/HealthMonitor.WebApi/Worker.cs b/HealthMonitor.WebApi/Worker.cs index d5094cb..405be8d 100644 --- a/HealthMonitor.WebApi/Worker.cs +++ b/HealthMonitor.WebApi/Worker.cs @@ -357,18 +357,21 @@ namespace HealthMonitor.WebApi var ts = DateTimeUtil.GetTimeDifferenceInSeconds((DateTime)lastFreqHr.LastUpdate!, phrFreqstatus!.LastUpdate); if (ts < highFreqSampleTimes) { + triggerHeartRate.HeartRate = lastPhr.Select(i => i.PregnancyHeartRate).Min(); /// 不够10分钟最近12个数据的最小值生成胎心值 - _logger.LogInformation($"{triggerHeartRate.Serialno} 不够10分钟最近12个数据的最小值生成胎心值"); + _logger.LogInformation($"{triggerHeartRate.Serialno} 不够10分钟最近12个数据的最小值 {triggerHeartRate.HeartRate} 生成胎心值"); } else { + triggerHeartRate.HeartRate = lastPhr.Select(i => i.PregnancyHeartRate).Min(); /// 超过10分钟最近12个数据的最小值生成胎心值 - _logger.LogInformation($"{triggerHeartRate.Serialno} 超过10分钟最近12个数据的最小值生成胎心值"); + _logger.LogInformation($"{triggerHeartRate.Serialno} 超过10分钟最近12个数据的最小值 {triggerHeartRate.HeartRate} 生成胎心值"); } - triggerHeartRate.HeartRate = lastPhr.Select(i => i.PregnancyHeartRate).Min(); + triggerHeartRate.LastUpdate = lastFreqHr.LastUpdate; + _logger.LogInformation($"{triggerHeartRate.Serialno} 高频结束后计算胎心数据,防止结束后与常规心理的胎心处理过长,定时器时长highFreqSampleInterval触发的高频心率处理"); await SaveAndPushFetalHeartRateEndFreqHeartRateAsync(triggerHeartRate, commonPHR, highFreqSampleTimes, upperAlarmThreshold, lowerAlarmThreshold, DateTimeUtil.ConvertToTimeStamp(phrFreqstatus!.LastUpdate).ToString(), phrFreqstatus!.LastUpdate, FreqStatsEnd);