renalware-core 2.0.38 → 2.0.39

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/renalware/modules/_users.scss +1 -0
  3. data/app/assets/stylesheets/renalware/partials/_tables.scss +1 -1
  4. data/app/controllers/renalware/hd/ongoing_sessions_controller.rb +6 -1
  5. data/app/controllers/renalware/patients/bookmarks_controller.rb +10 -0
  6. data/app/models/renalware/medications/dose_unit.rb +1 -0
  7. data/app/models/renalware/patients/clear_patient_ukrdc_data.rb +23 -0
  8. data/app/models/renalware/patients/patient_listener.rb +13 -0
  9. data/app/models/renalware/transplants/registrations/wait_list_query.rb +34 -38
  10. data/app/presenters/renalware/dashboard/dashboard_presenter.rb +10 -2
  11. data/app/presenters/renalware/mdm_presenter.rb +4 -6
  12. data/app/views/renalware/admin/users/_summary_part.html.slim +4 -3
  13. data/app/views/renalware/dashboard/dashboards/_content.html.slim +17 -9
  14. data/app/views/renalware/hd/mdm/_summary.html.slim +3 -1
  15. data/app/views/renalware/hd/ongoing_sessions/_table.html.slim +3 -3
  16. data/app/views/renalware/mdm/_events.html.slim +11 -9
  17. data/app/views/renalware/mdm/show.html.slim +1 -0
  18. data/app/views/renalware/modalities/modalities/new.html.slim +5 -4
  19. data/app/views/renalware/patients/bookmarks/index.html.slim +2 -0
  20. data/app/views/renalware/pd/mdm/_summary.html.slim +9 -0
  21. data/app/views/renalware/pd/mdm/_top.html.slim +2 -0
  22. data/app/views/renalware/transplants/mdm/_bottom.html.slim +0 -3
  23. data/config/initializers/renalware.rb +2 -1
  24. data/config/locales/renalware/medications/prescription.yml +1 -0
  25. data/config/routes.rb +1 -1
  26. data/db/migrate/20180712143314_add_hidden_to_modality_descriptions.rb +5 -0
  27. data/db/migrate/20180718172750_update_audit_letters_authors_to_version_3.rb +17 -0
  28. data/db/views/reporting_main_authors_audit_v03.sql +36 -0
  29. data/lib/renalware/version.rb +1 -1
  30. metadata +9 -3
  31. data/app/views/renalware/low_clearance/mdm/_bottom.html.slim +0 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bded04d49b6bb55e363f0aea57ff4bb129dee0f9e25ffaa3a4d515aa7942f55b
4
- data.tar.gz: 2d2513e0f3d161c064f7a7010f4420b0fa7fcbb913e55ecb8130cc88ae0205e3
3
+ metadata.gz: 68409a0a75c780847c2cdf55ab44325dd993b74fd850090e86f5925efd592eee
4
+ data.tar.gz: a69a86d2c84b6db5e7b7e5823fac9a37d41c8f19fda3af2810b1216b4ae631fb
5
5
  SHA512:
6
- metadata.gz: ce45551e62fdb8f6e03c4845ddbd9fc2b740aeb8f9cdbc2d34197107f285b53fdff81299501822415beabd3413b60e78658837947a30affb147be11fd44188a3
7
- data.tar.gz: 32ae5f07a4e9f1c1de68b0ab881712cbebab81c6e722288295fc419c0b0cf8d9467cba7c9d1b8516b060de096742c4bcede1b2c0224a6a05f1fe89df9af80881
6
+ metadata.gz: 2e4088f788a4da2c0a309045d83ba2d01644b6b1064108ec59b3fc8b1213f2d56a506a034250fdf9986c3024f5d49b4e21d2f05a1cc64200ac0394839ccaf079
7
+ data.tar.gz: 2fcfebba60f4b399ac10f134fe846946bccaaf89dc11089acd8553b396343af99b8d13bd7efcb9430c45156da7be74e50ab92e412384da1da56d446d99e6fada
@@ -16,6 +16,7 @@
16
16
  margin: .1rem .3rem .2rem 0;
