renalware-core 2.0.0.pre.beta4 → 2.0.0.pre.beta5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (350) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -2
  3. data/app/assets/javascripts/renalware/application.js.erb +3 -0
  4. data/app/assets/javascripts/renalware/dialogs.js.erb +3 -1
  5. data/app/assets/javascripts/renalware/forms.js +0 -17
  6. data/app/assets/javascripts/renalware/keyboard_shortcuts.js +4 -0
  7. data/app/assets/javascripts/renalware/messaging.js +15 -0
  8. data/app/assets/javascripts/renalware/modality_codes.js +1 -0
  9. data/app/assets/javascripts/renalware/pdf.js +6 -3
  10. data/app/assets/javascripts/renalware/renal.js +2 -1
  11. data/app/assets/javascripts/renalware/session_timeout_redirect.js.erb +10 -4
  12. data/app/assets/javascripts/renalware/toggler.js +5 -0
  13. data/app/assets/stylesheets/renalware/base/_variables.scss +3 -1
  14. data/app/assets/stylesheets/renalware/lib/_foundation_and_overrides.scss +1 -1
  15. data/app/assets/stylesheets/renalware/lib/_select2-foundation5-overrides.scss +22 -1
  16. data/app/assets/stylesheets/renalware/lib/_select2-foundation5.scss +7 -4
  17. data/app/assets/stylesheets/renalware/modules/_dashboard.scss +1 -0
  18. data/app/assets/stylesheets/renalware/modules/_messaging.scss +55 -0
  19. data/app/assets/stylesheets/renalware/modules/_patients.scss +70 -0
  20. data/app/assets/stylesheets/renalware/partials/_button.scss +10 -0
  21. data/app/assets/stylesheets/renalware/partials/_forms.scss +9 -1
  22. data/app/assets/stylesheets/renalware/partials/_lists.scss +6 -1
  23. data/app/assets/stylesheets/renalware/partials/_navigation.scss +36 -1
  24. data/app/assets/stylesheets/renalware/partials/_simple_form.scss +1 -1
  25. data/app/assets/stylesheets/renalware/partials/_tables.scss +40 -1
  26. data/app/controllers/renalware/accesses/assessments_controller.rb +2 -2
  27. data/app/controllers/renalware/accesses/procedures_controller.rb +2 -2
  28. data/app/controllers/renalware/accesses/profiles_controller.rb +2 -2
  29. data/app/controllers/renalware/admin/users_controller.rb +1 -1
  30. data/app/controllers/renalware/base_controller.rb +1 -1
  31. data/app/controllers/renalware/clinical/body_compositions_controller.rb +1 -14
  32. data/app/controllers/renalware/clinical/dry_weights_controller.rb +1 -1
  33. data/app/controllers/renalware/clinics/clinic_visits_controller.rb +3 -3
  34. data/app/controllers/renalware/concerns/pdf_renderable.rb +0 -1
  35. data/app/controllers/renalware/deaths_controller.rb +1 -1
  36. data/app/controllers/renalware/devise/sessions_controller.rb +24 -0
  37. data/app/controllers/renalware/directory/people_controller.rb +30 -20
  38. data/app/controllers/renalware/drugs/drugs_controller.rb +2 -2
  39. data/app/controllers/renalware/events/events_controller.rb +19 -4
  40. data/app/controllers/renalware/events/types_controller.rb +2 -2
  41. data/app/controllers/renalware/hd/cannulation_types_controller.rb +2 -2
  42. data/app/controllers/renalware/hd/current_profile_controller.rb +1 -1
  43. data/app/controllers/renalware/hd/dialysers_controller.rb +2 -2
  44. data/app/controllers/renalware/hd/preference_sets_controller.rb +1 -1
  45. data/app/controllers/renalware/hd/sessions_controller.rb +1 -1
  46. data/app/controllers/renalware/hd/stations_controller.rb +79 -0
  47. data/app/controllers/renalware/hospitals/units_controller.rb +4 -3
  48. data/app/controllers/renalware/letters/contacts_controller.rb +3 -3
  49. data/app/controllers/renalware/letters/letters_controller.rb +2 -2
  50. data/app/controllers/renalware/medications/drug_types/prescriptions_controller.rb +3 -0
  51. data/app/controllers/renalware/messaging/messages_controller.rb +73 -0
  52. data/app/controllers/renalware/messaging/receipts_controller.rb +55 -0
  53. data/app/controllers/renalware/messaging/sent_messages_controller.rb +22 -0
  54. data/app/controllers/renalware/modalities/descriptions_controller.rb +31 -17
  55. data/app/controllers/renalware/modalities/modalities_controller.rb +21 -13
  56. data/app/controllers/renalware/pathology/current_observation_results_controller.rb +1 -1
  57. data/app/controllers/renalware/pathology/historical_observation_results_controller.rb +1 -1
  58. data/app/controllers/renalware/pathology/patient_rules_controller.rb +2 -2
  59. data/app/controllers/renalware/pathology/recent_observation_results_controller.rb +1 -1
  60. data/app/controllers/renalware/pathology/requests/requests_controller.rb +1 -1
  61. data/app/controllers/renalware/patients/alerts_controller.rb +61 -0
  62. data/app/controllers/renalware/patients/clinical_summaries_controller.rb +15 -0
  63. data/app/controllers/renalware/patients/patients_controller.rb +109 -0
  64. data/app/controllers/renalware/patients/primary_care_physicians_controller.rb +3 -2
  65. data/app/controllers/renalware/patients/worry_controller.rb +13 -2
  66. data/app/controllers/renalware/patients/worryboard_controller.rb +15 -1
  67. data/app/controllers/renalware/pd/bag_types_controller.rb +2 -2
  68. data/app/controllers/renalware/pd/exit_site_infections_controller.rb +2 -2
  69. data/app/controllers/renalware/pd/peritonitis_episodes_controller.rb +1 -1
  70. data/app/controllers/renalware/pd/pet_adequacy_results_controller.rb +2 -2
  71. data/app/controllers/renalware/pd/regimes_controller.rb +2 -2
  72. data/app/controllers/renalware/problems/problems_controller.rb +2 -2
  73. data/app/controllers/renalware/system/errors_controller.rb +20 -0
  74. data/app/controllers/renalware/system/mock_errors_controller.rb +12 -0
  75. data/app/controllers/renalware/transplants/donations_controller.rb +2 -2
  76. data/app/controllers/renalware/transplants/donor_operations_controller.rb +2 -2
  77. data/app/controllers/renalware/transplants/donor_workups_controller.rb +1 -1
  78. data/app/controllers/renalware/transplants/recipient_followups_controller.rb +2 -2
  79. data/app/controllers/renalware/transplants/recipient_operations_controller.rb +2 -2
  80. data/app/controllers/renalware/transplants/recipient_workups_controller.rb +1 -1
  81. data/app/controllers/renalware/transplants/registration_statuses_controller.rb +2 -2
  82. data/app/controllers/renalware/transplants/registrations_controller.rb +1 -1
  83. data/app/documents/renalware/renal/profile_document.rb +1 -0
  84. data/app/documents/renalware/smoking_status.rb +9 -0
  85. data/app/helpers/renalware/application_helper.rb +1 -1
  86. data/app/helpers/renalware/navigation_helper.rb +1 -1
  87. data/app/models/concerns/renalware/accountable.rb +16 -1
  88. data/app/models/concerns/renalware/broadcasting.rb +33 -0
  89. data/app/models/renalware/clinical/modality_description.rb +3 -0
  90. data/app/models/renalware/deaths/modality_description.rb +3 -0
  91. data/app/models/renalware/directory/person.rb +1 -1
  92. data/app/models/renalware/events/event.rb +3 -1
  93. data/app/models/renalware/events/event_query.rb +29 -0
  94. data/app/models/renalware/events/line_change_event_query.rb +25 -0
  95. data/app/models/renalware/events/patient_listener.rb +8 -0
  96. data/app/models/renalware/events/simple.rb +1 -1
  97. data/app/models/renalware/hd/diurnal_period_code.rb +9 -0
  98. data/app/models/renalware/hd/mdm_patients_query.rb +1 -0
  99. data/app/models/renalware/hd/modality_description.rb +3 -0
  100. data/app/models/renalware/hd/patient_listener.rb +20 -0
  101. data/app/models/renalware/hd/patients_with_unmet_preferences_query.rb +2 -0
  102. data/app/models/renalware/hd/session/closed.rb +2 -2
  103. data/app/models/renalware/hd/station.rb +24 -0
  104. data/app/models/renalware/hospitals/unit.rb +1 -0
  105. data/app/models/renalware/letters/draft_letter.rb +1 -1
  106. data/app/models/renalware/letters/letter_params_processor.rb +2 -2
  107. data/app/models/renalware/letters/letter_query.rb +1 -1
  108. data/app/models/renalware/letters/part/recent_pathology_results.rb +9 -4
  109. data/app/models/renalware/letters/patient_listener.rb +16 -0
  110. data/app/models/renalware/letters/revise_letter.rb +1 -1
  111. data/app/models/renalware/medications/patient_listener.rb +11 -0
  112. data/app/models/renalware/medications/prescriptions_by_drug_type_query.rb +2 -1
  113. data/app/models/renalware/medications/terminate_all_patient_prescriptions.rb +24 -0
  114. data/app/models/renalware/messaging/author.rb +9 -0
  115. data/app/models/renalware/messaging/message.rb +19 -0
  116. data/app/models/renalware/messaging/message_factory.rb +18 -0
  117. data/app/models/renalware/messaging/message_form.rb +34 -0
  118. data/app/models/renalware/messaging/message_form_builder.rb +50 -0
  119. data/app/models/renalware/messaging/patient.rb +13 -0
  120. data/app/models/renalware/messaging/receipt.rb +19 -0
  121. data/app/models/renalware/messaging/recipient.rb +10 -0
  122. data/app/models/renalware/messaging/recipient_options.rb +85 -0
  123. data/app/models/renalware/messaging/send_message.rb +22 -0
  124. data/app/models/renalware/messaging.rb +21 -0
  125. data/app/models/renalware/modalities/change_patient_modality.rb +112 -0
  126. data/app/models/renalware/modalities/description.rb +9 -5
  127. data/app/models/renalware/modalities/modality.rb +4 -10
  128. data/app/models/renalware/pathology/measurement_unit.rb +10 -0
  129. data/app/models/renalware/pathology/observation_description.rb +2 -0
  130. data/app/models/renalware/pathology/requests/global_algorithm.rb +1 -1
  131. data/app/models/renalware/pathology/requests/high_risk_rule_set.rb +1 -1
  132. data/app/models/renalware/patient.rb +14 -8
  133. data/app/models/renalware/patients/alert.rb +15 -0
  134. data/app/models/renalware/patients/patient_search.rb +13 -0
  135. data/app/models/renalware/patients/summary.rb +13 -0
  136. data/app/models/renalware/patients/worry_query.rb +27 -0
  137. data/app/models/renalware/pd/modality_description.rb +3 -0
  138. data/app/models/renalware/pd.rb +1 -1
  139. data/app/models/renalware/transplants/mdm_patients_query.rb +1 -0
  140. data/app/policies/renalware/hd/station_policy.rb +9 -0
  141. data/app/policies/renalware/messaging/message_policy.rb +11 -0
  142. data/app/policies/renalware/messaging/receipt_policy.rb +19 -0
  143. data/app/policies/renalware/modalities/description_policy.rb +22 -0
  144. data/app/policies/renalware/patients/alert_policy.rb +8 -0
  145. data/app/presenters/renalware/clinical/profile_presenter.rb +6 -1
  146. data/app/presenters/renalware/dashboard/dashboard_presenter.rb +18 -8
  147. data/app/presenters/renalware/events/events_presenter.rb +37 -0
  148. data/app/presenters/renalware/hd/station_presenter.rb +10 -0
  149. data/app/presenters/renalware/messaging/internal_message_presenter.rb +19 -0
  150. data/app/presenters/renalware/messaging/receipt_presenter.rb +11 -0
  151. data/app/presenters/renalware/pd/dashboard_presenter.rb +7 -0
  152. data/app/presenters/renalware/pd/mdm_presenter.rb +4 -0
  153. data/app/views/renalware/admin/users/edit.html.slim +34 -34
  154. data/app/views/renalware/admin/users/index.html.slim +9 -3
  155. data/app/views/renalware/clinical/body_compositions/_form.html.slim +1 -1
  156. data/app/views/renalware/clinical/body_compositions/_list.html.slim +1 -1
  157. data/app/views/renalware/clinical/body_compositions/edit.html.slim +2 -2
  158. data/app/views/renalware/clinics/clinic_visits/_form.html.slim +2 -2
  159. data/app/views/renalware/dashboard/bookmarks/_bookmark.html.slim +4 -5
  160. data/app/views/renalware/dashboard/bookmarks/_table.html.slim +1 -2
  161. data/app/views/renalware/dashboard/dashboards/_content.html.slim +7 -1
  162. data/app/views/renalware/dashboard/letters/_letter.html.slim +1 -1
  163. data/app/views/renalware/deaths/edit.html.slim +23 -26
  164. data/app/views/renalware/deaths/index.html.slim +0 -1
  165. data/app/views/renalware/devise/registrations/edit.html.slim +2 -2
  166. data/app/views/renalware/devise/sessions/new.html.slim +1 -1
  167. data/app/views/renalware/directory/people/_address_form.html.slim +13 -11
  168. data/app/views/renalware/directory/people/_filters.html.slim +9 -0
  169. data/app/views/renalware/directory/people/_form.html.slim +12 -14
  170. data/app/views/renalware/directory/people/_person.html.slim +1 -1
  171. data/app/views/renalware/directory/people/_table.html.slim +10 -0
  172. data/app/views/renalware/directory/people/edit.html.slim +4 -4
  173. data/app/views/renalware/directory/people/index.html.slim +7 -29
  174. data/app/views/renalware/directory/people/new.html.slim +4 -4
  175. data/app/views/renalware/directory/people/show.html.slim +27 -40
  176. data/app/views/renalware/drugs/drugs/_filters.html.slim +11 -0
  177. data/app/views/renalware/drugs/drugs/_form.html.slim +1 -3
  178. data/app/views/renalware/drugs/drugs/edit.html.slim +3 -1
  179. data/app/views/renalware/drugs/drugs/index.html.slim +7 -16
  180. data/app/views/renalware/drugs/drugs/new.html.slim +3 -1
  181. data/app/views/renalware/events/events/_filters.html.slim +21 -0
  182. data/app/views/renalware/events/events/_list.html.slim +5 -0
  183. data/app/views/renalware/events/events/_table.html.slim +3 -3
  184. data/app/views/renalware/events/events/index.html.slim +3 -2
  185. data/app/views/renalware/events/events/simple/_event.html.slim +10 -0
  186. data/app/views/renalware/events/events/simple/_list.html.slim +5 -0
  187. data/app/views/renalware/events/events/simple/_table.html.slim +15 -0
  188. data/app/views/renalware/events/events/toggled_cell/_simple.html.slim +2 -0
  189. data/app/views/renalware/hd/current_profile/_form.html.slim +64 -28
  190. data/app/views/renalware/hd/mdm_patients/_table.html.slim +26 -0
  191. data/app/views/renalware/hd/mdm_patients/index.html.slim +3 -33
  192. data/app/views/renalware/hd/stations/_form.html.slim +11 -0
  193. data/app/views/renalware/hd/stations/_station.html.slim +6 -0
  194. data/app/views/renalware/hd/stations/_table.html.slim +9 -0
  195. data/app/views/renalware/hd/stations/edit.html.slim +8 -0
  196. data/app/views/renalware/hd/stations/index.html.slim +14 -0
  197. data/app/views/renalware/hd/stations/new.html.slim +8 -0
  198. data/app/views/renalware/hospitals/units/_form.html.slim +16 -15
  199. data/app/views/renalware/hospitals/units/edit.html.slim +3 -1
  200. data/app/views/renalware/hospitals/units/index.html.slim +8 -3
  201. data/app/views/renalware/hospitals/units/new.html.slim +3 -1
  202. data/app/views/renalware/layouts/_patient.html.slim +1 -0
  203. data/app/views/renalware/letters/letters/_table.html.slim +1 -1
  204. data/app/views/renalware/letters/letters/author.html.slim +1 -3
  205. data/app/views/renalware/letters/parts/_problems.html.slim +10 -7
  206. data/app/views/renalware/letters/parts/_recent_pathology_results.html.slim +11 -8
  207. data/app/views/renalware/mdm_patients/_table.html.slim +23 -0
  208. data/app/views/renalware/mdm_patients/index.html.slim +5 -28
  209. data/app/views/renalware/medications/prescriptions/_current.html.slim +2 -2
  210. data/app/views/renalware/medications/prescriptions/_recently_stopped.html.slim +1 -1
  211. data/app/views/renalware/messaging/messages/_form.html.slim +31 -0
  212. data/app/views/renalware/messaging/messages/_message.html.slim +19 -0
  213. data/app/views/renalware/messaging/messages/_modal_dialog_placeholder.html.slim +2 -0
  214. data/app/views/renalware/messaging/messages/_send_message_link.html.slim +11 -0
  215. data/app/views/renalware/messaging/messages/_send_reply_link.html.slim +12 -0
  216. data/app/views/renalware/messaging/messages/_table.html.slim +13 -0
  217. data/app/views/renalware/messaging/messages/create.js.erb +13 -0
  218. data/app/views/renalware/messaging/messages/new.html.slim +5 -0
  219. data/app/views/renalware/messaging/messages/new.js.erb +7 -0
  220. data/app/views/renalware/messaging/messages/sent.html.slim +4 -0
  221. data/app/views/renalware/messaging/receipts/_receipt.html.slim +45 -0
  222. data/app/views/renalware/messaging/receipts/_table.html.slim +16 -0
  223. data/app/views/renalware/messaging/receipts/mark_as_read.js.erb +6 -0
  224. data/app/views/renalware/messaging/receipts/read.html.slim +5 -0
  225. data/app/views/renalware/messaging/receipts/unread.html.slim +5 -0
  226. data/app/views/renalware/messaging/shared/_key.html.slim +3 -0
  227. data/app/views/renalware/messaging/shared/_messages_type_tabs.html.slim +7 -0
  228. data/app/views/renalware/modalities/descriptions/_form.html.slim +12 -10
  229. data/app/views/renalware/modalities/descriptions/edit.html.slim +6 -1
  230. data/app/views/renalware/modalities/descriptions/index.html.slim +16 -11
  231. data/app/views/renalware/modalities/descriptions/new.html.slim +6 -1
  232. data/app/views/renalware/navigation/_user.html.slim +1 -0
  233. data/app/views/renalware/pathology/requests/requests/new.html.slim +1 -1
  234. data/app/views/renalware/patients/_layout.html.slim +0 -1
  235. data/app/views/renalware/patients/_person_form_fields.html.slim +1 -0
  236. data/app/views/renalware/patients/{_prescriptions.html.slim → _prescriptions.html.slim.dead} +0 -0
  237. data/app/views/renalware/patients/_side_menu.html.slim +1 -1
  238. data/app/views/renalware/patients/alerts/_alert.html.slim +12 -0
  239. data/app/views/renalware/patients/alerts/_create_alert_link.html.slim +8 -0
  240. data/app/views/renalware/patients/alerts/_form.html.slim +14 -0
  241. data/app/views/renalware/patients/alerts/_list.html.slim +4 -0
  242. data/app/views/renalware/patients/alerts/_modal_dialog_placeholder.html.slim +2 -0
  243. data/app/views/renalware/patients/alerts/create.js.erb +3 -0
  244. data/app/views/renalware/patients/alerts/destroy.js.erb +2 -0
  245. data/app/views/renalware/patients/alerts/new.html.slim +5 -0
  246. data/app/views/renalware/patients/alerts/new.js.erb +4 -0
  247. data/app/views/renalware/patients/bookmarks/_delete.html.slim +4 -3
  248. data/app/views/renalware/patients/bookmarks/_new.html.slim +4 -2
  249. data/app/views/renalware/{clinical_summaries → patients/clinical_summaries}/_events.html.slim +0 -0
  250. data/app/views/renalware/{clinical_summaries → patients/clinical_summaries}/_letters.html.slim +0 -0
  251. data/app/views/renalware/{clinical_summaries → patients/clinical_summaries}/_prescriptions.html.slim +0 -0
  252. data/app/views/renalware/{clinical_summaries → patients/clinical_summaries}/_problems.html.slim +0 -0
  253. data/app/views/renalware/{clinical_summaries → patients/clinical_summaries}/show.html.slim +1 -1
  254. data/app/views/renalware/patients/{_form.html.slim → patients/_form.html.slim} +0 -0
  255. data/app/views/renalware/patients/{_patient.html.slim → patients/_patient.html.slim} +0 -0
  256. data/app/views/renalware/patients/{_table.html.slim → patients/_table.html.slim} +1 -1
  257. data/app/views/renalware/patients/{edit.html.slim → patients/edit.html.slim} +1 -1
  258. data/app/views/renalware/patients/{index.html.slim → patients/index.html.slim} +0 -0
  259. data/app/views/renalware/patients/{new.html.slim → patients/new.html.slim} +1 -1
  260. data/app/views/renalware/patients/{show → patients/show}/_contact_details.html.slim +0 -0
  261. data/app/views/renalware/patients/{show → patients/show}/_hospital_numbers.html.slim +0 -0
  262. data/app/views/renalware/patients/{show → patients/show}/_letter_preferences.html.slim +0 -0
  263. data/app/views/renalware/patients/{show → patients/show}/_patient_demographics.html.slim +0 -0
  264. data/app/views/renalware/patients/{show → patients/show}/_person.html.slim +0 -0
  265. data/app/views/renalware/patients/{show → patients/show}/_primary_care_physician.html.slim +0 -0
  266. data/app/views/renalware/patients/{show → patients/show}/_referral.html.slim +0 -0
  267. data/app/views/renalware/patients/{show → patients/show}/_ukrdc_preferences.html.slim +0 -0
  268. data/app/views/renalware/patients/{show.html.slim → patients/show.html.slim} +7 -7
  269. data/app/views/renalware/patients/side_menu/_actions.html.slim +27 -0
  270. data/app/views/renalware/patients/side_menu/_general.html.slim +4 -2
  271. data/app/views/renalware/patients/side_menu/_modalities.html.slim +2 -2
  272. data/app/views/renalware/patients/side_menu/{_options.html.slim → _options.html.slim.redundant} +5 -0
  273. data/app/views/renalware/patients/side_menu/_transplants.html.slim +2 -1
  274. data/app/views/renalware/patients/worries/_delete.html.slim +4 -3
  275. data/app/views/renalware/patients/worries/_new.html.slim +23 -4
  276. data/app/views/renalware/patients/worryboard/_filters.html.slim +15 -0
  277. data/app/views/renalware/patients/worryboard/_table.html.slim +13 -6
  278. data/app/views/renalware/patients/worryboard/_worry.html.slim +6 -4
  279. data/app/views/renalware/patients/worryboard/show.html.slim +3 -5
  280. data/app/views/renalware/pd/dashboards/show.html.slim +11 -2
  281. data/app/views/renalware/pd/mdm/_top.html.slim +6 -1
  282. data/app/views/renalware/renal/profiles/_form.html.slim +2 -1
  283. data/app/views/renalware/renal/profiles/show.html.slim +1 -1
  284. data/app/views/renalware/shared/documents/_smoking_status.html.slim +1 -0
  285. data/app/views/renalware/shared/documents/_smoking_status_input.html.slim +5 -0
  286. data/app/views/renalware/{errors → system/errors}/internal_server_error.html.slim +0 -0
  287. data/app/views/renalware/{errors → system/errors}/not_found.html.slim +0 -0
  288. data/app/views/renalware/transplants/mdm_patients/_filters.html.slim +6 -7
  289. data/config/cucumber.yml +5 -2
  290. data/config/initializers/renalware.rb +13 -0
  291. data/config/initializers/simple_form_foundation.rb +3 -1
  292. data/config/locales/renalware/dashboard/dashboard.yml +0 -1
  293. data/config/locales/renalware/errors.en.yml +15 -14
  294. data/config/locales/renalware/events/events.yml +5 -0
  295. data/config/locales/renalware/hd/mdm_patients.yml +1 -1
  296. data/config/locales/renalware/hospitals/unit.yml +1 -0
  297. data/config/locales/renalware/mdm.yml +1 -1
  298. data/config/locales/renalware/messaging/messages.en.yml +29 -0
  299. data/config/locales/renalware/patients/alerts.en.yml +10 -0
  300. data/config/locales/renalware/patients/side_menu.en.yml +7 -4
  301. data/config/locales/renalware/patients/worries.en.yml +1 -1
  302. data/config/routes.rb +25 -6
  303. data/config/spring.rb +2 -0
  304. data/db/migrate/20170725120242_add_units_to_pathology_observation_descriptions.rb +19 -0
  305. data/db/migrate/20170809080925_add_notes_to_patient_worries.rb +5 -0
  306. data/db/migrate/20170810092953_create_messaging_messages.rb +13 -0
  307. data/db/migrate/20170810093532_create_messaging_receipts.rb +9 -0
  308. data/db/migrate/20170821100353_add_replying_to_message_id_to_messages.rb +12 -0
  309. data/db/migrate/20170823084127_create_patient_alerts.rb +16 -0
  310. data/db/migrate/20170824113401_add_stations_to_hospital_units.rb +8 -0
  311. data/db/migrate/20170830085137_create_hd_unit_stations.rb +17 -0
  312. data/db/migrate/20170830171726_create_hd_diurnal_period_codes.rb +10 -0
  313. data/db/seeds/default/hd/diurnal_period_codes.csv +4 -0
  314. data/db/seeds/default/hd/diurnal_period_codes.rb +13 -0
  315. data/db/seeds/default/hd/seeds.rb +1 -0
  316. data/db/seeds/default/pathology/measurement_units.csv +38 -0
  317. data/db/seeds/default/pathology/measurement_units.rb +13 -0
  318. data/db/seeds/default/pathology/pathology_observation_descriptions.csv +1741 -1741
  319. data/db/seeds/default/pathology/pathology_observation_descriptions.rb +8 -10
  320. data/db/seeds/default/pathology/seeds.rb +1 -0
  321. data/db/seeds/default/seeds.rb +0 -1
  322. data/db/seeds/default/system/roles.rb +1 -1
  323. data/{app/models → lib}/renalware/breadcrumb.rb +0 -0
  324. data/lib/renalware/configuration.rb +2 -0
  325. data/{app/models → lib}/renalware/failure.rb +0 -0
  326. data/{app/models → lib}/renalware/month_period.rb +0 -0
  327. data/{app/models → lib}/renalware/remembered_preferences.rb +0 -0
  328. data/{app/models → lib}/renalware/service_result.rb +0 -0
  329. data/{app/models → lib}/renalware/success.rb +0 -0
  330. data/lib/renalware/version.rb +1 -1
  331. data/lib/subscription_registry.rb +5 -0
  332. metadata +152 -61
  333. data/app/controllers/renalware/clinical_summaries_controller.rb +0 -13
  334. data/app/controllers/renalware/errors_controller.rb +0 -18
  335. data/app/controllers/renalware/mock_errors_controller.rb +0 -10
  336. data/app/controllers/renalware/patients_controller.rb +0 -107
  337. data/app/models/renalware/patient_search.rb +0 -11
  338. data/app/models/renalware/patient_summary.rb +0 -6
  339. data/app/views/renalware/admin/users/_header.html.slim +0 -6
  340. data/app/views/renalware/clinical/body_compositions/_row.html.slim +0 -15
  341. data/app/views/renalware/clinical/body_compositions/index.html.slim +0 -12
  342. data/app/views/renalware/deaths/_navigation.html.slim +0 -3
  343. data/app/views/renalware/directory/people/_header.html.slim +0 -5
  344. data/app/views/renalware/drugs/drugs/_header.html.slim +0 -5
  345. data/app/views/renalware/hospitals/units/_header.html.slim +0 -5
  346. data/db/seeds/default/hospitals/dialysis_units.csv +0 -7
  347. data/db/seeds/default/hospitals/dialysis_units.rb +0 -17
  348. data/db/seeds/default/hospitals/hospital_centres.csv +0 -86
  349. data/db/seeds/default/hospitals/hospitals.rb +0 -17
  350. data/db/seeds/default/hospitals/seeds.rb +0 -2
