mindee 3.11.0 → 3.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/bin/mindee.rb +7 -1
- data/docs/code_samples/financial_document_v1_async.txt +19 -0
- data/docs/code_samples/us_healthcare_cards_v1_async.txt +19 -0
- data/docs/expense_receipts_v5.md +12 -10
- data/docs/financial_document_v1.md +51 -22
- data/docs/invoices_v4.md +4 -3
- data/docs/us_healthcare_cards_v1.md +204 -0
- data/lib/mindee/image_extraction/common/extracted_image.rb +73 -0
- data/lib/mindee/image_extraction/common/image_extractor.rb +191 -0
- data/lib/mindee/image_extraction/common.rb +3 -0
- data/lib/mindee/image_extraction/multi_receipts_extractor/multi_receipts_extractor.rb +26 -0
- data/lib/mindee/image_extraction/multi_receipts_extractor.rb +3 -0
- data/lib/mindee/image_extraction.rb +4 -0
- data/lib/mindee/input/sources.rb +8 -0
- data/lib/mindee/parsing/standard/company_registration_field.rb +17 -0
- data/lib/mindee/product/financial_document/financial_document_v1_document.rb +3 -1
- data/lib/mindee/product/financial_document/financial_document_v1_line_item.rb +7 -0
- data/lib/mindee/product/financial_document/financial_document_v1_page.rb +1 -1
- data/lib/mindee/product/international_id/international_id_v2_document.rb +1 -1
- data/lib/mindee/product/international_id/international_id_v2_page.rb +1 -1
- data/lib/mindee/product/invoice/invoice_v4_document.rb +3 -1
- data/lib/mindee/product/invoice/invoice_v4_line_item.rb +7 -0
- data/lib/mindee/product/invoice/invoice_v4_page.rb +1 -1
- data/lib/mindee/product/multi_receipts_detector/multi_receipts_detector_v1_document.rb +1 -1
- data/lib/mindee/product/multi_receipts_detector/multi_receipts_detector_v1_page.rb +1 -1
- data/lib/mindee/product/receipt/receipt_v5_document.rb +1 -1
- data/lib/mindee/product/receipt/receipt_v5_page.rb +1 -1
- data/lib/mindee/product/us/healthcare_card/healthcare_card_v1.rb +41 -0
- data/lib/mindee/product/us/healthcare_card/healthcare_card_v1_copay.rb +57 -0
- data/lib/mindee/product/us/healthcare_card/healthcare_card_v1_document.rb +127 -0
- data/lib/mindee/product/us/healthcare_card/healthcare_card_v1_page.rb +34 -0
- data/lib/mindee/product.rb +1 -0
- data/lib/mindee/version.rb +1 -1
- data/mindee.gemspec +1 -0
- 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
|
data/lib/mindee/product.rb
CHANGED
@@ -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'
|
data/lib/mindee/version.rb
CHANGED
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.
|
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-
|
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
|