renalware-core 2.0.164 → 2.1.1

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 (625) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/app/assets/javascripts/renalware/rollup_compiled.css +0 -5
  4. data/app/assets/javascripts/renalware/rollup_compiled.js +32 -0
  5. data/app/assets/stylesheets/renalware/lib/_foundation_and_overrides.scss +1 -1
  6. data/app/assets/stylesheets/renalware/modules/_letters.scss +2 -4
  7. data/app/assets/stylesheets/renalware/partials/_layout.scss +5 -1
  8. data/app/assets/stylesheets/renalware/partials/_patient_search.scss +1 -0
  9. data/app/assets/stylesheets/renalware/partials/_tables.scss +15 -0
  10. data/app/components/renalware/events/event_list_component.html.slim +1 -1
  11. data/app/components/renalware/letters/letters_in_progress_component.en.yml +7 -0
  12. data/app/components/renalware/letters/letters_in_progress_component.html.slim +2 -2
  13. data/app/components/renalware/letters/letters_in_progress_component.pt.yml +7 -0
  14. data/app/components/renalware/letters/unread_electronic_ccs_component.en.yml +7 -0
  15. data/app/components/renalware/letters/unread_electronic_ccs_component.html.slim +2 -2
  16. data/app/components/renalware/letters/unread_electronic_ccs_component.pt.yml +7 -0
  17. data/app/components/renalware/messaging/unread_messages_component.en.yml +7 -0
  18. data/app/components/renalware/messaging/unread_messages_component.html.slim +2 -2
  19. data/app/components/renalware/messaging/unread_messages_component.pt.yml +7 -0
  20. data/app/components/renalware/patients/bookmarks_component.en.yml +7 -0
  21. data/app/components/renalware/patients/bookmarks_component.html.slim +3 -3
  22. data/app/components/renalware/patients/bookmarks_component.pt.yml +7 -0
  23. data/app/components/renalware/patients/messages_component.en.yml +5 -0
  24. data/app/components/renalware/patients/messages_component.html.slim +5 -5
  25. data/app/components/renalware/patients/messages_component.pt.yml +5 -0
  26. data/app/components/renalware/patients/messages_component.rb +3 -4
  27. data/app/components/renalware/pd/adequacy_results_component.html.slim +2 -2
  28. data/app/components/renalware/pd/pet_results_component.html.slim +2 -2
  29. data/app/components/renalware/system/admin_menu_component.html.slim +27 -14
  30. data/app/components/renalware/system/users_awaiting_approval_component.en.yml +7 -0
  31. data/app/components/renalware/system/users_awaiting_approval_component.html.slim +2 -2
  32. data/app/components/renalware/system/users_awaiting_approval_component.pt.yml +7 -0
  33. data/app/components/renalware/system/users_awaiting_approval_component.rb +0 -8
  34. data/app/components/renalware/users/last_signin_component.en.yml +6 -0
  35. data/app/components/renalware/users/last_signin_component.html.slim +1 -1
  36. data/app/components/renalware/users/last_signin_component.pt.yml +6 -0
  37. data/app/controllers/renalware/accesses/assessments_controller.rb +4 -4
  38. data/app/controllers/renalware/accesses/procedures_controller.rb +2 -2
  39. data/app/controllers/renalware/accesses/profiles_controller.rb +4 -4
  40. data/app/controllers/renalware/admin/users_controller.rb +2 -2
  41. data/app/controllers/renalware/base_controller.rb +2 -2
  42. data/app/controllers/renalware/clinical/body_compositions_controller.rb +2 -2
  43. data/app/controllers/renalware/clinical/dry_weights_controller.rb +2 -2
  44. data/app/controllers/renalware/clinical/profiles_controller.rb +3 -2
  45. data/app/controllers/renalware/clinics/appointments_controller.rb +1 -1
  46. data/app/controllers/renalware/clinics/clinic_visits_controller.rb +3 -3
  47. data/app/controllers/renalware/concerns/devise_controller_methods.rb +1 -0
  48. data/app/controllers/renalware/deaths_controller.rb +2 -2
  49. data/app/controllers/renalware/directory/people_controller.rb +4 -4
  50. data/app/controllers/renalware/drugs/drugs_controller.rb +5 -5
  51. data/app/controllers/renalware/events/events_controller.rb +3 -3
  52. data/app/controllers/renalware/events/types_controller.rb +1 -1
  53. data/app/controllers/renalware/hd/cannulation_types_controller.rb +5 -5
  54. data/app/controllers/renalware/hd/current_profile_controller.rb +19 -3
  55. data/app/controllers/renalware/hd/preference_sets_controller.rb +2 -2
  56. data/app/controllers/renalware/hd/sessions_controller.rb +3 -3
  57. data/app/controllers/renalware/letters/batches_controller.rb +1 -0
  58. data/app/controllers/renalware/letters/letters_controller.rb +3 -3
  59. data/app/controllers/renalware/letters/lists_controller.rb +3 -0
  60. data/app/controllers/renalware/low_clearance/profiles_controller.rb +1 -1
  61. data/app/controllers/renalware/messaging/internal/messages_controller.rb +3 -3
  62. data/app/controllers/renalware/modalities/descriptions_controller.rb +5 -5
  63. data/app/controllers/renalware/modalities/modalities_controller.rb +2 -2
  64. data/app/controllers/renalware/pathology/observation_descriptions_controller.rb +1 -1
  65. data/app/controllers/renalware/pathology/patient_rules_controller.rb +5 -5
  66. data/app/controllers/renalware/patients/patients_controller.rb +1 -1
  67. data/app/controllers/renalware/patients/primary_care_physicians_controller.rb +5 -5
  68. data/app/controllers/renalware/pd/bag_types_controller.rb +5 -5
  69. data/app/controllers/renalware/pd/exit_site_infections_controller.rb +4 -4
  70. data/app/controllers/renalware/pd/peritonitis_episodes_controller.rb +2 -2
  71. data/app/controllers/renalware/pd/regimes_controller.rb +2 -2
  72. data/app/controllers/renalware/renal/profiles_controller.rb +1 -1
  73. data/app/controllers/renalware/snippets/snippets_controller.rb +2 -2
  74. data/app/controllers/renalware/system/downloads_controller.rb +1 -1
  75. data/app/controllers/renalware/transplants/donations_controller.rb +4 -4
  76. data/app/controllers/renalware/transplants/donor_operations_controller.rb +4 -4
  77. data/app/controllers/renalware/transplants/donor_stages_controller.rb +1 -1
  78. data/app/controllers/renalware/transplants/donor_workups_controller.rb +2 -2
  79. data/app/controllers/renalware/transplants/recipient_operations_controller.rb +4 -4
  80. data/app/controllers/renalware/transplants/recipient_workups_controller.rb +2 -2
  81. data/app/controllers/renalware/transplants/registration_statuses_controller.rb +5 -5
  82. data/app/controllers/renalware/transplants/registrations_controller.rb +2 -2
  83. data/app/controllers/renalware/virology/vaccination_types_controller.rb +69 -0
  84. data/app/helpers/renalware/form_helper.rb +7 -2
  85. data/app/javascript/renalware/controllers/collapsible_controller.js +36 -0
  86. data/app/javascript/renalware/index.js +2 -0
  87. data/app/models/renalware/events/category.rb +21 -0
  88. data/app/models/renalware/events/type.rb +2 -0
  89. data/app/models/renalware/hd/mdm_patients_form.rb +1 -1
  90. data/app/models/renalware/hd/patient_listener.rb +1 -1
  91. data/app/models/renalware/hd/profile.rb +4 -1
  92. data/app/models/renalware/letters/batch.rb +1 -0
  93. data/app/models/renalware/letters/letter.rb +10 -1
  94. data/app/models/renalware/letters/lists/form.rb +6 -1
  95. data/app/models/renalware/letters/mailshots/mailshot.rb +0 -1
  96. data/app/models/renalware/letters/printing/batch_compile_pdfs.rb +15 -4
  97. data/app/models/renalware/letters/remembered_letter_preferences.rb +1 -1
  98. data/app/models/renalware/patient.rb +1 -0
  99. data/app/models/renalware/ukrdc/outgoing/rendering/document.rb +1 -1
  100. data/app/models/renalware/ukrdc/outgoing/rendering/patient.rb +2 -2
  101. data/app/models/renalware/ukrdc/outgoing/rendering/primary_language.rb +2 -2
  102. data/app/models/renalware/virology/vaccination_type.rb +25 -3
  103. data/app/policies/renalware/events/advanced_care_plan_policy.rb +1 -1
  104. data/app/policies/renalware/events/clinical_frailty_score_policy.rb +1 -1
  105. data/app/policies/renalware/events/event_policy.rb +4 -0
  106. data/app/policies/renalware/events/investigation_policy.rb +5 -1
  107. data/app/policies/renalware/virology/vaccination_policy.rb +6 -1
  108. data/app/presenters/renalware/events/events_presenter.rb +10 -5
  109. data/app/presenters/renalware/letters/practice_email_meta_data.rb +4 -4
  110. data/app/presenters/renalware/virology/dashboard_presenter.rb +1 -1
  111. data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  112. data/app/views/devise/mailer/email_changed.html.erb +7 -0
  113. data/app/views/devise/mailer/password_change.html.erb +3 -0
  114. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  115. data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  116. data/app/views/devise/passwords/edit.html.erb +27 -0
  117. data/app/views/{renalware/devise/passwords/edit.html.erb → devise/passwords/edit.html.erb.old} +0 -0
  118. data/app/views/{renalware/devise → devise}/passwords/new.html.erb +2 -2
  119. data/app/views/devise/passwords/new.html.erb.new +18 -0
  120. data/app/views/devise/registrations/edit.html.erb.pt +35 -0
  121. data/app/views/{renalware/devise → devise}/registrations/edit.html.slim +14 -7
  122. data/app/views/devise/registrations/new.html.erb.pt +25 -0
  123. data/app/views/{renalware/devise → devise}/registrations/new.html.slim +3 -3
  124. data/app/views/{renalware/devise → devise}/sessions/_signup_help.html.slim +0 -0
  125. data/app/views/{renalware/devise → devise}/sessions/_warning.html.slim +0 -0
  126. data/app/views/{renalware/devise → devise}/sessions/new.html.slim +2 -2
  127. data/app/views/devise/shared/_links.html.erb +26 -0
  128. data/app/views/devise/unlocks/new.html.erb +19 -0
  129. data/app/views/renalware/accesses/assessments/_form.html.slim +2 -2
  130. data/app/views/renalware/accesses/assessments/_list.html.slim +2 -2
  131. data/app/views/renalware/accesses/assessments/show.html.slim +1 -1
  132. data/app/views/renalware/accesses/dashboards/_page_actions.html.slim +1 -1
  133. data/app/views/renalware/accesses/plans/_list.html.slim +1 -1
  134. data/app/views/renalware/accesses/plans/_summary.html.slim +2 -2
  135. data/app/views/renalware/accesses/plans/new.html.slim +2 -2
  136. data/app/views/renalware/accesses/procedures/_form.html.slim +2 -2
  137. data/app/views/renalware/accesses/procedures/_list.html.slim +2 -2
  138. data/app/views/renalware/accesses/procedures/show.html.slim +1 -1
  139. data/app/views/renalware/accesses/profiles/_current_profile.html.slim +2 -2
  140. data/app/views/renalware/accesses/profiles/_form.html.slim +2 -2
  141. data/app/views/renalware/accesses/profiles/_list.html.slim +2 -2
  142. data/app/views/renalware/accesses/profiles/show.html.slim +1 -1
  143. data/app/views/renalware/admin/feeds/files/index.html.slim +1 -1
  144. data/app/views/renalware/admin/users/_filters.html.slim +3 -3
  145. data/app/views/renalware/admin/users/_tabs.html.slim +1 -1
  146. data/app/views/renalware/admin/users/edit.html.slim +1 -1
  147. data/app/views/renalware/admin/users/index.html.slim +1 -1
  148. data/app/views/renalware/admissions/_summary_part.html.slim +2 -2
  149. data/app/views/renalware/admissions/admissions/_filters.html.slim +2 -2
  150. data/app/views/renalware/admissions/admissions/_form.html.slim +1 -1
  151. data/app/views/renalware/admissions/admissions/_table.html.slim +3 -3
  152. data/app/views/renalware/admissions/admissions/index.html.slim +1 -1
  153. data/app/views/renalware/admissions/consults/_filters.html.slim +2 -2
  154. data/app/views/renalware/admissions/consults/_form.html.slim +1 -1
  155. data/app/views/renalware/admissions/consults/_summary_part.html.slim +2 -2
  156. data/app/views/renalware/admissions/consults/index.html.slim +1 -1
  157. data/app/views/renalware/admissions/patient_admissions/index.html.slim +1 -1
  158. data/app/views/renalware/admissions/requests/_form.html.slim +1 -1
  159. data/app/views/renalware/admissions/requests/_request.html.slim +1 -1
  160. data/app/views/renalware/clinical/allergies/_list.html.slim +3 -3
  161. data/app/views/renalware/clinical/body_compositions/_form.html.slim +1 -1
  162. data/app/views/renalware/clinical/body_compositions/_list.html.slim +2 -2
  163. data/app/views/renalware/clinical/body_compositions/_table.html.slim +3 -3
  164. data/app/views/renalware/clinical/body_compositions/show.html.slim +1 -1
  165. data/app/views/renalware/clinical/dry_weights/_form.html.slim +1 -1
  166. data/app/views/renalware/clinical/dry_weights/_list.html.slim +2 -2
  167. data/app/views/renalware/clinical/dry_weights/_table.html.slim +3 -3
  168. data/app/views/renalware/clinical/profiles/edit.html.slim +5 -1
  169. data/app/views/renalware/clinical/profiles/show.html.slim +3 -2
  170. data/app/views/renalware/clinics/appointments/index.html.slim +4 -5
  171. data/app/views/renalware/clinics/clinic_visits/_table_row.html.slim +2 -2
  172. data/app/views/renalware/clinics/clinic_visits/edit.html.slim +1 -1
  173. data/app/views/renalware/clinics/clinic_visits/index.html.slim +1 -1
  174. data/app/views/renalware/clinics/clinic_visits/new.html.slim +2 -2
  175. data/app/views/renalware/clinics/visits/_filters.html.slim +2 -2
  176. data/app/views/renalware/clinics/visits/_table.html.slim +1 -1
  177. data/app/views/renalware/dashboard/bookmarks/_bookmark.html.slim +1 -1
  178. data/app/views/renalware/dashboard/bookmarks/_table.html.slim +10 -10
  179. data/app/views/renalware/dashboard/dashboards/show.html.slim +1 -1
  180. data/app/views/renalware/dashboard/letters/_letter.html.slim +3 -8
  181. data/app/views/renalware/dashboard/letters/_table.html.slim +5 -5
  182. data/app/views/renalware/deaths/edit.html.slim +1 -1
  183. data/app/views/renalware/deaths/index.html.slim +3 -3
  184. data/app/views/renalware/directory/people/_filters.html.slim +2 -2
  185. data/app/views/renalware/directory/people/_form.html.slim +1 -1
  186. data/app/views/renalware/directory/people/_person.html.slim +3 -4
  187. data/app/views/renalware/directory/people/show.html.slim +1 -1
  188. data/app/views/renalware/drugs/drugs/_filters.html.slim +3 -3
  189. data/app/views/renalware/drugs/drugs/_form.html.slim +1 -1
  190. data/app/views/renalware/drugs/drugs/edit.html.slim +1 -1
  191. data/app/views/renalware/drugs/drugs/index.html.slim +3 -3
  192. data/app/views/renalware/drugs/drugs/new.html.slim +1 -1
  193. data/app/views/renalware/events/events/_event.html.slim +16 -3
  194. data/app/views/renalware/events/events/_filters.html.slim +10 -4
  195. data/app/views/renalware/events/events/_form.html.slim +2 -2
  196. data/app/views/renalware/events/events/_summary_part.html.slim +3 -5
  197. data/app/views/renalware/events/events/_table.html.slim +6 -7
  198. data/app/views/renalware/events/events/edit.html.slim +10 -0
  199. data/app/views/renalware/events/events/index.html.slim +1 -1
  200. data/app/views/renalware/events/events/new.html.slim +4 -4
  201. data/app/views/renalware/events/events/simple/_event.html.slim +1 -1
  202. data/app/views/renalware/events/events/simple/_table.html.slim +3 -3
  203. data/app/views/renalware/events/investigations/_list.html.slim +1 -1
  204. data/app/views/renalware/events/investigations/edit.html.slim +5 -11
  205. data/app/views/renalware/events/lists/_filters.html.slim +2 -2
  206. data/app/views/renalware/events/swabs/_list.html.slim +7 -7
  207. data/app/views/renalware/events/swabs/edit.html.slim +5 -11
  208. data/app/views/renalware/events/swabs/new.html.slim +5 -11
  209. data/app/views/renalware/events/types/_form.html.slim +2 -1
  210. data/app/views/renalware/events/types/_table.html.slim +2 -2
  211. data/app/views/renalware/events/types/edit.html.slim +1 -1
  212. data/app/views/renalware/events/types/index.html.slim +1 -1
  213. data/app/views/renalware/feeds/hl7_test_messages/new.slim +1 -1
  214. data/app/views/renalware/hd/accesses/_summary.html.slim +1 -1
  215. data/app/views/renalware/hd/cannulation_types/_form.html.slim +1 -1
  216. data/app/views/renalware/hd/cannulation_types/index.html.slim +3 -3
  217. data/app/views/renalware/hd/current_profile/_form.html.slim +7 -6
  218. data/app/views/renalware/hd/current_profile/_show.html.slim +1 -2
  219. data/app/views/renalware/hd/current_profile/_summary.html.slim +3 -3
  220. data/app/views/renalware/hd/current_profile/show.html.slim +1 -1
  221. data/app/views/renalware/hd/dashboards/_page_actions.html.slim +1 -1
  222. data/app/views/renalware/hd/dialysates/_form.html.slim +1 -1
  223. data/app/views/renalware/hd/dialysates/index.html.slim +3 -3
  224. data/app/views/renalware/hd/dialysers/_form.html.slim +1 -1
  225. data/app/views/renalware/hd/dialysers/index.html.slim +4 -5
  226. data/app/views/renalware/hd/historical_profiles/_summary.html.slim +1 -1
  227. data/app/views/renalware/hd/historical_profiles/_table.html.slim +1 -1
  228. data/app/views/renalware/hd/mdm/_sessions.html.slim +1 -1
  229. data/app/views/renalware/hd/mdm_patients/_filters.html.slim +2 -2
  230. data/app/views/renalware/hd/mdm_patients/_table.html.slim +23 -23
  231. data/app/views/renalware/hd/ongoing_sessions/_filters.html.slim +2 -2
  232. data/app/views/renalware/hd/ongoing_sessions/_session.html.slim +1 -2
  233. data/app/views/renalware/hd/preference_sets/_form.html.slim +1 -1
  234. data/app/views/renalware/hd/preference_sets/_summary.html.slim +1 -1
  235. data/app/views/renalware/hd/prescription_administrations/_form.html.slim +2 -2
  236. data/app/views/renalware/hd/protocols/_profile.html.slim +1 -1
  237. data/app/views/renalware/hd/scheduling/diaries/_page_actions.html.slim +1 -1
  238. data/app/views/renalware/hd/scheduling/diaries/_weekly_diary.html.slim +1 -1
  239. data/app/views/renalware/hd/scheduling/diary_slots/_form.html.slim +1 -1
  240. data/app/views/renalware/hd/scheduling/diary_slots/_slot.html.slim +1 -1
  241. data/app/views/renalware/hd/scheduling/diary_slots/_tab.html.slim +1 -1
  242. data/app/views/renalware/hd/session_forms/batches/_create.html.slim +1 -1
  243. data/app/views/renalware/hd/sessions/_form_actions.html.slim +2 -2
  244. data/app/views/renalware/hd/sessions/_index_tabs.html.slim +1 -1
  245. data/app/views/renalware/hd/sessions/_list.html.slim +2 -2
  246. data/app/views/renalware/hd/sessions/_session_nav.html.slim +2 -2
  247. data/app/views/renalware/hd/sessions/_thead.html.slim +3 -3
  248. data/app/views/renalware/hd/sessions/dna/_form.html.slim +2 -2
  249. data/app/views/renalware/hd/sessions/edit.html.slim +1 -1
  250. data/app/views/renalware/hd/sessions/new.html.slim +1 -1
  251. data/app/views/renalware/hd/sessions/show.html.slim +1 -1
  252. data/app/views/renalware/hd/stations/_form.html.slim +2 -2
  253. data/app/views/renalware/hd/stations/_station.html.slim +1 -1
  254. data/app/views/renalware/hd/stations/index.html.slim +1 -1
  255. data/app/views/renalware/hd/transmission_logs/index.html.slim +1 -1
  256. data/app/views/renalware/hd/unmet_preferences/_filters.html.slim +2 -2
  257. data/app/views/renalware/hd/unmet_preferences/_table.html.slim +1 -1
  258. data/app/views/renalware/hd/witnesses/_form.html.slim +1 -1
  259. data/app/views/renalware/hospitals/units/_form.html.slim +1 -1
  260. data/app/views/renalware/hospitals/units/index.html.slim +4 -5
  261. data/app/views/renalware/hospitals/wards/index.html.slim +3 -3
  262. data/app/views/renalware/letters/_summary_part.html.slim +3 -5
  263. data/app/views/renalware/letters/batches/_create.html.slim +1 -1
  264. data/app/views/renalware/letters/completed_batches/new.html.slim +0 -9
  265. data/app/views/renalware/letters/completed_letters/new.html.slim +1 -1
  266. data/app/views/renalware/letters/contacts/_contact.html.slim +1 -1
  267. data/app/views/renalware/letters/contacts/_edit.html.slim +1 -1
  268. data/app/views/renalware/letters/contacts/index.html.slim +1 -1
  269. data/app/views/renalware/letters/electronic_receipts/_table.html.slim +9 -9
  270. data/app/views/renalware/letters/electronic_receipts/sent.html.slim +6 -6
  271. data/app/views/renalware/letters/formatted_letters/_letter.html.slim +1 -1
  272. data/app/views/renalware/letters/letters/_actions.html.slim +1 -1
  273. data/app/views/renalware/letters/letters/_create_letter_button_dropdown.html.slim +1 -1
  274. data/app/views/renalware/letters/letters/_form.html.slim +2 -3
  275. data/app/views/renalware/letters/letters/_letter.html.slim +9 -7
  276. data/app/views/renalware/letters/letters/_preview.html.slim +1 -1
  277. data/app/views/renalware/letters/letters/_problems_prescriptions.html.slim +1 -1
  278. data/app/views/renalware/letters/letters/_table.html.slim +8 -6
  279. data/app/views/renalware/letters/letters/_toggled_body.html.slim +15 -0
  280. data/app/views/renalware/letters/letters/edit.html.slim +1 -1
  281. data/app/views/renalware/letters/lists/_letter.html.slim +57 -52
  282. data/app/views/renalware/letters/lists/_table.html.slim +7 -6
  283. data/app/views/renalware/letters/lists/show.html.slim +10 -4
  284. data/app/views/renalware/letters/mailshots/mailshots/index.html.slim +1 -1
  285. data/app/views/renalware/low_clearance/dashboards/_page_actions.html.slim +1 -1
  286. data/app/views/renalware/low_clearance/mdm/_low_clearance_profile.html.slim +1 -1
  287. data/app/views/renalware/low_clearance/profiles/_summary.html.slim +1 -81
  288. data/app/views/renalware/low_clearance/profiles/edit.html.slim +3 -9
  289. data/app/views/renalware/mdm/_clinic_visits.html.slim +2 -2
  290. data/app/views/renalware/mdm/_events.html.slim +1 -1
  291. data/app/views/renalware/mdm/_letters.html.slim +1 -1
  292. data/app/views/renalware/mdm/_pathology.html.slim +1 -1
  293. data/app/views/renalware/mdm/_prescription_buttons.html.slim +2 -2
  294. data/app/views/renalware/mdm/_problems.html.slim +2 -2
  295. data/app/views/renalware/mdm_patients/_table.html.slim +6 -6
  296. data/app/views/renalware/medications/_summary_part.html.slim +2 -3
  297. data/app/views/renalware/medications/drug_types/prescriptions/_filters.html.slim +1 -3
  298. data/app/views/renalware/medications/drug_types/prescriptions/_table.html.slim +1 -1
  299. data/app/views/renalware/medications/home_delivery/events/_edit.html.slim +1 -1
  300. data/app/views/renalware/medications/prescriptions/_filter_form.html.slim +2 -2
  301. data/app/views/renalware/medications/prescriptions/_form.html.slim +2 -2
  302. data/app/views/renalware/medications/prescriptions/_options.html.slim +2 -2
  303. data/app/views/renalware/medications/prescriptions/index.html.slim +1 -1
  304. data/app/views/renalware/medications/terminations/_form.html.slim +1 -1
  305. data/app/views/renalware/messaging/internal/receipts/_receipt.html.slim +1 -1
  306. data/app/views/renalware/messaging/internal/receipts/_sent_receipt.html.slim +1 -1
  307. data/app/views/renalware/messaging/internal/receipts/_sent_table.html.slim +7 -7
  308. data/app/views/renalware/messaging/internal/receipts/_table.html.slim +8 -8
  309. data/app/views/renalware/messaging/shared/_key.html.slim +1 -2
  310. data/app/views/renalware/modalities/descriptions/_form.html.slim +1 -1
  311. data/app/views/renalware/modalities/descriptions/index.html.slim +3 -3
  312. data/app/views/renalware/modalities/modalities/index.html.slim +1 -1
  313. data/app/views/renalware/modalities/modalities/new.html.slim +2 -2
  314. data/app/views/renalware/navigation/_branding.html.slim +1 -2
  315. data/app/views/renalware/navigation/_directory.html.slim +1 -1
  316. data/app/views/renalware/navigation/_help_items.html.slim +1 -1
  317. data/app/views/renalware/navigation/_patient_search.html.slim +1 -1
  318. data/app/views/renalware/navigation/_patients_admin.html.slim +1 -1
  319. data/app/views/renalware/navigation/_sign_out.html.slim +1 -1
  320. data/app/views/renalware/navigation/_user.html.slim +1 -1
  321. data/app/views/renalware/pathology/code_groups/edit.html.slim +2 -2
  322. data/app/views/renalware/pathology/code_groups/index.html.slim +2 -2
  323. data/app/views/renalware/pathology/code_groups/show.html.slim +1 -1
  324. data/app/views/renalware/pathology/observation_descriptions/_filters.html.slim +2 -2
  325. data/app/views/renalware/pathology/observation_descriptions/edit.html.slim +1 -1
  326. data/app/views/renalware/pathology/observation_requests/_filters.html.slim +2 -2
  327. data/app/views/renalware/pathology/patient_rules/_form.html.slim +1 -1
  328. data/app/views/renalware/pathology/requests/requests/index.html.slim +3 -3
  329. data/app/views/renalware/pathology/required_observations/index.html.slim +4 -4
  330. data/app/views/renalware/patients/_header.html.slim +4 -4
  331. data/app/views/renalware/patients/_index_header.html.slim +1 -1
  332. data/app/views/renalware/patients/_search_form.html.slim +1 -1
  333. data/app/views/renalware/patients/_summary_part.html.slim +3 -3
  334. data/app/views/renalware/patients/bookmarks/_table.html.slim +10 -10
  335. data/app/views/renalware/patients/clinical_summaries/show.html.slim +1 -1
  336. data/app/views/renalware/patients/mdms/_filters.html.slim +2 -2
  337. data/app/views/renalware/patients/patients/index.html.slim +1 -1
  338. data/app/views/renalware/patients/patients/show.html.slim +2 -2
  339. data/app/views/renalware/patients/patients/show/_primary_care_physician.html.slim +2 -2
  340. data/app/views/renalware/patients/primary_care_physician/_form.html.slim +2 -2
  341. data/app/views/renalware/patients/primary_care_physicians/_form.html.slim +1 -1
  342. data/app/views/renalware/patients/primary_care_physicians/_primary_care_physician.html.slim +2 -2
  343. data/app/views/renalware/patients/primary_care_physicians/index.html.slim +1 -1
  344. data/app/views/renalware/patients/worryboard/_filters.html.slim +2 -2
  345. data/app/views/renalware/patients/worryboard/_table.html.slim +2 -2
  346. data/app/views/renalware/pd/_exit_site_infections.html.slim +2 -2
  347. data/app/views/renalware/pd/_peritonitis_episodes.html.slim +2 -2
  348. data/app/views/renalware/pd/_pet_adequacies.html.slim +3 -3
  349. data/app/views/renalware/pd/_regimes.html.slim +2 -2
  350. data/app/views/renalware/pd/adequacy_completions/_filters.html.slim +2 -2
  351. data/app/views/renalware/pd/adequacy_results/_table.html.slim +4 -4
  352. data/app/views/renalware/pd/adequacy_results/edit.html.slim +2 -2
  353. data/app/views/renalware/pd/adequacy_results/new.html.slim +2 -2
  354. data/app/views/renalware/pd/assessments/_form.html.slim +2 -2
  355. data/app/views/renalware/pd/assessments/_list.html.slim +2 -2
  356. data/app/views/renalware/pd/assessments/show.html.slim +1 -1
  357. data/app/views/renalware/pd/bag_types/_form.html.slim +2 -2
  358. data/app/views/renalware/pd/bag_types/_header.html.slim +1 -1
  359. data/app/views/renalware/pd/bag_types/index.html.slim +4 -4
  360. data/app/views/renalware/pd/dashboards/show/_apd_regimes.html.slim +1 -1
  361. data/app/views/renalware/pd/dashboards/show/_capd_regimes.html.slim +1 -1
  362. data/app/views/renalware/pd/dashboards/show/_page_actions.html.slim +1 -1
  363. data/app/views/renalware/pd/exit_site_infections/_details.html.slim +1 -1
  364. data/app/views/renalware/pd/exit_site_infections/_form.html.slim +2 -2
  365. data/app/views/renalware/pd/exit_site_infections/edit.html.slim +1 -1
  366. data/app/views/renalware/pd/exit_site_infections/new.html.slim +1 -1
  367. data/app/views/renalware/pd/infection_organisms/_form.html.slim +2 -2
  368. data/app/views/renalware/pd/infection_organisms/_table.html.slim +7 -5
  369. data/app/views/renalware/pd/peritonitis_episodes/_details.html.slim +1 -1
  370. data/app/views/renalware/pd/peritonitis_episodes/_form.html.slim +2 -2
  371. data/app/views/renalware/pd/peritonitis_episodes/edit.html.slim +1 -1
  372. data/app/views/renalware/pd/peritonitis_episodes/new.html.slim +1 -1
  373. data/app/views/renalware/pd/pet_adequacy_results/_form.html.slim +2 -2
  374. data/app/views/renalware/pd/pet_completions/_filters.html.slim +2 -2
  375. data/app/views/renalware/pd/pet_results/_table.html.slim +4 -4
  376. data/app/views/renalware/pd/pet_results/edit.html.slim +2 -2
  377. data/app/views/renalware/pd/pet_results/new.html.slim +2 -2
  378. data/app/views/renalware/pd/regimes/edit.html.slim +2 -2
  379. data/app/views/renalware/pd/regimes/new.html.slim +2 -2
  380. data/app/views/renalware/pd/training_sessions/_form.html.slim +2 -2
  381. data/app/views/renalware/pd/training_sessions/_list.html.slim +2 -2
  382. data/app/views/renalware/pd/training_sessions/show.html.slim +1 -1
  383. data/app/views/renalware/pd/unified_pet_adequacies/_form.html.slim +1 -1
  384. data/app/views/renalware/problems/notes/_form.html.slim +1 -1
  385. data/app/views/renalware/problems/notes/_table.html.slim +4 -5
  386. data/app/views/renalware/problems/problems/_archived_table.html.slim +2 -2
  387. data/app/views/renalware/problems/problems/_current_list.html.slim +1 -1
  388. data/app/views/renalware/problems/problems/_current_table.html.slim +4 -5
  389. data/app/views/renalware/problems/problems/_details.html.slim +1 -1
  390. data/app/views/renalware/problems/problems/_history.html.slim +1 -1
  391. data/app/views/renalware/problems/problems/_summary_part.html.slim +5 -5
  392. data/app/views/renalware/problems/problems/edit.html.slim +2 -2
  393. data/app/views/renalware/problems/problems/index.html.slim +1 -1
  394. data/app/views/renalware/problems/problems/new.html.slim +1 -1
  395. data/app/views/renalware/renal/aki_alerts/_aki_alert.html.slim +1 -1
  396. data/app/views/renalware/renal/aki_alerts/_filters.html.slim +2 -2
  397. data/app/views/renalware/renal/aki_alerts/edit.html.slim +1 -1
  398. data/app/views/renalware/renal/profiles/edit.html.slim +2 -2
  399. data/app/views/renalware/renal/profiles/show.html.slim +1 -1
  400. data/app/views/renalware/renal/registry_preflight_checks/_filters.html.slim +2 -2
  401. data/app/views/renalware/renal/registry_preflight_checks/_table.html.slim +1 -1
  402. data/app/views/renalware/reporting/audits/edit.html.slim +1 -1
  403. data/app/views/renalware/reporting/audits/index.html.slim +2 -2
  404. data/app/views/renalware/research/studies/_filters.html.slim +2 -2
  405. data/app/views/renalware/research/studies/index.html.slim +3 -3
  406. data/app/views/renalware/research/study_participants/_filters.html.slim +2 -2
  407. data/app/views/renalware/research/study_participants/_table.html.slim +4 -4
  408. data/app/views/renalware/research/study_participants/index.html.slim +1 -1
  409. data/app/views/renalware/snippets/snippets/_form.html.slim +2 -2
  410. data/app/views/renalware/snippets/snippets/_row.html.slim +2 -2
  411. data/app/views/renalware/snippets/snippets/_search_form.html.slim +1 -0
  412. data/app/views/renalware/snippets/snippets/_table.html.slim +1 -1
  413. data/app/views/renalware/system/downloads/_form.html.slim +1 -1
  414. data/app/views/renalware/system/downloads/index.html.slim +3 -3
  415. data/app/views/renalware/system/messages/_form.html.slim +1 -1
  416. data/app/views/renalware/system/messages/index.html.slim +3 -3
  417. data/app/views/renalware/system/user_feedback/edit.html.slim +1 -1
  418. data/app/views/renalware/system/user_feedback/index.html.slim +1 -1
  419. data/app/views/renalware/system/user_feedback/new.html.slim +1 -1
  420. data/app/views/renalware/system/view_metadata/edit.html.slim +2 -2
  421. data/app/views/renalware/transplants/donations/_form.html.slim +4 -4
  422. data/app/views/renalware/transplants/donations/_summary.html.slim +2 -2
  423. data/app/views/renalware/transplants/donations/show.html.slim +1 -1
  424. data/app/views/renalware/transplants/donor_dashboards/show.html.slim +1 -1
  425. data/app/views/renalware/transplants/donor_followups/_form.html.slim +4 -4
  426. data/app/views/renalware/transplants/donor_followups/show.html.slim +1 -1
  427. data/app/views/renalware/transplants/donor_operations/_form.html.slim +4 -4
  428. data/app/views/renalware/transplants/donor_operations/_list.html.slim +4 -5
  429. data/app/views/renalware/transplants/donor_operations/edit.html.slim +1 -1
  430. data/app/views/renalware/transplants/donor_operations/new.html.slim +1 -1
  431. data/app/views/renalware/transplants/donor_operations/show.html.slim +1 -1
  432. data/app/views/renalware/transplants/donor_stages/_list.html.slim +1 -1
  433. data/app/views/renalware/transplants/donor_stages/new.html.slim +2 -2
  434. data/app/views/renalware/transplants/donor_workups/_form.html.slim +4 -4
  435. data/app/views/renalware/transplants/donor_workups/_summary.html.slim +2 -2
  436. data/app/views/renalware/transplants/donor_workups/show.html.slim +1 -1
  437. data/app/views/renalware/transplants/live_donors/_filters.html.slim +2 -1
  438. data/app/views/renalware/transplants/live_donors/_index.html.slim +5 -5
  439. data/app/views/renalware/transplants/mdm_patients/_table.html.slim +6 -6
  440. data/app/views/renalware/transplants/recipient_dashboards/_page_actions.html.slim +1 -1
  441. data/app/views/renalware/transplants/recipient_followups/_form.html.slim +4 -4
  442. data/app/views/renalware/transplants/recipient_followups/show.html.slim +1 -1
  443. data/app/views/renalware/transplants/recipient_operations/_form.html.slim +4 -4
  444. data/app/views/renalware/transplants/recipient_operations/_list.html.slim +6 -7
  445. data/app/views/renalware/transplants/recipient_operations/_mdm_list.html.slim +1 -1
  446. data/app/views/renalware/transplants/recipient_operations/show.html.slim +1 -1
  447. data/app/views/renalware/transplants/recipient_workups/_form.html.slim +4 -4
  448. data/app/views/renalware/transplants/recipient_workups/_summary.html.slim +2 -2
  449. data/app/views/renalware/transplants/recipient_workups/show.html.slim +1 -1
  450. data/app/views/renalware/transplants/registration_statuses/_form.html.slim +2 -2
  451. data/app/views/renalware/transplants/registration_statuses/_list.html.slim +1 -1
  452. data/app/views/renalware/transplants/registrations/_form.html.slim +4 -4
  453. data/app/views/renalware/transplants/registrations/_summary.html.slim +2 -2
  454. data/app/views/renalware/transplants/registrations/show.html.slim +1 -1
  455. data/app/views/renalware/users/_filters.html.slim +3 -3
  456. data/app/views/renalware/virology/dashboards/_actions.html.slim +1 -1
  457. data/app/views/renalware/virology/profiles/_summary.html.slim +1 -1
  458. data/app/views/renalware/virology/profiles/edit.html.slim +2 -2
  459. data/app/views/renalware/virology/vaccination_types/_form.html.slim +10 -0
  460. data/app/views/renalware/virology/vaccination_types/edit.html.slim +3 -0
  461. data/app/views/renalware/virology/vaccination_types/index.html.slim +42 -0
  462. data/app/views/renalware/virology/vaccination_types/new.html.slim +3 -0
  463. data/app/views/renalware/virology/vaccinations/_alert.html.slim +7 -1
  464. data/app/views/renalware/virology/vaccinations/_list.html.slim +1 -1
  465. data/config/i18n-tasks.yml +154 -0
  466. data/config/initializers/inflections.rb +1 -0
  467. data/config/initializers/simple_form.rb +1 -1
  468. data/config/locales/{custom.yml → custom.en.yml} +12 -10
  469. data/config/locales/devise.en.yml +130 -42
  470. data/config/locales/devise.pt.yml +148 -0
  471. data/config/locales/devise.security_extension.en.yml +1 -0
  472. data/config/locales/en-GB.yml +0 -2
  473. data/config/locales/en.yml +79 -5
  474. data/config/locales/faker.en.yml +1 -1
  475. data/config/locales/{loinc_codes.yml → loinc_codes.en.yml} +1 -0
  476. data/config/locales/page_titles.en.yml +4 -3
  477. data/config/locales/pt.yml +305 -0
  478. data/config/locales/renalware/accesses/{assessment.yml → assessment.en.yml} +1 -0
  479. data/config/locales/renalware/accesses/plan.en.yml +1 -0
  480. data/config/locales/renalware/accesses/{procedure.yml → procedure.en.yml} +1 -0
  481. data/config/locales/renalware/accesses/{profile.yml → profile.en.yml} +1 -0
  482. data/config/locales/renalware/{address.yml → address.en.yml} +1 -0
  483. data/config/locales/renalware/admissions/{admissions.yml → admissions.en.yml} +1 -0
  484. data/config/locales/renalware/admissions/consults.en.yml +1 -0
  485. data/config/locales/renalware/admissions/requests.en.yml +1 -0
  486. data/config/locales/renalware/{age.yml → age.en.yml} +1 -0
  487. data/config/locales/renalware/blood_group.en.yml +1 -0
  488. data/config/locales/renalware/blood_pressure.en.yml +1 -0
  489. data/config/locales/renalware/clinical/allergies.en.yml +1 -2
  490. data/config/locales/renalware/clinical/{body_composition.yml → body_composition.en.yml} +1 -3
  491. data/config/locales/renalware/clinical/dry_weight.en.yml +4 -4
  492. data/config/locales/renalware/clinical/header.en.yml +1 -0
  493. data/config/locales/renalware/clinics/{visit.yml → visit.en.yml} +1 -0
  494. data/config/locales/renalware/dashboard/{dashboard.yml → dashboard.en.yml} +6 -10
  495. data/config/locales/renalware/dashboard/dashboard.pt.yml +7 -0
  496. data/config/locales/renalware/{dates_test.yml → dates_test.en.yml} +1 -0
  497. data/config/locales/renalware/directory/{person.yml → person.en.yml} +1 -0
  498. data/config/locales/renalware/errors.en.yml +1 -0
  499. data/config/locales/renalware/events/advanced_care_plan.en.yml +1 -0
  500. data/config/locales/renalware/events/biopsy.en.yml +1 -0
  501. data/config/locales/renalware/events/clinical_frailty_score.en.yml +1 -0
  502. data/config/locales/renalware/events/clinical_frailty_score_component.en.yml +1 -0
  503. data/config/locales/renalware/events/{events.yml → events.en.yml} +3 -6
  504. data/config/locales/renalware/events/investigation.en.yml +1 -0
  505. data/config/locales/renalware/events/swab.en.yml +5 -6
  506. data/config/locales/renalware/feeds/file.en.yml +1 -0
  507. data/config/locales/renalware/hd/accesses.en.yml +1 -0
  508. data/config/locales/renalware/hd/dashboards.en.yml +1 -0
  509. data/config/locales/renalware/hd/diary_slots.en.yml +1 -0
  510. data/config/locales/renalware/hd/mdm.en.yml +1 -0
  511. data/config/locales/renalware/hd/mdm_patients.en.yml +39 -0
  512. data/config/locales/renalware/hd/{preference_set.yml → preference_set.en.yml} +1 -0
  513. data/config/locales/renalware/hd/prescription_administration.en.yml +1 -0
  514. data/config/locales/renalware/hd/{profile.yml → profile.en.yml} +2 -1
  515. data/config/locales/renalware/hd/protocol.en.yml +2 -1
  516. data/config/locales/renalware/hd/session.en.yml +3 -1
  517. data/config/locales/renalware/hospitals/{unit.yml → unit.en.yml} +1 -0
  518. data/config/locales/renalware/letters/contact.en.yml +9 -7
  519. data/config/locales/renalware/letters/letter.en.yml +10 -0
  520. data/config/locales/renalware/letters/letter.pt.yml +7 -0
  521. data/config/locales/renalware/letters/recipient.en.yml +2 -1
  522. data/config/locales/renalware/low_clearance/dashboard.en.yml +3 -2
  523. data/config/locales/renalware/low_clearance/low_clearance.en.yml +9 -1
  524. data/config/locales/renalware/low_clearance/profile.en.yml +3 -2
  525. data/config/locales/renalware/{mdm.yml → mdm.en.yml} +1 -5
  526. data/config/locales/renalware/medications/drug_types/esa_prescriptions.en.yml +1 -0
  527. data/config/locales/renalware/medications/{prescription.yml → prescription.en.yml} +1 -0
  528. data/config/locales/renalware/medications/prescriptions/drug_select.en.yml +1 -0
  529. data/config/locales/renalware/medications/{route.yml → route.en.yml} +1 -0
  530. data/config/locales/renalware/medications/{tabbed_prescriptions_list_component.yml → tabbed_prescriptions_list_component.en.yml} +1 -1
  531. data/config/locales/renalware/messaging/internal/messages.en.yml +1 -15
  532. data/config/locales/renalware/modalities/modalities.en.yml +1 -0
  533. data/config/locales/renalware/navigation/menu.en.yml +13 -0
  534. data/config/locales/renalware/navigation/menu.pt.yml +14 -0
  535. data/config/locales/renalware/navigation/patient_search.en.yml +1 -0
  536. data/config/locales/renalware/navigation/renal.en.yml +2 -1
  537. data/config/locales/renalware/nhs_number.en.yml +1 -0
  538. data/config/locales/renalware/page_titles.pt.yml +20 -0
  539. data/config/locales/renalware/pathology/{requests.yml → requests.en.yml} +1 -0
  540. data/config/locales/renalware/{patient.yml → patient.en.yml} +1 -0
  541. data/config/locales/renalware/patients/alerts.en.yml +1 -0
  542. data/config/locales/renalware/patients/bookmarks.en.yml +1 -0
  543. data/config/locales/renalware/patients/patients.en.yml +1 -0
  544. data/config/locales/renalware/patients/search_form.en.yml +1 -0
  545. data/config/locales/renalware/patients/side_menu.en.yml +2 -1
  546. data/config/locales/renalware/patients/side_menu.pt.yml +40 -0
  547. data/config/locales/renalware/patients/worries.en.yml +1 -0
  548. data/config/locales/renalware/pd/adequacy_result.en.yml +1 -0
  549. data/config/locales/renalware/pd/assessments.en.yml +1 -0
  550. data/config/locales/renalware/pd/assistance_types.en.yml +1 -0
  551. data/config/locales/renalware/pd/{bag_types.yml → bag_types.en.yml} +1 -0
  552. data/config/locales/renalware/pd/dashboard.en.yml +1 -0
  553. data/config/locales/renalware/pd/exit_site_infection.en.yml +1 -0
  554. data/config/locales/renalware/pd/mdm.en.yml +1 -0
  555. data/config/locales/renalware/pd/{peritonitis_episodes.yml → peritonitis_episodes.en.yml} +1 -0
  556. data/config/locales/renalware/pd/pet_adequacy_result.en.yml +1 -0
  557. data/config/locales/renalware/pd/pet_result.en.yml +1 -0
  558. data/config/locales/renalware/pd/regime.en.yml +1 -0
  559. data/config/locales/renalware/pd/training_sessions.en.yml +1 -0
  560. data/config/locales/renalware/pd/treatments.en.yml +1 -0
  561. data/config/locales/renalware/problems/{note.yml → problems.en.yml} +1 -0
  562. data/config/locales/renalware/renal/aki_alerts.en.yml +1 -0
  563. data/config/locales/renalware/renal/profile.en.yml +1 -0
  564. data/config/locales/renalware/renal/registry.en.yml +1 -0
  565. data/config/locales/renalware/reporting/audit.en.yml +1 -0
  566. data/config/locales/renalware/research/study_participant.en.yml +1 -0
  567. data/config/locales/renalware/{shared.yml → shared.en.yml} +1 -0
  568. data/config/locales/renalware/snippets/snippets.en.yml +1 -0
  569. data/config/locales/renalware/transplants/{donation.yml → donation.en.yml} +1 -0
  570. data/config/locales/renalware/transplants/donor_dashboard.en.yml +1 -0
  571. data/config/locales/renalware/transplants/{donor_followup.yml → donor_followup.en.yml} +1 -0
  572. data/config/locales/renalware/transplants/{donor_operation.yml → donor_operation.en.yml} +1 -0
  573. data/config/locales/renalware/transplants/{donor_workup.yml → donor_workup.en.yml} +1 -0
  574. data/config/locales/renalware/transplants/live_donors.en.yml +1 -0
  575. data/config/locales/renalware/transplants/mdm.en.yml +1 -0
  576. data/config/locales/renalware/transplants/recipient_dashboards.en.yml +1 -0
  577. data/config/locales/renalware/transplants/{recipient_followup.yml → recipient_followup.en.yml} +1 -0
  578. data/config/locales/renalware/transplants/{recipient_operation.yml → recipient_operation.en.yml} +1 -0
  579. data/config/locales/renalware/transplants/{recipient_workup.yml → recipient_workup.en.yml} +1 -0
  580. data/config/locales/renalware/transplants/{registration.yml → registration.en.yml} +1 -0
  581. data/config/locales/renalware/transplants/rejection_episode.en.yml +1 -0
  582. data/config/locales/renalware/virology/virology.en.yml +1 -1
  583. data/config/locales/simple_form.en.yml +1 -0
  584. data/config/locales/validates_timeliness.en.yml +1 -0
  585. data/config/permissions.yml +1 -0
  586. data/config/routes/events.rb +1 -1
  587. data/config/routes/virology.rb +6 -0
  588. data/db/migrate/20180112151706_create_low_clearance_profiles.rb +1 -1
  589. data/db/migrate/20190131152758_create_event_categories.rb +36 -0
  590. data/db/migrate/20201217154345_update_reporting_anaemia_audit.rb +7 -0
  591. data/db/migrate/20201217155107_update_reporting_bone_audit.rb +7 -0
  592. data/db/migrate/20201229174653_add_language_to_users.rb +5 -0
  593. data/db/migrate/20210305100015_add_named_nurse_to_patients.rb +33 -0
  594. data/db/migrate/20210305105830_update_mdm_views_for_named_nurse_changes.rb +7 -0
  595. data/db/migrate/20210305181345_deprecate_issued_on_in_letters.rb +8 -0
  596. data/db/migrate/20210305191214_update_reporting_daily_letters_view.rb +11 -0
  597. data/db/migrate/20210310154134_create_akcc_mdm_patients_view.rb +7 -0
  598. data/db/seeds/default/clinics/clinics.rb +1 -1
  599. data/db/seeds/default/events/event_categories.rb +9 -0
  600. data/db/seeds/default/events/event_types.csv +10 -10
  601. data/db/seeds/default/events/event_types.rb +6 -3
  602. data/db/seeds/default/events/seeds.rb +1 -0
  603. data/db/seeds/default/modalities/descriptions.rb +18 -6
  604. data/db/seeds/default/system/view_metadata.rb +2 -2
  605. data/db/views/akcc_mdm_patients_v01.sql +39 -0
  606. data/db/views/hd_mdm_patients_v03.sql +70 -0
  607. data/db/views/reporting_anaemia_audit_v02.sql +39 -0
  608. data/db/views/reporting_bone_audit_v02.sql +31 -0
  609. data/db/views/reporting_daily_letters_v03.sql +4 -0
  610. data/lib/collection_presenter.rb +1 -1
  611. data/lib/core_extensions/i18n/always_cascade.rb +17 -1
  612. data/lib/core_extensions/i18n/handle_blank_value.rb +1 -1
  613. data/lib/renalware/engine.rb +4 -2
  614. data/lib/renalware/version_number.rb +1 -1
  615. data/lib/tasks/demo_data.rake +0 -1
  616. data/spec/factories/events/categories.rb +8 -0
  617. data/spec/factories/events/{events_types.rb → types.rb} +9 -1
  618. data/spec/factories/letters/letters.rb +1 -1
  619. data/spec/factories/low_clearance/modality_descriptions.rb +1 -1
  620. data/spec/factories/modalities/modality_descriptions.rb +1 -1
  621. data/spec/support/date_helpers.rb +2 -2
  622. data/spec/support/letters_spec_helper.rb +1 -1
  623. data/vendor/assets/stylesheets/foundation/components/_forms.scss +153 -148
  624. metadata +119 -74
  625. data/config/locales/renalware/hd/mdm_patients.yml +0 -43
