view · edit · sidebar · attach · print · history

20110603-fix-active_agents-testcases-view-activeagent-suggest_address-narcotics-ch_oddb

<< | Index | >>


  1. What is problem
  2. Correct active agents
  3. Testcases ch.oddb

Goal/Estimate/Evaluation
  • Debug update_swissmedic or create a updating admin command / 80%
Milestones
Summary
Commits

What is problem

Email

Point

  • Some product names are missing
  • Some product does not have active agents

Correct active agents

Experiment (confirm bin/admin)

masa@masa ~/ywesee/oddb.org $ bin/admin
ch.oddb> registrations.values.select{|r| r.iksnr == '56833'}[0].sequences.values.select{|s| s.seqnr == '23'}[0].active_agents.join(",")
-> Extractum Aquosum Liquidum Fermentatum 0.05 mg,Natrii Chloridum,Argenti Carbonas 0.1 ug,Ex Viscum Album (Quercus) Recens 0.01 mg

Trace swissmedic plugin

Experiment (src/util/updater.rb)

    def update_swissmedic_fix_compositions(*args)
      logs_pointer = Persistence::Pointer.new([:log_group, :swissmedic])
      logs = @app.create(logs_pointer)
      klass = SwissmedicPlugin
      plug = klass.new(@app)
      return_value_plug_update = nil
      wrap_update(klass, "swissmedic") {
        if(plug.fix_compositions(*args))
          month = @@today << 1
          pointer = logs.pointer + [:log, Date.new(month.year, month.month)]
          log = @app.update(pointer.creator, log_info(plug))
          log.notify('Swissmedic XLS fix compositions')
        end
      }
    end

Run

masa@masa ~/ywesee/oddb.org $ bin/admin
ch.oddb> Updater.new(self).update_swissmedic_fix_compositions

Result

Plugin: ODDB::SwissmedicPlugin
Error: NoMethodError
Message: undefined method `news' for nil:NilClass
Backtrace:
/home/masa/ywesee/oddb.org/src/plugin/swissmedic.rb:294:in `report'
/home/masa/ywesee/oddb.org/src/plugin/plugin.rb:51:in `send'
/home/masa/ywesee/oddb.org/src/plugin/plugin.rb:51:in `log_info'
/usr/lib64/ruby/site_ruby/1.8/odba/cache_entry.rb:33:in `inject'
/home/masa/ywesee/oddb.org/src/plugin/plugin.rb:50:in `each'
/home/masa/ywesee/oddb.org/src/plugin/plugin.rb:50:in `inject'
/home/masa/ywesee/oddb.org/src/plugin/plugin.rb:50:in `log_info'
/home/masa/ywesee/oddb.org/src/util/updater.rb:131:in `send'
/home/masa/ywesee/oddb.org/src/util/updater.rb:131:in `log_info'
/home/masa/ywesee/oddb.org/src/util/updater.rb:365:in `update_swissmedic_fix_compositions'
/home/masa/ywesee/oddb.org/src/util/updater.rb:488:in `call'
/home/masa/ywesee/oddb.org/src/util/updater.rb:488:in `wrap_update'
/home/masa/ywesee/oddb.org/src/util/updater.rb:361:in `update_swissmedic_fix_compositions'
(eval):1:in `_admin'
/home/masa/ywesee/oddb.org/src/util/failsafe.rb:9:in `call'
/home/masa/ywesee/oddb.org/src/util/failsafe.rb:9:in `failsafe'
/home/masa/ywesee/oddb.org/src/util/oddbapp.rb:1426:in `_admin'
/home/masa/ywesee/oddb.org/src/util/oddbapp.rb:1424:in `initialize'
/home/masa/ywesee/oddb.org/src/util/oddbapp.rb:1424:in `new'
/home/masa/ywesee/oddb.org/src/util/oddbapp.rb:1424:in `_admin'
/usr/lib64/ruby/1.8/drb/drb.rb:1555:in `__send__'
/usr/lib64/ruby/1.8/drb/drb.rb:1555:in `perform_without_block'
/usr/lib64/ruby/1.8/drb/drb.rb:1515:in `perform'
/usr/lib64/ruby/1.8/drb/drb.rb:1589:in `main_loop'
/usr/lib64/ruby/1.8/drb/drb.rb:1585:in `loop'
/usr/lib64/ruby/1.8/drb/drb.rb:1585:in `main_loop'
/usr/lib64/ruby/1.8/drb/drb.rb:1581:in `start'
/usr/lib64/ruby/1.8/drb/drb.rb:1581:in `main_loop'
/usr/lib64/ruby/1.8/drb/drb.rb:1430:in `run'
/usr/lib64/ruby/1.8/drb/drb.rb:1427:in `start'
/usr/lib64/ruby/1.8/drb/drb.rb:1427:in `run'
/usr/lib64/ruby/1.8/drb/drb.rb:1347:in `initialize'
/usr/lib64/ruby/1.8/drb/drb.rb:1627:in `new'
/usr/lib64/ruby/1.8/drb/drb.rb:1627:in `start_service'
bin/oddbd:38

Note

  • This error comes from the part of reporting
  • It seems that the updating succeeds

Resul

xls data

"Zulassungs-Nummer";"Sequenz";"Sequenzname";...;"Wirkstoff";"Zusammensetzung";...

"56833";1;"Iscador Qu 0,0001 mg, Injektionslösung, anthroposophisches Arzneimittel";...;"viscum album (quercus) recens";"extractum aquosum liquidum fermentatum 0.0005 mg ex viscum album (quercus) recens 0.0001 mg, natrii chloridum, aqua q.s. ad solutionem pro 1 ml.";...

Before

After

Check the part of updating sequence name (src/plugin/swissmedic.rb#update_sequence)

    def update_sequence(registration, row, opts={:create_only => false})
...
      ## some names use commas for dosage
      parts = cell(row, column(:name_base)).split(/\s*,(?!\d|[^(]+\))\s*/u)
      descr = parts.pop
      ## some names have dosage data after the galenic form
      if /[\d\s][m]?[glL]\b/.match(descr) && parts.size > 1
        descr = parts.pop << ', ' << descr
      end
      base = parts.join(', ')
      base, descr = descr, nil if base.empty?

Experiment

masa@masa ~/ywesee/oddb.org $ bin/admin
ch.oddb> ODDB::SwissmedicPlugin.new(self).fix_compositions

Result

  • Looks no problem as well

Testcases ch.oddb

  1. src/view/admin/activeagent.rb (coverage: 100%)
  2. src/view/suggest_address.rb (coverage: 100%)
  3. src/view/drugs/narcotics.rb (coverage: 100%)
  4. src/util/soundex.rb (coverage: 78.85%)
  5. src/view/drugs/feedbacks.rb (coverage: 88.46%)

Commit

view · edit · sidebar · attach · print · history
Page last modified on June 07, 2011, at 03:50 PM