renalware-core 2.0.0.pre.beta12 → 2.0.0.pre.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (217) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/app/assets/stylesheets/renalware/modules/_letters.scss +0 -1
  4. data/app/assets/stylesheets/renalware/modules/_pathology.scss +4 -0
  5. data/app/assets/stylesheets/renalware/partials/_beta_banner.scss +26 -0
  6. data/app/assets/stylesheets/renalware/partials/_errors.scss +4 -0
  7. data/app/controllers/renalware/admissions/consults_controller.rb +0 -7
  8. data/app/controllers/renalware/concerns/devise_controller_methods.rb +9 -9
  9. data/app/controllers/renalware/hd/mdm_controller.rb +2 -3
  10. data/app/controllers/renalware/hd/mdm_patients_controller.rb +7 -1
  11. data/app/controllers/renalware/letters/letters_controller.rb +1 -1
  12. data/app/controllers/renalware/letters/lists_controller.rb +13 -6
  13. data/app/controllers/renalware/mdm_controller.rb +1 -1
  14. data/app/controllers/renalware/mdm_patients_controller.rb +1 -1
  15. data/app/controllers/renalware/patients/bookmarks_controller.rb +1 -1
  16. data/app/controllers/renalware/patients/clinical_summaries_controller.rb +1 -1
  17. data/app/controllers/renalware/pd/mdm_controller.rb +2 -3
  18. data/app/controllers/renalware/pd/mdm_patients_controller.rb +2 -0
  19. data/app/controllers/renalware/renal/low_clearance/mdm_controller.rb +15 -0
  20. data/app/controllers/renalware/renal/low_clearance/mdm_patients_controller.rb +29 -0
  21. data/app/controllers/renalware/session_timeout_controller.rb +2 -0
  22. data/app/controllers/renalware/system/user_feedback_controller.rb +35 -0
  23. data/app/controllers/renalware/transplants/mdm_controller.rb +1 -3
  24. data/app/controllers/renalware/transplants/mdm_patients_controller.rb +2 -0
  25. data/app/helpers/renalware/application_helper.rb +1 -42
  26. data/app/helpers/renalware/clinic_helper.rb +3 -1
  27. data/app/helpers/renalware/infection_organisms_helper.rb +20 -0
  28. data/app/helpers/renalware/mdm_helper.rb +9 -7
  29. data/app/helpers/renalware/prescriptions_helper.rb +20 -0
  30. data/app/helpers/renalware/side_nav_helper.rb +0 -8
  31. data/app/jobs/application_job.rb +2 -0
  32. data/app/models/concerns/renalware/explicit_state_model.rb +2 -0
  33. data/app/models/concerns/renalware/patient_pathology_scopes.rb +39 -0
  34. data/app/models/concerns/renalware/personable.rb +3 -2
  35. data/app/models/renalware/clinics/appointment.rb +4 -4
  36. data/app/models/renalware/clinics/clinic_visit.rb +2 -2
  37. data/app/models/renalware/drugs/classification.rb +11 -0
  38. data/app/models/renalware/drugs/drug.rb +3 -3
  39. data/app/models/renalware/drugs/type.rb +2 -1
  40. data/app/models/renalware/hd/mdm_patients_query.rb +4 -9
  41. data/app/models/renalware/hd/session/closed.rb +10 -3
  42. data/app/models/renalware/hd/session.rb +2 -1
  43. data/app/models/renalware/hd/sessions/auditable_session_collection.rb +7 -7
  44. data/app/models/renalware/letters/archive.rb +1 -1
  45. data/app/models/renalware/letters/description.rb +1 -1
  46. data/app/models/renalware/letters/event/clinic_visit.rb +4 -0
  47. data/app/models/renalware/letters/letter_factory.rb +1 -0
  48. data/app/models/renalware/letters/part/allergies.rb +1 -1
  49. data/app/models/renalware/letters/part/prescriptions.rb +1 -1
  50. data/app/models/renalware/letters/part/problems.rb +1 -1
  51. data/app/models/renalware/letters/part/recent_pathology_results.rb +14 -12
  52. data/app/models/renalware/letters/part.rb +3 -2
  53. data/app/models/renalware/letters/recipient.rb +1 -1
  54. data/app/models/renalware/letters/signature.rb +3 -1
  55. data/app/models/renalware/pathology/current_observations_for_descriptions_query.rb +7 -4
  56. data/app/models/renalware/pathology/observations_for_descriptions_query.rb +1 -2
  57. data/app/models/renalware/patients/bookmark.rb +1 -1
  58. data/app/models/renalware/patients/patient_hospital_identifiers.rb +4 -4
  59. data/app/models/renalware/patients/practice.rb +3 -3
  60. data/app/models/renalware/patients/primary_care_physician.rb +2 -2
  61. data/app/models/renalware/renal/low_clearance/mdm_patients_query.rb +63 -0
  62. data/app/models/renalware/renal/low_clearance/modality_description.rb +13 -0
  63. data/app/models/renalware/renal/profile.rb +2 -0
  64. data/app/models/renalware/renal/registry/preflight_checks/deaths_query.rb +1 -1
  65. data/app/models/renalware/renal/version.rb +9 -0
  66. data/app/models/renalware/renal.rb +4 -0
  67. data/app/models/renalware/role.rb +4 -3
  68. data/app/models/renalware/roles_user.rb +6 -0
  69. data/app/models/renalware/system/user_feedback.rb +16 -0
  70. data/app/models/renalware/transplants/donor_modality_description.rb +3 -0
  71. data/app/models/renalware/transplants/recipient_modality_description.rb +3 -0
  72. data/app/models/renalware/user.rb +14 -9
  73. data/app/models/renalware.rb +2 -5
  74. data/app/policies/renalware/base_policy.rb +1 -1
  75. data/app/policies/renalware/system/user_feedback_policy.rb +8 -0
  76. data/app/presenters/renalware/hd/mdm_presenter.rb +2 -0
  77. data/app/presenters/renalware/hd/session_access_presenter.rb +1 -1
  78. data/app/presenters/renalware/hd/session_presenter.rb +4 -5
  79. data/app/presenters/renalware/hd/station_presenter.rb +1 -1
  80. data/app/presenters/renalware/letters/letter_presenter.rb +4 -2
  81. data/app/presenters/renalware/mdm_presenter.rb +3 -3
  82. data/app/presenters/renalware/pathology/observations_diff.rb +110 -0
  83. data/app/presenters/renalware/renal/clinical_summary_presenter.rb +32 -4
  84. data/app/presenters/renalware/renal/low_clearance/mdm_presenter.rb +14 -0
  85. data/app/views/renalware/accesses/assessments/show.html.slim +1 -1
  86. data/app/views/renalware/accesses/dashboards/show.html.slim +1 -1
  87. data/app/views/renalware/accesses/procedures/show.html.slim +1 -1
  88. data/app/views/renalware/accesses/profiles/_list.html.slim +1 -1
  89. data/app/views/renalware/accesses/profiles/show.html.slim +1 -1
  90. data/app/views/renalware/admissions/consults/_form.html.slim +12 -12
  91. data/app/views/renalware/admissions/requests/_create_request_link.html.slim +1 -1
  92. data/app/views/renalware/admissions/requests/_form.html.slim +1 -1
  93. data/app/views/renalware/clinical/allergies/_new.html.slim +3 -3
  94. data/app/views/renalware/clinical/allergy_statuses/_form.html.slim +3 -3
  95. data/app/views/renalware/clinical/dry_weights/{_row.html.slim → _dry_weight.html.slim} +0 -0
  96. data/app/views/renalware/clinical/dry_weights/_list.html.slim +1 -2
  97. data/app/views/renalware/clinical/dry_weights/index.html.slim +1 -2
  98. data/app/views/renalware/clinical/profiles/show.html.slim +1 -1
  99. data/app/views/renalware/events/types/index.html.slim +1 -1
  100. data/app/views/renalware/hd/diaries/show.pdf.slim +1 -0
  101. data/app/views/renalware/hd/diary_slots/_form.html.slim +10 -10
  102. data/app/views/renalware/hd/diary_slots/_tab.html.slim +4 -4
  103. data/app/views/renalware/hd/mdm/_sessions.html.slim +1 -1
  104. data/app/views/renalware/hd/mdm_patients/_table.html.slim +7 -8
  105. data/app/views/renalware/hd/ongoing_sessions/_table.html.slim +1 -2
  106. data/app/views/renalware/hd/sessions/_form.html.slim +2 -2
  107. data/app/views/renalware/hd/sessions/_list.html.slim +1 -1
  108. data/app/views/renalware/hd/sessions/_row.html.slim +1 -1
  109. data/app/views/renalware/hd/sessions/_session_nav.html.slim +1 -1
  110. data/app/views/renalware/hd/sessions/_table.html.slim +1 -1
  111. data/app/views/renalware/hd/sessions/closed/_row.html.slim +1 -1
  112. data/app/views/renalware/hd/sessions/open/_row.html.slim +1 -1
  113. data/app/views/renalware/hd/stations/edit.html.slim +1 -1
  114. data/app/views/renalware/hd/stations/index.html.slim +1 -1
  115. data/app/views/renalware/hd/stations/new.html.slim +1 -1
  116. data/app/views/renalware/layouts/_patient.html.slim +1 -1
  117. data/app/views/renalware/layouts/application.html.slim +3 -1
  118. data/app/views/renalware/letters/contacts/_new_person.html.slim +2 -2
  119. data/app/views/renalware/letters/contacts/_person_from_directory.html.slim +2 -2
  120. data/app/views/renalware/letters/formatted_letters/_letter.html.slim +3 -3
  121. data/app/views/renalware/letters/formatted_letters/show.html.slim +1 -1
  122. data/app/views/renalware/letters/formatted_letters/show.inlinepdf.slim +1 -1
  123. data/app/views/renalware/letters/formatted_letters/show.pdf.slim +1 -1
  124. data/app/views/renalware/letters/letters/_electronic_ccs.html.slim +1 -1
  125. data/app/views/renalware/letters/letters/_form.html.slim +5 -2
  126. data/app/views/renalware/letters/letters/_pathology.html.slim +26 -0
  127. data/app/views/renalware/letters/letters/_preview.html.slim +3 -3
  128. data/app/views/renalware/letters/letters/edit.html.slim +11 -12
  129. data/app/views/renalware/letters/letters/new.html.slim +1 -1
  130. data/app/views/renalware/letters/lists/_letter.html.slim +1 -2
  131. data/app/views/renalware/letters/lists/show.html.slim +13 -14
  132. data/app/views/renalware/letters/parts/_recent_pathology_results.html.slim +3 -8
  133. data/app/views/renalware/letters/shared/_electronic_cc_type_tabs.html.slim +3 -3
  134. data/app/views/renalware/mdm/_letters.html.slim +1 -1
  135. data/app/views/renalware/mdm/_measurements.html.slim +1 -1
  136. data/app/views/renalware/mdm_patients/_patient.html.slim +1 -1
  137. data/app/views/renalware/mdm_patients/_table.html.slim +11 -13
  138. data/app/views/renalware/messaging/internal/messages/_form.html.slim +7 -7
  139. data/app/views/renalware/messaging/internal/messages/_send_message_link.html.slim +1 -1
  140. data/app/views/renalware/messaging/internal/messages/_send_reply_link.html.slim +1 -1
  141. data/app/views/renalware/messaging/internal/receipts/_sent_receipt.html.slim +1 -1
  142. data/app/views/renalware/messaging/shared/_messages_type_tabs.html.slim +3 -3
  143. data/app/views/renalware/navigation/_branding.html.slim +1 -1
  144. data/app/views/renalware/navigation/_mdms.html.slim +1 -0
  145. data/app/views/renalware/pathology/observations/_diff.html.slim +22 -0
  146. data/app/views/renalware/patients/_layout.html.slim +1 -1
  147. data/app/views/renalware/patients/alerts/_create_alert_link.html.slim +1 -1
  148. data/app/views/renalware/patients/alerts/_form.html.slim +4 -4
  149. data/app/views/renalware/patients/alerts/_list.html.slim +1 -2
  150. data/app/views/renalware/patients/bookmarks/_delete.html.slim +1 -1
  151. data/app/views/renalware/patients/bookmarks/_new.html.slim +8 -8
  152. data/app/views/renalware/patients/clinical_summaries/_events.html.slim +6 -4
  153. data/app/views/renalware/patients/clinical_summaries/_letters.html.slim +6 -3
  154. data/app/views/renalware/patients/clinical_summaries/_prescriptions.html.slim +2 -2
  155. data/app/views/renalware/patients/clinical_summaries/_problems.html.slim +2 -2
  156. data/app/views/renalware/patients/clinical_summaries/show.html.slim +14 -4
  157. data/app/views/renalware/patients/patients/show.html.slim +1 -1
  158. data/app/views/renalware/patients/side_menu/_modalities.html.slim +2 -2
  159. data/app/views/renalware/patients/worries/_delete.html.slim +1 -1
  160. data/app/views/renalware/patients/worries/_new.html.slim +6 -6
  161. data/app/views/renalware/pd/dashboards/show.html.slim +1 -1
  162. data/app/views/renalware/pd/infection_organisms/_table.html.slim +3 -3
  163. data/app/views/renalware/pd/pet_adequacy_results/_form.html.slim +23 -23
  164. data/app/views/renalware/pd/regime_bags/_form.html.slim +5 -5
  165. data/app/views/renalware/pd/regime_bags/_regime_bag.html.slim +2 -2
  166. data/app/views/renalware/pd/regime_bags/_regime_bags.html.slim +1 -1
  167. data/app/views/renalware/pd/regimes/_current_regime.html.slim +1 -1
  168. data/app/views/renalware/problems/problems/index.html.slim +1 -1
  169. data/app/views/renalware/renal/low_clearance/mdm/_bottom.html.slim +3 -0
  170. data/app/views/renalware/renal/low_clearance/mdm/_low_clearance_profile.html.slim +4 -0
  171. data/app/views/renalware/renal/low_clearance/mdm/_top.html.slim +5 -0
  172. data/app/views/renalware/renal/low_clearance/mdm_patients/_filters.html.slim +9 -0
  173. data/app/views/renalware/renal/profiles/_mini.html.slim +1 -1
  174. data/app/views/renalware/reporting/audits/index.html.slim +1 -1
  175. data/app/views/renalware/research/study_participants/_form.html.slim +3 -3
  176. data/app/views/renalware/shared/_modal_close_link.html.slim +1 -1
  177. data/app/views/renalware/shared/documents/_blood_pressure_input.html.slim +1 -1
  178. data/app/views/renalware/snippets/snippets/_form.html.slim +4 -4
  179. data/app/views/renalware/snippets/snippets/_list.html.slim +3 -3
  180. data/app/views/renalware/snippets/snippets/_row.html.slim +2 -2
  181. data/app/views/renalware/snippets/snippets/_table.html.slim +7 -7
  182. data/app/views/renalware/snippets/snippets/edit.html.slim +1 -1
  183. data/app/views/renalware/snippets/snippets/new.html.slim +1 -1
  184. data/app/views/renalware/system/user_feedback/_banner.html.slim +9 -0
  185. data/app/views/renalware/system/user_feedback/new.html.slim +13 -0
  186. data/app/views/renalware/transplants/donor_dashboards/show.html.slim +2 -2
  187. data/app/views/renalware/transplants/recipient_dashboards/show.html.slim +2 -2
  188. data/config/initializers/inflections.rb +2 -0
  189. data/config/locales/custom.yml +7 -0
  190. data/config/locales/renalware/letters/letter.en.yml +2 -2
  191. data/config/locales/renalware/navigation/renal.en.yml +1 -0
  192. data/config/locales/renalware/renal/low_clearance.en.yml +15 -0
  193. data/config/permissions.yml +1 -0
  194. data/config/routes.rb +10 -0
  195. data/db/migrate/20171114120904_add_pathology_snapshot_to_letters.rb +5 -0
  196. data/db/migrate/20171123123712_add_id_to_roles_users.rb +5 -0
  197. data/db/migrate/20171123143534_add_pk_to_drug_types_drugs.rb +18 -0
  198. data/db/migrate/20171123154116_create_renal_versions.rb +14 -0
  199. data/db/migrate/20171128163543_add_more_missing_indexes.rb +16 -0
  200. data/db/migrate/20171206121652_add_loinc_code_to_observation_descriptions.rb +5 -0
  201. data/db/migrate/20171208211206_create_user_feedback.rb +10 -0
  202. data/db/migrate/20171211130716_remove_unused_patients_cols.rb +6 -0
  203. data/db/seeds/default/modalities/descriptions.rb +1 -0
  204. data/db/views/reporting_anaemia_audit_v01.sql +1 -1
  205. data/db/views/reporting_bone_audit_v01.sql +1 -1
  206. data/lib/renalware/configuration.rb +3 -0
  207. data/lib/renalware/version.rb +1 -1
  208. data/spec/factories/modalities/modality_descriptions.rb +3 -2
  209. data/spec/factories/renal/lcc_modality_description.rb +9 -0
  210. data/spec/factories/system/roles.rb +2 -2
  211. data/spec/factories/system/users.rb +3 -3
  212. data/spec/support/login_macros.rb +2 -2
  213. data/spec/support/roles_spec_helper.rb +1 -1
  214. metadata +35 -6
  215. data/app/models/renalware/patients/message_listener.rb +0 -31
  216. data/config/initializers/version.rb +0 -3
  217. data/spec/support/database_cleaner.rb +0 -16
