|
@@ -590,8 +590,9 @@ namespace HealthMonitor.Service.Resolver |
|
|
private async Task SaveAndPushFetalHeartRateAsync(HisGpsHeartRate heartRate, PregnancyCommonHeartRateModel commonPHR, int upperAlarmThreshold, int lowerAlarmThreshold, double phrValue, string sampleTime, DateTime statStartTime, DateTime statEndTime) |
|
|
private async Task SaveAndPushFetalHeartRateAsync(HisGpsHeartRate heartRate, PregnancyCommonHeartRateModel commonPHR, int upperAlarmThreshold, int lowerAlarmThreshold, double phrValue, string sampleTime, DateTime statStartTime, DateTime statEndTime) |
|
|
{ |
|
|
{ |
|
|
// 计算胎心=孕妇心率*系数 |
|
|
// 计算胎心=孕妇心率*系数 |
|
|
|
|
|
/** |
|
|
var fetalHeartRate = SafeType.SafeInt(phrValue * commonPHR?.StatModeAvgFprCoefficient!); |
|
|
var fetalHeartRate = SafeType.SafeInt(phrValue * commonPHR?.StatModeAvgFprCoefficient!); |
|
|
//fetalHeartRate = fetalHeartRate > 220 ? 220 : fetalHeartRate; // 胎心的最大值调整为220,超过都按该值220输出 |
|
|
|
|
|
|
|
|
fetalHeartRate = fetalHeartRate > 220 ? 220 : fetalHeartRate; // 胎心的最大值调整为220,超过都按该值220输出 |
|
|
if (fetalHeartRate >= 220) |
|
|
if (fetalHeartRate >= 220) |
|
|
{ |
|
|
{ |
|
|
// 先使用最小系数计算 |
|
|
// 先使用最小系数计算 |
|
@@ -609,6 +610,39 @@ namespace HealthMonitor.Service.Resolver |
|
|
_logger.LogWarning($"{heartRate.Serialno} 使用所有系数都不能放映实际,建模数据可能出现异常,请检查"); |
|
|
_logger.LogWarning($"{heartRate.Serialno} 使用所有系数都不能放映实际,建模数据可能出现异常,请检查"); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
#region 胎心系数使用基于心率与中位数对比 |
|
|
|
|
|
var coefficient = 0f; |
|
|
|
|
|
// 孕妇心率少于中位数,取StatMinValueFprCoefficient |
|
|
|
|
|
if (heartRate.HeartRate < commonPHR!.Mode) |
|
|
|
|
|
{ |
|
|
|
|
|
coefficient = commonPHR.StatMinValueFprCoefficient!; |
|
|
|
|
|
_logger.LogInformation($"{heartRate.Serialno} 孕妇心率少于中位数,使用最小值系数 {coefficient}"); |
|
|
|
|
|
} |
|
|
|
|
|
// 孕妇心率大于中位数,取StatMaxValueFprCoefficient与StatModeAvgFprCoefficient中少的那个 |
|
|
|
|
|
else if (heartRate.HeartRate > commonPHR.Mode) |
|
|
|
|
|
{ |
|
|
|
|
|
if (commonPHR.StatModeAvgFprCoefficient > commonPHR.StatMaxValueFprCoefficient) |
|
|
|
|
|
{ |
|
|
|
|
|
coefficient = commonPHR.StatMaxValueFprCoefficient!; |
|
|
|
|
|
_logger.LogInformation($"{heartRate.Serialno} 孕妇心率大于中位数,使用最大值系数 {coefficient}"); |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
coefficient = commonPHR.StatModeAvgFprCoefficient!; |
|
|
|
|
|
_logger.LogInformation($"{heartRate.Serialno} 孕妇心率大于中位数,使用均值系数 {coefficient}"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
coefficient = commonPHR.StatModeAvgFprCoefficient; |
|
|
|
|
|
_logger.LogInformation($"{heartRate.Serialno} 孕妇心率等于中位数,使用均值系数 {coefficient}"); |
|
|
|
|
|
} |
|
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
|
|
var fetalHeartRate = SafeType.SafeInt(phrValue * coefficient); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var isAbnormal = fetalHeartRate > upperAlarmThreshold ? 1 : (fetalHeartRate < lowerAlarmThreshold ? 2 : 0); |
|
|
var isAbnormal = fetalHeartRate > upperAlarmThreshold ? 1 : (fetalHeartRate < lowerAlarmThreshold ? 2 : 0); |
|
|
var phrFreqstatus = await _deviceCacheMgr.GetPregnancyHeartRateFreqStatusAsync(heartRate.Serialno); |
|
|
var phrFreqstatus = await _deviceCacheMgr.GetPregnancyHeartRateFreqStatusAsync(heartRate.Serialno); |
|
|