<< Masa.20101103-decorators-for-ebooks | 2010 | Masa.20101101-update-update_bsv >>
suspend
ch.ODDB.org Report - Error: oddb.csv - 11/2010
Plugin: ODDB::CsvExportPlugin Error: NoMethodError Message: undefined method `de' for #<ODDB::Text::Chapter:0x7f1a3caa1b00> Backtrace: (eval):2:in `send' (eval):2:in `send' /var/www/oddb.org/src/view/drugs/csv_result.rb:195:in `limitation_text' /var/www/oddb.org/src/view/drugs/csv_result.rb:315:in `send' /var/www/oddb.org/src/view/drugs/csv_result.rb:315:in `to_csv' /var/www/oddb.org/src/view/drugs/csv_result.rb:313:in `collect' /var/www/oddb.org/src/view/drugs/csv_result.rb:313:in `to_csv' /var/www/oddb.org/src/view/drugs/csv_result.rb:311:in `each' /var/www/oddb.org/src/view/drugs/csv_result.rb:311:in `to_csv' /var/www/oddb.org/src/view/drugs/csv_result.rb:309:in `each' /var/www/oddb.org/src/view/drugs/csv_result.rb:309:in `to_csv' /var/www/oddb.org/src/view/drugs/csv_result.rb:330:in `to_csv_file' /var/www/oddb.org/src/view/drugs/csv_result.rb:330:in `open' /var/www/oddb.org/src/view/drugs/csv_result.rb:330:in `to_csv_file' /var/www/oddb.org/src/plugin/csv_export.rb:54:in `_export_drugs' /var/www/oddb.org/src/plugin/csv_export.rb:24:in `export_drugs' /var/www/oddb.org/src/util/updater.rb:81:in `export_oddb_csv' /var/www/oddb.org/src/util/updater.rb:448:in `call' /var/www/oddb.org/src/util/updater.rb:448:in `wrap_update' /var/www/oddb.org/src/util/updater.rb:79:in `export_oddb_csv' /var/www/oddb.org/src/util/updater.rb:264:in `update_bsv_followers' jobs/import_bsv:15 /var/www/oddb.org/src/util/job.rb:17:in `call' /var/www/oddb.org/src/util/job.rb:17:in `run' jobs/import_bsv:12
def update_bsv_followers
LogFile.append('oddb/debug', " getin update_bsv_followers", Time.now)
update_trade_status
update_medwin_packages
update_lppv
update_price_feeds
export_oddb_csv #<= here
# export_oddb2_csv # Disabled 4.1.2010
export_ouwerkerk
export_generics_xls
export_competition_xlss
end
Notes
def export_oddb_csv(date = @@today)
subj = 'oddb.csv'
wrap_update(CsvExportPlugin, subj) {
plug = CsvExportPlugin.new(@app)
plug.export_drugs #<= here
log = Log.new(date)
log.update_values(log_info(plug))
log.notify(subj)
}
end
def export_drugs
@options = { :iconv => 'ISO-8859-1//TRANSLIT//IGNORE' }
recipients.concat self.class::ODDB_RECIPIENTS
_export_drugs 'oddb', [ :rectype, :iksnr, :ikscd, :ikskey, :barcode, #<= here
:bsv_dossier, :pharmacode, :name_base, :galenic_form,
:most_precise_dose, :size, :numerical_size, :price_exfactory,
:price_public, :company_name, :ikscat, :sl_entry, :introduction_date,
:limitation, :limitation_points, :limitation_text, :lppv,
:registration_date, :expiration_date, :inactive_date, :export_flag,
:casrn, :generic_type, :has_generic, :deductible, :out_of_trade,
:c_type, :index_therapeuticus, :ith_swissmedic, :narcotic, :vaccine ]
end
Notes
def _export_drugs(export_name, keys)
session = SessionStub.new(@app)
session.language = 'de'
session.lookandfeel = LookandfeelBase.new(session)
model = @app.atc_classes.values.sort_by { |atc| atc.code }
name = "#{export_name}.csv"
@file_path = path = File.join(EXPORT_DIR, name)
exporter = View::Drugs::CsvResult.new(model, session)
exporter.to_csv_file(keys, path, :packages) #<= here
dups = exporter.duplicates
@counts = exporter.counts
@counts['duplicates'] = dups.size
unless(dups.empty?)
log = Log.new(@@today)
log.report = sprintf "CSV-Export includes %i duplicates:\n%s",
dups.size, dups.join("\n")
log.notify("CSV-Export includes %i duplicates" % dups.size)
end
EXPORT_SERVER.compress(EXPORT_DIR, name)
backup = @app.log_group(:bsv_sl).newest_date.strftime("#{export_name}.%Y-%m-%d.csv")
backup_dir = File.expand_path('../../data/csv', File.dirname(__FILE__))
backup_path = File.join(backup_dir, backup)
unless(File.exist? backup_path)
FileUtils.mkdir_p(backup_dir)
FileUtils.cp(path, backup_path)
end
rescue
puts $!.message
puts $!.backtrace
raise
end
src/view/drugs/csv_result.rb:330
def to_csv_file(keys, path, symbol=:active_packages)
File.open(path, 'w') { |fh| fh.puts to_csv(keys, symbol) } #<= here
end
Check arguments
def to_csv_file(keys, path, symbol=:active_packages)
print "keys="
p keys
print "path="
p path
print "symbol="
p symbol
exit
File.open(path, 'w') { |fh| fh.puts to_csv(keys, symbol) }
end
Result
keys=[:rectype, :iksnr, :ikscd, :ikskey, :barcode, :bsv_dossier, :pharmacode, :name_base, :galenic_form, :most_precise_dose, :size, :numerical_size, :price_exfactory, :price_public, :company_name, :ikscat, :sl_entry, :introduction_date, :limitation, :limitation_points, :limitation_text, :lppv, :registration_date, :expiration_date, :inactive_date, :export_flag, :casrn, :generic_type, :has_generic, :deductible, :out_of_trade, :c_type, :index_therapeuticus, :ith_swissmedic, :narcotic, :vaccine] path="/home/masa/ywesee/oddb.org/data/downloads/oddb.csv" symbol=:packages
src/view/drugs/csv_result.rb:309
def to_csv(keys, symbol=:active_packages)
eans = {}
result = []
lang = @lookandfeel.language
header = keys.collect { |key|
@lookandfeel.lookup("th_#{key}") || key.to_s
}
result.push(header)
@model.each { |atc| #<= here
result.push(['#MGrp', atc.code.to_s, atc.description(lang).to_s])
atc.send(symbol).each { |pack|
eans[pack.ikskey] = eans[pack.ikskey].to_i + 1
line = keys.collect { |key|
if(self.respond_to?(key))
self.send(key, pack)
else
pack.send(key)
end
}
result.push(line)
}
}
@duplicates = eans.collect { |ikskey, count|
ikskey if count > 1 }.compact.sort
result.collect { |line|
CSV.generate_line(line, ';')
}.join("\n")
end
Check variables
def to_csv(keys, symbol=:active_packages)
p "getin to_csv"
print "keys="
p keys
print "symbol="
p symbol
eans = {}
result = []
lang = @lookandfeel.language
print "lang="
p lang
header = keys.collect { |key|
@lookandfeel.lookup("th_#{key}") || key.to_s
}
print "header="
p header
result.push(header)
print "@model.class="
p @model.class
print "@model.size="
p @model.size
exit
Result
keys=[:rectype, :iksnr, :ikscd, :ikskey, :barcode, :bsv_dossier, :pharmacode, :name_base, :galenic_form, :most_precise_dose, :size, :numerical_size, :price_exfactory, :price_public, :company_name, :ikscat, :sl_entry, :introduction_date, :limitation, :limitation_points, :limitation_text, :lppv, :registration_date, :expiration_date, :inactive_date, :export_flag, :casrn, :generic_type, :has_generic, :deductible, :out_of_trade, :c_type, :index_therapeuticus, :ith_swissmedic, :narcotic, :vaccine] symbol=:packages lang="de" header=["rectype", "Reg.-Nr.", "Packungsnummer", "Swissmedic-Nr.", "EAN-Code", "BSV-Dossier", "Pharmacode", "Pr\303\244parat", "Galenische Form", "St\303\244rke", "Packungsgr\303\266sse", "Numerisch", "EFP", "PP", "Zulassungsinh.", "Kat.", "SL", "Aufnahme in SL", "Limitation", "Limitationspunkte", "Limitationstext", "LPPV", "Reg.Dat.", "G\303\274ltig bis", "Deaktiviert", "Exportprodukt", "CAS Reg.Nr.", "generic_type", "Hat ein Generikum", "SB", "Ausser Handel (MedRef)", "Komplement\303\244rprodukt", "Index Therapeuticus (BAG)", "Index Therapeuticus (Swissmedic)", "Bet\303\244ubungsmittel", "Impfstoff/Blutprodukt"] @model.class=Array @model.size=7303
def run
logfile_stats
=begin
if(update_swissmedic)
update_swissmedic_followers
end
update_swissmedicjournal
update_vaccines
return_value_update_bsv = update_bsv
LogFile.append('oddb/debug', " return_value_update_bsv=" + return_value_update_bsv.inspect.to_s, Time.now)
#if(update_bsv)
if(return_value_update_bsv)
=end
update_bsv_followers
=begin
end
update_narcotics
run_on_monthday(1) {
update_interactions
}
=end
end
src/util/updater.rb#update_bsv_followers
def update_bsv_followers
LogFile.append('oddb/debug', " getin update_bsv_followers", Time.now)
=begin
update_trade_status
update_medwin_packages
update_lppv
update_price_feeds
=end
export_oddb_csv
# export_oddb2_csv # Disabled 4.1.2010
=begin
export_ouwerkerk
export_generics_xls
export_competition_xlss
=end
end
Run jobs/import_daily
Result
Plugin: ODDB::CsvExportPlugin Error: NoMethodError Message: undefined method `de' for #<ODDB::Text::Chapter:0x7fcb75d2c218> Backtrace: (eval):2:in `send' (eval):2:in `send' /home/masa/ywesee/oddb.org/src/view/drugs/csv_result.rb:195:in `limitation_text' /home/masa/ywesee/oddb.org/src/view/drugs/csv_result.rb:315:in `send' /home/masa/ywesee/oddb.org/src/view/drugs/csv_result.rb:315:in `to_csv' /home/masa/ywesee/oddb.org/src/view/drugs/csv_result.rb:313:in `collect' /home/masa/ywesee/oddb.org/src/view/drugs/csv_result.rb:313:in `to_csv' /home/masa/ywesee/oddb.org/src/view/drugs/csv_result.rb:311:in `each' /home/masa/ywesee/oddb.org/src/view/drugs/csv_result.rb:311:in `to_csv' /home/masa/ywesee/oddb.org/src/view/drugs/csv_result.rb:309:in `each' /home/masa/ywesee/oddb.org/src/view/drugs/csv_result.rb:309:in `to_csv' /home/masa/ywesee/oddb.org/src/view/drugs/csv_result.rb:330:in `to_csv_file' /home/masa/ywesee/oddb.org/src/view/drugs/csv_result.rb:330:in `open' /home/masa/ywesee/oddb.org/src/view/drugs/csv_result.rb:330:in `to_csv_file' /home/masa/ywesee/oddb.org/src/plugin/csv_export.rb:54:in `_export_drugs' /home/masa/ywesee/oddb.org/src/plugin/csv_export.rb:24:in `export_drugs' /home/masa/ywesee/oddb.org/src/util/updater.rb:82:in `export_oddb_csv' /home/masa/ywesee/oddb.org/src/util/updater.rb:456:in `call' /home/masa/ywesee/oddb.org/src/util/updater.rb:456:in `wrap_update' /home/masa/ywesee/oddb.org/src/util/updater.rb:80:in `export_oddb_csv' /home/masa/ywesee/oddb.org/src/util/updater.rb:270:in `update_bsv_followers' /home/masa/ywesee/oddb.org/src/util/updater.rb:217:in `run' jobs/import_daily:13 /home/masa/ywesee/oddb.org/src/util/job.rb:17:in `call' /home/masa/ywesee/oddb.org/src/util/job.rb:17:in `run' jobs/import_daily:12
Experiment
def to_csv(keys, symbol=:active_packages)
eans = {}
result = []
lang = @lookandfeel.language
header = keys.collect { |key|
@lookandfeel.lookup("th_#{key}") || key.to_s
}
result.push(header)
print "@model.length=", @model.length, "\n"
# @model.each { |atc|
@model.each_with_index { |atc, i|
puts i
result.push(['#MGrp', atc.code.to_s, atc.description(lang).to_s])
atc.send(symbol).each { |pack|
eans[pack.ikskey] = eans[pack.ikskey].to_i + 1
line = keys.collect { |key|
if(self.respond_to?(key))
self.send(key, pack)
else
pack.send(key)
end
}
result.push(line)
}
}
@duplicates = eans.collect { |ikskey, count|
ikskey if count > 1 }.compact.sort
result.collect { |line|
CSV.generate_line(line, ';')
}.join("\n")
end
Result
... 1048 1049 1050 1051 1052 1053 1054 undefined method `de' for #<ODDB::Text::Chapter:0x7f275241ce60> (eval):2:in `send' (eval):2:in `send' /home/masa/ywesee/oddb.org/src/view/drugs/csv_result.rb:195:in `limitation_text' /home/masa/ywesee/oddb.org/src/view/drugs/csv_result.rb:318:in `send' /home/masa/ywesee/oddb.org/src/view/drugs/csv_result.rb:318:in `to_csv' /home/masa/ywesee/oddb.org/src/view/drugs/csv_result.rb:316:in `collect' ...
Experiment
def to_csv(keys, symbol=:active_packages)
eans = {}
result = []
lang = @lookandfeel.language
header = keys.collect { |key|
@lookandfeel.lookup("th_#{key}") || key.to_s
}
result.push(header)
print "@model.length=", @model.length, "\n"
# @model.each { |atc|
@model.each_with_index { |atc, i|
if i >= 1054
puts i
print "atc.send(#{symbol}).length=", atc.send(symbol).length, "\n"
print "atc.packages.length=", atc.packages.length, "\n"
print "atc.class=", atc.class, "\n"
#print "atc.methods="
#p atc.methods
print "atc.packages[0].class="
p atc.packages[0].class
result.push(['#MGrp', atc.code.to_s, atc.description(lang).to_s])
atc.send(symbol).each { |pack|
eans[pack.ikskey] = eans[pack.ikskey].to_i + 1
line = keys.collect { |key|
if(self.respond_to?(key))
print "call #{self.class}.#{key}(#{pack.class})\n"
self.send(key, pack)
else
pack.send(key)
end
}
result.push(line)
}
end
}
@duplicates = eans.collect { |ikskey, count|
ikskey if count > 1 }.compact.sort
result.collect { |line|
CSV.generate_line(line, ';')
}.join("\n")
end
Result
... call ODDB::View::Drugs::CsvResult.price_public(ODDB::Package) call ODDB::View::Drugs::CsvResult.sl_entry(ODDB::Package) call ODDB::View::Drugs::CsvResult.introduction_date(ODDB::Package) call ODDB::View::Drugs::CsvResult.limitation(ODDB::Package) call ODDB::View::Drugs::CsvResult.limitation_points(ODDB::Package) call ODDB::View::Drugs::CsvResult.limitation_text(ODDB::Package) undefined method `de' for #<ODDB::Text::Chapter:0x7f1e9f61d6a8> (eval):2:in `send' (eval):2:in `send' /home/masa/ywesee/oddb.org/src/view/drugs/csv_result.rb:195:in `limitation_text' /home/masa/ywesee/oddb.org/src/view/drugs/csv_result.rb:327:in `send' ...
def limitation_text(pack)
if((sl = pack.sl_entry) && (txt = sl.limitation_text))
@counts['limitation_texts'] += 1
txt.send(@lookandfeel.language).to_s.gsub(/\n/u, '|')
end
end
Experiment
def limitation_text(pack)
if((sl = pack.sl_entry) && (txt = sl.limitation_text))
print "sl.class=", sl.class, "\n"
print "txt.class=",txt.class, "\n"
print "@lookandfee.language=", @lookandfeel.language, "\n"
@counts['limitation_texts'] += 1
txt.send(@lookandfeel.language).to_s.gsub(/\n/u, '|')
end
end
Result
... sl.class=ODDB::SlEntry txt.class=ODDB::LimitationText @lookandfee.language=de undefined method `de' for #<ODDB::Text::Chapter:0x7f4e66f93fd8> (eval):2:in `send' (eval):2:in `send' ...
Consider
Run export_oddb_csv method with data on 20101026
$ sudo -u postgres dropdb oddb.org $ sudo -u postgres createdb -E UTF8 -T template0 oddb.org $ zcat oddb.org.20101026.sql.gz | psql -U postgres oddb.org
Result
anthroposophy 294 bsv_dossiers 3253 complementary 283 deductible_g 8343 deductible_o 72 duplicates 0 expiration_date 20889 export_registrations 573 galenic_forms 298 generics 4384 has_generic 0 homeopathy 809 inactive_date 4073 limitation_both 141 limitation_points 141 limitation_texts 1293 limitations 1295 lppv 607 missing_size 27 originals 2074 out_of_trade 3209 phytotherapy 1332 price_exfactory 9520 price_public 12099 registration_date 22522 routes_of_administration 0 sl_entries 8415
Consider
Experiment
def limitation_text(pack)
if((sl = pack.sl_entry) && (txt = sl.limitation_text))
print "txt.to_s="
p txt.to_s
@counts['limitation_texts'] += 1
txt.send(@lookandfeel.language).to_s.gsub(/\n/u, '|')
end
end
Run export_oddb_csv using the latest data
Result
.... txt.to_s="Zavesca\n\nZur Behandlung von erwachsenen Patienten mit leichter bis mittelschwerer Form des Morbus Gaucher Typ 1, f\303\274r welche eine Enzymsubstitutionstherapie nicht m\303\266glich ist." @lookandfee.language=de txt.to_s="Zulassungsnummer\n57054 (Swissmedic)." undefined method `de' for #<ODDB::Text::Chapter:0x7ffbec69d0d0> (eval):2:in `send' (eval):2:in `send' /home/masa/ywesee/oddb.org/src/view/drugs/csv_result.rb:204:in `limitation_text' ....
Experiment
def limitation_text(pack)
if((sl = pack.sl_entry) && (txt = sl.limitation_text))
print "sl.class=", sl.class, "\n"
print "txt.class=",txt.class, "\n"
print "txt.to_s="
p txt.to_s
@counts['limitation_texts'] += 1
print "txt.methods.sort="
pp txt.methods.sort
txt.send(@lookandfeel.language).to_s.gsub(/\n/u, '|')
end
end
Result
masa@masa ~/ywesee/oddb.org $ diff methods1.dat methods2.dat 3c3 < txt.to_s="Zavesca\n\nZur Behandlung von erwachsenen Patienten mit leichter bis mittelschwerer Form des Morbus Gaucher Typ 1, f\303\274r welche eine Enzymsubstitutionstherapie nicht m\303\266glich ist." --- > txt.to_s="Zulassungsnummer\n57054 (Swissmedic)." 20a21 > "clean!", 22,23d22 < "code", < "code=", 33,34d31 < "description", < "descriptions", 39a37 > "empty?", 50c48 < "has_description?", --- > "gsub!", 51a50,51 > "heading", > "heading=", 53a54 > "include?", 74d74 < "method_missing", 76d75 < "name", 78a78 > "next_section", 81,82d80 < "niveau", < "niveau=", 122a121 > "paragraphs", 148c147,148 < "search_text", --- > "sections", > "sections=", 169a170 > "to_search", 178d178 < "type=", 185,188d184 < "valid_from", < "valid_from=", < "value", < "value=",
Notes
Consider
Reference
Experiment
src/view/drugs/csv_result.rb#to_csv
def to_csv(keys, symbol=:active_packages)
eans = {}
result = []
lang = @lookandfeel.language
header = keys.collect { |key|
@lookandfeel.lookup("th_#{key}") || key.to_s
}
result.push(header)
print "@model(#{@model.class}).length=", @model.length, "\n"
# @model.each { |atc|
@model.each_with_index { |atc, i|
result.push(['#MGrp', atc.code.to_s, atc.description(lang).to_s])
atc.send(symbol).each { |pack|
eans[pack.ikskey] = eans[pack.ikskey].to_i + 1
line = keys.collect { |key|
if(self.respond_to?(key))
begin
self.send(key, pack)
rescue NoMethodError
sl = pack.sl_entry
txt = sl.limitation_text
print i, ": "
p txt
p txt.to_s
end
else
pack.send(key)
end
}
result.push(line)
}
}
Result
"getin export_oddb_csv" @model(Array).length=7303 1054: "Zulassungsnummer\n57054 (Swissmedic)." #<ODDB::Text::Chapter:0x7f713079a3d0 @sections=[#<ODDB::Text::Section:0x7f713079a178 @paragraphs=[#<ODDB::Text::Paragraph:0x7f713079a038 @preformatted=false, @formats= [#<ODDB::Text::Format:0x7f7130799ea8 @end=-1, @values=[], @start=0>], @text="57054 (Swissmedic).", @raw_txt=nil, @format=#<ODDB::Text::Format:0x7f7130799ea8 @end=-1, @values=[], @start=0>>], @subheading="">], @odba_persistent=true, @heading="Zulassungsnummer", @odba_id=25419791, @odba_observers=[]> 1054: "Zulassungsinhaberin\nMerz Pharma (Schweiz) AG, 4123 Allschwil." #<ODDB::Text::Chapter:0x7f71307594e8 @sections=[#<ODDB::Text::Section:0x7f71307591c8 @paragraphs=[#<ODDB::Text::Paragraph:0x7f7130759060 @preformatted=false, @formats= [#<ODDB::Text::Format:0x7f7130758e80 @end=-1, @values=[], @start=0>], @text="Merz Pharma (Schweiz) AG, 4123 Allschwil.", @raw_txt=nil, @format=#<ODDB::Text::Format:0x7f7130758e80 @end=-1, @values=[], @start=0>>], @subheading="">], @odba_persistent=true, @heading="Zulassungsinhaberin", @odba_id=25419804, @odba_observers=[]> 3806: "AMZV" #<ODDB::Text::Chapter:0x7f7129aeddb8 @sections=[], @odba_persistent=true, @heading="AMZV", @odba_id=25419754, @odba_observers=[]> 4057: "#<ODDB::FachinfoDocument2001:0x7f7127e8d2e0>" #<ODDB::FachinfoDocument2001:0x7f7127e8d2e0 @driving_ability=#<ODBA::Stub:70061988799940#25419749 @odba_class=ODDB::Text::Chapter @odba_container=70061988800880#25419720>, @kinetic=# <ODBA::Stub:70061988800000#25419750 @odba_class=ODDB::Text::Chapter @odba_container=70061988800880#25419720>, @date=#<ODBA::Stub:70061988800160#25419747 @odba_class=ODDB::Text::Chapter @odba_container=70061988800880#25419720>, @distribution=nil, @unwanted_effects=#<ODBA::Stub:70061988799680#25419753 @odba_class=ODDB::Text::Chapter @odba_container=70061988800880#25419720>, @amzv=# <ODBA::Stub:70061988799740#25419754 @odba_class=ODDB::Text::Chapter @odba_container=70061988800880#25419720>, @pregnancy=#<ODBA::Stub:70061988799560#25419755 @odba_class=ODDB::Text::Chapter @odba_container=70061988800880#25419720>, @effects=#<ODBA::Stub:70061988799620#25419756 @odba_class=ODDB::Text::Chapter @odba_container=70061988800880#25419720>, @composition=# <ODBA::Stub:70061988799880#25419752 @odba_class=ODDB::Text::Chapter @odba_container=70061988800880#25419720>, @interactions=#<ODBA::Stub:70061988800800#25419742 @odba_class=ODDB::Text::Chapter @odba_container=70061988800880#25419720>, @odba_persistent=true, @delivery=nil, @name="Contractubex\302\256", @reference=nil, @registration_owner=#<ODBA::Stub:70061988799400#25419757 @odba_class=ODDB::Text::Chapter @odba_container=70061988800880#25419720>, @restrictions=#<ODBA::Stub:70061988799460#25419758 @odba_class=ODDB::Text::Chapter @odba_container=70061988800880#25419720>, @packages=nil, @galenic_form=#<ODBA::Stub:70061988800560#25419740 @odba_class=ODDB::Text::Chapter @odba_container=70061988800880#25419720>, @contra_indications=#<ODBA::Stub:70061988800620#25419741 @odba_class=ODDB::Text::Chapter @odba_container=70061988800880#25419720>, @indications=#<ODBA::Stub:70061988799800#25419751 @odba_class=ODDB::Text::Chapter @odba_container=70061988800880#25419720>, @other_advice=#<ODBA::Stub:70061988800420#25419743 @odba_class=ODDB::Text::Chapter @odba_container=70061988800880#25419720>, @usage=#<ODBA::Stub:70061988800240#25419745 @odba_class=ODDB::Text::Chapter @odba_container=70061988800880#25419720>, @preclinic=#<ODBA::Stub:70061988800300#25419746 @odba_class=ODDB::Text::Chapter @odba_container=70061988800880#25419720>, @fabrication=nil, @odba_id=25419720, @overdose=#<ODBA::Stub:70061988800060#25419748 @odba_class=ODDB::Text::Chapter @odba_container=70061988800880#25419720>, @odba_observers=[], @iksnrs=#<ODBA::Stub:70061988800500#25419744 @odba_class=ODDB::Text::Chapter @odba_container=70061988800880#25419720>> 4057: "Effet sur l\342\200\231aptitude \303\240 la conduite et l\342\200\231utilisation de machines\nAucune \303\251tude correspondante n\342\200\231a \303\251t\303\251 effectu\303\251e. La probabilit\303\251 que le principe actif, l\342\200\231h\303\251parine sodique, soit disponible syst\303\251miquement \303\251tant tr\303\250s faible, aucune entrave \303\240 l\342\200\231aptitude \303\240 la conduite ou \303\240 l\342\200\231utilisation de machines n\342\200\231est \303\240 craindre." #<ODDB::Text::Chapter:0x7f7127e72058 @sections=[#<ODDB::Text::Section:0x7f7127e71f40 @paragraphs=[#<ODDB::Text::Paragraph:0x7f7127e71e50 @preformatted=false, @formats= [#<ODDB::Text::Format:0x7f7127e71d88 @end=-1, @values=[], @start=0>], @text="Aucune \303\251tude correspondante n\342\200\231a \303\251t\303\251 effectu\303\251e. La probabilit\303\251 que le principe actif, l\342\200\231h\303\251parine sodique, soit disponible syst\303\251miquement \303\251tant tr\303\250s faible, aucune entrave \303\240 l\342\200\231aptitude \303\240 la conduite ou \303\240 l\342\200\231utilisation de machines n\342\200\231est \303\240 craindre.", @raw_txt=nil, @format=#<ODDB::Text::Format:0x7f7127e71d88 @end=-1, @values=[], @start=0>>], @subheading="">], @odba_persistent=true, @heading="Effet sur l\342\200\231aptitude \303\240 la conduite et l\342\200\231utilisation de machines", @odba_id=25419730, @odba_observers=[]>
Notes
src/view/drugs/csv_result.rb#to_csv
def to_csv(keys, symbol=:active_packages)
eans = {}
result = []
lang = @lookandfeel.language
header = keys.collect { |key|
@lookandfeel.lookup("th_#{key}") || key.to_s
}
result.push(header)
print "@model(#{@model.class}).length=", @model.length, "\n"
# @model.each { |atc|
@model.each_with_index { |atc, i|
result.push(['#MGrp', atc.code.to_s, atc.description(lang).to_s])
atc.send(symbol).each { |pack|
eans[pack.ikskey] = eans[pack.ikskey].to_i + 1
line = keys.collect { |key|
if(self.respond_to?(key))
begin
self.send(key, pack)
rescue NoMethodError
sl = pack.sl_entry
txt = sl.limitation_text
print i, ": "
p txt.to_s
print "package.barcode=", pack.barcode, "\n"
print "url= http://ch.oddb.org/de/gcc/compare/ean13/", pack.barcode, "\n"
print "\n"
end
else
pack.send(key)
end
}
result.push(line)
}
}
"getin export_oddb_csv" @model(Array).length=7303 1054: "Zulassungsnummer\n57054 (Swissmedic)." package.barcode=7680469280163 url= http://ch.oddb.org/de/gcc/compare/ean13/7680469280163 '''Kybernin''' 1054: "Zulassungsinhaberin\nMerz Pharma (Schweiz) AG, 4123 Allschwil." package.barcode=7680469280248 '''Kybernin''' url= http://ch.oddb.org/de/gcc/compare/ean13/7680469280248 3806: "AMZV" package.barcode=7680517590282 '''Klacid''' url= http://ch.oddb.org/de/gcc/compare/ean13/7680517590282 4057: "#<ODDB::FachinfoDocument2001:0x7f5c132d3c48>" package.barcode=7680574690048 '''Kiovig''' url= http://ch.oddb.org/de/gcc/compare/ean13/7680574690048 4057: "Effet sur l\342\200\231aptitude \303\240 la conduite et l\342\200\231utilisation de machines\nAucune \303\251tude correspondante n\342\200\231a \303\251t\303\251 effectu\303\251e. La probabilit\303\251 que le principe actif, l\342\200\231h\303\251parine sodique, soit disponible syst\303\251miquement \303\251tant tr\303\250s faible, aucune entrave \303\240 l\342\200\231aptitude \303\240 la conduite ou \303\240 l\342\200\231utilisation de machines n\342\200\231est \303\240 craindre." package.barcode=7680574690055 '''Kiovig''' url= http://ch.oddb.org/de/gcc/compare/ean13/7680574690055
Notes
suspend
Idea
Run update_bsv again locally
... Created Limitation-Texts 4 Updated Limitation-Texts 1301 Deleted Limitation-Texts 0 ...
Result (run export_csv again, the same script as above)
"getin export_oddb_csv" @model(Array).length=7303
Notes
There is no error!!