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.
- checksums.yaml +7 -0
- data/README.md +74 -97
- data/lib/generators/active_record/add_license_table.rb +18 -0
- data/lib/generators/active_record/{base_npi_data.rb → add_nppes_table.rb} +0 -0
- data/lib/generators/active_record/add_provider_address_table.rb +23 -0
- data/lib/generators/active_record/{update_check.rb → add_update_check_table.rb} +0 -0
- data/lib/generators/nppes/install_generator.rb +18 -15
- data/lib/nppes.rb +4 -0
- data/lib/nppes/models.rb +4 -3
- data/lib/nppes/models/np_address.rb +19 -0
- data/lib/nppes/models/np_identifier.rb +24 -0
- data/lib/nppes/models/np_license.rb +15 -0
- data/lib/nppes/{np_update_check.rb → models/np_update_check.rb} +0 -0
- data/lib/nppes/update_pack.rb +1 -0
- data/lib/nppes/update_pack/code_values.rb +1164 -0
- data/lib/nppes/update_pack/data.rb +24 -14
- data/lib/nppes/update_pack/header.rb +2 -1
- data/lib/nppes/update_pack/pack.rb +2 -0
- data/lib/nppes/update_pack/required_fields.rb +34 -35
- data/lib/nppes/version.rb +1 -1
- metadata +28 -45
- data/lib/generators/active_record/license.rb +0 -20
- data/lib/nppes/np_identifier.rb +0 -8
- data/lib/nppes/np_license.rb +0 -5
@@ -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
|
19
|
+
required_fields.fields.each_pair { |k, v| npi.send("#{k}=", prepare_value(@fields, v)) }
|
20
20
|
|
21
21
|
# for submodels
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
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"
|
46
|
+
#"Provider Enumeration Date"
|
47
|
+
#"Last Update Date"
|
47
48
|
#
|
48
49
|
#"NPI Deactivation Reason Code"
|
49
50
|
#"NPI Deactivation Date"
|
@@ -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(
|
70
|
-
ret
|
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
|
-
|
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
|
data/lib/nppes/version.rb
CHANGED
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:
|
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-
|
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/
|
123
|
-
- lib/generators/active_record/
|
124
|
-
- lib/generators/active_record/
|
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/
|
135
|
-
- lib/nppes/
|
136
|
-
- lib/nppes/
|
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:
|
160
|
+
rubygems_version: 2.0.3
|
178
161
|
signing_key:
|
179
|
-
specification_version:
|
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
|
data/lib/nppes/np_identifier.rb
DELETED