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
@@ -1,6 +1,6 @@
1
1
  / We allow cross-module references in the UI but not in the controller hence:
2
2
  - unit = Renalware::Hospitals::Unit.find(unit_id)
3
- - breadcrumbs = [breadcrumb_for("Hospital Units", hospitals_units_path),
3
+ - breadcrumbs = [breadcrumb_for("HD Units", hospitals_units_path),
4
4
  breadcrumb_for(unit.unit_code, edit_hospitals_unit_path(unit)),
5
5
  breadcrumb_for("Stations", hd_unit_stations_path(unit))]
6
6
 
@@ -23,7 +23,7 @@
23
23
  - if content_for?(:page_navigation)
24
24
  .page-navigation= yield(:page_navigation)
25
25
  - else
26
- -unless local_assigns[:skip_top_navigation].present?
26
+ - unless local_assigns[:skip_top_navigation].present?
27
27
  - partial = local_assigns[:navigation_partial] || "navigation"
28
28
 
29
29
  / Be sure to pass on any locals passed to us, along with the patient
@@ -21,7 +21,9 @@ html lang="en"
21
21
  #modals-wrapper
22
22
  .page
23
23
  .sticky-top
24
- - if content_for(:top_navigation)
24
+ - if Renalware.config.display_feedback_banner
25
+ = render "renalware/system/user_feedback/banner"
26
+ - if content_for?(:top_navigation)
25
27
  = yield :top_navigation
26
28
  - else
27
29
  = render "renalware/navigation/main"
@@ -23,9 +23,9 @@
23
23
  .row
24
24
  .large-12.columns
25
25
  br
26
- =f.submit t(".save"), class: "button"
26
+ = f.submit t(".save"), class: "button"
27
27
  span= " or "
28
- =link_to t(".cancel"),
28
+ = link_to t(".cancel"),
29
29
  "#",
30
30
  "aria-label" => "Close",
31
31
  class: "reveal-modal-close"
@@ -16,9 +16,9 @@
16
16
  .row
17
17
  .large-12.columns
18
18
  br
19
- =f.submit t(".save"), class: "button"
19
+ = f.submit t(".save"), class: "button"
20
20
  span= " or "
21
- =link_to t(".cancel"),
21
+ = link_to t(".cancel"),
22
22
  "#",
23
23
  "aria-label" => "Close",
24
24
  class: "reveal-modal-close"
@@ -263,13 +263,13 @@ scss:
263
263
  .unit-block
264
264
  .trust-name
265
265
  p
266
- =raw letter.letterhead.trust_name
266
+ = raw letter.letterhead.trust_name
267
267
  /span.nhs-logo= inline_image_tag("renalware/NHS-Black.jpg", size: "82x33")
268
268
  .trust-caption
269
269
  p= letter.letterhead.trust_caption
270
270
 
271
271
  .site-info-html
272
- =raw letter.letterhead.site_info
272
+ = raw letter.letterhead.site_info
273
273
 
274
274
  .body
275
275
  .salutation
@@ -278,7 +278,7 @@ scss:
278
278
  .patient-status
279
279
  p= render "patient_summary", patient: letter.patient
280
280
 
281
- = render letter.parts, patient: letter.patient
281
+ = render letter.parts, patient: letter.patient, letter: letter
282
282
 
283
283
  .message
284
284
  = letter.body&.html_safe
@@ -1,2 +1,2 @@
1
1
  = content_tag(:div, class: "letter-wrapper #{letter.state}") do
2
- =raw letter.content
2
+ = raw letter.content
@@ -1,2 +1,2 @@
1
1
  = content_tag(:div, class: "letter-wrapper #{letter.state}") do
2
- =raw letter.content
2
+ = raw letter.content
@@ -1,2 +1,2 @@
1
1
  = content_tag(:div, class: "letter-wrapper #{letter.state}") do
2
- =raw letter.content
2
+ = raw letter.content
@@ -2,7 +2,7 @@ article.electonic_ccs
2
2
  header
3
3
  h2= t(".title")
4
4
 
5
- =f.input :electronic_cc_recipient_ids,
5
+ = f.input :electronic_cc_recipient_ids,
6
6
  label: "CC electronically to",
7
7
  collection: electronic_recipient_options,
8
8
  as: :grouped_select,
@@ -1,6 +1,7 @@
1
1
  ruby:
2
2
  back_path = patient_letters_letters_path(patient)
3
- event = f.object.event
3
+ letter = f.object
4
+ event = letter.event
4
5
 
5
6
  .row.top
6
7
  .medium-6.columns
@@ -35,6 +36,7 @@ ruby:
35
36
  user_to_promote_to_top: current_user \
36
37
  )