@@ -2,17 +2,27 @@
2
2
  .row
3
3
  .columns.large-6
4
4
  #current-problems
5
- = render "problems", problems: clinical_summary.current_problems
5
+ = render "problems",
6
+ problems: clinical_summary.current_problems,
7
+ patient: patient
6
8
 
7
9
  .columns.large-6
8
10
  #current-prescriptions
9
- = render "prescriptions", prescriptions: clinical_summary.current_prescriptions
11
+ = render "prescriptions",
12
+ prescriptions: clinical_summary.current_prescriptions,
13
+ patient: patient
10
14
 
11
15
  .row
12
16
  .columns.large-12.xlarge-6
13
17
  #letters
14
- = render "letters", letters: clinical_summary.letters, patient: @patient
18
+ = render "letters",
19
+ letters: clinical_summary.letters,
20
+ letters_count: clinical_summary.letters_count,
21
+ patient: patient
15
22
 
16
23
  .columns.large-12.xlarge-6
17
24
  #events
18
- = render "events", events: clinical_summary.current_events
25
+ = render "events",
26
+ events: clinical_summary.current_events,
27
+ current_events_count: clinical_summary.current_events_count,
28
+ patient: patient
@@ -1,5 +1,5 @@
1
1
  = content_for(:actions) do
2
- =link_to "Edit", edit_patient_path(patient), class: "button"
2
+ = link_to "Edit", edit_patient_path(patient), class: "button"
3
3
 
