mindee 3.11.0 → 3.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/bin/mindee.rb +7 -1
  4. data/docs/code_samples/financial_document_v1_async.txt +19 -0
  5. data/docs/code_samples/us_healthcare_cards_v1_async.txt +19 -0
  6. data/docs/expense_receipts_v5.md +12 -10
  7. data/docs/financial_document_v1.md +51 -22
  8. data/docs/invoices_v4.md +4 -3
  9. data/docs/us_healthcare_cards_v1.md +204 -0
  10. data/lib/mindee/image_extraction/common/extracted_image.rb +73 -0
  11. data/lib/mindee/image_extraction/common/image_extractor.rb +191 -0
  12. data/lib/mindee/image_extraction/common.rb +3 -0
  13. data/lib/mindee/image_extraction/multi_receipts_extractor/multi_receipts_extractor.rb +26 -0
  14. data/lib/mindee/image_extraction/multi_receipts_extractor.rb +3 -0
  15. data/lib/mindee/image_extraction.rb +4 -0
  16. data/lib/mindee/input/sources.rb +8 -0
  17. data/lib/mindee/parsing/standard/company_registration_field.rb +17 -0
  18. data/lib/mindee/product/financial_document/financial_document_v1_document.rb +3 -1
  19. data/lib/mindee/product/financial_document/financial_document_v1_line_item.rb +7 -0
  20. data/lib/mindee/product/financial_document/financial_document_v1_page.rb +1 -1
  21. data/lib/mindee/product/international_id/international_id_v2_document.rb +1 -1
  22. data/lib/mindee/product/international_id/international_id_v2_page.rb +1 -1
  23. data/lib/mindee/product/invoice/invoice_v4_document.rb +3 -1
  24. data/lib/mindee/product/invoice/invoice_v4_line_item.rb +7 -0
  25. data/lib/mindee/product/invoice/invoice_v4_page.rb +1 -1
  26. data/lib/mindee/product/multi_receipts_detector/multi_receipts_detector_v1_document.rb +1 -1
  27. data/lib/mindee/product/multi_receipts_detector/multi_receipts_detector_v1_page.rb +1 -1
  28. data/lib/mindee/product/receipt/receipt_v5_document.rb +1 -1
  29. data/lib/mindee/product/receipt/receipt_v5_page.rb +1 -1
  30. data/lib/mindee/product/us/healthcare_card/healthcare_card_v1.rb +41 -0
  31. data/lib/mindee/product/us/healthcare_card/healthcare_card_v1_copay.rb +57 -0
  32. data/lib/mindee/product/us/healthcare_card/healthcare_card_v1_document.rb +127 -0
  33. data/lib/mindee/product/us/healthcare_card/healthcare_card_v1_page.rb +34 -0
  34. data/lib/mindee/product.rb +1 -0
  35. data/lib/mindee/version.rb +1 -1
  36. data/mindee.gemspec +1 -0
  37. metadata +29 -2
