nppes 0.2 → 0.3.3.4

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.
@@ -16,24 +16,34 @@ module Nppes
16
16
 
17
17
  npi = Nppes::NpIdentifier.where(npi: @fields[0]).first_or_initialize
18
18
 
19
- required_fields.fields.each_pair { |k, v| npi.send("#{k}=", @fields[v]) }
19
+ required_fields.fields.each_pair { |k, v| npi.send("#{k}=", prepare_value(@fields, v)) }
20
20
 
21
21
  # for submodels
22
- #required_fields.relations.each_pair do |k, v|
23
- # v.each do |entity|
24
- # relation = npi.send(k).new
25
- # entity.each_pair {|name, num| relation.send("#{name}=", @fields[num])}
26
- # end
27
- #end
28
-
29
- #for submodel
30
- #required_fields.relations.each_pair do |k, v|
31
- # relation = npi.send(k).new
32
- # entity.each_pair {|name, num| relation.send("#{name}=", @fields[num])}
33
- #end
22
+ required_fields.relations.each_pair do |k, v|
23
+ v.each do |entity|
24
+ relation = npi.send(k).new
25
+ entity.each_pair {|name, num| relation.send("#{name}=", prepare_value(@fields, num))}
26
+ unless relation.valid?
27
+ npi.send(k).delete(relation)
28
+ break
29
+ end
30
+ end
31
+ end
34
32
 
35
- npi.save!
33
+ npi.save if npi.valid?
36
34
  end
35
+
36
+ protected
37
+ def prepare_value(fields, variants)
38
+ if variants.is_a? String
39
+ variants
40
+ elsif variants.is_a? Array
41
+ variant = variants.detect {|v| fields[v].present? }
42
+ variant ? fields[variant] : ''
43
+ else
44
+ fields[variants]
45
+ end
46
+ end
37
47
  end
38
48
  end
39
49
  end
@@ -43,7 +43,8 @@ module Nppes
43
43
  #"Provider Business Practice Location Address Country Code (If outside U.S.)"
44
44
  #"Provider Business Practice Location Address Telephone Number"
45
45
  #"Provider Business Practice Location Address Fax Number"
46
- #"Provider Enumeration Date" "Last Update Date"
46
+ #"Provider Enumeration Date"
47
+ #"Last Update Date"
47
48
  #
48
49
  #"NPI Deactivation Reason Code"
49
50
  #"NPI Deactivation Date"
@@ -68,6 +68,8 @@ module Nppes
68
68
  begin
69
69
  proceed(prepare_file(update.file_link))
70
70
  rescue
71
+ Nppes.logger.error $!
72
+ Nppes.logger.error $@
71
73
  update.update_attribute(:done, false)
72
74
  else
73
75
  update.update_attribute(:done, true)
@@ -33,54 +33,53 @@ module Nppes
33
33
  npi_reactivation_date: 40,
34
34
  entity_type_code: 1,
35
35
 
36
- last_name: 5,
37
- first_name: 6,
38
- middle_name: 7,
36
+ last_name: [5, 42],
37
+ first_name: [6, 43],
38
+ middle_name: [7, 44],
39
39
  prefix: 8,
40
40
  suffix: 9,
41
41
  last_update_date: 37,
42
42
  gender_code: 41,
43
-
44
- #first_business_practice_address: 28,
45
- #second_business_practice_address: 29,
46
- #
47
- #business_practice_city: 30,
48
- #business_practice_state: 31,
49
- #business_practice_postal_code: 32,
50
- #business_practice_phone: 34,
51
- #
52
- #
53
- #first_business_mailing_address: 20,
54
- #second_business_mailing_address: 21,
55
- #
56
- #business_mailing_city: 22,
57
- #business_mailing_state: 23,
58
- #business_mailing_postal_code: 24,
59
- #business_mailing_phone: 26,
60
- #
61
- #official_last_name: 42,
62
- #official_first_name: 43,
63
- #official_middle_name: 44,
64
- #official_phone: 46
65
43
  }
66
44
 
67
45
  self.relations = {
46
+ np_addresses:
47
+ [
48
+ {
49
+ address_type: 'official',
50
+ address1: 28,
51
+ address2: 29,
52
+
53
+ city: 30,
54
+ state: 31,
55
+ country: 33,
56
+ zip: 32,
57
+ phone: [34, 46]
58
+ },
59
+ {
60
+ address_type: 'mailing',
61
+ address1: 20,
62
+ address2: 21,
63
+
64
+ city: 22,
65
+ state: 23,
66
+ country: 25,
67
+ zip: 24,
68
+ phone: 26
69
+ }
70
+ ],
71
+
68
72
  np_licenses:
69
- (0..14).each_with_object({}) do |i, ret|
70
- ret.update(
73
+ (0..14).each_with_object([]) do |i, ret|
74
+ ret <<
75
+ {
71
76
  taxonomy_code: 47 + (i * 4),
72
77
  license_number: 48 + (i * 4),
73
78
  license_number_state_code: 49 + (i * 4),
74
- healhcare_taxonomy_switch: 50 + (i * 4)
75
- )
79
+ healthcare_taxonomy_switch: 50 + (i * 4)
80
+ }
76
81
  end
77
82
  }