4
4
  = within_patient_layout(title: "Demographics") do
5
5
  #patient-demographics
@@ -3,11 +3,11 @@ li.heading= t(".heading")
3
3
  = patient_menu_item title: t(".pd"),
4
4
  path: patient_pd_dashboard_path(patient),
5
5
  active_when_controller_matches: %r{renalware/pd},
6
- enabled: display_pd_menu?(patient)
6
+ enabled: true
7
7
 
8
8
  = patient_menu_item title: t(".hd"),
9
9
  path: patient_hd_dashboard_path(patient),
10
10
  active_when_controller_matches: %r{renalware/hd},
11
- enabled: display_hd_menu?(patient)
11
+ enabled: true
12
12
 
13
13
  hr
@@ -1,4 +1,4 @@
1
- =link_to(patient_worry_path(patient, patient.worry),
1
+ = link_to(patient_worry_path(patient, patient.worry),
2
2
  method: :delete,
3
3
  data: { confirm: t(".confirm") }) do
4
4
  i.fa.fa-link-annotation.fa-flag
@@ -6,17 +6,17 @@
6
6
 
7
7
  / The modal dialog
8
8
  #add-patient-worry-modal.reveal-modal.medium(data-reveal)
9
- =simple_form_for Renalware::Patients::Worry.new,
10
- html: { autocomplete: "off" },
11
- url: patient_worry_path(patient) do |f|
9
+ = simple_form_for Renalware::Patients::Worry.new,
10
+ html: { autocomplete: "off" },
11
+ url: patient_worry_path(patient) do |f|
12
12
  h2= t(".title")
13
- =f.input :notes,
13
+ = f.input :notes,
14
14
  as: :text,
15
15
  input_html: { autofocus: :autofocus },
16
16
  label: "Optional notes"
17
- =f.submit t(".save"), class: :button
17
+ = f.submit t(".save"), class: :button
18
18
  span= " or "
19
- =link_to t(".cancel"),
19
+ = link_to t(".cancel"),
20
20
  "#",
21
21
  "aria-label" => "Close",
22
22
  class: "reveal-modal-close"
@@ -1,5 +1,5 @@
1
1
  = content_for(:actions) do
2
- =render "renalware/pd/dashboards/show/page_actions", patient: patient
2
+ = render "renalware/pd/dashboards/show/page_actions", patient: patient
3
3
 
4
4
  = within_patient_layout do
5
5
  - if dashboard.current_regime.present?
@@ -2,9 +2,9 @@ table
2
2
  thead
3
3
  tr
4
4
  th.col-width-small
5
- th.col-width-11 Organism
6
- th Sensitivity
7
- th Resistance
5
+ th.col-width-large Organism
6
+ th.col-width-medium Sensitivity
7
+ th.col-width-medium Resistance
8
8
  tbody
9
9
  - infection_organisms.each do |infection_organism|
10
10
  tr
@@ -3,29 +3,29 @@
3
3
  wrapper: :horizontal_form,
4
4
  html: { class: "pet-adequacy-form" } do |f|
5
5
 
6
- =f.input :pet_type, as: :inline_radio_buttons, wrapper: :horizontal_small
7
- =f.input :pet_date, as: :date_picker, wrapper: :horizontal_datepicker
8
- =f.input :pet_duration, wrapper: :horizontal_small
9
- =f.input :pet_net_uf, wrapper: :horizontal_small
10
- =f.input :adequacy_date, as: :date_picker, wrapper: :horizontal_datepicker
11
- =f.input :dialysate_creat_plasma_ratio, wrapper: :horizontal_small
12
- =f.input :dialysate_glucose_start, wrapper: :horizontal_small
13
- =f.input :dialysate_glucose_end, wrapper: :horizontal_small
14
- =f.input :ktv_total, wrapper: :horizontal_small
15
- =f.input :ktv_dialysate, wrapper: :horizontal_small
16
- =f.input :ktv_rrf, wrapper: :horizontal_small
17
- =f.input :crcl_total, wrapper: :horizontal_small
18
- =f.input :crcl_dialysate, wrapper: :horizontal_small
19
- =f.input :crcl_rrf, wrapper: :horizontal_small
20
- =f.input :daily_uf, wrapper: :horizontal_small
21
- =f.input :daily_urine, wrapper: :horizontal_small
22
- =f.input :date_rff, as: :date_picker, wrapper: :horizontal_datepicker
23
- =f.input :creat_value, wrapper: :horizontal_small
24
- =f.input :dialysate_effluent_volume, wrapper: :horizontal_small
25
- =f.input :date_creat_clearance, as: :date_picker, wrapper: :horizontal_datepicker
26
- =f.input :date_creat_value, as: :date_picker, wrapper: :horizontal_datepicker
27
- =f.input :urine_urea_conc, wrapper: :horizontal_small
28
- =f.input :urine_creat_conc, wrapper: :horizontal_small
6
+ = f.input :pet_type, as: :inline_radio_buttons, wrapper: :horizontal_small
7
+ = f.input :pet_date, as: :date_picker, wrapper: :horizontal_datepicker
8
+ = f.input :pet_duration, wrapper: :horizontal_small
9
+ = f.input :pet_net_uf, wrapper: :horizontal_small
10
+ = f.input :adequacy_date, as: :date_picker, wrapper: :horizontal_datepicker
11
+ = f.input :dialysate_creat_plasma_ratio, wrapper: :horizontal_small
12
+ = f.input :dialysate_glucose_start, wrapper: :horizontal_small
13
+ = f.input :dialysate_glucose_end, wrapper: :horizontal_small
14
+ = f.input :ktv_total, wrapper: :horizontal_small
15
+ = f.input :ktv_dialysate, wrapper: :horizontal_small
16
+ = f.input :ktv_rrf, wrapper: :horizontal_small
17
+ = f.input :crcl_total, wrapper: :horizontal_small
18
+ = f.input :crcl_dialysate, wrapper: :horizontal_small
19
+ = f.input :crcl_rrf, wrapper: :horizontal_small
20
+ = f.input :daily_uf, wrapper: :horizontal_small
21
+ = f.input :daily_urine, wrapper: :horizontal_small
22
+ = f.input :date_rff, as: :date_picker, wrapper: :horizontal_datepicker
23
+ = f.input :creat_value, wrapper: :horizontal_small
24
+ = f.input :dialysate_effluent_volume, wrapper: :horizontal_small
25
+ = f.input :date_creat_clearance, as: :date_picker, wrapper: :horizontal_datepicker
26
+ = f.input :date_creat_value, as: :date_picker, wrapper: :horizontal_datepicker
27
+ = f.input :urine_urea_conc, wrapper: :horizontal_small
28
+ = f.input :urine_creat_conc, wrapper: :horizontal_small
29
29
 
30
30
  = submit_tag "Save", class: "button"
31
31
  span= " or "
@@ -23,15 +23,15 @@
23
23
  -if regime.apd?
24
24
  .row
25
25
  .small-12.columns
26
- =rb.input :role,
27
- as: :inline_radio_buttons,
28
- boolean_style: :inline
26
+ = rb.input :role,
27
+ as: :inline_radio_buttons,
28
+ boolean_style: :inline
29
29
 
30
30
  -if regime.capd?
31
31
  .row
32
32
  .small-12.columns
33
- =rb.input :capd_overnight_bag,
34
- as: :inline_radio_buttons
33
+ = rb.input :capd_overnight_bag,
34
+ as: :inline_radio_buttons
35
35
 
36
36
  .row.bag-days
37
37
  .large-12.columns class="#{highlight_days_invalid(rb.object)}"
@@ -8,9 +8,9 @@ li
8
8
  dd= regime_bag.per_week
9
9
  dt= t(".days")
10
10
  dd= pd_regime_bag_days(regime_bag)
11
- -if regime_bag.regime.capd?
11
+ - if regime_bag.regime.capd?
12
12
  dt= t(".capd_overnight")
13
13
  dd= t(regime_bag.capd_overnight_bag.try!(:to_s))
14
- -if regime_bag.regime.apd?
14
+ - if regime_bag.regime.apd?
15
15
  dt= t(".role")
16
16
  dd= regime_bag.role.text
@@ -3,7 +3,7 @@
3
3
  tr
4
4
  - if regime.apd?
5
5
  th= t(".role")
6
- th =t(".bag_type")
6
+ th= t(".bag_type")
7
7
  th= t(".volume")
8
8
  th= t(".days_quantity")
9
9
  th= t(".days")
@@ -29,4 +29,4 @@
29
29
  .large-12.columns
30
30
  .padding-top-1
31
31
  h5= t(".bags_heading")
32
- =render "renalware/pd/regime_bags/regime_bags", regime: regime
32
+ = render "renalware/pd/regime_bags/regime_bags", regime: regime
@@ -1,5 +1,5 @@
1
1
  = content_for(:actions) do
2
- =link_to "Add",
2
+ = link_to "Add",
3
3
  new_patient_problem_path(patient),
4
4
  class: "button"
5
5
 
@@ -0,0 +1,3 @@
1
+ .row
2
+ .columns.small-12
3
+ = render "events", events: mdm.events, patient: mdm.patient
@@ -0,0 +1,4 @@
1
+ = render "renalware/shared/documents/attributes_group",
2
+ group: mdm.low_clearance,
3
+ legend: "Low Clearance",
4
+ width: "xlarge"
@@ -0,0 +1,5 @@
1
+ = render "low_clearance_profile", mdm: mdm
2
+ .columns.small-12.medium-6.large-6.xlarge-4
3
+ = render "prescriptions", mdm: mdm, with_esa: true
4
+ .columns.small-12.medium-6.large-6.xlarge-4
5
+ = render "problems", mdm: mdm
@@ -0,0 +1,9 @@
1
+ - named_filter_param = params[:named_filter]
2
+
3
+ dl.sub-nav.filters
4
+ dd(class=("active" unless named_filter_param.present?))
5
+ = link_to t(".filter.all"), renal_low_clearance_mdm_patients_path
6
+ - Renalware::Renal::LowClearance::MDM_FILTERS.map(&:to_sym).each do |filter|
7
+ dd(class=("active" if named_filter_param == filter.to_s))
8
+ = link_to t(".filter.#{filter}"),
9
+ renal_low_clearance_filtered_mdm_patients_path(named_filter: filter)
@@ -5,7 +5,7 @@
5
5
  .renal-profile
6
6
  .mini-renal-profile
7
7
  dl
8
- -if profile&.esrf_on.present?
8
+ - if profile&.esrf_on.present?
9
9
  dt= link_to "ESRF:", edit_patient_renal_profile_path(patient)
10
10
  dd= profile&.esrf_on
11
11
 
@@ -25,7 +25,7 @@
25
25
  td= l(audit.updated_at)
26
26
  td= l(audit.refreshed_at)
27
27
  td
28
- -if audit.materialized?
28
+ - if audit.materialized?
29
29
  = link_to("Refresh Data",
30
30
  reporting_audit_refreshments_path(audit_id: audit.id),
31
31
  remote: true,
@@ -28,12 +28,12 @@ ruby:
28
28
  placeholder: "Search by patient name or hospital/NHS no." }\
29
29
  }