@@ -0,0 +1,127 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../parsing'
4
+ require_relative 'healthcare_card_v1_copay'
5
+
6
+ module Mindee
7
+ module Product
8
+ module US
9
+ module HealthcareCard
10
+ # Healthcare Card API version 1.0 document data.
11
+ class HealthcareCardV1Document < Mindee::Parsing::Common::Prediction
12
+ include Mindee::Parsing::Standard
13
+ # The name of the company that provides the healthcare plan.
14
+ # @return [Mindee::Parsing::Standard::StringField]
15
+ attr_reader :company_name
16
+ # Is a fixed amount for a covered service.
17
+ # @return [Array<Mindee::Product::US::HealthcareCard::HealthcareCardV1Copay>]
18
+ attr_reader :copays
19
+ # The list of dependents covered by the healthcare plan.
20
+ # @return [Array<Mindee::Parsing::Standard::StringField>]
21
+ attr_reader :dependents
22
+ # The date when the member enrolled in the healthcare plan.
23
+ # @return [Mindee::Parsing::Standard::DateField]
24
+ attr_reader :enrollment_date
25
+ # The group number associated with the healthcare plan.
26
+ # @return [Mindee::Parsing::Standard::StringField]
27
+ attr_reader :group_number
28
+ # The organization that issued the healthcare plan.
29
+ # @return [Mindee::Parsing::Standard::StringField]
30
+ attr_reader :issuer80840
31
+ # The unique identifier for the member in the healthcare system.
32
+ # @return [Mindee::Parsing::Standard::StringField]
33
+ attr_reader :member_id
34
+ # The name of the member covered by the healthcare plan.
35
+ # @return [Mindee::Parsing::Standard::StringField]
36
+ attr_reader :member_name
37
+ # The unique identifier for the payer in the healthcare system.
38
+ # @return [Mindee::Parsing::Standard::StringField]
39
+ attr_reader :payer_id
40
+ # The BIN number for prescription drug coverage.
41
+ # @return [Mindee::Parsing::Standard::StringField]
42
+ attr_reader :rx_bin
43
+ # The group number for prescription drug coverage.
44
+ # @return [Mindee::Parsing::Standard::StringField]
45
+ attr_reader :rx_grp
46
+ # The PCN number for prescription drug coverage.
47
+ # @return [Mindee::Parsing::Standard::StringField]
48
+ attr_reader :rx_pcn
49
+
50
+ # @param prediction [Hash]
51
+ # @param page_id [Integer, nil]
52
+ def initialize(prediction, page_id)
53
+ super()
54
+ @company_name = StringField.new(prediction['company_name'], page_id)
55
+ @copays = []
56
+ prediction['copays'].each do |item|
57
+ @copays.push(HealthcareCardV1Copay.new(item, page_id))
58
+ end
59
+ @dependents = []
60
+ prediction['dependents'].each do |item|
61
+ @dependents.push(StringField.new(item, page_id))
62
+ end
63
+ @enrollment_date = DateField.new(prediction['enrollment_date'], page_id)
64
+ @group_number = StringField.new(prediction['group_number'], page_id)
65
+ @issuer80840 = StringField.new(prediction['issuer_80840'], page_id)
66
+ @member_id = StringField.new(prediction['member_id'], page_id)
67
+ @member_name = StringField.new(prediction['member_name'], page_id)
68
+ @payer_id = StringField.new(prediction['payer_id'], page_id)
69
+ @rx_bin = StringField.new(prediction['rx_bin'], page_id)
70
+ @rx_grp = StringField.new(prediction['rx_grp'], page_id)
71
+ @rx_pcn = StringField.new(prediction['rx_pcn'], page_id)
72
+ end
73
+
74
+ # @return [String]
75
+ def to_s
76
+ dependents = @dependents.join("\n #{' ' * 12}")
77
+ copays = copays_to_s
78
+ out_str = String.new
79
+ out_str << "\n:Company Name: #{@company_name}".rstrip
80
+ out_str << "\n:Member Name: #{@member_name}".rstrip
81
+ out_str << "\n:Member ID: #{@member_id}".rstrip
82
+ out_str << "\n:Issuer 80840: #{@issuer80840}".rstrip
83
+ out_str << "\n:Dependents: #{dependents}".rstrip
84
+ out_str << "\n:Group Number: #{@group_number}".rstrip
85
+ out_str << "\n:Payer ID: #{@payer_id}".rstrip
86
+ out_str << "\n:RX BIN: #{@rx_bin}".rstrip
87
+ out_str << "\n:RX GRP: #{@rx_grp}".rstrip
88
+ out_str << "\n:RX PCN: #{@rx_pcn}".rstrip
89
+ out_str << "\n:copays:"
90
+ out_str << copays
91
+ out_str << "\n:Enrollment Date: #{@enrollment_date}".rstrip
92
+ out_str[1..].to_s
93
+ end
94
+
95
+ private
96
+
97
+ # @param char [String]
98
+ # @return [String]
99
+ def copays_separator(char)
100
+ out_str = String.new
101
+ out_str << ' '
102
+ out_str << "+#{char * 14}"
103
+ out_str << "+#{char * 14}"
104
+ out_str << '+'
105
+ out_str
106
+ end
107
+
108
+ # @return [String]
109
+ def copays_to_s
110
+ return '' if @copays.empty?
111
+
112
+ line_items = @copays.map(&:to_table_line).join("\n#{copays_separator('-')}\n ")
113
+ out_str = String.new
114
+ out_str << "\n#{copays_separator('-')}"
115
+ out_str << "\n |"
116
+ out_str << ' Service Fees |'
117
+ out_str << ' Service Name |'
118
+ out_str << "\n#{copays_separator('=')}"
119
+ out_str << "\n #{line_items}"
120
+ out_str << "\n#{copays_separator('-')}"
121
+ out_str
122
+ end
123
+ end
124
+ end
125
+ end
126
+ end
127
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../parsing'
4
+ require_relative 'healthcare_card_v1_document'
5
+
6
+ module Mindee
7
+ module Product
8
+ module US
9
+ module HealthcareCard
10
+ # Healthcare Card API version 1.0 page data.
11
+ class HealthcareCardV1Page < Mindee::Parsing::Common::Page
12
+ # @param prediction [Hash]
13
+ def initialize(prediction)
14
+ super(prediction)
15
+ @prediction = HealthcareCardV1PagePrediction.new(
16
+ prediction['prediction'],
17
+ prediction['id']
18
+ )
19
+ end
20
+ end
21
+
22
+ # Healthcare Card V1 page prediction.
23
+ class HealthcareCardV1PagePrediction < HealthcareCardV1Document
24
+ # @return [String]
25
+ def to_s
26
+ out_str = String.new
27
+ out_str << "\n#{super}"
28
+ out_str
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -26,5 +26,6 @@ require_relative 'product/international_id/international_id_v2'
26
26
  require_relative 'product/resume/resume_v1'
