renalware-core 2.0.38 → 2.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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