renalware-core 2.0.158 → 2.0.159
Sign up to get free protection for your applications and to get access to all the features.
- 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 %>
|