oddb2xml 1.3.9 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +8 -0
- data/bin/oddb2xml +1 -1
- data/lib/oddb2xml/builder.rb +18 -18
- data/lib/oddb2xml/cli.rb +13 -5
- data/lib/oddb2xml/extractor.rb +25 -27
- data/lib/oddb2xml/version.rb +1 -1
- data/spec/cli_spec.rb +3 -1
- metadata +28 -28
data/History.txt
CHANGED
data/bin/oddb2xml
CHANGED
@@ -22,7 +22,7 @@ Usage:
|
|
22
22
|
'xml' format includes always ean14 records.
|
23
23
|
-t S, --tag-suffix=S XML tag suffix S. Default is none. [A-z0-9]
|
24
24
|
If S is given, it is also used as prefix of filename.
|
25
|
-
-x
|
25
|
+
-x N, --context=N context N {product|address}. product is default.
|
26
26
|
-h, --help Show this help message.
|
27
27
|
EOS
|
28
28
|
end
|
data/lib/oddb2xml/builder.rb
CHANGED
@@ -35,8 +35,8 @@ module Oddb2xml
|
|
35
35
|
@orphans = []
|
36
36
|
@fridges = []
|
37
37
|
@ean14 = true
|
38
|
-
@companies =
|
39
|
-
@people =
|
38
|
+
@companies = []
|
39
|
+
@people = []
|
40
40
|
@tag_suffix = nil
|
41
41
|
if block_given?
|
42
42
|
yield self
|
@@ -780,24 +780,24 @@ module Oddb2xml
|
|
780
780
|
'CREATION_DATETIME' => datetime,
|
781
781
|
'VALID_DATE' => datetime,
|
782
782
|
) {
|
783
|
-
@companies.
|
783
|
+
@companies.each do |c|
|
784
784
|
xml.Betrieb('DT' => '') {
|
785
|
-
xml.GLN_Betrieb
|
786
|
-
xml.Betriebsname_1 c[:name_1]
|
787
|
-
xml.Betriebsname_2 c[:name_2]
|
788
|
-
xml.Strasse c[:address]
|
789
|
-
xml.Nummer c[:number]
|
790
|
-
xml.PLZ c[:post]
|
791
|
-
xml.Ort c[:place]
|
792
|
-
xml.Bewilligungskanton c[:region]
|
793
|
-
xml.Land c[:country]
|
794
|
-
xml.Betriebstyp c[:type]
|
785
|
+
xml.GLN_Betrieb c[:gln] unless c[:gln].empty?
|
786
|
+
xml.Betriebsname_1 c[:name_1] unless c[:name_1].empty?
|
787
|
+
xml.Betriebsname_2 c[:name_2] unless c[:name_2].empty?
|
788
|
+
xml.Strasse c[:address] unless c[:address].empty?
|
789
|
+
xml.Nummer c[:number] unless c[:number].empty?
|
790
|
+
xml.PLZ c[:post] unless c[:post].empty?
|
791
|
+
xml.Ort c[:place] unless c[:place].empty?
|
792
|
+
xml.Bewilligungskanton c[:region] unless c[:region].empty?
|
793
|
+
xml.Land c[:country] unless c[:country].empty?
|
794
|
+
xml.Betriebstyp c[:type] unless c[:type].empty?
|
795
795
|
xml.BTM_Berechtigung c[:authorization] unless c[:authorization].empty?
|
796
796
|
}
|
797
797
|
end
|
798
798
|
xml.RESULT {
|
799
799
|
xml.OK_ERROR 'OK'
|
800
|
-
xml.NBR_RECORD @companies.
|
800
|
+
xml.NBR_RECORD @companies.length
|
801
801
|
xml.ERROR_CODE ''
|
802
802
|
xml.MESSAGE ''
|
803
803
|
}
|
@@ -816,23 +816,23 @@ module Oddb2xml
|
|
816
816
|
'CREATION_DATETIME' => datetime,
|
817
817
|
'VALID_DATE' => datetime,
|
818
818
|
) {
|
819
|
-
@people.
|
819
|
+
@people.each do |p|
|
820
820
|
xml.Person('DT' => '') {
|
821
|
-
xml.GLN_Person
|
821
|
+
xml.GLN_Person p[:gln] unless p[:gln].empty?
|
822
822
|
xml.Name p[:last_name] unless p[:last_name].empty?
|
823
823
|
xml.Vorname p[:first_name] unless p[:first_name].empty?
|
824
824
|
xml.PLZ p[:post] unless p[:post].empty?
|
825
825
|
xml.Ort p[:place] unless p[:place].empty?
|
826
826
|
xml.Bewilligungskanton p[:region] unless p[:region].empty?
|
827
827
|
xml.Land p[:country] unless p[:country].empty?
|
828
|
-
xml.Bewilligung_Selbstdispensation p[:
|
828
|
+
xml.Bewilligung_Selbstdispensation p[:license] unless p[:license].empty?
|
829
829
|
xml.Diplom p[:certificate] unless p[:certificate].empty?
|
830
830
|
xml.BTM_Berechtigung p[:authorization] unless p[:authorization].empty?
|
831
831
|
}
|
832
832
|
end
|
833
833
|
xml.RESULT {
|
834
834
|
xml.OK_ERROR 'OK'
|
835
|
-
xml.NBR_RECORD @people.
|
835
|
+
xml.NBR_RECORD @people.length
|
836
836
|
xml.ERROR_CODE ''
|
837
837
|
xml.MESSAGE ''
|
838
838
|
}
|
data/lib/oddb2xml/cli.rb
CHANGED
@@ -27,8 +27,8 @@ module Oddb2xml
|
|
27
27
|
@orphans = [] # [addition] Orphaned drugs from Swissmedic xls
|
28
28
|
@fridges = [] # [addition] ReFridge drugs from Swissmedic xls
|
29
29
|
# addres
|
30
|
-
@companies =
|
31
|
-
@people =
|
30
|
+
@companies = [] # betrieb
|
31
|
+
@people = [] # medizinalperson
|
32
32
|
LANGUAGES.each do |lang|
|
33
33
|
@index[lang] = {}
|
34
34
|
end
|
@@ -154,7 +154,7 @@ module Oddb2xml
|
|
154
154
|
str = downloader.download
|
155
155
|
self.instance_variable_set(
|
156
156
|
"@#{var}".intern,
|
157
|
-
MedregbmExtractor.new(str, what).
|
157
|
+
MedregbmExtractor.new(str, what).to_arry
|
158
158
|
)
|
159
159
|
end
|
160
160
|
when :fachinfo
|
@@ -284,8 +284,8 @@ module Oddb2xml
|
|
284
284
|
@_prefix ||= (@options[:tag_suffix] || 'oddb').gsub(/^_|_$/, '').downcase
|
285
285
|
end
|
286
286
|
def report
|
287
|
+
lines = []
|
287
288
|
unless @options[:address]
|
288
|
-
lines = []
|
289
289
|
LANGUAGES.each do |lang|
|
290
290
|
lines << lang
|
291
291
|
types.each do |type|
|
@@ -296,8 +296,16 @@ module Oddb2xml
|
|
296
296
|
end
|
297
297
|
end
|
298
298
|
end
|
299
|
-
|
299
|
+
else
|
300
|
+
{
|
301
|
+
'Betrieb' => :@companies,
|
302
|
+
'Person' => :@people
|
303
|
+
}.each do |type, var|
|
304
|
+
lines << sprintf(
|
305
|
+
"#{type} addresses: %i", self.instance_variable_get(var).length)
|
306
|
+
end
|
300
307
|
end
|
308
|
+
puts lines.join("\n")
|
301
309
|
end
|
302
310
|
def types # swissindex
|
303
311
|
@_types ||=
|
data/lib/oddb2xml/extractor.rb
CHANGED
@@ -353,44 +353,42 @@ module Oddb2xml
|
|
353
353
|
@io = StringIO.new(str)
|
354
354
|
@type = type
|
355
355
|
end
|
356
|
-
def
|
357
|
-
data =
|
356
|
+
def to_arry
|
357
|
+
data = []
|
358
358
|
case @type
|
359
359
|
when :company
|
360
360
|
while line = @io.gets
|
361
361
|
row = line.chomp.split("\t")
|
362
362
|
next if row[0] =~ /^GLN/
|
363
|
-
|
364
|
-
|
365
|
-
:
|
366
|
-
:
|
367
|
-
:
|
368
|
-
:
|
369
|
-
:
|
370
|
-
:
|
371
|
-
:
|
372
|
-
:
|
373
|
-
:
|
374
|
-
:
|
375
|
-
:authorization => row[10].to_s, #=> BTM Berechtigung
|
363
|
+
data << {
|
364
|
+
:gln => row[0].to_s.gsub(/[^0-9]/, ''), #=> GLN Betrieb
|
365
|
+
:name_1 => row[1].to_s, #=> Betriebsname 1
|
366
|
+
:name_2 => row[2].to_s, #=> Betriebsname 2
|
367
|
+
:address => row[3].to_s, #=> Strasse
|
368
|
+
:number => row[4].to_s, #=> Nummer
|
369
|
+
:post => row[5].to_s, #=> PLZ
|
370
|
+
:place => row[6].to_s, #=> Ort
|
371
|
+
:region => row[7].to_s, #=> Bewilligungskanton
|
372
|
+
:country => row[8].to_s, #=> Land
|
373
|
+
:type => row[9].to_s, #=> Betriebstyp
|
374
|
+
:authorization => row[10].to_s, #=> BTM Berechtigung
|
376
375
|
}
|
377
376
|
end
|
378
377
|
when :person
|
379
378
|
while line = @io.gets
|
380
379
|
row = line.chomp.split("\t")
|
381
380
|
next if row[0] =~ /^GLN/
|
382
|
-
|
383
|
-
|
384
|
-
:
|
385
|
-
:
|
386
|
-
:
|
387
|
-
:
|
388
|
-
:
|
389
|
-
:
|
390
|
-
:
|
391
|
-
:
|
392
|
-
:
|
393
|
-
:authorization => row[9].to_s, #=> BTM Berechtigung
|
381
|
+
data << {
|
382
|
+
:gln => row[0].to_s.gsub(/[^0-9]/, ''), #=> GLN Person
|
383
|
+
:last_name => row[1].to_s, #=> Name
|
384
|
+
:first_name => row[2].to_s, #=> Vorname
|
385
|
+
:post => row[3].to_s, #=> PLZ
|
386
|
+
:place => row[4].to_s, #=> Ort
|
387
|
+
:region => row[5].to_s, #=> Bewilligungskanton
|
388
|
+
:country => row[6].to_s, #=> Land
|
389
|
+
:license => row[7].to_s, #=> Bewilligung Selbstdispensation
|
390
|
+
:certificate => row[8].to_s, #=> Diplom
|
391
|
+
:authorization => row[9].to_s, #=> BTM Berechtigung
|
394
392
|
}
|
395
393
|
end
|
396
394
|
end
|
data/lib/oddb2xml/version.rb
CHANGED
data/spec/cli_spec.rb
CHANGED
@@ -25,7 +25,7 @@ end
|
|
25
25
|
shared_examples_for 'any interface for address' do
|
26
26
|
it { cli.should respond_to(:run) }
|
27
27
|
it 'should run successfully' do
|
28
|
-
$stdout.
|
28
|
+
$stdout.should_receive(:puts).with(/addresses/)
|
29
29
|
cli.run
|
30
30
|
end
|
31
31
|
end
|
@@ -247,11 +247,13 @@ describe Oddb2xml::Cli do
|
|
247
247
|
cli.should have_option(:address=> true)
|
248
248
|
end
|
249
249
|
it 'should not create any compressed file' do
|
250
|
+
$stdout.should_receive(:puts).with(/addresses/)
|
250
251
|
cli.run
|
251
252
|
Dir.glob('oddb_*.tar.gz').first.should be_nil
|
252
253
|
Dir.glob('oddb_*.zip').first.should be_nil
|
253
254
|
end
|
254
255
|
it 'should create xml files' do
|
256
|
+
$stdout.should_receive(:puts).with(/addresses/)
|
255
257
|
cli.run
|
256
258
|
expected = [
|
257
259
|
'oddb_betrieb.xml',
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oddb2xml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rubyzip
|
16
|
-
requirement: &
|
16
|
+
requirement: &18744960 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *18744960
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: archive-tar-minitar
|
27
|
-
requirement: &
|
27
|
+
requirement: &18743640 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *18743640
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: mechanize
|
38
|
-
requirement: &
|
38
|
+
requirement: &18644340 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *18644340
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: nokogiri
|
49
|
-
requirement: &
|
49
|
+
requirement: &18643640 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *18643640
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: savon
|
60
|
-
requirement: &
|
60
|
+
requirement: &18642840 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '2.0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *18642840
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: spreadsheet
|
71
|
-
requirement: &
|
71
|
+
requirement: &18642040 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *18642040
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rspec
|
82
|
-
requirement: &
|
82
|
+
requirement: &18641340 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *18641340
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: webmock
|
93
|
-
requirement: &
|
93
|
+
requirement: &18640240 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *18640240
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: ZenTest
|
104
|
-
requirement: &
|
104
|
+
requirement: &18639460 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: '0'
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *18639460
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: hoe
|
115
|
-
requirement: &
|
115
|
+
requirement: &18588900 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - ! '>='
|
@@ -120,10 +120,10 @@ dependencies:
|
|
120
120
|
version: '3.4'
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *18588900
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
125
|
name: rdoc
|
126
|
-
requirement: &
|
126
|
+
requirement: &18587540 !ruby/object:Gem::Requirement
|
127
127
|
none: false
|
128
128
|
requirements:
|
129
129
|
- - ! '>='
|
@@ -131,10 +131,10 @@ dependencies:
|
|
131
131
|
version: '0'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
|
-
version_requirements: *
|
134
|
+
version_requirements: *18587540
|
135
135
|
- !ruby/object:Gem::Dependency
|
136
136
|
name: rdoc
|
137
|
-
requirement: &
|
137
|
+
requirement: &18585800 !ruby/object:Gem::Requirement
|
138
138
|
none: false
|
139
139
|
requirements:
|
140
140
|
- - ~>
|
@@ -142,10 +142,10 @@ dependencies:
|
|
142
142
|
version: '3.10'
|
143
143
|
type: :development
|
144
144
|
prerelease: false
|
145
|
-
version_requirements: *
|
145
|
+
version_requirements: *18585800
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
147
|
name: hoe
|
148
|
-
requirement: &
|
148
|
+
requirement: &18584860 !ruby/object:Gem::Requirement
|
149
149
|
none: false
|
150
150
|
requirements:
|
151
151
|
- - ~>
|
@@ -153,7 +153,7 @@ dependencies:
|
|
153
153
|
version: '2.13'
|
154
154
|
type: :development
|
155
155
|
prerelease: false
|
156
|
-
version_requirements: *
|
156
|
+
version_requirements: *18584860
|
157
157
|
description: oddb2xml creates xml files using swissINDEX, BAG-XML and Swissmedic.
|
158
158
|
email: yasaka@ywesee.com, zdavatz@ywesee.com
|
159
159
|
executables:
|