37
38
 
39
+ = render "pathology", letter: letter, f: f
38
40
  = render "main_recipient", f: f, contacts: contacts, patient: patient
39
41
  = render "additional_ccs", f: f, contacts: contacts, patient: patient
40
42
  = render "electronic_ccs",
@@ -52,7 +54,7 @@ ruby:
52
54
  = f.label :body
53
55
  = snippets_modal_and_link_to_open_it(target_input_for_seleted_snippet: ".letter-body-editor")
54
56
 
55
- -if event&.respond_to?(:notes)
57
+ - if event&.respond_to?(:notes)
56
58
  = link_to "Insert #{event.class.name.demodulize.underscore.humanize.downcase} notes",
57
59
  "/",
58
60
  data: { notes: event.notes || "", target: ".letter-body-editor" },
@@ -71,3 +73,4 @@ ruby:
71
73
  = f.button :submit
72
74
  span= " or "
73
75
  = link_to "cancel", back_path
76
+
@@ -0,0 +1,26 @@
1
+ ruby:
2
+ new_pathology_timestamp = Time.zone.now
3
+ diff = Renalware::Pathology::ObservationsDiff.new(
4
+ patient: letter.patient,
5
+ between_dates: [letter.pathology_timestamp, new_pathology_timestamp],
6
+ descriptions: Renalware::Letters::RelevantObservationDescription.all
7
+ )
8
+
9
+ - if letter.clinical?
10
+ article.letter-pathology
11
+ header
12
+ h2 Pathology
13
+
14
+ - if letter.new_record?
15
+ = f.input :pathology_timestamp, as: :hidden
16
+ - else
17
+ = f.input :pathology_timestamp,
18
+ collection: [ \
19
+ ["Yes", Time.zone.now],
20
+ ["No", letter.pathology_timestamp], \
21
+ ], \
22
+ as: :inline_radio_buttons,
23
+ label: "Include pathology updates below"
24
+
25
+
26
+ = diff.to_html
@@ -2,7 +2,7 @@
2
2
  .letter-preview-header
3
3
  .row
4
4
  .columns.large-6
5
- p.unit-info=raw letter.letterhead.unit_info
5
+ p.unit-info= raw letter.letterhead.unit_info
6
6
 
7
7
  p.letter-description-block
8
8
  = l letter.issued_on
@@ -18,12 +18,12 @@
18
18
  .columns.large-6
19
19
  .letter-unit-block
20
20
  p.trust-name
21
- =raw letter.letterhead.trust_name
21
+ = raw letter.letterhead.trust_name
22
22
  span.nhs-logo= image_tag("NHS-Black.jpg", size: "82x33")
23
23
  p.trust-caption= letter.letterhead.trust_caption
24
24
 
25
25
  .site-info-html
26
- p=raw letter.letterhead.site_info
26
+ p= raw letter.letterhead.site_info
27
27
 
28
28
  .letter-preview-body
29
29
  .row
@@ -4,19 +4,18 @@
4
4
  = within_patient_layout(title: "Edit Letter",
5
5
  breadcrumbs: [breadcrumb_for("Letters", patient_letters_letters_path(patient))]) do
6
6
 
