renalware-core 2.0.51 → 2.0.52

Sign up to get free protection for your applications and to get access to all the features.
Files changed (153) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -0
  3. data/app/assets/stylesheets/renalware/application.scss +2 -1
  4. data/app/assets/stylesheets/renalware/base/_mixins.scss +3 -3
  5. data/app/assets/stylesheets/renalware/base/_variables.scss +33 -33
  6. data/app/assets/stylesheets/renalware/clipboard.scss +2 -2
  7. data/app/assets/stylesheets/renalware/hd_diary_pdf.scss +8 -8
  8. data/app/assets/stylesheets/renalware/lib/_foundation_and_overrides.scss +25 -25
  9. data/app/assets/stylesheets/renalware/lib/_select2-foundation5-overrides.scss +12 -0
  10. data/app/assets/stylesheets/renalware/modules/_admissions.scss +3 -3
  11. data/app/assets/stylesheets/renalware/modules/_clinical.scss +34 -33
  12. data/app/assets/stylesheets/renalware/modules/_clipboard.scss +3 -3
  13. data/app/assets/stylesheets/renalware/modules/_dashboard.scss +2 -2
  14. data/app/assets/stylesheets/renalware/modules/_events.scss +1 -1
  15. data/app/assets/stylesheets/renalware/modules/_feeds.scss +1 -1
  16. data/app/assets/stylesheets/renalware/modules/_hd.scss +44 -39
  17. data/app/assets/stylesheets/renalware/modules/_letters.scss +6 -6
  18. data/app/assets/stylesheets/renalware/modules/_medications.scss +15 -4
  19. data/app/assets/stylesheets/renalware/modules/_messaging.scss +2 -2
  20. data/app/assets/stylesheets/renalware/modules/_pathology.scss +24 -15
  21. data/app/assets/stylesheets/renalware/modules/_patients.scss +35 -29
  22. data/app/assets/stylesheets/renalware/modules/_pd.scss +10 -6
  23. data/app/assets/stylesheets/renalware/modules/_problems.scss +1 -1
  24. data/app/assets/stylesheets/renalware/modules/_renal.scss +3 -3
  25. data/app/assets/stylesheets/renalware/modules/_snippets.scss +29 -20
  26. data/app/assets/stylesheets/renalware/modules/_system.scss +11 -3
  27. data/app/assets/stylesheets/renalware/modules/_users.scss +5 -5
  28. data/app/assets/stylesheets/renalware/partials/_animation.scss +1 -0
  29. data/app/assets/stylesheets/renalware/partials/_animations.scss +1 -0
  30. data/app/assets/stylesheets/renalware/partials/_autocomplete.scss +5 -5
  31. data/app/assets/stylesheets/renalware/partials/_beta_banner.scss +1 -1
  32. data/app/assets/stylesheets/renalware/partials/_button.scss +2 -2
  33. data/app/assets/stylesheets/renalware/partials/_components.scss +1 -1
  34. data/app/assets/stylesheets/renalware/partials/_datepicker.scss +1 -1
  35. data/app/assets/stylesheets/renalware/partials/_disabled_block.scss +2 -2
  36. data/app/assets/stylesheets/renalware/partials/_document.scss +6 -6
  37. data/app/assets/stylesheets/renalware/partials/_editor.scss +11 -11
  38. data/app/assets/stylesheets/renalware/partials/_errors.scss +8 -6
  39. data/app/assets/stylesheets/renalware/partials/_forms.scss +27 -27
  40. data/app/assets/stylesheets/renalware/partials/_highlight.scss +1 -1
  41. data/app/assets/stylesheets/renalware/partials/_iframe.scss +1 -1
  42. data/app/assets/stylesheets/renalware/partials/_layout.scss +25 -23
  43. data/app/assets/stylesheets/renalware/partials/_lists.scss +8 -7
  44. data/app/assets/stylesheets/renalware/partials/_mdm.scss +3 -3
  45. data/app/assets/stylesheets/renalware/partials/_modal_window.scss +23 -21
  46. data/app/assets/stylesheets/renalware/partials/_navigation.scss +36 -36
  47. data/app/assets/stylesheets/renalware/partials/_patient_search.scss +2 -2
  48. data/app/assets/stylesheets/renalware/partials/_simple_form.scss +2 -2
  49. data/app/assets/stylesheets/renalware/partials/_tables.scss +48 -46
  50. data/app/assets/stylesheets/renalware/partials/_tabs.scss +8 -8
  51. data/app/assets/stylesheets/renalware/partials/_toggle.scss +3 -3
  52. data/app/assets/stylesheets/renalware/partials/_tooltip.scss +1 -342
  53. data/app/assets/stylesheets/renalware/partials/_typography.scss +4 -4
  54. data/app/assets/stylesheets/renalware/pdf.scss +7 -7
  55. data/app/assets/stylesheets/renalware/print/pathology_request_forms.scss +4 -4
  56. data/app/assets/stylesheets/renalware/protocol_pdf.scss +50 -42
  57. data/app/assets/stylesheets/renalware/table_pdf.scss +27 -24
  58. data/app/assets/stylesheets/renalware/watermark.scss +3 -3
  59. data/app/controllers/renalware/accesses/assessments_controller.rb +12 -19
  60. data/app/controllers/renalware/base_controller.rb +2 -0
  61. data/app/controllers/renalware/events/events_controller.rb +12 -11
  62. data/app/controllers/renalware/hd/current_profile_controller.rb +2 -8
  63. data/app/controllers/renalware/hd/mdm_patients_controller.rb +9 -3
  64. data/app/controllers/renalware/letters/electronic_receipts_controller.rb +0 -5
  65. data/app/controllers/renalware/letters/letters_controller.rb +0 -6
  66. data/app/controllers/renalware/low_clearance/profiles_controller.rb +1 -8
  67. data/app/controllers/renalware/patients/patients_controller.rb +5 -15
  68. data/app/controllers/renalware/pd/assessments_controller.rb +3 -16
  69. data/app/controllers/renalware/pd/training_sessions_controller.rb +6 -20
  70. data/app/controllers/renalware/renal/profiles_controller.rb +1 -9
  71. data/app/controllers/renalware/research/studies_controller.rb +3 -2
  72. data/app/controllers/renalware/research/study_participants_controller.rb +9 -3
  73. data/app/controllers/renalware/transplants/donor_workups_controller.rb +1 -10
  74. data/app/controllers/renalware/virology/dashboards_controller.rb +1 -1
  75. data/app/controllers/renalware/virology/profiles_controller.rb +1 -14
  76. data/app/helpers/renalware/admin_helper.rb +4 -0
  77. data/app/models/concerns/renalware/ordered_set_scope.rb +1 -1
  78. data/app/models/concerns/renalware/patient_pathology_scopes.rb +8 -2
  79. data/app/models/concerns/renalware/supersedeable.rb +10 -3
  80. data/app/models/renalware/admissions/consult_query.rb +14 -0
  81. data/app/models/renalware/hd/mdm_patients_form.rb +8 -1
  82. data/app/models/renalware/letters/electronic_recipient_options.rb +11 -3
  83. data/app/models/renalware/letters/letter.rb +3 -3
  84. data/app/models/renalware/letters/printing/create_pdf_by_interleaving_address_sheet_and_letter_for_each_recipient.rb +1 -0
  85. data/app/models/renalware/letters/recipient.rb +12 -1
  86. data/app/models/renalware/low_clearance.rb +1 -1
  87. data/app/models/renalware/low_clearance/mdm_patients_query.rb +3 -1
  88. data/app/models/renalware/messaging.rb +0 -4
  89. data/app/models/renalware/messaging/internal/recipient_options.rb +14 -4
  90. data/app/models/renalware/pathology/observation_descriptions_by_code_query.rb +1 -1
  91. data/app/models/renalware/pathology/ordered_patient_query.rb +1 -1
  92. data/app/models/renalware/research/study_participant.rb +2 -0
  93. data/app/models/renalware/research/study_participants_query.rb +20 -0
  94. data/app/models/renalware/transplants/registrations/wait_list_query.rb +14 -0
  95. data/app/models/renalware/ukrdc/send_patients.rb +1 -13
  96. data/app/models/renalware/user.rb +4 -1
  97. data/app/policies/renalware/virology/{dasboard_policy.rb → dashboard_policy.rb} +0 -0
  98. data/app/presenters/renalware/letters/letter_presenter.rb +24 -6
  99. data/app/presenters/renalware/transplants/consent_presenter.rb +2 -1
  100. data/app/values/renalware/address.rb +1 -1
  101. data/app/views/renalware/admin/users/_tabs.html.slim +4 -2
  102. data/app/views/renalware/admissions/consults/_table.html.slim +1 -2
  103. data/app/views/renalware/api/ukrdc/patients/_allergies.xml.builder +1 -1
  104. data/app/views/renalware/api/ukrdc/patients/_diagnoses.xml.builder +8 -3
  105. data/app/views/renalware/api/ukrdc/patients/_documents.xml.builder +1 -1
  106. data/app/views/renalware/events/swabs/_list.html.slim +1 -1
  107. data/app/views/renalware/hd/current_profile/_form.html.slim +25 -21
  108. data/app/views/renalware/hd/mdm_patients/_filters.html.slim +9 -4
  109. data/app/views/renalware/letters/letters/_additional_ccs.html.slim +5 -4
  110. data/app/views/renalware/letters/letters/edit.html.slim +1 -0
  111. data/app/views/renalware/letters/letters/new.html.slim +1 -1
  112. data/app/views/renalware/patients/patients/edit.html.slim +2 -2
  113. data/app/views/renalware/renal/registry_preflight_checks/_filters.html.slim +3 -3
  114. data/app/views/renalware/renal/registry_preflight_checks/_table.html.slim +9 -5
  115. data/app/views/renalware/renal/registry_preflight_checks/deaths.html.slim +1 -1
  116. data/app/views/renalware/reporting/report_mailer/daily_summary.html.slim +2 -1
  117. data/app/views/renalware/research/studies/_filters.html.slim +14 -0
  118. data/app/views/renalware/research/studies/index.html.slim +7 -4
  119. data/app/views/renalware/research/study_participants/_filters.html.slim +13 -0
  120. data/app/views/renalware/research/study_participants/_table.html.slim +2 -2
  121. data/app/views/renalware/research/study_participants/create.js.erb +1 -1
  122. data/app/views/renalware/research/study_participants/index.html.slim +4 -1
  123. data/app/views/renalware/research/study_participants/update.js.erb +1 -1
  124. data/app/views/renalware/shared/documents/_year_dated_confirmation_input.html.slim +1 -1
  125. data/app/views/renalware/transplants/wait_lists/show.html.slim +2 -2
  126. data/db/migrate/20181008144324_update_daily_letters_report_view_to_version_2.rb +13 -0
  127. data/db/migrate/20181008145159_create_reporting_daily_ukrdc_view.rb +11 -0
  128. data/db/migrate/20181013115138_update_reporting_daily_pathology_view_to_v2.rb +13 -0
  129. data/db/views/reporting_daily_letters_v02.sql +4 -0
  130. data/db/views/reporting_daily_pathology_v02.sql +18 -0
  131. data/db/views/reporting_daily_ukrdc_v01.sql +2 -0
  132. data/lib/migration_helper.rb +11 -0
  133. data/lib/renalware/version.rb +1 -1
  134. data/lib/sql/{index_case_stmt.rb → indexed_case_stmt.rb} +2 -2
  135. data/lib/tasks/ukrdc.rake +2 -1
  136. data/spec/factories/patients/practices.rb +2 -1
  137. data/spec/factories/patients/primary_care_physicians.rb +1 -1
  138. data/spec/support/pages/admissions/consults_page.rb +26 -0
  139. data/spec/support/pages/page_object.rb +10 -0
  140. data/spec/support/shared_examples/paranoia_examples.rb +2 -2
  141. data/vendor/assets/stylesheets/renalware/balloon.css +383 -0
  142. data/{app/assets/stylesheets/renalware/lib/_select2-foundation5.scss → vendor/assets/stylesheets/renalware/select2-foundation5.css} +180 -78
  143. metadata +26 -37
  144. data/app/models/renalware/clinics/consultant.rb +0 -10
  145. data/app/models/renalware/events/patient_listener.rb +0 -10
  146. data/app/models/renalware/letters/discharge_summary.rb +0 -10
  147. data/app/presenters/renalware/clinical/body_composition_presenter.rb +0 -11
  148. data/app/presenters/renalware/pathology/patient_presenter.rb +0 -13
  149. data/app/presenters/renalware/pathology/requests/global_rule_presenter.rb +0 -15
  150. data/app/views/renalware/events/types/_header.html.slim.dead +0 -4
  151. data/app/views/renalware/modalities/descriptions/_header.html.slim.dead +0 -5
  152. data/app/views/renalware/transplants/mdm_patients/_filters.html.slim.dead +0 -8
  153. data/config/locales/renalware/reporting/reporting_daily.en.yml +0 -7
