mindee 3.11.0 → 3.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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