7
- .document
8
- = simple_form_for letter,
9
- url: patient_letters_letter_path(patient, letter),
10
- as: :letter,
11
- wrapper: "horizontal_form",
12
- html: { id: "letter-form", autocomplete: "off" } do |f|
7
+ = simple_form_for letter,
8
+ url: patient_letters_letter_path(patient, letter),
9
+ as: :letter,
10
+ wrapper: "horizontal_form",
11
+ html: { id: "letter-form", autocomplete: "off" } do |f|
13
12
 
14
- = render "form",
15
- f: f,
16
- patient: patient,
17
- contact: contact,
18
- contacts: contacts,
19
- electronic_recipient_options: electronic_recipient_options
13
+ = render "form",
14
+ f: f,
15
+ patient: patient,
16
+ contact: contact,
17
+ contacts: contacts,
18
+ electronic_recipient_options: electronic_recipient_options
20
19
 
21
20
  = render "add_contact",
22
21
  patient: patient,
@@ -1,4 +1,4 @@
1
- - i18_scope = letter.clinical? ? "clincal" : "simple"
1
+ - i18_scope = letter.clinical? ? "clinical" : "simple"
2
2
 
3
3
  = within_patient_layout(title: t(".#{i18_scope}.page_title"),
4
4
  breadcrumbs: letters_breadcrumb(patient)) do
@@ -12,8 +12,7 @@ tr(class=letter.state.dasherize)
12
12
  td.col-width-medium-with-ellipsis= letter.type
13
13
  td.state
14
14
  span= letter.state_description
15
- td.full-name
16
- = link_to letter.patient.full_name, patient_clinical_summary_path(letter.patient)
15
+ td.full-name= default_patient_link(letter.patient)
17
16
  td= letter.patient.nhs_number
18
17
  td= letter.enclosures&.truncate(6)
19
18
  td= l letter.issued_on
@@ -1,7 +1,7 @@
1
1
  = within_admin_layout(title: "Letters") do
2
2
 
3
3
  .search-form.filters
4
- = simple_form_for @q,
4
+ = simple_form_for q,
5
5
  as: :q,
6
6
  url: letters_list_path,
7
7
  html: { autocomplete: "off" },
@@ -12,9 +12,9 @@
12
12
  .small-6.medium-3.large-2.columns
13
13
  = f.input :state_eq, collection: state_options, label: "State"
14
14
  .small-6.medium-3.large-2.columns
15
- = f.input :author_id_eq, as: :user_picker, collection: @authors, label: "Author"
15
+ = f.input :author_id_eq, as: :user_picker, collection: authors, label: "Author"
16
16
  .small-6.medium-3.large-2.columns
17
- = f.input :created_by_id_eq, as: :user_picker, collection: @typists, label: "Typist"
17
+ = f.input :created_by_id_eq, as: :user_picker, collection: typists, label: "Typist"
18
18
  .small-12.medium-2.large-4.columns.actions.end
19
19
  = f.submit t("helpers.submit.filter"), class: "button"
20
20
  span= " or "
@@ -22,7 +22,7 @@
22
22
 
23
23
  .row
24
24
  .columns
25
- =button_to "/", class: "button secondary" do
25
+ = button_to "/", class: "button secondary" do
26
26
  i.fa.fa-print
27
27
  | Print All
28
28
 
@@ -33,17 +33,16 @@
33
33
  tr
34
34
  th.noprint
35
35
  th Type