@@ -55,18 +55,6 @@ module Renalware
55
55
  end
56
56
  # rubocop:enable Metrics/AbcSize, Metrics/MethodLength
57
57
 
58
- def gpg_encrypt(filepath, output_filepath)
59
- path_to_key = File.open(Rails.root.join("key.gpg"))
60
- # only needed if the key has not been imported previously
61
- GPGME::Key.import(path_to_key)
62
- crypto = GPGME::Crypto.new(always_trust: true)
63
- File.open(filepath) do |in_file|
64
- File.open(output_filepath, "wb") do |out_file|
65
- crypto.encrypt in_file, output: out_file, recipients: "Patient View"
66
- end
67
- end
68
- end
69
-
70
58
  def timestamp
71
59
  Time.zone.now.strftime("%Y%m%d%H%M%S%L")
72
60
  end
@@ -108,7 +96,7 @@ module Renalware
108
96
  keyring: config.ukrdc_gpg_keyring,
109
97
  homedir: config.ukrdc_gpg_homedir,
110
98
  filename_transform: lambda do |filename|
111
- filename.to_s.gsub("/xml/", "/encrypted/") + ".enc"
99
+ filename.to_s.gsub("/xml/", "/encrypted/").gsub(".xml", ".gpg")
112
100
  end
113
101
  )
