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
@@ -0,0 +1,70 @@
1
+ SELECT
2
+ p.id,
3
+ p.secure_id,
4
+ (upper(p.family_name::text) || ', '::text) || p.given_name::text AS patient_name,
5
+ p.nhs_number,
6
+ p.local_patient_id AS hospital_numbers,
7
+ p.sex,
8
+ p.born_on,
9
+ rprof.esrf_on,
10
+ latest_op.performed_on AS last_operation_date,
11
+ date_part('year'::text, age(p.born_on::timestamp with time zone))::integer AS age,
12
+ mx.modality_name,
13
+ case when pw.id > 0 then true else false end as on_worryboard,
14
+ at.name AS access,
15
+ (select bmi from clinic_visits cv2 where cv2.patient_id = P.id and bmi > 0 order by date desc limit 1) as bmi,
16
+ ap.started_on AS access_date,
17
+ aplantype.name AS access_plan,
18
+ aplan.created_at::date AS plan_date,
19
+ txrsd.name AS tx_status,
20
+ unit.name AS hospital_unit,
21
+ unit.unit_code AS dialysing_at,
22
+ (named_nurses.family_name::text || ', '::text) || named_nurses.given_name::text AS named_nurse,
23
+ (((hdp.document -> 'transport'::text) ->> 'has_transport'::text) || ': '::text) || ((hdp.document -> 'transport'::text) ->> 'type'::text) AS transport,
24
+ (sched.days_text || ' '::text) || upper(diurnal.code::text) AS schedule,
25
+ (pa."values" -> 'HGB'::text) ->> 'result'::text AS hgb,
26
+ ((pa."values" -> 'HGB'::text) ->> 'observed_at'::text)::date AS hgb_date,
27
+ (pa."values" -> 'PHOS'::text) ->> 'result'::text AS phos,
28
+ ((pa."values" -> 'PHOS'::text) ->> 'observed_at'::text)::date AS phos_date,
29
+ (pa."values" -> 'POT'::text) ->> 'result'::text AS pot,
30
+ ((pa."values" -> 'POT'::text) ->> 'observed_at'::text)::date AS pot_date,
31
+ (pa."values" -> 'PTHI'::text) ->> 'result'::text AS pthi,
32
+ ((pa."values" -> 'PTHI'::text) ->> 'observed_at'::text)::date AS pthi_date,
33
+ (pa."values" -> 'URR'::text) ->> 'result'::text AS urr,
34
+ ((pa."values" -> 'URR'::text) ->> 'observed_at'::text)::date AS urr_date
35
+ FROM patients p
36
+ JOIN patient_current_modalities mx ON mx.patient_id = p.id AND mx.modality_code::text = 'hd'::text
37
+ LEFT JOIN hd_profiles hdp ON hdp.patient_id = p.id AND hdp.deactivated_at IS NULL
38
+ LEFT JOIN hospital_units unit ON unit.id = hdp.hospital_unit_id
39
+ LEFT JOIN users named_nurses ON named_nurses.id = p.named_nurse_id
40
+ left join patient_worries pw on pw.patient_id = p.id
41
+ LEFT JOIN hd_schedule_definitions sched ON sched.id = hdp.schedule_definition_id
42
+ LEFT JOIN hd_diurnal_period_codes diurnal ON diurnal.id = sched.diurnal_period_id
43
+ LEFT JOIN pathology_current_observation_sets pa ON pa.patient_id = p.id
44
+ LEFT JOIN ( SELECT DISTINCT ON (access_profiles.patient_id) access_profiles.id,
45
+ access_profiles.patient_id,
46
+ access_profiles.formed_on,
47
+ access_profiles.started_on,
48
+ access_profiles.terminated_on,
49
+ access_profiles.type_id,
50
+ access_profiles.side,
51
+ access_profiles.notes,
52
+ access_profiles.created_by_id,
53
+ access_profiles.updated_by_id,
54
+ access_profiles.created_at,
55
+ access_profiles.updated_at,
56
+ access_profiles.decided_by_id
57
+ FROM access_profiles
58
+ WHERE access_profiles.terminated_on IS NULL
59
+ ORDER BY access_profiles.patient_id, access_profiles.created_at DESC) ap ON ap.patient_id = p.id
60
+ LEFT JOIN access_types at ON at.id = ap.type_id
61
+ LEFT JOIN access_plans aplan ON aplan.patient_id = p.id AND aplan.terminated_at IS NULL
62
+ LEFT JOIN access_plan_types aplantype ON aplantype.id = aplan.plan_type_id
63
+ LEFT JOIN transplant_registrations txr ON txr.patient_id = p.id
64
+ LEFT JOIN transplant_registration_statuses txrs ON txrs.registration_id = txr.id AND txrs.terminated_on IS NULL
65
+ LEFT JOIN transplant_registration_status_descriptions txrsd ON txrsd.id = txrs.description_id
66
+ LEFT JOIN renal_profiles rprof ON rprof.patient_id = p.id
67
+ LEFT JOIN ( SELECT DISTINCT ON (transplant_recipient_operations.patient_id) transplant_recipient_operations.patient_id,
68
+ transplant_recipient_operations.performed_on
69
+ FROM transplant_recipient_operations
70
+ ORDER BY transplant_recipient_operations.patient_id, transplant_recipient_operations.performed_on DESC) latest_op ON latest_op.patient_id = p.id;
@@ -0,0 +1,39 @@
1
+ select
2
+ modality_desc modality,
3
+ count(e1.patient_id) patient_count,
4
+ round(avg(hgb),2) avg_hgb,
5
+ round(count(hgb_gt_eq_10) / greatest(count(hgb), 1.0) * 100.0, 2) pct_hgb_gt_eq_10,
6
+ round(count(hgb_gt_eq_11) / greatest(count(hgb), 1.0) * 100.0, 2) pct_hgb_gt_eq_11,
7
+ round(count(hgb_gt_eq_13) / greatest(count(hgb), 1.0) * 100.0, 2) pct_hgb_gt_eq_13,
8
+ round(avg(fer),2) avg_fer,
9
+ round(count(fer_gt_eq_150) / greatest(count(fer), 1.0) * 100.0, 2) pct_fer_gt_eq_150,
10
+ coalesce(sum(immunosuppressants.ct), 0)::integer as count_epo,
11
+ coalesce(sum(mircer.ct), 0)::integer as count_mircer,
12
+ coalesce(sum(neo.ct), 0)::integer as count_neo,
13
+ coalesce(sum(ara.ct), 0)::integer as count_ara
14
+ from (
15
+ select
16
+ p.id patient_id,
17
+ md.name modality_desc,
18
+ md.code modality_code
19
+ from patients p
20
+ inner join modality_modalities m on m.patient_id = p.id
21
+ inner join modality_descriptions md on m.description_id = md.id
22
+ where m.ended_on is null or m.ended_on > current_timestamp
23
+ ) e1
24
+ full join (select mcp.patient_id, count(distinct mcp.drug_id) as ct from medication_current_prescriptions mcp where drug_type_code = 'immunosuppressant' group by mcp.patient_id) as immunosuppressants
25
+ on e1.patient_id = immunosuppressants.patient_id
26
+ full join (select mcp.patient_id, count(distinct mcp.drug_id) as ct from medication_current_prescriptions mcp where drug_name like 'Mircer%' group by mcp.patient_id) as mircer
27
+ on e1.patient_id = mircer.patient_id
28
+ full join (select mcp.patient_id, count(distinct mcp.drug_id) as ct from medication_current_prescriptions mcp where drug_name like 'Neo%' group by mcp.patient_id) as neo
29
+ on e1.patient_id = neo.patient_id
30
+ full join (select mcp.patient_id, count(distinct mcp.drug_id) as ct from medication_current_prescriptions mcp where drug_name like 'Ara%' group by mcp.patient_id) as ara
31
+ on e1.patient_id = ara.patient_id
32
+ left join lateral (select result::decimal hgb from pathology_current_observations where description_code = 'HGB' and patient_id = e1.patient_id) e2 ON true
33
+ left join lateral (select result::decimal fer from pathology_current_observations where description_code = 'FER' and patient_id = e1.patient_id) e3 ON true
34
+ left join lateral (select hgb hgb_gt_eq_10 where hgb >= 10) e4 ON true
35
+ left join lateral (select hgb hgb_gt_eq_11 where hgb >= 11) e5 ON true
36
+ left join lateral (select hgb hgb_gt_eq_13 where hgb >= 13) e6 ON true
37
+ left join lateral (select fer fer_gt_eq_150 where fer >= 150) e7 ON true
38
+ where modality_code in ('hd','pd','transplant', 'low_clearance', 'nephrology')
39
+ group by modality_desc;
@@ -0,0 +1,31 @@
1
+ -- Note that in the example of
2
+ -- greatest(count(cca_2_1_to_2_4), 1) we default to a 1 if count is 0 which you think
3
+ -- would ff
4
+ select
5
+ modality_desc modality,
6
+ count(patient_id) patient_count,
7
+ round(avg(cca),2) avg_cca,
8
+ round(count(cca_2_1_to_2_4) / greatest(count(cca), 1.0) * 100.0, 2) pct_cca_2_1_to_2_4,
9
+ round(count(pth_gt_300) / greatest(count(pth), 1.0) * 100.0, 2) pct_pth_gt_300,
10
+ round(count(pth_gt_800) / greatest(count(pth), 1.0) * 100.0, 2) pct_pth_gt_800_pct,
11
+ round(avg(phos),2) avg_phos,
12
+ max(phos) max_phos,
13
+ round(count(phos_lt_1_8) / greatest(count(phos), 1.0) * 100.0, 2) pct_phos_lt_1_8
14
+ from (
15
+ select
16
+ p.id patient_id,
17
+ md.name modality_desc,
18
+ md.code modality_code
19
+ from patients p
20
+ inner join modality_modalities m on m.patient_id = p.id
21
+ inner join modality_descriptions md on m.description_id = md.id
22
+ ) e1
23
+ left join lateral (select result::decimal pth from pathology_current_observations where description_code = 'PTHI' and patient_id = e1.patient_id) e2 ON true
24
+ left join lateral (select result::decimal phos from pathology_current_observations where description_code = 'PHOS' and patient_id = e1.patient_id) e3 ON true
25
+ left join lateral (select result::decimal cca from pathology_current_observations where description_code = 'CCA' and patient_id = e1.patient_id) e4 ON true
26
+ left join lateral (select phos phos_lt_1_8 where phos < 1.8) e5 ON true
27
+ left join lateral (select pth pth_gt_800 where pth > 800) e6 ON true
28
+ left join lateral (select pth pth_gt_300 where pth > 300) e7 ON true
29
+ left join lateral (select cca cca_2_1_to_2_4 where cca between 2.1 and 2.4) e8 ON true
30
+ where modality_code in ('hd','pd','transplant', 'low_clearance')
31
+ group by modality_desc
@@ -0,0 +1,4 @@
1
+ select
2
+ (select count(*) from letter_letters where created_at::date = now()::date) as letters_created_today,
3
+ (select count(*) from letter_letters where completed_at::date = now()::date) as letters_printed_today,
4
+ (select count(*) from letter_letters where type = 'Renalware::Letters::Letter::Draft' and created_at < (current_date - interval '14 days')) as draft_letters_older_than_14_days;
@@ -49,7 +49,7 @@ class CollectionPresenter
49
49
  end
