renalware-core 2.0.0.pre.beta7 → 2.0.0.pre.beta8
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/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
|