oddb2xml 2.8.1 → 2.8.2
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 +4 -4
- data/.github/workflows/ruby.yml +6 -9
- data/Gemfile.lock +51 -39
- data/lib/oddb2xml/builder.rb +39 -2
- data/lib/oddb2xml/calc.rb +2 -2
- data/lib/oddb2xml/options.rb +1 -0
- data/lib/oddb2xml/version.rb +1 -1
- data/spec/builder_spec.rb +1 -1
- data/spec/options_spec.rb +2 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d4ff8b8b33c1b2c3ea41660576b5f9d116e99640a56098d429e2525138d9c8a1
|
|
4
|
+
data.tar.gz: 7ed3e2d40e97d0631119bd1c1e87f4d1de599939b21a95313487d7664cbc4a05
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0c3ca2d08823ffb6909f86c2b08c72334ff671126a8dcead06ac5872cc2fd17d9f175d0f1b65a28647e13847027215a02365a2d3beecfa7aa1ae8b24a896fd00
|
|
7
|
+
data.tar.gz: 3880524ed3c9602c1f693b4b4d8d52f548c2c4e34561675b5954936de9fd746019fb5287cd46484c9797cf7f874a6ba053d03e4f43d43812c024b97a9f871443
|
data/.github/workflows/ruby.yml
CHANGED
|
@@ -9,7 +9,7 @@ name: Ruby
|
|
|
9
9
|
|
|
10
10
|
on:
|
|
11
11
|
push:
|
|
12
|
-
branches: [ master ]
|
|
12
|
+
branches: [ master, '*' ]
|
|
13
13
|
pull_request:
|
|
14
14
|
branches: [ master ]
|
|
15
15
|
|
|
@@ -21,19 +21,16 @@ jobs:
|
|
|
21
21
|
strategy:
|
|
22
22
|
fail-fast: false
|
|
23
23
|
matrix:
|
|
24
|
-
os: [
|
|
25
|
-
ruby: [
|
|
24
|
+
os: [ubuntu]
|
|
25
|
+
ruby: ["3.0", "3.1", "3.2"]
|
|
26
|
+
env:
|
|
27
|
+
BUNDLE_PATH: ".bundle/gems"
|
|
28
|
+
BUNDLE_WITHOUT: "debugger"
|
|
26
29
|
steps:
|
|
27
30
|
- uses: actions/checkout@v2
|
|
28
31
|
- uses: ruby/setup-ruby@v1
|
|
29
32
|
with:
|
|
30
33
|
ruby-version: ${{ matrix.ruby }}
|
|
31
34
|
bundler-cache: true
|
|
32
|
-
|
|
33
|
-
- name: Install dependencies
|
|
34
|
-
run: |
|
|
35
|
-
bundle config set path .bundle/gems --local
|
|
36
|
-
bundle config set without debugger --local
|
|
37
|
-
bundle install
|
|
38
35
|
- name: Test with RSpec
|
|
39
36
|
run: bundle exec rspec
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
oddb2xml (2.8.
|
|
4
|
+
oddb2xml (2.8.2)
|
|
5
5
|
htmlentities
|
|
6
6
|
httpi
|
|
7
7
|
mechanize
|
|
@@ -25,22 +25,23 @@ PATH
|
|
|
25
25
|
GEM
|
|
26
26
|
remote: https://rubygems.org/
|
|
27
27
|
specs:
|
|
28
|
-
addressable (2.8.
|
|
28
|
+
addressable (2.8.5)
|
|
29
29
|
public_suffix (>= 2.0.2, < 6.0)
|
|
30
30
|
akami (1.3.1)
|
|
31
31
|
gyoku (>= 0.4.0)
|
|
32
32
|
nokogiri
|
|
33
33
|
ast (2.4.2)
|
|
34
|
+
base64 (0.1.1)
|
|
34
35
|
builder (3.2.4)
|
|
35
36
|
byebug (11.1.3)
|
|
36
37
|
coderay (1.1.3)
|
|
37
|
-
connection_pool (2.
|
|
38
|
+
connection_pool (2.4.1)
|
|
38
39
|
crack (0.4.5)
|
|
39
40
|
rexml
|
|
40
41
|
diff-lcs (1.5.0)
|
|
41
42
|
domain_name (0.5.20190701)
|
|
42
43
|
unf (>= 0.0.5, < 1.0.0)
|
|
43
|
-
flexmock (2.3.
|
|
44
|
+
flexmock (2.3.8)
|
|
44
45
|
gyoku (1.4.0)
|
|
45
46
|
builder (>= 2.1.2)
|
|
46
47
|
rexml (~> 3.0)
|
|
@@ -53,6 +54,7 @@ GEM
|
|
|
53
54
|
socksify
|
|
54
55
|
json (2.6.3)
|
|
55
56
|
language_server-protocol (3.17.0.3)
|
|
57
|
+
lint_roller (1.1.0)
|
|
56
58
|
mechanize (2.7.7)
|
|
57
59
|
domain_name (~> 0.5, >= 0.5.1)
|
|
58
60
|
http-cookie (~> 1.0)
|
|
@@ -64,25 +66,26 @@ GEM
|
|
|
64
66
|
webrick (~> 1.7)
|
|
65
67
|
webrobots (>= 0.0.9, < 0.2)
|
|
66
68
|
method_source (1.0.0)
|
|
67
|
-
mime-types (3.
|
|
69
|
+
mime-types (3.5.1)
|
|
68
70
|
mime-types-data (~> 3.2015)
|
|
69
|
-
mime-types-data (3.
|
|
70
|
-
mini_portile2 (2.8.
|
|
71
|
+
mime-types-data (3.2023.0808)
|
|
72
|
+
mini_portile2 (2.8.4)
|
|
71
73
|
minitar (0.9)
|
|
72
74
|
multi_json (1.15.0)
|
|
73
75
|
net-http-digest_auth (1.4.1)
|
|
74
|
-
net-http-persistent (4.0.
|
|
76
|
+
net-http-persistent (4.0.2)
|
|
75
77
|
connection_pool (~> 2.2)
|
|
76
78
|
nokogiri (1.13.9)
|
|
77
79
|
mini_portile2 (~> 2.8.0)
|
|
78
80
|
racc (~> 1.4)
|
|
79
81
|
nori (2.6.0)
|
|
80
82
|
ntlm-http (0.1.1)
|
|
81
|
-
optimist (3.0
|
|
82
|
-
ox (2.14.
|
|
83
|
-
parallel (1.
|
|
84
|
-
parser (3.2.
|
|
83
|
+
optimist (3.1.0)
|
|
84
|
+
ox (2.14.17)
|
|
85
|
+
parallel (1.23.0)
|
|
86
|
+
parser (3.2.2.3)
|
|
85
87
|
ast (~> 2.4.1)
|
|
88
|
+
racc
|
|
86
89
|
parslet (2.0.0)
|
|
87
90
|
pry (0.14.2)
|
|
88
91
|
coderay (~> 1.1)
|
|
@@ -94,44 +97,46 @@ GEM
|
|
|
94
97
|
pry (~> 0.11)
|
|
95
98
|
yard (~> 0.9.11)
|
|
96
99
|
psych (3.3.4)
|
|
97
|
-
public_suffix (5.0.
|
|
98
|
-
racc (1.
|
|
100
|
+
public_suffix (5.0.3)
|
|
101
|
+
racc (1.7.1)
|
|
99
102
|
rack (3.0.8)
|
|
100
103
|
rainbow (3.1.1)
|
|
101
104
|
rake (13.0.6)
|
|
102
105
|
rdoc (6.3.3)
|
|
103
|
-
regexp_parser (2.
|
|
104
|
-
rexml (3.2.
|
|
106
|
+
regexp_parser (2.8.1)
|
|
107
|
+
rexml (3.2.6)
|
|
105
108
|
rspec (3.12.0)
|
|
106
109
|
rspec-core (~> 3.12.0)
|
|
107
110
|
rspec-expectations (~> 3.12.0)
|
|
108
111
|
rspec-mocks (~> 3.12.0)
|
|
109
|
-
rspec-core (3.12.
|
|
112
|
+
rspec-core (3.12.2)
|
|
110
113
|
rspec-support (~> 3.12.0)
|
|
111
|
-
rspec-expectations (3.12.
|
|
114
|
+
rspec-expectations (3.12.3)
|
|
112
115
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
113
116
|
rspec-support (~> 3.12.0)
|
|
114
|
-
rspec-mocks (3.12.
|
|
117
|
+
rspec-mocks (3.12.6)
|
|
115
118
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
116
119
|
rspec-support (~> 3.12.0)
|
|
117
|
-
rspec-support (3.12.
|
|
118
|
-
rubocop (1.
|
|
120
|
+
rspec-support (3.12.1)
|
|
121
|
+
rubocop (1.56.4)
|
|
122
|
+
base64 (~> 0.1.1)
|
|
119
123
|
json (~> 2.3)
|
|
124
|
+
language_server-protocol (>= 3.17.0)
|
|
120
125
|
parallel (~> 1.10)
|
|
121
|
-
parser (>= 3.
|
|
126
|
+
parser (>= 3.2.2.3)
|
|
122
127
|
rainbow (>= 2.2.2, < 4.0)
|
|
123
128
|
regexp_parser (>= 1.8, < 3.0)
|
|
124
129
|
rexml (>= 3.2.5, < 4.0)
|
|
125
|
-
rubocop-ast (>= 1.
|
|
130
|
+
rubocop-ast (>= 1.28.1, < 2.0)
|
|
126
131
|
ruby-progressbar (~> 1.7)
|
|
127
|
-
unicode-display_width (>=
|
|
128
|
-
rubocop-ast (1.
|
|
129
|
-
parser (>= 3.
|
|
130
|
-
rubocop-performance (1.
|
|
132
|
+
unicode-display_width (>= 2.4.0, < 3.0)
|
|
133
|
+
rubocop-ast (1.29.0)
|
|
134
|
+
parser (>= 3.2.1.0)
|
|
135
|
+
rubocop-performance (1.19.1)
|
|
131
136
|
rubocop (>= 1.7.0, < 2.0)
|
|
132
137
|
rubocop-ast (>= 0.4.0)
|
|
133
138
|
ruby-ole (1.2.12.2)
|
|
134
|
-
ruby-progressbar (1.
|
|
139
|
+
ruby-progressbar (1.13.0)
|
|
135
140
|
rubyXL (3.4.25)
|
|
136
141
|
nokogiri (>= 1.10.8)
|
|
137
142
|
rubyzip (>= 1.3.0)
|
|
@@ -149,32 +154,39 @@ GEM
|
|
|
149
154
|
socksify (1.7.1)
|
|
150
155
|
spreadsheet (1.3.0)
|
|
151
156
|
ruby-ole
|
|
152
|
-
standard (1.
|
|
157
|
+
standard (1.31.1)
|
|
153
158
|
language_server-protocol (~> 3.17.0.2)
|
|
154
|
-
|
|
155
|
-
rubocop
|
|
159
|
+
lint_roller (~> 1.0)
|
|
160
|
+
rubocop (~> 1.56.2)
|
|
161
|
+
standard-custom (~> 1.0.0)
|
|
162
|
+
standard-performance (~> 1.2)
|
|
163
|
+
standard-custom (1.0.2)
|
|
164
|
+
lint_roller (~> 1.0)
|
|
165
|
+
rubocop (~> 1.50)
|
|
166
|
+
standard-performance (1.2.0)
|
|
167
|
+
lint_roller (~> 1.1)
|
|
168
|
+
rubocop-performance (~> 1.19.0)
|
|
156
169
|
standardrb (1.0.1)
|
|
157
170
|
standard
|
|
158
|
-
timecop (0.9.
|
|
171
|
+
timecop (0.9.8)
|
|
159
172
|
unf (0.1.4)
|
|
160
173
|
unf_ext
|
|
161
174
|
unf_ext (0.0.8.2)
|
|
162
|
-
unicode-display_width (2.
|
|
163
|
-
vcr (6.
|
|
175
|
+
unicode-display_width (2.5.0)
|
|
176
|
+
vcr (6.2.0)
|
|
164
177
|
wasabi (3.7.0)
|
|
165
178
|
addressable
|
|
166
179
|
httpi (~> 2.0)
|
|
167
180
|
nokogiri (>= 1.4.2)
|
|
168
|
-
webmock (3.
|
|
181
|
+
webmock (3.19.1)
|
|
169
182
|
addressable (>= 2.8.0)
|
|
170
183
|
crack (>= 0.3.2)
|
|
171
184
|
hashdiff (>= 0.4.0, < 2.0.0)
|
|
172
|
-
webrick (1.
|
|
185
|
+
webrick (1.8.1)
|
|
173
186
|
webrobots (0.1.2)
|
|
174
187
|
xml-simple (1.1.9)
|
|
175
188
|
rexml
|
|
176
|
-
yard (0.9.
|
|
177
|
-
webrick (~> 1.7.0)
|
|
189
|
+
yard (0.9.34)
|
|
178
190
|
|
|
179
191
|
PLATFORMS
|
|
180
192
|
ruby
|
|
@@ -195,4 +207,4 @@ DEPENDENCIES
|
|
|
195
207
|
webmock
|
|
196
208
|
|
|
197
209
|
BUNDLED WITH
|
|
198
|
-
2.3.
|
|
210
|
+
2.3.24
|
data/lib/oddb2xml/builder.rb
CHANGED
|
@@ -545,15 +545,50 @@ module Oddb2xml
|
|
|
545
545
|
Oddb2xml.log "build_product add_missing_products_from_swissmedic. Added #{corrected_size - size_old} corrected_size #{corrected_size} size_old #{size_old} ean13_to_product."
|
|
546
546
|
end
|
|
547
547
|
|
|
548
|
+
def add_products_from_bag_preparations(add_to_products = false)
|
|
549
|
+
Oddb2xml.log "build_product add_products_from_bag_preparations. Starting with #{@products.size} products and #{@items.size} @items"
|
|
550
|
+
ean13_to_product = {}
|
|
551
|
+
@products.each { |ean13, obj|
|
|
552
|
+
ean13_to_product[ean13] = obj
|
|
553
|
+
obj[:pharmacode] ||= @refdata[ean13][:pharmacode] if @refdata[ean13]
|
|
554
|
+
}
|
|
555
|
+
size_old = ean13_to_product.size
|
|
556
|
+
Oddb2xml.log "build_product add_products_from_bag_preparations. Imported #{size_old} ean13_to_product from @products. Checking #{@items.size} @items"
|
|
557
|
+
@items.each do |ean13, item|
|
|
558
|
+
next if @products[ean13]
|
|
559
|
+
if add_to_products
|
|
560
|
+
@products[ean13] = {
|
|
561
|
+
seq: item,
|
|
562
|
+
pac: nil,
|
|
563
|
+
sequence_name: "",
|
|
564
|
+
desc_de: "#{item[:name_de]}, #{item[:desc_de]}, #{item[:packages][ean13][:desc_de]}",
|
|
565
|
+
desc_fr: "#{item[:name_fr]}, #{item[:desc_fr]}, #{item[:packages][ean13][:desc_fr]}",
|
|
566
|
+
no8: "",
|
|
567
|
+
ean13: ean13,
|
|
568
|
+
atc: item[:atc_code],
|
|
569
|
+
ith: "",
|
|
570
|
+
siz: "",
|
|
571
|
+
eht: "",
|
|
572
|
+
sub: "",
|
|
573
|
+
comp: "",
|
|
574
|
+
drug_index: ""
|
|
575
|
+
}
|
|
576
|
+
end
|
|
577
|
+
ean13_to_product[ean13] = item
|
|
578
|
+
end
|
|
579
|
+
corrected_size = ean13_to_product.size
|
|
580
|
+
Oddb2xml.log "build_product add_products_from_bag_preparations. Added #{corrected_size - size_old} corrected_size #{corrected_size} size_old #{size_old} ean13_to_product."
|
|
581
|
+
end
|
|
582
|
+
|
|
548
583
|
def build_product
|
|
549
584
|
self.class.class_eval do
|
|
550
585
|
def check_name(obj, lang = :de)
|
|
551
586
|
ean = obj[:ean13]
|
|
552
587
|
refdata = @refdata[ean]
|
|
553
588
|
if lang == :de
|
|
554
|
-
name = refdata && refdata[:desc_de] ? refdata[:desc_de] : obj[:sequence_name]
|
|
589
|
+
name = refdata && refdata[:desc_de] ? refdata[:desc_de] : (obj[:desc_de] || obj[:sequence_name])
|
|
555
590
|
elsif lang == :fr
|
|
556
|
-
name = refdata && refdata[:desc_fr] ? refdata[:desc_fr] : obj[:sequence_name]
|
|
591
|
+
name = refdata && refdata[:desc_fr] ? refdata[:desc_fr] : (obj[:desc_fr] || obj[:sequence_name])
|
|
557
592
|
elsif lang == :it
|
|
558
593
|
name = refdata[:desc_it] if refdata && refdata[:desc_it]
|
|
559
594
|
else
|
|
@@ -568,6 +603,7 @@ module Oddb2xml
|
|
|
568
603
|
prepare_interactions
|
|
569
604
|
prepare_codes
|
|
570
605
|
add_missing_products_from_swissmedic
|
|
606
|
+
add_products_from_bag_preparations(true)
|
|
571
607
|
nbr_products = 0
|
|
572
608
|
Oddb2xml.log "build_product #{@products.size + @missing.size} products"
|
|
573
609
|
a_builder = Nokogiri::XML::Builder.new(encoding: "utf-8") do |xml|
|
|
@@ -1722,6 +1758,7 @@ module Oddb2xml
|
|
|
1722
1758
|
prepare_articles
|
|
1723
1759
|
prepare_products
|
|
1724
1760
|
add_missing_products_from_swissmedic(true)
|
|
1761
|
+
add_products_from_bag_preparations(true)
|
|
1725
1762
|
prepare_calc_items(suppress_composition_parsing: true)
|
|
1726
1763
|
@prepared = true
|
|
1727
1764
|
@old_rose_size = @infos_zur_rose.size
|
data/lib/oddb2xml/calc.rb
CHANGED
|
@@ -95,8 +95,8 @@ module Oddb2xml
|
|
|
95
95
|
UNKNOWN_GALENIC_FORM = 140
|
|
96
96
|
UNKNOWN_GALENIC_GROUP = 1
|
|
97
97
|
DATA_DIR = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "data"))
|
|
98
|
-
@@galenic_groups = YAML.
|
|
99
|
-
@@galenic_forms = YAML.
|
|
98
|
+
@@galenic_groups = YAML.safe_load_file(File.join(DATA_DIR, "gal_groups.yaml"), permitted_classes: [ Oddb2xml::GalenicForm, Oddb2xml::GalenicGroup, Symbol])
|
|
99
|
+
@@galenic_forms = YAML.safe_load_file(File.join(DATA_DIR, "gal_forms.yaml"), permitted_classes: [ Oddb2xml::GalenicForm, Oddb2xml::GalenicGroup, Symbol])
|
|
100
100
|
@@new_galenic_forms = []
|
|
101
101
|
@@names_without_galenic_forms = []
|
|
102
102
|
@@rules_counter = {}
|
data/lib/oddb2xml/options.rb
CHANGED
data/lib/oddb2xml/version.rb
CHANGED
data/spec/builder_spec.rb
CHANGED
|
@@ -458,7 +458,7 @@ NR_LIMITATIONS = 15
|
|
|
458
458
|
NR_INTERACTIONS = 2
|
|
459
459
|
NR_CODES = 5
|
|
460
460
|
NR_PRODNO = 31
|
|
461
|
-
NR_PACKAGES =
|
|
461
|
+
NR_PACKAGES = 61
|
|
462
462
|
NR_PRODUCTS = 40
|
|
463
463
|
REG_EXP_DESITIN = /1120000000LEVETIRACETAM DESITIN Mini Filmtab 250 mg 30 Stk/
|
|
464
464
|
describe Oddb2xml::Builder do
|
data/spec/options_spec.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: oddb2xml
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.8.
|
|
4
|
+
version: 2.8.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Yasuhiro Asaka, Zeno R.R. Davatz, Niklaus Giger
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-
|
|
11
|
+
date: 2023-11-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rubyzip
|