50
50
  end
51
51
 
52
- def respond_to?(method)
52
+ def respond_to?(method, _unused = nil)
53
53
  @decorated_collection.respond_to?(method) || @original_collection.respond_to?(method)
54
54
  end
55
55
 
@@ -21,8 +21,24 @@
21
21
  module CoreExtensions
22
22
  module I18n
23
23
  module AlwaysCascade
24
+ # Note changing offset from 2 to 1 causes errors in validates_timeliness gem in
25
+ # #format_error_value where it tries to lookup I18n.t(:date)
26
+ # It is actually trying to find the key :date in the scope
27
+ # "validates_timeliness.error_value_formats" but this does not exist so, becuase of the
28
+ # cascade, it settles on returning the root :date key which is actually a hash, and fails.
29
+ # Using offset: 2 prevents us from ever picking up the root :date key when using t(:date)
30
+ # or t(".date_"). It does mean we cannot put any translations under eg :en-GB directly, they
31
+ # must be under a sub key eg :thead, :btn etc.
32
+ # offset: 2 means we will be looking back up the tree for e.g. "list.type" if the key is
33
+ # :type and the partial is called 'list', so we would never find eg the translation
34
+ # renalware.type; offset: 1 and using skip_root: false seems to do the trick.
35
+ # See the loop in lib/i18n/backend/cascade.rb in the i18n gem.
36
+ # Another issue here is that if offset is 1 then any input called eg f.input :date
37
+ # could resolve to the root :date tranlsation which is a hash of options and not a real
38
+ # translation, leading to errors. Its not possible rename/reloacte these keys as they
39
+ # are hard-coded eg in actionview/lib/action_view/helpers/date_helper.rb
24
40
  def translate(key, options = {})