17
17
  border-radius: .3rem;
18
18
  background-color: $mid-grey;
19
+ white-space: nowrap;
19
20
 
20
21
  &.devops {
21
22
 
@@ -192,7 +192,7 @@ table {
192
192
  }
193
193
 
194
194
  &.col-width-reference-no {
195
- width: 8rem;
195
+ width: 8.5rem;
196
196
  min-width: 8rem;
197
197
  white-space: nowrap;
198
198
  }
@@ -9,7 +9,12 @@ module Renalware
9
9
 
10
10
  def show
11
11
  query = Sessions::OngoingQuery.new(q: params[:q])
12
- sessions = query.call.page(page).per(per_page || 15)
12
+ sessions = query.call
13
+ .includes(
14
+ :hospital_unit, :signed_on_by, :signed_off_by,
15
+ patient: { current_modality: [:description] }
16
+ )
17
+ .page(page).per(per_page || 15)
13
18
  authorize sessions
14
19
  render locals: { query: query.search, sessions: sessions }
15
20
  end
@@ -5,6 +5,16 @@ module Renalware
5
5
  class BookmarksController < BaseController
6
6
  before_action :load_patient, only: :create
7
7
 
8
+ # Display the user's bookmarks
9
+ def index
10
+ bookmarks = Patients.cast_user(current_user)
11
+ .bookmarks
12
+ .ordered
13
+ .includes(patient: [current_modality: :description])
14
+ authorize bookmarks
15
+ render locals: { bookmarks: bookmarks }
16
+ end
17
+
8
18
  # idempotent
9
19
  def create
10
20
  Bookmark.find_or_create_by!(user: user, patient: patient) do |bookmark|
@@ -15,6 +15,7 @@ module Renalware
15
15
  microgram
16
16
  milligram
17
17
  millilitre
18
+ nanogram
18
19
  puff
19
20
  tab
20
21
  tablet
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_dependency "renalware/patients"
4
+ require "attr_extras"
5
+
6
+ module Renalware
7
+ module Patients
8
+ class ClearPatientUKRDCData
9
+ pattr_initialize [:patient!, :by!]
10
+
11
+ def self.call(**args)
12
+ new(**args).call
13
+ end
14
+
15
+ def call
16
+ patient.send_to_rpv = false
17
+ patient.rpv_decision_on = Time.zone.today
18
+ patient.rpv_recorded_by = by.to_s
19
+ patient.save_by!(by)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_dependency "renalware/medications"
4
+
5
+ module Renalware
6
+ module Patients
7
+ class PatientListener
8
+ def patient_modality_changed_to_death(patient:, actor:, **)
9
+ ClearPatientUKRDCData.call(patient: patient, by: actor)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -33,19 +33,47 @@ module Renalware
33
33
  end
34
34
  end
35
35
 
36
- # Mixing in some scopes here rather than using ransack as I cannot get ransack scopes
37
- # to 'or' together other scopes like this. I seem to spend a lot of time debugging the
38
- # vagaries of ransack and wonder if its more pain that its worth!
36
+ # The status_mismatch filter finds patients with a UKT status that does not match their
37
+ # tx wait list status. We filter out UKT statuses of null or ''.
38
+ # At some point we will have turn this into a mapping object or hash because there will
39
+ # probably not be a 1 to 1 mapping from wait list to UKT status.
39
40
  module Scopes
41
+ # rubocop:disable Metrics/MethodLength
40
42
  def apply_filter(filter)
41
43
  case filter
42
44
  when :status_mismatch
43
- current_status_is_active.ukt_status_is_not_active
44
- .or(current_status_is_not_active.ukt_status_is_active)
45
+ joins(statuses: :description)
46
+ .where(transplant_registration_statuses: { terminated_on: nil })
47
+ .where(
48
+ <<-SQL.squish
49
+ (
50
+ transplant_registration_status_descriptions.code in ('active','suspended')
51
+ and
52
+ (
53
+ transplant_registrations.document -> 'uk_transplant_centre' ->> 'status' not ilike '%' || transplant_registration_status_descriptions.code || '%'
54
+ or
55
+ transplant_registrations.document -> 'uk_transplant_centre' ->> 'status' = ''
56
+ or
57
+ transplant_registrations.document -> 'uk_transplant_centre' ->> 'status' IS NULL
58
+ )
59
+ )
60
+ or
61
+ (
62
+ transplant_registration_status_descriptions.code not in ('active','suspended')
63
+ and
64
+ (
65
+ transplant_registrations.document -> 'uk_transplant_centre' ->> 'status' ilike '%active%'
66
+ or
67
+ transplant_registrations.document -> 'uk_transplant_centre' ->> 'status' ilike '%suspended%'
68
+ )
69
+ )
70
+ SQL
71
+ )
45
72
  else
46
73
  all
47
74
  end
48
75
  end
76
+ # rubocop:enable Metrics/MethodLength
49
77
  end
50
78
 
51
79
  private
@@ -77,13 +105,6 @@ module Renalware
77
105
  .where(transplant_registration_status_descriptions: { code: codes })
78
106
  }