@@ -0,0 +1,55 @@
1
+ require_dependency "renalware/messaging"
2
+
3
+ # A Receipt is cross reference between Message and Recipient.
4
+ # We can for instance mark on a receipt if/when it was read or viewed.
5
+ module Renalware
6
+ module Messaging
7
+ class ReceiptsController < BaseController
8
+ include Renalware::Concerns::Pageable
9
+ include PresenterHelper
10
+
11
+ # GET aka inbox
12
+ def unread
13
+ render_receipts(receipts.unread)
14
+ end
15
+
16
+ # GET
17
+ def read
18
+ render_receipts(receipts)
19
+ end
20
+
21
+ # PATCH
22
+ def mark_as_read
23
+ authorize receipt
24
+ receipt.update(read_at: Time.zone.now)
25
+ render locals: {
26
+ receipt: Messaging::ReceiptPresenter.new(receipt)
27
+ }
28
+ end
29
+
30
+ private
31
+
32
+ def render_receipts(receipts)
33
+ authorize receipts
34
+ render locals: {
35
+ receipts: present(receipts, Messaging::ReceiptPresenter)
36
+ }
37
+ end
38
+
39
+ def receipts
40
+ @receipts ||= recipient.receipts.page(page).per(per_page)
41
+ end
42
+
43
+ def receipt
44
+ @receipt ||= recipient.receipts.find_by!(
45
+ message_id: params[:message_id],
46
+ id: params[:id]
47
+ )
48
+ end
49
+
50
+ def recipient
51
+ Messaging.cast_recipient(current_user)
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,22 @@
1
+ require_dependency "renalware/messaging"
2
+ require "collection_presenter"
3
+
4
+ module Renalware
5
+ module Messaging
6
+ class SentMessagesController < BaseController
7
+ include Renalware::Concerns::Pageable
8
+
9
+ def index
10
+ messages = author.messages.page(page).per(per_page)
11
+ authorize messages
12
+ render locals: {
13
+ messages: CollectionPresenter.new(messages, Messaging::InternalMessagePresenter)
14
+ }
15
+ end
16
+
17
+ def author
18
+ Messaging.cast_author(current_user)
19
+ end
20
+ end
21
+ end
22
+ end
@@ -4,38 +4,43 @@ module Renalware
4
4
  module Modalities