114
102
  end
@@ -24,9 +24,11 @@ module Renalware
24
24
  }
25
25
 
26
26
  scope :unapproved, -> { where(approved: [nil, false]) }
27
+ scope :expired, -> { where.not(expired_at: nil) }
27
28
  scope :inactive, lambda {
28
29
  where("last_activity_at IS NOT NULL AND last_activity_at < ?", expire_after.ago)
29
30
  }
31
+ scope :excludable, -> { unapproved.or(inactive).or(expired) }
30
32
  scope :author, -> { where.not(signature: nil) }
31
33
  scope :ordered, -> { order(:family_name, :given_name) }
32
34
  scope :excluding_system_user, -> { where.not(username: SystemUser.username) }
@@ -44,8 +46,9 @@ module Renalware
44
46
  UserPolicy
45
47
  end
46
48
 
49
+ # So we can uses these scopes as Ransack predicates eg. { expired: true }
47
50
  def self.ransackable_scopes(_auth_object = nil)
48
- %i(unapproved inactive)
51
+ %i(unapproved inactive expired)
49
52
  end
50
53
 
51
54
  # rubocop:disable Naming/PredicateName
@@ -3,6 +3,7 @@
3
3
  require_dependency "renalware/letters"
4
4
  require "collection_presenter"
5
5
 