78
-
79
- #class << self
80
- # def proceed(header)
81
- #
82
- # end
83
- #end
84
83
  end
85
84
  end
86
85
  end
@@ -1,3 +1,3 @@
1
1
  module Nppes
2
- VERSION = '0.2'
2
+ VERSION = '0.3.3.4'
3
3
  end
metadata CHANGED
@@ -1,110 +1,97 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nppes
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
5
- prerelease:
4
+ version: 0.3.3.4
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jenua Boiko
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-10-03 00:00:00.000000000 Z
11
+ date: 2013-11-19 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rails
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: 3.0.0
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: 3.0.0
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rubyzip
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: nokogiri
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: delayed_job_active_record
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: daemons
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: rspec-rails
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - '>='
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - '>='
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  description: ''
@@ -119,9 +106,10 @@ files:
119
106
  - LICENSE
120
107
  - README.md
121
108
  - Rakefile
122
- - lib/generators/active_record/base_npi_data.rb
123
- - lib/generators/active_record/license.rb
124
- - lib/generators/active_record/update_check.rb
109
+ - lib/generators/active_record/add_license_table.rb
110
+ - lib/generators/active_record/add_nppes_table.rb
111
+ - lib/generators/active_record/add_provider_address_table.rb
112
+ - lib/generators/active_record/add_update_check_table.rb
125
113
  - lib/generators/nppes/install_generator.rb
126
114
  - lib/generators/templates/delayed_jobs.rb
127
115
  - lib/generators/templates/nppes.rb
@@ -131,13 +119,15 @@ files:
131
119
  - lib/nppes/jobs/searcher_job.rb
132
120
  - lib/nppes/jobs/updater_job.rb
133
121
  - lib/nppes/models.rb
134
- - lib/nppes/np_identifier.rb
135
- - lib/nppes/np_license.rb
136
- - lib/nppes/np_update_check.rb
122
+ - lib/nppes/models/np_address.rb
123
+ - lib/nppes/models/np_identifier.rb
124
+ - lib/nppes/models/np_license.rb
125
+ - lib/nppes/models/np_update_check.rb
137
126
  - lib/nppes/railtie.rb
138
127
  - lib/nppes/tasks/nppes.rake
139
128
  - lib/nppes/update_pack.rb
140
129
  - lib/nppes/update_pack/base.rb
130
+ - lib/nppes/update_pack/code_values.rb
141
131
  - lib/nppes/update_pack/data.rb
142
132
  - lib/nppes/update_pack/header.rb
143
133
  - lib/nppes/update_pack/pack.rb
@@ -150,33 +140,26 @@ files:
150
140
  homepage: ''
151
141
  licenses:
152
142
  - MIT
143
+ metadata: {}
153
144
  post_install_message:
154
145
  rdoc_options: []
155
146
  require_paths:
156
147
  - lib
157
148
  required_ruby_version: !ruby/object:Gem::Requirement
158
- none: false
159
149
  requirements:
160
- - - ! '>='
150
+ - - '>='
161
151
  - !ruby/object:Gem::Version
162
152
  version: '0'
163
- segments:
164
- - 0
165
- hash: 219354401
166
153
  required_rubygems_version: !ruby/object:Gem::Requirement
167
- none: false
168
154
  requirements:
169
- - - ! '>='
155
+ - - '>='
170
156
  - !ruby/object:Gem::Version
171
157
  version: '0'
172
- segments:
173
- - 0
174
- hash: 219354401
175
158
  requirements: []
176
159
  rubyforge_project:
177
- rubygems_version: 1.8.24
160
+ rubygems_version: 2.0.3
178
161
  signing_key:
179
- specification_version: 3
162
+ specification_version: 4
180
163
  summary: ''
181
164
  test_files:
182
165
  - spec/delayed_jobs_spec.rb
@@ -1,20 +0,0 @@
1
- class AddLicenseTable < ActiveRecord::Migration
2
- def self.up
3
- create_table :np_licenses do |t|
4
- t.integer :np_identifier_id
5
-
6
- (1..15).each do |i|
7
- t.string "taxonomy_code_#{i}", :limit => 10
8
- t.string "license_number_#{i}", :limit => 10
9
- t.string "license_number_state_code_#{i}", :limit => 2
10
- t.string "healthcare_taxonomy_switch_#{i}", :limit => 1
11
- end
12
-
13
- t.timestamps
14
- end
15
- end
16
-
17
- def self.down
18
- drop_table :np_licenses
19
- end
20
- end
@@ -1,8 +0,0 @@
1
- module Nppes
2
- class NpIdentifier < ActiveRecord::Base
3
- #has_one :np_license
4
-
5
- #self.table_name = 'email_templates'
6
-
7
- end
8
- end
@@ -1,5 +0,0 @@
1
- module Nppes
2
- class NpLicense < ActiveRecord::Base
3
- belongs_to :np_identifier
4
- end
5
- end