de.oddb 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. data/Guide.txt +3 -0
  2. data/History.txt +5 -0
  3. data/LICENCE.txt +339 -0
  4. data/Manifest.txt +430 -0
  5. data/README +423 -0
  6. data/README.txt +25 -0
  7. data/Rakefile +28 -0
  8. data/bin/admin +71 -0
  9. data/bin/exportd +44 -0
  10. data/bin/oddbd +33 -0
  11. data/data/fulltext/data/dicts/french/fulltext.aff +1057 -0
  12. data/data/fulltext/data/dicts/french/fulltext.dict +91189 -0
  13. data/data/fulltext/data/dicts/french/fulltext.stop +135 -0
  14. data/data/fulltext/data/dicts/german/fulltext.aff +1233 -0
  15. data/data/fulltext/data/dicts/german/fulltext.dict +287574 -0
  16. data/data/fulltext/data/dicts/german/fulltext.stop +133 -0
  17. data/data/fulltext/data/german_compound/README +15 -0
  18. data/data/fulltext/data/german_compound/compound.pl +63 -0
  19. data/data/fulltext/data/german_compound/german.stop +20 -0
  20. data/data/fulltext/data/ispell-german-compound.tar.gz +0 -0
  21. data/data/fulltext/redist/dict_french/Makefile +12 -0
  22. data/data/fulltext/redist/dict_french/README.french +1 -0
  23. data/data/fulltext/redist/dict_french/dict_french.sql.in +7 -0
  24. data/data/fulltext/redist/dict_french/dict_snowball.c +56 -0
  25. data/data/fulltext/redist/dict_french/french_stem.c +1222 -0
  26. data/data/fulltext/redist/dict_french/french_stem.h +16 -0
  27. data/data/fulltext/redist/dict_french/subinclude.h +2 -0
  28. data/data/fulltext/redist/dict_german/Makefile +12 -0
  29. data/data/fulltext/redist/dict_german/README.german +1 -0
  30. data/data/fulltext/redist/dict_german/dict_german.sql.in +7 -0
  31. data/data/fulltext/redist/dict_german/dict_snowball.c +56 -0
  32. data/data/fulltext/redist/dict_german/german_stem.c +527 -0
  33. data/data/fulltext/redist/dict_german/german_stem.h +16 -0
  34. data/data/fulltext/redist/dict_german/subinclude.h +1 -0
  35. data/data/fulltext/redist/french_stem.c +1222 -0
  36. data/data/fulltext/redist/french_stem.h +16 -0
  37. data/data/fulltext/redist/german_stem.c +527 -0
  38. data/data/fulltext/redist/german_stem.h +16 -0
  39. data/jobs/export_chde_xls +20 -0
  40. data/jobs/export_csv +20 -0
  41. data/jobs/export_fachinfo_yaml +20 -0
  42. data/jobs/export_patinfo_yaml +20 -0
  43. data/jobs/export_yaml +20 -0
  44. data/jobs/import_dimdi +15 -0
  45. data/jobs/import_gkv +19 -0
  46. data/jobs/import_pharma24 +15 -0
  47. data/jobs/import_pharmnet +30 -0
  48. data/jobs/import_whocc +18 -0
  49. data/lib/fixes/singular.rb +9 -0
  50. data/lib/fixes/yaml.rb +13 -0
  51. data/lib/oddb.rb +13 -0
  52. data/lib/oddb/business/company.rb +18 -0
  53. data/lib/oddb/business/grant_download.rb +27 -0
  54. data/lib/oddb/business/invoice.rb +75 -0
  55. data/lib/oddb/config.rb +112 -0
  56. data/lib/oddb/currency.rb +6 -0
  57. data/lib/oddb/drugs.rb +16 -0
  58. data/lib/oddb/drugs/active_agent.rb +37 -0
  59. data/lib/oddb/drugs/atc.rb +53 -0
  60. data/lib/oddb/drugs/composition.rb +41 -0
  61. data/lib/oddb/drugs/ddd.rb +24 -0
  62. data/lib/oddb/drugs/dose.rb +107 -0
  63. data/lib/oddb/drugs/galenic_form.rb +21 -0
  64. data/lib/oddb/drugs/galenic_group.rb +17 -0
  65. data/lib/oddb/drugs/package.rb +111 -0
  66. data/lib/oddb/drugs/part.rb +55 -0
  67. data/lib/oddb/drugs/product.rb +25 -0
  68. data/lib/oddb/drugs/sequence.rb +68 -0
  69. data/lib/oddb/drugs/substance.rb +31 -0
  70. data/lib/oddb/drugs/substance_group.rb +13 -0
  71. data/lib/oddb/drugs/unit.rb +12 -0
  72. data/lib/oddb/export.rb +4 -0
  73. data/lib/oddb/export/csv.rb +94 -0
  74. data/lib/oddb/export/l10n_sessions.rb +30 -0
  75. data/lib/oddb/export/rss.rb +44 -0
  76. data/lib/oddb/export/server.rb +137 -0
  77. data/lib/oddb/export/xls.rb +127 -0
  78. data/lib/oddb/export/yaml.rb +212 -0
  79. data/lib/oddb/html/state/download.rb +13 -0
  80. data/lib/oddb/html/state/drugs/admin/package.rb +190 -0
  81. data/lib/oddb/html/state/drugs/admin/product.rb +56 -0
  82. data/lib/oddb/html/state/drugs/admin/sequence.rb +253 -0
  83. data/lib/oddb/html/state/drugs/ajax/explain_ddd_price.rb +19 -0
  84. data/lib/oddb/html/state/drugs/ajax/explain_price.rb +19 -0
  85. data/lib/oddb/html/state/drugs/ajax/global.rb +18 -0
  86. data/lib/oddb/html/state/drugs/ajax/package_infos.rb +19 -0
  87. data/lib/oddb/html/state/drugs/ajax/remote_infos.rb +19 -0
  88. data/lib/oddb/html/state/drugs/atc_browser.rb +39 -0
  89. data/lib/oddb/html/state/drugs/atc_guidelines.rb +21 -0
  90. data/lib/oddb/html/state/drugs/compare.rb +52 -0
  91. data/lib/oddb/html/state/drugs/download_export.rb +18 -0
  92. data/lib/oddb/html/state/drugs/downloads.rb +42 -0
  93. data/lib/oddb/html/state/drugs/fachinfo.rb +21 -0
  94. data/lib/oddb/html/state/drugs/feedback.rb +91 -0
  95. data/lib/oddb/html/state/drugs/global.rb +270 -0
  96. data/lib/oddb/html/state/drugs/init.rb +18 -0
  97. data/lib/oddb/html/state/drugs/login.rb +17 -0
  98. data/lib/oddb/html/state/drugs/package.rb +32 -0
  99. data/lib/oddb/html/state/drugs/patinfo.rb +21 -0
  100. data/lib/oddb/html/state/drugs/products.rb +51 -0
  101. data/lib/oddb/html/state/drugs/result.rb +125 -0
  102. data/lib/oddb/html/state/global.rb +206 -0
  103. data/lib/oddb/html/state/global_predefine.rb +17 -0
  104. data/lib/oddb/html/state/limit.rb +17 -0
  105. data/lib/oddb/html/state/login.rb +56 -0
  106. data/lib/oddb/html/state/paypal/checkout.rb +97 -0
  107. data/lib/oddb/html/state/paypal/collect.rb +19 -0
  108. data/lib/oddb/html/state/paypal/download.rb +61 -0
  109. data/lib/oddb/html/state/paypal/redirect.rb +18 -0
  110. data/lib/oddb/html/state/register_download.rb +24 -0
  111. data/lib/oddb/html/state/register_export.rb +38 -0
  112. data/lib/oddb/html/state/register_poweruser.rb +17 -0
  113. data/lib/oddb/html/state/viral/admin.rb +79 -0
  114. data/lib/oddb/html/state/viral/poweruser.rb +16 -0
  115. data/lib/oddb/html/util/annotated_list.rb +39 -0
  116. data/lib/oddb/html/util/know_it_all.rb +28 -0
  117. data/lib/oddb/html/util/known_user.rb +55 -0
  118. data/lib/oddb/html/util/lookandfeel.rb +698 -0
  119. data/lib/oddb/html/util/need_all_input.rb +29 -0
  120. data/lib/oddb/html/util/session.rb +84 -0
  121. data/lib/oddb/html/util/sort.rb +72 -0
  122. data/lib/oddb/html/util/unsaved_helper.rb +20 -0
  123. data/lib/oddb/html/util/validator.rb +59 -0
  124. data/lib/oddb/html/view/ajax/json.rb +22 -0
  125. data/lib/oddb/html/view/alpha_header.rb +28 -0
  126. data/lib/oddb/html/view/document.rb +117 -0
  127. data/lib/oddb/html/view/download.rb +33 -0
  128. data/lib/oddb/html/view/drugs/admin/package.rb +245 -0
  129. data/lib/oddb/html/view/drugs/admin/product.rb +104 -0
  130. data/lib/oddb/html/view/drugs/admin/sequence.rb +305 -0
  131. data/lib/oddb/html/view/drugs/ajax/explain_ddd_price.rb +87 -0
  132. data/lib/oddb/html/view/drugs/ajax/explain_price.rb +61 -0
  133. data/lib/oddb/html/view/drugs/ajax/package_infos.rb +105 -0
  134. data/lib/oddb/html/view/drugs/ajax/remote_infos.rb +44 -0
  135. data/lib/oddb/html/view/drugs/atc_browser.rb +68 -0
  136. data/lib/oddb/html/view/drugs/atc_guidelines.rb +94 -0
  137. data/lib/oddb/html/view/drugs/compare.rb +95 -0
  138. data/lib/oddb/html/view/drugs/download_export.rb +28 -0
  139. data/lib/oddb/html/view/drugs/downloads.rb +128 -0
  140. data/lib/oddb/html/view/drugs/fachinfo.rb +46 -0
  141. data/lib/oddb/html/view/drugs/feedback.rb +235 -0
  142. data/lib/oddb/html/view/drugs/init.rb +51 -0
  143. data/lib/oddb/html/view/drugs/legend.rb +24 -0
  144. data/lib/oddb/html/view/drugs/package.rb +403 -0
  145. data/lib/oddb/html/view/drugs/patinfo.rb +46 -0
  146. data/lib/oddb/html/view/drugs/products.rb +97 -0
  147. data/lib/oddb/html/view/drugs/result.rb +296 -0
  148. data/lib/oddb/html/view/drugs/search.rb +33 -0
  149. data/lib/oddb/html/view/drugs/template.rb +15 -0
  150. data/lib/oddb/html/view/foot.rb +52 -0
  151. data/lib/oddb/html/view/google.rb +23 -0
  152. data/lib/oddb/html/view/google_ads.rb +40 -0
  153. data/lib/oddb/html/view/head.rb +78 -0
  154. data/lib/oddb/html/view/limit.rb +109 -0
  155. data/lib/oddb/html/view/list.rb +59 -0
  156. data/lib/oddb/html/view/login.rb +38 -0
  157. data/lib/oddb/html/view/navigation.rb +67 -0
  158. data/lib/oddb/html/view/offset_header.rb +35 -0
  159. data/lib/oddb/html/view/paypal/collect.rb +95 -0
  160. data/lib/oddb/html/view/paypal/redirect.rb +51 -0
  161. data/lib/oddb/html/view/paypal/register_form.rb +149 -0
  162. data/lib/oddb/html/view/register_download.rb +29 -0
  163. data/lib/oddb/html/view/register_export.rb +29 -0
  164. data/lib/oddb/html/view/register_poweruser.rb +29 -0
  165. data/lib/oddb/html/view/rss/feedback.rb +64 -0
  166. data/lib/oddb/html/view/rss_preview.rb +61 -0
  167. data/lib/oddb/html/view/search.rb +104 -0
  168. data/lib/oddb/html/view/snapback.rb +24 -0
  169. data/lib/oddb/html/view/template.rb +56 -0
  170. data/lib/oddb/import/dimdi.rb +583 -0
  171. data/lib/oddb/import/excel.rb +45 -0
  172. data/lib/oddb/import/gkv.rb +463 -0
  173. data/lib/oddb/import/importer.rb +36 -0
  174. data/lib/oddb/import/pharma24.rb +211 -0
  175. data/lib/oddb/import/pharmnet.rb +1186 -0
  176. data/lib/oddb/import/rtf.rb +409 -0
  177. data/lib/oddb/import/whocc.rb +148 -0
  178. data/lib/oddb/import/xml.rb +15 -0
  179. data/lib/oddb/model.rb +179 -0
  180. data/lib/oddb/persistence.rb +22 -0
  181. data/lib/oddb/persistence/odba.rb +32 -0
  182. data/lib/oddb/persistence/odba/business/company.rb +13 -0
  183. data/lib/oddb/persistence/odba/business/grant_download.rb +14 -0
  184. data/lib/oddb/persistence/odba/business/invoice.rb +15 -0
  185. data/lib/oddb/persistence/odba/drugs/atc.rb +15 -0
  186. data/lib/oddb/persistence/odba/drugs/galenic_form.rb +18 -0
  187. data/lib/oddb/persistence/odba/drugs/galenic_group.rb +13 -0
  188. data/lib/oddb/persistence/odba/drugs/package.rb +25 -0
  189. data/lib/oddb/persistence/odba/drugs/product.rb +13 -0
  190. data/lib/oddb/persistence/odba/drugs/sequence.rb +21 -0
  191. data/lib/oddb/persistence/odba/drugs/substance.rb +21 -0
  192. data/lib/oddb/persistence/odba/drugs/substance_group.rb +13 -0
  193. data/lib/oddb/persistence/odba/drugs/unit.rb +13 -0
  194. data/lib/oddb/persistence/odba/export.rb +26 -0
  195. data/lib/oddb/persistence/odba/model.rb +68 -0
  196. data/lib/oddb/persistence/odba/text/document.rb +11 -0
  197. data/lib/oddb/persistence/odba/util/code.rb +11 -0
  198. data/lib/oddb/persistence/odba/util/m10l_document.rb +13 -0
  199. data/lib/oddb/persistence/og.rb +16 -0
  200. data/lib/oddb/persistence/og/drugs/composition.rb +14 -0
  201. data/lib/oddb/persistence/og/drugs/product.rb +14 -0
  202. data/lib/oddb/persistence/og/drugs/sequence.rb +15 -0
  203. data/lib/oddb/persistence/og/model.rb +25 -0
  204. data/lib/oddb/persistence/og/util/multilingual.rb +13 -0
  205. data/lib/oddb/redist/rtf_tools/reader.rb +139 -0
  206. data/lib/oddb/remote/business/company.rb +17 -0
  207. data/lib/oddb/remote/drugs/active_agent.rb +27 -0
  208. data/lib/oddb/remote/drugs/atc.rb +31 -0
  209. data/lib/oddb/remote/drugs/dose.rb +8 -0
  210. data/lib/oddb/remote/drugs/galenic_form.rb +24 -0
  211. data/lib/oddb/remote/drugs/package.rb +128 -0
  212. data/lib/oddb/remote/drugs/part.rb +30 -0
  213. data/lib/oddb/remote/drugs/substance.rb +20 -0
  214. data/lib/oddb/remote/drugs/unit.rb +20 -0
  215. data/lib/oddb/remote/object.rb +36 -0
  216. data/lib/oddb/text/chapter.rb +23 -0
  217. data/lib/oddb/text/document.rb +42 -0
  218. data/lib/oddb/text/format.rb +37 -0
  219. data/lib/oddb/text/paragraph.rb +53 -0
  220. data/lib/oddb/text/picture.rb +89 -0
  221. data/lib/oddb/text/table.rb +68 -0
  222. data/lib/oddb/util.rb +9 -0
  223. data/lib/oddb/util/annotated_list.rb +37 -0
  224. data/lib/oddb/util/code.rb +69 -0
  225. data/lib/oddb/util/comparison.rb +36 -0
  226. data/lib/oddb/util/download.rb +17 -0
  227. data/lib/oddb/util/exporter.rb +8 -0
  228. data/lib/oddb/util/feedback.rb +23 -0
  229. data/lib/oddb/util/ipn.rb +53 -0
  230. data/lib/oddb/util/job.rb +23 -0
  231. data/lib/oddb/util/logger.rb +20 -0
  232. data/lib/oddb/util/m10l_document.rb +41 -0
  233. data/lib/oddb/util/mail.rb +87 -0
  234. data/lib/oddb/util/money.rb +64 -0
  235. data/lib/oddb/util/multilingual.rb +70 -0
  236. data/lib/oddb/util/quanty.rb +3 -0
  237. data/lib/oddb/util/quanty/fact.rb +242 -0
  238. data/lib/oddb/util/quanty/main.rb +164 -0
  239. data/lib/oddb/util/quanty/parse.rb +872 -0
  240. data/lib/oddb/util/quanty/units.dump +0 -0
  241. data/lib/oddb/util/server.rb +150 -0
  242. data/lib/oddb/util/smtp_tls.rb +58 -0
  243. data/lib/oddb/util/updater.rb +161 -0
  244. data/lib/oddb/util/ydim.rb +110 -0
  245. data/lib/oddb/util/yus.rb +46 -0
  246. data/test/business/test_company.rb +29 -0
  247. data/test/business/test_grant_download.rb +29 -0
  248. data/test/drugs/test_active_agent.rb +53 -0
  249. data/test/drugs/test_atc.rb +54 -0
  250. data/test/drugs/test_composition.rb +88 -0
  251. data/test/drugs/test_ddd.rb +22 -0
  252. data/test/drugs/test_dose.rb +189 -0
  253. data/test/drugs/test_galenic_form.rb +41 -0
  254. data/test/drugs/test_package.rb +172 -0
  255. data/test/drugs/test_part.rb +32 -0
  256. data/test/drugs/test_product.rb +31 -0
  257. data/test/drugs/test_sequence.rb +140 -0
  258. data/test/drugs/test_substance.rb +51 -0
  259. data/test/drugs/test_substance_group.rb +27 -0
  260. data/test/export/test_rss.rb +86 -0
  261. data/test/export/test_server.rb +163 -0
  262. data/test/export/test_xls.rb +146 -0
  263. data/test/export/test_yaml.rb +120 -0
  264. data/test/import/data/csv/products.csv +11 -0
  265. data/test/import/data/html/dimdi_index.html +400 -0
  266. data/test/import/data/html/gkv/Befreiungsliste_Arzneimittel_Versicherte.gkvnet +508 -0
  267. data/test/import/data/html/pharma24/1337397.html +754 -0
  268. data/test/import/data/html/pharma24/842756.html +570 -0
  269. data/test/import/data/html/pharma24/ac-page-10.html +2999 -0
  270. data/test/import/data/html/pharma24/ac-page-11.html +2999 -0
  271. data/test/import/data/html/pharma24/ac-page-12.html +2999 -0
  272. data/test/import/data/html/pharma24/ac-page-13.html +2999 -0
  273. data/test/import/data/html/pharma24/ac-page-14.html +2999 -0
  274. data/test/import/data/html/pharma24/ac-page-15.html +3011 -0
  275. data/test/import/data/html/pharma24/ac-page-16.html +3050 -0
  276. data/test/import/data/html/pharma24/ac-page-17.html +3285 -0
  277. data/test/import/data/html/pharma24/ac-page-18.html +3109 -0
  278. data/test/import/data/html/pharma24/ac-page-19.html +3126 -0
  279. data/test/import/data/html/pharma24/ac-page-2.html +3005 -0
  280. data/test/import/data/html/pharma24/ac-page-20.html +3007 -0
  281. data/test/import/data/html/pharma24/ac-page-21.html +2999 -0
  282. data/test/import/data/html/pharma24/ac-page-22.html +2999 -0
  283. data/test/import/data/html/pharma24/ac-page-23.html +3055 -0
  284. data/test/import/data/html/pharma24/ac-page-24.html +2999 -0
  285. data/test/import/data/html/pharma24/ac-page-25.html +3004 -0
  286. data/test/import/data/html/pharma24/ac-page-26.html +2999 -0
  287. data/test/import/data/html/pharma24/ac-page-27.html +3167 -0
  288. data/test/import/data/html/pharma24/ac-page-28.html +3236 -0
  289. data/test/import/data/html/pharma24/ac-page-29.html +3110 -0
  290. data/test/import/data/html/pharma24/ac-page-3.html +2999 -0
  291. data/test/import/data/html/pharma24/ac-page-30.html +2999 -0
  292. data/test/import/data/html/pharma24/ac-page-31.html +2999 -0
  293. data/test/import/data/html/pharma24/ac-page-32.html +2999 -0
  294. data/test/import/data/html/pharma24/ac-page-33.html +3001 -0
  295. data/test/import/data/html/pharma24/ac-page-34.html +2999 -0
  296. data/test/import/data/html/pharma24/ac-page-35.html +2999 -0
  297. data/test/import/data/html/pharma24/ac-page-36.html +2999 -0
  298. data/test/import/data/html/pharma24/ac-page-37.html +2999 -0
  299. data/test/import/data/html/pharma24/ac-page-38.html +3003 -0
  300. data/test/import/data/html/pharma24/ac-page-39.html +2999 -0
  301. data/test/import/data/html/pharma24/ac-page-4.html +2999 -0
  302. data/test/import/data/html/pharma24/ac-page-40.html +2999 -0
  303. data/test/import/data/html/pharma24/ac-page-41.html +2999 -0
  304. data/test/import/data/html/pharma24/ac-page-42.html +2999 -0
  305. data/test/import/data/html/pharma24/ac-page-43.html +2999 -0
  306. data/test/import/data/html/pharma24/ac-page-44.html +2999 -0
  307. data/test/import/data/html/pharma24/ac-page-45.html +2999 -0
  308. data/test/import/data/html/pharma24/ac-page-46.html +2999 -0
  309. data/test/import/data/html/pharma24/ac-page-47.html +2999 -0
  310. data/test/import/data/html/pharma24/ac-page-48.html +2999 -0
  311. data/test/import/data/html/pharma24/ac-page-49.html +2999 -0
  312. data/test/import/data/html/pharma24/ac-page-5.html +3168 -0
  313. data/test/import/data/html/pharma24/ac-page-50.html +2999 -0
  314. data/test/import/data/html/pharma24/ac-page-51.html +2999 -0
  315. data/test/import/data/html/pharma24/ac-page-52.html +3003 -0
  316. data/test/import/data/html/pharma24/ac-page-53.html +2999 -0
  317. data/test/import/data/html/pharma24/ac-page-54.html +3095 -0
  318. data/test/import/data/html/pharma24/ac-page-55.html +3041 -0
  319. data/test/import/data/html/pharma24/ac-page-56.html +2999 -0
  320. data/test/import/data/html/pharma24/ac-page-57.html +3001 -0
  321. data/test/import/data/html/pharma24/ac-page-58.html +3001 -0
  322. data/test/import/data/html/pharma24/ac-page-59.html +2999 -0
  323. data/test/import/data/html/pharma24/ac-page-6.html +3072 -0
  324. data/test/import/data/html/pharma24/ac-page-60.html +3001 -0
  325. data/test/import/data/html/pharma24/ac-page-61.html +3005 -0
  326. data/test/import/data/html/pharma24/ac-page-62.html +2999 -0
  327. data/test/import/data/html/pharma24/ac-page-63.html +3007 -0
  328. data/test/import/data/html/pharma24/ac-page-64.html +3007 -0
  329. data/test/import/data/html/pharma24/ac-page-65.html +2999 -0
  330. data/test/import/data/html/pharma24/ac-page-66.html +3011 -0
  331. data/test/import/data/html/pharma24/ac-page-67.html +3026 -0
  332. data/test/import/data/html/pharma24/ac-page-68.html +2999 -0
  333. data/test/import/data/html/pharma24/ac-page-69.html +3010 -0
  334. data/test/import/data/html/pharma24/ac-page-7.html +2999 -0
  335. data/test/import/data/html/pharma24/ac-page-70.html +3192 -0
  336. data/test/import/data/html/pharma24/ac-page-71.html +3133 -0
  337. data/test/import/data/html/pharma24/ac-page-72.html +2999 -0
  338. data/test/import/data/html/pharma24/ac-page-73.html +3227 -0
  339. data/test/import/data/html/pharma24/ac-page-74.html +3241 -0
  340. data/test/import/data/html/pharma24/ac-page-75.html +3227 -0
  341. data/test/import/data/html/pharma24/ac-page-76.html +3244 -0
  342. data/test/import/data/html/pharma24/ac-page-77.html +1164 -0
  343. data/test/import/data/html/pharma24/ac-page-8.html +2999 -0
  344. data/test/import/data/html/pharma24/ac-page-9.html +2999 -0
  345. data/test/import/data/html/pharma24/ac.html +2999 -0
  346. data/test/import/data/html/pharmnet/display.html +662 -0
  347. data/test/import/data/html/pharmnet/display1.html +625 -0
  348. data/test/import/data/html/pharmnet/display2.html +625 -0
  349. data/test/import/data/html/pharmnet/display3.html +625 -0
  350. data/test/import/data/html/pharmnet/display_tramal.html +634 -0
  351. data/test/import/data/html/pharmnet/empty_result.html +395 -0
  352. data/test/import/data/html/pharmnet/gate.html +246 -0
  353. data/test/import/data/html/pharmnet/index.html +258 -0
  354. data/test/import/data/html/pharmnet/paged_result_1.html +401 -0
  355. data/test/import/data/html/pharmnet/paged_result_2.html +401 -0
  356. data/test/import/data/html/pharmnet/result.html +401 -0
  357. data/test/import/data/html/pharmnet/search.html +865 -0
  358. data/test/import/data/html/pharmnet/search_filtered.html +182 -0
  359. data/test/import/data/html/whocc/A.html +56 -0
  360. data/test/import/data/html/whocc/A03.html +48 -0
  361. data/test/import/data/html/whocc/A03AB.html +48 -0
  362. data/test/import/data/html/whocc/A06AA.html +47 -0
  363. data/test/import/data/html/whocc/C03.html +47 -0
  364. data/test/import/data/html/whocc/login.html +77 -0
  365. data/test/import/data/mail/csv.mail +81 -0
  366. data/test/import/data/rtf/pharmnet/aarane.pi.rtf +648 -0
  367. data/test/import/data/rtf/pharmnet/ace_hemmer_ratio.pi.rtf +324 -0
  368. data/test/import/data/rtf/pharmnet/ace_hemmer_ratio.rtf +4816 -0
  369. data/test/import/data/rtf/pharmnet/acemetacin.pi.rtf +388 -0
  370. data/test/import/data/rtf/pharmnet/acemit.pi.rtf +240 -0
  371. data/test/import/data/rtf/pharmnet/acerbon.pi.rtf +1257 -0
  372. data/test/import/data/rtf/pharmnet/acetylcystein.pi.rtf +323 -0
  373. data/test/import/data/rtf/pharmnet/aciclo.pi.rtf +287 -0
  374. data/test/import/data/rtf/pharmnet/aciclovir.pi.rtf +236 -0
  375. data/test/import/data/rtf/pharmnet/actrapid.pi.rtf +322 -0
  376. data/test/import/data/rtf/pharmnet/amlodipin.pi.rtf +452 -0
  377. data/test/import/data/rtf/pharmnet/amlodipin.rtf +473 -0
  378. data/test/import/data/rtf/pharmnet/aspirin.pi.rtf +313 -0
  379. data/test/import/data/rtf/pharmnet/aspirin.rtf +781 -0
  380. data/test/import/data/rtf/pharmnet/baymycard.pi.rtf +447 -0
  381. data/test/import/data/rtf/pharmnet/omeprazol.pi.rtf +510 -0
  382. data/test/import/data/rtf/pharmnet/omeprazol.rtf +9216 -0
  383. data/test/import/data/rtf/pharmnet/paroxetin.pi.rtf +678 -0
  384. data/test/import/data/rtf/pharmnet/selegilin.pi.rtf +312 -0
  385. data/test/import/data/rtf/pharmnet/selegilin.rtf +683 -0
  386. data/test/import/data/rtf/pharmnet/valium.pi.rtf +387 -0
  387. data/test/import/data/txt/gkv/gkv_p1.txt +17 -0
  388. data/test/import/data/xls/darform_010706.xls +0 -0
  389. data/test/import/data/xls/fb010706.xls +0 -0
  390. data/test/import/data/xls/liste_zuzahlungsbefreite_arzneimittel_suchfunktion.xls +0 -0
  391. data/test/import/data/xls/wirkkurz_010406.xls +0 -0
  392. data/test/import/data/xml/ATC_2006.xml +47 -0
  393. data/test/import/data/xml/ATC_2006_ddd.xml +35 -0
  394. data/test/import/test_dimdi.rb +323 -0
  395. data/test/import/test_excel.rb +31 -0
  396. data/test/import/test_gkv.rb +260 -0
  397. data/test/import/test_pharma24.rb +112 -0
  398. data/test/import/test_pharmnet.rb +980 -0
  399. data/test/import/test_rtf.rb +37 -0
  400. data/test/import/test_whocc.rb +314 -0
  401. data/test/remote/drugs/test_active_agent.rb +36 -0
  402. data/test/selenium/selenium-server.jar +0 -0
  403. data/test/selenium/test_atc_browser.rb +121 -0
  404. data/test/selenium/test_atc_guidelines.rb +95 -0
  405. data/test/selenium/test_collect.rb +137 -0
  406. data/test/selenium/test_compare.rb +294 -0
  407. data/test/selenium/test_fachinfo.rb +128 -0
  408. data/test/selenium/test_feedback.rb +192 -0
  409. data/test/selenium/test_init.rb +64 -0
  410. data/test/selenium/test_limit.rb +304 -0
  411. data/test/selenium/test_login.rb +67 -0
  412. data/test/selenium/test_package.rb +516 -0
  413. data/test/selenium/test_patinfo.rb +128 -0
  414. data/test/selenium/test_product.rb +80 -0
  415. data/test/selenium/test_products.rb +141 -0
  416. data/test/selenium/test_search.rb +933 -0
  417. data/test/selenium/test_sequence.rb +513 -0
  418. data/test/selenium/unit.rb +190 -0
  419. data/test/stub/http_server.rb +144 -0
  420. data/test/stub/model.rb +173 -0
  421. data/test/suite.rb +15 -0
  422. data/test/test_model.rb +83 -0
  423. data/test/util/test_code.rb +74 -0
  424. data/test/util/test_ipn.rb +117 -0
  425. data/test/util/test_mail.rb +85 -0
  426. data/test/util/test_multilingual.rb +97 -0
  427. data/test/util/test_server.rb +94 -0
  428. data/test/util/test_updater.rb +130 -0
  429. data/test/util/test_ydim.rb +115 -0
  430. data/test/util/test_yus.rb +79 -0
  431. metadata +568 -0
