ramaze.ch.oddb.org 1.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 (286) hide show
  1. data/History.txt +6 -0
  2. data/LICENSE +339 -0
  3. data/Manifest.txt +285 -0
  4. data/README.txt +45 -0
  5. data/Rakefile +28 -0
  6. data/bin/admin +69 -0
  7. data/bin/exportd +63 -0
  8. data/bin/migrate +461 -0
  9. data/bin/oddbd +62 -0
  10. data/data/fulltext/data/dicts/french/fulltext.aff +1057 -0
  11. data/data/fulltext/data/dicts/french/fulltext.dict +91189 -0
  12. data/data/fulltext/data/dicts/french/fulltext.stop +135 -0
  13. data/data/fulltext/data/dicts/german/fulltext.aff +1233 -0
  14. data/data/fulltext/data/dicts/german/fulltext.dict +287574 -0
  15. data/data/fulltext/data/dicts/german/fulltext.stop +133 -0
  16. data/data/fulltext/data/german_compound/README +15 -0
  17. data/data/fulltext/data/german_compound/compound.pl +63 -0
  18. data/data/fulltext/data/german_compound/german.stop +20 -0
  19. data/data/fulltext/data/ispell-german-compound.tar.gz +0 -0
  20. data/data/fulltext/redist/dict_french/Makefile +12 -0
  21. data/data/fulltext/redist/dict_french/README.french +1 -0
  22. data/data/fulltext/redist/dict_french/dict_french.sql.in +7 -0
  23. data/data/fulltext/redist/dict_french/dict_snowball.c +56 -0
  24. data/data/fulltext/redist/dict_french/french_stem.c +1222 -0
  25. data/data/fulltext/redist/dict_french/french_stem.h +16 -0
  26. data/data/fulltext/redist/dict_french/subinclude.h +2 -0
  27. data/data/fulltext/redist/dict_german/Makefile +12 -0
  28. data/data/fulltext/redist/dict_german/README.german +1 -0
  29. data/data/fulltext/redist/dict_german/dict_german.sql.in +7 -0
  30. data/data/fulltext/redist/dict_german/dict_snowball.c +56 -0
  31. data/data/fulltext/redist/dict_german/german_stem.c +527 -0
  32. data/data/fulltext/redist/dict_german/german_stem.h +16 -0
  33. data/data/fulltext/redist/dict_german/subinclude.h +1 -0
  34. data/data/fulltext/redist/french_stem.c +1222 -0
  35. data/data/fulltext/redist/french_stem.h +16 -0
  36. data/data/fulltext/redist/german_stem.c +527 -0
  37. data/data/fulltext/redist/german_stem.h +16 -0
  38. data/lib/fixes/ruby19.rb +21 -0
  39. data/lib/fixes/selenium.rb +20 -0
  40. data/lib/fixes/singular.rb +8 -0
  41. data/lib/fixes/yaml.rb +13 -0
  42. data/lib/oddb.rb +11 -0
  43. data/lib/oddb/business/company.rb +18 -0
  44. data/lib/oddb/business/invoice.rb +75 -0
  45. data/lib/oddb/business/price.rb +60 -0
  46. data/lib/oddb/config.rb +73 -0
  47. data/lib/oddb/drugs.rb +16 -0
  48. data/lib/oddb/drugs/active_agent.rb +37 -0
  49. data/lib/oddb/drugs/atc.rb +53 -0
  50. data/lib/oddb/drugs/composition.rb +41 -0
  51. data/lib/oddb/drugs/ddd.rb +24 -0
  52. data/lib/oddb/drugs/dose.rb +107 -0
  53. data/lib/oddb/drugs/galenic_form.rb +21 -0
  54. data/lib/oddb/drugs/galenic_group.rb +17 -0
  55. data/lib/oddb/drugs/package.rb +87 -0
  56. data/lib/oddb/drugs/part.rb +56 -0
  57. data/lib/oddb/drugs/product.rb +25 -0
  58. data/lib/oddb/drugs/sequence.rb +61 -0
  59. data/lib/oddb/drugs/substance.rb +31 -0
  60. data/lib/oddb/drugs/substance_group.rb +13 -0
  61. data/lib/oddb/drugs/unit.rb +12 -0
  62. data/lib/oddb/export.rb +4 -0
  63. data/lib/oddb/export/csv.rb +89 -0
  64. data/lib/oddb/export/l10n_sessions.rb +30 -0
  65. data/lib/oddb/export/rss.rb +44 -0
  66. data/lib/oddb/export/server.rb +58 -0
  67. data/lib/oddb/export/xls.rb +119 -0
  68. data/lib/oddb/export/yaml.rb +123 -0
  69. data/lib/oddb/html/state/drugs/admin/package.rb +189 -0
  70. data/lib/oddb/html/state/drugs/admin/product.rb +56 -0
  71. data/lib/oddb/html/state/drugs/admin/sequence.rb +259 -0
  72. data/lib/oddb/html/state/drugs/ajax/explain_ddd_price.rb +19 -0
  73. data/lib/oddb/html/state/drugs/ajax/explain_price.rb +19 -0
  74. data/lib/oddb/html/state/drugs/ajax/global.rb +18 -0
  75. data/lib/oddb/html/state/drugs/ajax/package_infos.rb +19 -0
  76. data/lib/oddb/html/state/drugs/ajax/remote_infos.rb +19 -0
  77. data/lib/oddb/html/state/drugs/atc_browser.rb +39 -0
  78. data/lib/oddb/html/state/drugs/atc_guidelines.rb +21 -0
  79. data/lib/oddb/html/state/drugs/compare.rb +52 -0
  80. data/lib/oddb/html/state/drugs/download_export.rb +18 -0
  81. data/lib/oddb/html/state/drugs/fachinfo.rb +21 -0
  82. data/lib/oddb/html/state/drugs/feedback.rb +94 -0
  83. data/lib/oddb/html/state/drugs/global.rb +266 -0
  84. data/lib/oddb/html/state/drugs/init.rb +18 -0
  85. data/lib/oddb/html/state/drugs/login.rb +17 -0
  86. data/lib/oddb/html/state/drugs/package.rb +32 -0
  87. data/lib/oddb/html/state/drugs/patinfo.rb +21 -0
  88. data/lib/oddb/html/state/drugs/products.rb +51 -0
  89. data/lib/oddb/html/state/drugs/result.rb +125 -0
  90. data/lib/oddb/html/state/global.rb +165 -0
  91. data/lib/oddb/html/state/global_predefine.rb +17 -0
  92. data/lib/oddb/html/state/limit.rb +17 -0
  93. data/lib/oddb/html/state/login.rb +56 -0
  94. data/lib/oddb/html/state/paypal/checkout.rb +130 -0
  95. data/lib/oddb/html/state/paypal/collect.rb +46 -0
  96. data/lib/oddb/html/state/paypal/redirect.rb +18 -0
  97. data/lib/oddb/html/state/register_export.rb +38 -0
  98. data/lib/oddb/html/state/register_poweruser.rb +17 -0
  99. data/lib/oddb/html/state/viral/admin.rb +76 -0
  100. data/lib/oddb/html/state/viral/poweruser.rb +16 -0
  101. data/lib/oddb/html/util/annotated_list.rb +39 -0
  102. data/lib/oddb/html/util/know_it_all.rb +28 -0
  103. data/lib/oddb/html/util/known_user.rb +55 -0
  104. data/lib/oddb/html/util/lookandfeel.rb +554 -0
  105. data/lib/oddb/html/util/need_all_input.rb +29 -0
  106. data/lib/oddb/html/util/session.rb +88 -0
  107. data/lib/oddb/html/util/sort.rb +72 -0
  108. data/lib/oddb/html/util/unsaved_helper.rb +20 -0
  109. data/lib/oddb/html/util/validator.rb +54 -0
  110. data/lib/oddb/html/view/ajax/json.rb +22 -0
  111. data/lib/oddb/html/view/alpha_header.rb +28 -0
  112. data/lib/oddb/html/view/document.rb +126 -0
  113. data/lib/oddb/html/view/drugs/admin/package.rb +237 -0
  114. data/lib/oddb/html/view/drugs/admin/product.rb +104 -0
  115. data/lib/oddb/html/view/drugs/admin/sequence.rb +312 -0
  116. data/lib/oddb/html/view/drugs/ajax/explain_ddd_price.rb +87 -0
  117. data/lib/oddb/html/view/drugs/ajax/explain_price.rb +61 -0
  118. data/lib/oddb/html/view/drugs/ajax/package_infos.rb +105 -0
  119. data/lib/oddb/html/view/drugs/ajax/remote_infos.rb +44 -0
  120. data/lib/oddb/html/view/drugs/atc_browser.rb +68 -0
  121. data/lib/oddb/html/view/drugs/atc_guidelines.rb +94 -0
  122. data/lib/oddb/html/view/drugs/compare.rb +95 -0
  123. data/lib/oddb/html/view/drugs/download_export.rb +28 -0
  124. data/lib/oddb/html/view/drugs/fachinfo.rb +46 -0
  125. data/lib/oddb/html/view/drugs/feedback.rb +231 -0
  126. data/lib/oddb/html/view/drugs/init.rb +51 -0
  127. data/lib/oddb/html/view/drugs/legend.rb +24 -0
  128. data/lib/oddb/html/view/drugs/package.rb +398 -0
  129. data/lib/oddb/html/view/drugs/patinfo.rb +46 -0
  130. data/lib/oddb/html/view/drugs/products.rb +97 -0
  131. data/lib/oddb/html/view/drugs/result.rb +296 -0
  132. data/lib/oddb/html/view/drugs/search.rb +33 -0
  133. data/lib/oddb/html/view/drugs/template.rb +15 -0
  134. data/lib/oddb/html/view/foot.rb +52 -0
  135. data/lib/oddb/html/view/google.rb +23 -0
  136. data/lib/oddb/html/view/google_ads.rb +40 -0
  137. data/lib/oddb/html/view/head.rb +78 -0
  138. data/lib/oddb/html/view/limit.rb +109 -0
  139. data/lib/oddb/html/view/list.rb +59 -0
  140. data/lib/oddb/html/view/login.rb +38 -0
  141. data/lib/oddb/html/view/navigation.rb +67 -0
  142. data/lib/oddb/html/view/offset_header.rb +35 -0
  143. data/lib/oddb/html/view/paypal/collect.rb +84 -0
  144. data/lib/oddb/html/view/paypal/redirect.rb +51 -0
  145. data/lib/oddb/html/view/paypal/register_form.rb +106 -0
  146. data/lib/oddb/html/view/register_export.rb +29 -0
  147. data/lib/oddb/html/view/register_poweruser.rb +29 -0
  148. data/lib/oddb/html/view/rss/feedback.rb +64 -0
  149. data/lib/oddb/html/view/rss_preview.rb +54 -0
  150. data/lib/oddb/html/view/search.rb +104 -0
  151. data/lib/oddb/html/view/snapback.rb +24 -0
  152. data/lib/oddb/html/view/template.rb +56 -0
  153. data/lib/oddb/import/excel.rb +45 -0
  154. data/lib/oddb/import/import.rb +39 -0
  155. data/lib/oddb/import/rtf.rb +410 -0
  156. data/lib/oddb/import/whocc.rb +173 -0
  157. data/lib/oddb/import/xml.rb +15 -0
  158. data/lib/oddb/model.rb +179 -0
  159. data/lib/oddb/persistence/odba.rb +33 -0
  160. data/lib/oddb/persistence/odba/business/company.rb +13 -0
  161. data/lib/oddb/persistence/odba/business/invoice.rb +15 -0
  162. data/lib/oddb/persistence/odba/drugs/atc.rb +15 -0
  163. data/lib/oddb/persistence/odba/drugs/galenic_form.rb +18 -0
  164. data/lib/oddb/persistence/odba/drugs/galenic_group.rb +13 -0
  165. data/lib/oddb/persistence/odba/drugs/package.rb +25 -0
  166. data/lib/oddb/persistence/odba/drugs/product.rb +13 -0
  167. data/lib/oddb/persistence/odba/drugs/sequence.rb +21 -0
  168. data/lib/oddb/persistence/odba/drugs/substance.rb +21 -0
  169. data/lib/oddb/persistence/odba/drugs/substance_group.rb +13 -0
  170. data/lib/oddb/persistence/odba/drugs/unit.rb +13 -0
  171. data/lib/oddb/persistence/odba/export.rb +26 -0
  172. data/lib/oddb/persistence/odba/model.rb +68 -0
  173. data/lib/oddb/persistence/odba/regulatory/authority.rb +13 -0
  174. data/lib/oddb/persistence/odba/regulatory/registration.rb +13 -0
  175. data/lib/oddb/persistence/odba/text/document.rb +11 -0
  176. data/lib/oddb/persistence/odba/util/code.rb +11 -0
  177. data/lib/oddb/persistence/odba/util/m10l_document.rb +13 -0
  178. data/lib/oddb/persistence/og.rb +16 -0
  179. data/lib/oddb/persistence/og/drugs/composition.rb +14 -0
  180. data/lib/oddb/persistence/og/drugs/product.rb +14 -0
  181. data/lib/oddb/persistence/og/drugs/sequence.rb +15 -0
  182. data/lib/oddb/persistence/og/model.rb +25 -0
  183. data/lib/oddb/persistence/og/util/multilingual.rb +13 -0
  184. data/lib/oddb/redist/rtf_tools/reader.rb +139 -0
  185. data/lib/oddb/regulatory/authority.rb +14 -0
  186. data/lib/oddb/regulatory/registration.rb +15 -0
  187. data/lib/oddb/remote/business/company.rb +23 -0
  188. data/lib/oddb/remote/drugs/active_agent.rb +27 -0
  189. data/lib/oddb/remote/drugs/atc.rb +32 -0
  190. data/lib/oddb/remote/drugs/dose.rb +8 -0
  191. data/lib/oddb/remote/drugs/galenic_form.rb +25 -0
  192. data/lib/oddb/remote/drugs/package.rb +126 -0
  193. data/lib/oddb/remote/drugs/part.rb +30 -0
  194. data/lib/oddb/remote/drugs/product.rb +19 -0
  195. data/lib/oddb/remote/drugs/sequence.rb +46 -0
  196. data/lib/oddb/remote/drugs/substance.rb +20 -0
  197. data/lib/oddb/remote/drugs/unit.rb +19 -0
  198. data/lib/oddb/remote/object.rb +36 -0
  199. data/lib/oddb/remote/text/document.rb +20 -0
  200. data/lib/oddb/remote/util/m10l_document.rb +22 -0
  201. data/lib/oddb/text/chapter.rb +27 -0
  202. data/lib/oddb/text/document.rb +43 -0
  203. data/lib/oddb/text/format.rb +37 -0
  204. data/lib/oddb/text/paragraph.rb +58 -0
  205. data/lib/oddb/text/picture.rb +93 -0
  206. data/lib/oddb/text/table.rb +68 -0
  207. data/lib/oddb/util.rb +8 -0
  208. data/lib/oddb/util/annotated_list.rb +37 -0
  209. data/lib/oddb/util/code.rb +69 -0
  210. data/lib/oddb/util/comparison.rb +36 -0
  211. data/lib/oddb/util/exporter.rb +8 -0
  212. data/lib/oddb/util/feedback.rb +23 -0
  213. data/lib/oddb/util/ipn.rb +48 -0
  214. data/lib/oddb/util/m10l_document.rb +38 -0
  215. data/lib/oddb/util/mail.rb +73 -0
  216. data/lib/oddb/util/money.rb +60 -0
  217. data/lib/oddb/util/multilingual.rb +70 -0
  218. data/lib/oddb/util/quanty.rb +4 -0
  219. data/lib/oddb/util/quanty/fact.rb +229 -0
  220. data/lib/oddb/util/quanty/main.rb +160 -0
  221. data/lib/oddb/util/quanty/parse.rb +853 -0
  222. data/lib/oddb/util/quanty/units.dump +0 -0
  223. data/lib/oddb/util/server.rb +117 -0
  224. data/lib/oddb/util/updater.rb +41 -0
  225. data/lib/oddb/util/ydim.rb +110 -0
  226. data/lib/oddb/util/yus.rb +46 -0
  227. data/test/business/test_company.rb +29 -0
  228. data/test/business/test_price.rb +46 -0
  229. data/test/drugs/test_active_agent.rb +53 -0
  230. data/test/drugs/test_atc.rb +54 -0
  231. data/test/drugs/test_composition.rb +88 -0
  232. data/test/drugs/test_ddd.rb +22 -0
  233. data/test/drugs/test_dose.rb +190 -0
  234. data/test/drugs/test_galenic_form.rb +41 -0
  235. data/test/drugs/test_package.rb +173 -0
  236. data/test/drugs/test_part.rb +32 -0
  237. data/test/drugs/test_product.rb +31 -0
  238. data/test/drugs/test_sequence.rb +140 -0
  239. data/test/drugs/test_substance.rb +51 -0
  240. data/test/drugs/test_substance_group.rb +27 -0
  241. data/test/export/test_rss.rb +94 -0
  242. data/test/export/test_server.rb +117 -0
  243. data/test/export/test_xls.rb +152 -0
  244. data/test/export/test_yaml.rb +120 -0
  245. data/test/import/data/html/whocc/A.html +56 -0
  246. data/test/import/data/html/whocc/A03.html +48 -0
  247. data/test/import/data/html/whocc/A03AB.html +48 -0
  248. data/test/import/data/html/whocc/A06AA.html +47 -0
  249. data/test/import/data/html/whocc/C03.html +47 -0
  250. data/test/import/data/html/whocc/login.html +77 -0
  251. data/test/import/data/xml/ATC_2006.xml +47 -0
  252. data/test/import/data/xml/ATC_2006_ddd.xml +35 -0
  253. data/test/import/test_excel.rb +34 -0
  254. data/test/import/test_rtf.rb +40 -0
  255. data/test/import/test_whocc.rb +315 -0
  256. data/test/remote/drugs/test_active_agent.rb +36 -0
  257. data/test/selenium/selenium-server.jar +0 -0
  258. data/test/selenium/test_atc_browser.rb +122 -0
  259. data/test/selenium/test_atc_guidelines.rb +96 -0
  260. data/test/selenium/test_collect.rb +138 -0
  261. data/test/selenium/test_compare.rb +206 -0
  262. data/test/selenium/test_fachinfo.rb +130 -0
  263. data/test/selenium/test_feedback.rb +196 -0
  264. data/test/selenium/test_init.rb +52 -0
  265. data/test/selenium/test_limit.rb +305 -0
  266. data/test/selenium/test_login.rb +67 -0
  267. data/test/selenium/test_package.rb +512 -0
  268. data/test/selenium/test_patinfo.rb +131 -0
  269. data/test/selenium/test_product.rb +80 -0
  270. data/test/selenium/test_products.rb +142 -0
  271. data/test/selenium/test_search.rb +715 -0
  272. data/test/selenium/test_sequence.rb +543 -0
  273. data/test/selenium/unit.rb +185 -0
  274. data/test/stub/http_server.rb +169 -0
  275. data/test/stub/model.rb +173 -0
  276. data/test/suite.rb +15 -0
  277. data/test/test_model.rb +83 -0
  278. data/test/util/test_code.rb +74 -0
  279. data/test/util/test_ipn.rb +117 -0
  280. data/test/util/test_mail.rb +86 -0
  281. data/test/util/test_multilingual.rb +97 -0
  282. data/test/util/test_server.rb +48 -0
  283. data/test/util/test_updater.rb +353 -0
  284. data/test/util/test_ydim.rb +115 -0
  285. data/test/util/test_yus.rb +79 -0
  286. metadata +418 -0