6
+ # rubocop:disable Metrics/ClassLength
6
7
  module Renalware
7
8
  module Letters
8
9
  class LetterPresenter < DumbDelegator
@@ -88,12 +89,24 @@ module Renalware
88
89
  end
89
90
 
90
91
  def pdf_filename
91
- [
92
- patient.family_name,
93
- patient.local_patient_id,
94
- id,
95
- state
96
- ].join("-").upcase.concat(".pdf")
92
+ build_filename_from(
93
+ [
94
+ patient.family_name,
95
+ patient.local_patient_id,
96
+ id,
97
+ state
98
+ ]
99
+ )
100
+ end
101
+
102
+ def pdf_stateless_filename
103
+ build_filename_from(
104
+ [
105
+ patient.family_name,
106
+ patient.local_patient_id,
107
+ id
108
+ ]
109
+ )
97
110
  end
98
111
 
99
112
  def state_description
@@ -106,6 +119,10 @@ module Renalware
106
119
 
107
120
  private
108
121
 
122
+ def build_filename_from(arr)
123
+ Array(arr).join("-").upcase.concat(".pdf")
124
+ end
125
+
109
126
  # Include the counterpart cc recipients (i.e. patient and/or primary care physician)
110
127
  def build_cc_recipients
111
128
  determine_counterpart_ccs + __getobj__.cc_recipients
