view · edit · sidebar · attach · print · history

20121227-update-oddb2xml-limitation-xml

<< | Index | >>


Summary

  • Updated oddb2xml
    • added limitation.xml output
    • updated to use Savon-2.0.
  • Debug ODBA cach cleaning
    • Update invoicer plugin.
  • Updated Just-Medical LF.
    • Removed galenic_form column from result list.

Commits

oddb2xml
ch.oddb.org

Index


Create oddb2xml limitation.xml

Add limitation information from BAGxml.

[1] 1.9.3-p-1(#<Oddb2xml::Builder>)> @limitations.length
=> 17
[2] 1.9.3-p-1(#<Oddb2xml::Builder>)> @limitations.first
=> {:it=>"",
 :code=>"60 PUNKTE",
 :type=>"PKT",
 :value=>"",
 :desc_de=>"Gesamthaft zugelassen: 60 Punkte.",
 :desc_fr=>"Gesamthaft zugelassen: 60 Punkte.",
 :vdate=>"01.09.2007",
 :del=>false}
commits

oddb_limitation.xml

<?xml version="1.0" encoding="utf-8"?>
<LIMITATION xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://wiki.oddb.org/wiki.php?pagename=Swissmedic.Datendeklaration" CREATION_DATETIME="2012-12-27T17:18:27.9339788+0900" PROD_DATE="2012-12-27T17:18:27.9339788+0900" VALID_DATE="2012-12-27T17:18:27.9339788+0900">
  <LIM DT="">
    <LIMCD>60 PUNKTE</LIMCD>
    <IT/>
    <LIMTYP>PKT</LIMTYP>
    <LIMVAL/>
    <DSCRD>Gesamthaft zugelassen: 60 Punkte.</DSCRD>
    <DSCRF>Gesamthaft zugelassen: 60 Punkte.</DSCRF>
    <VDAT>01.09.2007</VDAT>
  </LIM>
  <LIM DT="">
    <LIMCD>FOSICOMP</LIMCD>
    <IT>02.07.20.</IT>
    <LIMTYP>DIA</LIMTYP>
    <LIMVAL/>
    <DSCRD>Weiterführung der Therapie bei stabil eingestellten Patienten.</DSCRD>
    <DSCRF>Weiterführung der Therapie bei stabil eingestellten Patienten.</DSCRF>
    <VDAT>01.02.2012</VDAT>
  </LIM>
  ...

Debug ODBA hash modified iteration error

Error: RuntimeError
Message: can't add a new key into hash during iteration
Backtrace:
/usr/local/lib/ruby/gems/1.9.1/gems/odba-1.0.8/lib/odba/cache_entry.rb:49:in `store'
/usr/local/lib/ruby/gems/1.9.1/gems/odba-1.0.8/lib/odba/cache_entry.rb:49:in `block in odba_add_reference'
<internal:prelude>:10:in `synchronize'
/usr/local/lib/ruby/gems/1.9.1/gems/odba-1.0.8/lib/odba/cache_entry.rb:48:in `odba_add_reference'
/usr/local/lib/ruby/gems/1.9.1/gems/odba-1.0.8/lib/odba/cache.rb:310:in `fetch_or_do'
/usr/local/lib/ruby/gems/1.9.1/gems/odba-1.0.8/lib/odba/cache.rb:225:in `fetch'
/usr/local/lib/ruby/gems/1.9.1/gems/odba-1.0.8/lib/odba/stub.rb:49:in `odba_receiver'

odba has already mutex.

odba/lib/cache_entry.rb

    def odba_add_reference(object)
      @cache_entry_mutex.synchronize do
        @accessed_by.store(object.object_id, object.odba_id)
      end
      object
    end

odba/lib/cache.rb

    def _clean(retire_time, holder, offset) # :nodoc: 
      if(offset > holder.size) 
        offset = 0 
      end 
      counter = 0 
      cutoff = offset + @cleaner_step
      @cache_mutex.synchronize {
        holder.each_value { |value|
          counter += 1
          if(counter > offset && value.odba_old?(retire_time))
            value.odba_retire && @cleaned += 1
          end 
          return cutoff if(counter > cutoff)
        }   
      }   
      cutoff 
    # every once in a while we'll get a 'hash modified during iteration'-Error.
    # not to worry, we'll just try again later.
    rescue StandardError
      offset
    end

I think hat this is related in Marshal#dump of ODBA. (odba_instance)
Finaly I tried to duplicates in Plugin.

before
/var/www/ch.oddb.org 498(master) $ be bin/admin 
ch.oddb> InfoInvoicer.new(self).active_companies
-> Array
ch.oddb> InfoInvoicer.new(self).active_companies.length
-> 49
after(same result)
ch.oddb> InfoInvoicer.new(self).active_companies.length
-> 49
commit

Ref.


Add suport for savon 2.0 to oddb2xml

Update to use Savon 2.0

commit

Ref.


Update just-medical Lookandfeel

Removed GalenicForm from search result.

commit
view · edit · sidebar · attach · print · history
Page last modified on March 01, 2013, at 09:11 AM