5
5
  class DescriptionsController < BaseController
6
6
 
7
- before_action :load_modality_description, only: [:edit, :update]
8
-
9
7
  def new
10
- @modality_description = Description.new
11
- authorize @modality_description
8
+ modality_description = Description.new
9
+ authorize modality_description
10
+ render_new(modality_description)
12
11
  end
13
12
 
14
13
  def create
15
- @modality_description = Description.new(modality_description_params)
16
- authorize @modality_description
14
+ modality_description = Description.new(modality_description_params)
15
+ authorize modality_description
17
16
 
18
- if @modality_description.save
17
+ if modality_description.save
19
18
  redirect_to modalities_descriptions_path,
20
19
  notice: t(".success", model_name: "modality description")
21
20
  else
22
- flash[:error] = t(".failed", model_name: "modality description")
23
- render :new
21
+ flash.now[:error] = t(".failed", model_name: "modality description")
22
+ render_new(modality_description)
24
23
  end
25
24
  end
26
25
 
27
26
  def index
28
- @modalilty_descriptions = Description.all
29
- authorize @modalilty_descriptions
27
+ modality_descriptions = Description.all
28
+ authorize modality_descriptions
29
+ render locals: { modality_descriptions: modality_descriptions }
30
+ end
31
+
32
+ def edit
33
+ render_edit(find_and_authorize_modality_description)
30
34
  end
