Class: Trizetto::Api::Eligibility::WebService::Benefit

Inherits:
Node
  • Object
show all
Defined in:
lib/trizetto/api/eligibility/web_service/benefit.rb

Overview

A Benefit provided by the insurance.

Example XML

<benefit>
  <info>Out of Pocket (Stop Loss)</info>
  <coveragelevel>Family</coveragelevel>
  <servicetype>Health Benefit Plan Coverage</servicetype>
  <servicetypecode>30</servicetypecode>
  <time_period_qualifier>Remaining</time_period_qualifier>
  <benefitamount>13097.6</benefitamount>
  <plannetworkindicator>In Plan-Network</plannetworkindicator>
  <message>BUT NO MORE THAN INDIVIDUAL AMOUNT PER MEMBER (ACCUMULATES WITH OUT-OF-NETWORK AMOUNTS)</message>
  <message>CALCULATION INCLUDES DEDUCTIBLE, COPAYMENTS AND COINSURANCE FOR MEDICAL AND PRESCRIPTION DRUG BENEFITS.</message>
</benefit>

Example

benefit.info     # => "Out of Pocket (Stop Loss)"
benefit.messages # => ["BUT NO MORE THAN...", "CALCULATION INCLUDES ...."]

Example XML

<benefit>
  <info>Active Coverage</info>
  <coveragelevel>Family</coveragelevel>
  <servicetype>Health Benefit Plan Coverage</servicetype>
  <servicetypecode>30</servicetypecode>
  <insurancetype>Preferred Provider Organization (PPO)</insurancetype>
  <insurancetypecode>PR</insurancetypecode>
  <plancoveragedescription>PPO - PREFERRED BLUE PPO SAVER</plancoveragedescription>
</benefit>

Example

benefit.info                # => "Active Coverage<"
benefit.service_type_codes  # => ["30"]

Constant Summary collapse

REQUIRED_KEYS =
{
  info:               '',
  service_type_codes: [],
  messages:           [],
}
KEY_CLEANUP =
{
  benefitamount:           :benefit_amount,
  benefitentity:           :entity,
  coveragelevel:           :coverage_level,
  datequalifier:           :date_qualifier,
  insurancetype:           :insurance_type,
  insurancetypecode:       :insurance_type_code,
  plancoveragedescription: :plan_coverage_description,
  plannetworkindicator:    :plan_network_indicator,
  quantityqualifier:       :quantity_qualifier,
  servicetype:             :service_type,
  servicetypecode:         :service_type_code,
}

Instance Method Summary collapse

Constructor Details

#initialize(raw_hash = {}) ⇒ Benefit

Returns a new instance of Benefit.



67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/trizetto/api/eligibility/web_service/benefit.rb', line 67

def initialize(raw_hash = {})
  clean_hash = raw_hash.dup

  # Convert message, which is either a single or multiple entry int
  # the SOAP, which then gets turned into a string or an array by
  # Nori into a messages aaray
  clean_hash[:messages] = Array(clean_hash.delete(:message)) if clean_hash.has_key?(:message)

  # Service type codes indicate the type of benefit.
  # The magic decoder for ID => human meaning is here: http://www.x12.org/codes/health-care-service-type-codes/
  # Multiple service type codes with the same benfit are combined with a ^
  # so we turn a single servicetypecode entry into an array of service types
  clean_hash[:service_type_codes] = (clean_hash.delete(:servicetypecode) || '').split("^")

  super(clean_hash)

  if self.entity.is_a?(Hash)
    self.entity = BenefitEntity.new(self.entity)
  end
end

Instance Method Details

#active_coverage?Boolean

Is this active insurance coverage?

Returns:

  • (Boolean)


89
90
91
# File 'lib/trizetto/api/eligibility/web_service/benefit.rb', line 89

def active_coverage?
  info == "Active Coverage"
end

#co_insurance?Boolean

Returns:

  • (Boolean)


97
98
99
# File 'lib/trizetto/api/eligibility/web_service/benefit.rb', line 97

def co_insurance?
  info == "Co-Insurance"
end

#inactive?Boolean

Returns:

  • (Boolean)


93
94
95
# File 'lib/trizetto/api/eligibility/web_service/benefit.rb', line 93

def inactive?
  info == "Inactive"
end

#limitation?Boolean

Returns:

  • (Boolean)


101
102
103
# File 'lib/trizetto/api/eligibility/web_service/benefit.rb', line 101

def limitation?
  info == "Limitations"
end

#non_covered?Boolean

Returns:

  • (Boolean)


105
106
107
# File 'lib/trizetto/api/eligibility/web_service/benefit.rb', line 105

def non_covered?
  info == "Non-Covered"
end

#primary_care_provider?Boolean

Returns:

  • (Boolean)


109
110
111
# File 'lib/trizetto/api/eligibility/web_service/benefit.rb', line 109

def primary_care_provider?
  info == "Primary Care Provider"
end