79
107
 
80
- scope :current_status_not_in, lambda { |codes|
81
- codes ||= %w(active)
82
- joins(statuses: :description)
83
- .where(transplant_registration_statuses: { terminated_on: nil })
84
- .where.not(transplant_registration_status_descriptions: { code: codes })
85
- }
86
-
87
108
  ransacker :crf_highest_value do
88
109
  Arel.sql("transplant_registrations.document -> 'crf' -> 'highest' ->> 'result'")
89
110
  end
@@ -102,35 +123,10 @@ module Renalware
102
123
  Arel.sql("renal_profiles.esrf_on")
103
124
  end
104
125
 
105
- scope :ukt_status_is, lambda { |status|
106
- where(
107
- "transplant_registrations.document -> 'uk_transplant_centre' ->> 'status' ilike ?",
108
- status
109
- )
110
- }
111
- scope :ukt_status_is_not, lambda { |status|
112
- where.not(
113
- "transplant_registrations.document -> 'uk_transplant_centre' ->> 'status' ilike ?",
114
- status
115
- )
116
- }
117
- scope :current_status_is_active, ->{ current_status_in(:active) }
118
- scope :current_status_is_not_active, ->{ current_status_not_in(:active) }
119
- scope :ukt_status_is_active, ->{ ukt_status_is(:active) }
120
- scope :ukt_status_is_not_active, ->{ ukt_status_is_not(:active) }
121
-
122
126
  private_class_method :ransackable_scopes
123
127
 
124
128
  def self.ransackable_scopes(_auth_object = nil)
125
- %i(current_status_in
126
- current_status_not_in
127
- current_status_is_active
128
- current_status_is_not_active
129
- ukt_status_is
130
- ukt_status_is_not
131
- ukt_status_is_active
132
- ukt_status_is_not_active
133
- status_mismatches)
129
+ %i(current_status_in)
134
130
  end
135
131
  end
136
132
  end
@@ -30,6 +30,7 @@ module Renalware
30
30
  .reverse
31
31
  .where("author_id = ? or created_by_id = ?", user.id, user.id)
32
32
  .in_progress
33
+ .includes(:author, :patient, :letterhead)
33
34
  )
34
35
  # Renalware::Letters.cast_author(user)
35
36
  end
@@ -37,14 +38,21 @@ module Renalware
37
38
 
38
39
  def unread_messages_receipts
39
40
  @unread_messages_receipts ||= begin
40
- receipts = Messaging::Internal.cast_recipient(user).receipts.unread
41
+ receipts = Messaging::Internal.cast_recipient(user)
42
+ .receipts
43
+ .includes(message: [:author, :patient])
44
+ .unread
41
45
  CollectionPresenter.new(receipts, Messaging::Internal::ReceiptPresenter)
42
46
  end
43
47
  end
44
48
 
45
49
  def unread_electronic_ccs
46
50
  @unread_electronic_ccs ||= begin
47
- receipts = Letters::ElectronicReceipt.unread.for_recipient(user.id).ordered
51
+ receipts = Letters::ElectronicReceipt
52
+ .includes(letter: [:patient, :author, :letterhead])
53
+ .unread
54
+ .for_recipient(user.id)
55
+ .ordered
48
56
  CollectionPresenter.new(receipts, Letters::ElectronicReceiptPresenter)