31
35
 
32
36
  def update
33
- if @modality_description.update(modality_description_params)
37
+ modality_description = find_and_authorize_modality_description
38
+ if modality_description.update(modality_description_params)
34
39
  redirect_to modalities_descriptions_path,
35
40
  notice: t(".success", model_name: "modality description")
36
41
  else
37
- flash[:error] = t(".failed", model_name: "modality description")
38
- render :edit
42
+ flash.now[:error] = t(".failed", model_name: "modality description")
43
+ render_edit(modality_description)
39
44
  end
40
45
  end
41
46
 
@@ -47,13 +52,22 @@ module Renalware
47
52
 
48
53
  private
49
54
 
55
+ def render_new(modality_description)
56
+ render :new, locals: { modality_description: modality_description }
57
+ end
58
+
59
+ def render_edit(modality_description)
60
+ render :edit, locals: { modality_description: modality_description }
61
+ end
62
+
50
63
  def modality_description_params
51
64
  params.require(:modalities_description).permit(:name, :code, :site)
52
65
  end
53
66
 
54
- def load_modality_description
55
- @modality_description = Description.find(params[:id])
56
- authorize @modality_description
67
+ def find_and_authorize_modality_description
68
+ Description.find(params[:id]).tap do |description|
69
+ authorize description
70
+ end
57
71
  end
