<< | Index | >>
Confirm the current test passing
test/test_plugin/bsv_xml.rb
    def test_update_preparation__update_only_SB_flag
      # prepare the same entry with load data, @src
      package = setup_package :pharmacode => "987654",
                              :steps => %w{39271 02 028},
                              :price_public => Util::Money.new(2.9),
                              :price_exfactory => Util::Money.new(7.5)
      #                        :generic_type => :original,
      #                        :index_therapeuticus => '07.10.10.' 
      package.should_receive(:deductible).and_return(:deductible_g)
      reg = setup_registration :iksnr => '39271', :package => package
      reg.should_receive(:packages).and_return []
      package.should_receive(:registration).and_return reg
      flexmock(Package).should_receive(:find_by_pharmacode).
                        times(1).and_return nil
      setup_meddata_server :ean13 => '7680392710281'
      @app.should_receive(:registration).and_return reg
      @app.should_receive(:each_package)
      expected_updates = {}
      ptr = Persistence::Pointer.new [:registration, '39271']
      expected_updates.store ptr, { :generic_type => :original,
                              :index_therapeuticus => '07.10.10.'}
#      expected_updates.store ptr, {}
      expected_pointer = ptr
#      ptr += [:sequence, '02']
#      pac_pointer = ptr += [:package, '028']
      @app.should_receive(:update).and_return do |pointer, update_data|
        assert_equal expected_pointer, pointer
        assert_equal expected_updates[pointer], update_data
      end
      @plugin.update_preparations StringIO.new(@sb_flag_src)
end
masa@masa ~/ywesee/oddb.org $ ruby test/test_plugin/bsv_xml.rb Loaded suite test/test_plugin/bsv_xml Started "getin in tag_end#Pack" . Finished in 0.029834 seconds. 1 tests, 3 assertions, 0 failures, 0 errors
Notes
Experiment
test/test_plugin/bsv_xml.rb
    def test_update_preparation__update_only_SB_flag
      # prepare the same entry with load data, @src
      ## set up an package instance in the cache (@app)
      price_exfactory = Util::Money.new(2.9, 'exfactory', 'CH')
      price_exfactory.mutation_code="NORMAL"
      price_exfactory.origin=
          "http://bag.e-mediat.net/SL2007.Web.External/File.axd?file=XMLPublications.zip (11.01.2011)"
      price_exfactory.valid_from = Time.local(2006,8,1)
      price_exfactory.authority = :sl
      price_public = Util::Money.new(7.5, 'public', 'CH')
      price_public.mutation_code="NORMAL"
      price_public.origin=
          "http://bag.e-mediat.net/SL2007.Web.External/File.axd?file=XMLPublications.zip (11.01.2011)"
      price_public.valid_from = Time.local(2006,8,1)
      price_public.authority = :sl
      #package = setup_package :pharmacode => "987654",
      package = setup_package :pharmacode => "703279",
                              :steps => %w{39271 02 028},
                              :price_public => price_public,
                              :price_exfactory => price_exfactory
                              #:sl_generic_type => :original,
      package.should_receive(:deductible).and_return(:deductible_o)
      package.should_receive(:deductible).and_return(:deductible_o)
      ## set up an registration on the cache
      reg = setup_registration :iksnr => '39271', :package => package,
                              :generic_type => :original,
                              :index_therapeuticus => '07.10.10.',
      reg.should_receive(:packages).and_return []
      reg.should_receive(:sequence).and_return do
        flexmock('seq') do |seq|
          seq.should_receive(:package)
        end
      end
      package.should_receive(:registration).and_return reg
      flexmock(Package).should_receive(:find_by_pharmacode).
                        times(1).and_return nil
                        #times(1).and_return package
      setup_meddata_server :ean13 => '7680392710281'
      ## set the registration to the cache
      @app.should_receive(:registration).and_return reg
      @app.should_receive(:each_package)
      ## preparation of expected result
      expected_updates = {}
      ptr = Persistence::Pointer.new [:registration, '39271']
      reg_pointer = ptr
      seq_pointer = ptr += [:sequence, '02']
      pac_pointer = ptr += [:package, '028']
      expected_pointer = pac_pointer
      expected_updates.store ptr, {
            :sl_generic_type => :original,
            :pharmacode => "703279",
            :narcotic => false,
            :deductible => :deductible_g,
            :price_public => price_public,
            :price_exfactory => price_exfactory
      }
counter = 0
      @app.should_receive(:update).and_return do |pointer, update_data|
counter += 1
print "counter=", counter, "\n"
        if counter == 1 # update sequence
          assert_equal seq_pointer, pointer
          assert_equal({:atc_class=>"M01AG01"}, update_data)
        elsif counter == 2 # update package
          assert_equal expected_pointer, pointer
          assert_equal expected_updates[pointer], update_data
        elsif counter == 3 # update registration
          assert_equal reg_pointer, pointer
          assert_equal({:index_therapeuticus=>"07.10.10.", :generic_type=>:original}, update_data)
        end
      end
      @plugin.update_preparations StringIO.new(@sb_flag_src)
Result
masa@masa ~/ywesee/oddb.org $ ruby test/test_plugin/bsv_xml.rb Loaded suite test/test_plugin/bsv_xml Started counter=1 counter=2 counter=3 . Finished in 0.032388 seconds. 1 tests, 7 assertions, 0 failures, 0 errors
Note
Consideration
Next
Reference
Next
            if !@pcode.empty? && @pack && @pack.pharmacode \
              && @pack.pharmacode != @pcode && @pack.pharmacode.to_i != 0
              @report.store :pharmacode_oddb, @pack.pharmacode
              @conflict = true
            end
Note
Check test-cases
masa@masa ~/ywesee/oddb.org $ ruby test/test_plugin/bsv_xml.rb Loaded suite test/test_plugin/bsv_xml Started ......... Finished in 0.144679 seconds. 9 tests, 71 assertions, 0 failures, 0 errors
Note
Run
Run update_bsv (with the latest XMLPublications.zip)
masa@masa ~/ywesee/oddb.org $ bin/admin ch.oddb> Updater.new(self).update_bsv
Result
Created SL-Entries 92 Updated SL-Entries 8364 Deleted SL-Entries 6 Created Limitation-Texts 16 Updated Limitation-Texts 1286 Deleted Limitation-Texts 0 Duplicate Registrations in SL 11.01.2011 0 Package-Data was completed from SL 0 SMeX/SL-Differences (Registrations) 11.01.2011 0 Critical Pharmacodes BAG-XML 11.01.2011 26 Missing Swissmedic-Codes in SL 11.01.2011 0 Missing Pharmacodes in SL 11.01.2011 268 Missing Swissmedic-Codes in SL (out of trade) 11.01.2011 37 Unknown Packages in SL 11.01.2011 29 Unknown Registrations in SL 11.01.2011 1 Unknown Packages in SL (out of trade) 11.01.2011 92 Packungen in der ODDB Total: 23259 Packungen ohne Pharmacode: 8625 - ausser Handel: 7790 - inaktive Registration: 671 - noch nicht auf MedWin: 164
Before


After


Commit
Reference
Notes
Check the package by the following website (for example, 'Thallous chloride')
Resolve
Result