oddb2xml 1.9.5 → 1.9.6
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/Gemfile.lock +2 -2
- data/History.txt +4 -0
- data/lib/oddb2xml/builder.rb +47 -4
- data/lib/oddb2xml/util.rb +1 -1
- data/lib/oddb2xml/version.rb +1 -1
- data/spec/builder_spec.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 01fd7337753234518adea6438bb4d82670b5cb37
|
4
|
+
data.tar.gz: 8ee70f060cd40e4503b45989527336f07c8a9dfe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 73a517563d9e338e2d0781ee13965596aaf8f559cc0b049d9a325d51c4186ee637f7b08cf4c876922488169184bf27a15a0c481072038e59e1f8aaafb0a41161
|
7
|
+
data.tar.gz: 01a5e728ca3be8f21d6ec0d2546b23bd9551860494019f0abf9610373cceb526eac1e4860bcae79f7cba526fe6c2fb7d28d47ee5599c3ee89502dc46ee0367c3
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
oddb2xml (1.9.
|
4
|
+
oddb2xml (1.9.6)
|
5
5
|
archive-tar-minitar (~> 0.5.2)
|
6
6
|
mechanize (~> 2.5.1)
|
7
7
|
nokogiri (~> 1.5.10)
|
@@ -56,7 +56,7 @@ GEM
|
|
56
56
|
coderay (~> 1.1.0)
|
57
57
|
method_source (~> 0.8.1)
|
58
58
|
slop (~> 3.4)
|
59
|
-
pry-byebug (3.0.
|
59
|
+
pry-byebug (3.0.1)
|
60
60
|
byebug (~> 3.4)
|
61
61
|
pry (~> 0.10)
|
62
62
|
rack (1.6.0)
|
data/History.txt
CHANGED
data/lib/oddb2xml/builder.rb
CHANGED
@@ -437,18 +437,61 @@ module Oddb2xml
|
|
437
437
|
end
|
438
438
|
_builder.to_xml
|
439
439
|
end
|
440
|
+
def add_missing_products_from_swissmedic
|
441
|
+
Oddb2xml.log "build_product add_missing_products_from_swissmedic. Starting"
|
442
|
+
ean13_to_product = {}
|
443
|
+
@products.each{
|
444
|
+
|obj|
|
445
|
+
ean13_to_product[obj[:ean].to_s] = obj
|
446
|
+
}
|
447
|
+
ausgabe = File.open(File.join(WorkDir, 'missing_in_refdata.txt'), 'w+')
|
448
|
+
size_old = ean13_to_product.size
|
449
|
+
@missing = []
|
450
|
+
Oddb2xml.log "build_product add_missing_products_from_swissmedic. Imported #{size_old} ean13_to_product from @products. Checking #{@packs.size} @packs"
|
451
|
+
@packs.each_with_index {
|
452
|
+
|de_idx, i|
|
453
|
+
next if ean13_to_product[de_idx[1][:ean]]
|
454
|
+
list_code = de_idx[1][:list_code]
|
455
|
+
next if list_code and /Tierarzneimittel/.match(list_code)
|
456
|
+
ean13_to_product[de_idx[1][:ean].to_s] = de_idx[1]
|
457
|
+
@missing << de_idx[1]
|
458
|
+
ausgabe.puts "#{de_idx[1][:ean]},#{de_idx[1][:sequence_name]}"
|
459
|
+
}
|
460
|
+
corrected_size = ean13_to_product.size
|
461
|
+
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."
|
462
|
+
end
|
463
|
+
|
440
464
|
def build_product
|
441
465
|
prepare_substances
|
442
466
|
prepare_products
|
443
467
|
prepare_interactions
|
444
468
|
prepare_codes
|
445
|
-
|
469
|
+
add_missing_products_from_swissmedic
|
470
|
+
Oddb2xml.log "build_product #{@products.size+@missing.size} products"
|
446
471
|
_builder = Nokogiri::XML::Builder.new(:encoding => 'utf-8') do |xml|
|
447
472
|
xml.doc.tag_suffix = @tag_suffix
|
448
473
|
datetime = Time.new.strftime('%FT%T%z')
|
449
474
|
xml.PRODUCT(XML_OPTIONS) {
|
450
475
|
list = []
|
451
476
|
length = 0
|
477
|
+
@missing.each do |obj|
|
478
|
+
next if /^Q/i.match(obj[:atc])
|
479
|
+
length += 1
|
480
|
+
xml.PRD('DT' => '') {
|
481
|
+
ean = obj[:ean].to_s
|
482
|
+
xml.GTIN ean
|
483
|
+
xml.PRODNO obj[:prodno] if obj[:prodno] and obj[:prodno].empty?
|
484
|
+
xml.DSCRD obj[:sequence_name] if obj[:sequence_name]
|
485
|
+
xml.DSCRF obj[:sequence_name] if obj[:sequence_name]
|
486
|
+
xml.ATC obj[:atc_code] if obj[:atc_code]
|
487
|
+
xml.IT obj[:ith_swissmedic] if obj[:ith_swissmedic]
|
488
|
+
xml.CPT
|
489
|
+
xml.PackGrSwissmedic obj[:package_size] if obj[:package_size]
|
490
|
+
xml.EinheitSwissmedic obj[:einheit_swissmedic] if obj[:einheit_swissmedic]
|
491
|
+
xml.SubstanceSwissmedic obj[:substance_swissmedic] if obj[:substance_swissmedic]
|
492
|
+
xml.CompositionSwissmedic obj[:composition_swissmedic] if obj[:composition_swissmedic]
|
493
|
+
}
|
494
|
+
end
|
452
495
|
@products.each do |obj|
|
453
496
|
next if /^Q/i.match(obj[:atc])
|
454
497
|
seq = obj[:seq]
|
@@ -463,7 +506,6 @@ module Oddb2xml
|
|
463
506
|
xml.PRODNO ppac[:prodno] if ppac[:prodno] and !ppac[:prodno].empty?
|
464
507
|
if seq
|
465
508
|
%w[de fr].each do |l|
|
466
|
-
|
467
509
|
name = "name_#{l}".intern
|
468
510
|
desc = "desc_#{l}".intern
|
469
511
|
elem = "DSCR" + l[0].chr.upcase
|
@@ -654,7 +696,6 @@ module Oddb2xml
|
|
654
696
|
def build_article
|
655
697
|
prepare_limitations
|
656
698
|
prepare_articles
|
657
|
-
|
658
699
|
idx = 0
|
659
700
|
Oddb2xml.log "build_article #{idx} of #{@articles.size} articles"
|
660
701
|
_builder = Nokogiri::XML::Builder.new(:encoding => 'utf-8') do |xml|
|
@@ -669,9 +710,11 @@ module Oddb2xml
|
|
669
710
|
pac,no8 = nil,de_idx[:ean][4..11] # BAG-XML(SL/LS)
|
670
711
|
pack_info = nil
|
671
712
|
pack_info = @packs[no8.intern] if no8 # info from Packungen.xlsx from swissmedic_info
|
672
|
-
next if pack_info and pack_info[:list_code].match(/Tierarzneimittel/) if no8 and no8.match(/47066/)
|
673
713
|
ppac = nil # Packungen
|
674
714
|
ean = de_idx[:ean]
|
715
|
+
next if pack_info and /Tierarzneimittel/.match(pack_info[:list_code])
|
716
|
+
next if de_idx[:desc] and /ad us vet/i.match(de_idx[:desc])
|
717
|
+
|
675
718
|
pharma_code = de_idx[:pharmacode]
|
676
719
|
ean = nil if ean.match(/^000000/)
|
677
720
|
if obj[:seq]
|
data/lib/oddb2xml/util.rb
CHANGED
data/lib/oddb2xml/version.rb
CHANGED
data/spec/builder_spec.rb
CHANGED
@@ -402,8 +402,8 @@ describe Oddb2xml::Builder do
|
|
402
402
|
product_xml.should_not match(/ZYVOXID/i)
|
403
403
|
end
|
404
404
|
doc = REXML::Document.new File.new(product_filename)
|
405
|
-
XPath.match( doc, "//PRD" ).find_all{|x| true}.size.should ==
|
406
|
-
XPath.match( doc, "//GTIN" ).find_all{|x| true}.size.should ==
|
405
|
+
XPath.match( doc, "//PRD" ).find_all{|x| true}.size.should == 17
|
406
|
+
XPath.match( doc, "//GTIN" ).find_all{|x| true}.size.should == 17
|
407
407
|
XPath.match( doc, "//PRODNO" ).find_all{|x| true}.size.should == 1
|
408
408
|
end
|
409
409
|
|
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: 1.9.
|
4
|
+
version: 1.9.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yasuhiro Asaka, Zeno R.R. Davatz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|