30
30
 
31
- =f.input :joined_on, as: :date_picker
32
- =f.input :left_on, as: :date_picker
31
+ = f.input :joined_on, as: :date_picker
32
+ = f.input :left_on, as: :date_picker
33
33
 
34
34
  = f.submit "Add", class: :button
35
35
  span= " or "
36
- =link_to "Cancel",
36
+ = link_to "Cancel",
37
37
  "#",
38
38
  "aria-label" => "Close",
39
39
  class: "reveal-modal-close"
@@ -1,4 +1,4 @@
1
- =link_to "#",
1
+ = link_to "#",
2
2
  "aria-label" => "Close",
3
3
  class: "reveal-modal-close" do
4
4
  i.fa.fa-close
@@ -17,4 +17,4 @@
17
17
  - if fd.object.errors.any?
18
18
  .row
19
19
  .error.small-offset-5.medium-offset-4.large-offset-3.small-3.columns
20
- =fd.error(:systolic) || fd.error(:diastolic)
20
+ = fd.error(:systolic) || fd.error(:diastolic)
@@ -1,7 +1,7 @@
1
- =simple_form_for snippet,
2
- url: submit_to_url,
3
- as: :snippet,
4
- wrapper: :horizontal_form do |f|
1
+ = simple_form_for snippet,
2
+ url: submit_to_url,
3
+ as: :snippet,
4
+ wrapper: :horizontal_form do |f|
5
5
 