49
57
  end
50
58
  end
@@ -120,12 +120,10 @@ module Renalware
120
120
  result
121
121
  end
122
122
 
123
- def transplant_status
124
- Renalware::Transplants::Registration.for_patient(patient)
125
- .first
126
- &.current_status
127
- &.description
128
- &.name
123
+ def current_transplant_status
124
+ @current_transplant_status ||= begin
125
+ Renalware::Transplants::Registration.for_patient(patient).first&.current_status
126
+ end
129
127
  end
130
128
 
131
129
  private
@@ -1,3 +1,4 @@
1
- section.admin--users
2
- h2 Admin
3
- = link_to summary_part.users_needing_approval_title, admin_users_path(q: { unapproved: true })
1
+ article.admin--users
2
+ header
3
+ h2 Admin
4
+ =link_to summary_part.users_needing_approval_title, admin_users_path(q: { unapproved: true })
@@ -1,32 +1,40 @@
1
1
  .dashboard-content
2
- section.letters
3
- h2 Letters in Progress
2
+ article.letters
3
+ header
4
+ h2 Letters in Progress
4
5
  - if dashboard.letters_in_progress.any?
5
6
  #letters-in-progress
6
7
  = render "renalware/dashboard/letters/table", letters: dashboard.letters_in_progress
7
8
  - else
8
9
  p.empty-section= t(".letters.in_progress.none").html_safe
9
10
 
10
- section.bookmarks
11
- h2 Bookmarked Patients
11
+ article.bookmarks
12
+ header
13
+ h2.title= "Bookmarked Patients"
14
+ ul
15
+ li= link_to "View All", bookmarks_path, class: "button"
16
+
12
17
  - if dashboard.bookmarks.any?
13
18
  #bookmarks
14
19
  = render "renalware/dashboard/bookmarks/table", bookmarks: dashboard.bookmarks
15
20
  - else
16
21
  p.empty-section= t(".bookmarks.none")
17
22
 
18
- section.messages
19
- h2 Messages
23
+ article.messages
24
+ header
25
+ h2 Messages
26
+ ul
27
+ li= render "renalware/messaging/shared/key"
20
28
  - if dashboard.unread_messages_receipts.any?
21
- = render "renalware/messaging/shared/key"
22
29
  .unread-messages
23
30
  = render "renalware/messaging/internal/receipts/table",
24
31
  receipts: dashboard.unread_messages_receipts
25
32
  - else
26
33
  p.empty-section= t(".messages.none")
27
34
 
28
- section.electonic_ccs
29
- h2 Electronic CCs
35
+ article.electonic_ccs
36
+ header
37
+ h2 Electronic CCs
30
38
  - if dashboard.unread_electronic_ccs.any?
31
39
  = render "renalware/letters/electronic_receipts/table",
32
40
  receipts: dashboard.unread_electronic_ccs
@@ -18,4 +18,6 @@ article
18
18
  = "(#{l(obs.date)})" if obs.date.present?
19
19
 
20
20
  dt Transplant status
21
- dd= mdm.transplant_status
21
+ dd
22
+ b= "#{mdm.current_transplant_status} "
23
+ = "since #{l(mdm.current_transplant_status&.started_on)}"
@@ -1,12 +1,12 @@
1
1
  table.report
2
2
  thead
3
3
  tr
4
- th.noprint.col-width-11
4
+ th.noprint.col-width-13
5
5
  th.col-width-medium= sort_link([:renalware, query], :patient_family_name, "Patient")
6
- th.col-width-tiny Hosp No
6
+ th.col-width-reference-no Hosp No
7
7
  th= sort_link([:renalware, query], :patient_born_on, "Age")
8
8
  th= sort_link([:renalware, query], :patient_sex, "Sex")
9
- th Current Modality
9
+ th.col-width-tiny Current Modality
10
10
  th= sort_link([:renalware, query], :hospital_unit_name, "Unit")