25
- super(key, options.merge(cascade: { offset: 2, skip_root: false }))
41
+ super(key, options.merge(cascade: { offset: 2, skip_root: true }))
26
42
  end
27
43
  alias t translate
28
44
  end
@@ -3,7 +3,7 @@
3
3
  module CoreExtensions
4
4
  module I18n
5
5
  module HandleBlankValue
6
- def localize(object, options = nil)
6
+ def localize(object, locale: nil, format: nil, **options)
7
7
  object.blank? ? "" : super
8
8
  end
9
9
  alias l localize
@@ -92,8 +92,10 @@ module Renalware
92
92
  end
93
93
 
94
94
  initializer :add_locales do |app|
95
- app.config.i18n.load_path += Dir[config.root.join("config/locales/**/*.{rb,yml}")]
96
- app.config.i18n.default_locale = "en-GB"
95
+ app.config.i18n.load_path += Dir[config.root.join("config/locales/**/*.yml")]
96
+ app.config.i18n.load_path += Dir[config.root.join("app/components/**/*.yml")]
97
+ app.config.available_locales = [:en] # [:en, :pt]
98
+ app.config.i18n.default_locale = :"en-GB"
97
99
  app.config.i18n.fallbacks = [:en]
98
100
  end
99
101
 
@@ -5,6 +5,6 @@ module Renalware
5
5
  # to creat that class even though its not used. If we don't do this zeitwerk