@@ -26,9 +26,9 @@ module Renalware
26
26
 
27
27
  if workup.update(workup_params)
28
28
  redirect_to patient_transplants_donor_workup_path(patient),
29
- notice: t(".success", model_name: "donor work up")
29
+ notice: success_msg_for("donor work up")
30
30
  else
31
- flash.now[:error] = t(".failed", model_name: "donor work up")
31
+ flash.now[:error] = failed_msg_for("donor work up")
32
32
  render :edit, locals: { patient: patient, workup: workup }
33
33
  end
34
34
  end
@@ -27,9 +27,9 @@ module Renalware
27
27
 
28
28
  if recipient_operation.save
29
29
  redirect_to patient_transplants_recipient_dashboard_path(patient),
30
- notice: t(".success", model_name: "recipient operation")
30
+ notice: success_msg_for("recipient operation")
31
31
  else
32
- flash.now[:error] = t(".failed", model_name: "recipient operation")
32
+ flash.now[:error] = failed_msg_for("recipient operation")
33
33
  render :new,
34
34
  locals: {
35
35
  patient: patient,
@@ -50,9 +50,9 @@ module Renalware
50
50
 
51
51
  if operation.save
52
52
  redirect_to patient_transplants_recipient_dashboard_path(patient),
53
- notice: t(".success", model_name: "recipient operation")
53
+ notice: success_msg_for("recipient operation")
54
54
  else
55
- flash.now[:error] = t(".failed", model_name: "recipient operation")
55
+ flash.now[:error] = failed_msg_for("recipient operation")
56
56
  render :edit, locals: { patient: patient, recipient_operation: operation }
57
57
  end
58
58
  end
@@ -31,9 +31,9 @@ module Renalware
31
31
 
32
32
  if workup.update workup_params
33
33
  redirect_to patient_transplants_recipient_workup_path(patient),
34
- notice: t(".success", model_name: "recipient work up")
34
+ notice: success_msg_for("recipient work up")
35
35
  else
36
- flash.now[:error] = t(".failed", model_name: "recipient work up")
36
+ flash.now[:error] = failed_msg_for("recipient work up")
37
37
  render :edit, locals: { patient: patient, workup: workup }
38
38
  end
39
39
  end
@@ -19,9 +19,9 @@ module Renalware
19
19
 
20
20
  if status.valid?
21
21
  redirect_to patient_transplants_recipient_dashboard_path(patient),
22
- notice: t(".success", model_name: "registration status")
22
+ notice: success_msg_for("registration status")
23
23
  else
24
- flash.now[:error] = t(".failed", model_name: "registration status")
24
+ flash.now[:error] = failed_msg_for("registration status")
25
25
  render :new, locals: { patient: patient, status: status }
26
26
  end
27
27
  end
@@ -38,9 +38,9 @@ module Renalware
38
38
  status = update_status
39
39
  if status.valid?
40
40
  redirect_to patient_transplants_recipient_dashboard_path(patient),
41
- notice: t(".success", model_name: "registration status")
41
+ notice: success_msg_for("registration status")
42
42
  else
43
- flash.now[:error] = t(".failed", model_name: "registration status")
43
+ flash.now[:error] = failed_msg_for("registration status")
44
44
  render :edit, locals: { patient: patient, status: status }
45
45
  end
46
46
  end
@@ -50,7 +50,7 @@ module Renalware
50
50
  registration.delete_status!(status)
51
51
 
52
52
  redirect_to patient_transplants_recipient_dashboard_path(patient),
53
- notice: t(".success", model_name: "registration status")
53
+ notice: success_msg_for("registration status")
54
54
  end
55
55
 
56
56
  protected
@@ -22,9 +22,9 @@ module Renalware
22
22
  def update
23
23
  if update_registration
24
24
  redirect_to patient_transplants_recipient_dashboard_path(patient),
25
- notice: t(".success", model_name: "registration")
25
+ notice: success_msg_for("registration")
26
26
  else
27
- flash.now[:error] = t(".failed", model_name: "registration")
27
+ flash.now[:error] = failed_msg_for("registration")
28
28
  render :edit, locals: { patient: patient, registration: registration }
29
29
  end
30
30
  end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_dependency "renalware/virology"
4
+
5
+ module Renalware
6
+ module Virology
7
+ class VaccinationTypesController < BaseController
8
+ def index
9
+ types = VaccinationType.with_deleted.ordered
10
+ authorize types
11
+ render locals: { types: types }
12
+ end
13
+
14
+ def edit
15
+ type = find_and_authorise_type
16
+ render locals: { type: type }
17
+ end
18
+
19
+ def update
20
+ type = find_and_authorise_type
21
+ if type.update(type_params)
22
+ redirect_to virology_vaccination_types_path
23
+ else
24
+ render :edit, locals: { type: type }
25
+ end
26
+ end
27
+
28
+ def new
29
+ type = VaccinationType.new
30
+ authorize type
31
+ render locals: { type: type }
32
+ end
33
+
34
+ def create
35
+ type = VaccinationType.new(type_params)
36
+ authorize type
37
+ if type.save
38
+ redirect_to virology_vaccination_types_path
39
+ else
40
+ render :new, locals: { type: type }
41
+ end
42
+ end
43
+
44
+ def destroy
45
+ find_and_authorise_type.destroy!
46
+ redirect_to virology_vaccination_types_path
47
+ end
48
+
49
+ def sort
50
+ authorize VaccinationType, :sort?
51
+ ids = params[:virology_vaccination_type]
52
+ VaccinationType.sort(ids)
53
+ render json: ids
54
+ end
55
+
56
+ private
57
+
58
+ def find_and_authorise_type
59
+ VaccinationType.find(params[:id]).tap { |type| authorize type }
60
+ end
61
+
62
+ def type_params
63
+ params
64
+ .require("virology_vaccination_type")
65
+ .permit(:name, :code, :position)
66
+ end
67
+ end
68
+ end
69
+ end
@@ -35,10 +35,15 @@ module Renalware
35
35
  end
36
36
  end
37
37
 
38
- def save_or_cancel(form:, back_path:, submit_title: "Save", cancel_title: "cancel")
38
+ def save_or_cancel(
39
+ form:,
40
+ back_path:,
41
+ submit_title: I18n.t("btn.save"),
42
+ cancel_title: I18n.t("btn.cancel")&.downcase
43
+ )
39
44
  capture do
40
45
  concat(form.submit(submit_title, class: "button"))
41
- concat(tag.span { " or " })
46
+ concat(tag.span { " #{I18n.t('btn.or')} " })
42
47
  concat(link_to(cancel_title, back_path))
43
48
  end
44
49
  end
@@ -0,0 +1,36 @@
1
+ import { Controller } from "stimulus"
2
+
3
+ // Controller to enable collapsing elements of a nav/menu to for example
4
+ // allow a more dense menu that can simplifies by hiding/collapsing sections.
5
+ //
6
+ // Example slim markup:
7
+ //
8
+ // div(data-controller="collapsible" data-collapsible-open-class="open")
9
+ // a(data-action="collapsible#open" data-collapsible-target="link" href="#") X
10
+ // div.collapsible(data-collapsible-target="section")
11
+ // p XXX
12
+ // a(data-action="collapsible#open" data-collapsible-target="link" href="#") Y
13
+ // div.collapsible(data-collapsible-target="section")
14
+ // p YYY
15
+ export default class extends Controller {
16
+ static targets = [ "section", "link" ]
17
+ static classes = [ "open" ]
18
+
19
+ connect() {
20
+ // TODO: We could support an initial open section here for example.
21
+ }
22
+
23
+ // When a user clicks on a link with the target of "link", we determine its index,
24
+ // hide all "section" targets initially, then just show the section with the
25
+ // current index. This is a similar approach to the one we take with the tabs controller.
26
+ open(event) {
27
+ let index = this.linkTargets.indexOf(event.currentTarget)
28
+
29
+ this.sectionTargets.forEach((elem, idx) => {
30
+ elem.classList.remove(this.openClass)
31
+ if (idx == index) {
32
+ elem.classList.add(this.openClass)
33
+ }
34
+ })
35
+ }
36
+ }
@@ -27,6 +27,7 @@ import SimpleToggleController from "./controllers/simple_toggle_controller"
27
27
  import TabsController from "./controllers/tabs_controller"
28
28
  import PDPetChartsController from "./controllers/pd/pet_charts_controller"
29
29
  import PathologySparklinesController from "./controllers/pathology/sparklines_controller"
30
+ import CollapsibleController from "./controllers/collapsible_controller"
30
31
 
31
32
  const application = Application.start()
32
33
  application.register("toggle", ToggleController)
@@ -41,5 +42,6 @@ application.register("simple-toggle", SimpleToggleController)
41
42
  application.register("tabs", TabsController)
42
43
  application.register("pd-pet-chart", PDPetChartsController)
43
44
  application.register("pathology-sparklines", PathologySparklinesController)
45
+ application.register("collapsible", CollapsibleController)
44
46
 
45
47
  window.Chartkick.use(window.Highcharts)
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_dependency "renalware/events"
4
+
5
+ module Renalware
6
+ module Events
7
+ class Category < ApplicationRecord
8
+ self.table_name = "event_categories"
9
+ acts_as_paranoid
10
+ has_many :types,
11
+ dependent: :nullify,
12
+ inverse_of: :category,
13
+ class_name: "Renalware::Events::Type"
14
+ validates :name, presence: true, uniqueness: true
15
+
16
+ def to_s
17
+ name
18
+ end
19
+ end
20
+ end
21
+ end
@@ -12,12 +12,14 @@ module Renalware
12
12
  foreign_key: :event_type_id,
13
13
  dependent: :destroy
14
14
  )