@@ -151,3 +168,4 @@ module Renalware
151
168
  end
152
169
  end
153
170
  end
171
+ # rubocop:enable Metrics/ClassLength
@@ -4,8 +4,9 @@ require_dependency "renalware/transplants"
4
4
 
5
5
  module Renalware
6
6
  module Transplants
7
+ # Extends a RecipientWorkupDocument::YesNoUnknownConsent document attribute
7
8
  class ConsentPresenter < SimpleDelegator
8
- # This method smells of :reek:NilCheck
9
+ # Renders eg "12-Apr-2018 Yes"
9
10
  def to_s
10
11
  [I18n.l(consented_on), value&.text].compact.join(" ")
11
12
  end
@@ -41,7 +41,7 @@ module Renalware
41
41
  end
42
42
 
43
43
  def street
44
- [street_1, street_2, street_3].compact.join(", ")
44
+ [street_1, street_2, street_3].reject(&:blank?).join(", ")
45
45
  end
46
46
  end
47
47
  end
@@ -1,7 +1,9 @@
1
- dl.sub-nav
2
- dd(class=("active" if params[:q].nil?))
1
+ dl.sub-nav.no-js-selection
2
+ dd(class=("active" if params.fetch(:q, {}).empty?))
3
3
  = link_to "All", admin_users_path(q: nil)
4
4
  dd(class=("active" if params.fetch(:q, {})[:unapproved]))
5
5
  = link_to "Unapproved", admin_unapproved_users_path
6
+ dd(class=("active" if params.fetch(:q, {})[:expired]))
7
+ = link_to "Expired", admin_expired_users_path
6
8
  dd(class=("active" if params.fetch(:q, {})[:inactive]))
7
9
  = link_to "Inactive", admin_inactive_users_path
@@ -12,7 +12,7 @@
12
12
  th.col-width-date.noprint= sort_link(query, :started_on, "Started")
13
13
  th.col-width-date.noprint= sort_link(query, :ended_on, "Ended")
14
14
  th.col-width-small.show-for-large-up
15
- = sort_link([:renalware, query], :patient_current_modality_description_name, "Modality")
15
+ = sort_link([:renalware, query], :modality_desc, "Modality")
16
16
  th.col-width-tiny.show-for-large-up Sex
17
17
  th.col-width-date.show-for-large-up= sort_link(query, :patient_born_on, "DOB")
18
18
  th.col-width-tiny.show-for-large-up Age
@@ -82,4 +82,3 @@
82
82
  / When printing we just show the notes on the second row
83
83
  tr.print-only.child-row
84
84
  td(colspan=12)= simple_format consult.description
85
-
@@ -10,7 +10,7 @@ xml.Allergies do
10
10
  patient.allergies.includes(:updated_by).each do |allergy|
11
11
  xml.Allergy do
12
12
  xml.Allergy do
13
- xml.comment! "We don't have snomed code for allergies..?"
13
+ xml.comment! "Not available"
14
14
  end
15
15
  xml.Clinician do
16
16
  xml.Description allergy.updated_by&.to_s
@@ -4,9 +4,14 @@
4
4
  # This is snomed-based, so might not be possible?
5
5
  xml = builder
6
6
  xml.Diagnoses do
7
+ xml.Diagnosis
7
8
  if patient.dead?
8
- [patient.first_cause, patient.second_cause].compact.each do |cause|
9
- render "renalware/api/ukrdc/patients/diagnoses/cause_of_death", builder: xml, cause: cause
10
- end
9
+ # Only 1 CauseOfDeath element is allowed so we ignore patient.second_cause
10
+ render(
11
+ "renalware/api/ukrdc/patients/diagnoses/cause_of_death",
12
+ builder: xml,
13
+ cause: patient.first_cause
14
+ )
11
15
  end
16
+ xml.RenalDiagnosis
12
17
  end
