Enabled new SdAlgHr checks in SdDataSource - needs testing!
This commit is contained in:
@@ -49,6 +49,9 @@ public class CircBuf {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public int getNumVals() {
|
public int getNumVals() {
|
||||||
|
/**
|
||||||
|
* Returns the total count of values stored in the buffer (including error values).
|
||||||
|
*/
|
||||||
int numElements;
|
int numElements;
|
||||||
if (mIsFull) {
|
if (mIsFull) {
|
||||||
numElements = mBuffLen;
|
numElements = mBuffLen;
|
||||||
@@ -78,6 +81,10 @@ public class CircBuf {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public double getAverageVal() {
|
public double getAverageVal() {
|
||||||
|
/**
|
||||||
|
* Returns the average of the values stored in the buffer, which do not equal the error value mErrVal.
|
||||||
|
* Error values are ignored.
|
||||||
|
*/
|
||||||
double hrSum = 0.;
|
double hrSum = 0.;
|
||||||
int hrCount = 0;
|
int hrCount = 0;
|
||||||
double valArr[] = getVals();
|
double valArr[] = getVals();
|
||||||
|
|||||||
@@ -106,6 +106,8 @@ public class SdData implements Parcelable {
|
|||||||
|
|
||||||
public boolean mHRAlarmStanding = false;
|
public boolean mHRAlarmStanding = false;
|
||||||
public boolean mHRFaultStanding = false;
|
public boolean mHRFaultStanding = false;
|
||||||
|
public boolean mAdaptiveHRAlarmStanding = false;
|
||||||
|
public boolean mAverageHRAlarmStanding = false;
|
||||||
public double mHR = 0;
|
public double mHR = 0;
|
||||||
|
|
||||||
public boolean mO2SatAlarmStanding = false;
|
public boolean mO2SatAlarmStanding = false;
|
||||||
@@ -318,6 +320,9 @@ public class SdData implements Parcelable {
|
|||||||
jsonObj.put("alarmRatioThresh", alarmRatioThresh);
|
jsonObj.put("alarmRatioThresh", alarmRatioThresh);
|
||||||
jsonObj.put("hrAlarmActive", mHRAlarmActive);
|
jsonObj.put("hrAlarmActive", mHRAlarmActive);
|
||||||
jsonObj.put("hrAlarmStanding", mHRAlarmStanding);
|
jsonObj.put("hrAlarmStanding", mHRAlarmStanding);
|
||||||
|
jsonObj.put("adaptiveHrAlarmStanding", mAdaptiveHRAlarmStanding);
|
||||||
|
jsonObj.put("averageHrAlarmStanding", mAverageHRAlarmStanding);
|
||||||
|
jsonObj.put("hrAlarmStanding", mHRAlarmStanding);
|
||||||
jsonObj.put("hrThreshMin", mHRThreshMin);
|
jsonObj.put("hrThreshMin", mHRThreshMin);
|
||||||
jsonObj.put("hrThreshMax", mHRThreshMax);
|
jsonObj.put("hrThreshMax", mHRThreshMax);
|
||||||
jsonObj.put("hr", mHR);
|
jsonObj.put("hr", mHR);
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ import org.json.JSONException;
|
|||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
import org.jtransforms.fft.DoubleFFT_1D;
|
import org.jtransforms.fft.DoubleFFT_1D;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Timer;
|
import java.util.Timer;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
@@ -589,25 +590,28 @@ public abstract class SdDataSource {
|
|||||||
*/
|
*/
|
||||||
public void hrCheck() {
|
public void hrCheck() {
|
||||||
Log.v(TAG, "hrCheck()");
|
Log.v(TAG, "hrCheck()");
|
||||||
/* Check Heart Rate against alarm settings */
|
ArrayList<Boolean> checkResults;
|
||||||
|
checkResults = mSdAlgHr.checkHr(mSdData.mHR);
|
||||||
|
/* Check for heart rate fault condition */
|
||||||
if (mSdData.mHRAlarmActive) {
|
if (mSdData.mHRAlarmActive) {
|
||||||
if (mSdData.mHR < 0) {
|
if (mSdData.mHR < 0) {
|
||||||
if (mSdData.mHRNullAsAlarm) {
|
if (mSdData.mHRNullAsAlarm) {
|
||||||
Log.i(TAG, "Heart Rate Null - Alarming");
|
Log.i(TAG, "Heart Rate Null - Alarming");
|
||||||
mSdData.mHRFaultStanding = false;
|
mSdData.mHRFaultStanding = false;
|
||||||
mSdData.mHRAlarmStanding = true;
|
mSdData.mHRAlarmStanding = true;
|
||||||
|
mSdData.mAdaptiveHRAlarmStanding = false;
|
||||||
|
mSdData.mAverageHRAlarmStanding = false;
|
||||||
} else {
|
} else {
|
||||||
Log.i(TAG, "Heart Rate Fault (HR<0)");
|
Log.i(TAG, "Heart Rate Fault (HR<0)");
|
||||||
mSdData.mHRFaultStanding = true;
|
mSdData.mHRFaultStanding = true;
|
||||||
mSdData.mHRAlarmStanding = false;
|
mSdData.mHRAlarmStanding = false;
|
||||||
|
mSdData.mAdaptiveHRAlarmStanding = false;
|
||||||
|
mSdData.mAverageHRAlarmStanding = false;
|
||||||
}
|
}
|
||||||
} else if ((mSdData.mHR > mSdData.mHRThreshMax) || (mSdData.mHR < mSdData.mHRThreshMin)) {
|
|
||||||
Log.i(TAG, "Heart Rate Abnormal - " + mSdData.mHR + " bpm");
|
|
||||||
mSdData.mHRFaultStanding = false;
|
|
||||||
mSdData.mHRAlarmStanding = true;
|
|
||||||
} else {
|
} else {
|
||||||
mSdData.mHRFaultStanding = false;
|
mSdData.mHRAlarmStanding = checkResults.get(0);
|
||||||
mSdData.mHRAlarmStanding = false;
|
mSdData.mAdaptiveHRAlarmStanding = checkResults.get(1);
|
||||||
|
mSdData.mAverageHRAlarmStanding = checkResults.get(2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user