15
+ belongs_to :category, class_name: "Renalware::Events::Category"
15
16
 
16
17
  DEFAULT_EVENT_CLASS_NAME = "Renalware::Events::Simple"
17
18
 
18
19
  acts_as_paranoid
19
20
 
20
21
  validates :name, presence: true, uniqueness: true
22
+ validates :category_id, presence: true
21
23
  validates :slug,
22
24
  format: {
23
25
  with: /\A[0-9a-z\-\_]+\z/i,
@@ -21,7 +21,7 @@ module Renalware
21
21
  {
22
22
  hd_profile_hospital_unit_id_eq: hospital_unit_id,
23
23
  hd_profile_schedule_definition_id_in: schedule_definition_ids_array,
24
- hd_profile_named_nurse_id_eq: named_nurse_id
24
+ named_nurse_id_eq: named_nurse_id
25
25
  }
26
26
  end
27
27
 
@@ -10,7 +10,7 @@ module Renalware
10
10
  def request_default_electronic_cc_recipients_for_use_in_letters(patient:, array_of_user_ids:)
11
11
  patient = HD.cast_patient(patient)
12
12
  if patient.current_modality_hd?
13
- named_nurse_id = patient.hd_profile&.named_nurse&.id
13
+ named_nurse_id = patient.named_nurse&.id
14
14
  array_of_user_ids.push(named_nurse_id) if named_nurse_id.present?
15
15
  end
16
16
  end
@@ -15,11 +15,14 @@ module Renalware
15
15
  belongs_to :hospital_unit, class_name: "Hospitals::Unit"
16
16
  belongs_to :dialysate
17
17
  belongs_to :prescriber, class_name: "User"
18
- belongs_to :named_nurse, class_name: "User"
19
18
  belongs_to :transport_decider, class_name: "User"
20
19
  belongs_to :schedule_definition
21
20
  has_document class_name: "Renalware::HD::ProfileDocument"
22
21
 
22
+ # Virtual attr to allow us to accept this field in the profile form, but save it to
23
+ # the patient record rather than to hd_profile
24
+ attr_accessor :named_nurse_id
25
+
23
26
  has_paper_trail(
24
27
  versions: { class_name: "Renalware::HD::Version" },
25
28
  on: [:create, :update, :destroy]
@@ -11,6 +11,7 @@ module Renalware
11
11
  attr_accessor(
12
12
  :url,
13
13
  :enclosures_present,
14
+ :notes_present,
14
15
  :state_eq,
15
16
  :author_id_eq,
16
17
  :created_by_id_eq,
@@ -44,7 +44,6 @@ module Renalware
44
44
  validates :letterhead, presence: true
45
45
  validates :author, presence: true
46
46
  validates :patient, presence: true
47
- validates :issued_on, presence: true
48
47
  validates :description, presence: true
49
48
  validates :main_recipient, presence: true
50
49
 
@@ -133,6 +132,16 @@ module Renalware
133
132
  def effective_date
134
133
  completed_at || approved_at || submitted_for_approval_at || created_at
135
134
  end
135
+
136
+ # The date to display on the letter.
137
+ # Once the letter is approved it can be emailed out, hence this is the real date of issue.
138
+ def date
139
+ datetime.to_date
140
+ end
141
+
142
+ def datetime
143
+ approved_at || submitted_for_approval_at || created_at
144
+ end
136
145
  end
137
146
  end
138
147
  end
@@ -29,6 +29,7 @@ module Renalware
29
29
 
30
30
  attribute :s, String # sort order, not really part of the form
31
31
  attribute :enclosures_present, Boolean
32
+ attribute :notes_present, Boolean
32
33
  attribute :state_eq, Integer
33
34
  attribute :author_id_eq, Integer
34
35
  attribute :created_by_id_eq, Integer
@@ -80,7 +81,7 @@ module Renalware
80
81
  end
81
82
 
82
83
  def disabled_inputs
83
- [:enclosures_present, :state_eq]
84
+ [:enclosures_present, :notes_present, :state_eq]
84
85
  end
85
86
 
86
87
  def allow_blank_inputs
@@ -91,6 +92,10 @@ module Renalware
91
92
  false
92
93
  end
93
94
 
95
+ def notes_present
96
+ false
97
+ end
98
+
94
99
  def state_eq
95
100
  @state_eq || :approved
96
101
  end
@@ -64,7 +64,6 @@ module Renalware
64
64
  description: description,
65
65
  body: body,
66
66
  author_id: author_id,
67
- issued_on: Time.zone.now,
68
67
  main_recipient_attributes: {
69
68
  person_role: :patient,
70
69
  id: nil,
@@ -5,10 +5,17 @@ require_dependency "renalware/letters"
5
5
  module Renalware
6
6
  module Letters
7
7
  module Printing
8
- # - takes a batch of letters
9
- # - compiles each letter along with its recipient cover sheets
10
- # - adds blank pages to make sure the letter always starts on an odd page
11
- # - appends all PDF letters
8
+ # Given a Batch object that has many associated letters, it
9
+ # - compiles each letter with a cover sheet for each recipient, adding blank padding pages
10
+ # if needed to ensure the envelop stuffer will work correctly (ie each letter starts on an
11
+ # odd page)
12
+ # - combines all these letter PDFs into one batch PDF. The output filepath is stored on the
13
+ # batch model.
14
+ #
15
+ # Note that this class creates files and combines them using ghost script.
16
+ # These operations take place in the current working directory, so to use this class
17
+ # you might need to create a OS tmp folder first and cdhir into it. See the spec for an
18
+ # example.
12
19
  class BatchCompilePdfs
13
20
  include PdfCombining
14
21
  PAGE_COUNTS = %w(2 3 4 5 6 7 8 9 10).freeze
@@ -24,6 +31,7 @@ module Renalware
24
31
  Rails.logger.info "Compiling letter PDFs for batch #{batch.id} in folder #{dir}"
25
32
  end
26
33
 
34
+ # rubocop:disable Metrics/AbcSize
27
35
  def call
28
36
  batch.status = :processing
29
37
  batch.save_by!(user)
@@ -36,6 +44,7 @@ module Renalware
36
44
  batch.status = :awaiting_printing
37
45
  batch.save_by!(user)
38
46
  end
47
+ # rubocop:enable Metrics/AbcSize
39
48
 
40
49
  private
41
50
 
@@ -75,6 +84,8 @@ module Renalware
75
84
  Dir.chdir(working_folder) do
76
85
  letter_filename = write_letter_to_pdf_file(letter)
77
86
  letter.recipients.each do |recipient|
87
+ next if recipient.emailed_at.present?
88
+
78
89
  Rails.logger.info " Recipient #{recipient.id}"
79
90
  filenames << write_recipient_cover_sheet_pdf(letter, recipient)
80
91
  filenames << letter_filename
@@ -6,7 +6,7 @@ module Renalware
6
6
  module Letters
7
7
  class RememberedLetterPreferences < RememberedPreferences
8
8
  SESSION_KEY = :letter_preferences
9
- ATTRIBUTES_TO_REMEMBER = %i(letterhead_id description author_id issued_on).freeze
9
+ ATTRIBUTES_TO_REMEMBER = %i(letterhead_id description author_id).freeze
10
10
  end
11
11
  end
12
12
  end
@@ -50,6 +50,7 @@ module Renalware
50
50
  belongs_to :religion, class_name: "Patients::Religion"
51
51
  belongs_to :language, class_name: "Patients::Language"
52
52
  belongs_to :named_consultant, class_name: "User"
53
+ belongs_to :named_nurse, class_name: "User"
53
54
  has_many :bookmarks, class_name: "Patients::Bookmark"
54
55
  has_many :alerts, class_name: "Patients::Alert"
55
56
  has_one :worry, class_name: "Patients::Worry"