36
- th= sort_link([:renalware, @q], :type, "State")
37
- th.col-width-medium= sort_link([:renalware, @q], :patient_family_name, "Patient")
38
- th.col-width-nhs-no= sort_link([:renalware, @q], :patient_nhs_number, "NHS No")
39
- th= sort_link([:renalware, @q], :enclosures, "Enc.")
40
- th.col-width-date = sort_link([:renalware, @q], :issued_on, "Date", default_order: :desc)
41
- th= sort_link([:renalware, @q], :author_family_name, "Author")
42
- th= sort_link([:renalware, @q], :created_by_family_name, "Typist")
36
+ th= sort_link([:renalware, q], :type, "State")
37
+ th.col-width-medium= sort_link([:renalware, q], :patient_family_name, "Patient")
38
+ th.col-width-nhs-no= sort_link([:renalware, q], :patient_nhs_number, "NHS No")
39
+ th= sort_link([:renalware, q], :enclosures, "Enc.")
40
+ th.col-width-date = sort_link([:renalware, q], :issued_on, "Date", default_order: :desc)
41
+ th= sort_link([:renalware, q], :author_family_name, "Author")
42
+ th= sort_link([:renalware, q], :created_by_family_name, "Typist")
43
43
  th.col-width-small Recipient
44
44
  th Description
45
45
  tbody
46
- - @letters.each do |letter|
47
- = render "letter", letter: letter
46
+ = render partial: "letter", collection: letters
48
47
 
49
- = paginate @letters
48
+ = paginate letters
@@ -2,13 +2,8 @@
2
2
  h3 Recent Investigations
3
3
 
4
4
  - if recent_pathology_results.any?
5
- p
6
- - recent_pathology_results.each do |pathology_result|
7
- - description, observation, date = pathology_result
8
- - if observation.result.present?
9
- span #{date}: #{description} #{observation.result};
10
- - else
11
- span   #{description};
12
- |  
5
+ - recent_pathology_results.each do |observation|
6
+ span #{l(observation.observed_at&.to_date)}: #{observation.description.code} #{observation.result};
7
+ |  
13
8
  - else
14
9
  p None
@@ -1,7 +1,7 @@
1
1
  dl.sub-nav
2
2
  dd
3
- =link_to("Unread", unread_letters_electronic_receipts_path)
3
+ = link_to("Unread", unread_letters_electronic_receipts_path)
4
4
  dd
5
- =link_to("Read", read_letters_electronic_receipts_path)
5
+ = link_to("Read", read_letters_electronic_receipts_path)
6
6
  dd
7
- =link_to("Sent", sent_letters_electronic_receipts_path)
7
+ = link_to("Sent", sent_letters_electronic_receipts_path)
@@ -12,4 +12,4 @@
12
12
  patient_letters_letters_path(mdm.patient),
13
13
  class: "button secondary"
14
14
 
15
- =render "renalware/letters/letters/table", letters: mdm.letters
15
+ = render "renalware/letters/letters/table", letters: mdm.letters
@@ -12,7 +12,7 @@ article
12
12
  th Weight (kg)
13
13
 
14
14
  tbody
15
- -mdm.clinic_visits_having_measurements.each do |clinic_visit|
15
+ - mdm.clinic_visits_having_measurements.each do |clinic_visit|
16
16
  tr
17
17
  td.col-width-date= l(clinic_visit.date)
18
18
  td.bmi= clinic_visit.bmi
@@ -1,5 +1,5 @@
1
1
  tr
2
- td.full-name= link_to patient, view_proc.call(patient)
2
+ td.full-name= link_to patient.to_s(:default), view_proc.call(patient)
3
3
  td.nowrap= patient.nhs_number
4
4
  td.nowrap= patient.hospital_identifier
5
5
  td= patient.sex.code
@@ -1,23 +1,21 @@
1
+ - path = [:renalware, presenter.q]
1
2
  table#patients.mdm-patients.columns
2
3
  thead
3
4
  tr
4
- th.col-width-large= sort_link([:renalware, presenter.q], :family_name, t(".name"))
5
- th.col-width-nhs-no= t(".nhs_no")
5
+ th.col-width-large= sort_link(path, :family_name, t(".name"))
6
+ th.col-width-nhs-no= sort_link(path, :nhs_number, t(".hosp_no"))
6
7
  th.col-width-reference-no= t(".hosp_no")
7
8
  th.col-width-tiny= t(".sex")
8
9
  th.col-width-tiny= t(".age")
