From 19ebe731826802bf11e167d2acc7413d47e20cba Mon Sep 17 00:00:00 2001 From: Pierre Bonneau Date: Sat, 23 Mar 2024 14:31:50 +0100 Subject: [PATCH 1/2] Parametrize the activation of each HR algo Algo are not added when they are not activated --- .../uk/org/openseizuredetector/SdAlgHr.java | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/uk/org/openseizuredetector/SdAlgHr.java b/app/src/main/java/uk/org/openseizuredetector/SdAlgHr.java index ed20b6f..a393ab2 100644 --- a/app/src/main/java/uk/org/openseizuredetector/SdAlgHr.java +++ b/app/src/main/java/uk/org/openseizuredetector/SdAlgHr.java @@ -104,11 +104,9 @@ public class SdAlgHr { * Check heart rate value against simple thresholds */ boolean retVal = false; - if (mSimpleHrAlarmActive) { - if ((hrVal > mSimpleHrAlarmThreshMax) - || (hrVal < mSimpleHrAlarmThreshMin)) { - retVal = true; - } + if ((hrVal > mSimpleHrAlarmThreshMax) + || (hrVal < mSimpleHrAlarmThreshMin)) { + retVal = true; } return (retVal); } @@ -146,13 +144,14 @@ public class SdAlgHr { private boolean checkAdaptiveHr(double hrVal) { boolean retVal; + retVal = false; double hrThreshMin; double hrThreshMax; double avHr = getAdaptiveHrAverage(); hrThreshMin = avHr - mAdaptiveHrAlarmThresh; hrThreshMax = avHr + mAdaptiveHrAlarmThresh; - retVal = false; + if (hrVal < hrThreshMin) { retVal = true; } @@ -160,15 +159,13 @@ public class SdAlgHr { retVal = true; } Log.d(TAG, "checkAdaptiveHr() - hrVal=" + hrVal + ", avHr=" + avHr + ", thresholds=(" + hrThreshMin + ", " + hrThreshMax + "): Alarm=" + retVal); - return (retVal); } private boolean checkAverageHr(double hrVal) { boolean retVal; - double avHr = getAverageHrAverage(); - retVal = false; + double avHr = getAverageHrAverage(); if (avHr < mAverageHrAlarmThreshMin) { retVal = true; } @@ -192,9 +189,15 @@ public class SdAlgHr { mAverageHrBuff.add(hrVal); mHrHist.add(hrVal); ArrayList retVal = new ArrayList(); - retVal.add(checkSimpleHr(hrVal)); - retVal.add(checkAdaptiveHr(hrVal)); - retVal.add(checkAverageHr(hrVal)); + if (mSimpleHrAlarmActive) { + retVal.add(checkSimpleHr(hrVal)); + } + if (mAdaptiveHrAlarmActive) { + retVal.add(checkAdaptiveHr(hrVal)); + } + if (mAverageHrAlarmActive) { + retVal.add(checkAverageHr(hrVal)); + } return (retVal); } From 8a15edd8fca9e9847d8a3e219583e12f3eabf3e1 Mon Sep 17 00:00:00 2001 From: Pierre Bonneau Date: Sat, 23 Mar 2024 14:37:08 +0100 Subject: [PATCH 2/2] putting test in the HR calculationto stay compatible with the algo usage --- .../uk/org/openseizuredetector/SdAlgHr.java | 64 ++++++++++--------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/uk/org/openseizuredetector/SdAlgHr.java b/app/src/main/java/uk/org/openseizuredetector/SdAlgHr.java index a393ab2..302cf81 100644 --- a/app/src/main/java/uk/org/openseizuredetector/SdAlgHr.java +++ b/app/src/main/java/uk/org/openseizuredetector/SdAlgHr.java @@ -104,9 +104,11 @@ public class SdAlgHr { * Check heart rate value against simple thresholds */ boolean retVal = false; - if ((hrVal > mSimpleHrAlarmThreshMax) - || (hrVal < mSimpleHrAlarmThreshMin)) { - retVal = true; + if (mSimpleHrAlarmActive) { + if ((hrVal > mSimpleHrAlarmThreshMax) + || (hrVal < mSimpleHrAlarmThreshMin)) { + retVal = true; + } } return (retVal); } @@ -145,34 +147,39 @@ public class SdAlgHr { private boolean checkAdaptiveHr(double hrVal) { boolean retVal; retVal = false; - double hrThreshMin; - double hrThreshMax; - double avHr = getAdaptiveHrAverage(); - hrThreshMin = avHr - mAdaptiveHrAlarmThresh; - hrThreshMax = avHr + mAdaptiveHrAlarmThresh; - + + if (mAdaptiveHrAlarmActive) { + double hrThreshMin; + double hrThreshMax; + double avHr = getAdaptiveHrAverage(); + hrThreshMin = avHr - mAdaptiveHrAlarmThresh; + hrThreshMax = avHr + mAdaptiveHrAlarmThresh; - if (hrVal < hrThreshMin) { - retVal = true; + + if (hrVal < hrThreshMin) { + retVal = true; + } + if (hrVal > hrThreshMax) { + retVal = true; + } + Log.d(TAG, "checkAdaptiveHr() - hrVal=" + hrVal + ", avHr=" + avHr + ", thresholds=(" + hrThreshMin + ", " + hrThreshMax + "): Alarm=" + retVal); } - if (hrVal > hrThreshMax) { - retVal = true; - } - Log.d(TAG, "checkAdaptiveHr() - hrVal=" + hrVal + ", avHr=" + avHr + ", thresholds=(" + hrThreshMin + ", " + hrThreshMax + "): Alarm=" + retVal); return (retVal); } private boolean checkAverageHr(double hrVal) { boolean retVal; retVal = false; - double avHr = getAverageHrAverage(); - if (avHr < mAverageHrAlarmThreshMin) { - retVal = true; + if (mAverageHrAlarmActive) { + double avHr = getAverageHrAverage(); + if (avHr < mAverageHrAlarmThreshMin) { + retVal = true; + } + if (avHr > mAverageHrAlarmThreshMax) { + retVal = true; + } + Log.d(TAG, "checkAverageHr() - hrVal=" + hrVal + ", avHr=" + avHr + ", thresholds=(" + mAverageHrAlarmThreshMin + ", " + mAverageHrAlarmThreshMin + "): Alarm=" + retVal); } - if (avHr > mAverageHrAlarmThreshMax) { - retVal = true; - } - Log.d(TAG, "checkAverageHr() - hrVal=" + hrVal + ", avHr=" + avHr + ", thresholds=(" + mAverageHrAlarmThreshMin + ", " + mAverageHrAlarmThreshMin + "): Alarm=" + retVal); return (retVal); } @@ -189,15 +196,10 @@ public class SdAlgHr { mAverageHrBuff.add(hrVal); mHrHist.add(hrVal); ArrayList retVal = new ArrayList(); - if (mSimpleHrAlarmActive) { - retVal.add(checkSimpleHr(hrVal)); - } - if (mAdaptiveHrAlarmActive) { - retVal.add(checkAdaptiveHr(hrVal)); - } - if (mAverageHrAlarmActive) { - retVal.add(checkAverageHr(hrVal)); - } + retVal.add(checkSimpleHr(hrVal)); + retVal.add(checkAdaptiveHr(hrVal)); + retVal.add(checkAverageHr(hrVal)); + return (retVal); }