11
11
  th.col-width-date= sort_link([:renalware, query], :performed_on, "Date")
12
12
  th.col-width-time= sort_link([:renalware, query], :start_time, "Start Time")
@@ -1,10 +1,12 @@
1
- article.events
2
- header
3
- h2 Events
4
- .supplemental
5
- span= "#{events.length} of #{patient.summary.events_count}"
6
- = link_to "View All",
7
- patient_events_path(patient),
8
- class: "button secondary"
1
+ - events = mdm.events
2
+ .columns.medium-12.large-12
3
+ article.events
4
+ header
5
+ h2 Events
6
+ .supplemental
7
+ span= "#{events.length} of #{mdm.patient.summary.events_count}"
8
+ = link_to "View All",
9
+ patient_events_path(mdm.patient),
10
+ class: "button secondary"
9
11
 
10
- = render "renalware/events/events/table", events: events
12
+ = render "renalware/events/events/table", events: events
@@ -13,3 +13,4 @@
13
13
  .row= render_if_exists "middle", mdm: mdm
14
14
  = render_if_exists "bottom", mdm: mdm
15
15
  .row= render "letters", mdm: mdm
16
+ .row= render "events", mdm: mdm
@@ -13,10 +13,11 @@
13
13
  .large-9.columns
14
14
  = field_set_tag "", class: "borderless" do
15
15
 
16
- = m.association :description,
17
- input_html: { id: "modality-description-select" },
18
- label_method: :name, value_method: :id,
19
- wrapper: :horizontal_medium
16
+ = m.input :description_id,
17
+ collection: Renalware::Modalities::Description.where(hidden: false),
18
+ input_html: { id: "modality-description-select" },
19
+ label_method: :name, value_method: :id,
20
+ wrapper: :horizontal_medium
20
21
 
21
22
  .hide-death
22
23
  = m.input :modal_change_type,
@@ -0,0 +1,2 @@
1
+ = within_admin_layout(title: "Bookmarked Patients") do
2
+ #bookmarks= render "renalware/dashboard/bookmarks/table", bookmarks: bookmarks
@@ -0,0 +1,9 @@
1
+ article
2
+ header
3
+ h2 Additional Information
4
+
5
+ dl.dl-horizontal.xlarge
6
+ dt Transplant status
7
+ dd
8
+ b= "#{mdm.current_transplant_status} "
9
+ = "since #{l(mdm.current_transplant_status&.started_on)}"
@@ -1,6 +1,8 @@
1
1
  .columns.medium-12.large-6
2
2
  - if mdm.current_regime
3
3
  = render "renalware/pd/regimes/current_regime", current_regime: mdm.current_regime
4
+ .columns.medium-12.large-6
5
+ = render "summary", mdm: mdm
4
6
  .columns.medium-12.large-6
5
7
  = render "prescriptions", mdm: mdm, with_esa: true
6
8
  .columns.medium-12.large-6
@@ -13,6 +13,3 @@
13
13
 
14
14
  .columns.medium-12.large-4
15
15
  = render "biopsies", mdm: mdm
16
- .row
17
- .columns.medium-12.large-12
18
- = render "events", events: mdm.events, patient: mdm.patient
@@ -9,7 +9,8 @@ Renalware.configure do |config|
9
9
  "Renalware::Modalities::ChangePatientModality" => [
10
10
  "Renalware::Medications::PatientListener",
11
11
  "Renalware::Letters::PatientListener",
12
- "Renalware::HD::PatientListener"
12
+ "Renalware::HD::PatientListener",
13
+ "Renalware::Patients::PatientListener"
13
14
  ],
14
15
  "Renalware::Letters::ApproveLetter" => [],
15
16
  "Renalware::Pathology::CreateObservationRequests" => []
@@ -34,6 +34,7 @@ en:
34
34
  microgram: microgram
35
35
  milligram: mg
36
36
  millilitre: ml
37
+ nanogram: ng
37
38
  puff: puff
38
39
  tab: tab
39
40
  tablet: tablet
data/config/routes.rb CHANGED
@@ -110,7 +110,7 @@ Renalware::Engine.routes.draw do
110
110
  as: :invocations
