calculateNAccelerations method

void calculateNAccelerations()

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;
}