9
- th.col-width-tiny= t(".modality")
10
- th.col-width-tiny= t(".hgb")
11
- th.col-width-date= t(".hgb_date")
12
- th.col-width-tiny= t(".ure")
13
- th.col-width-date= t(".ure_date")
14
- th.col-width-tiny= t(".cre")
15
- th.col-width-date
16
- = sort_link([:renalware, presenter.q], :patient_current_key_observation_set_cre_date, t(".cre_date"))
17
- th.col-width-tiny= t(".mdrd")
10
+ th.col-width-small= t(".modality")
11
+ - %i(hgb ure cre).each do |code|
12
+ th.col-width-tiny= sort_link(path, code, t(".#{code}"))
13
+ th.col-width-date= sort_link(path, :"#{code}_date", t(".#{code}_date"))
14
+ th.col-width-tiny= sort_link(path, :mdrd, t(".mdrd"))
18
15
  th.col-width-date= t(".esrf")
19
16
  th.col-width-small
20
17
 
21
18
  tbody
22
- - presenter.patients.each do |patient|
23
- = render "patient", patient: patient, view_proc: presenter.view_proc, q: presenter.q
19
+ = render partial: "patient",
20
+ collection: presenter.patients,
21
+ locals: { view_proc: presenter.view_proc, q: presenter.q }
@@ -5,11 +5,11 @@
5
5
  as: :internal_message,
6
6
  url: messaging_internal_messages_path(patient_id: patient) do |f|
7
7
  h2= t(".title")
8
- =f.input :replying_to_message_id, as: :hidden
8
+ = f.input :replying_to_message_id, as: :hidden
9
9
 
10
10
  / NB the inline styling here prevents an initial flash and re-jiggle of dropdown content which
11
11
  / is subsequently hidden by select2 after 100 ms or so.
12
- =f.input :recipient_ids,
12
+ = f.input :recipient_ids,
13
13
  label: t(".recipient_ids"),
14
14
  collection: recipient_options,
15
15
  as: :grouped_select,
@@ -21,12 +21,12 @@
21
21
  id: "message_recipient_ids",
22
22
  multiple: "multiple",
23
23
  style: "visibility: hidden; height: 2.5rem" }
24
- =f.input :subject
25
- =f.input :urgent, as: :boolean, boolean_style: :inline
26
- =f.input :body, as: :text, input_html: { rows: 7 }
27
- =f.submit "Send", class: :button
24
+ = f.input :subject
25
+ = f.input :urgent, as: :boolean, boolean_style: :inline
26
+ = f.input :body, as: :text, input_html: { rows: 7 }
27
+ = f.submit "Send", class: :button
28
28
  span= " or "
29
- =link_to t(".cancel"),
29
+ = link_to t(".cancel"),
30
30
  "#",
31
31
  "aria-label" => "Close",
32
32
  class: "reveal-modal-close"
@@ -4,7 +4,7 @@
4
4
  - url = new_messaging_internal_message_path(patient_id: patient, format: :html)
5
5
 
6
6
  / Link to launch the modal dialog
7
- =link_to(url,
7
+ = link_to(url,
8
8
  id: "send-patient-message",
9
9
  data: { "reveal-id" => "send-message-modal", "reveal-ajax" => "true" }) do
10
10
  i.fa.fa-link-annotation.fa-envelope
@@ -5,7 +5,7 @@
5
5
  replying_to_message_id: replying_to_message_id,
6
6
  format: :html)
7
7
  / Link to launch the modal dialog
