Change A1c from median to mean; fix weekly average bug.
This commit is contained in:
parent
aa5c09c51b
commit
86f3f91129
@ -12,6 +12,7 @@ use strict;
|
|||||||
use warnings;
|
use warnings;
|
||||||
use Getopt::Long;
|
use Getopt::Long;
|
||||||
use IPC::Open3;
|
use IPC::Open3;
|
||||||
|
use List::Util qw(sum);
|
||||||
use Time::Piece;
|
use Time::Piece;
|
||||||
use Time::Seconds;
|
use Time::Seconds;
|
||||||
use Data::Dumper;
|
use Data::Dumper;
|
||||||
@ -173,8 +174,8 @@ foreach my $year ( sort keys %seen_weeks ) {
|
|||||||
delete $seen_weeks{$year}{$week} if ( scalar $seen_weeks{$year}{$week} < 96 );
|
delete $seen_weeks{$year}{$week} if ( scalar $seen_weeks{$year}{$week} < 96 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$total_day_graphs = scalar keys %seen_days;
|
$total_day_graphs = scalar values %seen_days;
|
||||||
$total_week_graphs = scalar keys %seen_weeks;
|
$total_week_graphs = sum map { scalar keys %{$seen_weeks{$_}} } keys %seen_weeks;
|
||||||
|
|
||||||
$intervals = calculate_max_min( 'lines' => \@filelines, 'format' => '%Y-%m-%dT%H:%M:%S' );
|
$intervals = calculate_max_min( 'lines' => \@filelines, 'format' => '%Y-%m-%dT%H:%M:%S' );
|
||||||
|
|
||||||
@ -480,18 +481,18 @@ set label 2 AVG_LABEL at graph 0.9, graph 0.9 front center
|
|||||||
|
|
||||||
A1C = 0
|
A1C = 0
|
||||||
if (A1C == 0 && '$units' eq 'mg/dL') {
|
if (A1C == 0 && '$units' eq 'mg/dL') {
|
||||||
A1C = (MedianTotal + 46.7) / 28.7
|
A1C = (MeanTotal + 46.7) / 28.7
|
||||||
}
|
}
|
||||||
if (A1C == 0 && '$units' eq 'mmol/L') {
|
if (A1C == 0 && '$units' eq 'mmol/L') {
|
||||||
A1C = (MedianTotal + 2.59) / 1.59
|
A1C = (MeanTotal + 2.59) / 1.59
|
||||||
}
|
}
|
||||||
# mg/dL numbers tend to be higher than 35
|
# mg/dL numbers tend to be higher than 35
|
||||||
if (A1C == 0 && MedianTotal >= 35) {
|
if (A1C == 0 && MedianTotal >= 35) {
|
||||||
A1C = (MedianTotal + 46.7) / 28.7
|
A1C = (MeanTotal + 46.7) / 28.7
|
||||||
}
|
}
|
||||||
# mmol/L numbers tend to be lower than 35
|
# mmol/L numbers tend to be lower than 35
|
||||||
if (A1C == 0 && MedianTotal < 35) {
|
if (A1C == 0 && MedianTotal < 35) {
|
||||||
A1C = (MedianTotal + 2.59) / 1.59
|
A1C = (MeanTotal + 2.59) / 1.59
|
||||||
}
|
}
|
||||||
|
|
||||||
A1C_LABEL = gprintf("Average A1c: %.1f%%", A1C)
|
A1C_LABEL = gprintf("Average A1c: %.1f%%", A1C)
|
||||||
@ -572,18 +573,18 @@ set label 2 AVG_LABEL at graph 0.9, graph 0.9 front center
|
|||||||
|
|
||||||
A1C = 0
|
A1C = 0
|
||||||
if (A1C == 0 && '$units' eq 'mg/dL') {
|
if (A1C == 0 && '$units' eq 'mg/dL') {
|
||||||
A1C = (MedianTotal$label + 46.7) / 28.7
|
A1C = (MeanTotal$label + 46.7) / 28.7
|
||||||
}
|
}
|
||||||
if (A1C == 0 && '$units' eq 'mmol/L') {
|
if (A1C == 0 && '$units' eq 'mmol/L') {
|
||||||
A1C = (MedianTotal$label + 2.59) / 1.59
|
A1C = (MeanTotal$label + 2.59) / 1.59
|
||||||
}
|
}
|
||||||
# mg/dL numbers tend to be higher than 35
|
# mg/dL numbers tend to be higher than 35
|
||||||
if (A1C == 0 && MedianTotal$label >= 35) {
|
if (A1C == 0 && MedianTotal$label >= 35) {
|
||||||
A1C = (MedianTotal$label + 46.7) / 28.7
|
A1C = (MeanTotal$label + 46.7) / 28.7
|
||||||
}
|
}
|
||||||
# mmol/L numbers tend to be lower than 35
|
# mmol/L numbers tend to be lower than 35
|
||||||
if (A1C == 0 && MedianTotal$label < 35) {
|
if (A1C == 0 && MedianTotal$label < 35) {
|
||||||
A1C = (MedianTotal$label + 2.59) / 1.59
|
A1C = (MeanTotal$label + 2.59) / 1.59
|
||||||
}
|
}
|
||||||
|
|
||||||
A1C_LABEL = gprintf("Average A1c: %.1f%%", A1C)
|
A1C_LABEL = gprintf("Average A1c: %.1f%%", A1C)
|
||||||
@ -689,7 +690,7 @@ undefine \$DataMaxMinTable
|
|||||||
|
|
||||||
# run the data through gnuplot
|
# run the data through gnuplot
|
||||||
$gnuplot_data = join "\n", @data;
|
$gnuplot_data = join "\n", @data;
|
||||||
print $gnuplot_data;
|
#print $gnuplot_data;
|
||||||
|
|
||||||
open( my $ofh, '>', $output )
|
open( my $ofh, '>', $output )
|
||||||
or die "Could not open file '$output' $!";
|
or die "Could not open file '$output' $!";
|
||||||
|
Loading…
Reference in New Issue
Block a user