Kaynağa Gözat

调整高频时长不足10分钟,都不产生告警信息

datasub12_fetal_heart_rate_1
H Vs 3 hafta önce
ebeveyn
işleme
952f6fc634
2 değiştirilmiş dosya ile 25 ekleme ve 28 silme
  1. +12
    -13
      HealthMonitor.Service/Resolver/PregnancyHeartRateResolver.cs
  2. +13
    -15
      HealthMonitor.WebApi/Worker.cs

+ 12
- 13
HealthMonitor.Service/Resolver/PregnancyHeartRateResolver.cs Dosyayı Görüntüle

@@ -1268,6 +1268,7 @@ namespace HealthMonitor.Service.Resolver
/// 3. 高频结束后的在highFreqSampleTimes>0 正常心率触发的高频心率处理(常态)
/// 4. 高频结束后的时间倒序的正常心率触发的高频心率处理
/// 5. 高频结束后计算胎心数据,防止结束后与常规心理的胎心处理过长,定时器时长highFreqSampleInterval触发的高频心率处理
/// 高频结束后超过9分钟且不在阈值内才告警
/// </summary>
/// <param name="heartRate"></param>
/// <param name="commonPHR"></param>
@@ -1316,7 +1317,7 @@ namespace HealthMonitor.Service.Resolver
// fetalHeartRate = fetalHeartRate>= 220 ? 220 : fetalHeartRate;

var phrFreqstatus = await _deviceCacheMgr.GetPregnancyHeartRateFreqStatusAsync(heartRate.Serialno);
var isAbnormal = 0;
#region 判断是否够highFreqSampleTimes,540s
var ts = DateTimeUtil.GetTimeDifferenceInSeconds((DateTime)heartRate.LastUpdate!, phrFreqstatus!.LastUpdate);
// 判断是否够highFreqSampleTimes,540s
@@ -1327,19 +1328,21 @@ namespace HealthMonitor.Service.Resolver
{
if (fetalHeartRate > upperAlarmThreshold)
{
_logger.LogWarning($"{heartRate.Serialno} 高频持续不足10分钟,计算胎心值 {fetalHeartRate} 高于高频警告上限阀值{upperAlarmThreshold},最后胎心值{upperAlarmThreshold}");
_logger.LogWarning($"{heartRate.Serialno} 高频持续不足10分钟,计算胎心值 {fetalHeartRate} 高于高频警告上限阀值{upperAlarmThreshold},最后胎心值{upperAlarmThreshold},并且不告警");
fetalHeartRate = upperAlarmThreshold;


}
else if (fetalHeartRate < lowerAlarmThreshold)
{
_logger.LogWarning($"{heartRate.Serialno} 高频持续不足10分钟,计算胎心值 {fetalHeartRate} 低于高频警告下限阀值 {lowerAlarmThreshold},最后胎心值{lowerAlarmThreshold}");
_logger.LogWarning($"{heartRate.Serialno} 高频持续不足10分钟,计算胎心值 {fetalHeartRate} 低于高频警告下限阀值 {lowerAlarmThreshold},最后胎心值{lowerAlarmThreshold},并且不告警");
fetalHeartRate = lowerAlarmThreshold;
}
else
{
_logger.LogWarning($"{heartRate.Serialno} 高频持续不足10分钟,在高频警告下限阀值 {lowerAlarmThreshold} 和 高频警告上限阀值:{upperAlarmThreshold}之间,最后胎心值{fetalHeartRate}");
_logger.LogWarning($"{heartRate.Serialno} 高频持续不足10分钟,在高频警告下限阀值 {lowerAlarmThreshold} 和 高频警告上限阀值:{upperAlarmThreshold}之间,最后胎心值{fetalHeartRate},并且不告警");
}
}
// 超过highFreqSampleTimes,540s
else
@@ -1356,20 +1359,16 @@ namespace HealthMonitor.Service.Resolver
fetalHeartRate = 90;
_logger.LogWarning($"{heartRate.Serialno} 小于90,按90输出,计算因子:孕妇心率 {heartRate.HeartRate},系数 {coefficient},周期 周期:{statStartTime.ToString("yyyy-MM-dd HH:mm:ss")}----{statEndTime.ToString("yyyy-MM-dd HH:mm:ss")}");
}
isAbnormal = fetalHeartRate > upperAlarmThreshold ? 1 : (fetalHeartRate < lowerAlarmThreshold ? 2 : 0);
}
#endregion


var isAbnormal = fetalHeartRate > upperAlarmThreshold ? 1 : (fetalHeartRate < lowerAlarmThreshold ? 2 : 0);
if (phrFreqstatus == null) isAbnormal = 0;
var statsusDesc = (phrFreqstatus == null) ? "常规" : "高频";