58
72
  end
59
73
  end
@@ -12,42 +12,50 @@ module Renalware
12
12
  end
13
13
 
14
14
  def index
15
- modalities = patient.modalities.ordered
15
+ modalities = patient
16
+ .modalities
17
+ .includes([:description, :created_by])
18
+ .ordered
16
19
  render locals: { patient: patient, modalities: modalities }
17
20
  end
18
21
 
19
22
  def create
20
- modality = Modality.new(modality_params.merge!(patient: patient))
21
-
22
- if modality.valid?
23
- patient.set_modality(modality_params)
23
+ result = change_patient_modality
24
+ if result.success?
24
25
  handle_valid_modality
25
26
  else
26
- flash[:error] = t(".failed", model_name: "modality")
27
- render :new, locals: { patient: patient, modality: modality }
27
+ flash.now[:error] = t(".failed", model_name: "modality")
28
+ render :new, locals: { patient: patient, modality: result.object }
28
29
  end
29
30
  end
30
31
 
31
32
  private
32
33
 
34
+ def change_patient_modality
35
+ Modalities::ChangePatientModality
36
+ .new(patient: patient, user: current_user)
37
+ .broadcasting_to_configured_subscribers
38
+ .call(modality_params)
39
+ end
40
+
33
41
  def params_are_valid?