111
111
  end
112
112
 
113
- resources :bookmarks, controller: "patients/bookmarks", only: :destroy
113
+ resources :bookmarks, controller: "patients/bookmarks", only: [:destroy, :index]
114
114
  resource :dashboard, only: :show, controller: "dashboard/dashboards"
115
115
  resource :worryboard, only: :show, controller: "patients/worryboard"
116
116
 
@@ -0,0 +1,5 @@
1
+ class AddHiddenToModalityDescriptions < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :modality_descriptions, :hidden, :boolean, default: false, null: false
4
+ end
5
+ end
@@ -0,0 +1,17 @@
1
+ class UpdateAuditLettersAuthorsToVersion3 < ActiveRecord::Migration[5.1]
2
+ def change
3
+ update_view :reporting_main_authors_audit,
4
+ materialized: true,
5
+ version: 3,
6
+ revert_to_version: 2
7
+
8
+ reversible do |direction|
9
+ direction.up {
10
+ connection.execute("refresh materialized view reporting_main_authors_audit;")
11
+ }
12
+ direction.down {
13
+ connection.execute("refresh materialized view reporting_main_authors_audit;")
14
+ }
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,36 @@
1
+ WITH archived_clinic_letters AS (
2
+ SELECT
3
+ date_part('year' :: text, archive.created_at) AS year,
4
+ to_char(archive.created_at, 'Month' :: text) AS month,
5
+ letters.author_id,
6
+ date_part('day' :: text, (archive.created_at - (visits.date) :: timestamp without time zone)) AS days_to_archive
7
+ FROM ((letter_letters letters
8
+ JOIN letter_archives archive ON ((letters.id = archive.letter_id)))
9
+ JOIN clinic_visits visits ON ((visits.id = letters.event_id)))
10
+ WHERE (archive.created_at > (CURRENT_DATE - '3 mons' :: interval))
11
+ ), archived_clinic_letters_stats AS (
12
+ SELECT
13
+ --archived_clinic_letters.year,
14
+ --archived_clinic_letters.month,
15
+ archived_clinic_letters.author_id,
16
+ count(*) AS total_letters,
17
+ round(avg(archived_clinic_letters.days_to_archive)) AS avg_days_to_archive,
18
+ ((SELECT count(*) AS count
19
+ FROM archived_clinic_letters acl
20
+ WHERE ((acl.days_to_archive <= (7) :: double precision) AND
21
+ (acl.author_id = archived_clinic_letters.author_id)))) :: numeric AS archived_within_7_days
22
+ FROM archived_clinic_letters
23
+ GROUP BY archived_clinic_letters.author_id
24
+ )
25
+
26
+ SELECT
27
+ (((users.family_name) :: text || ', ' :: text) || (users.given_name) :: text) AS name,
28
+ stats.total_letters,
29
+ round(((stats.archived_within_7_days / (stats.total_letters) :: numeric) *
30
+ (100) :: numeric)) AS percent_archived_within_7_days,
31
+ stats.avg_days_to_archive,
32
+ users.id as user_id
33
+ FROM (archived_clinic_letters_stats stats
34
+ JOIN users ON ((stats.author_id = users.id)))
35
+ --GROUP BY (((users.family_name)::text || ', '::text) || (users.given_name)::text), users.id, stats.total_letters, stats.avg_days_to_archive, stats.archived_within_7_days
36
+ ORDER BY stats.total_letters desc
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Renalware
4
- VERSION = "2.0.38"
4
+ VERSION = "2.0.39"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: renalware-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.38
4
+ version: 2.0.39
5
5
  platform: ruby
6
6
  authors:
7
7
  - Airslie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-10 00:00:00.000000000 Z
11
+ date: 2018-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_type
@@ -1618,6 +1618,7 @@ files:
1618
1618
  - app/models/renalware/patients.rb
1619
1619
  - app/models/renalware/patients/alert.rb
1620
1620
  - app/models/renalware/patients/bookmark.rb
1621
+ - app/models/renalware/patients/clear_patient_ukrdc_data.rb
1621
1622
  - app/models/renalware/patients/ethnicity.rb