8
- =link_to(url,
8
+ = link_to(url,
9
9
  data: { "reveal-id" => "send-message-modal", "reveal-ajax" => "true" },
10
10
  class: "button secondary") do
11
11
  i.fa.fa-link-annotation.fa-reply
@@ -2,7 +2,7 @@
2
2
  - patient = Renalware::PatientPresenter.new(message.patient)
3
3
 
4
4
  tr(class="#{ "urgent" if message.urgent?}" id=message.html_identifier)
5
- td=l(message.sent_at)
5
+ td= l(message.sent_at)
6
6
  td= default_patient_link(patient)
7
7
  td= patient.nhs_number
8
8
  td= message.patient.hospital_identifier
@@ -1,7 +1,7 @@
1
1
  dl.sub-nav
2
2
  dd
3
- =link_to("Inbox", messaging_internal_inbox_path)
3
+ = link_to("Inbox", messaging_internal_inbox_path)
4
4
  dd
5
- =link_to("Read", messaging_internal_read_receipts_path)
5
+ = link_to("Read", messaging_internal_read_receipts_path)
6
6
  dd
7
- =link_to("Sent", messaging_internal_sent_messages_path)
7
+ = link_to("Sent", messaging_internal_sent_messages_path)
@@ -1,4 +1,4 @@
1
1
  ul.title-area
2
2
  li.name.has-dropdown.active
3
3
  h1.brand-name
4
- ="Renalware"
4
+ = "Renalware"
@@ -4,3 +4,4 @@ li.has-dropdown
4
4
  li= link_to t(".hd"), hd_mdm_patients_path
5
5
  li= link_to t(".pd"), pd_mdm_patients_path
6
6
  li= link_to t(".transplants"), transplants_mdm_patients_path
7
+ li= link_to t(".low_clearance"), renal_low_clearance_mdm_patients_path
@@ -0,0 +1,22 @@
1
+ / Use by Pathology::ObservationsDiff renderer
2
+ table.table.pathology-observation-diff
3
+ thead
4
+ tr
5
+ th.col-width-tiny(rowspan=2) Code
6
+ th.col-width-medium(colspan=2) Used
7
+ th.col-width-medium(colspan=2) Newer
8
+ tr
9
+ th.col-width-tiny Result
10
+ th.col-width-datetime Date
11
+ th.col-width-tiny Result
12
+ th.col-width-datetime Date
13
+
14
+ tbody
15
+ - diffs.each do |code, arr|
16
+ tr
17
+ th= code
18
+ td
19
+ b= arr[0]&.result
20
+ td= l(arr[0]&.observed_at)
21
+ td= arr[1]&.result
22
+ td= l(arr[1]&.observed_at)
@@ -18,7 +18,7 @@
18
18
  - if content_for?(:page_navigation)
19
19
  .page-navigation= yield(:page_navigation)
20
20
  - else
21
- -unless local_assigns[:skip_top_navigation].present?
21
+ - unless local_assigns[:skip_top_navigation].present?
22
22
  - partial = local_assigns[:navigation_partial] || "navigation"
23
23
 
24
24
  / Be sure to pass on any locals passed to us,
@@ -3,6 +3,6 @@
3
3
  - url = new_patient_alert_path(patient_id: patient, format: :html)
4
4
 
5
5
  / Link to launch the modal dialog
6
- =link_to(url, data: { "reveal-id" => "create-alert-modal", "reveal-ajax" => "true" }) do
6
+ = link_to(url, data: { "reveal-id" => "create-alert-modal", "reveal-ajax" => "true" }) do
7
7
  i.fa.fa-link-annotation.fa-exclamation-circle
8
8
  = link_text
@@ -4,11 +4,11 @@
4
4
  remote: true,
5
5
  url: patient_alerts_path(patient_id: patient) do |f|
6
6
  h2= t(".title")
7
- =f.input :urgent, as: :boolean, boolean_style: :inline
8
- =f.input :notes, autofocus: true
9
- =f.submit "Create alert", class: :button
7
+ = f.input :urgent, as: :boolean, boolean_style: :inline
8
+ = f.input :notes, autofocus: true
9
+ = f.submit "Create alert", class: :button
10
10
  span= " or "
11
- =link_to t(".cancel"),
11
+ = link_to t(".cancel"),
12
12
  "#",
13
13
  "aria-label" => "Close",
14
14
  class: "reveal-modal-close"
@@ -1,4 +1,3 @@
1
1
  table.alerts
2
2
  tbody
3
- - patient.alerts.each do |alert|
4
- = render(alert)
3
+ = render patient.alerts
@@ -1,4 +1,4 @@
1
- =link_to link_text,
1
+ = link_to link_text,
2
2
  bookmark_path(bookmark),
3
3
  method: :delete,
4
4
  data: { confirm: t(".confirm") }
@@ -5,16 +5,16 @@
5
5
 
6
6
  / The modal dialog
7
7
  #add-patient-bookmark-modal.reveal-modal.medium(data-reveal)
8
- =simple_form_for patient.bookmarks.new,
9
- html: { autocomplete: "off" },
10
- url: patient_bookmarks_path(patient_id: patient) do |f|
8
+ = simple_form_for patient.bookmarks.new,
9
+ html: { autocomplete: "off" },
10
+ url: patient_bookmarks_path(patient_id: patient) do |f|
11
11
  h2= t(".title")
12
- =f.input :urgent, as: :boolean, boolean_style: :inline
13
- =f.input :tags, label: "Tags"
14
- =f.input :notes, as: :text, input_html: { autofocus: :autofocus }
15
- =f.submit t(".save"), class: :button
12
+ = f.input :urgent, as: :boolean, boolean_style: :inline
13
+ = f.input :tags, label: "Tags"
14
+ = f.input :notes, as: :text, input_html: { autofocus: :autofocus }
15
+ = f.submit t(".save"), class: :button
16
16
  span= " or "
17
- =link_to t(".cancel"),
17
+ = link_to t(".cancel"),
18
18
  "#",
19
19
  "aria-label" => "Close",
20
20
  class: "reveal-modal-close"
@@ -1,9 +1,11 @@
1
1
  article
2
2
  header
3
- h2
4
- = link_to "Events (#{events.size})", patient_events_path(@patient)
3
+ h2= link_to "Events (#{current_events_count})", patient_events_path(patient)
5
4
 
6
- = link_to new_patient_event_path(@patient), class: "button" do
7
- | Add
5
+ ul
6
+ li= link_to new_patient_event_path(patient), class: "button" do
7
+ | Add
8
+ li= link_to patient_events_path(patient), class: "button" do
9
+ | View All
8
10
 
9
11
  = render "renalware/events/events/table", events: events
@@ -1,9 +1,12 @@
1
1
  article
2
2
  header
3
3
  h2
4
- = link_to "Letters (#{letters.size})", patient_letters_letters_path(patient)
4
+ = link_to "Letters (#{letters_count})", patient_letters_letters_path(patient)
5
5
 
6
- = link_to patient_letters_letters_path(patient), class: "button" do
7
- | Draft letter
6
+ ul
7
+ li= link_to patient_letters_letters_path(patient), class: "button" do
8
+ | Draft letter
9
+ li= link_to patient_letters_letters_path(patient), class: "button" do
10
+ | View All
8
11
 
9
12
  = render "renalware/letters/letters/table", letters: letters
@@ -2,9 +2,9 @@ article
2
2
  header
3
3
  h2
4
4
  = link_to "Current Prescriptions (#{prescriptions.length})",
5
- patient_prescriptions_path(@patient)
5
+ patient_prescriptions_path(patient)
6
6
 
7
- = link_to patient_prescriptions_path(@patient), class: "button" do
7
+ = link_to patient_prescriptions_path(patient), class: "button" do
8
8
  | Add
9
9
 
10
10
  ul.no-bullet
@@ -1,9 +1,9 @@
1
1
  article
2
2
  header
3
3
  h2
4
- = link_to "Problems (#{problems.length})", patient_problems_path(@patient)
4
+ = link_to "Problems (#{problems.length})", patient_problems_path(patient)
5
5
 
6
- = link_to patient_problems_path(@patient), class: "button" do
6
+ = link_to patient_problems_path(patient), class: "button" do
7
7
  | Add
8
8
 
9
9
  ul.no-bullet