oddb2xml 2.2.6 → 2.2.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1338186e814bba29ae165b55961634b87ceab658
4
- data.tar.gz: 8f736fba9dd08fa2f44a4577bc97ca43cfb98d0b
3
+ metadata.gz: 5231618926015f8fe6730a4bb96e5c1b02bcd7a6
4
+ data.tar.gz: 46d8563881526d72bfafa74d328b599e59f5ead8
5
5
  SHA512:
6
- metadata.gz: 8f81d0c6c7ab027561bad9d42c0b21c3450727166669e58c7c06671c73d2a27e71bdd5a1cb594b0a53daaeda1ea554dfc66f36f3cc2ead081b59aadcbcb0c442
7
- data.tar.gz: cf3ad5e44a0be9b48488403adca881244ef083bf77b6d96e3c36ea7ad53710189348c5ac0c6869ceecd3b4b1b49272dad1172ae33e84c6ad9745e3a541e1ab6f
6
+ metadata.gz: bcaad4b40f4e4a353c8d81a0628a766f71072926365ab4227b28c495448ef504f7a3870b13cbbe1ce6bc32f47f18ad844d6bade36f5ac4118275352361eaf044
7
+ data.tar.gz: c34d48f22e6f16b235695f1fe911d0249884287d0f787ec891b3cd4db7d145a3c60b011b91c0228c7af33db0d5d61fdbb5c521ff197ca682d82a111506524abd
data/.gitignore CHANGED
@@ -15,3 +15,21 @@ test/tmp
15
15
  test/version_tmp
16
16
  tmp
17
17
  .ruby-version