34
42
  Modality.new(modality_params).valid?
35
43
  end
36
44
 
37
45
  def modality_params
38
46
  params.require(:modality)
39
- .permit(
40
- :description_id, :modal_change_type,
41
- :reason_id, :notes, :started_on
42
- ).merge(by: current_user)
47
+ .permit(:description_id, :modal_change_type, :reason_id, :notes, :started_on)
43
48
  end
44
49
 
50
+ # TODO: refactor
51
+ # rubocop:disable Metrics/MethodLength
45
52
  def handle_valid_modality
46
- if patient.modality_description.is_a? Deaths::ModalityDescription
53
+ description = patient.modality_description
54
+ if description.is_a? Deaths::ModalityDescription
47
55
  redirect_to edit_patient_death_path(patient), flash: {
48
56
  warning: "Please make sure to update patient date of death and cause of death!"
49
57
  }
50
- elsif patient.modality_description.is_a? Transplants::DonorModalityDescription
58
+ elsif description.is_a? Transplants::DonorModalityDescription
51
59
  redirect_to new_patient_transplants_donation_path(patient), flash: {
52
60
  warning: "If you have the information on-hand, please enter the potential donation."
53
61
  }
@@ -6,7 +6,7 @@ module Renalware
6
6
  before_action :load_patient
7
7
 
8
8
  def index
9
- table_view = CurrentObservationResults::HTMLTableView.new(self.view_context)
9
+ table_view = CurrentObservationResults::HTMLTableView.new(view_context)
10
10
  presenter = CurrentObservationResults::Presenter.new
11
11
  service = ViewCurrentObservationResults.new(@patient, presenter)
12
12
  service.call
@@ -6,7 +6,7 @@ module Renalware
6
6
  before_action :load_patient
7
7
 
8
8
  def index
9
- table_view = HistoricalObservationResults::HTMLTableView.new(self.view_context)
9
+ table_view = HistoricalObservationResults::HTMLTableView.new(view_context)
10
10
  presenter = HistoricalObservationResults::Presenter.new
11
11
  service = ViewObservationResults.new(@patient.observations, presenter)
12
12
  service.call(params)
@@ -18,7 +18,7 @@ module Renalware
18
18
  redirect_to patient_pathology_required_observations_path(@patient),
19
19
  notice: t(".success", model_name: "Patient Rule")
20
20
  else
21
- flash[:error] = t(".failed", model_name: "Patient Rule")
21
+ flash.now[:error] = t(".failed", model_name: "Patient Rule")
22
22
  render_new(patient_rule)
23
23
  end
24
24
  end
@@ -36,7 +36,7 @@ module Renalware
36
36
  redirect_to patient_pathology_required_observations_path(@patient),
37
37
  notice: t(".success", model_name: "patient rule")
38
38
  else
39
- flash[:error] = t(".failed", model_name: "patient rule")
39
+ flash.now[:error] = t(".failed", model_name: "patient rule")
40
40
  render_edit(patient_rule)
41
41
  end
42
42
  end
@@ -6,7 +6,7 @@ module Renalware
6
6
  before_action :load_patient
7
7
 
8
8
  def index
9
- table_view = RecentObservationResults::HTMLTableView.new(self.view_context)
9
+ table_view = RecentObservationResults::HTMLTableView.new(view_context)
10
10
  presenter = RecentObservationResults::Presenter.new
11
11
  service = ViewObservationResults.new(@patient.observations, presenter)
12
12
  service.call(params)
@@ -39,7 +39,7 @@ module Renalware
39
39
  end
40
40
 
41
41
  def create
42
- requests.each { |request| request.print_form }
42
+ requests.each(&:print_form)
43
43
 
44
44
  render pdf: "create",
45
45
  layout: false,
