class Sunnyside::ClaimParser

Attributes

claim_header[R]
payment_id[R]
service_data[R]

Public Class Methods

new(claim, payment_id) click to toggle source
# File lib/sunnyside/ledger/edi.rb, line 57
def initialize(claim, payment_id)
  @claim_header = claim[0].split(/\*/)
  @service_data = claim.select { |clm| clm =~ /^SVC/ }
  @payment_id   = Payment[payment_id]
end

Public Instance Methods

header() click to toggle source
# File lib/sunnyside/ledger/edi.rb, line 63
def header
  {
    :invoice       => claim_header[0],
    :response_code => claim_header[1],
    :billed        => claim_header[2],
    :paid          => claim_header[3],
    :units         => claim_header[5], # 4 is not used - that is the patient responsibility amount
    :claim_number  => claim_header[6][/^\d+/]
  }
end
parse() click to toggle source
# File lib/sunnyside/ledger/edi.rb, line 74
def parse
  claim    = ClaimEntry.new(header)
  claim_id = claim.to_db(payment_id) 
  service_data.each { |service| ServiceParser.new(service, claim_id).parse }
end