de.oddb 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Guide.txt +3 -0
- data/History.txt +5 -0
- data/LICENCE.txt +339 -0
- data/Manifest.txt +430 -0
- data/README +423 -0
- data/README.txt +25 -0
- data/Rakefile +28 -0
- data/bin/admin +71 -0
- data/bin/exportd +44 -0
- data/bin/oddbd +33 -0
- data/data/fulltext/data/dicts/french/fulltext.aff +1057 -0
- data/data/fulltext/data/dicts/french/fulltext.dict +91189 -0
- data/data/fulltext/data/dicts/french/fulltext.stop +135 -0
- data/data/fulltext/data/dicts/german/fulltext.aff +1233 -0
- data/data/fulltext/data/dicts/german/fulltext.dict +287574 -0
- data/data/fulltext/data/dicts/german/fulltext.stop +133 -0
- data/data/fulltext/data/german_compound/README +15 -0
- data/data/fulltext/data/german_compound/compound.pl +63 -0
- data/data/fulltext/data/german_compound/german.stop +20 -0
- data/data/fulltext/data/ispell-german-compound.tar.gz +0 -0
- data/data/fulltext/redist/dict_french/Makefile +12 -0
- data/data/fulltext/redist/dict_french/README.french +1 -0
- data/data/fulltext/redist/dict_french/dict_french.sql.in +7 -0
- data/data/fulltext/redist/dict_french/dict_snowball.c +56 -0
- data/data/fulltext/redist/dict_french/french_stem.c +1222 -0
- data/data/fulltext/redist/dict_french/french_stem.h +16 -0
- data/data/fulltext/redist/dict_french/subinclude.h +2 -0
- data/data/fulltext/redist/dict_german/Makefile +12 -0
- data/data/fulltext/redist/dict_german/README.german +1 -0
- data/data/fulltext/redist/dict_german/dict_german.sql.in +7 -0
- data/data/fulltext/redist/dict_german/dict_snowball.c +56 -0
- data/data/fulltext/redist/dict_german/german_stem.c +527 -0
- data/data/fulltext/redist/dict_german/german_stem.h +16 -0
- data/data/fulltext/redist/dict_german/subinclude.h +1 -0
- data/data/fulltext/redist/french_stem.c +1222 -0
- data/data/fulltext/redist/french_stem.h +16 -0
- data/data/fulltext/redist/german_stem.c +527 -0
- data/data/fulltext/redist/german_stem.h +16 -0
- data/jobs/export_chde_xls +20 -0
- data/jobs/export_csv +20 -0
- data/jobs/export_fachinfo_yaml +20 -0
- data/jobs/export_patinfo_yaml +20 -0
- data/jobs/export_yaml +20 -0
- data/jobs/import_dimdi +15 -0
- data/jobs/import_gkv +19 -0
- data/jobs/import_pharma24 +15 -0
- data/jobs/import_pharmnet +30 -0
- data/jobs/import_whocc +18 -0
- data/lib/fixes/singular.rb +9 -0
- data/lib/fixes/yaml.rb +13 -0
- data/lib/oddb.rb +13 -0
- data/lib/oddb/business/company.rb +18 -0
- data/lib/oddb/business/grant_download.rb +27 -0
- data/lib/oddb/business/invoice.rb +75 -0
- data/lib/oddb/config.rb +112 -0
- data/lib/oddb/currency.rb +6 -0
- data/lib/oddb/drugs.rb +16 -0
- data/lib/oddb/drugs/active_agent.rb +37 -0
- data/lib/oddb/drugs/atc.rb +53 -0
- data/lib/oddb/drugs/composition.rb +41 -0
- data/lib/oddb/drugs/ddd.rb +24 -0
- data/lib/oddb/drugs/dose.rb +107 -0
- data/lib/oddb/drugs/galenic_form.rb +21 -0
- data/lib/oddb/drugs/galenic_group.rb +17 -0
- data/lib/oddb/drugs/package.rb +111 -0
- data/lib/oddb/drugs/part.rb +55 -0
- data/lib/oddb/drugs/product.rb +25 -0
- data/lib/oddb/drugs/sequence.rb +68 -0
- data/lib/oddb/drugs/substance.rb +31 -0
- data/lib/oddb/drugs/substance_group.rb +13 -0
- data/lib/oddb/drugs/unit.rb +12 -0
- data/lib/oddb/export.rb +4 -0
- data/lib/oddb/export/csv.rb +94 -0
- data/lib/oddb/export/l10n_sessions.rb +30 -0
- data/lib/oddb/export/rss.rb +44 -0
- data/lib/oddb/export/server.rb +137 -0
- data/lib/oddb/export/xls.rb +127 -0
- data/lib/oddb/export/yaml.rb +212 -0
- data/lib/oddb/html/state/download.rb +13 -0
- data/lib/oddb/html/state/drugs/admin/package.rb +190 -0
- data/lib/oddb/html/state/drugs/admin/product.rb +56 -0
- data/lib/oddb/html/state/drugs/admin/sequence.rb +253 -0
- data/lib/oddb/html/state/drugs/ajax/explain_ddd_price.rb +19 -0
- data/lib/oddb/html/state/drugs/ajax/explain_price.rb +19 -0
- data/lib/oddb/html/state/drugs/ajax/global.rb +18 -0
- data/lib/oddb/html/state/drugs/ajax/package_infos.rb +19 -0
- data/lib/oddb/html/state/drugs/ajax/remote_infos.rb +19 -0
- data/lib/oddb/html/state/drugs/atc_browser.rb +39 -0
- data/lib/oddb/html/state/drugs/atc_guidelines.rb +21 -0
- data/lib/oddb/html/state/drugs/compare.rb +52 -0
- data/lib/oddb/html/state/drugs/download_export.rb +18 -0
- data/lib/oddb/html/state/drugs/downloads.rb +42 -0
- data/lib/oddb/html/state/drugs/fachinfo.rb +21 -0
- data/lib/oddb/html/state/drugs/feedback.rb +91 -0
- data/lib/oddb/html/state/drugs/global.rb +270 -0
- data/lib/oddb/html/state/drugs/init.rb +18 -0
- data/lib/oddb/html/state/drugs/login.rb +17 -0
- data/lib/oddb/html/state/drugs/package.rb +32 -0
- data/lib/oddb/html/state/drugs/patinfo.rb +21 -0
- data/lib/oddb/html/state/drugs/products.rb +51 -0
- data/lib/oddb/html/state/drugs/result.rb +125 -0
- data/lib/oddb/html/state/global.rb +206 -0
- data/lib/oddb/html/state/global_predefine.rb +17 -0
- data/lib/oddb/html/state/limit.rb +17 -0
- data/lib/oddb/html/state/login.rb +56 -0
- data/lib/oddb/html/state/paypal/checkout.rb +97 -0
- data/lib/oddb/html/state/paypal/collect.rb +19 -0
- data/lib/oddb/html/state/paypal/download.rb +61 -0
- data/lib/oddb/html/state/paypal/redirect.rb +18 -0
- data/lib/oddb/html/state/register_download.rb +24 -0
- data/lib/oddb/html/state/register_export.rb +38 -0
- data/lib/oddb/html/state/register_poweruser.rb +17 -0
- data/lib/oddb/html/state/viral/admin.rb +79 -0
- data/lib/oddb/html/state/viral/poweruser.rb +16 -0
- data/lib/oddb/html/util/annotated_list.rb +39 -0
- data/lib/oddb/html/util/know_it_all.rb +28 -0
- data/lib/oddb/html/util/known_user.rb +55 -0
- data/lib/oddb/html/util/lookandfeel.rb +698 -0
- data/lib/oddb/html/util/need_all_input.rb +29 -0
- data/lib/oddb/html/util/session.rb +84 -0
- data/lib/oddb/html/util/sort.rb +72 -0
- data/lib/oddb/html/util/unsaved_helper.rb +20 -0
- data/lib/oddb/html/util/validator.rb +59 -0
- data/lib/oddb/html/view/ajax/json.rb +22 -0
- data/lib/oddb/html/view/alpha_header.rb +28 -0
- data/lib/oddb/html/view/document.rb +117 -0
- data/lib/oddb/html/view/download.rb +33 -0
- data/lib/oddb/html/view/drugs/admin/package.rb +245 -0
- data/lib/oddb/html/view/drugs/admin/product.rb +104 -0
- data/lib/oddb/html/view/drugs/admin/sequence.rb +305 -0
- data/lib/oddb/html/view/drugs/ajax/explain_ddd_price.rb +87 -0
- data/lib/oddb/html/view/drugs/ajax/explain_price.rb +61 -0
- data/lib/oddb/html/view/drugs/ajax/package_infos.rb +105 -0
- data/lib/oddb/html/view/drugs/ajax/remote_infos.rb +44 -0
- data/lib/oddb/html/view/drugs/atc_browser.rb +68 -0
- data/lib/oddb/html/view/drugs/atc_guidelines.rb +94 -0
- data/lib/oddb/html/view/drugs/compare.rb +95 -0
- data/lib/oddb/html/view/drugs/download_export.rb +28 -0
- data/lib/oddb/html/view/drugs/downloads.rb +128 -0
- data/lib/oddb/html/view/drugs/fachinfo.rb +46 -0
- data/lib/oddb/html/view/drugs/feedback.rb +235 -0
- data/lib/oddb/html/view/drugs/init.rb +51 -0
- data/lib/oddb/html/view/drugs/legend.rb +24 -0
- data/lib/oddb/html/view/drugs/package.rb +403 -0
- data/lib/oddb/html/view/drugs/patinfo.rb +46 -0
- data/lib/oddb/html/view/drugs/products.rb +97 -0
- data/lib/oddb/html/view/drugs/result.rb +296 -0
- data/lib/oddb/html/view/drugs/search.rb +33 -0
- data/lib/oddb/html/view/drugs/template.rb +15 -0
- data/lib/oddb/html/view/foot.rb +52 -0
- data/lib/oddb/html/view/google.rb +23 -0
- data/lib/oddb/html/view/google_ads.rb +40 -0
- data/lib/oddb/html/view/head.rb +78 -0
- data/lib/oddb/html/view/limit.rb +109 -0
- data/lib/oddb/html/view/list.rb +59 -0
- data/lib/oddb/html/view/login.rb +38 -0
- data/lib/oddb/html/view/navigation.rb +67 -0
- data/lib/oddb/html/view/offset_header.rb +35 -0
- data/lib/oddb/html/view/paypal/collect.rb +95 -0
- data/lib/oddb/html/view/paypal/redirect.rb +51 -0
- data/lib/oddb/html/view/paypal/register_form.rb +149 -0
- data/lib/oddb/html/view/register_download.rb +29 -0
- data/lib/oddb/html/view/register_export.rb +29 -0
- data/lib/oddb/html/view/register_poweruser.rb +29 -0
- data/lib/oddb/html/view/rss/feedback.rb +64 -0
- data/lib/oddb/html/view/rss_preview.rb +61 -0
- data/lib/oddb/html/view/search.rb +104 -0
- data/lib/oddb/html/view/snapback.rb +24 -0
- data/lib/oddb/html/view/template.rb +56 -0
- data/lib/oddb/import/dimdi.rb +583 -0
- data/lib/oddb/import/excel.rb +45 -0
- data/lib/oddb/import/gkv.rb +463 -0
- data/lib/oddb/import/importer.rb +36 -0
- data/lib/oddb/import/pharma24.rb +211 -0
- data/lib/oddb/import/pharmnet.rb +1186 -0
- data/lib/oddb/import/rtf.rb +409 -0
- data/lib/oddb/import/whocc.rb +148 -0
- data/lib/oddb/import/xml.rb +15 -0
- data/lib/oddb/model.rb +179 -0
- data/lib/oddb/persistence.rb +22 -0
- data/lib/oddb/persistence/odba.rb +32 -0
- data/lib/oddb/persistence/odba/business/company.rb +13 -0
- data/lib/oddb/persistence/odba/business/grant_download.rb +14 -0
- data/lib/oddb/persistence/odba/business/invoice.rb +15 -0
- data/lib/oddb/persistence/odba/drugs/atc.rb +15 -0
- data/lib/oddb/persistence/odba/drugs/galenic_form.rb +18 -0
- data/lib/oddb/persistence/odba/drugs/galenic_group.rb +13 -0
- data/lib/oddb/persistence/odba/drugs/package.rb +25 -0
- data/lib/oddb/persistence/odba/drugs/product.rb +13 -0
- data/lib/oddb/persistence/odba/drugs/sequence.rb +21 -0
- data/lib/oddb/persistence/odba/drugs/substance.rb +21 -0
- data/lib/oddb/persistence/odba/drugs/substance_group.rb +13 -0
- data/lib/oddb/persistence/odba/drugs/unit.rb +13 -0
- data/lib/oddb/persistence/odba/export.rb +26 -0
- data/lib/oddb/persistence/odba/model.rb +68 -0
- data/lib/oddb/persistence/odba/text/document.rb +11 -0
- data/lib/oddb/persistence/odba/util/code.rb +11 -0
- data/lib/oddb/persistence/odba/util/m10l_document.rb +13 -0
- data/lib/oddb/persistence/og.rb +16 -0
- data/lib/oddb/persistence/og/drugs/composition.rb +14 -0
- data/lib/oddb/persistence/og/drugs/product.rb +14 -0
- data/lib/oddb/persistence/og/drugs/sequence.rb +15 -0
- data/lib/oddb/persistence/og/model.rb +25 -0
- data/lib/oddb/persistence/og/util/multilingual.rb +13 -0
- data/lib/oddb/redist/rtf_tools/reader.rb +139 -0
- data/lib/oddb/remote/business/company.rb +17 -0
- data/lib/oddb/remote/drugs/active_agent.rb +27 -0
- data/lib/oddb/remote/drugs/atc.rb +31 -0
- data/lib/oddb/remote/drugs/dose.rb +8 -0
- data/lib/oddb/remote/drugs/galenic_form.rb +24 -0
- data/lib/oddb/remote/drugs/package.rb +128 -0
- data/lib/oddb/remote/drugs/part.rb +30 -0
- data/lib/oddb/remote/drugs/substance.rb +20 -0
- data/lib/oddb/remote/drugs/unit.rb +20 -0
- data/lib/oddb/remote/object.rb +36 -0
- data/lib/oddb/text/chapter.rb +23 -0
- data/lib/oddb/text/document.rb +42 -0
- data/lib/oddb/text/format.rb +37 -0
- data/lib/oddb/text/paragraph.rb +53 -0
- data/lib/oddb/text/picture.rb +89 -0
- data/lib/oddb/text/table.rb +68 -0
- data/lib/oddb/util.rb +9 -0
- data/lib/oddb/util/annotated_list.rb +37 -0
- data/lib/oddb/util/code.rb +69 -0
- data/lib/oddb/util/comparison.rb +36 -0
- data/lib/oddb/util/download.rb +17 -0
- data/lib/oddb/util/exporter.rb +8 -0
- data/lib/oddb/util/feedback.rb +23 -0
- data/lib/oddb/util/ipn.rb +53 -0
- data/lib/oddb/util/job.rb +23 -0
- data/lib/oddb/util/logger.rb +20 -0
- data/lib/oddb/util/m10l_document.rb +41 -0
- data/lib/oddb/util/mail.rb +87 -0
- data/lib/oddb/util/money.rb +64 -0
- data/lib/oddb/util/multilingual.rb +70 -0
- data/lib/oddb/util/quanty.rb +3 -0
- data/lib/oddb/util/quanty/fact.rb +242 -0
- data/lib/oddb/util/quanty/main.rb +164 -0
- data/lib/oddb/util/quanty/parse.rb +872 -0
- data/lib/oddb/util/quanty/units.dump +0 -0
- data/lib/oddb/util/server.rb +150 -0
- data/lib/oddb/util/smtp_tls.rb +58 -0
- data/lib/oddb/util/updater.rb +161 -0
- data/lib/oddb/util/ydim.rb +110 -0
- data/lib/oddb/util/yus.rb +46 -0
- data/test/business/test_company.rb +29 -0
- data/test/business/test_grant_download.rb +29 -0
- data/test/drugs/test_active_agent.rb +53 -0
- data/test/drugs/test_atc.rb +54 -0
- data/test/drugs/test_composition.rb +88 -0
- data/test/drugs/test_ddd.rb +22 -0
- data/test/drugs/test_dose.rb +189 -0
- data/test/drugs/test_galenic_form.rb +41 -0
- data/test/drugs/test_package.rb +172 -0
- data/test/drugs/test_part.rb +32 -0
- data/test/drugs/test_product.rb +31 -0
- data/test/drugs/test_sequence.rb +140 -0
- data/test/drugs/test_substance.rb +51 -0
- data/test/drugs/test_substance_group.rb +27 -0
- data/test/export/test_rss.rb +86 -0
- data/test/export/test_server.rb +163 -0
- data/test/export/test_xls.rb +146 -0
- data/test/export/test_yaml.rb +120 -0
- data/test/import/data/csv/products.csv +11 -0
- data/test/import/data/html/dimdi_index.html +400 -0
- data/test/import/data/html/gkv/Befreiungsliste_Arzneimittel_Versicherte.gkvnet +508 -0
- data/test/import/data/html/pharma24/1337397.html +754 -0
- data/test/import/data/html/pharma24/842756.html +570 -0
- data/test/import/data/html/pharma24/ac-page-10.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-11.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-12.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-13.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-14.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-15.html +3011 -0
- data/test/import/data/html/pharma24/ac-page-16.html +3050 -0
- data/test/import/data/html/pharma24/ac-page-17.html +3285 -0
- data/test/import/data/html/pharma24/ac-page-18.html +3109 -0
- data/test/import/data/html/pharma24/ac-page-19.html +3126 -0
- data/test/import/data/html/pharma24/ac-page-2.html +3005 -0
- data/test/import/data/html/pharma24/ac-page-20.html +3007 -0
- data/test/import/data/html/pharma24/ac-page-21.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-22.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-23.html +3055 -0
- data/test/import/data/html/pharma24/ac-page-24.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-25.html +3004 -0
- data/test/import/data/html/pharma24/ac-page-26.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-27.html +3167 -0
- data/test/import/data/html/pharma24/ac-page-28.html +3236 -0
- data/test/import/data/html/pharma24/ac-page-29.html +3110 -0
- data/test/import/data/html/pharma24/ac-page-3.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-30.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-31.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-32.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-33.html +3001 -0
- data/test/import/data/html/pharma24/ac-page-34.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-35.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-36.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-37.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-38.html +3003 -0
- data/test/import/data/html/pharma24/ac-page-39.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-4.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-40.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-41.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-42.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-43.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-44.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-45.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-46.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-47.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-48.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-49.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-5.html +3168 -0
- data/test/import/data/html/pharma24/ac-page-50.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-51.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-52.html +3003 -0
- data/test/import/data/html/pharma24/ac-page-53.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-54.html +3095 -0
- data/test/import/data/html/pharma24/ac-page-55.html +3041 -0
- data/test/import/data/html/pharma24/ac-page-56.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-57.html +3001 -0
- data/test/import/data/html/pharma24/ac-page-58.html +3001 -0
- data/test/import/data/html/pharma24/ac-page-59.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-6.html +3072 -0
- data/test/import/data/html/pharma24/ac-page-60.html +3001 -0
- data/test/import/data/html/pharma24/ac-page-61.html +3005 -0
- data/test/import/data/html/pharma24/ac-page-62.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-63.html +3007 -0
- data/test/import/data/html/pharma24/ac-page-64.html +3007 -0
- data/test/import/data/html/pharma24/ac-page-65.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-66.html +3011 -0
- data/test/import/data/html/pharma24/ac-page-67.html +3026 -0
- data/test/import/data/html/pharma24/ac-page-68.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-69.html +3010 -0
- data/test/import/data/html/pharma24/ac-page-7.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-70.html +3192 -0
- data/test/import/data/html/pharma24/ac-page-71.html +3133 -0
- data/test/import/data/html/pharma24/ac-page-72.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-73.html +3227 -0
- data/test/import/data/html/pharma24/ac-page-74.html +3241 -0
- data/test/import/data/html/pharma24/ac-page-75.html +3227 -0
- data/test/import/data/html/pharma24/ac-page-76.html +3244 -0
- data/test/import/data/html/pharma24/ac-page-77.html +1164 -0
- data/test/import/data/html/pharma24/ac-page-8.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-9.html +2999 -0
- data/test/import/data/html/pharma24/ac.html +2999 -0
- data/test/import/data/html/pharmnet/display.html +662 -0
- data/test/import/data/html/pharmnet/display1.html +625 -0
- data/test/import/data/html/pharmnet/display2.html +625 -0
- data/test/import/data/html/pharmnet/display3.html +625 -0
- data/test/import/data/html/pharmnet/display_tramal.html +634 -0
- data/test/import/data/html/pharmnet/empty_result.html +395 -0
- data/test/import/data/html/pharmnet/gate.html +246 -0
- data/test/import/data/html/pharmnet/index.html +258 -0
- data/test/import/data/html/pharmnet/paged_result_1.html +401 -0
- data/test/import/data/html/pharmnet/paged_result_2.html +401 -0
- data/test/import/data/html/pharmnet/result.html +401 -0
- data/test/import/data/html/pharmnet/search.html +865 -0
- data/test/import/data/html/pharmnet/search_filtered.html +182 -0
- data/test/import/data/html/whocc/A.html +56 -0
- data/test/import/data/html/whocc/A03.html +48 -0
- data/test/import/data/html/whocc/A03AB.html +48 -0
- data/test/import/data/html/whocc/A06AA.html +47 -0
- data/test/import/data/html/whocc/C03.html +47 -0
- data/test/import/data/html/whocc/login.html +77 -0
- data/test/import/data/mail/csv.mail +81 -0
- data/test/import/data/rtf/pharmnet/aarane.pi.rtf +648 -0
- data/test/import/data/rtf/pharmnet/ace_hemmer_ratio.pi.rtf +324 -0
- data/test/import/data/rtf/pharmnet/ace_hemmer_ratio.rtf +4816 -0
- data/test/import/data/rtf/pharmnet/acemetacin.pi.rtf +388 -0
- data/test/import/data/rtf/pharmnet/acemit.pi.rtf +240 -0
- data/test/import/data/rtf/pharmnet/acerbon.pi.rtf +1257 -0
- data/test/import/data/rtf/pharmnet/acetylcystein.pi.rtf +323 -0
- data/test/import/data/rtf/pharmnet/aciclo.pi.rtf +287 -0
- data/test/import/data/rtf/pharmnet/aciclovir.pi.rtf +236 -0
- data/test/import/data/rtf/pharmnet/actrapid.pi.rtf +322 -0
- data/test/import/data/rtf/pharmnet/amlodipin.pi.rtf +452 -0
- data/test/import/data/rtf/pharmnet/amlodipin.rtf +473 -0
- data/test/import/data/rtf/pharmnet/aspirin.pi.rtf +313 -0
- data/test/import/data/rtf/pharmnet/aspirin.rtf +781 -0
- data/test/import/data/rtf/pharmnet/baymycard.pi.rtf +447 -0
- data/test/import/data/rtf/pharmnet/omeprazol.pi.rtf +510 -0
- data/test/import/data/rtf/pharmnet/omeprazol.rtf +9216 -0
- data/test/import/data/rtf/pharmnet/paroxetin.pi.rtf +678 -0
- data/test/import/data/rtf/pharmnet/selegilin.pi.rtf +312 -0
- data/test/import/data/rtf/pharmnet/selegilin.rtf +683 -0
- data/test/import/data/rtf/pharmnet/valium.pi.rtf +387 -0
- data/test/import/data/txt/gkv/gkv_p1.txt +17 -0
- data/test/import/data/xls/darform_010706.xls +0 -0
- data/test/import/data/xls/fb010706.xls +0 -0
- data/test/import/data/xls/liste_zuzahlungsbefreite_arzneimittel_suchfunktion.xls +0 -0
- data/test/import/data/xls/wirkkurz_010406.xls +0 -0
- data/test/import/data/xml/ATC_2006.xml +47 -0
- data/test/import/data/xml/ATC_2006_ddd.xml +35 -0
- data/test/import/test_dimdi.rb +323 -0
- data/test/import/test_excel.rb +31 -0
- data/test/import/test_gkv.rb +260 -0
- data/test/import/test_pharma24.rb +112 -0
- data/test/import/test_pharmnet.rb +980 -0
- data/test/import/test_rtf.rb +37 -0
- data/test/import/test_whocc.rb +314 -0
- data/test/remote/drugs/test_active_agent.rb +36 -0
- data/test/selenium/selenium-server.jar +0 -0
- data/test/selenium/test_atc_browser.rb +121 -0
- data/test/selenium/test_atc_guidelines.rb +95 -0
- data/test/selenium/test_collect.rb +137 -0
- data/test/selenium/test_compare.rb +294 -0
- data/test/selenium/test_fachinfo.rb +128 -0
- data/test/selenium/test_feedback.rb +192 -0
- data/test/selenium/test_init.rb +64 -0
- data/test/selenium/test_limit.rb +304 -0
- data/test/selenium/test_login.rb +67 -0
- data/test/selenium/test_package.rb +516 -0
- data/test/selenium/test_patinfo.rb +128 -0
- data/test/selenium/test_product.rb +80 -0
- data/test/selenium/test_products.rb +141 -0
- data/test/selenium/test_search.rb +933 -0
- data/test/selenium/test_sequence.rb +513 -0
- data/test/selenium/unit.rb +190 -0
- data/test/stub/http_server.rb +144 -0
- data/test/stub/model.rb +173 -0
- data/test/suite.rb +15 -0
- data/test/test_model.rb +83 -0
- data/test/util/test_code.rb +74 -0
- data/test/util/test_ipn.rb +117 -0
- data/test/util/test_mail.rb +85 -0
- data/test/util/test_multilingual.rb +97 -0
- data/test/util/test_server.rb +94 -0
- data/test/util/test_updater.rb +130 -0
- data/test/util/test_ydim.rb +115 -0
- data/test/util/test_yus.rb +79 -0
- metadata +568 -0
@@ -0,0 +1,37 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Import::TestRtf -- de.oddb.org -- 16.10.2007 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
$: << File.expand_path('../../lib', File.dirname(__FILE__))
|
5
|
+
|
6
|
+
require 'test/unit'
|
7
|
+
require 'oddb/import/rtf'
|
8
|
+
|
9
|
+
module ODDB
|
10
|
+
module Import
|
11
|
+
class TestRtf < Test::Unit::TestCase
|
12
|
+
def setup
|
13
|
+
@importer = Rtf.new
|
14
|
+
end
|
15
|
+
def test_import__rtf
|
16
|
+
path = File.expand_path('data/rtf/pharmnet/selegilin.rtf',
|
17
|
+
File.dirname(__FILE__))
|
18
|
+
document = nil
|
19
|
+
File.open(path) { |fh|
|
20
|
+
document = @importer.import(fh)
|
21
|
+
}
|
22
|
+
assert_instance_of(Text::Document, document)
|
23
|
+
assert_equal(1, document.chapters.size)
|
24
|
+
assert_instance_of(Text::Chapter, document.chapter('default'))
|
25
|
+
end
|
26
|
+
def test_import__html__raises_error
|
27
|
+
path = File.expand_path('data/html/pharmnet/gate.html',
|
28
|
+
File.dirname(__FILE__))
|
29
|
+
assert_raises(ArgumentError) do
|
30
|
+
File.open(path) do |fh|
|
31
|
+
@importer.import(fh)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,314 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Import::Whocc::TestAtc -- de.oddb.org -- 17.11.2006 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
$: << File.expand_path('..', File.dirname(__FILE__))
|
5
|
+
$: << File.expand_path('../../lib', File.dirname(__FILE__))
|
6
|
+
|
7
|
+
require 'flexmock'
|
8
|
+
require 'test/unit'
|
9
|
+
require 'oddb/config'
|
10
|
+
require 'oddb/import/whocc'
|
11
|
+
require 'mechanize'
|
12
|
+
require 'stub/model'
|
13
|
+
|
14
|
+
module ODDB
|
15
|
+
module Drugs
|
16
|
+
class Atc < Model
|
17
|
+
simulate_database(:code)
|
18
|
+
end
|
19
|
+
class Ddd < Model
|
20
|
+
simulate_database
|
21
|
+
end
|
22
|
+
end
|
23
|
+
module Import
|
24
|
+
module Whocc
|
25
|
+
class TestAtc < Test::Unit::TestCase
|
26
|
+
def setup
|
27
|
+
Drugs::Atc.instances.clear
|
28
|
+
@data_dir = File.expand_path('data', File.dirname(__FILE__))
|
29
|
+
@path = File.expand_path('xml/ATC_2006.xml', @data_dir)
|
30
|
+
@import = Atc.new
|
31
|
+
end
|
32
|
+
def test_import
|
33
|
+
assert_equal([], Drugs::Atc.instances)
|
34
|
+
input = open(@path)
|
35
|
+
@import.import(input)
|
36
|
+
assert_equal(23, Drugs::Atc.instances.size)
|
37
|
+
atc = Drugs::Atc.instances.first
|
38
|
+
expected = [ 'A', 'A01', 'A01A', 'A01AA', 'A01AA01', 'A01AA30',
|
39
|
+
'A01AB', 'A01AB02', 'V', 'V01', 'V01A', 'V01AA', 'V01AA01',
|
40
|
+
'V03', 'V03A', 'V03AB', 'V03AB01', 'V03AZ01', 'V04', 'V04C',
|
41
|
+
'V04CC04', 'V04CD', 'V04CD05', ]
|
42
|
+
codes = Drugs::Atc.instances.collect { |atc| atc.code }
|
43
|
+
assert_equal(expected, codes)
|
44
|
+
assert_equal('ALIMENTÄRES SYSTEM UND STOFFWECHSEL',
|
45
|
+
Drugs::Atc.instances.at(0).name.de)
|
46
|
+
assert_equal('STOMATOLOGIKA',
|
47
|
+
Drugs::Atc.instances.at(1).name.de)
|
48
|
+
assert_equal('Somatorelin',
|
49
|
+
Drugs::Atc.instances.at(22).name.de)
|
50
|
+
|
51
|
+
# do it again, nothing should change
|
52
|
+
input = open(@path)
|
53
|
+
@import.import(input)
|
54
|
+
assert_equal(23, Drugs::Atc.instances.size)
|
55
|
+
atc = Drugs::Atc.instances.first
|
56
|
+
codes = Drugs::Atc.instances.collect { |atc| atc.code }
|
57
|
+
assert_equal(expected, codes)
|
58
|
+
assert_equal('ALIMENTÄRES SYSTEM UND STOFFWECHSEL',
|
59
|
+
Drugs::Atc.instances.at(0).name.de)
|
60
|
+
assert_equal('STOMATOLOGIKA',
|
61
|
+
Drugs::Atc.instances.at(1).name.de)
|
62
|
+
assert_equal('Somatorelin',
|
63
|
+
Drugs::Atc.instances.at(22).name.de)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
class TestDdd < Test::Unit::TestCase
|
67
|
+
def setup
|
68
|
+
Drugs::Atc.instances.clear
|
69
|
+
Drugs::Ddd.instances.clear
|
70
|
+
@data_dir = File.expand_path('data', File.dirname(__FILE__))
|
71
|
+
@path = File.expand_path('xml/ATC_2006_ddd.xml', @data_dir)
|
72
|
+
@import = Ddd.new
|
73
|
+
end
|
74
|
+
def test_import
|
75
|
+
assert_equal([], Drugs::Atc.instances)
|
76
|
+
assert_equal([], Drugs::Ddd.instances)
|
77
|
+
input = open(@path)
|
78
|
+
@import.import(input)
|
79
|
+
assert_equal(2, Drugs::Atc.instances.size)
|
80
|
+
assert_equal(3, Drugs::Ddd.instances.size)
|
81
|
+
atc1 = Drugs::Atc.instances.at(0)
|
82
|
+
atc2 = Drugs::Atc.instances.at(1)
|
83
|
+
ddds = Drugs::Ddd.instances
|
84
|
+
assert_equal(ddds[0,1], atc1.ddds)
|
85
|
+
assert_equal(ddds[1,2], atc2.ddds)
|
86
|
+
ddd1 = atc2.ddds.first
|
87
|
+
ddd2 = atc2.ddds.last
|
88
|
+
assert_equal('O', ddd1.administration)
|
89
|
+
assert_equal(Drugs::Dose.new(7, 'mg'), ddd1.dose)
|
90
|
+
assert_equal('mikrokristall. Substanz', ddd1.comment)
|
91
|
+
assert_equal(atc2, ddd1.atc)
|
92
|
+
assert_equal('O', ddd2.administration)
|
93
|
+
assert_equal(Drugs::Dose.new(10, 'mg'), ddd2.dose)
|
94
|
+
assert_nil(ddd2.comment)
|
95
|
+
assert_equal(atc2, ddd2.atc)
|
96
|
+
codes = Drugs::Atc.instances.collect { |atc| atc.code }
|
97
|
+
|
98
|
+
# do it again, nothing should change
|
99
|
+
input = open(@path)
|
100
|
+
@import.import(input)
|
101
|
+
assert_equal(2, Drugs::Atc.instances.size)
|
102
|
+
assert_equal(3, Drugs::Ddd.instances.size)
|
103
|
+
atc1 = Drugs::Atc.instances.at(0)
|
104
|
+
atc2 = Drugs::Atc.instances.at(1)
|
105
|
+
ddds = Drugs::Ddd.instances
|
106
|
+
assert_equal(ddds[0,1], atc1.ddds)
|
107
|
+
assert_equal(ddds[1,2], atc2.ddds)
|
108
|
+
ddd1 = atc2.ddds.first
|
109
|
+
ddd2 = atc2.ddds.last
|
110
|
+
assert_equal('O', ddd1.administration)
|
111
|
+
assert_equal(Drugs::Dose.new(7, 'mg'), ddd1.dose)
|
112
|
+
assert_equal('mikrokristall. Substanz', ddd1.comment)
|
113
|
+
assert_equal(atc2, ddd1.atc)
|
114
|
+
assert_equal('O', ddd2.administration)
|
115
|
+
assert_equal(Drugs::Dose.new(10, 'mg'), ddd2.dose)
|
116
|
+
assert_nil(ddd2.comment)
|
117
|
+
assert_equal(atc2, ddd2.atc)
|
118
|
+
codes = Drugs::Atc.instances.collect { |atc| atc.code }
|
119
|
+
end
|
120
|
+
end
|
121
|
+
class TestGuidelines < Test::Unit::TestCase
|
122
|
+
include FlexMock::TestCase
|
123
|
+
def setup
|
124
|
+
Drugs::Atc.instances.clear
|
125
|
+
@import = Guidelines.new
|
126
|
+
@html_path = File.expand_path('data/html/whocc',
|
127
|
+
File.dirname(__FILE__))
|
128
|
+
end
|
129
|
+
def setup_page(url, html)
|
130
|
+
response = {'content-type' => 'text/html'}
|
131
|
+
WWW::Mechanize::Page.new(URI.parse(url), response, html, 200)
|
132
|
+
end
|
133
|
+
def teardown
|
134
|
+
ODDB.config.credentials = {}
|
135
|
+
super
|
136
|
+
end
|
137
|
+
def test_login
|
138
|
+
ODDB.config.credentials = {
|
139
|
+
'whocc' => {'username' => 'tester', 'password' => 'secret'},
|
140
|
+
}
|
141
|
+
url = 'http://www.whocc.no/atcddd/database/index.php'
|
142
|
+
html = File.read(File.join(@html_path, 'login.html'))
|
143
|
+
page = setup_page(url, html)
|
144
|
+
agent = flexmock('Mechanize')
|
145
|
+
agent.should_receive(:get).with(url).and_return(page)
|
146
|
+
agent.should_receive(:submit).with(WWW::Mechanize::Form)\
|
147
|
+
.and_return { |form|
|
148
|
+
assert_equal('tester', form.username)
|
149
|
+
assert_equal('secret', form.password)
|
150
|
+
}
|
151
|
+
@import.login(agent)
|
152
|
+
end
|
153
|
+
def test_login__no_credentials
|
154
|
+
agent = flexmock('Mechanize')
|
155
|
+
assert_raises(RuntimeError) {
|
156
|
+
@import.login(agent)
|
157
|
+
}
|
158
|
+
end
|
159
|
+
def test_import
|
160
|
+
stub = flexstub(@import)
|
161
|
+
stub.should_receive(:login).with('agent')
|
162
|
+
%w{A B C D G H J L M N P R S V}.each { |level|
|
163
|
+
stub.should_receive(:import_code).with('agent', level)\
|
164
|
+
.times(1).and_return { assert true }
|
165
|
+
}
|
166
|
+
res = @import.import('agent')
|
167
|
+
assert_equal(@import.report, res)
|
168
|
+
end
|
169
|
+
def test_import_code__A
|
170
|
+
url = "http://www.whocc.no/atcddd/database/index.php?query=A&showdescription=yes"
|
171
|
+
html = File.read(File.join(@html_path, 'A.html'))
|
172
|
+
page = setup_page(url, html)
|
173
|
+
agent = flexmock('Mechanize')
|
174
|
+
agent.should_receive(:get).with(url).times(1).and_return(page)
|
175
|
+
@import.import_code(agent, @import.codes.shift)
|
176
|
+
assert_equal(['A'], @import.codes.visited)
|
177
|
+
assert_equal(%w{B C D G H J L M N P R S V A01 A02 A03 A04 A05 A06
|
178
|
+
A07 A08 A09 A10 A11 A12 A13 A14 A15 A16},
|
179
|
+
@import.codes.queue)
|
180
|
+
assert_equal(1, Drugs::Atc.instances.size)
|
181
|
+
atc = Drugs::Atc.instances.first
|
182
|
+
assert_equal('A', atc.code)
|
183
|
+
assert_equal('Alimentary Tract and Metabolism', atc.name.en)
|
184
|
+
assert_equal(nil, atc.guidelines.en)
|
185
|
+
assert_equal(nil, atc.ddd_guidelines.en)
|
186
|
+
end
|
187
|
+
def test_import_code__A03
|
188
|
+
url = "http://www.whocc.no/atcddd/database/index.php?query=A03&showdescription=yes"
|
189
|
+
html = File.read(File.join(@html_path, 'A03.html'))
|
190
|
+
page = setup_page(url, html)
|
191
|
+
agent = flexmock('Mechanize')
|
192
|
+
agent.should_receive(:get).with(url).times(1).and_return(page)
|
193
|
+
@import.codes.queue.clear.push('A03')
|
194
|
+
@import.import_code(agent, @import.codes.shift)
|
195
|
+
assert_equal(['A03'], @import.codes.visited)
|
196
|
+
assert_equal(%w{A A03A A03B A03C A03D A03E A03F},
|
197
|
+
@import.codes.queue)
|
198
|
+
assert_equal(1, Drugs::Atc.instances.size)
|
199
|
+
atc = Drugs::Atc.instances.first
|
200
|
+
assert_equal('A03', atc.code)
|
201
|
+
assert_equal('Drugs for Functional Gastrointestinal Disorders',
|
202
|
+
atc.name.en)
|
203
|
+
expected = <<-EOS
|
204
|
+
A major part of the preparations in this group are combined preparations. Preparations containing e.g. analgesics and antispasmodics could be classified either in this group or in N02 - Analgesics. Combinations of psycholeptics and antispasmodics could be classified in A03 or in N05 - Psycholeptics etc. The main indication for the use of the combination will, together with the relative effect of the active components, decide the classification. In the treatment of pain caused by spasms, the spasmolytic component must be judged as more important than the analgesic component. Accordingly, analgesic/antispasmodic combinations should be classified in A03 if the main effect of the preparation is the antispasmodic action.
|
205
|
+
Combined preparations are classified in:
|
206
|
+
|
207
|
+
|
208
|
+
A03C - Antispasmodics in combination with psycholeptics
|
209
|
+
A03D - Antispasmodics in combination with analgesics
|
210
|
+
A03E - Antispasmodics and anticholinergics in combination with other drugs
|
211
|
+
|
212
|
+
Antispasmodics, which are used specifically in the urogenital tractus, are classified in G04BD - Urinary antispasmodics.
|
213
|
+
|
214
|
+
EOS
|
215
|
+
assert_equal(expected, atc.guidelines.en)
|
216
|
+
expected = <<-EOS
|
217
|
+
The DDD is equal for different routes of administration (oral, parenteral or rectal) of the same compound and is based on the oral dose.
|
218
|
+
EOS
|
219
|
+
assert_equal(expected.chop, atc.ddd_guidelines.en)
|
220
|
+
end
|
221
|
+
def test_import_code__A03AB
|
222
|
+
url = "http://www.whocc.no/atcddd/database/index.php?query=A03AB&showdescription=yes"
|
223
|
+
html = File.read(File.join(@html_path, 'A03AB.html'))
|
224
|
+
page = setup_page(url, html)
|
225
|
+
agent = flexmock('Mechanize')
|
226
|
+
agent.should_receive(:get).with(url).times(1).and_return(page)
|
227
|
+
@import.codes.queue.clear.push('A03AB')
|
228
|
+
@import.import_code(agent, @import.codes.shift)
|
229
|
+
assert_equal(['A03AB'], @import.codes.visited)
|
230
|
+
assert_equal(%w{A A03 A03A}, @import.codes.queue)
|
231
|
+
assert_equal(22, Drugs::Atc.instances.size)
|
232
|
+
atc = Drugs::Atc.instances.first
|
233
|
+
assert_equal('A03AB', atc.code)
|
234
|
+
assert_equal('Synthetic Anticholinergics, Quaternary Ammonium Compounds',
|
235
|
+
atc.name.en)
|
236
|
+
expected = <<-EOS
|
237
|
+
Plain preparations containing glycopyrronium are classified in this group. Preparations containing glycopyrronium in combination with neostigmine are classified in N07AA51. Trospium see G04BD and A03DA.
|
238
|
+
EOS
|
239
|
+
assert_equal(expected.chop, atc.guidelines.en)
|
240
|
+
assert_equal(nil, atc.ddd_guidelines.en)
|
241
|
+
atc = Drugs::Atc.instances.at(1)
|
242
|
+
assert_equal('A03AB01', atc.code)
|
243
|
+
assert_equal('Benzilone', atc.name.en)
|
244
|
+
end
|
245
|
+
def test_import_code__C03
|
246
|
+
url = "http://www.whocc.no/atcddd/database/index.php?query=C03&showdescription=yes"
|
247
|
+
html = File.read(File.join(@html_path, 'C03.html'))
|
248
|
+
page = setup_page(url, html)
|
249
|
+
agent = flexmock('Mechanize')
|
250
|
+
agent.should_receive(:get).with(url).times(1).and_return(page)
|
251
|
+
@import.codes.queue.clear.push('C03')
|
252
|
+
@import.import_code(agent, @import.codes.shift)
|
253
|
+
assert_equal(['C03'], @import.codes.visited)
|
254
|
+
assert_equal(%w{C C03A C03B C03C C03D C03E}, @import.codes.queue)
|
255
|
+
assert_equal(1, Drugs::Atc.instances.size)
|
256
|
+
atc = Drugs::Atc.instances.first
|
257
|
+
assert_equal('C03', atc.code)
|
258
|
+
assert_equal('Diuretics', atc.name.en)
|
259
|
+
expected = <<-EOS
|
260
|
+
This group comprises diuretics, plain and in combination with potassium or other agents. Potassium-sparing agents are classified in C03D and C03E.
|
261
|
+
|
262
|
+
Combinations with digitalis glycosides, see C01AA.
|
263
|
+
|
264
|
+
Combinations with antihypertensives, see C02L - Antihypertensives and diuretics in combination.
|
265
|
+
|
266
|
+
Combinations with beta blocking agents, see C07B - C07D.
|
267
|
+
|
268
|
+
Combinations with calcium channel blockers, see C08.
|
269
|
+
|
270
|
+
Combinations with agents acting on the renin angiotensin system, see C09B and C09D.
|
271
|
+
|
272
|
+
EOS
|
273
|
+
assert_equal(expected, atc.guidelines.en)
|
274
|
+
expected = <<-EOS
|
275
|
+
The DDDs for diuretics are based on monotherapy. Most diuretics are used both for the treatment of edema and hypertension in similar doses and the DDDs are therefore based on both indications.
|
276
|
+
|
277
|
+
The DDDs for combinations correspond to the DDD for the diuretic component, except for ATC group C03E, see comments under this level.
|
278
|
+
EOS
|
279
|
+
assert_equal(expected.chop, atc.ddd_guidelines.en)
|
280
|
+
end
|
281
|
+
def test_report
|
282
|
+
assert_instance_of(Array, @import.report)
|
283
|
+
end
|
284
|
+
end
|
285
|
+
class TestCodeHandler < Test::Unit::TestCase
|
286
|
+
def setup
|
287
|
+
@handler = Guidelines::CodeHandler.new
|
288
|
+
end
|
289
|
+
def test_shift
|
290
|
+
@handler.instance_variable_set('@queue', ['A', 'B'])
|
291
|
+
assert_equal('A', @handler.shift)
|
292
|
+
assert_equal(['A'], @handler.instance_variable_get('@visited'))
|
293
|
+
assert_equal(['B'], @handler.instance_variable_get('@queue'))
|
294
|
+
end
|
295
|
+
def test_push
|
296
|
+
@handler.instance_variable_set('@queue', ['A'])
|
297
|
+
@handler.push('B')
|
298
|
+
assert_equal(['A', 'B'], @handler.instance_variable_get('@queue'))
|
299
|
+
end
|
300
|
+
def test_push__visited
|
301
|
+
@handler.instance_variable_set('@queue', ['A'])
|
302
|
+
@handler.instance_variable_set('@visited', ['B'])
|
303
|
+
@handler.push('B')
|
304
|
+
assert_equal(['A'], @handler.instance_variable_get('@queue'))
|
305
|
+
end
|
306
|
+
def test_push__twice
|
307
|
+
@handler.instance_variable_set('@queue', ['A', 'B'])
|
308
|
+
@handler.push('B')
|
309
|
+
assert_equal(['A', 'B'], @handler.instance_variable_get('@queue'))
|
310
|
+
end
|
311
|
+
end
|
312
|
+
end
|
313
|
+
end
|
314
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Remote::Drugs::TestActiveAgent -- de.oddb.org -- 20.02.2007 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
$: << File.expand_path('../../../lib', File.dirname(__FILE__))
|
5
|
+
|
6
|
+
require 'test/unit'
|
7
|
+
require 'oddb/drugs/active_agent'
|
8
|
+
require 'oddb/drugs/substance'
|
9
|
+
require 'oddb/remote/drugs/active_agent'
|
10
|
+
require 'flexmock'
|
11
|
+
|
12
|
+
module ODDB
|
13
|
+
module Remote
|
14
|
+
module Drugs
|
15
|
+
class TestActiveAgent < Test::Unit::TestCase
|
16
|
+
include FlexMock::TestCase
|
17
|
+
def setup
|
18
|
+
@remote = flexmock('Remote')
|
19
|
+
rsub = flexmock('Substance')
|
20
|
+
rsub.should_receive(:de).and_return('Substance')
|
21
|
+
@remote.should_receive(:substance).and_return(rsub)
|
22
|
+
@active_agent = ActiveAgent.new(0, @remote)
|
23
|
+
end
|
24
|
+
def test_spaceship__no_dose
|
25
|
+
sub = ODDB::Drugs::Substance.new
|
26
|
+
sub.name.de = 'Substance'
|
27
|
+
local = ODDB::Drugs::ActiveAgent.new(sub, 10)
|
28
|
+
@remote.should_receive(:dose).and_return(nil)
|
29
|
+
assert_nothing_raised {
|
30
|
+
@active_agent <=> local
|
31
|
+
}
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
Binary file
|
@@ -0,0 +1,121 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Selenium::TestAtcBrowser -- de.oddb.org -- 14.12.2007 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
$: << File.expand_path('..', File.dirname(__FILE__))
|
5
|
+
|
6
|
+
require 'selenium/unit'
|
7
|
+
require 'stub/model'
|
8
|
+
|
9
|
+
module ODDB
|
10
|
+
module Selenium
|
11
|
+
class TestAtcBrowser < Test::Unit::TestCase
|
12
|
+
include Selenium::TestCase
|
13
|
+
def setup
|
14
|
+
super
|
15
|
+
atc1 = Drugs::Atc.new('N04BA02')
|
16
|
+
atc1.name.de = 'Levodopa und Decarboxylasehemmer'
|
17
|
+
ddd = Drugs::Ddd.new('O')
|
18
|
+
ddd.dose = Drugs::Dose.new(0.6, 'g')
|
19
|
+
atc1.add_ddd(ddd)
|
20
|
+
atc1.save
|
21
|
+
atc2 = Drugs::Atc.new('N04BA')
|
22
|
+
atc2.name.de = 'Dopa und Dopa-Derivate'
|
23
|
+
atc2.guidelines.en = <<-EOS
|
24
|
+
Combinations with decarboxylase inhibitors and other dopaminergic agents are classified here.
|
25
|
+
EOS
|
26
|
+
atc2.ddd_guidelines.en = <<-EOS
|
27
|
+
The DDD for the combination of levodopa and decarboxylase inhibitor is based on the content of levodopa, see ATC index.
|
28
|
+
EOS
|
29
|
+
atc2.save
|
30
|
+
atc3 = Drugs::Atc.new('N04B')
|
31
|
+
atc3.name.de = 'Dopaminerge Mittel'
|
32
|
+
atc3.save
|
33
|
+
atc4 = Drugs::Atc.new('N04')
|
34
|
+
atc4.name.de = 'Antiparkinsonmittel'
|
35
|
+
atc4.guidelines.en = <<-EOS
|
36
|
+
This group comprises preparations used in the treatment of Parkinson's disease and related conditions, including drug-induced parkinsonism.
|
37
|
+
EOS
|
38
|
+
atc4.ddd_guidelines.en = <<-EOS
|
39
|
+
The DDDs are based on recommended doses for the long-term treatment of symptoms of Parkinson's disease.
|
40
|
+
No separate DDDs are established for oral depot formulations.
|
41
|
+
EOS
|
42
|
+
atc4.save
|
43
|
+
atc5 = Drugs::Atc.new('N')
|
44
|
+
atc5.name.de = 'Nervensystem'
|
45
|
+
atc5.save
|
46
|
+
atc6 = Drugs::Atc.new('N04BA03')
|
47
|
+
atc6.name.de = 'Levodopa, Decarboxylasehemmer und COMT-Hemmer'
|
48
|
+
atc6.save
|
49
|
+
flexstub(atc6).should_receive(:packages).and_return(['nonempty'])
|
50
|
+
end
|
51
|
+
def test_atc_browser
|
52
|
+
open "/de/drugs/atc_browser"
|
53
|
+
|
54
|
+
assert_equal 'DE - ODDB.org | Medikamente | ATC-Browser | Open Drug Database',
|
55
|
+
get_title
|
56
|
+
|
57
|
+
assert is_text_present('Nervensystem (N)')
|
58
|
+
assert is_element_present('link=Nervensystem (N)')
|
59
|
+
assert !is_text_present('Antiparkinsonmittel (N04)')
|
60
|
+
assert !is_element_present('link=ddd')
|
61
|
+
|
62
|
+
click 'link=Nervensystem (N)'
|
63
|
+
wait_for_page_to_load "30000"
|
64
|
+
|
65
|
+
assert_equal 'DE - ODDB.org | Medikamente | ATC-Browser | Open Drug Database',
|
66
|
+
get_title
|
67
|
+
assert is_text_present('Nervensystem (N)')
|
68
|
+
assert is_element_present('link=Nervensystem (N)')
|
69
|
+
assert is_text_present('Antiparkinsonmittel (N04)')
|
70
|
+
assert is_element_present('link=Antiparkinsonmittel (N04)')
|
71
|
+
assert is_element_present('link=WHO-DDD')
|
72
|
+
## opened because they are single children:
|
73
|
+
assert is_text_present("Dopaminerge Mittel (N04B)")
|
74
|
+
assert is_element_present("link=Dopaminerge Mittel (N04B)")
|
75
|
+
assert is_text_present("Dopa und Dopa-Derivate (N04BA)")
|
76
|
+
assert is_element_present("link=Dopa und Dopa-Derivate (N04BA)")
|
77
|
+
assert is_text_present("Levodopa und Decarboxylasehemmer (N04BA02)")
|
78
|
+
assert is_text_present("Levodopa, Decarboxylasehemmer und COMT-Hemmer (N04BA03)")
|
79
|
+
## has no packages
|
80
|
+
assert !is_element_present("link=Levodopa und Decarboxylasehemmer (N04BA02)")
|
81
|
+
## has packages
|
82
|
+
assert is_element_present("link=Levodopa, Decarboxylasehemmer und COMT-Hemmer (N04BA03)")
|
83
|
+
|
84
|
+
|
85
|
+
click 'link=Antiparkinsonmittel (N04)'
|
86
|
+
wait_for_page_to_load "30000"
|
87
|
+
assert_equal 'DE - ODDB.org | Medikamente | ATC-Browser | Open Drug Database',
|
88
|
+
get_title
|
89
|
+
assert is_text_present('Nervensystem (N)')
|
90
|
+
assert is_element_present('link=Nervensystem (N)')
|
91
|
+
assert is_text_present('Antiparkinsonmittel (N04)')
|
92
|
+
assert !is_element_present('link=Antiparkinsonmittel (N04)')
|
93
|
+
assert is_element_present('link=WHO-DDD')
|
94
|
+
## opened because they are single children:
|
95
|
+
assert is_text_present("Dopaminerge Mittel (N04B)")
|
96
|
+
assert is_element_present("link=Dopaminerge Mittel (N04B)")
|
97
|
+
assert is_text_present("Dopa und Dopa-Derivate (N04BA)")
|
98
|
+
assert is_element_present("link=Dopa und Dopa-Derivate (N04BA)")
|
99
|
+
assert is_text_present("Levodopa und Decarboxylasehemmer (N04BA02)")
|
100
|
+
assert is_text_present("Levodopa, Decarboxylasehemmer und COMT-Hemmer (N04BA03)")
|
101
|
+
## has no packages
|
102
|
+
assert !is_element_present("link=Levodopa und Decarboxylasehemmer (N04BA02)")
|
103
|
+
## has packages
|
104
|
+
assert is_element_present("link=Levodopa, Decarboxylasehemmer und COMT-Hemmer (N04BA03)")
|
105
|
+
|
106
|
+
end
|
107
|
+
def test_atc_browser__limited
|
108
|
+
ODDB.config.query_limit = 1
|
109
|
+
open "/de/drugs/atc_browser"
|
110
|
+
assert_equal 'DE - ODDB.org | Medikamente | ATC-Browser | Open Drug Database',
|
111
|
+
get_title
|
112
|
+
open "/de/drugs/atc_browser"
|
113
|
+
assert_equal 'DE - ODDB.org | Medikamente | Open Drug Database',
|
114
|
+
get_title
|
115
|
+
assert is_text_present("Abfragebeschränkung")
|
116
|
+
ensure
|
117
|
+
ODDB.config.query_limit = 20
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|