@@ -0,0 +1,61 @@
1
+ require_dependency "renalware/patients"
2
+
3
+ module Renalware
4
+ module Patients
5
+ class AlertsController < BaseController
6
+
7
+ # GET html
8
+ def new
9
+ alert = Alert.new
10
+ authorize alert
11
+ render_form(alert)
12
+ end
13
+
14
+ # POST js
15
+ def create
16
+ alert = Alert.new(alert_params.merge!(by: user, patient: patient))
17
+ authorize alert
18
+ if alert.save
19
+ render locals: { patient: patient, alert: alert }
20
+ else
21
+ render_form(alert, status: 422)
22
+ end
23
+ end
24
+
25
+ # POST js
26
+ # Idempotent
27
+ def destroy
28
+ alert = find_alert
29
+ if alert.present?
30
+ authorize alert
31
+ alert.destroy
32
+ render locals: { alert: alert }
33
+ else
34
+ skip_authorization
35
+ head :ok
36
+ end
37
+ end
38
+
39
+ private
40
+
41
+ def find_alert
42
+ Alert.find_by(id: params[:id])
43
+ end
44
+
45
+ def render_form(alert, status: 200)
46
+ render :new,
47
+ locals: { patient: patient, alert: alert },
48
+ layout: false,
49
+ status: status
50
+ end
51
+
52
+ def user
53
+ @user ||= Renalware::Patients.cast_user(current_user)
54
+ end
55
+
56
+ def alert_params
57
+ params.require(:patients_alert).permit(:notes, :urgent)
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,15 @@
1
+ require_dependency "renalware/patients"
2
+
3
+ module Renalware
4
+ module Patients
5
+ class ClinicalSummariesController < BaseController
6
+ skip_after_action :verify_authorized
7
+ before_action :load_patient
8
+
9
+ def show
10
+ clinical_summary = Renal::ClinicalSummaryPresenter.new(patient)
11
+ render :show, locals: { clinical_summary: clinical_summary }
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,109 @@
1
+ require_dependency "renalware/patients"
2
+
3
+ module Renalware
4
+ module Patients
5
+ class PatientsController < BaseController
6
+ include PresenterHelper
7
+ include Renalware::Concerns::Pageable
8
+
9
+ def index
10
+ patients = patient_search.result.page(page).per(per_page)
11
+ authorize patients
12
+ render locals: {
13
+ patients: present(patients, PatientPresenter)
14
+ }
15
+ end
16
+
17
+ def search
18
+ skip_authorization
19
+ query = Patients::SearchQuery.new(term: params[:term])
20
+ render json: query.call.to_json
21
+ end
22
+
23
+ def new
24
+ patient = Patient.new
25
+ authorize patient
26
+ render locals: { patient: patient }
27
+ end
28
+
29
+ def create
30
+ patient = Patient.new(patient_params)
31
+ authorize patient
32
+
33
+ if patient.save
34
+ # Reload in order to let pg generate the secure id
35
+ redirect_to_patient_demographics(patient.reload)
36
+ else
37
+ flash.now[:error] = failed_msg_for("patient")
38
+ render :new, locals: { patient: patient }
39
+ end
40
+ end
41
+
42
+ def edit
43
+ authorize patient
44
+ render locals: { patient: patient }
45
+ end
46
+
47
+ def update
48
+ authorize patient
49
+ if patient.update(patient_params)
50
+ redirect_to_patient_demographics(patient)
51
+ else
52
+ flash.now[:error] = t(".failed", model_name: "patient")
53
+ render :edit, locals: { patient: patient }
54
+ end
55
+ end
56
+
57
+ def show
58
+ authorize patient
59
+ render locals: { patient: patient }
60
+ end
61
+
62
+ def patient
63
+ @patient ||= Renalware::Patient.find_by!(secure_id: params[:id])
64
+ end
65
+
66
+ private
67
+
68
+ def patient_params
69
+ params
70
+ .require(:patient)
71
+ .permit(patient_attributes)
72
+ .merge(document: document_attributes)
73
+ .merge(by: current_user)
74
+ end
75
+
76
+ # rubocop:disable Metrics/MethodLength
77
+ def patient_attributes
78
+ [
79
+ :nhs_number, :family_name, :given_name, :sex,
80
+ :ethnicity_id, :born_on, :paediatric_patient_indicator, :cc_on_all_letters,
81
+ :title, :suffix, :marital_status, :telephone1, :telephone2, :email, :religion_id,
82
+ :language_id, :cc_decision_on,
83
+ :local_patient_id, :local_patient_id_2, :local_patient_id_3,
84
+ :local_patient_id_4, :local_patient_id_5, :external_patient_id,
85
+ :send_to_renalreg, :send_to_rpv, :renalreg_decision_on, :rpv_decision_on,
86
+ :renalreg_recorded_by, :rpv_recorded_by,
87
+ current_address_attributes: address_params
88
+ ]
89
+ end
90
+ # rubocop:enable Metrics/MethodLength
91
+
92
+ def address_params
93
+ [:id, :name, :organisation_name, :street_1, :street_2, :street_3, :county, :country,
94
+ :town, :postcode, :telephone, :email]
95
+ end
96
+
97
+ def document_attributes
98
+ params
99
+ .require(:patient)
100
+ .fetch(:document, nil)
101
+ .try(:permit!)
102
+ end
103
+
104
+ def redirect_to_patient_demographics(patient)
105
+ redirect_to patient, notice: success_msg_for("patient")
106
+ end
107
+ end
108
+ end
109
+ end
@@ -11,6 +11,7 @@ module Renalware
11
11
 
12
12
  def index
13
13
  primary_care_physicians = PrimaryCarePhysician.order(:family_name)
14
+ .eager_load(practices: :address)
14
15
  .page(page)
15
16
  .per(per_page)
16
17
  authorize primary_care_physicians
@@ -36,7 +37,7 @@ module Renalware
36
37
  notice: t(".success", model_name: "primary_care_physician")
37
38
  else
38
39
  @alternative_address = alternative_address
39
- flash[:error] = t(".failed", model_name: "primary_care_physician")
40
+ flash.now[:error] = t(".failed", model_name: "primary_care_physician")
40
41
  render :new
41
42
  end
42
43
  end
@@ -68,7 +69,7 @@ module Renalware
68
69
  end
69
70
 
70
71
  def update_primary_care_physician_failed(primary_care_physician)
71
- flash[:error] = t(".failed", model_name: "primary_care_physician")
72
+ flash.now[:error] = t(".failed", model_name: "primary_care_physician")
72
73
  render_form(primary_care_physician, :edit)
73
74
  end
74
75
 
@@ -5,9 +5,10 @@ module Renalware
5
5
 
