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
         
     |