Sha256: fa828c9cf7e15867ff247ca951bdc13eb1689c71b1ee948ea25a5d0805c5c4b1

Contents?: true

Size: 1.83 KB

Versions: 2

Compression:

Stored size: 1.83 KB

Contents

require_relative 'resource'

module Medivo
  class Order < Resource
    set_element_name 'customer'
    set_collection_name 'customers'

    validates_presence_of :email, :address, :zip, :dob, :home_phone, :psc,
                          :test_types, :gender, :account_number
    validates_inclusion_of :gender, :in => %w(Male Female)
    validates_with Medivo::DateValidator, :fields=>[:dob]
    validates_with Medivo::ArrayValidator, :fields=>[:test_types]

    def read_attribute_for_validation(key)
       @attributes[key]
    end

    def initialize(attributes = {}, persisted = false)
      super(attributes, persisted)
      self.draw_location = 'PSC'
      self.take_tests_same_day = true
    end

    def to_param
      requisition_id
    end

    def requisition_id
      requisition_number
    end

    def self.get_order(requsition_id)
      find(requsition_id)
    end

    #  medivo_order = create(values)
    #  unless medivo_order.valid?
    #    Rails.logger.error("Error creating Medivo Lab order")
    #    Rails.logger.error(medivo_order.inspect)
    #    raise "Errors in Medivo Lab order #{medivo_order.errors.messages}"
    #  end
    #  medivo_order
    #end

    def results
      @results ||= Array.wrap(try(:reconciled_results).try(:result))
    end

    def simulate_result(lab_prefix, type='normal')
      raise "Incorrect Result Type" unless %w(normal false_positive positive).include?(type) and %w(qd lc).include?(lab_prefix)
      body = case type
        when 'normal' then
          "<mock><simulate>result</simulate><result kind='#{type}' complete='complete'></result></mock>"
        when 'false_positive', 'positive' then
          "<mock><simulate>result</simulate><result><hl7>#{Base64.encode64(File.read("lib/pdfs/#{lab_prefix}_#{type}.hl7"))}</hl7></result></mock>"
      end

      post(:mock_order, {}, body)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

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