18
+ *#
19
+ # Ignore downloaded files
20
+ .project
21
+ .buildpath
22
+ /*.xlsx
23
+ /oddb_*.xml
24
+ /oddb_*.txt
25
+ /oddb2xml*.txt
26
+ /spec/run
27
+ /*tar.gz
28
+ /*.patch
29
+ /ausgabe
30
+ /downloads
31
+ /duplicate_ean13_from_zur_rose.txt
32
+ /epha_interactions.csv
33
+ /missing_in_refdata.txt
34
+ /oddb2xml_files_nonpharma.xls
35
+ /oddb_calc.csv
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- oddb2xml (2.2.6)
4
+ oddb2xml (2.2.7)
5
5
  archive-tar-minitar
6
6
  httpi (>= 2.4.1)
7
7
  mechanize
@@ -25,17 +25,16 @@ GEM
25
25
  archive-tar-minitar (0.5.2)
26
26
  blankslate (3.1.3)
27
27
  builder (3.2.2)
28
- byebug (4.0.5)
29
- columnize (= 0.9.0)
28
+ byebug (8.2.0)
30
29
  coderay (1.1.0)
31
- columnize (0.9.0)
32
30
  crack (0.4.2)
33
31
  safe_yaml (~> 1.0.0)
34
32
  diff-lcs (1.2.5)
35
- domain_name (0.5.24)
33
+ domain_name (0.5.25)
36
34
  unf (>= 0.0.5, < 1.0.0)
37
35
  gyoku (1.3.1)
38
36
  builder (>= 2.1.2)
37
+ hashdiff (0.2.3)
39
38
  http-cookie (1.0.2)
40
39
  domain_name (~> 0.5)
41
40
  httpi (2.4.1)
@@ -51,23 +50,23 @@ GEM
51
50
  ntlm-http (~> 0.1, >= 0.1.1)
52
51
  webrobots (>= 0.0.9, < 0.2)
53
52
  method_source (0.8.2)
54
- mime-types (2.6.2)
53
+ mime-types (2.99)
55
54
  mini_portile (0.6.2)
56
- multi_json (1.11.1)
55
+ multi_json (1.11.2)
57
56
  net-http-digest_auth (1.4)
58
57
  net-http-persistent (2.9.4)
59
- nokogiri (1.6.6.2)
58
+ nokogiri (1.6.6.4)
60
59
  mini_portile (~> 0.6.0)
61
60
  nori (2.6.0)
62
61
  ntlm-http (0.1.1)
63
- parslet (1.7.0)
62
+ parslet (1.7.1)
64
63
  blankslate (>= 2.0, <= 4.0)
65
- pry (0.10.1)
64
+ pry (0.10.3)
66
65
  coderay (~> 1.1.0)
67
66
  method_source (~> 0.8.1)
68
67
  slop (~> 3.4)
69
- pry-byebug (3.1.0)
70
- byebug (~> 4.0)
68
+ pry-byebug (3.3.0)
69
+ byebug (~> 8.0)
71
70
  pry (~> 0.10)
72
71
  pry-doc (0.8.0)
73
72
  pry (~> 0.9)
@@ -76,21 +75,21 @@ GEM
76
75
  rake (10.4.2)
77
76
  rdoc (4.2.0)
78
77
  json (~> 1.4)
79
- rspec (3.3.0)
80
- rspec-core (~> 3.3.0)
81
- rspec-expectations (~> 3.3.0)
82
- rspec-mocks (~> 3.3.0)
83
- rspec-core (3.3.1)
84
- rspec-support (~> 3.3.0)
85
- rspec-expectations (3.3.0)
78
+ rspec (3.4.0)
79
+ rspec-core (~> 3.4.0)
80
+ rspec-expectations (~> 3.4.0)
81
+ rspec-mocks (~> 3.4.0)
82
+ rspec-core (3.4.1)
83
+ rspec-support (~> 3.4.0)
84
+ rspec-expectations (3.4.0)
86
85
  diff-lcs (>= 1.2.0, < 2.0)
87
- rspec-support (~> 3.3.0)
88
- rspec-mocks (3.3.1)
86
+ rspec-support (~> 3.4.0)
87
+ rspec-mocks (3.4.0)
89
88
  diff-lcs (>= 1.2.0, < 2.0)
90
- rspec-support (~> 3.3.0)
91
- rspec-support (3.3.0)
89
+ rspec-support (~> 3.4.0)
90
+ rspec-support (3.4.1)
92
91
  ruby-ole (1.2.11.8)
93
- rubyXL (3.3.10)
92
+ rubyXL (3.3.15)
94
93
  nokogiri (>= 1.4.4)
95
94
  rubyzip (>= 1.1.6)
96
95
  rubyntlm (0.5.1)
@@ -106,19 +105,20 @@ GEM
106
105
  wasabi (~> 3.4)
107
106
  sax-machine (1.3.2)
108
107
  slop (3.6.0)
109
- spreadsheet (1.0.3)
108
+ spreadsheet (1.0.9)
110
109
  ruby-ole (>= 1.0)
111
- timecop (0.7.4)
110
+ timecop (0.8.0)
112
111
  unf (0.1.4)
113
112
  unf_ext
114
113
  unf_ext (0.0.7.1)
115
- vcr (2.9.3)
114
+ vcr (3.0.0)
116
115
  wasabi (3.5.0)
117
116
  httpi (~> 2.0)
118
117
  nokogiri (>= 1.4.2)
119
- webmock (1.21.0)
118
+ webmock (1.22.3)
120
119
  addressable (>= 2.3.6)
121
120
  crack (>= 0.3.2)
121
+ hashdiff
122
122
  webrobots (0.1.1)
123
123
  yard (0.8.7.6)
124
124
 
data/History.txt CHANGED
@@ -1,3 +1,9 @@
1
+ === 2.2.7 / 24.11.2015
2
+
3
+ * Removed no more emitted QTY from definition of ART in oddb2xml.xsd
4
+ * Fixed generating COOL in oddb_article.xml
5
+ * Fixed generating ORPH in oddb_product.xml
6
+
1
7
  === 2.2.6 / 09.11.2015
2
8
 
3
9
  * Fixed an error when generating oddb_calc.xml and we have no information for a given EAN, eg. 7680653150012
@@ -35,7 +35,7 @@ module Oddb2xml
35
35
  }
36
36
  class Builder
37
37
  attr_accessor :subject, :refdata, :items, :flags, :lppvs,
38
- :actions, :migel, :orphans, :fridges,
38
+ :actions, :migel, :orphan, :fridge,
39
39
  :infos, :packs, :infos_zur_rose,
40
40
  :ean14, :tag_suffix,
41
41
  :companies, :people,
@@ -52,8 +52,8 @@ module Oddb2xml
52
52
  @migel = {}
53
53
  @infos_zur_rose = {} # zurrose
54
54
  @actions = []
55
- @orphans = []
56
- @fridges = []
55
+ @orphan = []
56
+ @fridge = []
57
57
  @ean14 = false
58
58
  @companies = []
59
59
  @people = []
@@ -533,7 +533,7 @@ module Oddb2xml
533
533
  #xml.DRGFD
534
534
  #xml.DRGFF
535
535
  obj[:no8] =~ /(\d{5})(\d{3})/
536
- if @orphans.include?($1.to_s)
536
+ if @orphan.include?($1.to_s)
537
537
  xml.ORPH true
538
538
  end
539
539
  #xml.BIOPHA
@@ -820,7 +820,7 @@ module Oddb2xml
820
820
  #xml.GRDFR
821
821
  if no8 and !no8.empty? and
822
822
  no8.to_s =~ /(\d{5})(\d{3})/
823
- xml.COOL 1 if @fridges.include?($1.to_s)
823
+ xml.COOL 1 if @fridge.include?($1.to_s)
824
824
  end
825
825
  #xml.TEMP
826
826
  if ean
@@ -1025,8 +1025,8 @@ module Oddb2xml
1025
1025
  xml.KP('DT' => '') {
1026
1026
  xml.MONID @infos[lang][idx][:monid]
1027
1027
  xml.PRDNO seq[:product_key] unless seq[:product_key].empty?
1028
- # as orphans ?
1029
- xml.DEL @orphans.include?(number) ? true : false
1028
+ # as orphan ?
1029
+ xml.DEL @orphan.include?(number) ? true : false
1030
1030
  }
1031
1031
  }
1032
1032
  end
@@ -1240,7 +1240,7 @@ module Oddb2xml
1240
1240
  '3'
1241
1241
  end
1242
1242
  row << "%#{DAT_LEN[:CLAG]}s" % if ((no8 && no8.to_s =~ /(\d{5})(\d{3})/) and
1243
- @fridges.include?($1.to_s))
1243
+ @fridge.include?($1.to_s))
1244
1244
  '1'
1245
1245
  else
1246
1246
  '0'
data/lib/oddb2xml/cli.rb CHANGED
@@ -30,8 +30,8 @@ module Oddb2xml
30
30
  @infos_zur_rose = {} # [addition] infos_zur_rose and other infos from zurrose transfer.txt
31
31
  @migel = {} # [addition] additional Non Pharma products from files repo
32
32
  @actions = [] # [addition] interactions from epha
33
- @orphans = [] # [addition] Orphaned drugs from Swissmedic xls
34
- @fridges = [] # [addition] ReFridge drugs from Swissmedic xls
33
+ @orphan = [] # [addition] Orphaned drugs from Swissmedic xls
34
+ @fridge = [] # [addition] ReFridge drugs from Swissmedic xls
35
35
  # addres
36
36
  @companies = [] # betrieb
37
37
  @people = [] # medizinalperson
@@ -89,7 +89,6 @@ module Oddb2xml
89
89
  def build
90
90
  Oddb2xml.log("Start build")
91
91
  begin
92
- # require 'pry'; binding.pry
93
92
  @_files = {"calc"=>"oddb_calc.xml"} if @options[:calc] and not @options[:extended]
94
93
  files.each_pair do |sbj, file|
95
94
  builder = Builder.new(@options) do |builder|
@@ -117,7 +116,7 @@ module Oddb2xml
117
116
  builder.infos = @infos
118
117
  builder.packs = @packs
119
118
  # additional sources
120
- %w[actions orphans fridges migel infos_zur_rose].each do |addition|
119
+ %w[actions orphan fridge migel infos_zur_rose].each do |addition|
121
120
  builder.send("#{addition}=".intern, self.instance_variable_get("@#{addition}"))
122
121
  end
123
122
  end
@@ -181,13 +180,13 @@ module Oddb2xml
181
180
  end
182
181
  end
183
182
  when :orphan, :fridge
184
- var = what.to_s + 's'
183
+ var = what.to_s
185
184
  begin # instead of Thread.new do
186
185
  downloader = SwissmedicDownloader.new(what)
187
186
  bin = downloader.download
188
187
  Oddb2xml.log("SwissmedicDownloader #{var} #{bin} #{File.size(bin)} bytes")
189
188
  self.instance_variable_set(
190
- "@#{var}".intern,
189
+ "@#{var}",
191
190
  items = SwissmedicExtractor.new(bin, what).to_arry
192
191
  )
193
192
  Oddb2xml.log("SwissmedicExtractor added #{items.size} #{var}. File #{bin} was #{File.size(bin)} bytes")
@@ -212,17 +212,24 @@ module Oddb2xml
212
212
  case @type
213
213
  when :orphan
214
214
  i = 1
215
+ col_zulassung = 5
216
+ raise "Could not find Zulassungsnummer in column #{col_zulassung} of #{@filename}" unless /Zulassungs.*nummer/.match(@sheet[3][col_zulassung].value)
215
217
  @sheet.each do |row|
216
- next unless row[1]
217
- number = row[1].value.to_i
218
+ next unless row[col_zulassung]
219
+ number = row[col_zulassung].value.to_i
218
220
  if number != 0
219
221
  data << sprintf("%05d", number)
220
222
  end
221
223
  end
222
224
  when :fridge
223
- i,c = 1,7
225
+ row_explanation = 9
226
+ col_zulassung = 0
227
+ col_cool = 12
228
+ explanation = @sheet[row_explanation]
229
+ raise "Could not find Zulassungsnummer in column #{col_zulassung} of #{@filename}" unless /Zul.*Nr/.match(explanation[col_zulassung].value)
230
+ raise "Could not find Kühlkette in column #{col_cool}" unless /Kühlkette/.match(explanation[col_cool].value)
224
231
  @sheet.each do |row|
225
- if row[i] and number = row[i].value and row[c] and row[c].value.to_s.downcase == 'x'
232
+ if row[col_zulassung] and number = row[col_zulassung].value and row[col_cool] and row[col_cool].value.to_s.downcase == 'x'
226
233
  data << sprintf("%05d", number)
227
234
  end
228
235
  end
@@ -272,6 +279,7 @@ module Oddb2xml
272
279
 
273
280
  next if (i <= 1)
274
281
  next unless row and row[i_5] and row[i_3]
282
+ next unless row[i_5].value.to_i > 0 and row[i_3].value.to_i > 0
275
283
  no8 = sprintf('%05d',row[i_5].value.to_i) + sprintf('%03d',row[i_3].value.to_i)
276
284
  prodno = sprintf('%05d',row[i_5].value.to_i) + row[p_1_2].value.to_i.to_s
277
285
  unless no8.empty?
@@ -1,3 +1,3 @@
1
1
  module Oddb2xml
2
- VERSION = "2.2.6"
2
+ VERSION = "2.2.7"
3
3
  end
data/oddb2xml.xsd CHANGED
@@ -54,6 +54,8 @@
54
54
  * Bezeichnung (DE / FR)
55
55
  * QTY Quantity, e.g. 3 Flaschen 5 ml. The EAN13 specified that this package contains 3 bottles. Think of it as
56
56
  as description of volume/size of the content.
57
+ The QTY is present in the oddb_product.xml, but not in the oddb_article.xml
58
+ In oddb_calc.xml you find QTY/UNIT, where QTY is a float and unit something like ml, mg, etc.
57
59
  * ATC
58
60
  * company_name (only for migel)
59
61
  * GLN company_ean, field COMPNO in oddb_article
@@ -124,7 +126,6 @@
124
126
  <xs:element ref="ns1:CDBG"/>
125
127
  <xs:element ref="ns1:BG"/>
126
128
  </xs:sequence>
127
- <xs:element minOccurs="0" ref="ns1:QTY"/>
128
129
  <xs:element ref="ns1:DSCRD"/>
129
130
  <xs:element ref="ns1:DSCRF"/>
130
131
  <xs:element ref="ns1:SORTD"/>