6
6
  = f.input :title, wrapper: :horizontal_medium
7
7
  /= f.input :body, wrapper: :horizontal_large, as: :text, input_html: { rows: 10 }
@@ -9,15 +9,15 @@
9
9
 
10
10
  - unless remote
11
11
  .columns.small-12
12
- =link_to "Create new", new_snippet_path, class: "button create-snippet right"
12
+ = link_to "Create new", new_snippet_path, class: "button create-snippet right"
13
13
 
14
14
  ul.tabs
15
15
  li(class= "#{'active' if author == :me}")
16
- =link_to snippets_path, remote: remote do
16
+ = link_to snippets_path, remote: remote do
17
17
  i.fa.fa-user
18
18
  | Mine
19
19
  li(class= "#{'active' if author == :anyone}")
20
- =link_to snippets_path(author: :anyone), remote: remote do
20
+ = link_to snippets_path(author: :anyone), remote: remote do
21
21
  i.fa.fa-users
22
22
  | Everyone's
23
23
 
@@ -11,7 +11,7 @@ tr(data={ "snippet-id" => snippet.id, invocation_url: snippet_invocations_path(s
11
11
  |  
12
12
  = tooltip_with_block(label: t(".copy_to_clipboard")) do
13
13
  = clipboard_button_for("#{row_selector} .body")
14
- -if remote
14
+ - if remote
15
15
  |  
16
16
  = link_to "Insert",
17
17
  "#",
@@ -23,7 +23,7 @@ tr(data={ "snippet-id" => snippet.id, invocation_url: snippet_invocations_path(s
23
23
  td.css-toggle-container.body= snippet.body.html_safe
24
24
  - unless author == :me
25
25
  td.col-width-medium.author= snippet.author
26
- -unless remote
26
+ - unless remote
27
27
  td.last_used_on
28
28
  = "#{snippet.last_used_on? ? l(snippet.last_used_on) : 'Never'} (#{snippet.times_used})"
29
29
  td.updated_at= l(snippet.updated_at)
@@ -8,14 +8,14 @@ table.snippets
8
8
  th(style="max-width: 100%")= sort_link([:renalware, search], :body)
9
9
  - unless author == :me
10
10
  th.col-width-medium.author= sort_link([:renalware, search], :author_family_name, t(".author"))
11
- -unless remote
11
+ - unless remote
12
12
  th.col-width-medium.last_used_on= sort_link([:renalware, search], :last_used_on, t(".last_used_on"))
13
13
  th.col-width-date-time.updated_at= sort_link([:renalware, search], :updated_at, t(".updated_at"))
14
14
  th.col-width-medium
15
15
  tbody
16
- -snippets.each do |snippet|
17
- = render "row",
18
- snippet: snippet,
19
- author: author,
20
- delete_confirmation_msg: delete_confirmation_msg,
21
- remote: remote
16
+ = render partial: "row",
17
+ collection: snippets,
18
+ as: :snippet,
19
+ locals: { author: author,
20
+ delete_confirmation_msg: delete_confirmation_msg,
21
+ remote: remote }
@@ -2,4 +2,4 @@
2
2
 
3
3
  h1= t(".title")
4
4
 
5
- =render "form", snippet: snippet, submit_to_url: snippet_path(snippet)
5
+ = render "form", snippet: snippet, submit_to_url: snippet_path(snippet)
@@ -3,4 +3,4 @@
3
3
  .row
4
4
  h1= t(".title")
5
5
 
6
- =render "form", snippet: snippet, submit_to_url: snippets_path
6
+ = render "form", snippet: snippet, submit_to_url: snippets_path
@@ -0,0 +1,9 @@
1
+ .beta_banner
2
+ span
3
+ b= t("renalware.beta_message.title")
4
+ = t("renalware.beta_message.body")
5
+ -if current_user.present?
6
+ span
7
+ = link_to(t("renalware.beta_message.feedback_button"),
8
+ new_system_user_feedback_path,
9
+ class: "button secondary")
@@ -0,0 +1,13 @@
1
+ = within_admin_layout(title: "Send Us Feedback") do
2
+
3
+ = simple_form_for(feedback, as: :feedback, wrapper: :horizontal_form) do |f|
4
+
5
+ = f.input :category, include_blank: false, as: :radio_buttons
6
+ = f.input :comment, as: :text
7
+ .row
8
+ .small-3.columns
9
+ label.right.inline From
10
+ .small-9.columns
11
+ = current_user.username
12
+ br
13
+ = f.submit "Submit", class: :button
@@ -8,10 +8,10 @@
8
8
 
9
9
  ul.f-dropdown#donor-options(data-dropdown-content aria-hidden="true")
10
10
  li
11
- -if donations.empty?
11
+ - if donations.empty?
12
12
  = link_to t(".add_donation"),
13
13
  new_patient_transplants_donation_path(patient)
14
- -else
14
+ - else
15
15
  = link_to "Donor (identify a new recipient)",
16
16
  new_patient_transplants_donation_path(patient)
17
17
 
@@ -6,12 +6,12 @@
6
6
 
7
7
  = within_patient_layout(title: "Transplant Recipient Summary") do
8
8
 
9
- -unless recipient_workup.new_record?
9
+ - unless recipient_workup.new_record?
10
10
  = render "renalware/transplants/recipient_workups/summary",
11
11
  patient: patient,
12
12
  recipient_workup: recipient_workup
13
13
 
14
- -unless registration.new_record?
14
+ - unless registration.new_record?
15
15
  = render "renalware/transplants/registrations/summary",
16
16
  patient: patient,
17
17
  registration: registration
@@ -33,4 +33,6 @@ ActiveSupport::Inflector.inflections(:en) do |inflect|
33
33
  inflect.acronym "RTF"
34
34
  inflect.acronym "UKRDC"
35
35
  inflect.acronym "XHR"
36
+ # inflect.uncountable %w(feedback)
37
+ inflect.irregular "feedback", "feedback"
36
38
  end
@@ -1,5 +1,12 @@
1
1
  en:
2
2
  renalware:
3
+ beta_message:
4
+ title: |
5
+ Important notice:
6
+ body: |
7
+ This is the Renalware 2.0 test system.
8
+ Not for clinical use. Any data entered will not be retained.
9
+ feedback_button: Provide feedback or report a bug
3
10
  create:
4
11
  success: You have successfully added a new %{model_name}.
5
12
  failed: You have failed to add a new %{model_name}.
@@ -24,7 +24,7 @@ en:
24
24
  draft_clinic_visit_letter: Clinic Visit Letter
25
25
  simple_letter: Simple Letter
26
26
  new:
27
- clincal:
28
- page_title: New Clincal Letter
27
+ clinical:
28
+ page_title: New Clinical Letter
29
29
  simple:
30
30
  page_title: New Simple Letter
@@ -20,3 +20,4 @@ en:
20
20
  hd: HD
21
21
  pd: PD
22
22
  transplants: Transplant
23
+ low_clearance: Low Clearance
@@ -0,0 +1,15 @@
1
+ en:
2
+ renalware:
3
+ renal:
4
+ low_clearance:
5
+ mdm_patients:
6
+ index:
7
+ page_title: Low Clearance MDM Patients
8
+ filters:
9
+ filter:
10
+ all: All
11
+ urea: Urea > 30
12
+ hgb_low: HGB < 100
13
+ hgb_high: HGB > 130
14
+ on_worryboard: On Worryboard
15
+ tx_candidates: Tx Candidates
@@ -12,3 +12,4 @@ admin:
12
12
  - Renalware::OrganismCode
13
13
  - Renalware::PRDDescription
14
14
  - Renalware::Hospitals::Unit
15
+ - Renalware::HD::Station
data/config/routes.rb CHANGED
@@ -233,10 +233,17 @@ Renalware::Engine.routes.draw do
233
233
  get :deaths
234
234
  end
235
235
  end
236
+ namespace :low_clearance do
237
+ resources :mdm_patients, only: :index
238
+ constraints(named_filter: /#{Renalware::Renal::LowClearance::MDM_FILTERS.join("|")}/) do
239
+ get "mdm_patients/:named_filter", to: "mdm_patients#index", as: :filtered_mdm_patients
240
+ end
241
+ end
236
242
  end
237
243
 
238
244
  namespace :system do
239
245
  resources :email_templates, only: :index
246
+ resources :user_feedback, only: [:new, :create]
240
247
  end
241
248
 
242
249
  namespace :transplants do
@@ -343,6 +350,9 @@ Renalware::Engine.routes.draw do
343
350
 
344
351
  namespace :renal do
345
352
  resource :profile, only: [:show, :edit, :update]
353
+ namespace :low_clearance do
354
+ resource :mdm, only: :show, controller: "mdm"
355
+ end
346
356
  end
347
357
 
348
358
  # Modalities
@@ -0,0 +1,5 @@
1
+ class AddPathologySnapshotToLetters < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :letter_letters, :pathology_timestamp, :datetime
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddIdToRolesUsers < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :roles_users, :id, :primary_key
4
+ end
5
+ end
@@ -0,0 +1,18 @@
1
+ class AddPkToDrugTypesDrugs < ActiveRecord::Migration[5.1]
2
+ def change
3
+
4
+ # Remove the old PK
5
+ reversible do |direction|
6
+ direction.up do
7
+ execute "ALTER TABLE drug_types_drugs DROP CONSTRAINT IF EXISTS drug_types_drugs_pkey"
8
+ end
9
+ direction.down do
10
+ # noop
11
+ # ok was on drug_type_id, which is incorrect (duplicates will be found) so leaving
12
+ end
13
+ end
14
+ add_column :drug_types_drugs, :id, :primary_key
15
+ add_index :drug_types_drugs, [:drug_id, :drug_type_id], unique: true
16
+ add_timestamps :drug_types_drugs, null: true
17
+ end
18
+ end
@@ -0,0 +1,14 @@
1
+ class CreateRenalVersions < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :renal_versions do |t|
4
+ t.string :item_type, :null => false
5
+ t.integer :item_id, :null => false
6
+ t.string :event, :null => false
7
+ t.string :whodunnit
8
+ t.jsonb :object
9
+ t.jsonb :object_changes
10
+ t.datetime :created_at
11
+ end
12
+ add_index :renal_versions, [:item_type, :item_id]
13
+ end
14
+ end
@@ -0,0 +1,16 @@
1
+ class AddMoreMissingIndexes < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_index :pathology_observations, :observed_at # maybe add result also
4
+ add_index :pathology_observation_descriptions, :code
5
+ add_index :pathology_observation_requests, :requested_at
6
+ add_index :pathology_requests_drug_categories, :name
7
+ add_index :patient_bookmarks, :deleted_at
8
+ add_index :users, :family_name # helps uniqueness validation
9
+ add_index :users, :given_name # helps uniqueness validation
10
+ add_index :users, :signature
11
+ add_index :roles, :name # helps uniqueness validation
12
+ add_index :hd_sessions, :type
13
+ add_index :hd_sessions, :signed_off_at
14
+ add_index :hd_sessions, :performed_on
15
+ end
16
+ end
@@ -0,0 +1,5 @@
1
+ class AddLoincCodeToObservationDescriptions < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :pathology_observation_descriptions, :loinc_code, :string, index: :unique
4
+ end
5
+ end
@@ -0,0 +1,10 @@
1
+ class CreateUserFeedback < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :system_user_feedback do |t|
4
+ t.references :author, foreign_key: { to_table: :users }, index: true, null: false
5
+ t.string :category, index: true, null: false
6
+ t.text :comment, null: false
7
+ t.timestamps null: false
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,6 @@
1
+ class RemoveUnusedPatientsCols < ActiveRecord::Migration[5.1]
2
+ def change
3
+ remove_column :patients, :pct_org_code, :string
4
+ remove_column :patients, :gp_practice_code, :string
5
+ end
6
+ end