Sha256: b864d5a530a41283ac42945b360c8cbf48c8e0fd832bb0617b5b49921bacebd9

Contents?: true

Size: 964 Bytes

Versions: 2

Compression:

Stored size: 964 Bytes

Contents

require_relative 'resource'

module Medivo
  class Lab < Resource
    LAB_CORP_ID = 129
    QUEST_ID = 119
    LAB_CORP_NAME = :lab_corp
    QUEST_NAME = :quest
    LAB_ID_TO_NAME = {LAB_CORP_ID => LAB_CORP_NAME, QUEST_ID => QUEST_NAME}
    LAB_ID_TO_SHORT_NAME = {LAB_CORP_ID => 'LC', QUEST_ID => 'QD'}
    LAB_ID_TO_PRETTY_NAME = {LAB_CORP_ID => 'Lab Corp', QUEST_ID => 'Quest Diagnostics'}

    def self.findLabs(zip_code, radius = 15)
      find(:all, :from => "/find_psc/#{zip_code}", :params=>{:radius=>radius}).sort_by(&:distance)
    end

    def self.data_for_zip(zip='')
      zip = zip.to_s.match(/(\d{5})/) ? $1 : nil
      return {} unless zip and zip_info = ZipCode.find_by_zip_code(zip)
      labs = findLabs(zip)[0..1]
      {:labs => labs, :zip_location => zip_info.center_info}
    end

    def lab_name
      LAB_ID_TO_PRETTY_NAME[lab_id]
    end


    def as_json(options={})
      attributes.merge(:lab_name => self.lab_name)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
medivo-0.0.2 app/models/medivo/lab.rb
medivo-0.0.1 app/models/medivo/lab.rb