renalware-core 2.0.0.pre.beta7 → 2.0.0.pre.beta8
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/searchables.js +3 -0
- data/app/assets/javascripts/renalware/select2-ajax-search.js +86 -0
- data/app/assets/javascripts/renalware/sortable.js +12 -1
- data/app/assets/stylesheets/renalware/base/_variables.scss +7 -1
- data/app/assets/stylesheets/renalware/modules/_admissions.scss +39 -0
- data/app/assets/stylesheets/renalware/modules/_letters.scss +12 -0
- data/app/assets/stylesheets/renalware/modules/_messaging.scss +0 -4
- data/app/assets/stylesheets/renalware/partials/_animations.scss +12 -0
- data/app/assets/stylesheets/renalware/partials/_modal_window.scss +44 -0
- data/app/assets/stylesheets/renalware/partials/_tables.scss +6 -0
- data/app/controllers/renalware/admissions/requests_controller.rb +100 -0
- data/app/controllers/renalware/devise/passwords_controller.rb +6 -0
- data/app/controllers/renalware/letters/electronic_receipts_controller.rb +81 -0
- data/app/controllers/renalware/letters/letters_controller.rb +18 -3
- data/app/controllers/renalware/messaging/internal/messages_controller.rb +75 -0
- data/app/controllers/renalware/messaging/internal/receipts_controller.rb +74 -0
- data/app/controllers/renalware/patients/patients_controller.rb +11 -1
- data/app/controllers/renalware/session_timeout_controller.rb +1 -1
- data/app/documents/renalware/hd/profile_document.rb +1 -1
- data/app/helpers/renalware/application_helper.rb +5 -0
- data/app/helpers/renalware/xhr_helper.rb +7 -0
- data/app/models/concerns/renalware/deviseable.rb +1 -1
- data/app/models/renalware/admissions.rb +7 -0
- data/app/models/renalware/admissions/request.rb +23 -0
- data/app/models/renalware/admissions/request_reason.rb +11 -0
- data/app/models/renalware/feeds/message_processor.rb +2 -2
- data/app/models/renalware/feeds/persist_message.rb +2 -0
- data/app/models/renalware/hd/sessions/auditable_session.rb +4 -0
- data/app/models/renalware/hd/sessions/auditable_session_collection.rb +5 -0
- data/app/models/renalware/hd/update_rolling_patient_statistics.rb +2 -2
- data/app/models/renalware/letters/electronic_receipt.rb +35 -0
- data/app/models/renalware/letters/electronic_recipient_options.rb +78 -0
- data/app/models/renalware/letters/letter.rb +4 -0
- data/app/models/renalware/letters/letter_factory.rb +21 -1
- data/app/models/renalware/messaging.rb +21 -5
- data/app/models/renalware/messaging/internal/author.rb +11 -0
- data/app/models/renalware/messaging/internal/message.rb +15 -0
- data/app/models/renalware/messaging/internal/message_factory.rb +20 -0
- data/app/models/renalware/messaging/internal/message_form.rb +36 -0
- data/app/models/renalware/messaging/internal/message_form_builder.rb +52 -0
- data/app/models/renalware/messaging/internal/receipt.rb +26 -0
- data/app/models/renalware/messaging/internal/recipient.rb +12 -0
- data/app/models/renalware/messaging/internal/recipient_options.rb +87 -0
- data/app/models/renalware/messaging/internal/send_message.rb +24 -0
- data/app/models/renalware/messaging/message.rb +4 -3
- data/app/models/renalware/pathology.rb +1 -1
- data/app/models/renalware/pathology/message_param_parser.rb +2 -0
- data/app/models/renalware/patients/search_filter.rb +32 -0
- data/app/models/renalware/patients/search_form.rb +17 -0
- data/app/models/renalware/patients/search_query.rb +20 -21
- data/app/models/renalware/patients/summary.rb +1 -1
- data/app/models/renalware/user.rb +18 -2
- data/app/policies/renalware/admissions/request_policy.rb +8 -0
- data/app/policies/renalware/letters/electronic_receipt_policy.rb +23 -0
- data/app/policies/renalware/messaging/{message_policy.rb → internal/message_policy.rb} +2 -3
- data/app/policies/renalware/messaging/internal/receipt_policy.rb +25 -0
- data/app/presenters/renalware/dashboard/dashboard_presenter.rb +9 -2
- data/app/presenters/renalware/hd/station_presenter.rb +0 -1
- data/app/presenters/renalware/letters/electronic_receipt_presenter.rb +15 -0
- data/app/presenters/renalware/letters/letter_presenter.rb +5 -0
- data/app/presenters/renalware/mdm_presenter.rb +2 -0
- data/app/presenters/renalware/messaging/internal/message_presenter.rb +21 -0
- data/app/presenters/renalware/messaging/internal/receipt_presenter.rb +13 -0
- data/app/presenters/renalware/pathology/observation_presenter.rb +4 -0
- data/app/presenters/renalware/ukrdc/patient_presenter.rb +5 -0
- data/app/views/renalware/admissions/requests/_create_request_link.html.slim +10 -0
- data/app/views/renalware/admissions/requests/_form.html.slim +31 -0
- data/app/views/renalware/admissions/requests/_modal_dialog_placeholder.html.slim +2 -0
- data/app/views/renalware/admissions/requests/_request.html.slim +34 -0
- data/app/views/renalware/admissions/requests/_table.html.slim +19 -0
- data/app/views/renalware/admissions/requests/create.js.erb +3 -0
- data/app/views/renalware/admissions/requests/destroy.js.erb +3 -0
- data/app/views/renalware/admissions/requests/edit.html.slim +4 -0
- data/app/views/renalware/admissions/requests/edit.js.erb +4 -0
- data/app/views/renalware/admissions/requests/index.html.slim +3 -0
- data/app/views/renalware/admissions/requests/new.html.slim +4 -0
- data/app/views/renalware/admissions/requests/new.js.erb +4 -0
- data/app/views/renalware/admissions/requests/update.js.erb +9 -0
- data/app/views/renalware/api/ukrdc/patients/_allergies.xml.builder +1 -1
- data/app/views/renalware/api/ukrdc/patients/_clinical_relationships.xml.builder +0 -1
- data/app/views/renalware/api/ukrdc/patients/_lab_orders.xml.builder +7 -2
- data/app/views/renalware/api/ukrdc/patients/_observations.xml.builder +1 -1
- data/app/views/renalware/api/ukrdc/patients/_patient.xml.builder +2 -0
- data/app/views/renalware/api/ukrdc/patients/_sending_facility.xml.builder +1 -1
- data/app/views/renalware/api/ukrdc/patients/lab_orders/_lab_order.xml.builder +46 -0
- data/app/views/renalware/api/ukrdc/patients/lab_orders/_result_item.xml.builder +14 -0
- data/app/views/renalware/clinical/allergies/_mini.html.slim +1 -0
- data/app/views/renalware/dashboard/dashboards/_content.html.slim +6 -2
- data/app/views/renalware/dashboard/letters/_letter.html.slim +7 -7
- data/app/views/renalware/dashboard/letters/_table.html.slim +2 -2
- data/app/views/renalware/devise/passwords/edit.html.erb +27 -0
- data/app/views/renalware/devise/passwords/new.html.erb +18 -0
- data/app/views/renalware/devise/registrations/new.html.slim +25 -0
- data/app/views/renalware/letters/electronic_receipts/_table.html.slim +45 -0
- data/app/views/renalware/letters/electronic_receipts/mark_as_read.js.erb +6 -0
- data/app/views/renalware/letters/electronic_receipts/read.html.slim +5 -0
- data/app/views/renalware/letters/electronic_receipts/sent.html.slim +40 -0
- data/app/views/renalware/letters/electronic_receipts/unread.html.slim +5 -0
- data/app/views/renalware/letters/formatted_letters/_letter.html.slim +12 -1
- data/app/views/renalware/letters/letters/_actions.html.slim +1 -1
- data/app/views/renalware/letters/letters/_electronic_ccs.html.slim +16 -0
- data/app/views/renalware/letters/letters/_form.html.slim +8 -3
- data/app/views/renalware/letters/letters/edit.html.slim +7 -1
- data/app/views/renalware/letters/letters/new.html.slim +6 -1
- data/app/views/renalware/letters/shared/_electronic_cc_type_tabs.html.slim +7 -0
- data/app/views/renalware/messaging/{messages → internal/messages}/_form.html.slim +2 -1
- data/app/views/renalware/messaging/{messages → internal/messages}/_modal_dialog_placeholder.html.slim +0 -0
- data/app/views/renalware/messaging/{messages → internal/messages}/_send_message_link.html.slim +1 -1
- data/app/views/renalware/messaging/{messages → internal/messages}/_send_reply_link.html.slim +3 -3
- data/app/views/renalware/messaging/{messages → internal/messages}/create.js.erb +0 -0
- data/app/views/renalware/messaging/{messages → internal/messages}/new.html.slim +0 -0
- data/app/views/renalware/messaging/{messages → internal/messages}/new.js.erb +0 -0
- data/app/views/renalware/messaging/{receipts → internal/receipts}/_receipt.html.slim +2 -2
- data/app/views/renalware/messaging/{messages/_message.html.slim → internal/receipts/_sent_receipt.html.slim} +2 -1
- data/app/views/renalware/messaging/internal/receipts/_sent_table.html.slim +12 -0
- data/app/views/renalware/messaging/{receipts → internal/receipts}/_table.html.slim +2 -2
- data/app/views/renalware/messaging/{receipts → internal/receipts}/mark_as_read.js.erb +0 -0
- data/app/views/renalware/messaging/{receipts → internal/receipts}/read.html.slim +2 -1
- data/app/views/renalware/messaging/internal/receipts/sent.html.slim +7 -0
- data/app/views/renalware/messaging/{receipts → internal/receipts}/unread.html.slim +2 -1
- data/app/views/renalware/messaging/shared/_messages_type_tabs.html.slim +3 -3
- data/app/views/renalware/navigation/_main.html.slim +1 -1
- data/app/views/renalware/navigation/_patients_admin.html.slim +2 -0
- data/app/views/renalware/navigation/_user.html.slim +2 -1
- data/app/views/renalware/patients/_search_form.html.slim +12 -0
- data/app/views/renalware/patients/side_menu/_actions.html.slim +6 -2
- data/app/views/renalware/renal/profiles/_form.html.slim +0 -1
- data/app/views/renalware/renal/profiles/_mini.html.slim +1 -0
- data/app/views/renalware/{snippets/snippets → shared}/_modal_close_link.html.slim +0 -0
- data/app/views/renalware/snippets/snippets/_list.html.slim +1 -1
- data/app/views/renalware/transplants/donations/_form.html.slim +17 -16
- data/config/initializers/simple_form_foundation.rb +0 -1
- data/config/locales/renalware/admissions/requests.en.yml +12 -0
- data/config/locales/renalware/letters/contact.en.yml +3 -0
- data/config/locales/renalware/messaging/internal/messages.en.yml +33 -0
- data/config/locales/renalware/patients/search_form.en.yml +5 -0
- data/config/locales/renalware/patients/side_menu.en.yml +1 -0
- data/config/routes.rb +32 -10
- data/db/migrate/20170908155011_add_shortfall_column_to_hd_patient_statistics.rb +7 -0
- data/db/migrate/20170908160250_update_hd_overall_audit_to_version4.rb +8 -0
- data/db/migrate/20170911133224_add_type_to_messaging_messages.rb +16 -0
- data/db/migrate/20170912092135_create_letters_electronic_receipts.rb +11 -0
- data/db/migrate/20170920113628_create_admissions_requests.rb +31 -0
- data/db/seeds/default/reporting/audits.yml +1 -0
- data/db/views/reporting_hd_overall_audit_v04.sql +13 -0
- data/lib/renalware/version.rb +1 -1
- data/lib/subscription_registry.rb +1 -1
- data/spec/factories/accesses/plans.rb +2 -3
- data/spec/factories/accesses/profiles.rb +1 -2
- data/spec/factories/admissions/request_reasons.rb +8 -0
- data/spec/factories/admissions/requests.rb +9 -0
- data/spec/factories/clinical/body_compositions.rb +2 -5
- data/spec/factories/clinical/dry_weights.rb +2 -3
- data/spec/factories/clinics/clinic_visits.rb +2 -3
- data/spec/factories/directory/people.rb +1 -2
- data/spec/factories/events/events.rb +1 -2
- data/spec/factories/hd/preference_sets.rb +1 -2
- data/spec/factories/hd/profiles.rb +2 -3
- data/spec/factories/hd/sessions.rb +4 -3
- data/spec/factories/letters/electronic_receipts.rb +6 -0
- data/spec/factories/letters/letters.rb +3 -3
- data/spec/factories/medications/prescription.rb +1 -2
- data/spec/factories/medications/prescription_terminations.rb +1 -2
- data/spec/factories/messaging/internal/authors.rb +5 -0
- data/spec/factories/messaging/{message.rb → internal/messages.rb} +1 -1
- data/spec/factories/messaging/internal/receipts.rb +7 -0
- data/spec/factories/messaging/internal/recipients.rb +5 -0
- data/spec/factories/modalities/modalities.rb +1 -3
- data/spec/factories/pathology/requests/request.rb +1 -3
- data/spec/factories/patients/alerts.rb +1 -2
- data/spec/factories/patients/patients.rb +5 -3
- data/spec/factories/pd/assessments.rb +1 -2
- data/spec/factories/pd/fluid_descriptions.rb +0 -1
- data/spec/factories/pd/training_sessions.rb +1 -2
- data/spec/factories/problems/problems.rb +1 -2
- data/spec/factories/shared/accountable.rb +35 -0
- data/spec/factories/system/roles.rb +2 -4
- data/spec/factories/system/users.rb +30 -15
- data/spec/factories/transplants/donor_stage.rb +1 -2
- data/spec/factories/transplants/registration_statuses.rb +2 -4
- data/spec/support/login_macros.rb +1 -1
- metadata +108 -40
- data/app/controllers/renalware/messaging/messages_controller.rb +0 -73
- data/app/controllers/renalware/messaging/receipts_controller.rb +0 -55
- data/app/controllers/renalware/messaging/sent_messages_controller.rb +0 -22
- data/app/models/renalware/messaging/author.rb +0 -9
- data/app/models/renalware/messaging/message_factory.rb +0 -18
- data/app/models/renalware/messaging/message_form.rb +0 -34
- data/app/models/renalware/messaging/message_form_builder.rb +0 -50
- data/app/models/renalware/messaging/receipt.rb +0 -19
- data/app/models/renalware/messaging/recipient.rb +0 -10
- data/app/models/renalware/messaging/recipient_options.rb +0 -85
- data/app/models/renalware/messaging/send_message.rb +0 -22
- data/app/policies/renalware/messaging/receipt_policy.rb +0 -19
- data/app/presenters/renalware/messaging/internal_message_presenter.rb +0 -19
- data/app/presenters/renalware/messaging/receipt_presenter.rb +0 -11
- data/app/views/renalware/devise/registrations/new.html.erb +0 -46
- data/app/views/renalware/messaging/messages/_table.html.slim +0 -13
- data/app/views/renalware/messaging/messages/sent.html.slim +0 -4
- data/config/locales/renalware/messaging/messages.en.yml +0 -29
- data/spec/factories/messaging/authors.rb +0 -5
- data/spec/factories/messaging/receipt.rb +0 -7
- data/spec/factories/messaging/recipients.rb +0 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 48da8a752afcae1698bfbac69a302d09fdbdc138
|
|
4
|
+
data.tar.gz: 75555d147b8c89f45db9520c53f3f7396f4aa4ae
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4ae47acd62d54ce91497f923e8b47a05da642adff28b677c9ed9227e512038ed2d6c7f08df8c0a20b55b12f0b758cce0b9d827f64190f8bccb6a1936b5940c76
|
|
7
|
+
data.tar.gz: 14e910d6d6c74efa0a60417b6ec21053d0a81d52dacb0ce441078feba353fc2137c01f681777871526469317e856b57bc1460cfe631dd58d38b8585320b6854b
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// Generic select2 ajax autocomplete search using Select2
|
|
2
|
+
// Example usage (slim):
|
|
3
|
+
// select.select2-ajax-search(
|
|
4
|
+
// data: {
|
|
5
|
+
// "ajax--url" => search_patients_path(format: :json),
|
|
6
|
+
// "default-value" => {id: 23, text: "CROSBY, Bing (1234567913)",
|
|
7
|
+
// "placeholder" => "Start entering the last name (min. 3 characters)"
|
|
8
|
+
// }
|
|
9
|
+
// )
|
|
10
|
+
//
|
|
11
|
+
//
|
|
12
|
+
// For default value to be loaded into the select2 correctly,
|
|
13
|
+
// the select must have a data-value attribute which is a hash in the format
|
|
14
|
+
// that would also be returned from the api eg
|
|
15
|
+
// = f.input :x, data: {
|
|
16
|
+
// "default-value" => {id: 23, text: "WRIGHT, Katie (1234567913)",
|
|
17
|
+
// "ajax--url" => "/patients/search.json"
|
|
18
|
+
// }
|
|
19
|
+
var Renalware = typeof Renalware === 'undefined' ? {} : Renalware;
|
|
20
|
+
|
|
21
|
+
Renalware.AjaxSearch = (function() {
|
|
22
|
+
|
|
23
|
+
function processData(data) {
|
|
24
|
+
// Note that the json api already formats the data as id: and text: so there
|
|
25
|
+
// is nothing to do here, other than wrap it in a hash, but if that changes use something
|
|
26
|
+
// like this to map the json objects into the {id:, text:} objects select2 expects.
|
|
27
|
+
// var mapdata = $.map(data, function (obj) {
|
|
28
|
+
// obj.id = obj.id;
|
|
29
|
+
// obj.text = obj.text;
|
|
30
|
+
// return obj;
|
|
31
|
+
// });
|
|
32
|
+
return { results: data };
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
var initAjaxSearch = function(){
|
|
36
|
+
|
|
37
|
+
$(".select2-ajax-search").each(function (index, element) {
|
|
38
|
+
var item = $(element);
|
|
39
|
+
|
|
40
|
+
// If there is a default item to display in the select2, wrap it in an array
|
|
41
|
+
// and we'll load it in the initial data
|
|
42
|
+
var defaultSelectedItem = [$(item).data("default-value")];
|
|
43
|
+
|
|
44
|
+
// A place holder is required if you want to use the X button and allowClear to clear
|
|
45
|
+
// the selection.
|
|
46
|
+
var placeholder = $(item).data("placeholder") || "Start typing (min. 3 characters)";
|
|
47
|
+
|
|
48
|
+
$(item).select2({
|
|
49
|
+
allowClear: true,
|
|
50
|
+
placeholder: placeholder,
|
|
51
|
+
ajax: {
|
|
52
|
+
dataType: 'json',
|
|
53
|
+
delay: 250,
|
|
54
|
+
processResults: processData,
|
|
55
|
+
cache: false
|
|
56
|
+
},
|
|
57
|
+
data: processData(defaultSelectedItem).results,
|
|
58
|
+
minimumInputLength: 3,
|
|
59
|
+
escapeMarkup: function (m) { return m; }
|
|
60
|
+
})
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
// When the select is cleared using the X link, it does not automatically remove any selected
|
|
64
|
+
// <options>s from the <select> (you can see this e.g. in Chrome tools). So we have to
|
|
65
|
+
// pragmatically do this - and using a timeout prevents clashing with the select2 clear
|
|
66
|
+
// mechanism.
|
|
67
|
+
$('.select2-ajax-search').on('select2:unselect', function (e) {
|
|
68
|
+
var _this = $(this);
|
|
69
|
+
var removeRedundantOptionFromSelect = function() {
|
|
70
|
+
$(_this).html('<option></option>').trigger('change');
|
|
71
|
+
}
|
|
72
|
+
setTimeout(removeRedundantOptionFromSelect, 200);
|
|
73
|
+
});
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
return {
|
|
77
|
+
init: function () {
|
|
78
|
+
initAjaxSearch()
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
})();
|
|
82
|
+
|
|
83
|
+
$(document).ready(Renalware.AjaxSearch.init);
|
|
84
|
+
$(document).on('opened.fndtn.reveal', '[data-reveal]', function() {
|
|
85
|
+
Renalware.AjaxSearch.init();
|
|
86
|
+
});
|
|
@@ -24,8 +24,19 @@ function initSortables() {
|
|
|
24
24
|
url: $(this).data("rel"),
|
|
25
25
|
dataType: 'json',
|
|
26
26
|
data: $(this).sortable("serialize"),
|
|
27
|
-
success: function() {
|
|
27
|
+
success: function(sortedArrayOfModelIds) { // eg ["4", "3", "1", "2"]
|
|
28
28
|
$(elem).effect("highlight", {}, 1000);
|
|
29
|
+
// If the the sorted element and its siblings have a child element with a
|
|
30
|
+
// .sortable-position-for-model-id-X class, update the content of each
|
|
31
|
+
// with the new position returned from the server.
|
|
32
|
+
// This lets us display the new sort order position eg for each row in a table
|
|
33
|
+
// without having to reload all the sortables.
|
|
34
|
+
var parent = $(elem).parent(".sortables")
|
|
35
|
+
for (var position = 0; position < sortedArrayOfModelIds.length; position++) {
|
|
36
|
+
modelId = sortedArrayOfModelIds[position];
|
|
37
|
+
var sortable = $(".sortable-position-for-model-id-" + modelId, parent);
|
|
38
|
+
$(sortable, parent).html(position + 1);
|
|
39
|
+
};
|
|
29
40
|
}
|
|
30
41
|
});
|
|
31
42
|
}
|
|
@@ -47,6 +47,7 @@ $white: #FFF;
|
|
|
47
47
|
$off-white: #EEE;
|
|
48
48
|
$dark-grey: #222;
|
|
49
49
|
$muted-dark-grey: #555;
|
|
50
|
+
$winter-sky: #AAA;
|
|
50
51
|
$light-grey: #DDD;
|
|
51
52
|
$mid-grey: #999;
|
|
52
53
|
$very-light-grey: #f5f5f5;
|
|
@@ -66,13 +67,18 @@ $patient-header-bg-color: $nhs-blue;
|
|
|
66
67
|
$bookmark-urgent-colour: #FFFFC8;
|
|
67
68
|
|
|
68
69
|
// Letter states
|
|
69
|
-
|
|
70
70
|
$letter-state-unknown: $mid-grey;
|
|
71
71
|
$letter-state-draft: $nhs-aqua-blue;
|
|
72
72
|
$letter-state-pending-review: $nhs-orange;
|
|
73
73
|
$letter-state-approved: $nhs-green;
|
|
74
74
|
$letter-state-completed: $nhs-dark-green;
|
|
75
75
|
|
|
76
|
+
// Admission Request priority but can be used elsewhere
|
|
77
|
+
$priority-urgent: $nhs-dark-red;
|
|
78
|
+
$priority-high: $nhs-red;
|
|
79
|
+
$priority-medium: $nhs-warm-yellow;
|
|
80
|
+
$priority-low: $nhs-green;
|
|
81
|
+
|
|
76
82
|
// Modals
|
|
77
83
|
$max-modal-height: 600px;
|
|
78
84
|
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#admissions-request-modal {
|
|
2
|
+
.admissions-request-patient {
|
|
3
|
+
margin-bottom: 1rem;
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.admissions_requests {
|
|
8
|
+
|
|
9
|
+
td.priority {
|
|
10
|
+
span {
|
|
11
|
+
@include badge;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
tr.priority-urgent {
|
|
16
|
+
td.priority span {
|
|
17
|
+
background-color: $priority-urgent;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
tr.priority-high {
|
|
23
|
+
td.priority span {
|
|
24
|
+
background-color: $priority-high;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
tr.priority-medium {
|
|
29
|
+
td.priority span {
|
|
30
|
+
background-color: $priority-medium;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
tr.priority-low {
|
|
35
|
+
td.priority span {
|
|
36
|
+
background-color: $priority-low;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -1,3 +1,47 @@
|
|
|
1
|
+
.modal {
|
|
2
|
+
.modal__header {
|
|
3
|
+
border-bottom: solid 1px $winter-sky;
|
|
4
|
+
margin-bottom: 10px;
|
|
5
|
+
|
|
6
|
+
h1, h2 {
|
|
7
|
+
margin: 0 0 0.5rem 0;
|
|
8
|
+
font-size: 1.3rem;
|
|
9
|
+
color: $dark-grey;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.reveal-modal-close {
|
|
13
|
+
position: absolute;
|
|
14
|
+
top: 0.3rem;
|
|
15
|
+
right: 0.8rem;
|
|
16
|
+
font-size: 1.5rem;
|
|
17
|
+
color: $winter-sky;
|
|
18
|
+
padding: 0.2rem;
|
|
19
|
+
font-weight: normal;
|
|
20
|
+
|
|
21
|
+
i {
|
|
22
|
+
padding-right: 5px;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.modal__body {
|
|
28
|
+
/* remove excessive l and r padding in modals */
|
|
29
|
+
.row {
|
|
30
|
+
margin-left: 0;
|
|
31
|
+
margin-right: 0;
|
|
32
|
+
max-width: 100%;
|
|
33
|
+
|
|
34
|
+
.columns {
|
|
35
|
+
padding-left: 0;
|
|
36
|
+
padding-right: 0;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.modal__footer {
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
1
45
|
.modal-show {
|
|
2
46
|
position: relative;
|
|
3
47
|
background: $oil;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
require "renalware/admissions"
|
|
2
|
+
|
|
3
|
+
module Renalware
|
|
4
|
+
module Admissions
|
|
5
|
+
class RequestsController < BaseController
|
|
6
|
+
include Renalware::Concerns::Pageable
|
|
7
|
+
|
|
8
|
+
def index
|
|
9
|
+
requests = Request.ordered.all.page(page).per(per_page)
|
|
10
|
+
authorize requests
|
|
11
|
+
render locals: { requests: requests }
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def new
|
|
15
|
+
request = Request.new(patient: patient)
|
|
16
|
+
authorize request
|
|
17
|
+
render_new(request)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def create
|
|
21
|
+
request = Request.new(request_params)
|
|
22
|
+
authorize request
|
|
23
|
+
unless request.save_by(current_user)
|
|
24
|
+
return render_new(request)
|
|
25
|
+
end
|
|
26
|
+
flash.now[:notice] = success_msg_for("admission request")
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def edit
|
|
30
|
+
request = find_request
|
|
31
|
+
authorize request
|
|
32
|
+
render_edit(request)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def update
|
|
36
|
+
request = find_request
|
|
37
|
+
authorize request
|
|
38
|
+
request.by = current_user
|
|
39
|
+
|
|
40
|
+
if request.update(request_params)
|
|
41
|
+
flash.now[:notice] = success_msg_for("admission request")
|
|
42
|
+
render locals: { request: request }
|
|
43
|
+
else
|
|
44
|
+
render_edit(request)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def destroy
|
|
49
|
+
request = find_request
|
|
50
|
+
authorize request
|
|
51
|
+
request.destroy!
|
|
52
|
+
flash.now[:notice] = success_msg_for("admission request")
|
|
53
|
+
render locals: { request_id: request_id }
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def sort
|
|
57
|
+
authorize Request, :sort?
|
|
58
|
+
ids = params["admissions_request"]
|
|
59
|
+
Request.sort(ids)
|
|
60
|
+
render json: ids
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
private
|
|
64
|
+
|
|
65
|
+
def patient
|
|
66
|
+
Patient.find(params[:patient_id])
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def render_new(request)
|
|
70
|
+
render :new, locals: {
|
|
71
|
+
request: request,
|
|
72
|
+
reasons: RequestReason.ordered.pluck(:description, :id),
|
|
73
|
+
hospital_units: Hospitals::Unit.ordered.pluck(:name, :id)
|
|
74
|
+
}, layout: false
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def render_edit(request)
|
|
78
|
+
render :edit, locals: {
|
|
79
|
+
request: request,
|
|
80
|
+
reasons: RequestReason.ordered.pluck(:description, :id),
|
|
81
|
+
hospital_units: Hospitals::Unit.ordered.pluck(:name, :id)
|
|
82
|
+
}, layout: false
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def find_request
|
|
86
|
+
Request.find(request_id)
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def request_id
|
|
90
|
+
params[:id]
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def request_params
|
|
94
|
+
params
|
|
95
|
+
.require(:admissions_request)
|
|
96
|
+
.permit(:patient_id, :reason_id, :notes, :hospital_unit_id, :priority)
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
require_dependency "renalware/letters"
|
|
2
|
+
require "collection_presenter"
|
|
3
|
+
|
|
4
|
+
module Renalware
|
|
5
|
+
module Letters
|
|
6
|
+
class ElectronicReceiptsController < BaseController
|
|
7
|
+
include Renalware::Concerns::Pageable
|
|
8
|
+
|
|
9
|
+
# PATCH
|
|
10
|
+
def mark_as_read
|
|
11
|
+
authorize receipt
|
|
12
|
+
receipt.update(read_at: Time.zone.now)
|
|
13
|
+
render locals: {
|
|
14
|
+
receipt: ElectronicReceiptPresenter.new(receipt),
|
|
15
|
+
layout: false
|
|
16
|
+
}
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# GET all unread electronic CCs
|
|
20
|
+
def unread
|
|
21
|
+
render_receipts(received_receipts.unread)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# GET all read electronic CCs
|
|
25
|
+
def read
|
|
26
|
+
render_receipts(received_receipts.read)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# GET all electronic CCs sent by the current user
|
|
30
|
+
def sent
|
|
31
|
+
render_receipts(sent_receipts)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
private
|
|
35
|
+
|
|
36
|
+
def render_receipts(receipts)
|
|
37
|
+
patient_filter = Patients::SearchFilter.new(search_term, request)
|
|
38
|
+
receipts = receipts.joins(letter: [:patient])
|
|
39
|
+
receipts = patient_filter.call(receipts).ordered.page(page).per(per_page)
|
|
40
|
+
authorize receipts
|
|
41
|
+
|
|
42
|
+
render locals: {
|
|
43
|
+
receipts: present_receipts(receipts),
|
|
44
|
+
search_form: patient_filter.search_form
|
|
45
|
+
}
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def build_search_form_object
|
|
49
|
+
Patients::SearchForm.new(
|
|
50
|
+
term: search_term,
|
|
51
|
+
url: request.path
|
|
52
|
+
)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# def filter_receipts(receipts, search_form)
|
|
56
|
+
# matching_patients = Patients::SearchQuery.new(term: search_form.term).call
|
|
57
|
+
# receipts.joins(letter: [:patient]).merge(matching_patients)
|
|
58
|
+
# end
|
|
59
|
+
|
|
60
|
+
def search_term
|
|
61
|
+
params.fetch(:patient_search, {}).fetch(:term, nil)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def receipt
|
|
65
|
+
ElectronicReceipt.find_by!(letter_id: params[:letter_id], id: params[:id])
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def received_receipts
|
|
69
|
+
ElectronicReceipt.where(recipient_id: current_user.id)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def sent_receipts
|
|
73
|
+
ElectronicReceipt.sent_by(current_user.id)
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def present_receipts(receipts)
|
|
77
|
+
CollectionPresenter.new(receipts, ElectronicReceiptPresenter)
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|