calculateBaselineB2bVariability method

void calculateBaselineB2bVariability(
  1. List<double> beats,
  2. int size
)

baseline b2b variability criteria

  1. Increased or marked > 25 bpm
  2. Normal or moderate 5 - 25 bpm
  3. Reduced or minimal 3 - 5 bpm
  4. Absent < 3 bpm

Implementation

void calculateBaselineB2bVariability(List<double> beats, int size) {
  int? min = 0, max = 0;
  List<int?> beatsBpm = List.filled(size, null, growable: false);

  for (int j = 0; j < size; j++) {
    if (beats[j] != 0) {
      beatsBpm[j] = (SIXTY_THOUSAND_MS / beats[j]).truncate();
    } else {
      beatsBpm[j] = 0;
    }
    //System.out.println(beatsBpm[j]+" " + beats[j]);
  }

  min = beatsBpm[0];

  for (int i = 0; i < size; i++) {
    if (beatsBpm[i]! < min!) min = beatsBpm[i];
    if (beatsBpm[i]! > max!) max = beatsBpm[i];
  }

  if (max! - min! > 0 && max - min >= 25) {
    // 25 bpm ~ 2400 ms
    baselineB2bVariability = "Increased or Marked";
  } else if (max - min >= 5 && max - min < 25) // 5 bpm ~ 12000 ms
    baselineB2bVariability = "Normal or Moderate";
  else if (max - min >= 3 && max - min < 5) // 3 bpm ~ 20000 ms
    baselineB2bVariability = "Reduced or Minimal";
  else
    baselineB2bVariability = "Absent";
}