#!/usr/bin/perl -w
# Read output of PlCountRatings.txt and sum data for each drug March 20, 2013
# perl PlSumDrugs.txt Sum24.txt > SumDrugs24.txt

use strict;
srand(time|$$);

sub ReadFile
{
    my ($FileName) = @_;
    unless(open(MYFILE, $FileName))
    {
        print "Cannot open file $FileName\n";
        exit;
    }
    my @Data = <MYFILE>;
    close MYFILE;
    return @Data;
}

my $FileName = $ARGV[0];
my @DataI = ReadFile($FileName);

my @DataO;
my $LineCum = "";
foreach my $Line (@DataI)
{
    if ($Line =~ /\S/)
    {
        $LineCum = $LineCum . $Line;
    }
    else
    {
        push(@DataO, $LineCum);
        $LineCum = "";
    }
}

until ($DataO[0] =~ /\S/)
{
    shift @DataO;
}

my $Finish = 0;
my $First = 1;
my $VisualP = 0;
my $VisualA = 0;
my $EgoP = 0;
my $EgoA = 0;
my $RealityP = 0;
my $RealityA = 0;
my @Records = ();
my $Effect;
my $ThisP;
my $ThisA;
my $Drug;

foreach my $Line (@DataO)
{
    if ($Line =~ /^Drug:/)
    {
        if ($Finish)
        {
            printf STDOUT "V: %.4f=%d/%d - Creative visuals\n", $VisualP/($VisualP + $VisualA), $VisualP, $VisualA;
            printf STDOUT "E: %.4f=%d/%d - Ego-loss\n", $EgoP/($EgoP + $EgoA), $EgoP, $EgoA;
            printf STDOUT "R: %.4f=%d/%d - Loss of contact with reality\n", $RealityP/($RealityP + $RealityA), $RealityP, $RealityA;
            $VisualP = $VisualA = $EgoP = $EgoA = $RealityP = $RealityA = 0;
        }
        $Line =~ /^Drug: (.*)$/;
        $Drug = $1;
        print "\n$Drug\n";
        $Finish = 1;
    }
    else
    {
        @Records = split (/\n/, $Line);
        foreach my $Record (@Records)
        {
            if ($Record =~ /^(V|E|R): \d/)
            {
                $Effect = $1;
                $Record =~ /^.*=(\d+)\/(\d+)/;
                $ThisP = $1; $ThisA = $2;
#               print "$Record\n";
#               print "    ThisP=$ThisP, ThisA=$ThisA\n";
                if ($Effect eq 'V')
                {
                    $VisualP += $ThisP; $VisualA += $ThisA;
                }
                if ($Effect eq 'E')
                {
                    $EgoP += $ThisP; $EgoA += $ThisA;
                }
                if ($Effect eq 'R')
                {
                    $RealityP += $ThisP; $RealityA += $ThisA;
                }
            }
        }
    }
}
printf STDOUT "V: %.4f=%d/%d - Creative visuals\n", $VisualP/($VisualP + $VisualA), $VisualP, $VisualA;
printf STDOUT "E: %.4f=%d/%d - Ego-loss\n", $EgoP/($EgoP + $EgoA), $EgoP, $EgoA;
printf STDOUT "R: %.4f=%d/%d - Loss of contact with reality\n", $RealityP/($RealityP + $RealityA), $RealityP, $RealityA;

