vericred_client 0.0.9 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (164) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +116 -13
  3. data/docs/Base.md +1 -1
  4. data/docs/Drug.md +1 -0
  5. data/docs/DrugCoverage.md +2 -1
  6. data/docs/DrugCoverageResponse.md +1 -1
  7. data/docs/DrugCoveragesApi.md +69 -0
  8. data/docs/DrugPackage.md +1 -0
  9. data/docs/DrugPackagesApi.md +66 -0
  10. data/docs/DrugSearchResponse.md +1 -1
  11. data/docs/DrugsApi.md +0 -61
  12. data/docs/Formulary.md +9 -0
  13. data/docs/FormularyDrugPackageResponse.md +10 -0
  14. data/docs/FormularyResponse.md +9 -0
  15. data/docs/Network.md +1 -1
  16. data/docs/NetworkDetails.md +10 -0
  17. data/docs/NetworkDetailsResponse.md +8 -0
  18. data/docs/NetworkSearchResponse.md +1 -1
  19. data/docs/NetworkSize.md +10 -0
  20. data/docs/NetworkSizesApi.md +124 -0
  21. data/docs/NetworksApi.md +55 -0
  22. data/docs/Plan.md +6 -4
  23. data/docs/PlanSearchResponse.md +2 -2
  24. data/docs/PlanSearchResponseMeta.md +9 -0
  25. data/docs/PlanSearchResult.md +6 -4
  26. data/docs/PlansApi.md +12 -10
  27. data/docs/Provider.md +1 -6
  28. data/docs/ProviderDetails.md +31 -0
  29. data/docs/ProviderGeocode.md +10 -0
  30. data/docs/ProvidersApi.md +61 -7
  31. data/docs/ProvidersGeocodeResponse.md +9 -0
  32. data/docs/ProvidersSearchResponse.md +1 -1
  33. data/docs/RequestPlanFindApplicant.md +2 -0
  34. data/docs/RequestPlanFindDrugPackage.md +1 -0
  35. data/docs/RequestProvidersSearch.md +5 -2
  36. data/docs/StateNetworkSizeRequest.md +9 -0
  37. data/docs/StateNetworkSizeResponse.md +9 -0
  38. data/docs/ZipCountiesApi.md +56 -1
  39. data/lib/vericred_client.rb +103 -2
  40. data/lib/vericred_client/api/drug_coverages_api.rb +295 -0
  41. data/lib/vericred_client/api/drug_packages_api.rb +289 -0
  42. data/lib/vericred_client/api/drugs_api.rb +88 -68
  43. data/lib/vericred_client/api/network_sizes_api.rb +348 -0
  44. data/lib/vericred_client/api/networks_api.rb +145 -1
  45. data/lib/vericred_client/api/plans_api.rb +108 -15
  46. data/lib/vericred_client/api/providers_api.rb +155 -9
  47. data/lib/vericred_client/api/zip_counties_api.rb +148 -4
  48. data/lib/vericred_client/api_client.rb +110 -21
  49. data/lib/vericred_client/api_error.rb +88 -1
  50. data/lib/vericred_client/configuration.rb +88 -1
  51. data/lib/vericred_client/models/applicant.rb +90 -3
  52. data/lib/vericred_client/models/base.rb +91 -4
  53. data/lib/vericred_client/models/carrier.rb +90 -3
  54. data/lib/vericred_client/models/carrier_subsidiary.rb +90 -3
  55. data/lib/vericred_client/models/county.rb +90 -3
  56. data/lib/vericred_client/models/county_bulk.rb +90 -3
  57. data/lib/vericred_client/models/drug.rb +101 -4
  58. data/lib/vericred_client/models/drug_coverage.rb +111 -14
  59. data/lib/vericred_client/models/drug_coverage_response.rb +91 -4
  60. data/lib/vericred_client/models/drug_package.rb +104 -7
  61. data/lib/vericred_client/models/drug_search_response.rb +91 -4
  62. data/lib/vericred_client/models/formulary.rb +404 -0
  63. data/lib/vericred_client/models/formulary_drug_package_response.rb +414 -0
  64. data/lib/vericred_client/models/formulary_response.rb +406 -0
  65. data/lib/vericred_client/models/meta.rb +90 -3
  66. data/lib/vericred_client/models/network.rb +91 -4
  67. data/lib/vericred_client/models/network_details.rb +416 -0
  68. data/lib/vericred_client/models/{pricing.rb → network_details_response.rb} +99 -112
  69. data/lib/vericred_client/models/network_search_response.rb +91 -4
  70. data/lib/vericred_client/models/network_size.rb +414 -0
  71. data/lib/vericred_client/models/plan.rb +115 -8
  72. data/lib/vericred_client/models/plan_county.rb +90 -3
  73. data/lib/vericred_client/models/plan_county_bulk.rb +90 -3
  74. data/lib/vericred_client/models/plan_search_response.rb +93 -6
  75. data/lib/vericred_client/models/plan_search_response_meta.rb +404 -0
  76. data/lib/vericred_client/models/plan_search_result.rb +115 -8
  77. data/lib/vericred_client/models/plan_show_response.rb +90 -3
  78. data/lib/vericred_client/models/provider.rb +101 -66
  79. data/lib/vericred_client/models/provider_details.rb +628 -0
  80. data/lib/vericred_client/models/provider_geocode.rb +414 -0
  81. data/lib/vericred_client/models/provider_show_response.rb +90 -3
  82. data/lib/vericred_client/models/providers_geocode_response.rb +406 -0
  83. data/lib/vericred_client/models/providers_search_response.rb +91 -4
  84. data/lib/vericred_client/models/rating_area.rb +90 -3
  85. data/lib/vericred_client/models/request_plan_find.rb +90 -3
  86. data/lib/vericred_client/models/request_plan_find_applicant.rb +114 -7
  87. data/lib/vericred_client/models/request_plan_find_drug_package.rb +104 -7
  88. data/lib/vericred_client/models/request_plan_find_provider.rb +90 -3
  89. data/lib/vericred_client/models/request_providers_search.rb +143 -26
  90. data/lib/vericred_client/models/service_area.rb +90 -3
  91. data/lib/vericred_client/models/service_area_zip_county.rb +90 -3
  92. data/lib/vericred_client/models/state.rb +90 -3
  93. data/lib/vericred_client/models/state_network_size_request.rb +408 -0
  94. data/lib/vericred_client/models/state_network_size_response.rb +406 -0
  95. data/lib/vericred_client/models/zip_code.rb +90 -3
  96. data/lib/vericred_client/models/zip_counties_response.rb +90 -3
  97. data/lib/vericred_client/models/zip_county.rb +90 -3
  98. data/lib/vericred_client/models/zip_county_bulk.rb +90 -3
  99. data/lib/vericred_client/models/zip_county_response.rb +90 -3
  100. data/lib/vericred_client/version.rb +89 -2
  101. data/spec/api/drug_coverages_api_spec.rb +254 -0
  102. data/spec/api/drug_packages_api_spec.rb +253 -0
  103. data/spec/api/drugs_api_spec.rb +88 -15
  104. data/spec/api/network_sizes_api_spec.rb +266 -0
  105. data/spec/api/networks_api_spec.rb +100 -1
  106. data/spec/api/plans_api_spec.rb +92 -4
  107. data/spec/api/providers_api_spec.rb +102 -3
  108. data/spec/api/zip_counties_api_spec.rb +101 -2
  109. data/spec/api_client_spec.rb +91 -25
  110. data/spec/configuration_spec.rb +88 -1
  111. data/spec/models/applicant_spec.rb +88 -1
  112. data/spec/models/base_spec.rb +88 -1
  113. data/spec/models/carrier_spec.rb +88 -1
  114. data/spec/models/carrier_subsidiary_spec.rb +88 -1
  115. data/spec/models/county_bulk_spec.rb +88 -1
  116. data/spec/models/county_spec.rb +88 -1
  117. data/spec/models/drug_coverage_response_spec.rb +88 -1
  118. data/spec/models/drug_coverage_spec.rb +95 -2
  119. data/spec/models/drug_package_spec.rb +94 -1
  120. data/spec/models/drug_search_response_spec.rb +88 -1
  121. data/spec/models/drug_spec.rb +94 -1
  122. data/spec/models/formulary_drug_package_response_spec.rb +259 -0
  123. data/spec/models/formulary_response_spec.rb +253 -0
  124. data/spec/models/formulary_spec.rb +253 -0
  125. data/spec/models/meta_spec.rb +88 -1
  126. data/spec/models/network_details_response_spec.rb +247 -0
  127. data/spec/models/network_details_spec.rb +259 -0
  128. data/spec/models/network_search_response_spec.rb +88 -1
  129. data/spec/models/network_size_spec.rb +259 -0
  130. data/spec/models/network_spec.rb +88 -1
  131. data/spec/models/plan_county_bulk_spec.rb +88 -1
  132. data/spec/models/plan_county_spec.rb +88 -1
  133. data/spec/models/plan_search_response_meta_spec.rb +253 -0
  134. data/spec/models/plan_search_response_spec.rb +88 -1
  135. data/spec/models/plan_search_result_spec.rb +100 -1
  136. data/spec/models/plan_show_response_spec.rb +88 -1
  137. data/spec/models/plan_spec.rb +100 -1
  138. data/spec/models/provider_details_spec.rb +385 -0
  139. data/spec/models/provider_geocode_spec.rb +259 -0
  140. data/spec/models/provider_show_response_spec.rb +88 -1
  141. data/spec/models/provider_spec.rb +94 -37
  142. data/spec/models/providers_geocode_response_spec.rb +253 -0
  143. data/spec/models/providers_search_response_spec.rb +88 -1
  144. data/spec/models/rating_area_spec.rb +88 -1
  145. data/spec/models/request_plan_find_applicant_spec.rb +100 -1
  146. data/spec/models/request_plan_find_drug_package_spec.rb +94 -1
  147. data/spec/models/request_plan_find_provider_spec.rb +88 -1
  148. data/spec/models/request_plan_find_spec.rb +88 -1
  149. data/spec/models/request_providers_search_spec.rb +109 -4
  150. data/spec/models/service_area_spec.rb +88 -1
  151. data/spec/models/service_area_zip_county_spec.rb +88 -1
  152. data/spec/models/state_network_size_request_spec.rb +253 -0
  153. data/spec/models/state_network_size_response_spec.rb +253 -0
  154. data/spec/models/state_spec.rb +88 -1
  155. data/spec/models/zip_code_spec.rb +88 -1
  156. data/spec/models/zip_counties_response_spec.rb +88 -1
  157. data/spec/models/zip_county_bulk_spec.rb +88 -1
  158. data/spec/models/zip_county_response_spec.rb +88 -1
  159. data/spec/models/zip_county_spec.rb +88 -1
  160. data/spec/spec_helper.rb +88 -1
  161. data/vericred_client.gemspec +90 -2
  162. metadata +66 -16
  163. data/docs/Pricing.md +0 -18
  164. data/spec/models/pricing_spec.rb +0 -220