@@ -0,0 +1,67 @@
1
+ #!/usr/bin/env ruby
2
+ # Selenium::TestLogin -- de.oddb.org -- 23.01.2007 -- hwyss@ywesee.com
3
+
4
+ $: << File.expand_path('..', File.dirname(__FILE__))
5
+
6
+ require 'selenium/unit'
7
+ require 'stub/model'
8
+ require 'oddb/config'
9
+
10
+ module ODDB
11
+ module Selenium
12
+ class TestLogin < Test::Unit::TestCase
13
+ include Selenium::TestCase
14
+ def test_login
15
+ open "/"
16
+ assert_equal "DE - ODDB.org | Medikamente | Home | Open Drug Database", @selenium.get_title
17
+ click "link=Anmelden"
18
+ wait_for_page_to_load "30000"
19
+ assert_equal "DE - ODDB.org | Medikamente | Anmelden | Open Drug Database", @selenium.get_title
20
+ assert_equal "E-Mail", get_text("//label[@for='email']")
21
+ assert is_element_present("email")
22
+ assert_equal "Passwort", get_text("//label[@for='pass']")
23
+ assert is_element_present("pass")
24
+ assert_match Regexp.new(ODDB.config.http_server),
25
+ get_attribute("//form[@name='login']@action")
26
+ assert is_element_present("//input[@name='login_']")
27
+ end
28
+ def test_login__fail_unknown_user
29
+ open "/"
30
+ click "link=Anmelden"
31
+ wait_for_page_to_load "30000"
32
+ @auth.should_receive(:login).and_return { raise Yus::UnknownEntityError }
33
+ type "email", "unknown@bbmb.ch"
34
+ type "pass", "secret"
35
+ click "//input[@type='submit']"
36
+ wait_for_page_to_load "30000"
37
+ assert_equal "DE - ODDB.org | Medikamente | Anmelden | Open Drug Database", @selenium.get_title
38
+ assert_equal "error", get_attribute("//label[@for='email']@class")
39
+ end
40
+ def test_login__fail_wrong_password
41
+ open "/"
42
+ click "link=Anmelden"
43
+ wait_for_page_to_load "30000"
44
+ @auth.should_receive(:login).and_return { raise Yus::AuthenticationError }
45
+ type "email", "unknown@bbmb.ch"
46
+ type "pass", "secret"
47
+ click "//input[@type='submit']"
48
+ wait_for_page_to_load "30000"
49
+ assert_equal "DE - ODDB.org | Medikamente | Anmelden | Open Drug Database", @selenium.get_title
50
+ assert_equal "error", get_attribute("//label[@for='pass']@class")
51
+ end
52
+ def test_login__success
53
+ user = login_admin
54
+ assert_equal "DE - ODDB.org | Medikamente | Home | Open Drug Database", @selenium.get_title
55
+ end
56
+ def test_logout
57
+ user = login_admin
58
+ assert_equal "DE - ODDB.org | Medikamente | Home | Open Drug Database", @selenium.get_title
59
+ @auth.should_receive(:logout).and_return { assert true }
60
+ click "link=Abmelden"
61
+ wait_for_page_to_load "30000"
62
+ assert_equal "DE - ODDB.org | Medikamente | Home | Open Drug Database", @selenium.get_title
63
+ assert !is_text_present('Abmelden')
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,516 @@
1
+ #!/usr/bin/env ruby
2
+ # Selenium::TestPackage -- de.oddb.org -- 21.11.2006 -- hwyss@ywesee.com
3
+
4
+ $: << File.expand_path('..', File.dirname(__FILE__))
5
+
6
+ require 'selenium/unit'
7
+ require 'stub/model'
8
+ require 'oddb/drugs'
9
+ require 'oddb/util'
10
+
11
+ module ODDB
12
+ module Selenium
13
+ class TestPackage < Test::Unit::TestCase
14
+ include Selenium::TestCase
15
+ def setup
16
+ Drugs::Part.instances.clear
17
+ Drugs::Package.instances.clear
18
+ Drugs::ActiveAgent.instances.clear
19
+ Drugs::Composition.instances.clear
20
+ Drugs::Sequence.instances.clear
21
+ Drugs::Product.instances.clear
22
+ Business::Company.instances.clear
23
+ super
24
+ end
25
+ def setup_package(pzn='12345')
26
+ product = Drugs::Product.new
27
+ company = Business::Company.new
28
+ company.name.de = 'Producer AG'
29
+ product.company = company
30
+ company.save
31
+ sequence = Drugs::Sequence.new
32
+ sequence.atc = Drugs::Atc.new('N04BB01')
33
+ sequence.atc.name.de = 'Amantadin'
34
+ ddd = Drugs::Ddd.new('O')
35
+ ddd.dose = Drugs::Dose.new(5, 'mg')
36
+ sequence.atc.add_ddd(ddd)
37
+ sequence.product = product
38
+ composition = Drugs::Composition.new
39
+ composition.equivalence_factor = '44.6'
40
+ sequence.add_composition(composition)
41
+ substance = Drugs::Substance.new
42
+ substance.name.de = "Amantadin"
43
+ dose = Drugs::Dose.new(100, 'mg')
44
+ active_agent = Drugs::ActiveAgent.new(substance, dose)
45
+ composition.add_active_agent(active_agent)
46
+ package = Drugs::Package.new
47
+ code = Util::Code.new(:festbetragsstufe, 3, 'DE')
48
+ package.add_code(code)
49
+ code = Util::Code.new(:zuzahlungsbefreit, true, 'DE')
50
+ package.add_code(code)
51
+ code = Util::Code.new(:prescription, true, 'DE')
52
+ package.add_code(code)
53
+ code = Util::Code.new(:cid, pzn, 'DE')
54
+ package.add_code(code)
55
+ part = Drugs::Part.new
56
+ part.composition = composition
57
+ part.package = package
58
+ part.size = 5
59
+ unit = Drugs::Unit.new
60
+ unit.name.de = 'Ampullen'
61
+ part.unit = unit
62
+ part.quantity = Drugs::Dose.new(20, 'ml')
63
+ package.name.de = 'Amantadin by Producer'
64
+ package.sequence = sequence
65
+ package.add_price(Util::Money.new(6, :public, 'DE'))
66
+ package.add_price(Util::Money.new(10, :festbetrag, 'DE'))
67
+ package.save
68
+ package
69
+ end
70
+ def test_package
71
+ package = setup_package
72
+ open "/de/drugs/package/pzn/12345"
73
+ assert_equal "DE - ODDB.org | Medikamente | Details | Amantadin by Producer | Open Drug Database", get_title
74
+ assert is_text_present('Amantadin by Producer - Producer AG')
75
+ assert is_text_present('12345')
76
+ assert !is_text_present('54321')
77
+ assert is_text_present('N04BB01 ( Amantadin )')
78
+ assert is_text_present('Packungsgrösse und Wirkstoffe')
79
+ assert is_text_present('5 Ampullen à 20 ml')
80
+ assert is_text_present('100 mg')
81
+ assert is_text_present('Ja')
82
+ assert !is_text_present('Nein')
83
+ package.code(:zuzahlungsbefreit).value = false
84
+ refresh
85
+ wait_for_page_to_load "30000"
86
+ assert_equal "DE - ODDB.org | Medikamente | Details | Amantadin by Producer | Open Drug Database", get_title
87
+ assert_equal "Nein", get_text('//tr[5]/td[2]')
88
+ assert_equal "Ja", get_text('//tr[6]/td[2]')
89
+
90
+ package2 = setup_package('54321')
91
+ open "/de/drugs/package/pzn/54321"
92
+ assert_equal "DE - ODDB.org | Medikamente | Details | Amantadin by Producer | Open Drug Database",
93
+ get_title
94
+ assert is_text_present('Amantadin by Producer - Producer AG')
95
+ assert is_text_present('Ja')
96
+ assert !is_text_present('Nein')
97
+ assert is_text_present('54321')
98
+ assert !is_text_present('12345')
99
+ end
100
+ def test_package__search
101
+ setup_package
102
+ open "/de/drugs/package/pzn/12345"
103
+ assert_equal "DE - ODDB.org | Medikamente | Details | Amantadin by Producer | Open Drug Database", get_title
104
+ type "query", "Amantadin"
105
+ select "dstype", "Preisvergleich"
106
+ wait_for_page_to_load "30000"
107
+ assert_equal "DE - ODDB.org | Medikamente | Suchen | Amantadin | Preisvergleich | Open Drug Database",
108
+ get_title
109
+ end
110
+ def test_package__limited
111
+ ODDB.config.query_limit = 1
112
+ package = setup_package
113
+ open "/de/drugs/package/pzn/12345"
114
+ assert_equal "DE - ODDB.org | Medikamente | Details | Amantadin by Producer | Open Drug Database", get_title
115
+ open "/de/drugs/package/pzn/12345"
116
+ assert_equal 'DE - ODDB.org | Medikamente | Open Drug Database',
117
+ get_title
118
+ assert is_text_present("Abfragebeschränkung")
119
+ ensure
120
+ ODDB.config.query_limit = 20
121
+ end
122
+ end
123
+ class TestAdminPackage < Test::Unit::TestCase
124
+ include Selenium::TestCase
125
+ def setup
126
+ Drugs::Part.instances.clear
127
+ Drugs::Package.instances.clear
128
+ Drugs::ActiveAgent.instances.clear
129
+ Drugs::Composition.instances.clear
130
+ Drugs::Sequence.instances.clear
131
+ Drugs::Product.instances.clear
132
+ Business::Company.instances.clear
133
+ super
134
+ end
135
+ def setup_package(pzn='12345')
136
+ product = Drugs::Product.new
137
+ company = Business::Company.new
138
+ company.name.de = 'Producer AG'
139
+ product.company = company
140
+ company.save
141
+ sequence = Drugs::Sequence.new
142
+ sequence.atc = Drugs::Atc.new('N04BB01')
143
+ sequence.atc.name.de = 'Amantadin'
144
+ ddd = Drugs::Ddd.new('O')
145
+ ddd.dose = Drugs::Dose.new(5, 'mg')
146
+ sequence.atc.add_ddd(ddd)
147
+ sequence.product = product
148
+ composition = Drugs::Composition.new
149
+ composition.equivalence_factor = '44.6'
150
+ sequence.add_composition(composition)
151
+ substance = Drugs::Substance.new
152
+ substance.name.de = "Amantadin"
153
+ dose = Drugs::Dose.new(100, 'mg')
154
+ active_agent = Drugs::ActiveAgent.new(substance, dose)
155
+ composition.add_active_agent(active_agent)
156
+ package = Drugs::Package.new
157
+ code = Util::Code.new(:festbetragsstufe, 3, 'DE')
158
+ package.add_code(code)
159
+ code = Util::Code.new(:zuzahlungsbefreit, true, 'DE')
160
+ package.add_code(code)
161
+ code = Util::Code.new(:prescription, true, 'DE')
162
+ package.add_code(code)
163
+ code = Util::Code.new(:cid, pzn, 'DE')
164
+ package.add_code(code)
165
+ part = Drugs::Part.new
166
+ part.composition = composition
167
+ part.package = package
168
+ part.size = 5
169
+ unit = Drugs::Unit.new
170
+ unit.name.de = 'Ampullen'
171
+ part.unit = unit
172
+ part.quantity = Drugs::Dose.new(20, 'ml')
173
+ package.name.de = 'Amantadin by Producer'
174
+ package.sequence = sequence
175
+ package.add_price(Util::Money.new(6, :public, 'DE'))
176
+ package.add_price(Util::Money.new(10, :festbetrag, 'DE'))
177
+ package.save
178
+ package
179
+ end
180
+ def test_admin_package
181
+ package = setup_package
182
+ user = login_admin
183
+ open "/de/drugs/package/pzn/12345"
184
+ assert_equal "DE - ODDB.org | Medikamente | Details | Amantadin by Producer | Open Drug Database", get_title
185
+ assert is_element_present("name")
186
+ assert is_element_present("code_cid")
187
+ assert is_element_present("price_public")
188
+ assert is_element_present("price_festbetrag")
189
+ assert is_element_present("code_festbetragsstufe")
190
+ assert is_element_present("code_festbetragsgruppe")
191
+ assert is_element_present("code_zuzahlungsbefreit")
192
+ assert is_element_present("sequence")
193
+ assert is_element_present("code_prescription")
194
+ assert is_element_present("update")
195
+ assert is_element_present("delete")
196
+
197
+ assert_equal "Amantadin by Producer", get_value("name")
198
+ assert_equal "12345", get_value("code_cid")
199
+ assert_equal "6.00", get_value("price_public")
200
+ assert_equal "10.00", get_value("price_festbetrag")
201
+ assert_equal "3", get_value("code_festbetragsstufe")
202
+ assert_equal "", get_value("code_festbetragsgruppe")
203
+ assert is_checked("code_zuzahlungsbefreit")
204
+ assert is_checked("code_prescription")
205
+ assert_equal "Amantadin 100 mg",
206
+ get_selected_label("//select[@name='sequence']")
207
+
208
+ assert !is_element_present("link=-")
209
+ assert is_element_present("multi[0]")
210
+ assert is_element_present("size[0]")
211
+ assert is_element_present("unit[0]")
212
+ assert is_element_present("quantity[0]")
213
+ assert is_element_present("composition[0]")
214
+ assert is_element_present("link=+")
215
+
216
+ assert_equal "5", get_value("size[0]")
217
+ assert_equal "Ampullen", get_value("unit[0]")
218
+ assert_equal "20 ml", get_value("quantity[0]")
219
+ assert_equal "Amantadin 100 mg",
220
+ get_selected_label("//select[@name='composition[0]']")
221
+ end
222
+ def test_admin_package__update__error
223
+ package = setup_package
224
+ other = setup_package('54321')
225
+ user = login_admin
226
+ open "/de/drugs/package/pzn/12345"
227
+ assert_equal "DE - ODDB.org | Medikamente | Details | Amantadin by Producer | Open Drug Database", get_title
228
+
229
+ type "name", ""
230
+ type "code_cid", "54321"
231
+ type "price_public", ""
232
+ type "price_festbetrag", ""
233
+ type "code_festbetragsstufe", ""
234
+ type "code_festbetragsgruppe", ""
235
+ #assert is_element_present("sequence")
236
+ click "code_prescription"
237
+ click "update"
238
+
239
+ wait_for_page_to_load "30000"
240
+
241
+ assert is_text_present("Bitte geben Sie einen Namen an.")
242
+ assert is_text_present("Die Pharmazentralnummer '54321' (Amantadin by Producer) ist bereits vergeben.")
243
+ assert_equal "Amantadin by Producer", get_value("name")
244
+ assert_equal "12345", get_value("code_cid")
245
+ assert_equal "", get_value("price_public")
246
+ assert_equal "", get_value("price_festbetrag")
247
+ assert_equal "", get_value("code_festbetragsstufe")
248
+ assert_equal "", get_value("code_festbetragsgruppe")
249
+ assert is_checked("code_zuzahlungsbefreit")
250
+ assert !is_checked("code_prescription")
251
+ #assert_equal "Amantadin 100 mg",
252
+ # get_selected_label("//select[@name='sequence']")
253
+
254
+ assert_equal "Amantadin by Producer", package.name.de
255
+ assert_equal '12345', package.code(:cid).value
256
+ assert_equal nil, package.price(:public)
257
+ assert_equal nil, package.price(:festbetrag)
258
+ assert_equal nil, package.code(:festbetragsstufe).value
259
+ assert_equal nil, package.code(:festbetragsgruppe).value
260
+ assert_equal true, package.code(:zuzahlungsbefreit).value
261
+ assert_equal false, package.code(:prescription).value
262
+ end
263
+ def test_admin_package__update__success
264
+ package = setup_package
265
+ user = login_admin
266
+ open "/de/drugs/package/pzn/12345"
267
+ assert_equal "DE - ODDB.org | Medikamente | Details | Amantadin by Producer | Open Drug Database", get_title
268
+
269
+ type "name", "Modified Name"
270
+ type "code_cid", "54321"
271
+ type "price_public", "12"
272
+ type "price_festbetrag", "9"
273
+ type "code_festbetragsstufe", "1"
274
+ type "code_festbetragsgruppe", "2"
275
+ click "code_zuzahlungsbefreit"
276
+ #assert is_element_present("sequence")
277
+ click "code_prescription"
278
+ click "update"
279
+
280
+ wait_for_page_to_load "30000"
281
+
282
+ assert_equal "Modified Name", get_value("name")
283
+ assert_equal "54321", get_value("code_cid")
284
+ assert_equal "12.00", get_value("price_public")
285
+ assert_equal "9.00", get_value("price_festbetrag")
286
+ assert_equal "1", get_value("code_festbetragsstufe")
287
+ assert_equal "2", get_value("code_festbetragsgruppe")
288
+ assert !is_checked("code_zuzahlungsbefreit")
289
+ assert !is_checked("code_prescription")
290
+ #assert_equal "Amantadin 100 mg",
291
+ # get_selected_label("//select[@name='sequence']")
292
+
293
+ assert_equal "Modified Name", package.name.de
294
+ assert_equal '54321', package.code(:cid).value
295
+ assert_equal 12, package.price(:public)
296
+ assert_equal 9, package.price(:festbetrag)
297
+ assert_equal "1", package.code(:festbetragsstufe).value
298
+ assert_equal "2", package.code(:festbetragsgruppe).value
299
+ assert_equal false, package.code(:zuzahlungsbefreit).value
300
+ assert_equal false, package.code(:prescription).value
301
+ end
302
+ def test_admin_package__delete
303
+ package = setup_package
304
+ user = login_admin
305
+ open "/de/drugs/package/pzn/12345"
306
+ assert_equal "DE - ODDB.org | Medikamente | Details | Amantadin by Producer | Open Drug Database", get_title
307
+
308
+ click "link=Sequenz"
309
+ wait_for_page_to_load "30000"
310
+ link_loc = "link=12345"
311
+ assert_equal "DE - ODDB.org | Medikamente | Sequenz | #{package.sequence.uid} | Open Drug Database", get_title
312
+ assert is_element_present(link_loc)
313
+ click link_loc
314
+ wait_for_page_to_load "30000"
315
+ assert_equal "DE - ODDB.org | Medikamente | Details | Amantadin by Producer | Open Drug Database", get_title
316
+
317
+ click "delete"
318
+ assert_equal "Wollen Sie diese Packung wirklich löschen?", get_confirmation
319
+
320
+ wait_for_page_to_load "30000"
321
+
322
+ assert_equal "DE - ODDB.org | Medikamente | Sequenz | #{package.sequence.uid} | Open Drug Database", get_title
323
+ assert !is_element_present(link_loc)
324
+ end
325
+ def test_admin_package__parts
326
+ package = setup_package
327
+ unit = ODDB::Drugs::Unit.new
328
+ unit.name.de = "Fertigspritzen"
329
+ unit.save
330
+ user = login_admin
331
+ open "/de/drugs/package/pzn/12345"
332
+ assert_equal "DE - ODDB.org | Medikamente | Details | Amantadin by Producer | Open Drug Database", get_title
333
+ assert is_element_present("link=+")
334
+ assert !is_element_present("link=-")
335
+
336
+ click "link=+"
337
+ sleep(0.5)
338
+ assert !is_element_present("link=+")
339
+ assert is_element_present("link=-")
340
+ assert is_element_present("multi[1]")
341
+ assert is_element_present("size[1]")
342
+ assert is_element_present("unit[1]")
343
+ assert is_element_present("quantity[1]")
344
+ assert is_element_present("composition[1]")
345
+ refresh
346
+ wait_for_page_to_load "30000"
347
+
348
+ assert_equal "DE - ODDB.org | Medikamente | Details | Amantadin by Producer | Open Drug Database", get_title
349
+ assert is_element_present("link=+")
350
+ assert !is_element_present("link=-")
351
+ assert !is_element_present("multi[1]")
352
+ assert !is_element_present("size[1]")
353
+ assert !is_element_present("unit[1]")
354
+ assert !is_element_present("quantity[1]")
355
+ assert !is_element_present("composition[1]")
356
+
357
+ click "link=+"
358
+ sleep(0.5)
359
+ type "multi[1]", "10"
360
+ type "size[1]", "5"
361
+ type "unit[1]", "Fertigspritzen"
362
+ type "quantity[1]", "20ml"
363
+
364
+ click "update"
365
+ wait_for_page_to_load "30000"
366
+
367
+ assert_equal 2, package.parts.size
368
+ part = package.parts.last
369
+ assert_equal 10, part.multi
370
+ assert_equal 5, part.size
371
+ assert_equal unit, part.unit
372
+ assert_equal ODDB::Drugs::Dose.new(20, 'ml'), part.quantity
373
+
374
+ assert is_element_present("link=+")
375
+ assert is_element_present("link=-")
376
+ assert is_element_present("multi[1]")
377
+ assert is_element_present("size[1]")
378
+ assert is_element_present("unit[1]")
379
+ assert is_element_present("quantity[1]")
380
+ assert is_element_present("composition[1]")
381
+ assert_equal "10", get_value("multi[1]")
382
+ assert_equal "5", get_value("size[1]")
383
+ assert_equal "Fertigspritzen", get_value("unit[1]")
384
+ assert_equal "20 ml", get_value("quantity[1]")
385
+
386
+ click "link=+"
387
+ sleep(0.5)
388
+ assert is_element_present("multi[2]")
389
+ click "//table[@id='parts']//tr[3]//td[1]//a"
390
+ sleep(0.5)
391
+ assert is_element_present("link=+")
392
+ assert !is_element_present("multi[2]")
393
+
394
+ click "//table[@id='parts']//tr[2]//td[1]//a"
395
+ sleep(0.5)
396
+ assert !is_element_present("multi[1]")
397
+ assert_equal 1, package.parts.size
398
+ end
399
+ def test_admin_package__not_limited
400
+ ODDB.config.query_limit = 1
401
+ package = setup_package
402
+ user = login_admin
403
+ 2.times {
404
+ open "/de/drugs/package/pzn/12345"
405
+ assert_equal "DE - ODDB.org | Medikamente | Details | Amantadin by Producer | Open Drug Database", get_title
406
+ assert is_element_present("name")
407
+ assert is_element_present("code_cid")
408
+ assert is_element_present("price_public")
409
+ assert is_element_present("price_festbetrag")
410
+ assert is_element_present("code_festbetragsstufe")
411
+ assert is_element_present("code_festbetragsgruppe")
412
+ assert is_element_present("code_zuzahlungsbefreit")
413
+ assert is_element_present("code_prescription")
414
+ }
415
+ ensure
416
+ ODDB.config.query_limit = 20
417
+ end
418
+ def test_admin_new_package__success
419
+ package = setup_package
420
+ user = login_admin
421
+ uid = package.sequence.uid
422
+ open "/de/drugs/sequence/uid/#{uid}"
423
+ assert_equal "DE - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
424
+
425
+ click "new_package"
426
+ wait_for_page_to_load "30000"
427
+ assert_equal "DE - ODDB.org | Medikamente | Neue Packung | Open Drug Database", get_title
428
+
429
+ type "name", "New Package"
430
+ type "code_cid", "12346"
431
+ type "price_public", "12"
432
+ type "price_festbetrag", "9"
433
+ type "code_festbetragsstufe", "1"
434
+ type "code_festbetragsgruppe", "2"
435
+ click "code_zuzahlungsbefreit"
436
+ #assert is_element_present("sequence")
437
+ click "code_prescription"
438
+ click "update"
439
+
440
+ wait_for_page_to_load "30000"
441
+
442
+ assert_equal "New Package", get_value("name")
443
+ assert_equal "12346", get_value("code_cid")
444
+ assert_equal "12.00", get_value("price_public")
445
+ assert_equal "9.00", get_value("price_festbetrag")
446
+ assert_equal "1", get_value("code_festbetragsstufe")
447
+ assert_equal "2", get_value("code_festbetragsgruppe")
448
+ assert is_checked("code_zuzahlungsbefreit")
449
+ assert is_checked("code_prescription")
450
+
451
+ assert_equal 2, package.sequence.packages.size
452
+ package = package.sequence.packages.last
453
+ assert_equal "New Package", package.name.de
454
+ assert_equal '12346', package.code(:cid).value
455
+ assert_equal 12, package.price(:public)
456
+ assert_equal 9, package.price(:festbetrag)
457
+ assert_equal "1", package.code(:festbetragsstufe).value
458
+ assert_equal "2", package.code(:festbetragsgruppe).value
459
+ assert_equal true, package.code(:zuzahlungsbefreit).value
460
+ assert_equal true, package.code(:prescription).value
461
+ end
462
+ def test_admin_new_package__errors
463
+ package = setup_package
464
+ user = login_admin
465
+ uid = package.sequence.uid
466
+ open "/de/drugs/sequence/uid/#{uid}"
467
+ assert_equal "DE - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
468
+
469
+ click "new_package"
470
+ wait_for_page_to_load "30000"
471
+ assert_equal "DE - ODDB.org | Medikamente | Neue Packung | Open Drug Database", get_title
472
+
473
+ type "code_cid", "12345"
474
+ type "price_public", "12"
475
+ type "price_festbetrag", "9"
476
+ type "code_festbetragsstufe", "1"
477
+ type "code_festbetragsgruppe", "2"
478
+ click "code_zuzahlungsbefreit"
479
+ #assert is_element_present("sequence")
480
+ click "code_prescription"
481
+ click "update"
482
+
483
+ wait_for_page_to_load "30000"
484
+
485
+ assert is_text_present("Bitte geben Sie einen Namen an.")
486
+ assert is_text_present("Die Pharmazentralnummer '12345' (Amantadin by Producer) ist bereits vergeben.")
487
+ assert_equal "12345", get_value("code_cid")
488
+ assert_equal "12", get_value("price_public")
489
+ assert_equal "9", get_value("price_festbetrag")
490
+ assert_equal "1", get_value("code_festbetragsstufe")
491
+ assert_equal "2", get_value("code_festbetragsgruppe")
492
+ assert !is_checked("code_zuzahlungsbefreit")
493
+ assert !is_checked("code_prescription")
494
+
495
+ assert_equal 1, package.sequence.packages.size
496
+ end
497
+ def test_admin_new_package__delete
498
+ package = setup_package
499
+ user = login_admin
500
+ uid = package.sequence.uid
501
+ open "/de/drugs/sequence/uid/#{uid}"
502
+ assert_equal "DE - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
503
+
504
+ click "new_package"
505
+ wait_for_page_to_load "30000"
506
+ assert_equal "DE - ODDB.org | Medikamente | Neue Packung | Open Drug Database", get_title
507
+
508
+ click "delete"
509
+ wait_for_page_to_load "30000"
510
+ assert_equal "DE - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
511
+
512
+ assert_equal 1, package.sequence.packages.size
513
+ end
514
+ end
515
+ end
516
+ end