6
6
  # complains that version.rb does export a constant called Version.
7
7
  class VersionNumber
8
- VERSION = "2.0.164"
8
+ VERSION = "2.1.1"
9
9
  end
10
10
  end
@@ -42,7 +42,6 @@ module Renalware
42
42
  10.times do
43
43
  letter = Letters::Letter::PendingReview.create!(
44
44
  patient: patient,
45
- issued_on: 1.day.ago,
46
45
  pathology_timestamp: 1.day.ago,
47
46
  event: clinics_patient.clinic_visits.first,
48
47
  clinical: true,
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ FactoryBot.define do
4
+ factory :event_category, class: "Renalware::Events::Category" do
5
+ initialize_with { Renalware::Events::Category.find_or_create_by(name: name) }
6
+ name { "General" }
7
+ end
8
+ end
@@ -2,7 +2,15 @@
2
2
 
3
3
  FactoryBot.define do
4
4
  factory :event_type, class: "Renalware::Events::Type" do
5
- initialize_with { Renalware::Events::Type.find_or_create_by(name: name) }
5
+ initialize_with do
6
+ Renalware::Events::Type.find_or_create_by(
7
+ name: name,
8
+ category: category
9
+ )
10
+ end
11
+
12
+ category factory: :event_category
13
+ name { "Test" }
6
14
 
7
15
  factory :access_clinic_event_type do
8
16
  name { "Access--Clinic" }
@@ -4,7 +4,7 @@ FactoryBot.define do
4
4
  factory :letter, class: "Renalware::Letters::Letter" do
5
5
  accountable
6
6
 
7
- issued_on { Time.zone.today }
7
+ created_at { Time.zone.today }
8
8
  description { "This is a custom description" }
9
9
  body { "I am pleased to report a marked improvement in her condition." }
10
10
 
@@ -4,7 +4,7 @@ FactoryBot.define do
4
4
  factory :low_clearance_modality_description,
5
5
  class: "Renalware::LowClearance::ModalityDescription" do
6
6
  initialize_with do
7
- Renalware::LowClearance::ModalityDescription.find_or_create_by(name: "Low Clearance")
7
+ Renalware::LowClearance::ModalityDescription.find_or_create_by(name: "Advanced Kidney Care")
8
8
  end
9
9
  end
10
10
  end
@@ -30,7 +30,7 @@ FactoryBot.define do
30
30
  end
31
31
 
32
32
  trait :low_clearance do
33
- name { "Low Clearance" }
33
+ name { "Advanced Kidney Care" }
34
34
  type { "Renalware::LowClearance::ModalityDescription" }
35
35
  code { "low_clearance" }
36
36
  end
@@ -2,10 +2,10 @@
2
2
 
3
3
  module DateHelpers
4
4
  def todays_date
5
- I18n.l(Time.zone.today)
5
+ l(Time.zone.today)
6
6
  end
7
7
 
8
8
  def todays_date_and_time
9
- I18n.l(Time.zone)
9
+ l(Time.zone)
10
10
  end
11
11
  end
@@ -42,7 +42,7 @@ module LettersSpecHelper
42
42
  end
43
43
  end
44
44
 
45
- def create_aproved_letter_to_patient_with_cc_to_gp_and_one_contact(
45
+ def create_approved_letter_to_patient_with_cc_to_gp_and_one_contact(
46
46
  user: nil,
47
47
  body: "test",
48
48
  page_count: 1,
@@ -382,58 +382,60 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
382
382
  @include exports("form") {
383
383
  @if $include-html-form-classes {
384
384
  /* Standard Forms */
385
- form { margin: 0 0 $form-spacing; }
385
+ form.fn-form { margin: 0 0 $form-spacing; }
386
386
 
387
387
  /* Using forms within rows, we need to set some defaults */
388
- form .row { @include form-row-base; }
389
-
390
- /* Label Styles */
391
- label { @include form-label;
392
- &.right { @include form-label(right, false); }
393
- &.inline { @include form-label(inline, false); }
394
- /* Styles for required inputs */
395
- small {
396
- text-transform: $form-label-small-transform;
397
- color: scale-color($form-label-font-color, $lightness: 15%);
388
+ form.fn-form .row { @include form-row-base; }
389
+
390
+ .fn-form {
391
+ /* Label Styles */
392
+ label { @include form-label;
393
+ &.right { @include form-label(right, false); }
394
+ &.inline { @include form-label(inline, false); }
395
+ /* Styles for required inputs */
396
+ small {
397
+ text-transform: $form-label-small-transform;
398
+ color: scale-color($form-label-font-color, $lightness: 15%);
399
+ }
398
400
  }
399
- }
400
401
 
401
- /* Attach elements to the beginning or end of an input */
402
- .prefix,
403
- .postfix { @include prefix-postfix-base; }
404
-
405
- /* Adjust padding, alignment and radius if pre/post element is a button */
406
- .postfix.button { @include button-size(false, false); @include postfix(false, false, false, true); }
407
- .prefix.button { @include button-size(false, false); @include prefix(false, false, true); }
408
-
409
- .prefix.button.radius { @include radius(0); @include side-radius($default-float, $button-radius); }
410
- .postfix.button.radius { @include radius(0); @include side-radius($opposite-direction, $button-radius); }
411
- .prefix.button.round { @include radius(0); @include side-radius($default-float, $button-round); }
412
- .postfix.button.round { @include radius(0); @include side-radius($opposite-direction, $button-round); }
413
-
414
- /* Separate prefix and postfix styles when on span or label so buttons keep their own */
415
- span.prefix, label.prefix { @include prefix(); }
416
- span.postfix, label.postfix { @include postfix(); }
417
-
418
- /* We use this to get basic styling on all basic form elements */
419
- input:not([type]), #{text-inputs(all, 'input')} {
420
- -webkit-appearance: none;
421
- -moz-appearance: none;
422
- border-radius: 0;
423
- @include form-element;
424
- @if $input-include-glowing-effect == false {
425
- -webkit-transition: border-color $input-transition-fade-time $input-transition-fade-timing-function, background $input-transition-fade-time $input-transition-fade-timing-function;
426
- -moz-transition: border-color $input-transition-fade-time $input-transition-fade-timing-function, background $input-transition-fade-time $input-transition-fade-timing-function;
427
- -ms-transition: border-color $input-transition-fade-time $input-transition-fade-timing-function, background $input-transition-fade-time $input-transition-fade-timing-function;
428
- -o-transition: border-color $input-transition-fade-time $input-transition-fade-timing-function, background $input-transition-fade-time $input-transition-fade-timing-function;
429
- transition: border-color $input-transition-fade-time $input-transition-fade-timing-function, background $input-transition-fade-time $input-transition-fade-timing-function;
430
- }
431
- &.radius {
432
- @include radius($input-border-radius);
402
+ /* Attach elements to the beginning or end of an input */
403
+ .prefix,
404
+ .postfix { @include prefix-postfix-base; }
405
+
406
+ /* Adjust padding, alignment and radius if pre/post element is a button */
407
+ .postfix.button { @include button-size(false, false); @include postfix(false, false, false, true); }
408
+ .prefix.button { @include button-size(false, false); @include prefix(false, false, true); }
409
+
410
+ .prefix.button.radius { @include radius(0); @include side-radius($default-float, $button-radius); }
411
+ .postfix.button.radius { @include radius(0); @include side-radius($opposite-direction, $button-radius); }
412
+ .prefix.button.round { @include radius(0); @include side-radius($default-float, $button-round); }
413
+ .postfix.button.round { @include radius(0); @include side-radius($opposite-direction, $button-round); }
414
+
415
+ /* Separate prefix and postfix styles when on span or label so buttons keep their own */
416
+ span.prefix, label.prefix { @include prefix(); }
417
+ span.postfix, label.postfix { @include postfix(); }
418
+
419
+ /* We use this to get basic styling on all basic form elements */
420
+ input:not([type]), #{text-inputs(all, 'input')} {
421
+ -webkit-appearance: none;
422
+ -moz-appearance: none;
423
+ border-radius: 0;
424
+ @include form-element;
425
+ @if $input-include-glowing-effect == false {
426
+ -webkit-transition: border-color $input-transition-fade-time $input-transition-fade-timing-function, background $input-transition-fade-time $input-transition-fade-timing-function;
427
+ -moz-transition: border-color $input-transition-fade-time $input-transition-fade-timing-function, background $input-transition-fade-time $input-transition-fade-timing-function;
428
+ -ms-transition: border-color $input-transition-fade-time $input-transition-fade-timing-function, background $input-transition-fade-time $input-transition-fade-timing-function;
429
+ -o-transition: border-color $input-transition-fade-time $input-transition-fade-timing-function, background $input-transition-fade-time $input-transition-fade-timing-function;
430
+ transition: border-color $input-transition-fade-time $input-transition-fade-timing-function, background $input-transition-fade-time $input-transition-fade-timing-function;
431
+ }
432
+ &.radius {
433
+ @include radius($input-border-radius);
434
+ }
433
435
  }
434
436
  }
435
437
 
436
- form {
438
+ form.fn-form {
437
439
  .row {
438
440
  .prefix-radius.row.collapse {
439
441
  input,
@@ -466,136 +468,139 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
466
468
  }
467
469
  }
468
470
 
469
- input[type="submit"] {
470
- -webkit-appearance: none;
471
- -moz-appearance: none;
472
- border-radius: 0;
473
- }
474
-
475
- /* Respect enforced amount of rows for textarea */
476
- textarea[rows] {
477
- height: auto;
478
- }
479
-
480
- /* Not allow resize out of parent */
481
- textarea {
482
- max-width: 100%;
483
- }
484
-
485
- // style placeholder text cross browser
486
- ::-webkit-input-placeholder {
487
- color: $input-placeholder-font-color;
488
- }
489
-
490
- :-moz-placeholder { /* Firefox 18- */
491
- color: $input-placeholder-font-color;
492
- }
493
-
494
- ::-moz-placeholder { /* Firefox 19+ */
495
- color: $input-placeholder-font-color;
496
- }
497
-
498
- :-ms-input-placeholder {
499
- color: $input-placeholder-font-color;
500
- }
471
+ .fn-form {
501
472
 
473
+ input[type="submit"] {
474
+ -webkit-appearance: none;
475
+ -moz-appearance: none;
476
+ border-radius: 0;
477
+ }
502
478
 
503
- /* Add height value for select elements to match text input height */
504
- select {
505
- @include form-select;
506
- height: ($input-font-size + ($form-spacing * 1.5) - rem-calc(1));
507
- &[multiple] {
479
+ /* Respect enforced amount of rows for textarea */
480
+ textarea[rows] {
508
481
  height: auto;
509
482
  }
510
- }
511
-
512
- /* Adjust margin for form elements below */
513
- input[type="file"],
514
- input[type="checkbox"],
515
- input[type="radio"],
516
- select {
517
- margin: 0 0 $form-spacing 0;
518
- }
519
483
 
520
- input[type="checkbox"] + label,
521
- input[type="radio"] + label {
522
- display: inline-block;
523
- margin-#{$default-float}: $form-spacing * .5;
524
- margin-#{$opposite-direction}: $form-spacing;
525
- margin-bottom: 0;
526
- vertical-align: baseline;
527
- }
484
+ /* Not allow resize out of parent */
485
+ textarea {
486
+ max-width: 100%;
487
+ }
528
488
 
529
- /* Normalize file input width */
530
- input[type="file"] {
531
- width:100%;
532
- }
489
+ // style placeholder text cross browser
490
+ ::-webkit-input-placeholder {
491
+ color: $input-placeholder-font-color;
492
+ }
533
493
 
534
- /* HTML5 Number spinners settings */
535
- input[type=number] {
536
- @include html5number(moz, $input-number-spinners)
537
- }
538
- input[type="number"]::-webkit-inner-spin-button,
539
- input[type="number"]::-webkit-outer-spin-button {
540
- @include html5number(webkit, $input-number-spinners);
541
- }
494
+ :-moz-placeholder { /* Firefox 18- */
495
+ color: $input-placeholder-font-color;
496
+ }
542
497
 
543
- /* We add basic fieldset styling */
544
- fieldset {
545
- @include fieldset;
546
- }
498
+ ::-moz-placeholder { /* Firefox 19+ */
499
+ color: $input-placeholder-font-color;
500
+ }
547
501
 
548
- /* Error Handling */
502
+ :-ms-input-placeholder {
503
+ color: $input-placeholder-font-color;
504
+ }
549
505
 
550
506
 
551
- span.error, small.error {
552
- @include form-error-message;
553
- }
507
+ /* Add height value for select elements to match text input height */
508
+ select {
509
+ @include form-select;
510
+ height: ($input-font-size + ($form-spacing * 1.5) - rem-calc(1));
511
+ &[multiple] {
512
+ height: auto;
513
+ }
514
+ }
554
515
 
555
- .error {
556
- input,
557
- textarea,
516
+ /* Adjust margin for form elements below */
517
+ input[type="file"],
518
+ input[type="checkbox"],
519
+ input[type="radio"],
558
520
  select {
521
+ margin: 0 0 $form-spacing 0;
522
+ }
523
+
524
+ input[type="checkbox"] + label,
525
+ input[type="radio"] + label {
526
+ display: inline-block;
527
+ margin-#{$default-float}: $form-spacing * .5;
528
+ margin-#{$opposite-direction}: $form-spacing;
559
529
  margin-bottom: 0;
530
+ vertical-align: baseline;
560
531
  }
561
532
 
562
- input[type="checkbox"],
563
- input[type="radio"] {
564
- margin-bottom: $form-spacing
533
+ /* Normalize file input width */
534
+ input[type="file"] {
535
+ width:100%;
536
+ }
537
+
538
+ /* HTML5 Number spinners settings */
539
+ input[type=number] {
540
+ @include html5number(moz, $input-number-spinners)
541
+ }
542
+ input[type="number"]::-webkit-inner-spin-button,
543
+ input[type="number"]::-webkit-outer-spin-button {
544
+ @include html5number(webkit, $input-number-spinners);
565
545
  }
566
546
 
567
- label,
568
- label.error {
569
- @include form-label-error-color;
547
+ /* We add basic fieldset styling */
548
+ fieldset {
549
+ @include fieldset;
570
550
  }
571
551
 
572
- small.error {
552
+ /* Error Handling */
553
+
554
+
555
+ span.error, small.error {
573
556
  @include form-error-message;
574
557
  }
575
558
 
576
- > label {
577
- > small {
578
- background: transparent;
579
- color: scale-color($form-label-font-color, $lightness: 15%);
580
- display: inline;
581
- font-size: 60%;
582
- font-style: normal;
583
- margin: 0;
584
- padding: 0;
585
- text-transform: $form-label-small-transform;
559
+ .error {
560
+ input,
561
+ textarea,
562
+ select {
563
+ margin-bottom: 0;
564
+ }
565
+
566
+ input[type="checkbox"],
567
+ input[type="radio"] {
568
+ margin-bottom: $form-spacing
569
+ }
570
+
571
+ label,
572
+ label.error {
573
+ @include form-label-error-color;
586
574
  }
587
- }
588
575
 
589
- span.error-message {
590
- display: block;
576
+ small.error {
577
+ @include form-error-message;
578
+ }
579
+
580
+ > label {
581
+ > small {
582
+ background: transparent;
583
+ color: scale-color($form-label-font-color, $lightness: 15%);
584
+ display: inline;
585
+ font-size: 60%;
586
+ font-style: normal;
587
+ margin: 0;
588
+ padding: 0;
589
+ text-transform: $form-label-small-transform;
590
+ }
591
+ }
592
+
593
+ span.error-message {
594
+ display: block;
595
+ }
591
596
  }
592
- }
593
597
 
594
- input.error,
595
- textarea.error,
596
- select.error {
597
- margin-bottom: 0;
598
+ input.error,
599
+ textarea.error,
600
+ select.error {
601
+ margin-bottom: 0;
602
+ }
603
+ label.error { @include form-label-error-color; }
598
604
  }
599
- label.error { @include form-label-error-color; }
600
605
  }
601
606
  }