1622
1623
  - app/models/renalware/patients/idempotent_create_patient.rb
1623
1624
  - app/models/renalware/patients/language.rb
@@ -1625,6 +1626,7 @@ files:
1625
1626
  - app/models/renalware/patients/mdm_patients_query.rb
1626
1627
  - app/models/renalware/patients/message_param_parser.rb
1627
1628
  - app/models/renalware/patients/patient_hospital_identifiers.rb
1629
+ - app/models/renalware/patients/patient_listener.rb
1628
1630
  - app/models/renalware/patients/patient_search.rb
1629
1631
  - app/models/renalware/patients/practice.rb
1630
1632
  - app/models/renalware/patients/practice_membership.rb
@@ -2300,7 +2302,6 @@ files:
2300
2302
  - app/views/renalware/letters/shared/_electronic_cc_type_tabs.html.slim
2301
2303
  - app/views/renalware/low_clearance/dashboards/_page_actions.html.slim
2302
2304
  - app/views/renalware/low_clearance/dashboards/show.html.slim
2303
- - app/views/renalware/low_clearance/mdm/_bottom.html.slim
2304
2305
  - app/views/renalware/low_clearance/mdm/_low_clearance_profile.html.slim
2305
2306
  - app/views/renalware/low_clearance/mdm/_top.html.slim
2306
2307
  - app/views/renalware/low_clearance/mdm_patients/_filters.html.slim
@@ -2433,6 +2434,7 @@ files:
2433
2434
  - app/views/renalware/patients/alerts/new.js.erb
2434
2435
  - app/views/renalware/patients/bookmarks/_delete.html.slim
2435
2436
  - app/views/renalware/patients/bookmarks/_new.html.slim
2437
+ - app/views/renalware/patients/bookmarks/index.html.slim
2436
2438
  - app/views/renalware/patients/clinical_summaries/show.html.slim
2437
2439
  - app/views/renalware/patients/patients/_form.html.slim
2438
2440
  - app/views/renalware/patients/patients/_patient.html.slim
@@ -2517,6 +2519,7 @@ files:
2517
2519
  - app/views/renalware/pd/infection_organisms/index.js.erb
2518
2520
  - app/views/renalware/pd/infection_organisms/new.js.erb
2519
2521
  - app/views/renalware/pd/infection_organisms/update.js.erb
2522
+ - app/views/renalware/pd/mdm/_summary.html.slim
2520
2523
  - app/views/renalware/pd/mdm/_top.html.slim
2521
2524
  - app/views/renalware/pd/peritonitis_episodes/_details.html.slim
2522
2525
  - app/views/renalware/pd/peritonitis_episodes/_fields.html.slim
@@ -3278,6 +3281,8 @@ files:
3278
3281
  - db/migrate/20180605141806_add_external_id_to_research_study_participants.rb
3279
3282
  - db/migrate/20180605175211_add_application_url_to_research_studies.rb
3280
3283
  - db/migrate/20180628132323_add_letter_date_indexes.rb
3284
+ - db/migrate/20180712143314_add_hidden_to_modality_descriptions.rb
3285
+ - db/migrate/20180718172750_update_audit_letters_authors_to_version_3.rb
3281
3286
  - db/seeds.rb
3282
3287
  - db/seeds/default/accesses/access_pd_catheter_insertion_techniques.csv
3283
3288
  - db/seeds/default/accesses/access_pd_catheter_insertion_techniques.rb
@@ -3385,6 +3390,7 @@ files:
3385
3390
  - db/views/reporting_hd_overall_audit_v07.sql
3386
3391
  - db/views/reporting_main_authors_audit_v01.sql
3387
3392
  - db/views/reporting_main_authors_audit_v02.sql
3393
+ - db/views/reporting_main_authors_audit_v03.sql
3388
3394
  - db/views/reporting_pd_audit_v01.sql
3389
3395
  - lib/age_calculator.rb
3390
3396
  - lib/array_stringifier.rb
@@ -1,3 +0,0 @@
1
- .row
2
- .columns.small-12
3
- = render "events", events: mdm.events, patient: mdm.patient