//if (phrFreqstatus == null) isAbnormal = 0;
//var statsusDesc = (phrFreqstatus == null) ? "常规" : "高频";
var statsusDesc = "高频";
_logger.LogInformation($"{heartRate.Serialno} 在 {statsusDesc} 状态,生成胎心值:{fetalHeartRate},统计周期:{statStartTime.ToString("yyyy-MM-dd HH:mm:ss")}----{statEndTime.ToString("yyyy-MM-dd HH:mm:ss")}");
//if (!isFreq)
//{
// statStartTime = heartRate.LastUpdate;
//
//}
// 保存到 数据服务 MySQL 数据库
HisGpsFetalHeartRate gpsFetalHeartRate = new()
{


+ 13
- 15
HealthMonitor.WebApi/Worker.cs Dosyayı Görüntüle

@@ -2095,7 +2095,8 @@ namespace HealthMonitor.WebApi
/// 2. 高频结束后的highFreqSampleTimes=0的高频心率处理
/// 3. 高频结束后的在highFreqSampleTimes>0 正常心率触发的高频心率处理(常态)
/// 4. 高频结束后的时间倒序的正常心率触发的高频心率处理
/// * 5. 高频结束后计算胎心数据,防止结束后与常规心理的胎心处理过长,定时器时长highFreqSampleInterval触发的高频心率处理
/// 5. 高频结束后计算胎心数据,防止结束后与常规心理的胎心处理过长,定时器时长highFreqSampleInterval触发的高频心率处理
/// 高频结束后超过9分钟且不在阈值内才告警
/// </summary>
/// <param name="heartRate"></param>
/// <param name="commonPHR"></param>
@@ -2144,7 +2145,7 @@ namespace HealthMonitor.WebApi
// fetalHeartRate = fetalHeartRate>= 220 ? 220 : fetalHeartRate;

var phrFreqstatus = await _deviceCacheMgr.GetPregnancyHeartRateFreqStatusAsync(heartRate.Serialno);
var isAbnormal = 0;
#region 判断是否够highFreqSampleTimes,540s
var ts = DateTimeUtil.GetTimeDifferenceInSeconds((DateTime)heartRate.LastUpdate!, phrFreqstatus!.LastUpdate);
// 判断是否够highFreqSampleTimes,540s
@@ -2155,19 +2156,21 @@ namespace HealthMonitor.WebApi
{
if (fetalHeartRate > upperAlarmThreshold)
{
_logger.LogWarning($"{heartRate.Serialno} 高频持续不足10分钟,计算胎心值 {fetalHeartRate} 高于高频警告上限阀值{upperAlarmThreshold},最后胎心值{upperAlarmThreshold}");
_logger.LogWarning($"{heartRate.Serialno} 高频持续不足10分钟,计算胎心值 {fetalHeartRate} 高于高频警告上限阀值{upperAlarmThreshold},最后胎心值{upperAlarmThreshold},并且不告警");
fetalHeartRate = upperAlarmThreshold;


}
else if (fetalHeartRate < lowerAlarmThreshold)
{
_logger.LogWarning($"{heartRate.Serialno} 高频持续不足10分钟,计算胎心值 {fetalHeartRate} 低于高频警告下限阀值 {lowerAlarmThreshold},最后胎心值{lowerAlarmThreshold}");
_logger.LogWarning($"{heartRate.Serialno} 高频持续不足10分钟,计算胎心值 {fetalHeartRate} 低于高频警告下限阀值 {lowerAlarmThreshold},最后胎心值{lowerAlarmThreshold},并且不告警");
fetalHeartRate = lowerAlarmThreshold;
}
else
{
_logger.LogWarning($"{heartRate.Serialno} 高频持续不足10分钟,在高频警告下限阀值 {lowerAlarmThreshold} 和 高频警告上限阀值:{upperAlarmThreshold}之间,最后胎心值{fetalHeartRate}");
_logger.LogWarning($"{heartRate.Serialno} 高频持续不足10分钟,在高频警告下限阀值 {lowerAlarmThreshold} 和 高频警告上限阀值:{upperAlarmThreshold}之间,最后胎心值{fetalHeartRate},并且不告警");
}

}
// 超过highFreqSampleTimes,540s
else
@@ -2184,20 +2187,16 @@ namespace HealthMonitor.WebApi
fetalHeartRate = 90;
_logger.LogWarning($"{heartRate.Serialno} 小于90,按90输出,计算因子:孕妇心率 {heartRate.HeartRate},系数 {coefficient},周期 周期:{statStartTime.ToString("yyyy-MM-dd HH:mm:ss")}----{statEndTime.ToString("yyyy-MM-dd HH:mm:ss")}");
}
isAbnormal = fetalHeartRate > upperAlarmThreshold ? 1 : (fetalHeartRate < lowerAlarmThreshold ? 2 : 0);
}
#endregion


var isAbnormal = fetalHeartRate > upperAlarmThreshold ? 1 : (fetalHeartRate < lowerAlarmThreshold ? 2 : 0);
if (phrFreqstatus == null) isAbnormal = 0;
var statsusDesc = (phrFreqstatus == null) ? "常规" : "高频";

//if (phrFreqstatus == null) isAbnormal = 0;
//var statsusDesc = (phrFreqstatus == null) ? "常规" : "高频";
var statsusDesc = "高频";
_logger.LogInformation($"{heartRate.Serialno} 在 {statsusDesc} 状态,生成胎心值:{fetalHeartRate},统计周期:{statStartTime.ToString("yyyy-MM-dd HH:mm:ss")}----{statEndTime.ToString("yyyy-MM-dd HH:mm:ss")}");
//if (!isFreq)
//{
// statStartTime = heartRate.LastUpdate;
//
//}
// 保存到 数据服务 MySQL 数据库
HisGpsFetalHeartRate gpsFetalHeartRate = new()
{
@@ -2322,7 +2321,6 @@ namespace HealthMonitor.WebApi
}



/// <summary>
/// 去除高频数据
/// </summary>


Yükleniyor…
İptal
Kaydet