27
27
  require_relative 'product/us/bank_check/bank_check_v1'
28
28
  require_relative 'product/us/driver_license/driver_license_v1'
29
+ require_relative 'product/us/healthcare_card/healthcare_card_v1'
29
30
  require_relative 'product/us/us_mail/us_mail_v2'
30
31
  require_relative 'product/us/w9/w9_v1'
@@ -3,7 +3,7 @@
3
3
  # Mindee
4
4
  module Mindee
5
5
  # Current version.
6
- VERSION = '3.11.0'
6
+ VERSION = '3.12.0'
7
7
 
8
8
  # Finds and return the current platform.
9
9
  # @return [String]
data/mindee.gemspec CHANGED
@@ -30,6 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.required_ruby_version = Gem::Requirement.new('>= 2.6')
31
31
 
32
32
  spec.add_runtime_dependency 'marcel', '~> 1.0.2'
33
+ spec.add_runtime_dependency 'mini_magick', '~> 4.13.0'
33
34
  spec.add_runtime_dependency 'origamindee', '~> 3.1.0'
34
35
 
35
36
  spec.add_development_dependency 'rake', '~> 12.3.3'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mindee
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.11.0
4
+ version: 3.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mindee, SA
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-10 00:00:00.000000000 Z
11
+ date: 2024-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: marcel
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.0.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: mini_magick
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 4.13.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 4.13.0
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: origamindee
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -138,6 +152,7 @@ files:
138
152
  - docs/code_samples/expense_receipts_v4.txt
139
153
  - docs/code_samples/expense_receipts_v5.txt
140
154
  - docs/code_samples/financial_document_v1.txt
155
+ - docs/code_samples/financial_document_v1_async.txt
141
156
  - docs/code_samples/idcard_fr_v1.txt
142
157
  - docs/code_samples/idcard_fr_v2.txt
143
158
  - docs/code_samples/international_id_v1_async.txt
@@ -150,6 +165,7 @@ files:
150
165
  - docs/code_samples/proof_of_address_v1.txt
151
166
  - docs/code_samples/resume_v1_async.txt
152
167
  - docs/code_samples/us_driver_license_v1.txt
168
+ - docs/code_samples/us_healthcare_cards_v1_async.txt
153
169
  - docs/code_samples/us_mail_v2_async.txt
154
170
  - docs/code_samples/us_w9_v1.txt
155
171
  - docs/cropper_v1.md
@@ -169,6 +185,7 @@ files:
169
185
  - docs/proof_of_address_v1.md
170
186
  - docs/resume_v1.md
171
187
  - docs/us_driver_license_v1.md
188
+ - docs/us_healthcare_cards_v1.md
172
189
  - docs/us_mail_v2.md
173
190
  - docs/us_w9_v1.md
174
191
  - lib/mindee.rb
@@ -187,6 +204,12 @@ files:
187
204
  - lib/mindee/http/endpoint.rb
188
205
  - lib/mindee/http/error.rb
189
206
  - lib/mindee/http/response_validation.rb
207
+ - lib/mindee/image_extraction.rb
208
+ - lib/mindee/image_extraction/common.rb
209
+ - lib/mindee/image_extraction/common/extracted_image.rb
210
+ - lib/mindee/image_extraction/common/image_extractor.rb
211
+ - lib/mindee/image_extraction/multi_receipts_extractor.rb
212
+ - lib/mindee/image_extraction/multi_receipts_extractor/multi_receipts_extractor.rb
190
213
  - lib/mindee/input.rb
191
214
  - lib/mindee/input/local_response.rb
192
215
  - lib/mindee/input/sources.rb
@@ -314,6 +337,10 @@ files:
314
337
  - lib/mindee/product/us/driver_license/driver_license_v1.rb
315
338
  - lib/mindee/product/us/driver_license/driver_license_v1_document.rb
316
339
  - lib/mindee/product/us/driver_license/driver_license_v1_page.rb
340
+ - lib/mindee/product/us/healthcare_card/healthcare_card_v1.rb
341
+ - lib/mindee/product/us/healthcare_card/healthcare_card_v1_copay.rb
342
+ - lib/mindee/product/us/healthcare_card/healthcare_card_v1_document.rb
343
+ - lib/mindee/product/us/healthcare_card/healthcare_card_v1_page.rb
317
344
  - lib/mindee/product/us/us_mail/us_mail_v2.rb
318
345
  - lib/mindee/product/us/us_mail/us_mail_v2_document.rb
319
346
  - lib/mindee/product/us/us_mail/us_mail_v2_page.rb