@@ -6,13 +6,20 @@ accepts.
6
6
 
7
7
  ## Getting Started
8
8
 
9
- Visit our [Developer Portal](https://vericred.3scale.net) to
9
+ Visit our [Developer Portal](https://developers.vericred.com) to
10
10
  create an account.
11
11
 
12
12
  Once you have created an account, you can create one Application for
13
13
  Production and another for our Sandbox (select the appropriate Plan when
14
14
  you create the Application).
15
15
 
16
+ ## SDKs
17
+
18
+ Our API follows standard REST conventions, so you can use any HTTP client
19
+ to integrate with us. You will likely find it easier to use one of our
20
+ [autogenerated SDKs](https://github.com/vericred/?query=vericred-),
21
+ which we make available for several common programming languages.
22
+
16
23
  ## Authentication
17
24
 
18
25
  To authenticate, pass the API Key you created in the Developer Portal as
@@ -108,6 +115,86 @@ The response would be
108
115
  }
109
116
  ```
110
117
 
118
+ ## Benefits summary format
119
+ Benefit cost-share strings are formatted to capture:
120
+ * Network tiers
121
+ * Compound or conditional cost-share
122
+ * Limits on the cost-share
123
+ * Benefit-specific maximum out-of-pocket costs
124
+
125
+ **Example #1**
126
+ As an example, we would represent [this Summary of Benefits & Coverage](https://s3.amazonaws.com/vericred-data/SBC/2017/33602TX0780032.pdf) as:
127
+
128
+ * **Hospital stay facility fees**:
129
+ - Network Provider: `$400 copay/admit plus 20% coinsurance`
130
+ - Out-of-Network Provider: `$1,500 copay/admit plus 50% coinsurance`
131
+ - Vericred's format for this benefit: `In-Network: $400 before deductible then 20% after deductible / Out-of-Network: $1,500 before deductible then 50% after deductible`
132
+
133
+ * **Rehabilitation services:**
134
+ - Network Provider: `20% coinsurance`
135
+ - Out-of-Network Provider: `50% coinsurance`
136
+ - Limitations & Exceptions: `35 visit maximum per benefit period combined with Chiropractic care.`
137
+ - Vericred's format for this benefit: `In-Network: 20% after deductible / Out-of-Network: 50% after deductible | limit: 35 visit(s) per Benefit Period`
138
+
139
+ **Example #2**
140
+ In [this other Summary of Benefits & Coverage](https://s3.amazonaws.com/vericred-data/SBC/2017/40733CA0110568.pdf), the **specialty_drugs** cost-share has a maximum out-of-pocket for in-network pharmacies.
141
+ * **Specialty drugs:**
142
+ - Network Provider: `40% coinsurance up to a $500 maximum for up to a 30 day supply`
143
+ - Out-of-Network Provider `Not covered`
144
+ - Vericred's format for this benefit: `In-Network: 40% after deductible, up to $500 per script / Out-of-Network: 100%`
145
+
146
+ **BNF**
147
+
148
+ Here's a description of the benefits summary string, represented as a context-free grammar:
149
+
150
+ ```
151
+ root ::= coverage
152
+
153
+ coverage ::= (simple_coverage | tiered_coverage) (space pipe space coverage_limitation)?
154
+ tiered_coverage ::= tier (space slash space tier)*
155
+ tier ::= tier_name colon space (tier_coverage | not_applicable)
156
+ tier_coverage ::= simple_coverage (space (then | or | and) space simple_coverage)* tier_limitation?
157
+ simple_coverage ::= (pre_coverage_limitation space)? coverage_amount (space post_coverage_limitation)? (comma? space coverage_condition)?
158
+ coverage_limitation ::= "limit" colon space (((simple_coverage | simple_limitation) (semicolon space see_carrier_documentation)?) | see_carrier_documentation | waived_if_admitted)
159
+ waived_if_admitted ::= ("copay" space)? "waived if admitted"
160
+ simple_limitation ::= pre_coverage_limitation space "copay applies"
161
+ tier_name ::= "In-Network-Tier-2" | "Out-of-Network" | "In-Network"
162
+ tier_limitation ::= comma space "up to" space (currency | (integer space time_unit plural?)) (space post_coverage_limitation)?
163
+ coverage_amount ::= currency | unlimited | included | unknown | percentage | (digits space (treatment_unit | time_unit) plural?)
164
+ pre_coverage_limitation ::= first space digits space time_unit plural?
165
+ post_coverage_limitation ::= (((then space currency) | "per condition") space)? "per" space (treatment_unit | (integer space time_unit) | time_unit) plural?
166
+ coverage_condition ::= ("before deductible" | "after deductible" | "penalty" | allowance | "in-state" | "out-of-state") (space allowance)?
167
+ allowance ::= upto_allowance | after_allowance
168
+ upto_allowance ::= "up to" space (currency space)? "allowance"
169
+ after_allowance ::= "after" space (currency space)? "allowance"
170
+ see_carrier_documentation ::= "see carrier documentation for more information"
171
+ unknown ::= "unknown"
172
+ unlimited ::= /[uU]nlimited/
173
+ included ::= /[iI]ncluded in [mM]edical/
174
+ time_unit ::= /[hH]our/ | (((/[cC]alendar/ | /[cC]ontract/) space)? /[yY]ear/) | /[mM]onth/ | /[dD]ay/ | /[wW]eek/ | /[vV]isit/ | /[lL]ifetime/ | ((((/[bB]enefit/ plural?) | /[eE]ligibility/) space)? /[pP]eriod/)
175
+ treatment_unit ::= /[pP]erson/ | /[gG]roup/ | /[cC]ondition/ | /[sS]cript/ | /[vV]isit/ | /[eE]xam/ | /[iI]tem/ | /[sS]tay/ | /[tT]reatment/ | /[aA]dmission/ | /[eE]pisode/
176
+ comma ::= ","
177
+ colon ::= ":"
178
+ semicolon ::= ";"
179
+ pipe ::= "|"
180
+ slash ::= "/"
181
+ plural ::= "(s)" | "s"
182
+ then ::= "then" | ("," space) | space
183
+ or ::= "or"
184
+ and ::= "and"
185
+ not_applicable ::= "Not Applicable" | "N/A" | "NA"
186
+ first ::= "first"
187
+ currency ::= "$" number
188
+ percentage ::= number "%"
189
+ number ::= float | integer
190
+ float ::= digits "." digits
191
+ integer ::= /[0-9]/+ (comma_int | under_int)*
192
+ comma_int ::= ("," /[0-9]/*3) !"_"
193
+ under_int ::= ("_" /[0-9]/*3) !","
194
+ digits ::= /[0-9]/+ ("_" /[0-9]/+)*
195
+ space ::= /[ \t]/+
196
+ ```
197
+
111
198
 
112
199
 
113
200
  OpenAPI spec version: 1.0.0
@@ -136,7 +223,7 @@ module VericredClient
136
223
  # Does the plan provide dental coverage for adults?
137
224
  attr_accessor :adult_dental
138
225
 
139
- #
226
+ # True if the plan allows dependents up to age 29
140
227
  attr_accessor :age29_rider
141
228
 
142
229
  # Benefits string for ambulance coverage
@@ -172,7 +259,7 @@ module VericredClient
172
259
  # Alternate name for the Plan
173
260
  attr_accessor :display_name
174
261
 
175
- # Is this a domestic plan?
262
+ # True if plan does not cover domestic partners
176
263
  attr_accessor :dp_rider
177
264
 
178
265
  # Link to the summary of drug benefits for the plan
@@ -199,7 +286,7 @@ module VericredClient
199
286
  # Maximum out-of-pocket when a family is on the plan
200
287
  attr_accessor :family_medical_moop
201
288
 
202
- # Is this a family plan?
289
+ # True if plan does not cover family planning
203
290
  attr_accessor :fp_rider
204
291
 
205
292
  # Cost for generic drugs
@@ -295,7 +382,7 @@ module VericredClient
295
382
  # Market in which the plan is offered (on_marketplace, shop, etc)
296
383
  attr_accessor :plan_market
297
384
 
298
- # Category of the plan (e.g. EPO, HMO, PPO, POS, Indemnity)
385
+ # Category of the plan (e.g. EPO, HMO, PPO, POS, Indemnity, PACE, Medicare-Medicaid, HMO w/POS, Cost, FFS, MSA)
299
386
  attr_accessor :plan_type
300
387
 
301
388
  # Cost under the plan for perferred brand drugs
@@ -313,6 +400,9 @@ module VericredClient
313
400
  # Cumulative premium amount
314
401
  attr_accessor :premium
315
402
 
403
+ # Source of the base pricing data
404
+ attr_accessor :premium_source
405
+
316
406
  # Cost under the plan to visit a Primary Care Physician
317
407
  attr_accessor :primary_care_physician
318
408
 
@@ -325,6 +415,9 @@ module VericredClient
325
415
  # Benefits summary for skilled nursing services
326
416
  attr_accessor :skilled_nursing
327
417
 
418
+ # Source of the plan benefit data
419
+ attr_accessor :source
420
+
328
421
  # Cost under the plan to visit a specialist
329
422
  attr_accessor :specialist
330
423
 
@@ -410,10 +503,12 @@ module VericredClient
410
503
  :'preventative_care' => :'preventative_care',
411
504
  :'premium_subsidized' => :'premium_subsidized',
412
505
  :'premium' => :'premium',
506
+ :'premium_source' => :'premium_source',
413
507
  :'primary_care_physician' => :'primary_care_physician',
414
508
  :'rehabilitation_services' => :'rehabilitation_services',
415
509
  :'service_area_id' => :'service_area_id',
416
510
  :'skilled_nursing' => :'skilled_nursing',
511
+ :'source' => :'source',
417
512
  :'specialist' => :'specialist',
418
513
  :'specialty_drugs' => :'specialty_drugs',
419
514
  :'urgent_care' => :'urgent_care',
@@ -487,10 +582,12 @@ module VericredClient
487
582
  :'preventative_care' => :'String',
488
583
  :'premium_subsidized' => :'Float',
489
584
  :'premium' => :'Float',
585
+ :'premium_source' => :'String',
490
586
  :'primary_care_physician' => :'String',
491
587
  :'rehabilitation_services' => :'String',
492
588
  :'service_area_id' => :'String',
493
589
  :'skilled_nursing' => :'String',
590
+ :'source' => :'String',
494
591
  :'specialist' => :'String',
495
592
  :'specialty_drugs' => :'String',
496
593
  :'urgent_care' => :'String',
@@ -753,6 +850,10 @@ module VericredClient
753
850
  self.premium = attributes[:'premium']
754
851
  end
755
852
 
853
+ if attributes.has_key?(:'premium_source')
854
+ self.premium_source = attributes[:'premium_source']
855
+ end
856
+
756
857
  if attributes.has_key?(:'primary_care_physician')
757
858
  self.primary_care_physician = attributes[:'primary_care_physician']
758
859
  end
@@ -769,6 +870,10 @@ module VericredClient
769
870
  self.skilled_nursing = attributes[:'skilled_nursing']
770
871
  end
771
872
 
873
+ if attributes.has_key?(:'source')
874
+ self.source = attributes[:'source']
875
+ end
876
+
772
877
  if attributes.has_key?(:'specialist')
773
878
  self.specialist = attributes[:'specialist']
774
879
  end
@@ -877,10 +982,12 @@ module VericredClient
877
982
  preventative_care == o.preventative_care &&
878
983
  premium_subsidized == o.premium_subsidized &&
879
984
  premium == o.premium &&
985
+ premium_source == o.premium_source &&
880
986
  primary_care_physician == o.primary_care_physician &&
881
987
  rehabilitation_services == o.rehabilitation_services &&
882
988
  service_area_id == o.service_area_id &&
883
989
  skilled_nursing == o.skilled_nursing &&
990
+ source == o.source &&
884
991
  specialist == o.specialist &&
885
992
  specialty_drugs == o.specialty_drugs &&
886
993
  urgent_care == o.urgent_care &&
@@ -899,7 +1006,7 @@ module VericredClient
899
1006
  # Calculates hash code according to all attributes.
900
1007
  # @return [Fixnum] Hash code
901
1008
  def hash
902
- [adult_dental, age29_rider, ambulance, benefits_summary_url, buy_link, carrier_name, child_dental, child_eyewear, child_eye_exam, customer_service_phone_number, durable_medical_equipment, diagnostic_test, display_name, dp_rider, drug_formulary_url, effective_date, expiration_date, emergency_room, family_drug_deductible, family_drug_moop, family_medical_deductible, family_medical_moop, fp_rider, generic_drugs, habilitation_services, hios_issuer_id, home_health_care, hospice_service, hsa_eligible, id, imaging, in_network_ids, individual_drug_deductible, individual_drug_moop, individual_medical_deductible, individual_medical_moop, inpatient_birth, inpatient_facility, inpatient_mental_health, inpatient_physician, inpatient_substance, level, logo_url, name, non_preferred_brand_drugs, on_market, off_market, out_of_network_coverage, out_of_network_ids, outpatient_facility, outpatient_mental_health, outpatient_physician, outpatient_substance, plan_market, plan_type, preferred_brand_drugs, prenatal_postnatal_care, preventative_care, premium_subsidized, premium, primary_care_physician, rehabilitation_services, service_area_id, skilled_nursing, specialist, specialty_drugs, urgent_care, match_percentage, perfect_match_percentage, employee_premium, dependent_premium].hash
1009
+ [adult_dental, age29_rider, ambulance, benefits_summary_url, buy_link, carrier_name, child_dental, child_eyewear, child_eye_exam, customer_service_phone_number, durable_medical_equipment, diagnostic_test, display_name, dp_rider, drug_formulary_url, effective_date, expiration_date, emergency_room, family_drug_deductible, family_drug_moop, family_medical_deductible, family_medical_moop, fp_rider, generic_drugs, habilitation_services, hios_issuer_id, home_health_care, hospice_service, hsa_eligible, id, imaging, in_network_ids, individual_drug_deductible, individual_drug_moop, individual_medical_deductible, individual_medical_moop, inpatient_birth, inpatient_facility, inpatient_mental_health, inpatient_physician, inpatient_substance, level, logo_url, name, non_preferred_brand_drugs, on_market, off_market, out_of_network_coverage, out_of_network_ids, outpatient_facility, outpatient_mental_health, outpatient_physician, outpatient_substance, plan_market, plan_type, preferred_brand_drugs, prenatal_postnatal_care, preventative_care, premium_subsidized, premium, premium_source, primary_care_physician, rehabilitation_services, service_area_id, skilled_nursing, source, specialist, specialty_drugs, urgent_care, match_percentage, perfect_match_percentage, employee_premium, dependent_premium].hash
903
1010
  end
904
1011
 
905
1012
  # Builds the object from hash
@@ -908,7 +1015,7 @@ module VericredClient
908
1015
  def build_from_hash(attributes)
909
1016
  return nil unless attributes.is_a?(Hash)
910
1017
  self.class.swagger_types.each_pair do |key, type|
911
- if type =~ /^Array<(.*)>/i
1018
+ if type =~ /\AArray<(.*)>/i
912
1019
  # check to ensure the input is an array given that the the attribute
913
1020
  # is documented as an array but the input is not
914
1021
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -939,7 +1046,7 @@ module VericredClient
939
1046
  when :Float
940
1047
  value.to_f
941
1048
  when :BOOLEAN
942
- if value.to_s =~ /^(true|t|yes|y|1)$/i
1049
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
943
1050
  true
944
1051
  else
945
1052
  false
@@ -6,13 +6,20 @@ accepts.
6
6
 
7
7
  ## Getting Started
8
8
 
9
- Visit our [Developer Portal](https://vericred.3scale.net) to
9
+ Visit our [Developer Portal](https://developers.vericred.com) to
10
10
  create an account.
11
11
 
12
12
  Once you have created an account, you can create one Application for
13
13
  Production and another for our Sandbox (select the appropriate Plan when
14
14
  you create the Application).
15
15
 
16
+ ## SDKs
17
+
18
+ Our API follows standard REST conventions, so you can use any HTTP client
19
+ to integrate with us. You will likely find it easier to use one of our
20
+ [autogenerated SDKs](https://github.com/vericred/?query=vericred-),
21
+ which we make available for several common programming languages.
22
+
16
23
  ## Authentication
17
24
 
18
25
  To authenticate, pass the API Key you created in the Developer Portal as
@@ -108,6 +115,86 @@ The response would be
108
115
  }
109
116
  ```
110
117
 
118
+ ## Benefits summary format
119
+ Benefit cost-share strings are formatted to capture:
120
+ * Network tiers
121
+ * Compound or conditional cost-share
122
+ * Limits on the cost-share
123
+ * Benefit-specific maximum out-of-pocket costs
124
+
125
+ **Example #1**
126
+ As an example, we would represent [this Summary of Benefits &amp; Coverage](https://s3.amazonaws.com/vericred-data/SBC/2017/33602TX0780032.pdf) as:
127
+
128
+ * **Hospital stay facility fees**:
129
+ - Network Provider: `$400 copay/admit plus 20% coinsurance`
130
+ - Out-of-Network Provider: `$1,500 copay/admit plus 50% coinsurance`
131
+ - Vericred's format for this benefit: `In-Network: $400 before deductible then 20% after deductible / Out-of-Network: $1,500 before deductible then 50% after deductible`
132
+
133
+ * **Rehabilitation services:**
134
+ - Network Provider: `20% coinsurance`
135
+ - Out-of-Network Provider: `50% coinsurance`
136
+ - Limitations & Exceptions: `35 visit maximum per benefit period combined with Chiropractic care.`
137
+ - Vericred's format for this benefit: `In-Network: 20% after deductible / Out-of-Network: 50% after deductible | limit: 35 visit(s) per Benefit Period`
138
+
139
+ **Example #2**
140
+ In [this other Summary of Benefits &amp; Coverage](https://s3.amazonaws.com/vericred-data/SBC/2017/40733CA0110568.pdf), the **specialty_drugs** cost-share has a maximum out-of-pocket for in-network pharmacies.
141
+ * **Specialty drugs:**
142
+ - Network Provider: `40% coinsurance up to a $500 maximum for up to a 30 day supply`
143
+ - Out-of-Network Provider `Not covered`
144
+ - Vericred's format for this benefit: `In-Network: 40% after deductible, up to $500 per script / Out-of-Network: 100%`
145
+
146
+ **BNF**
147
+
148
+ Here's a description of the benefits summary string, represented as a context-free grammar:
149
+
150
+ ```
151
+ root ::= coverage
152
+
153
+ coverage ::= (simple_coverage | tiered_coverage) (space pipe space coverage_limitation)?
154
+ tiered_coverage ::= tier (space slash space tier)*
155
+ tier ::= tier_name colon space (tier_coverage | not_applicable)
156
+ tier_coverage ::= simple_coverage (space (then | or | and) space simple_coverage)* tier_limitation?
157
+ simple_coverage ::= (pre_coverage_limitation space)? coverage_amount (space post_coverage_limitation)? (comma? space coverage_condition)?
158
+ coverage_limitation ::= "limit" colon space (((simple_coverage | simple_limitation) (semicolon space see_carrier_documentation)?) | see_carrier_documentation | waived_if_admitted)
159
+ waived_if_admitted ::= ("copay" space)? "waived if admitted"
160
+ simple_limitation ::= pre_coverage_limitation space "copay applies"
161
+ tier_name ::= "In-Network-Tier-2" | "Out-of-Network" | "In-Network"
162
+ tier_limitation ::= comma space "up to" space (currency | (integer space time_unit plural?)) (space post_coverage_limitation)?
163
+ coverage_amount ::= currency | unlimited | included | unknown | percentage | (digits space (treatment_unit | time_unit) plural?)
164
+ pre_coverage_limitation ::= first space digits space time_unit plural?
165
+ post_coverage_limitation ::= (((then space currency) | "per condition") space)? "per" space (treatment_unit | (integer space time_unit) | time_unit) plural?
166
+ coverage_condition ::= ("before deductible" | "after deductible" | "penalty" | allowance | "in-state" | "out-of-state") (space allowance)?
167
+ allowance ::= upto_allowance | after_allowance
168
+ upto_allowance ::= "up to" space (currency space)? "allowance"
169
+ after_allowance ::= "after" space (currency space)? "allowance"
170
+ see_carrier_documentation ::= "see carrier documentation for more information"
171
+ unknown ::= "unknown"
172
+ unlimited ::= /[uU]nlimited/
173
+ included ::= /[iI]ncluded in [mM]edical/
174
+ time_unit ::= /[hH]our/ | (((/[cC]alendar/ | /[cC]ontract/) space)? /[yY]ear/) | /[mM]onth/ | /[dD]ay/ | /[wW]eek/ | /[vV]isit/ | /[lL]ifetime/ | ((((/[bB]enefit/ plural?) | /[eE]ligibility/) space)? /[pP]eriod/)
175
+ treatment_unit ::= /[pP]erson/ | /[gG]roup/ | /[cC]ondition/ | /[sS]cript/ | /[vV]isit/ | /[eE]xam/ | /[iI]tem/ | /[sS]tay/ | /[tT]reatment/ | /[aA]dmission/ | /[eE]pisode/
176
+ comma ::= ","
177
+ colon ::= ":"
178
+ semicolon ::= ";"
179
+ pipe ::= "|"
180
+ slash ::= "/"
181
+ plural ::= "(s)" | "s"
182
+ then ::= "then" | ("," space) | space
183
+ or ::= "or"
184
+ and ::= "and"
185
+ not_applicable ::= "Not Applicable" | "N/A" | "NA"
186
+ first ::= "first"
187
+ currency ::= "$" number
188
+ percentage ::= number "%"
189
+ number ::= float | integer
190
+ float ::= digits "." digits
191
+ integer ::= /[0-9]/+ (comma_int | under_int)*
192
+ comma_int ::= ("," /[0-9]/*3) !"_"
193
+ under_int ::= ("_" /[0-9]/*3) !","
194
+ digits ::= /[0-9]/+ ("_" /[0-9]/+)*
195
+ space ::= /[ \t]/+
196
+ ```
197
+
111
198
 
112
199
 
113
200
  OpenAPI spec version: 1.0.0
@@ -204,7 +291,7 @@ module VericredClient
204
291
  def build_from_hash(attributes)
205
292
  return nil unless attributes.is_a?(Hash)
206
293
  self.class.swagger_types.each_pair do |key, type|
207
- if type =~ /^Array<(.*)>/i
294
+ if type =~ /\AArray<(.*)>/i
208
295
  # check to ensure the input is an array given that the the attribute
209
296
  # is documented as an array but the input is not
210
297
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -235,7 +322,7 @@ module VericredClient
235
322
  when :Float
236
323
  value.to_f
237
324
  when :BOOLEAN
238
- if value.to_s =~ /^(true|t|yes|y|1)$/i
325
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
239
326
  true
240
327
  else
241
328
  false
@@ -6,13 +6,20 @@ accepts.
6
6
 
7
7
  ## Getting Started
8
8
 
9
- Visit our [Developer Portal](https://vericred.3scale.net) to
9
+ Visit our [Developer Portal](https://developers.vericred.com) to
10
10
  create an account.
11
11
 
12
12
  Once you have created an account, you can create one Application for
13
13
  Production and another for our Sandbox (select the appropriate Plan when
14
14
  you create the Application).
15
15
 
16
+ ## SDKs
17
+
18
+ Our API follows standard REST conventions, so you can use any HTTP client
19
+ to integrate with us. You will likely find it easier to use one of our
20
+ [autogenerated SDKs](https://github.com/vericred/?query=vericred-),
21
+ which we make available for several common programming languages.
22
+
16
23
  ## Authentication
17
24
 
18
25
  To authenticate, pass the API Key you created in the Developer Portal as
@@ -108,6 +115,86 @@ The response would be
108
115
  }
109
116
  ```
110
117
 
118
+ ## Benefits summary format
119
+ Benefit cost-share strings are formatted to capture:
120
+ * Network tiers
121
+ * Compound or conditional cost-share
122
+ * Limits on the cost-share
123
+ * Benefit-specific maximum out-of-pocket costs
124
+
125
+ **Example #1**
126
+ As an example, we would represent [this Summary of Benefits &amp; Coverage](https://s3.amazonaws.com/vericred-data/SBC/2017/33602TX0780032.pdf) as:
127
+
128
+ * **Hospital stay facility fees**:
129
+ - Network Provider: `$400 copay/admit plus 20% coinsurance`
130
+ - Out-of-Network Provider: `$1,500 copay/admit plus 50% coinsurance`
131
+ - Vericred's format for this benefit: `In-Network: $400 before deductible then 20% after deductible / Out-of-Network: $1,500 before deductible then 50% after deductible`
132
+
133
+ * **Rehabilitation services:**
134
+ - Network Provider: `20% coinsurance`
135
+ - Out-of-Network Provider: `50% coinsurance`
136
+ - Limitations & Exceptions: `35 visit maximum per benefit period combined with Chiropractic care.`
137
+ - Vericred's format for this benefit: `In-Network: 20% after deductible / Out-of-Network: 50% after deductible | limit: 35 visit(s) per Benefit Period`
138
+
139
+ **Example #2**
140
+ In [this other Summary of Benefits &amp; Coverage](https://s3.amazonaws.com/vericred-data/SBC/2017/40733CA0110568.pdf), the **specialty_drugs** cost-share has a maximum out-of-pocket for in-network pharmacies.
141
+ * **Specialty drugs:**
142
+ - Network Provider: `40% coinsurance up to a $500 maximum for up to a 30 day supply`
143
+ - Out-of-Network Provider `Not covered`
144
+ - Vericred's format for this benefit: `In-Network: 40% after deductible, up to $500 per script / Out-of-Network: 100%`
145
+
146
+ **BNF**
147
+
148
+ Here's a description of the benefits summary string, represented as a context-free grammar:
149
+
150
+ ```
151
+ root ::= coverage
152
+
153
+ coverage ::= (simple_coverage | tiered_coverage) (space pipe space coverage_limitation)?
154
+ tiered_coverage ::= tier (space slash space tier)*
155
+ tier ::= tier_name colon space (tier_coverage | not_applicable)
156
+ tier_coverage ::= simple_coverage (space (then | or | and) space simple_coverage)* tier_limitation?
157
+ simple_coverage ::= (pre_coverage_limitation space)? coverage_amount (space post_coverage_limitation)? (comma? space coverage_condition)?
158
+ coverage_limitation ::= "limit" colon space (((simple_coverage | simple_limitation) (semicolon space see_carrier_documentation)?) | see_carrier_documentation | waived_if_admitted)
159
+ waived_if_admitted ::= ("copay" space)? "waived if admitted"
160
+ simple_limitation ::= pre_coverage_limitation space "copay applies"
161
+ tier_name ::= "In-Network-Tier-2" | "Out-of-Network" | "In-Network"
162
+ tier_limitation ::= comma space "up to" space (currency | (integer space time_unit plural?)) (space post_coverage_limitation)?
163
+ coverage_amount ::= currency | unlimited | included | unknown | percentage | (digits space (treatment_unit | time_unit) plural?)
164
+ pre_coverage_limitation ::= first space digits space time_unit plural?
165
+ post_coverage_limitation ::= (((then space currency) | "per condition") space)? "per" space (treatment_unit | (integer space time_unit) | time_unit) plural?
166
+ coverage_condition ::= ("before deductible" | "after deductible" | "penalty" | allowance | "in-state" | "out-of-state") (space allowance)?
167
+ allowance ::= upto_allowance | after_allowance
168
+ upto_allowance ::= "up to" space (currency space)? "allowance"
169
+ after_allowance ::= "after" space (currency space)? "allowance"
170
+ see_carrier_documentation ::= "see carrier documentation for more information"
171
+ unknown ::= "unknown"
172
+ unlimited ::= /[uU]nlimited/
173
+ included ::= /[iI]ncluded in [mM]edical/
174
+ time_unit ::= /[hH]our/ | (((/[cC]alendar/ | /[cC]ontract/) space)? /[yY]ear/) | /[mM]onth/ | /[dD]ay/ | /[wW]eek/ | /[vV]isit/ | /[lL]ifetime/ | ((((/[bB]enefit/ plural?) | /[eE]ligibility/) space)? /[pP]eriod/)
175
+ treatment_unit ::= /[pP]erson/ | /[gG]roup/ | /[cC]ondition/ | /[sS]cript/ | /[vV]isit/ | /[eE]xam/ | /[iI]tem/ | /[sS]tay/ | /[tT]reatment/ | /[aA]dmission/ | /[eE]pisode/
176
+ comma ::= ","
177
+ colon ::= ":"
178
+ semicolon ::= ";"
179
+ pipe ::= "|"
180
+ slash ::= "/"
181
+ plural ::= "(s)" | "s"
182
+ then ::= "then" | ("," space) | space
183
+ or ::= "or"
184
+ and ::= "and"
185
+ not_applicable ::= "Not Applicable" | "N/A" | "NA"
186
+ first ::= "first"
187
+ currency ::= "$" number
188
+ percentage ::= number "%"
189
+ number ::= float | integer
190
+ float ::= digits "." digits
191
+ integer ::= /[0-9]/+ (comma_int | under_int)*
192
+ comma_int ::= ("," /[0-9]/*3) !"_"
193
+ under_int ::= ("_" /[0-9]/*3) !","
194
+ digits ::= /[0-9]/+ ("_" /[0-9]/+)*
195
+ space ::= /[ \t]/+
196
+ ```
197
+
111
198
 
112
199
 
113
200
  OpenAPI spec version: 1.0.0
@@ -133,21 +220,6 @@ require 'date'
133
220
  module VericredClient
134
221
 
135
222
  class Provider
136
- # Is this provider accepting patients with a change of insurance?
137
- attr_accessor :accepting_change_of_payor_patients
138
-
139
- # Is this provider accepting new Medicaid patients?
140
- attr_accessor :accepting_medicaid_patients
141
-
142
- # Is this provider accepting new Medicare patients?
143
- attr_accessor :accepting_medicare_patients
144
-
145
- # Is this provider accepting new patients with private insurance?
146
- attr_accessor :accepting_private_patients
147
-
148
- # Is this provider accepting new patients via referrals?
149
- attr_accessor :accepting_referral_patients
150
-
151
223
  # City name (e.g. Springfield).
152
224
  attr_accessor :city
153
225
 
@@ -160,9 +232,6 @@ module VericredClient
160
232
  # Given name for the provider.
161
233
  attr_accessor :first_name
162
234
 
163
- # List of HIOS ids for this provider
164
- attr_accessor :hios_ids
165
-
166
235
  # National Provider Index (NPI) number
167
236
  attr_accessor :id
168
237
 
@@ -181,6 +250,9 @@ module VericredClient
181
250
  # Array of network ids
182
251
  attr_accessor :network_ids
183
252
 
253
+ # name for the providers of type: organization.
254
+ attr_accessor :organization_name
255
+
184
256
  # Personal contact phone for the provider.
185
257
  attr_accessor :personal_phone
186
258
 
@@ -221,22 +293,17 @@ module VericredClient
221
293
  # Attribute mapping from ruby-style variable name to JSON key.
222
294
  def self.attribute_map
223
295
  {
224
- :'accepting_change_of_payor_patients' => :'accepting_change_of_payor_patients',
225
- :'accepting_medicaid_patients' => :'accepting_medicaid_patients',
226
- :'accepting_medicare_patients' => :'accepting_medicare_patients',
227
- :'accepting_private_patients' => :'accepting_private_patients',
228
- :'accepting_referral_patients' => :'accepting_referral_patients',
229
296
  :'city' => :'city',
230
297
  :'email' => :'email',
231
298
  :'gender' => :'gender',
232
299
  :'first_name' => :'first_name',
233
- :'hios_ids' => :'hios_ids',
234
300
  :'id' => :'id',
235
301
  :'last_name' => :'last_name',
236
302
  :'latitude' => :'latitude',
237
303
  :'longitude' => :'longitude',
238
304
  :'middle_name' => :'middle_name',
239
305
  :'network_ids' => :'network_ids',
306
+ :'organization_name' => :'organization_name',
240
307
  :'personal_phone' => :'personal_phone',
241
308
  :'phone' => :'phone',
242
309
  :'presentation_name' => :'presentation_name',
@@ -255,22 +322,17 @@ module VericredClient
255
322
  # Attribute type mapping.
256
323
  def self.swagger_types
257
324
  {
258
- :'accepting_change_of_payor_patients' => :'BOOLEAN',
259
- :'accepting_medicaid_patients' => :'BOOLEAN',
260
- :'accepting_medicare_patients' => :'BOOLEAN',
261
- :'accepting_private_patients' => :'BOOLEAN',
262
- :'accepting_referral_patients' => :'BOOLEAN',
263
325
  :'city' => :'String',
264
326
  :'email' => :'String',
265
327
  :'gender' => :'String',
266
328
  :'first_name' => :'String',
267
- :'hios_ids' => :'Array<String>',
268
329
  :'id' => :'Integer',
269
330
  :'last_name' => :'String',
270
331
  :'latitude' => :'Float',
271
332
  :'longitude' => :'Float',
272
333
  :'middle_name' => :'String',
273
334
  :'network_ids' => :'Array<Integer>',
335
+ :'organization_name' => :'String',
274
336
  :'personal_phone' => :'String',
275
337
  :'phone' => :'String',
276
338
  :'presentation_name' => :'String',
@@ -294,26 +356,6 @@ module VericredClient
294
356
  # convert string to symbol for hash key
295
357
  attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
296
358
 
297
- if attributes.has_key?(:'accepting_change_of_payor_patients')
298
- self.accepting_change_of_payor_patients = attributes[:'accepting_change_of_payor_patients']
299
- end
300
-
301
- if attributes.has_key?(:'accepting_medicaid_patients')
302
- self.accepting_medicaid_patients = attributes[:'accepting_medicaid_patients']
303
- end
304
-
305
- if attributes.has_key?(:'accepting_medicare_patients')
306
- self.accepting_medicare_patients = attributes[:'accepting_medicare_patients']
307
- end
308
-
309
- if attributes.has_key?(:'accepting_private_patients')
310
- self.accepting_private_patients = attributes[:'accepting_private_patients']
311
- end
312
-
313
- if attributes.has_key?(:'accepting_referral_patients')
314
- self.accepting_referral_patients = attributes[:'accepting_referral_patients']
315
- end
316
-
317
359
  if attributes.has_key?(:'city')
318
360
  self.city = attributes[:'city']
319
361
  end
@@ -330,12 +372,6 @@ module VericredClient
330
372
  self.first_name = attributes[:'first_name']
331
373
  end
332
374
 
333
- if attributes.has_key?(:'hios_ids')
334
- if (value = attributes[:'hios_ids']).is_a?(Array)
335
- self.hios_ids = value
336
- end
337
- end
338
-
339
375
  if attributes.has_key?(:'id')
340
376
  self.id = attributes[:'id']
341
377
  end
@@ -362,6 +398,10 @@ module VericredClient
362
398
  end
363
399
  end
364
400
 
401
+ if attributes.has_key?(:'organization_name')
402
+ self.organization_name = attributes[:'organization_name']
403
+ end
404
+
365
405
  if attributes.has_key?(:'personal_phone')
366
406
  self.personal_phone = attributes[:'personal_phone']
367
407
  end
@@ -430,22 +470,17 @@ module VericredClient
430
470
  def ==(o)
431
471
  return true if self.equal?(o)
432
472
  self.class == o.class &&
433
- accepting_change_of_payor_patients == o.accepting_change_of_payor_patients &&
434
- accepting_medicaid_patients == o.accepting_medicaid_patients &&
435
- accepting_medicare_patients == o.accepting_medicare_patients &&
436
- accepting_private_patients == o.accepting_private_patients &&
437
- accepting_referral_patients == o.accepting_referral_patients &&
438
473
  city == o.city &&
439
474
  email == o.email &&
440
475
  gender == o.gender &&
441
476
  first_name == o.first_name &&
442
- hios_ids == o.hios_ids &&
443
477
  id == o.id &&
444
478
  last_name == o.last_name &&
445
479
  latitude == o.latitude &&
446
480
  longitude == o.longitude &&
447
481
  middle_name == o.middle_name &&
448
482
  network_ids == o.network_ids &&
483
+ organization_name == o.organization_name &&
449
484
  personal_phone == o.personal_phone &&
450
485
  phone == o.phone &&
451
486
  presentation_name == o.presentation_name &&
@@ -469,7 +504,7 @@ module VericredClient
469
504
  # Calculates hash code according to all attributes.
470
505
  # @return [Fixnum] Hash code
471
506
  def hash
472
- [accepting_change_of_payor_patients, accepting_medicaid_patients, accepting_medicare_patients, accepting_private_patients, accepting_referral_patients, city, email, gender, first_name, hios_ids, id, last_name, latitude, longitude, middle_name, network_ids, personal_phone, phone, presentation_name, specialty, state, state_id, street_line_1, street_line_2, suffix, title, type, zip_code].hash
507
+ [city, email, gender, first_name, id, last_name, latitude, longitude, middle_name, network_ids, organization_name, personal_phone, phone, presentation_name, specialty, state, state_id, street_line_1, street_line_2, suffix, title, type, zip_code].hash
473
508
  end
474
509
 
475
510
  # Builds the object from hash
@@ -478,7 +513,7 @@ module VericredClient
478
513
  def build_from_hash(attributes)
479
514
  return nil unless attributes.is_a?(Hash)
480
515
  self.class.swagger_types.each_pair do |key, type|
481
- if type =~ /^Array<(.*)>/i
516
+ if type =~ /\AArray<(.*)>/i
482
517
  # check to ensure the input is an array given that the the attribute
483
518
  # is documented as an array but the input is not
484
519
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -509,7 +544,7 @@ module VericredClient
509
544
  when :Float
510
545
  value.to_f
511
546
  when :BOOLEAN
512
- if value.to_s =~ /^(true|t|yes|y|1)$/i
547
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
513
548
  true
514
549
  else
515
550
  false