@@ -26,7 +26,7 @@ xml.Documents do
26
26
  xml.Description ""
27
27
  end
28
28
  xml.FileType "application/pdf"
29
- xml.FileName "tbc"
29
+ xml.FileName letter.pdf_stateless_filename
30
30
  xml.Stream Base64.encode64(Renalware::Letters::PdfRenderer.call(letter))
31
31
  xml.DocumentURL
32
32
  end
@@ -21,4 +21,4 @@ article.swabs
21
21
  td= swab.document.type&.text
22
22
  td= swab.document.result&.text
23
23
  td= swab.document.location
24
- td= swab.notes
24
+ td= swab.notes&.html_safe
@@ -95,38 +95,42 @@ ruby:
95
95
 
96
96
  = render layout: "renalware/shared/fieldset",
97
97
  locals: { legend: "Anticoagulant", name: "anticoagulant" } do
98
- = fd.simple_fields_for :anticoagulant, profile.document.anticoagulant do |fcm|
99
- = fcm.input :type, wrapper: :horizontal_small
100
- = fcm.input :loading_dose, wrapper: :horizontal_tiny
101
- = fcm.input :hourly_dose, wrapper: :horizontal_tiny
102
- = fcm.input :stop_time, collection: fcm.object.class.stop_times, wrapper: :horizontal_tiny
98
+ .hd-profile-form-anticoagulant
99
+ = fd.simple_fields_for :anticoagulant, profile.document.anticoagulant do |fcm|
100
+ = fcm.input :type, wrapper: :horizontal_small
101
+ = fcm.input :loading_dose, wrapper: :horizontal_tiny
102
+ = fcm.input :hourly_dose, wrapper: :horizontal_tiny
103
+ = fcm.input :stop_time, collection: fcm.object.class.stop_times, wrapper: :horizontal_tiny
103
104
 
104
105
  = render layout: "renalware/shared/fieldset",
105
106
  locals: { legend: "Drugs", name: "drugs" } do
106
107
  = fd.simple_fields_for :drugs, profile.document.drugs do |fcm|
107
- = fcm.input :on_esa, as: :inline_radio_buttons, wrapper: :horizontal_medium
108
- = fcm.input :on_iron, as: :inline_radio_buttons, wrapper: :horizontal_medium
109
- = fcm.input :on_warfarin, as: :inline_radio_buttons, wrapper: :horizontal_medium
108
+ .hd-profile-form-drugs
109
+ = fcm.input :on_esa, as: :inline_radio_buttons, wrapper: :horizontal_medium
110
+ = fcm.input :on_iron, as: :inline_radio_buttons, wrapper: :horizontal_medium
111
+ = fcm.input :on_warfarin, as: :inline_radio_buttons, wrapper: :horizontal_medium
110
112
 
111
113
  = render layout: "renalware/shared/fieldset",
112
114
  locals: { legend: "Transport", name: "transport" } do
113
- = fd.simple_fields_for :transport, profile.document.transport do |fcm|
114
- = fcm.input :has_transport, as: :inline_radio_buttons, wrapper: :horizontal_medium
115
- = fcm.input :type, wrapper: :horizontal_small
116
- = fcm.input :decided_on, as: :date_picker, wrapper: :horizontal_datepicker
117
- = f.association :transport_decider,
118
- as: :user_picker,
119
- collection: Renalware::User.ordered,
120
- wrapper: :horizontal_medium
115
+ .hd-profile-form-transport
116
+ = fd.simple_fields_for :transport, profile.document.transport do |fcm|
117
+ = fcm.input :has_transport, as: :inline_radio_buttons, wrapper: :horizontal_medium
118
+ = fcm.input :type, wrapper: :horizontal_small
119
+ = fcm.input :decided_on, as: :date_picker, wrapper: :horizontal_datepicker
120
+ = f.association :transport_decider,
121
+ as: :user_picker,
122
+ collection: Renalware::User.ordered,
123
+ wrapper: :horizontal_medium
121
124
 
122
125
  = render layout: "renalware/shared/fieldset",
123
126
  locals: { legend: "Care Level", name: "care_level" } do