6
6
  # idempotent
7
7
  def create
8
- Worry.find_or_create_by!(patient: patient) do |worry|
9
- worry.by = user
8
+ worry = Worry.find_or_create_by!(patient: patient) do |wor|
9
+ wor.by = user
10
10
  end
11
+ update_worry_notes_if_supplied(worry)
11
12
  redirect_back(fallback_location: patient_path(patient),
12
13
  notice: t(".success", patient: patient))
13
14
  end
@@ -26,9 +27,19 @@ module Renalware
26
27
 
27
28
  private
28
29
 
30
+ def update_worry_notes_if_supplied(worry)
31
+ if worry_params[:notes].present?
32
+ worry.update_attributes(worry_params.merge!(by: current_user))
33
+ end
34
+ end
35
+
29
36
  def user
30
37
  @user ||= Renalware::Patients.cast_user(current_user)
31
38
  end
39
+
40
+ def worry_params
41
+ params.require(:patients_worry).permit(:notes)
42
+ end
32
43
  end
33
44
  end
34
45
  end
@@ -7,7 +7,21 @@ module Renalware
7
7
 
8
8
  def show
9
9
  authorize Worry, :index?
10
- render locals: { worries: Worry.all.page(page).per(per_page) }
10
+ query = WorryQuery.new(query_params)
11
+ worries = query.call
12
+ render locals: {
13
+ query: query.search,
14
+ worries: worries,
15
+ modalities: Modalities::Description.order(:name)
16
+ }
17
+ end
18
+
19
+ private
20
+
21
+ def query_params
22
+ params
23
+ .fetch(:q, {})
24
+ .merge(page: page, per_page: per_page)
11
25
  end
12
26
  end
13
27
  end
@@ -18,7 +18,7 @@ module Renalware
18
18
  redirect_to pd_bag_types_path,
19
19
  notice: t(".success", model_name: "bag type")
20
20
  else
21
- flash[:error] = t(".failed", model_name: "bag type")
21
+ flash.now[:error] = t(".failed", model_name: "bag type")
22
22
  render :new, locals: { bag_type: bag_type }
23
23
  end
24
24
  end
@@ -39,7 +39,7 @@ module Renalware
39
39
  redirect_to pd_bag_types_path,
40
40
  notice: t(".success", model_name: "bag type")
41
41
  else
42
- flash[:error] = t(".failed", model_name: "bag type")
42
+ flash.now[:error] = t(".failed", model_name: "bag type")
43
43
  render :edit, locals: { bag_type: bag_type }
44
44
  end
45
45
  end
@@ -28,7 +28,7 @@ module Renalware
28
28
  redirect_to patient_pd_exit_site_infection_path(patient, esi),
29
29
  notice: t(".success", model_name: "exit site infection")
30
30
  else
31
- flash[:error] = t(".failed", model_name: "exit site infection")
31
+ flash.now[:error] = t(".failed", model_name: "exit site infection")
32
32
  render_new(esi)
33
33
  end
34
34
  end
@@ -44,7 +44,7 @@ module Renalware
44
44
  redirect_to patient_pd_exit_site_infection_path(patient, exit_site_infection),
45
45
  notice: t(".success", model_name: "exit site infection")
46
46
  else
47
- flash[:error] = t(".failed", model_name: "exit site infection")
47
+ flash.now[:error] = t(".failed", model_name: "exit site infection")
48
48
  render_edit
49
49
  end
50
50
  end
@@ -54,7 +54,7 @@ module Renalware
54
54
  end
55
55
 
56
56
  def save_failure(episode)
57
- flash[:error] = t(".failed", model_name: "peritonitis episode")
57
+ flash.now[:error] = t(".failed", model_name: "peritonitis episode")
58
58
  action = action_name.to_sym == :create ? :new : :edit
59
59
  render action, locals: {
60
60
  peritonitis_episode: episode,
@@ -18,7 +18,7 @@ module Renalware
18
18
  if result.save
19
19
  redirect_to patient_pd_dashboard_path(patient), notice: success_msg_for("PET Adequacy")
20
20
  else
21
- flash[:error] = failed_msg_for("PET Adequacy")
21
+ flash.now[:error] = failed_msg_for("PET Adequacy")
22
22
  render :new, locals: { pet_adequacy_result: result, patient: patient }
23
23
  end
24
24
  end
@@ -32,7 +32,7 @@ module Renalware
32
32
  if pet_adequacy_result.save
33
33
  redirect_to patient_pd_dashboard_path(patient), notice: success_msg_for("PET Adequacy")
34
34
  else
35
- flash[:error] = failed_msg_for("PET Adequacy")
35
+ flash.now[:error] = failed_msg_for("PET Adequacy")
36
36
  render :edit, locals: { pet_adequacy_result: pet_adequacy_result, patient: patient }
37
37
  end
38
38
  end
@@ -23,7 +23,7 @@ module Renalware
23
23
  if result.success?
24
24
  redirect_to patient_pd_dashboard_path(patient), notice: success_msg_for("PD regime")
25
25
  else
26
- flash[:error] = failed_msg_for("PD Regime")
26
+ flash.now[:error] = failed_msg_for("PD Regime")
27
27
  render :new, locals: {
28
28
  regime: result.object,
29
29
  patient: patient
@@ -45,7 +45,7 @@ module Renalware
45
45
  redirect_to patient_pd_dashboard_path(patient),
46
46
  notice: t(".success", model_name: "PD regime")
47
47
  else
48
- flash[:error] = t(".failed", model_name: "PD regime")
48
+ flash.now[:error] = t(".failed", model_name: "PD regime")
49
49
  render :edit, locals: {
50
50
  regime: result.object,
51
51
  patient: patient
@@ -38,7 +38,7 @@ module Renalware
38
38
  if update_problem(problem)
39
39
  redirect_to patient_problem_path(patient, problem), notice: success_msg_for("problem")
40
40
  else
41
- flash[:error] = failed_msg_for("problem")
41
+ flash.now[:error] = failed_msg_for("problem")
42
42
  render :edit, locals: {
43
43
  patient: patient,
44
44
  problem: problem
@@ -59,7 +59,7 @@ module Renalware
59
59
  if problem.save
60
60
  redirect_to patient_problems_url(patient), notice: success_msg_for("problem")
61
61
  else
62
- flash[:error] = failed_msg_for("problem")
62
+ flash.now[:error] = failed_msg_for("problem")
63
63
  render :new, locals: { patient: patient, problem: problem }
64
64
  end
65
65
  end