renalware-core 2.0.158 → 2.0.159
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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/renalware/components/configuration.js +20 -0
- data/app/assets/javascripts/renalware/components/{dialogs.js.erb → dialogs.js} +2 -5
- data/app/assets/javascripts/renalware/components/{feed_only_inputs.js.erb → feed_only_inputs.js} +4 -4
- data/app/assets/javascripts/renalware/{core.js.erb → core.js} +0 -5
- data/app/assets/javascripts/renalware/rollup_compiled.css +42050 -42050
- data/app/assets/stylesheets/renalware/modules/_clinical.scss +13 -0
- data/app/components/renalware/admissions/active_consult_alert_component.html.slim +1 -1
- data/app/components/renalware/pd/pet_results_component.html.slim +1 -3
- data/app/controllers/renalware/pd/pet_results_controller.rb +1 -1
- data/app/presenters/renalware/user_session_presenter.rb +1 -3
- data/app/views/renalware/letters/mailshots/mailshots/_form.html.slim +25 -21
- data/app/views/renalware/system/view_metadata/_columns_table.html.slim +2 -2
- data/db/migrate/20201105153422_update_medication_current_prescriptions_view.rb +7 -0
- data/db/migrate/20201112152752_update_pd_mdm_patients_view1.rb +7 -0
- data/db/views/medication_current_prescriptions_v01.sql +2 -1
- data/db/views/medication_current_prescriptions_v02.sql +30 -0
- data/db/views/pd_mdm_patients_v03.sql +50 -0
- data/db/views/reporting_anaemia_audit_v01.sql +0 -2
- data/lib/renalware/configuration.rb +0 -5
- data/lib/renalware/version_number.rb +1 -1
- metadata +14 -11
- data/app/assets/javascripts/renalware/components/reporting.js.erb +0 -0
- data/app/assets/javascripts/renalware/components/session_timeout_redirect.js.erb +0 -37
@@ -186,6 +186,19 @@ article.clinical-allergies {
|
|
186
186
|
}
|
187
187
|
}
|
188
188
|
|
189
|
+
&.active-consult {
|
190
|
+
background-color: $nhs-pink;
|
191
|
+
|
192
|
+
&:hover {
|
193
|
+
background-color: darken($nhs-pink, 7);
|
194
|
+
}
|
195
|
+
|
196
|
+
.title a,
|
197
|
+
i:before {
|
198
|
+
color: $white;
|
199
|
+
}
|
200
|
+
}
|
201
|
+
|
189
202
|
&.research-study-participant {
|
190
203
|
background-color: darken($nhs-green, 3);
|
191
204
|
color: $white;
|
@@ -4,9 +4,6 @@
|
|
4
4
|
header
|
5
5
|
h2= title
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
/.flex.flex-row-reverse
|
10
7
|
.flex.justify-end
|
11
8
|
|
12
9
|
.inline-flex
|
@@ -22,6 +19,7 @@
|
|
22
19
|
|
23
20
|
= link_to "Show all", renalware.patient_pd_pet_results_path(patient), remote: true, class: "float-none button flex-initial secondary"
|
24
21
|
= link_to "Add", renalware.new_patient_pd_pet_result_path(patient), class: "float-none button flex-initial"
|
22
|
+
|
25
23
|
div#pet-results-table data-target="tabs.panel"
|
26
24
|
|
27
25
|
= render "renalware/pd/pet_results/table",
|
@@ -21,8 +21,6 @@ module Renalware
|
|
21
21
|
# data-session-timeout="3600">
|
22
22
|
# rubocop:disable Metrics/MethodLength
|
23
23
|
def self.session_controller_data_attributes
|
24
|
-
return {} if Renalware.config.session_expiry_use_previous_mechansim
|
25
|
-
|
26
24
|
urls = Renalware::Engine.routes.url_helpers
|
27
25
|
{
|
28
26
|
data: {
|
@@ -39,6 +37,6 @@ module Renalware
|
|
39
37
|
}
|
40
38
|
}
|
41
39
|
end
|
40
|
+
# rubocop:enable Metrics/MethodLength
|
42
41
|
end
|
43
|
-
# rubocop:enable Metrics/MethodLength
|
44
42
|
end
|
@@ -38,24 +38,28 @@
|
|
38
38
|
br
|
39
39
|
.panel
|
40
40
|
h2
|
41
|
-
i.fas.fa-info-circle
|
42
|
-
span
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
41
|
+
i.fas.fa-info-circle
|
42
|
+
span.pl-3 Help
|
43
|
+
|
44
|
+
markdown:
|
45
|
+
The list of patients to include in a mailshot it determined by the SQL View chosen above.
|
46
|
+
It is intended that a systems or database administrator create this view for you in the
|
47
|
+
renalware database. The view should have one column called 'patient_id' and return the ids
|
48
|
+
of all the patients you want to send this letter to.
|
49
|
+
|
50
|
+
You should ideally create the view in the hospital's
|
51
|
+
own postgres schema (eg 'renalware_kch' in the case of Kings College Hospital) in order to
|
52
|
+
indicate your view is hospital-specific.
|
53
|
+
|
54
|
+
**Note that in order for your view to appear in the dropdown above, its name must start
|
55
|
+
with `letter_mailshot_`**
|
56
|
+
|
57
|
+
Here is a (somewhat pointless) example of a compatible SQL view definition:
|
58
|
+
|
59
|
+
```
|
60
|
+
CREATE OR REPLACE VIEW
|
61
|
+
renalware_kch.letter_mailshot_patients_where_surname_starts_with_r AS
|
62
|
+
SELECT id as patient_id
|
63
|
+
FROM patients
|
64
|
+
WHERE family_name like 'R%';
|
65
|
+
```
|
@@ -28,9 +28,9 @@ table.sortables(style="list-style-type: none;")
|
|
28
28
|
td.border-0
|
29
29
|
code= col.code
|
30
30
|
td.text-center.border-0
|
31
|
-
input.m-0(type="checkbox" name="view_metadata[columns][][hidden]" checked=col.hidden)
|
31
|
+
input.m-0(type="checkbox" name="view_metadata[columns][][hidden]" checked=col.hidden style="margin:0")
|
32
32
|
td.border-0
|
33
|
-
input.m-0(type="text" name="view_metadata[columns][][name]" value=col.name)
|
33
|
+
input.m-0(type="text" name="view_metadata[columns][][name]" value=col.name style="margin:0")
|
34
34
|
td.border-0
|
35
35
|
select.m-0(name="view_metadata[columns][][width]")
|
36
36
|
option(value="")
|
@@ -0,0 +1,30 @@
|
|
1
|
+
SELECT distinct on (mp.patient_id, mp.id)
|
2
|
+
mp.id,
|
3
|
+
mp.patient_id,
|
4
|
+
mp.drug_id,
|
5
|
+
mp.treatable_type,
|
6
|
+
mp.treatable_id,
|
7
|
+
mp.dose_amount,
|
8
|
+
mp.dose_unit,
|
9
|
+
mp.medication_route_id,
|
10
|
+
mp.route_description,
|
11
|
+
mp.frequency,
|
12
|
+
mp.notes,
|
13
|
+
mp.prescribed_on,
|
14
|
+
mp.provider,
|
15
|
+
mp.created_at,
|
16
|
+
mp.updated_at,
|
17
|
+
mp.created_by_id,
|
18
|
+
mp.updated_by_id,
|
19
|
+
mp.administer_on_hd,
|
20
|
+
mp.last_delivery_date,
|
21
|
+
drugs.name as drug_name,
|
22
|
+
drug_types.code AS drug_type_code,
|
23
|
+
drug_types.name AS drug_type_name
|
24
|
+
FROM medication_prescriptions mp
|
25
|
+
left outer join medication_prescription_terminations mpt ON mpt.prescription_id = mp.id
|
26
|
+
inner JOIN drugs ON drugs.id = mp.drug_id
|
27
|
+
left outer join drug_types_drugs ON drug_types_drugs.drug_id = drugs.id
|
28
|
+
left outer join drug_types ON drug_types_drugs.drug_type_id = drug_types.id
|
29
|
+
where (mpt.terminated_on IS NULL OR mpt.terminated_on > current_date)
|
30
|
+
order by mp.patient_id asc, mp.id asc;
|
@@ -0,0 +1,50 @@
|
|
1
|
+
select
|
2
|
+
distinct on (P.id)
|
3
|
+
P.id,
|
4
|
+
P.secure_id,
|
5
|
+
(upper(P.family_name) || ', ' || P.given_name) as "patient_name",
|
6
|
+
P.nhs_number,
|
7
|
+
P.local_patient_id as hospital_numbers,
|
8
|
+
P.sex,
|
9
|
+
P.born_on,
|
10
|
+
date_part('year', age(P.born_on)) as "age",
|
11
|
+
RPROF.esrf_on,
|
12
|
+
Mx.modality_name,
|
13
|
+
case
|
14
|
+
when pw.id > 0 then true
|
15
|
+
else false
|
16
|
+
end as on_worryboard,
|
17
|
+
TXRSD."name" tx_status,
|
18
|
+
case pr.type
|
19
|
+
when 'Renalware::PD::APDRegime' then 'APD'
|
20
|
+
when 'Renalware::PD::CAPDRegime' then 'CAPD'
|
21
|
+
end as pd_type,
|
22
|
+
(select
|
23
|
+
date(date_time)
|
24
|
+
from events e
|
25
|
+
inner join event_types et on et.id = e.event_type_id
|
26
|
+
where et.slug = 'pd_line_changes'
|
27
|
+
and e.patient_id = P.id
|
28
|
+
order by date_time desc limit 1) as last_line_change_date,
|
29
|
+
pesi.diagnosis_date as last_esi_date,
|
30
|
+
ppe.diagnosis_date as last_peritonitis_date,
|
31
|
+
(select bmi from clinic_visits cv2 where cv2.patient_id = P.id and bmi > 0 order by date desc limit 1) as bmi,
|
32
|
+
PA.values -> 'HGB' ->> 'result' as hgb,
|
33
|
+
(PA.values -> 'HGB' ->> 'observed_at')::date as hgb_date,
|
34
|
+
PA.values -> 'URE' ->> 'result' as ure,
|
35
|
+
(PA.values -> 'URE' ->> 'observed_at')::date as ure_date,
|
36
|
+
PA.values -> 'CRE' ->> 'result' as cre,
|
37
|
+
(PA.values -> 'CRE' ->> 'observed_at')::date as cre_date,
|
38
|
+
PA.values -> 'EGFR' ->> 'result' as egfr
|
39
|
+
from renalware.patients P
|
40
|
+
left outer join patient_worries pw on pw.patient_id = p.id
|
41
|
+
left outer join renalware.pathology_current_observation_sets PA on PA.patient_id = P.id
|
42
|
+
left outer join renalware.renal_profiles RPROF on RPROF.patient_id = P.id
|
43
|
+
left outer join renalware.transplant_registrations TXR on TXR.patient_id = P.id
|
44
|
+
left outer join renalware.transplant_registration_statuses TXRS on TXRS.registration_id = TXR.id AND TXRS.terminated_on IS NULL
|
45
|
+
left outer join renalware.transplant_registration_status_descriptions TXRSD on TXRSD.id = TXRS.description_id
|
46
|
+
left outer join renalware.pd_regimes pr on pr.patient_id = P.id and pr.start_date <= current_date and pr.end_date is null
|
47
|
+
left outer join renalware.pd_exit_site_infections pesi on pesi.patient_id = P.id
|
48
|
+
left outer join pd_peritonitis_episodes ppe on ppe.patient_id = P.id
|
49
|
+
inner join renalware.patient_current_modalities Mx on Mx.patient_id = P.id and Mx.modality_code = 'pd'
|
50
|
+
order by P.id, pr.start_date desc, pr.created_at desc, pesi.diagnosis_date desc, ppe.diagnosis_date desc;
|
@@ -14,7 +14,6 @@
|
|
14
14
|
# To access configuration settings use e.g.
|
15
15
|
# Renalware.config.x
|
16
16
|
#
|
17
|
-
# rubocop:disable Metrics/ClassLength
|
18
17
|
module Renalware
|
19
18
|
class Configuration
|
20
19
|
include ActiveSupport::Configurable
|
@@ -37,9 +36,6 @@ module Renalware
|
|
37
36
|
config_accessor(:patient_hospital_identifiers) { {} }
|
38
37
|
config_accessor(:session_timeout_polling_frequency) { 1.minute }
|
39
38
|
config_accessor(:session_register_user_user_activity_after) { 2.minutes }
|
40
|
-
config_accessor(:session_expiry_use_previous_mechansim) {
|
41
|
-
ENV["SESSION_EXPIRY_USE_PREVIOUS_MECHANSIM"] == "true"
|
42
|
-
}
|
43
39
|
config_accessor(:duration_of_last_url_memory_after_session_expiry) { 30.minutes }
|
44
40
|
config_accessor(:broadcast_subscription_map) { {} }
|
45
41
|
config_accessor(:include_sunday_on_hd_diaries) { false }
|
@@ -161,4 +157,3 @@ module Renalware
|
|
161
157
|
yield config
|
162
158
|
end
|
163
159
|
end
|
164
|
-
# rubocop:enable Metrics/ClassLength
|
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.
|
4
|
+
version: 2.0.159
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Airslie
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord-import
|
@@ -854,14 +854,14 @@ dependencies:
|
|
854
854
|
requirements:
|
855
855
|
- - "~>"
|
856
856
|
- !ruby/object:Gem::Version
|
857
|
-
version: 2.0
|
857
|
+
version: '2.0'
|
858
858
|
type: :runtime
|
859
859
|
prerelease: false
|
860
860
|
version_requirements: !ruby/object:Gem::Requirement
|
861
861
|
requirements:
|
862
862
|
- - "~>"
|
863
863
|
- !ruby/object:Gem::Version
|
864
|
-
version: 2.0
|
864
|
+
version: '2.0'
|
865
865
|
- !ruby/object:Gem::Dependency
|
866
866
|
name: slim-rails
|
867
867
|
requirement: !ruby/object:Gem::Requirement
|
@@ -896,14 +896,14 @@ dependencies:
|
|
896
896
|
requirements:
|
897
897
|
- - '='
|
898
898
|
- !ruby/object:Gem::Version
|
899
|
-
version: 0.
|
899
|
+
version: 0.8.0
|
900
900
|
type: :runtime
|
901
901
|
prerelease: false
|
902
902
|
version_requirements: !ruby/object:Gem::Requirement
|
903
903
|
requirements:
|
904
904
|
- - '='
|
905
905
|
- !ruby/object:Gem::Version
|
906
|
-
version: 0.
|
906
|
+
version: 0.8.0
|
907
907
|
- !ruby/object:Gem::Dependency
|
908
908
|
name: uglifier
|
909
909
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1105,11 +1105,12 @@ files:
|
|
1105
1105
|
- app/assets/javascripts/renalware/components/behaviours.js
|
1106
1106
|
- app/assets/javascripts/renalware/components/clipboard_setup.js
|
1107
1107
|
- app/assets/javascripts/renalware/components/clockpicker.js
|
1108
|
+
- app/assets/javascripts/renalware/components/configuration.js
|
1108
1109
|
- app/assets/javascripts/renalware/components/contacts.js
|
1109
|
-
- app/assets/javascripts/renalware/components/dialogs.js
|
1110
|
+
- app/assets/javascripts/renalware/components/dialogs.js
|
1110
1111
|
- app/assets/javascripts/renalware/components/drugs.js
|
1111
1112
|
- app/assets/javascripts/renalware/components/events.js
|
1112
|
-
- app/assets/javascripts/renalware/components/feed_only_inputs.js
|
1113
|
+
- app/assets/javascripts/renalware/components/feed_only_inputs.js
|
1113
1114
|
- app/assets/javascripts/renalware/components/feeds.js
|
1114
1115
|
- app/assets/javascripts/renalware/components/forms.js
|
1115
1116
|
- app/assets/javascripts/renalware/components/full_screen.js
|
@@ -1132,16 +1133,14 @@ files:
|
|
1132
1133
|
- app/assets/javascripts/renalware/components/primary_care_physicians.js
|
1133
1134
|
- app/assets/javascripts/renalware/components/problems.js
|
1134
1135
|
- app/assets/javascripts/renalware/components/renal.js
|
1135
|
-
- app/assets/javascripts/renalware/components/reporting.js.erb
|
1136
1136
|
- app/assets/javascripts/renalware/components/searchables.js
|
1137
1137
|
- app/assets/javascripts/renalware/components/select2-ajax-search.js
|
1138
|
-
- app/assets/javascripts/renalware/components/session_timeout_redirect.js.erb
|
1139
1138
|
- app/assets/javascripts/renalware/components/sortable.js
|
1140
1139
|
- app/assets/javascripts/renalware/components/table.js
|
1141
1140
|
- app/assets/javascripts/renalware/components/tabs.js
|
1142
1141
|
- app/assets/javascripts/renalware/components/toggler.js
|
1143
1142
|
- app/assets/javascripts/renalware/components/transplants.js
|
1144
|
-
- app/assets/javascripts/renalware/core.js
|
1143
|
+
- app/assets/javascripts/renalware/core.js
|
1145
1144
|
- app/assets/javascripts/renalware/rollup_compiled.css
|
1146
1145
|
- app/assets/javascripts/renalware/rollup_compiled.js
|
1147
1146
|
- app/assets/pdf/blank_page.pdf
|
@@ -4071,6 +4070,8 @@ files:
|
|
4071
4070
|
- db/migrate/20201021153832_update_supportive_care_mdm_patients_view.rb
|
4072
4071
|
- db/migrate/20201021154809_update_transplant_mdm_patients_view.rb
|
4073
4072
|
- db/migrate/20201023092859_remove_unused_indexes.rb
|
4073
|
+
- db/migrate/20201105153422_update_medication_current_prescriptions_view.rb
|
4074
|
+
- db/migrate/20201112152752_update_pd_mdm_patients_view1.rb
|
4074
4075
|
- db/seeds.rb
|
4075
4076
|
- db/seeds/default/accesses/access_pd_catheter_insertion_techniques.csv
|
4076
4077
|
- db/seeds/default/accesses/access_pd_catheter_insertion_techniques.rb
|
@@ -4176,6 +4177,7 @@ files:
|
|
4176
4177
|
- db/views/low_clearance_mdm_patients_v01.sql
|
4177
4178
|
- db/views/low_clearance_mdm_patients_v02.sql
|
4178
4179
|
- db/views/medication_current_prescriptions_v01.sql
|
4180
|
+
- db/views/medication_current_prescriptions_v02.sql
|
4179
4181
|
- db/views/pathology_current_key_observation_sets_v01.sql
|
4180
4182
|
- db/views/pathology_current_key_observation_sets_v02.sql
|
4181
4183
|
- db/views/pathology_current_observations_v01.sql
|
@@ -4190,6 +4192,7 @@ files:
|
|
4190
4192
|
- db/views/patient_summaries_v06.sql
|
4191
4193
|
- db/views/pd_mdm_patients_v01.sql
|
4192
4194
|
- db/views/pd_mdm_patients_v02.sql
|
4195
|
+
- db/views/pd_mdm_patients_v03.sql
|
4193
4196
|
- db/views/pd_regime_for_modalities_v01.sql
|
4194
4197
|
- db/views/reporting_anaemia_audit_v01.sql
|
4195
4198
|
- db/views/reporting_bone_audit_v01.sql
|
File without changes
|
@@ -1,37 +0,0 @@
|
|
1
|
-
// Create a timer that will poll to see if the user's session is still valid.
|
2
|
-
// If it isn't, the server returns a 401 unauthorised causing a redirect the login page.
|
3
|
-
// Note that we could in the future display a message letting them know their session
|
4
|
-
// will expired in X seconds. The controller action we hit here could be expanded to
|
5
|
-
// to render some js that would insert than into the page.
|
6
|
-
// Note we don't want to poll if we are sat on the login page anyway. For one thing on Heroku it
|
7
|
-
// would prevent a dyno sleeping, but its also a waste of resources.
|
8
|
-
//
|
9
|
-
// Note this mechanism has been superceded by the session_timeout.js stimulus controller.
|
10
|
-
//
|
11
|
-
|
12
|
-
<% if Renalware.config.session_expiry_use_previous_mechansim %>
|
13
|
-
$(document).ready(function() {
|
14
|
-
var login_path ="<%= Renalware::Engine.routes.url_helpers.new_user_session_path %>";
|
15
|
-
var defaultPollFreq = <%= Renalware.config.session_timeout_polling_frequency.to_i %>;
|
16
|
-
var frequency_s = defaultPollFreq;
|
17
|
-
|
18
|
-
// This is a global window function so that we can call it directly from capybara tests to
|
19
|
-
// bypass having to wait for the session polling interval to tick over.
|
20
|
-
window.sessionTimeoutCheck = function(){
|
21
|
-
if(window.location.pathname != login_path) {
|
22
|
-
Rails.ajax({
|
23
|
-
type: "GET",
|
24
|
-
url: "<%= Renalware::Engine.routes.url_helpers.check_session_expired_path %>",
|
25
|
-
dataType: "html",
|
26
|
-
error: function(responseText, status, xhr) {
|
27
|
-
if (xhr.status == 401) {
|
28
|
-
window.location.reload()
|
29
|
-
}
|
30
|
-
}
|
31
|
-
});
|
32
|
-
}
|
33
|
-
};
|
34
|
-
|
35
|
-
setInterval(window.sessionTimeoutCheck, (frequency_s * 1000));
|
36
|
-
});
|
37
|
-
<% end %>
|