@@ -0,0 +1,87 @@
1
+ #!/usr/bin/env ruby
2
+ # Html::View::Drugs::Ajax::ExplainDddPrice -- de.oddb.org -- 07.03.2007 -- hwyss@ywesee.com
3
+
4
+ require 'htmlgrid/composite'
5
+ require 'oddb/html/view/drugs/package'
6
+
7
+ module ODDB
8
+ module Html
9
+ module View
10
+ module Drugs
11
+ module Ajax
12
+ class ExplainDddPrice < HtmlGrid::Composite
13
+ include View::Drugs::PackageMethods
14
+ COMPONENTS = {
15
+ [0,0] => :administration,
16
+ [2,0] => :comment,
17
+ [0,1] => :ddd,
18
+ [2,1] => :price_public,
19
+ [0,2] => :dose,
20
+ [2,2] => :package_size,
21
+ [0,3] => :ddd_price_calculation,
22
+ }
23
+ COLSPAN_MAP = {
24
+ [1,3] => 3,
25
+ }
26
+ CSS_MAP = {
27
+ [0,0,4,4] => 'calculation',
28
+ }
29
+ LABELS = true
30
+ LEGACY_INTERFACE = false
31
+ class << self
32
+ def data(*keys)
33
+ keys.each { |key|
34
+ define_method(key) { |model|
35
+ value key, self.send("_#{key}", model)
36
+ }
37
+ }
38
+ end
39
+ end
40
+ data :comment, :ddd, :ddd_price, :dose, :price_public
41
+ def administration(model)
42
+ adm = model[:ddd].administration
43
+ value(:administration,
44
+ @lookandfeel.lookup("administration_#{adm}") { adm })
45
+ end
46
+ def _comment(model)
47
+ model[:ddd].comment
48
+ end
49
+ def _ddd(model)
50
+ model[:ddd].dose
51
+ end
52
+ def _ddd_price(model)
53
+ adjust_price model[:package].dose_price(model[:ddd].dose)
54
+ end
55
+ def ddd_price_calculation(model)
56
+ comp = HtmlGrid::Value.new(:ddd_price_calculation,
57
+ model, @session, self)
58
+ comp.value = @lookandfeel.lookup(:ddd_price_calculation,
59
+ _ddd(model), _dose(model),
60
+ _price_public(model),
61
+ _package_size(model),
62
+ _ddd_price(model))
63
+ comp
64
+ end
65
+ def _dose(model)
66
+ model[:package].doses.first
67
+ end
68
+ def _price_public(model)
69
+ adjust_price model[:package].price(:public)
70
+ end
71
+ def package_size(model)
72
+ value :size, _package_size(model)
73
+ end
74
+ def _package_size(model)
75
+ size(model[:package])
76
+ end
77
+ def value(key, value)
78
+ val = HtmlGrid::Value.new(key, @model, @session, self)
79
+ val.value = value
80
+ val
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,61 @@
1
+ #!/usr/bin/env ruby
2
+ # Html::View::Drugs::Ajax::ExplainPrice -- de.oddb.org -- 07.03.2007 -- hwyss@ywesee.com
3
+
4
+ require 'htmlgrid/composite'
5
+
6
+ module ODDB
7
+ module Html
8
+ module View
9
+ module Drugs
10
+ module Ajax
11
+ class ExplainPrice < HtmlGrid::Composite
12
+ COMPONENTS = {
13
+ [0,0] => :price_db,
14
+ [0,1] => :tax_sub,
15
+ [0,2] => :tax_add,
16
+ [0,3] => :price_local,
17
+ }
18
+ CSS_MAP = {
19
+ [1,0,1,3] => 'price',
20
+ [0,3] => 'sum',
21
+ [1,3] => 'price sum',
22
+ }
23
+ LABELS = true
24
+ LEGACY_INTERFACE = false
25
+ def price_local(price)
26
+ _value :price_local, _price_local(price)
27
+ end
28
+ def _price_local(price)
29
+ price * @lookandfeel.price_factor
30
+ end
31
+ def price_db(price)
32
+ _value :price_db, _price_db(price)
33
+ end
34
+ def _price_db(price)
35
+ price * @lookandfeel.currency_factor
36
+ end
37
+ def tax_add(price)
38
+ _value :tax_add, ['+', _tax_add(price)]
39
+ end
40
+ def _tax_add(price)
41
+ factor = @lookandfeel.tax_factor_add
42
+ _price_local(price) / (1.0 + factor) * factor
43
+ end
44
+ def tax_sub(price)
45
+ _value :tax_sub, ['-', _tax_sub(price)]
46
+ end
47
+ def _tax_sub(price)
48
+ factor = @lookandfeel.tax_factor_sub
49
+ _price_db(price) / (1.0 + factor) * factor
50
+ end
51
+ def _value(key, price)
52
+ value = HtmlGrid::Value.new(key, price, @session, self)
53
+ value.value = price
54
+ value
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,105 @@
1
+ #!/usr/bin/env ruby
2
+ # Html::View::Drugs::Ajax::PackageInfos -- de.oddb.org -- 07.03.2007 -- hwyss@ywesee.com
3
+
4
+ require 'htmlgrid/composite'
5
+ require 'oddb/html/view/drugs/package'
6
+
7
+ module ODDB
8
+ module Html
9
+ module View
10
+ module Drugs
11
+ module Ajax
12
+ class PackageInfos < HtmlGrid::Composite
13
+ include PackageMethods
14
+ LABELS = true
15
+ LEGACY_INTERFACE = false
16
+ COMPONENTS = {
17
+ [0,0] => :code_festbetragsgruppe,
18
+ [0,1,0] => :code_festbetragsstufe,
19
+ [1,1,0] => :opener_festbetragsstufe,
20
+ [1,1,1] => :info_festbetragsstufe,
21
+ [0,2,0] => :code_zuzahlungsbefreit,
22
+ [1,2,0] => :opener_zuzahlungsbefreit,
23
+ [1,2,1] => :info_zuzahlungsbefreit,
24
+ [0,3] => :code_prescription,
25
+ }
26
+ CSS_MAP = {
27
+ [0,1,1,2] => 'top',
28
+ }
29
+ def code_festbetragsgruppe(model)
30
+ if(code = super)
31
+ link_festbetrag(code)
32
+ end
33
+ end
34
+ def code_festbetragsstufe(model)
35
+ if(code = super)
36
+ link_festbetrag(sprintf("%s: %s", code,
37
+ @lookandfeel.lookup("festbetragsstufe_#{code}")))
38
+ end
39
+ end
40
+ def code_prescription(model)
41
+ value = HtmlGrid::Value.new(:prescription, model, @session, self)
42
+ value.value = super
43
+ value
44
+ end
45
+ def code_zuzahlungsbefreit(model)
46
+ link = link_zuzahlungsbefreit(model)
47
+ link.value = super
48
+ link.label = true
49
+ link
50
+ end
51
+ def info_festbetragsstufe(model)
52
+ source = link_festbetrag('')
53
+ source.value = source.href
54
+ txt = @lookandfeel.lookup(:tt_code_festbetragsstufe).strip
55
+ hidden = HtmlGrid::Div.new(model, @session, self)
56
+ hidden.value = [ txt, source ]
57
+ hidden.set_attribute('style', 'display:none')
58
+ hidden.css_id = "info_festbetragsstufe#{model.code(:cid)}"
59
+ hidden.css_class = "hidden"
60
+ hidden
61
+ end
62
+ def info_zuzahlungsbefreit(model)
63
+ source = link_zuzahlungsbefreit(model)
64
+ source.value = source.href
65
+ txt = @lookandfeel.lookup(:tt_code_zuzahlungsbefreit).strip
66
+ hidden = HtmlGrid::Div.new(model, @session, self)
67
+ hidden.value = [ txt, source ]
68
+ hidden.set_attribute('style', 'display:none')
69
+ hidden.css_id = "info_zuzahlungsbefreit#{model.code(:cid)}"
70
+ hidden.css_class = "hidden"
71
+ hidden
72
+ end
73
+ def link_festbetrag(code)
74
+ link = HtmlGrid::Link.new(:festbetrag, model, @session, self)
75
+ link.value = code
76
+ link.href = "http://www.die-gesundheitsreform.de/glossar/festbetraege.html"
77
+ link.label = true
78
+ link
79
+ end
80
+ def link_zuzahlungsbefreit(model)
81
+ link = HtmlGrid::Link.new(:zuzahlungsbefreit, model, @session, self)
82
+ link.href = "https://www.gkv-spitzenverband.de/Befreiungsliste_Arzneimittel_Versicherte.gkvnet"
83
+ link
84
+ end
85
+ def opener(code, type)
86
+ span = HtmlGrid::Span.new(nil, @session, self)
87
+ span.value = @lookandfeel.lookup(:more)
88
+ widget = "package_infos#{code}_widget"
89
+ hidden = "info_#{type}#{code}"
90
+ span.onclick = "open_explanation('#{widget}', '#{hidden}', this)"
91
+ span.css_class = 'opener'
92
+ span
93
+ end
94
+ def opener_festbetragsstufe(model)
95
+ opener(@model.code(:cid), :festbetragsstufe)
96
+ end
97
+ def opener_zuzahlungsbefreit(model)
98
+ opener(@model.code(:cid), :zuzahlungsbefreit)
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env ruby
2
+ # Html::View::Drugs::Ajax::RemoteInfos -- de.oddb.org -- 07.03.2007 -- hwyss@ywesee.com
3
+
4
+ require 'htmlgrid/composite'
5
+
6
+ module ODDB
7
+ module Html
8
+ module View
9
+ module Drugs
10
+ module Ajax
11
+ class RemoteInfos < HtmlGrid::Composite
12
+ LABELS = true
13
+ LEGACY_INTERFACE = false
14
+ COMPONENTS = {
15
+ [0,0] => :ch_sl_entry,
16
+ [0,1] => :ch_ikscat,
17
+ }
18
+ CSS_MAP = {
19
+ [0,1] => 'top',
20
+ }
21
+ DEFAULT_CLASS = HtmlGrid::Value
22
+ def ch_sl_entry(model)
23
+ value = HtmlGrid::Value.new(:ch_sl_entry, model, @session, self)
24
+ value.value = @lookandfeel.lookup(model.sl_entry ? :yes : :no)
25
+ value
26
+ end
27
+ def ch_ikscat(model)
28
+ value = HtmlGrid::Value.new(:ch_ikscat, model, @session, self)
29
+ span = HtmlGrid::Span.new(model, @session, self)
30
+ span.value = code = model.ikscat.to_s
31
+ if(code =~ /[AB]/)
32
+ span.css_class = 'prescription'
33
+ else
34
+ span.css_class = 'otc'
35
+ end
36
+ value.value = [span, ":", @lookandfeel.lookup("ch_ikscat_#{code}")]
37
+ value
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,68 @@
1
+ #!/usr/bin/env ruby
2
+ # Html::View::Drugs::AtcBrowser -- de.oddb.org -- 13.12.2007 -- hwyss@ywesee.com
3
+
4
+ require 'oddb/html/view/drugs/template'
5
+ require 'oddb/html/view/list'
6
+ require 'oddb/html/view/search'
7
+
8
+ module ODDB
9
+ module Html
10
+ module View
11
+ module Drugs
12
+ class AtcList < View::List
13
+ COMPONENTS = {
14
+ [0,0] => :name,
15
+ [1,0] => :ddd_link,
16
+ }
17
+ OMIT_HEADER = true
18
+ STRIPED_BG = false
19
+ #CSS_MAP = { [1,0] => 'atc' }
20
+ def ddd_link(model)
21
+ if(model.interesting?)
22
+ link = HtmlGrid::Link.new(:who_ddd, model, @session, self)
23
+ link.href = @lookandfeel._event_url(:ddd, [:code, model.code])
24
+ link.css_class = 'who-ddd square'
25
+ link
26
+ end
27
+ end
28
+ def name(model)
29
+ css_map.update( [0,0] => "atc level#{model.level} browser",
30
+ [1,0] => "atc level#{model.level}" )
31
+ value = if(name = model.name.send(@session.language))
32
+ [name, " (" << model.code.to_s << ")"]
33
+ else
34
+ model.code
35
+ end
36
+ search_level = model.level > 1 && (code = @session.user_input(:code)) \
37
+ && /^#{model.code}/.match(code) || model.level == 5
38
+ if search_level && model.packages.empty?
39
+ return value
40
+ end
41
+ link = HtmlGrid::Link.new(model.code, model, @session, self)
42
+ if search_level
43
+ link.href = @lookandfeel._event_url(:search,
44
+ [:query, model.code, :dstype, :compare])
45
+ link.css_class = 'search'
46
+ else
47
+ link.href = @lookandfeel._event_url(:atc_browser, :code => model.code)
48
+ end
49
+ link.value = value
50
+ link
51
+ end
52
+ end
53
+ class AtcComposite < HtmlGrid::DivComposite
54
+ COMPONENTS = {
55
+ [0,0] => InlineSearch,
56
+ [0,1] => "atc_browser",
57
+ [0,2] => AtcList,
58
+ }
59
+ CSS_ID_MAP = ['result-search', 'title']
60
+ CSS_MAP = { 1 => 'result' }
61
+ end
62
+ class AtcBrowser < Template
63
+ CONTENT = AtcComposite
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,94 @@
1
+ #!/usr/bin/env ruby
2
+ # Html::View::Drugs::AtcGuidelines -- de.oddb.org -- 09.03.2007 -- hwyss@ywesee.com
3
+
4
+ require 'htmlgrid/divlist'
5
+ require 'oddb/html/view/drugs/template'
6
+ require 'oddb/html/view/list'
7
+
8
+ module ODDB
9
+ module Html
10
+ module View
11
+ module Drugs
12
+ module AtcMethods
13
+ def atc_description(atc)
14
+ sprintf("%s - %s", atc.code, atc.name.send(@session.language))
15
+ end
16
+ end
17
+ class Ddds < View::List
18
+ COMPONENTS = {
19
+ [0,0] => :administration,
20
+ [1,0] => :dose,
21
+ [2,0] => :comment,
22
+ }
23
+ CSS_MAP = {
24
+ [1,0] => 'doses',
25
+ }
26
+ DEFAULT_CLASS = HtmlGrid::Value
27
+ SORT_HEADER = false
28
+ def administration(model)
29
+ ad = model.administration
30
+ @lookandfeel.lookup("administration_#{ad}") { ad }
31
+ end
32
+ end
33
+ class AtcGuidelineList < HtmlGrid::DivList
34
+ include AtcMethods
35
+ COMPONENTS = {
36
+ [0,0] => :atc_description,
37
+ [1,0] => :guidelines,
38
+ [2,0] => :ddd_guidelines,
39
+ [3,0] => :ddds,
40
+ }
41
+ @@atc_re = /\b[A-Z]\d{2}([A-Z]([A-Z](\d{2})?)?)?\b/
42
+ def atc_description(model)
43
+ div(super, "atc groupheader")
44
+ end
45
+ def div(value, klass="atc")
46
+ unless(value.to_s.strip.empty?)
47
+ div = HtmlGrid::Div.new(value, @session, self)
48
+ div.value = value.gsub(@@atc_re) { |match|
49
+ sprintf("<a href='%s'>%s</a>",
50
+ @lookandfeel._event_url(:ddd, [:code, match]), match)
51
+ }
52
+ div.css_class = klass
53
+ div
54
+ end
55
+ end
56
+ def guidelines(model)
57
+ div(model.guidelines.en)
58
+ end
59
+ def ddd_guidelines(model)
60
+ div(model.ddd_guidelines.en, "atc ddd")
61
+ end
62
+ def ddds(model)
63
+ ddds = model.ddds
64
+ unless(ddds.empty?)
65
+ Ddds.new(ddds, @session, self)
66
+ end
67
+ end
68
+ end
69
+ class AtcGuidelinesComposite < HtmlGrid::DivComposite
70
+ include AtcMethods
71
+ include Snapback
72
+ COMPONENTS = {
73
+ [0,0] => :snapback,
74
+ [0,1] => InlineSearch,
75
+ [0,2] => :atc_description,
76
+ [0,3] => :atcs,
77
+ }
78
+ CSS_ID_MAP = [ 'snapback', 'result-search', 'title' ]
79
+ CSS_MAP = { 0 => 'before-searchbar'}
80
+ def atcs(model)
81
+ list = [model]
82
+ while(model = model.parent)
83
+ list.unshift(model)
84
+ end
85
+ AtcGuidelineList.new(list, @session, self)
86
+ end
87
+ end
88
+ class AtcGuidelines < Template
89
+ CONTENT = AtcGuidelinesComposite
90
+ end
91
+ end
92
+ end
93
+ end
94
+ end