124
- = fd.simple_fields_for :care_level, profile.document.care_level do |fcm|
125
- table
126
- = fcm.input :level, wrapper: :horizontal_medium
127
- = fcm.input :assessed_on, as: :date_picker, wrapper: :horizontal_datepicker
127
+ .hd-profile-form-care-level
128
+ = fd.simple_fields_for :care_level, profile.document.care_level do |fcm|
129
+ table
130
+ = fcm.input :level, wrapper: :horizontal_medium
131
+ = fcm.input :assessed_on, as: :date_picker, wrapper: :horizontal_datepicker
128
132
 
129
- .row
133
+ .row.form-actions
130
134
  .large-12.columns
131
135
  = f.button :submit
132
136
  span= " or "
@@ -5,21 +5,26 @@
5
5
  html: { autocomplete: "off" },
6
6
  wrapper: :horizontal_form do |f|
7
7
  .row
8
- .medium-4.columns
8
+ .medium-3.columns
9
9
  = f.input :hospital_unit_id,
10
10
  collection: Renalware::Hospitals::Centre.with_hd_sites.ordered,
11
11
  as: :grouped_select, group_method: :hd_sites,
12
12
  label: t(".hospital_unit")
13
13
 
14
- .medium-4.columns
14
+ .medium-3.columns
15
15
  = f.input :schedule_definition_ids,
16
16
  collection: Renalware::HD::ScheduleDefinitionFilter.all,
17
17
  label_method: :days,
18
18
  value_method: :ids,
19
19
  include_blank: true,
20
- label: t(".schedule")
20
+ label: t(".schedule")
21
+
22
+ .medium-4.columns
23
+ = f.input :named_nurse_id,
24
+ as: :user_picker,
25
+ collection: Renalware::User.ordered.select(:id, :given_name, :family_name)
21
26
 
22
- .medium-4.columns.actions
27
+ .medium-2.columns.actions
23
28
  = f.submit t("helpers.submit.filter"), class: "button", name: nil
24
29
  span= " or "
25
30
  = link_to t("helpers.reset"), hd_mdm_patients_path
@@ -6,10 +6,11 @@ article
6
6
  .small-12.columns
7
7
  #letter-ccs
8
8
  table.auto-layout
9
- = render partial: "cc_recipient_form",
10
- collection: contacts,
11
- as: :contact,
12
- locals: { letter: letter }
9
+ tbody
10
+ = render partial: "cc_recipient_form",
11
+ collection: contacts,
12
+ as: :contact,
13
+ locals: { letter: letter }
13
14
 
14
15
  = link_to(t(".add_contact_as_cc"),
15
16
  "#",
@@ -10,6 +10,7 @@
10
10
  wrapper: "horizontal_form",
11
11
  html: { id: "letter-form", autocomplete: "off" } do |f|
12
12
 
13
+ = render "renalware/shared/errors", model: letter
13
14
  = render "form",
14
15
  f: f,
15
16
  patient: patient,
@@ -8,7 +8,7 @@
8
8
  as: :letter,
9
9
  wrapper: "horizontal_form",
10
10
  html: { id: "letter-form", autocomplete: "off" } do |f|
11
-
11
+ = render "renalware/shared/errors", model: letter
12
12
  = render "form",
13
13
  f: f,
14
14
  patient: patient,
@@ -1,11 +1,11 @@
1
1
  = within_patient_layout(title: "Edit", breadcrumbs: breadcrumb_for("Demographics", patient)) do
2
2
  .row.document
3
- .columns.small-12= render "renalware/shared/errors", model: patient
3
+ .columns.small-12
4
+ = render "renalware/shared/errors", model: patient
4
5
  = simple_form_for patient,
5
6
  wrapper: "horizontal_form",
6
7
  html: { autocomplete: "off" } do |f|
7
8
 
8
- = render "renalware/shared/errors", model: patient
9
9
  = render "form", f: f, patient: patient
10
10
 
11
11
  .columns.large-12
@@ -8,17 +8,17 @@
8
8
  = f.input :profile_esrf_on_gteq, as: :date_picker, label: "ESRF after"
9
9
 
10
10
  -if defined?(display_modality_filter) && display_modality_filter
11
- .medium-4.large-3.columns
11
+ .medium-3.columns
12
12
  = f.input :current_modality_description_id_eq,
13
13
  collection: Renalware::Modalities::Description.pluck("name", "id"),
14
14
  label: "Modality"
15
15
 
16
- .medium-4.large-3.columns
16
+ .medium-3.columns
17
17
  = f.input :hd_profile_unit_id_eq,
18
18
  collection: Renalware::Hospitals::Unit.pluck("name", "id"),
19
19
  label: "HD Site"
20
20
 
21
- .medium-4.columns.actions.end
21
+ .medium-3.columns.actions.end
22
22
  = f.submit t("helpers.submit.filter"), class: "button", name: nil
23
23
  span= " or "
24
24
  = link_to t("helpers.reset"), url
@@ -1,3 +1,5 @@
1
+ - death_configuration = local_assigns[:death_configuration] || false
2
+
1
3
  table.renal-registry-preflight-checks
2
4
  thead
3
5
  tr
@@ -9,10 +11,11 @@ table.renal-registry-preflight-checks
9
11
  :modality_descriptions_name,
10
12
  "Modality",
11
13
  default_order: :asc)
