class Result

Attributes

dilution[RW]
flags[RW]
machine_name[RW]

sometimes we customize the lis code based on the machine which is sending it, so we need this.

name[RW]
reference_ranges[RW]
report_name[RW]
timestamp[RW]
units[RW]
value[RW]

Public Class Methods

new(args={}) click to toggle source

here will call mappings and check the result correlation

# File lib/ruby_astm/result.rb, line 122
        def initialize(args={})
                #puts "called initialize result"
                set_name(args)
                set_flags(args)
                set_value(args)
                set_timestamp(args)
                set_dilution(args)
                set_units(args)


=begin
                if args[:line]
                        line = args[:line]
                        transform_expression = nil
                        line.fields[2].scan(/\^+(?<name>[A-Za-z0-9\%\#\-\_\?\/]+)\^?(?<dilution>\d+)?/) { |name,dilution|  
                                self.name = lookup_mapping(name)
                                self.dilution = dilution
                                transform_expression = lookup_transform(name)
                        }
                        self.value = line.fields[3].strip
                        if transform_expression
                                self.value = eval(transform_expression)
                        end
                        self.reference_ranges = line.fields[5].strip
                        self.flags = line.fields[6].strip 
                        line.fields[12].strip.scan(/(?<year>\d{4})(?<month>\d{2})(?<day>\d{2})(?<hours>\d{2})(?<minutes>\d{2})(?<seconds>\d{2})/) {|year,month,day,hours,minutes,seconds|
                                self.timestamp = Time.new(year,month,day,hours,minutes,seconds)
                        }
                else
                        super
                end
=end

        end

Public Instance Methods

lookup_mapping(name) click to toggle source

@return the name defined in the mappings.json file, or the name that wqs passed in.

# File lib/ruby_astm/result.rb, line 158
def lookup_mapping(name)
        unless $mappings[name].blank?
                unless self.machine_name.blank?
                        unless $mappings[name]["MACHINE_SPECIFIC_LIS_CODES"].blank?
                                unless $mappings[name]["MACHINE_SPECIFIC_LIS_CODES"][self.machine_name].blank?
                                        redirect = $mappings[name]["MACHINE_SPECIFIC_LIS_CODES"][self.machine_name]
                                        unless $mappings[redirect].blank?
                                                $mappings[redirect]["LIS_CODE"]
                                        end
                                end
                        end         
                else
                        $mappings[name]["LIS_CODE"]
                end
        else
                name
        end
        #$mappings[name] ? $mappings[name]["LIS_CODE"] : name
end
lookup_report_name(name) click to toggle source
# File lib/ruby_astm/result.rb, line 182
def lookup_report_name(name)
        $mappings[name] ? $mappings[name]["REPORT_NAME"] : name
end
lookup_transform(name) click to toggle source
# File lib/ruby_astm/result.rb, line 178
def lookup_transform(name)
        $mappings[name] ? $mappings[name]["TRANSFORM"] : nil
end
set_dilution(args) click to toggle source
# File lib/ruby_astm/result.rb, line 103
def set_dilution(args)
        if line = args[:line]

                unless line.fields[2].blank?
                        line.fields[2].scan(/\^+(?<name>[A-Za-z0-9\%\#\-\_\?\/]+)\^?(?<dilution>\d+)?/) { |name,dilution|  
                                self.dilution = dilution unless self.dilution
                        }
                end

        end
end
set_flags(args) click to toggle source
# File lib/ruby_astm/result.rb, line 69
def set_flags(args)
        if line = args[:line]

                unless line.fields[6].blank?
                        self.flags = line.fields[6].strip
                end

        end 
end
set_machine_name(args) click to toggle source
# File lib/ruby_astm/result.rb, line 115
def set_machine_name(args)
        self.machine_name = args[:machine_name]
end
set_name(args) click to toggle source
# File lib/ruby_astm/result.rb, line 14
def set_name(args)
        puts "came to set name"
        if line = args[:line]
                puts "line fields is: #{line.fields}"
                unless line.fields[2].blank?
                        puts "line fields 2 is:"
                        puts line.fields[2]
                        line.fields[2].scan(/^\^+(?<name>[A-Za-z0-9\%\#\-\_\?\/]+)\^?(?<dilution>\d+)?/) { |name,dilution|  
                                
                                self.name = lookup_mapping(name)
                                
                                self.report_name = lookup_report_name(name)

                        }
                end

                unless self.name.blank?
                        self.name.scan(/(?<test_name>\d+)\/(?<dilution>\d+)\/(?<pre_dilution>[a-zA-Z0-9]+)/) { |test_name,dilution,pre_dilution|

                                self.name = lookup_mapping(test_name)

                                self.report_name = lookup_report_name(test_name)

                                self.dilution = dilution

                        }
                end


        end
end
set_reference_ranges(args) click to toggle source
# File lib/ruby_astm/result.rb, line 93
def set_reference_ranges(args)
        if line = args[:line]

                unless line.fields[5].blank?
                        self.reference_ranges = line.fields[5].strip
                end

        end
end
set_timestamp(args) click to toggle source
# File lib/ruby_astm/result.rb, line 83
def set_timestamp(args)
        if line = args[:line]
                unless line.fields[12].blank?
                        line.fields[12].strip.scan(/(?<year>\d{4})(?<month>\d{2})(?<day>\d{2})(?<hours>\d{2})(?<minutes>\d{2})(?<seconds>\d{2})/) {|year,month,day,hours,minutes,seconds|
                                self.timestamp = Time.new(year,month,day,hours,minutes,seconds)
                        }
                end
        end
end
set_units(args) click to toggle source
# File lib/ruby_astm/result.rb, line 79
def set_units(args)

end
set_value(args) click to toggle source
# File lib/ruby_astm/result.rb, line 46
def set_value(args)
        if line = args[:line]

                unless line.fields[3].blank?
                        self.value = line.fields[3].strip
                        self.value.scan(/(?<flag>\d+)\^(?<value>\d?\.?\d+)/) {|flag,value|
                                self.value = value
                        }
                end
                unless line.fields[2].blank?
                        puts "line fields 2 is:"
                        puts line.fields[2]
                        puts "----------------------------"
                        line.fields[2].scan(/\^+(?<name>[A-Za-z0-9\%\#\-\_\?\/]+)\^?(?<dilution>\d+)?/) { |name,dilution|  
                                if transform_expression = lookup_transform(name)
                                        self.value = eval(transform_expression)
                                end
                        }
                end

        end
end