calculateNAccelerations method
Calculates the number of accelerations.
Implementation
void calculateNAccelerations() {
List<MarkerIndices> accelerations = [];
int size = millisecondsEpoch.length;
//assert size > 15 : "Input size insufficient!" ;
int counter1 = 0, counter2 = 0, n = 0;
//List<int> beatsBpm = millisecondsEpoch;
bool isAcceleration = false;
/*for (int j = 0; j < size; j++) {
if (beats[j] != 0)
beatsBpm[j] = SIXTY_THOUSAND_MS / (int) beats[j];
else
beatsBpm[j] = 0;
}*/
for (int i = 0; i < size; i++) {
MarkerIndices acceleration = MarkerIndices();
/** gestetional age <32 weeks **/
print("milisec${baselineFHRDR![i]} ${millisecondsEpoch[i]}");
if ((baselineFHRDR![i]! - millisecondsEpoch[i]!) == 0) {
if (isAcceleration) {
acceleration = MarkerIndices();
acceleration.setFrom(
((i - (gestAge <= 32 ? counter1 : counter2)) * factor)
.truncate());
acceleration.setTo(((i) * factor).truncate());
accelerations.add(acceleration);
}
counter1 = 0;
counter2 = 0;
isAcceleration = false;
continue;
}
if (gestAge <= 32 &&
SIXTY_THOUSAND_MS / (baselineFHRDR![i]! - millisecondsEpoch[i]!) >= 10) {
// 10bpm = 6000ms
counter1++;
if (counter1 >= 3 && !isAcceleration) {
// 10 seconds = 3 samples
// acceleration detected
isAcceleration = true;
n++;
}
} else if (gestAge <= 32) {
if (isAcceleration) {
acceleration = MarkerIndices();
acceleration.setFrom(((i - counter1) * factor).truncate());
acceleration.setTo((((i) * factor).truncate()));
accelerations.add(acceleration);
}
counter1 = 0;
isAcceleration = false;
}
/** gestetional age >=32 weeks **/
if (gestAge > 32 &&
SIXTY_THOUSAND_MS / (baselineFHRDR![i]! - millisecondsEpoch[i]!) >= 15) {
// 15bpm = 4000ms
counter2++;
if (counter2 >= 4 && !isAcceleration) {
// 15 seconds = 4 samples
isAcceleration = true;
n++;
}
} else if (gestAge > 32) {
if (isAcceleration) {
acceleration = MarkerIndices();
acceleration.setFrom(((i - counter2) * factor).truncate());
acceleration.setTo(((i) * factor).truncate());
accelerations.add(acceleration);
}
counter2 = 0;
isAcceleration = false;
}
}
nAccelerations = n;
nAccelerationsList = accelerations;
return;
}