12
- td.col-width-small
13
- = sort_link([:renalware, query],
14
- :hd_profile_unit_name,
15
- "HD Site")
14
+ - unless death_configuration
15
+ td.col-width-small
16
+ = sort_link([:renalware, query],
17
+ :hd_profile_unit_name,
18
+ "HD Site")
16
19
  td.col-width-date
17
20
  = sort_link([:renalware, query],
18
21
  :profile_esrf_on,
@@ -25,7 +28,8 @@ table.renal-registry-preflight-checks
25
28
  td= patient.nhs_number
26
29
  td= patient.hospital_identifiers
27
30
  td= patient.current_modality
28
- td= patient.hd_unit
31
+ - unless death_configuration
32
+ td= patient.hd_unit
29
33
  td= l(patient.renal_profile&.esrf_on)
30
34
  td.missing-data
31
35
  - patient.missing_data.map do |data_item|
@@ -8,5 +8,5 @@
8
8
  = render "navigation"
9
9
 
10
10
  = within_admin_layout(title: "Renal Registry Return: Preflight Checks") do
11
- = render "table", patients: patients, query: query
11
+ = render "table", patients: patients, query: query, death_configuration: true
12
12
  = paginate patients
@@ -2,7 +2,8 @@ h4= l(Time.zone.now)
2
2
 
3
3
  - view_data.each do |view_name, data|
4
4
  - rows = data["data"].first
5
- h3= t(:title, scope: "renalware.reporting.#{view_name}", default: view_name)
5
+
6
+ h3= view_name.gsub("reporting_daily_", "").humanize
6
7
  table
7
8
  - rows.each do |row|
8
9
  - description = row[0]
@@ -0,0 +1,14 @@
1
+ .search-form.filters
2
+ = simple_form_for query,
3
+ as: :q,
4
+ url: research_studies_path,
5
+ method: :get do |f|
6
+ .row
7
+ .columns.medium-5
8
+ = f.input :code_or_description_or_leader_cont,
9
+ label: "Search by any part of the code, description or leader's name"
10
+
11
+ .columns.medium-4.actions.end
12
+ = f.submit t("helpers.submit.filter"), class: "button", name: nil
13
+ span= " or "
14
+ = link_to t("helpers.reset"), research_studies_path
@@ -1,15 +1,18 @@
1
1
  = content_for(:actions) do
2
2
  = link_to("Add", new_research_study_path, class: :button)
3
3
 
4
+ = content_for(:filters) do
5
+ = render "filters", query: query
6
+
4
7
  = within_admin_layout(title: "Clinical Studies") do
5
8
  table
6
9
  thead
7
10
  tr
8
- th.col-width-date Started
9
- th.col-width-date Terminated
10
- th.col-width-small Code
11
+ th.col-width-date= sort_link(query, :started_on, "Started")
12
+ th.col-width-date= sort_link(query, :terminated_on, "Terminated")
13
+ th.col-width-small= sort_link(query, :code, "Code")
11
14
  th Description
12
- th Leader
15
+ th= sort_link(query, :code, "Leader")
13
16
  th Participants
14
17
  th
15
18
  tbody