renalware-core 2.0.0.pre.beta4 → 2.0.0.pre.beta5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -2
- data/app/assets/javascripts/renalware/application.js.erb +3 -0
- data/app/assets/javascripts/renalware/dialogs.js.erb +3 -1
- data/app/assets/javascripts/renalware/forms.js +0 -17
- data/app/assets/javascripts/renalware/keyboard_shortcuts.js +4 -0
- data/app/assets/javascripts/renalware/messaging.js +15 -0
- data/app/assets/javascripts/renalware/modality_codes.js +1 -0
- data/app/assets/javascripts/renalware/pdf.js +6 -3
- data/app/assets/javascripts/renalware/renal.js +2 -1
- data/app/assets/javascripts/renalware/session_timeout_redirect.js.erb +10 -4
- data/app/assets/javascripts/renalware/toggler.js +5 -0
- data/app/assets/stylesheets/renalware/base/_variables.scss +3 -1
- data/app/assets/stylesheets/renalware/lib/_foundation_and_overrides.scss +1 -1
- data/app/assets/stylesheets/renalware/lib/_select2-foundation5-overrides.scss +22 -1
- data/app/assets/stylesheets/renalware/lib/_select2-foundation5.scss +7 -4
- data/app/assets/stylesheets/renalware/modules/_dashboard.scss +1 -0
- data/app/assets/stylesheets/renalware/modules/_messaging.scss +55 -0
- data/app/assets/stylesheets/renalware/modules/_patients.scss +70 -0
- data/app/assets/stylesheets/renalware/partials/_button.scss +10 -0
- data/app/assets/stylesheets/renalware/partials/_forms.scss +9 -1
- data/app/assets/stylesheets/renalware/partials/_lists.scss +6 -1
- data/app/assets/stylesheets/renalware/partials/_navigation.scss +36 -1
- data/app/assets/stylesheets/renalware/partials/_simple_form.scss +1 -1
- data/app/assets/stylesheets/renalware/partials/_tables.scss +40 -1
- data/app/controllers/renalware/accesses/assessments_controller.rb +2 -2
- data/app/controllers/renalware/accesses/procedures_controller.rb +2 -2
- data/app/controllers/renalware/accesses/profiles_controller.rb +2 -2
- data/app/controllers/renalware/admin/users_controller.rb +1 -1
- data/app/controllers/renalware/base_controller.rb +1 -1
- data/app/controllers/renalware/clinical/body_compositions_controller.rb +1 -14
- data/app/controllers/renalware/clinical/dry_weights_controller.rb +1 -1
- data/app/controllers/renalware/clinics/clinic_visits_controller.rb +3 -3
- data/app/controllers/renalware/concerns/pdf_renderable.rb +0 -1
- data/app/controllers/renalware/deaths_controller.rb +1 -1
- data/app/controllers/renalware/devise/sessions_controller.rb +24 -0
- data/app/controllers/renalware/directory/people_controller.rb +30 -20
- data/app/controllers/renalware/drugs/drugs_controller.rb +2 -2
- data/app/controllers/renalware/events/events_controller.rb +19 -4
- data/app/controllers/renalware/events/types_controller.rb +2 -2
- data/app/controllers/renalware/hd/cannulation_types_controller.rb +2 -2
- data/app/controllers/renalware/hd/current_profile_controller.rb +1 -1
- data/app/controllers/renalware/hd/dialysers_controller.rb +2 -2
- data/app/controllers/renalware/hd/preference_sets_controller.rb +1 -1
- data/app/controllers/renalware/hd/sessions_controller.rb +1 -1
- data/app/controllers/renalware/hd/stations_controller.rb +79 -0
- data/app/controllers/renalware/hospitals/units_controller.rb +4 -3
- data/app/controllers/renalware/letters/contacts_controller.rb +3 -3
- data/app/controllers/renalware/letters/letters_controller.rb +2 -2
- data/app/controllers/renalware/medications/drug_types/prescriptions_controller.rb +3 -0
- data/app/controllers/renalware/messaging/messages_controller.rb +73 -0
- data/app/controllers/renalware/messaging/receipts_controller.rb +55 -0
- data/app/controllers/renalware/messaging/sent_messages_controller.rb +22 -0
- data/app/controllers/renalware/modalities/descriptions_controller.rb +31 -17
- data/app/controllers/renalware/modalities/modalities_controller.rb +21 -13
- data/app/controllers/renalware/pathology/current_observation_results_controller.rb +1 -1
- data/app/controllers/renalware/pathology/historical_observation_results_controller.rb +1 -1
- data/app/controllers/renalware/pathology/patient_rules_controller.rb +2 -2
- data/app/controllers/renalware/pathology/recent_observation_results_controller.rb +1 -1
- data/app/controllers/renalware/pathology/requests/requests_controller.rb +1 -1
- data/app/controllers/renalware/patients/alerts_controller.rb +61 -0
- data/app/controllers/renalware/patients/clinical_summaries_controller.rb +15 -0
- data/app/controllers/renalware/patients/patients_controller.rb +109 -0
- data/app/controllers/renalware/patients/primary_care_physicians_controller.rb +3 -2
- data/app/controllers/renalware/patients/worry_controller.rb +13 -2
- data/app/controllers/renalware/patients/worryboard_controller.rb +15 -1
- data/app/controllers/renalware/pd/bag_types_controller.rb +2 -2
- data/app/controllers/renalware/pd/exit_site_infections_controller.rb +2 -2
- data/app/controllers/renalware/pd/peritonitis_episodes_controller.rb +1 -1
- data/app/controllers/renalware/pd/pet_adequacy_results_controller.rb +2 -2
- data/app/controllers/renalware/pd/regimes_controller.rb +2 -2
- data/app/controllers/renalware/problems/problems_controller.rb +2 -2
- data/app/controllers/renalware/system/errors_controller.rb +20 -0
- data/app/controllers/renalware/system/mock_errors_controller.rb +12 -0
- data/app/controllers/renalware/transplants/donations_controller.rb +2 -2
- data/app/controllers/renalware/transplants/donor_operations_controller.rb +2 -2
- data/app/controllers/renalware/transplants/donor_workups_controller.rb +1 -1
- data/app/controllers/renalware/transplants/recipient_followups_controller.rb +2 -2
- data/app/controllers/renalware/transplants/recipient_operations_controller.rb +2 -2
- data/app/controllers/renalware/transplants/recipient_workups_controller.rb +1 -1
- data/app/controllers/renalware/transplants/registration_statuses_controller.rb +2 -2
- data/app/controllers/renalware/transplants/registrations_controller.rb +1 -1
- data/app/documents/renalware/renal/profile_document.rb +1 -0
- data/app/documents/renalware/smoking_status.rb +9 -0
- data/app/helpers/renalware/application_helper.rb +1 -1
- data/app/helpers/renalware/navigation_helper.rb +1 -1
- data/app/models/concerns/renalware/accountable.rb +16 -1
- data/app/models/concerns/renalware/broadcasting.rb +33 -0
- data/app/models/renalware/clinical/modality_description.rb +3 -0
- data/app/models/renalware/deaths/modality_description.rb +3 -0
- data/app/models/renalware/directory/person.rb +1 -1
- data/app/models/renalware/events/event.rb +3 -1
- data/app/models/renalware/events/event_query.rb +29 -0
- data/app/models/renalware/events/line_change_event_query.rb +25 -0
- data/app/models/renalware/events/patient_listener.rb +8 -0
- data/app/models/renalware/events/simple.rb +1 -1
- data/app/models/renalware/hd/diurnal_period_code.rb +9 -0
- data/app/models/renalware/hd/mdm_patients_query.rb +1 -0
- data/app/models/renalware/hd/modality_description.rb +3 -0
- data/app/models/renalware/hd/patient_listener.rb +20 -0
- data/app/models/renalware/hd/patients_with_unmet_preferences_query.rb +2 -0
- data/app/models/renalware/hd/session/closed.rb +2 -2
- data/app/models/renalware/hd/station.rb +24 -0
- data/app/models/renalware/hospitals/unit.rb +1 -0
- data/app/models/renalware/letters/draft_letter.rb +1 -1
- data/app/models/renalware/letters/letter_params_processor.rb +2 -2
- data/app/models/renalware/letters/letter_query.rb +1 -1
- data/app/models/renalware/letters/part/recent_pathology_results.rb +9 -4
- data/app/models/renalware/letters/patient_listener.rb +16 -0
- data/app/models/renalware/letters/revise_letter.rb +1 -1
- data/app/models/renalware/medications/patient_listener.rb +11 -0
- data/app/models/renalware/medications/prescriptions_by_drug_type_query.rb +2 -1
- data/app/models/renalware/medications/terminate_all_patient_prescriptions.rb +24 -0
- data/app/models/renalware/messaging/author.rb +9 -0
- data/app/models/renalware/messaging/message.rb +19 -0
- data/app/models/renalware/messaging/message_factory.rb +18 -0
- data/app/models/renalware/messaging/message_form.rb +34 -0
- data/app/models/renalware/messaging/message_form_builder.rb +50 -0
- data/app/models/renalware/messaging/patient.rb +13 -0
- data/app/models/renalware/messaging/receipt.rb +19 -0
- data/app/models/renalware/messaging/recipient.rb +10 -0
- data/app/models/renalware/messaging/recipient_options.rb +85 -0
- data/app/models/renalware/messaging/send_message.rb +22 -0
- data/app/models/renalware/messaging.rb +21 -0
- data/app/models/renalware/modalities/change_patient_modality.rb +112 -0
- data/app/models/renalware/modalities/description.rb +9 -5
- data/app/models/renalware/modalities/modality.rb +4 -10
- data/app/models/renalware/pathology/measurement_unit.rb +10 -0
- data/app/models/renalware/pathology/observation_description.rb +2 -0
- data/app/models/renalware/pathology/requests/global_algorithm.rb +1 -1
- data/app/models/renalware/pathology/requests/high_risk_rule_set.rb +1 -1
- data/app/models/renalware/patient.rb +14 -8
- data/app/models/renalware/patients/alert.rb +15 -0
- data/app/models/renalware/patients/patient_search.rb +13 -0
- data/app/models/renalware/patients/summary.rb +13 -0
- data/app/models/renalware/patients/worry_query.rb +27 -0
- data/app/models/renalware/pd/modality_description.rb +3 -0
- data/app/models/renalware/pd.rb +1 -1
- data/app/models/renalware/transplants/mdm_patients_query.rb +1 -0
- data/app/policies/renalware/hd/station_policy.rb +9 -0
- data/app/policies/renalware/messaging/message_policy.rb +11 -0
- data/app/policies/renalware/messaging/receipt_policy.rb +19 -0
- data/app/policies/renalware/modalities/description_policy.rb +22 -0
- data/app/policies/renalware/patients/alert_policy.rb +8 -0
- data/app/presenters/renalware/clinical/profile_presenter.rb +6 -1
- data/app/presenters/renalware/dashboard/dashboard_presenter.rb +18 -8
- data/app/presenters/renalware/events/events_presenter.rb +37 -0
- data/app/presenters/renalware/hd/station_presenter.rb +10 -0
- data/app/presenters/renalware/messaging/internal_message_presenter.rb +19 -0
- data/app/presenters/renalware/messaging/receipt_presenter.rb +11 -0
- data/app/presenters/renalware/pd/dashboard_presenter.rb +7 -0
- data/app/presenters/renalware/pd/mdm_presenter.rb +4 -0
- data/app/views/renalware/admin/users/edit.html.slim +34 -34
- data/app/views/renalware/admin/users/index.html.slim +9 -3
- data/app/views/renalware/clinical/body_compositions/_form.html.slim +1 -1
- data/app/views/renalware/clinical/body_compositions/_list.html.slim +1 -1
- data/app/views/renalware/clinical/body_compositions/edit.html.slim +2 -2
- data/app/views/renalware/clinics/clinic_visits/_form.html.slim +2 -2
- data/app/views/renalware/dashboard/bookmarks/_bookmark.html.slim +4 -5
- data/app/views/renalware/dashboard/bookmarks/_table.html.slim +1 -2
- data/app/views/renalware/dashboard/dashboards/_content.html.slim +7 -1
- data/app/views/renalware/dashboard/letters/_letter.html.slim +1 -1
- data/app/views/renalware/deaths/edit.html.slim +23 -26
- data/app/views/renalware/deaths/index.html.slim +0 -1
- data/app/views/renalware/devise/registrations/edit.html.slim +2 -2
- data/app/views/renalware/devise/sessions/new.html.slim +1 -1
- data/app/views/renalware/directory/people/_address_form.html.slim +13 -11
- data/app/views/renalware/directory/people/_filters.html.slim +9 -0
- data/app/views/renalware/directory/people/_form.html.slim +12 -14
- data/app/views/renalware/directory/people/_person.html.slim +1 -1
- data/app/views/renalware/directory/people/_table.html.slim +10 -0
- data/app/views/renalware/directory/people/edit.html.slim +4 -4
- data/app/views/renalware/directory/people/index.html.slim +7 -29
- data/app/views/renalware/directory/people/new.html.slim +4 -4
- data/app/views/renalware/directory/people/show.html.slim +27 -40
- data/app/views/renalware/drugs/drugs/_filters.html.slim +11 -0
- data/app/views/renalware/drugs/drugs/_form.html.slim +1 -3
- data/app/views/renalware/drugs/drugs/edit.html.slim +3 -1
- data/app/views/renalware/drugs/drugs/index.html.slim +7 -16
- data/app/views/renalware/drugs/drugs/new.html.slim +3 -1
- data/app/views/renalware/events/events/_filters.html.slim +21 -0
- data/app/views/renalware/events/events/_list.html.slim +5 -0
- data/app/views/renalware/events/events/_table.html.slim +3 -3
- data/app/views/renalware/events/events/index.html.slim +3 -2
- data/app/views/renalware/events/events/simple/_event.html.slim +10 -0
- data/app/views/renalware/events/events/simple/_list.html.slim +5 -0
- data/app/views/renalware/events/events/simple/_table.html.slim +15 -0
- data/app/views/renalware/events/events/toggled_cell/_simple.html.slim +2 -0
- data/app/views/renalware/hd/current_profile/_form.html.slim +64 -28
- data/app/views/renalware/hd/mdm_patients/_table.html.slim +26 -0
- data/app/views/renalware/hd/mdm_patients/index.html.slim +3 -33
- data/app/views/renalware/hd/stations/_form.html.slim +11 -0
- data/app/views/renalware/hd/stations/_station.html.slim +6 -0
- data/app/views/renalware/hd/stations/_table.html.slim +9 -0
- data/app/views/renalware/hd/stations/edit.html.slim +8 -0
- data/app/views/renalware/hd/stations/index.html.slim +14 -0
- data/app/views/renalware/hd/stations/new.html.slim +8 -0
- data/app/views/renalware/hospitals/units/_form.html.slim +16 -15
- data/app/views/renalware/hospitals/units/edit.html.slim +3 -1
- data/app/views/renalware/hospitals/units/index.html.slim +8 -3
- data/app/views/renalware/hospitals/units/new.html.slim +3 -1
- data/app/views/renalware/layouts/_patient.html.slim +1 -0
- data/app/views/renalware/letters/letters/_table.html.slim +1 -1
- data/app/views/renalware/letters/letters/author.html.slim +1 -3
- data/app/views/renalware/letters/parts/_problems.html.slim +10 -7
- data/app/views/renalware/letters/parts/_recent_pathology_results.html.slim +11 -8
- data/app/views/renalware/mdm_patients/_table.html.slim +23 -0
- data/app/views/renalware/mdm_patients/index.html.slim +5 -28
- data/app/views/renalware/medications/prescriptions/_current.html.slim +2 -2
- data/app/views/renalware/medications/prescriptions/_recently_stopped.html.slim +1 -1
- data/app/views/renalware/messaging/messages/_form.html.slim +31 -0
- data/app/views/renalware/messaging/messages/_message.html.slim +19 -0
- data/app/views/renalware/messaging/messages/_modal_dialog_placeholder.html.slim +2 -0
- data/app/views/renalware/messaging/messages/_send_message_link.html.slim +11 -0
- data/app/views/renalware/messaging/messages/_send_reply_link.html.slim +12 -0
- data/app/views/renalware/messaging/messages/_table.html.slim +13 -0
- data/app/views/renalware/messaging/messages/create.js.erb +13 -0
- data/app/views/renalware/messaging/messages/new.html.slim +5 -0
- data/app/views/renalware/messaging/messages/new.js.erb +7 -0
- data/app/views/renalware/messaging/messages/sent.html.slim +4 -0
- data/app/views/renalware/messaging/receipts/_receipt.html.slim +45 -0
- data/app/views/renalware/messaging/receipts/_table.html.slim +16 -0
- data/app/views/renalware/messaging/receipts/mark_as_read.js.erb +6 -0
- data/app/views/renalware/messaging/receipts/read.html.slim +5 -0
- data/app/views/renalware/messaging/receipts/unread.html.slim +5 -0
- data/app/views/renalware/messaging/shared/_key.html.slim +3 -0
- data/app/views/renalware/messaging/shared/_messages_type_tabs.html.slim +7 -0
- data/app/views/renalware/modalities/descriptions/_form.html.slim +12 -10
- data/app/views/renalware/modalities/descriptions/edit.html.slim +6 -1
- data/app/views/renalware/modalities/descriptions/index.html.slim +16 -11
- data/app/views/renalware/modalities/descriptions/new.html.slim +6 -1
- data/app/views/renalware/navigation/_user.html.slim +1 -0
- data/app/views/renalware/pathology/requests/requests/new.html.slim +1 -1
- data/app/views/renalware/patients/_layout.html.slim +0 -1
- data/app/views/renalware/patients/_person_form_fields.html.slim +1 -0
- data/app/views/renalware/patients/{_prescriptions.html.slim → _prescriptions.html.slim.dead} +0 -0
- data/app/views/renalware/patients/_side_menu.html.slim +1 -1
- data/app/views/renalware/patients/alerts/_alert.html.slim +12 -0
- data/app/views/renalware/patients/alerts/_create_alert_link.html.slim +8 -0
- data/app/views/renalware/patients/alerts/_form.html.slim +14 -0
- data/app/views/renalware/patients/alerts/_list.html.slim +4 -0
- data/app/views/renalware/patients/alerts/_modal_dialog_placeholder.html.slim +2 -0
- data/app/views/renalware/patients/alerts/create.js.erb +3 -0
- data/app/views/renalware/patients/alerts/destroy.js.erb +2 -0
- data/app/views/renalware/patients/alerts/new.html.slim +5 -0
- data/app/views/renalware/patients/alerts/new.js.erb +4 -0
- data/app/views/renalware/patients/bookmarks/_delete.html.slim +4 -3
- data/app/views/renalware/patients/bookmarks/_new.html.slim +4 -2
- data/app/views/renalware/{clinical_summaries → patients/clinical_summaries}/_events.html.slim +0 -0
- data/app/views/renalware/{clinical_summaries → patients/clinical_summaries}/_letters.html.slim +0 -0
- data/app/views/renalware/{clinical_summaries → patients/clinical_summaries}/_prescriptions.html.slim +0 -0
- data/app/views/renalware/{clinical_summaries → patients/clinical_summaries}/_problems.html.slim +0 -0
- data/app/views/renalware/{clinical_summaries → patients/clinical_summaries}/show.html.slim +1 -1
- data/app/views/renalware/patients/{_form.html.slim → patients/_form.html.slim} +0 -0
- data/app/views/renalware/patients/{_patient.html.slim → patients/_patient.html.slim} +0 -0
- data/app/views/renalware/patients/{_table.html.slim → patients/_table.html.slim} +1 -1
- data/app/views/renalware/patients/{edit.html.slim → patients/edit.html.slim} +1 -1
- data/app/views/renalware/patients/{index.html.slim → patients/index.html.slim} +0 -0
- data/app/views/renalware/patients/{new.html.slim → patients/new.html.slim} +1 -1
- data/app/views/renalware/patients/{show → patients/show}/_contact_details.html.slim +0 -0
- data/app/views/renalware/patients/{show → patients/show}/_hospital_numbers.html.slim +0 -0
- data/app/views/renalware/patients/{show → patients/show}/_letter_preferences.html.slim +0 -0
- data/app/views/renalware/patients/{show → patients/show}/_patient_demographics.html.slim +0 -0
- data/app/views/renalware/patients/{show → patients/show}/_person.html.slim +0 -0
- data/app/views/renalware/patients/{show → patients/show}/_primary_care_physician.html.slim +0 -0
- data/app/views/renalware/patients/{show → patients/show}/_referral.html.slim +0 -0
- data/app/views/renalware/patients/{show → patients/show}/_ukrdc_preferences.html.slim +0 -0
- data/app/views/renalware/patients/{show.html.slim → patients/show.html.slim} +7 -7
- data/app/views/renalware/patients/side_menu/_actions.html.slim +27 -0
- data/app/views/renalware/patients/side_menu/_general.html.slim +4 -2
- data/app/views/renalware/patients/side_menu/_modalities.html.slim +2 -2
- data/app/views/renalware/patients/side_menu/{_options.html.slim → _options.html.slim.redundant} +5 -0
- data/app/views/renalware/patients/side_menu/_transplants.html.slim +2 -1
- data/app/views/renalware/patients/worries/_delete.html.slim +4 -3
- data/app/views/renalware/patients/worries/_new.html.slim +23 -4
- data/app/views/renalware/patients/worryboard/_filters.html.slim +15 -0
- data/app/views/renalware/patients/worryboard/_table.html.slim +13 -6
- data/app/views/renalware/patients/worryboard/_worry.html.slim +6 -4
- data/app/views/renalware/patients/worryboard/show.html.slim +3 -5
- data/app/views/renalware/pd/dashboards/show.html.slim +11 -2
- data/app/views/renalware/pd/mdm/_top.html.slim +6 -1
- data/app/views/renalware/renal/profiles/_form.html.slim +2 -1
- data/app/views/renalware/renal/profiles/show.html.slim +1 -1
- data/app/views/renalware/shared/documents/_smoking_status.html.slim +1 -0
- data/app/views/renalware/shared/documents/_smoking_status_input.html.slim +5 -0
- data/app/views/renalware/{errors → system/errors}/internal_server_error.html.slim +0 -0
- data/app/views/renalware/{errors → system/errors}/not_found.html.slim +0 -0
- data/app/views/renalware/transplants/mdm_patients/_filters.html.slim +6 -7
- data/config/cucumber.yml +5 -2
- data/config/initializers/renalware.rb +13 -0
- data/config/initializers/simple_form_foundation.rb +3 -1
- data/config/locales/renalware/dashboard/dashboard.yml +0 -1
- data/config/locales/renalware/errors.en.yml +15 -14
- data/config/locales/renalware/events/events.yml +5 -0
- data/config/locales/renalware/hd/mdm_patients.yml +1 -1
- data/config/locales/renalware/hospitals/unit.yml +1 -0
- data/config/locales/renalware/mdm.yml +1 -1
- data/config/locales/renalware/messaging/messages.en.yml +29 -0
- data/config/locales/renalware/patients/alerts.en.yml +10 -0
- data/config/locales/renalware/patients/side_menu.en.yml +7 -4
- data/config/locales/renalware/patients/worries.en.yml +1 -1
- data/config/routes.rb +25 -6
- data/config/spring.rb +2 -0
- data/db/migrate/20170725120242_add_units_to_pathology_observation_descriptions.rb +19 -0
- data/db/migrate/20170809080925_add_notes_to_patient_worries.rb +5 -0
- data/db/migrate/20170810092953_create_messaging_messages.rb +13 -0
- data/db/migrate/20170810093532_create_messaging_receipts.rb +9 -0
- data/db/migrate/20170821100353_add_replying_to_message_id_to_messages.rb +12 -0
- data/db/migrate/20170823084127_create_patient_alerts.rb +16 -0
- data/db/migrate/20170824113401_add_stations_to_hospital_units.rb +8 -0
- data/db/migrate/20170830085137_create_hd_unit_stations.rb +17 -0
- data/db/migrate/20170830171726_create_hd_diurnal_period_codes.rb +10 -0
- data/db/seeds/default/hd/diurnal_period_codes.csv +4 -0
- data/db/seeds/default/hd/diurnal_period_codes.rb +13 -0
- data/db/seeds/default/hd/seeds.rb +1 -0
- data/db/seeds/default/pathology/measurement_units.csv +38 -0
- data/db/seeds/default/pathology/measurement_units.rb +13 -0
- data/db/seeds/default/pathology/pathology_observation_descriptions.csv +1741 -1741
- data/db/seeds/default/pathology/pathology_observation_descriptions.rb +8 -10
- data/db/seeds/default/pathology/seeds.rb +1 -0
- data/db/seeds/default/seeds.rb +0 -1
- data/db/seeds/default/system/roles.rb +1 -1
- data/{app/models → lib}/renalware/breadcrumb.rb +0 -0
- data/lib/renalware/configuration.rb +2 -0
- data/{app/models → lib}/renalware/failure.rb +0 -0
- data/{app/models → lib}/renalware/month_period.rb +0 -0
- data/{app/models → lib}/renalware/remembered_preferences.rb +0 -0
- data/{app/models → lib}/renalware/service_result.rb +0 -0
- data/{app/models → lib}/renalware/success.rb +0 -0
- data/lib/renalware/version.rb +1 -1
- data/lib/subscription_registry.rb +5 -0
- metadata +152 -61
- data/app/controllers/renalware/clinical_summaries_controller.rb +0 -13
- data/app/controllers/renalware/errors_controller.rb +0 -18
- data/app/controllers/renalware/mock_errors_controller.rb +0 -10
- data/app/controllers/renalware/patients_controller.rb +0 -107
- data/app/models/renalware/patient_search.rb +0 -11
- data/app/models/renalware/patient_summary.rb +0 -6
- data/app/views/renalware/admin/users/_header.html.slim +0 -6
- data/app/views/renalware/clinical/body_compositions/_row.html.slim +0 -15
- data/app/views/renalware/clinical/body_compositions/index.html.slim +0 -12
- data/app/views/renalware/deaths/_navigation.html.slim +0 -3
- data/app/views/renalware/directory/people/_header.html.slim +0 -5
- data/app/views/renalware/drugs/drugs/_header.html.slim +0 -5
- data/app/views/renalware/hospitals/units/_header.html.slim +0 -5
- data/db/seeds/default/hospitals/dialysis_units.csv +0 -7
- data/db/seeds/default/hospitals/dialysis_units.rb +0 -17
- data/db/seeds/default/hospitals/hospital_centres.csv +0 -86
- data/db/seeds/default/hospitals/hospitals.rb +0 -17
- data/db/seeds/default/hospitals/seeds.rb +0 -2
@@ -21,7 +21,7 @@ module Renalware
|
|
21
21
|
redirect_to patient_accesses_dashboard_path(patient),
|
22
22
|
notice: t(".success", model_name: "Access profile")
|
23
23
|
else
|
24
|
-
flash[:error] = t(".failed", model_name: "Access profile")
|
24
|
+
flash.now[:error] = t(".failed", model_name: "Access profile")
|
25
25
|
render :new, locals: { patient: patient, profile: profile }
|
26
26
|
end
|
27
27
|
end
|
@@ -38,7 +38,7 @@ module Renalware
|
|
38
38
|
redirect_to patient_accesses_dashboard_path(patient),
|
39
39
|
notice: t(".success", model_name: "Access profile")
|
40
40
|
else
|
41
|
-
flash[:error] = t(".failed", model_name: "Access profile")
|
41
|
+
flash.now[:error] = t(".failed", model_name: "Access profile")
|
42
42
|
render :edit, locals: { patient: patient, profile: profile }
|
43
43
|
end
|
44
44
|
end
|
@@ -6,20 +6,8 @@ module Renalware
|
|
6
6
|
class BodyCompositionsController < Clinical::BaseController
|
7
7
|
before_action :load_patient
|
8
8
|
|
9
|
-
def index
|
10
|
-
query = PatientBodyCompositionsQuery.new(patient: patient, search_params: params[:q])
|
11
|
-
body_compositions = query.call.page(params[:page]).per(15)
|
12
|
-
|
13
|
-
render locals: {
|
14
|
-
search: query.search,
|
15
|
-
body_compositions: CollectionPresenter.new(body_compositions, BodyCompositionPresenter),
|
16
|
-
patient: patient
|
17
|
-
}
|
18
|
-
end
|
19
|
-
|
20
9
|
def show
|
21
10
|
body_composition = find_body_composition
|
22
|
-
@body_composition = BodyCompositionPresenter.new(body_composition)
|
23
11
|
render locals: { patient: patient, body_composition: body_composition }
|
24
12
|
end
|
25
13
|
|
@@ -38,14 +26,13 @@ module Renalware
|
|
38
26
|
redirect_to patient_clinical_profile_path(@patient),
|
39
27
|
notice: t(".success", model_name: "body composition")
|
40
28
|
else
|
41
|
-
flash[:error] = t(".failed", model_name: "body composition")
|
29
|
+
flash.now[:error] = t(".failed", model_name: "body composition")
|
42
30
|
render_new(body_composition)
|
43
31
|
end
|
44
32
|
end
|
45
33
|
|
46
34
|
def edit
|
47
35
|
body_composition = find_body_composition
|
48
|
-
@body_composition = body_composition
|
49
36
|
render locals: { patient: patient, body_composition: body_composition }
|
50
37
|
end
|
51
38
|
|
@@ -41,7 +41,7 @@ module Renalware
|
|
41
41
|
redirect_to return_url, notice: t(".success", model_name: "dry weight")
|
42
42
|
session.delete(:return_to)
|
43
43
|
else
|
44
|
-
flash[:error] = t(".failed", model_name: "dry weight")
|
44
|
+
flash.now[:error] = t(".failed", model_name: "dry weight")
|
45
45
|
render_new(dry_weight)
|
46
46
|
end
|
47
47
|
end
|
@@ -8,7 +8,7 @@ module Renalware
|
|
8
8
|
def index
|
9
9
|
render locals: {
|
10
10
|
patient: patient,
|
11
|
-
clinic_visits: patient.clinic_visits.ordered
|
11
|
+
clinic_visits: patient.clinic_visits.includes([:clinic, :created_by]).ordered
|
12
12
|
}
|
13
13
|
end
|
14
14
|
|
@@ -33,7 +33,7 @@ module Renalware
|
|
33
33
|
notice = success_msg_for("clinic visit")
|
34
34
|
redirect_to patient_clinic_visits_path(patient), notice: notice
|
35
35
|
else
|
36
|
-
flash[:error] = failed_msg_for("clinic visit")
|
36
|
+
flash.now[:error] = failed_msg_for("clinic visit")
|
37
37
|
render :new, locals: {
|
38
38
|
patient: patient,
|
39
39
|
clinic_visit: visit,
|
@@ -47,7 +47,7 @@ module Renalware
|
|
47
47
|
redirect_to patient_clinic_visits_path(@patient),
|
48
48
|
notice: t(".success", model_name: "clinic visit")
|
49
49
|
else
|
50
|
-
flash[:error] = t(".failed", model_name: "clinic visit")
|
50
|
+
flash.now[:error] = t(".failed", model_name: "clinic visit")
|
51
51
|
render :edit
|
52
52
|
end
|
53
53
|
end
|
@@ -20,7 +20,6 @@ module Renalware
|
|
20
20
|
}
|
21
21
|
end
|
22
22
|
|
23
|
-
|
24
23
|
# Render a Liquid template loaded from the database.
|
25
24
|
# The template may have variable place holders w.g. {{ patient.name }} and these
|
26
25
|
# are resolved by passing instance of Liquid Drops (presenters) in the variables hash.
|
@@ -16,7 +16,7 @@ module Renalware
|
|
16
16
|
redirect_to patient_clinical_profile_path(@patient),
|
17
17
|
notice: t(".success", model_name: "patient")
|
18
18
|
else
|
19
|
-
flash[:error] = t(".failed", model_name: "patient")
|
19
|
+
flash.now[:error] = t(".failed", model_name: "patient")
|
20
20
|
render :edit
|
21
21
|
end
|
22
22
|
end
|
@@ -4,5 +4,29 @@ module Renalware
|
|
4
4
|
|
5
5
|
layout "renalware/layouts/application"
|
6
6
|
|
7
|
+
# Define the path to go to after logging in:
|
8
|
+
# - if the user has never before logged-in, devise will take them to the root path (dashboard)
|
9
|
+
# - if the user's session timed-out less that 30 minutes ago, we take them back to the
|
10
|
+
# last page they were on.
|
11
|
+
# - if the user's session timed-out more than 30 minutes ago, we take them back to the
|
12
|
+
# their dashboard. See PR #1592 for rationale.
|
13
|
+
# - if the user has explicitly logged-out they will always go the the dashboard path on login,
|
14
|
+
# regardless of how long ago they signed out, because in this instance devise removes it's
|
15
|
+
# entries in the session cookie.
|
16
|
+
def after_sign_in_path_for(resource)
|
17
|
+
max_duration_of_url_memory = Renalware.config.duration_of_last_url_memory_after_session_expiry
|
18
|
+
max_duration_has_passed = last_sign_in_at <= max_duration_of_url_memory.ago
|
19
|
+
max_duration_has_passed ? dashboard_path : super
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def last_sign_in_at
|
25
|
+
current_user.last_sign_in_at || epoch_start
|
26
|
+
end
|
27
|
+
|
28
|
+
def epoch_start
|
29
|
+
Date.new(0)
|
30
|
+
end
|
7
31
|
end
|
8
32
|
end
|
@@ -8,10 +8,9 @@ module Renalware
|
|
8
8
|
|
9
9
|
def index
|
10
10
|
query = PersonQuery.new(q: params[:q])
|
11
|
-
|
12
|
-
authorize
|
13
|
-
|
14
|
-
@q = query.search
|
11
|
+
people = call_query(query).page(page)
|
12
|
+
authorize people
|
13
|
+
render locals: { q: query.search, people: people }
|
15
14
|
end
|
16
15
|
|
17
16
|
def search
|
@@ -22,45 +21,56 @@ module Renalware
|
|
22
21
|
end
|
23
22
|
|
24
23
|
def show
|
25
|
-
|
26
|
-
authorize
|
24
|
+
person = Person.find(params[:id])
|
25
|
+
authorize person
|
26
|
+
render locals: { person: person }
|
27
27
|
end
|
28
28
|
|
29
29
|
def new
|
30
|
-
|
31
|
-
authorize
|
30
|
+
person = Person.build
|
31
|
+
authorize person
|
32
|
+
render_new(person)
|
32
33
|
end
|
33
34
|
|
34
35
|
def create
|
35
|
-
|
36
|
-
authorize
|
36
|
+
person = Person.new(person_params)
|
37
|
+
authorize person
|
37
38
|
|
38
|
-
if
|
39
|
+
if person.save
|
39
40
|
redirect_to directory_people_path, notice: t(".success", model_name: "Directory person")
|
40
41
|
else
|
41
|
-
flash[:error] = t(".failed", model_name: "Directory person")
|
42
|
-
|
42
|
+
flash.now[:error] = t(".failed", model_name: "Directory person")
|
43
|
+
render_new(person)
|
43
44
|
end
|
44
45
|
end
|
45
46
|
|
46
47
|
def edit
|
47
|
-
|
48
|
-
authorize
|
48
|
+
person = Person.find(params[:id])
|
49
|
+
authorize person
|
50
|
+
render_edit(person)
|
49
51
|
end
|
50
52
|
|
51
53
|
def update
|
52
|
-
|
53
|
-
authorize
|
54
|
-
if
|
54
|
+
person = Person.find(params[:id])
|
55
|
+
authorize person
|
56
|
+
if person.update(person_params)
|
55
57
|
redirect_to directory_people_path, notice: t(".success", model_name: "Directory person")
|
56
58
|
else
|
57
|
-
flash[:error] = t(".failed", model_name: "Directory person")
|
58
|
-
|
59
|
+
flash.now[:error] = t(".failed", model_name: "Directory person")
|
60
|
+
render_edit(person)
|
59
61
|
end
|
60
62
|
end
|
61
63
|
|
62
64
|
private
|
63
65
|
|
66
|
+
def render_edit(person)
|
67
|
+
render :edit, locals: { person: person }
|
68
|
+
end
|
69
|
+
|
70
|
+
def render_new(person)
|
71
|
+
render :new, locals: { person: person }
|
72
|
+
end
|
73
|
+
|
64
74
|
def call_query(query)
|
65
75
|
query
|
66
76
|
.call
|
@@ -28,7 +28,7 @@ module Renalware
|
|
28
28
|
redirect_to drugs_drugs_path,
|
29
29
|
notice: t(".success", model_name: "drug")
|
30
30
|
else
|
31
|
-
flash[:error] = t(".failed", model_name: "drug")
|
31
|
+
flash.now[:error] = t(".failed", model_name: "drug")
|
32
32
|
render :new
|
33
33
|
end
|
34
34
|
end
|
@@ -58,7 +58,7 @@ module Renalware
|
|
58
58
|
redirect_to drugs_drugs_path,
|
59
59
|
notice: t(".success", model_name: "drug")
|
60
60
|
else
|
61
|
-
flash[:error] = t(".failed", model_name: "drug")
|
61
|
+
flash.now[:error] = t(".failed", model_name: "drug")
|
62
62
|
render :edit
|
63
63
|
end
|
64
64
|
end
|
@@ -17,10 +17,11 @@ module Renalware
|
|
17
17
|
|
18
18
|
def create
|
19
19
|
event = new_event_for_patient(event_params)
|
20
|
+
|
20
21
|
if event.save
|
21
22
|
redirect_to return_url, notice: t(".success", model_name: "event")
|
22
23
|
else
|
23
|
-
flash[:error] = t(".failed", model_name: "event")
|
24
|
+
flash.now[:error] = t(".failed", model_name: "event")
|
24
25
|
render :new, locals: {
|
25
26
|
patient: patient,
|
26
27
|
event: event,
|
@@ -30,10 +31,14 @@ module Renalware
|
|
30
31
|
end
|
31
32
|
|
32
33
|
def index
|
34
|
+
events_query = EventQuery.new(patient: patient, query: query_params)
|
35
|
+
events = events_query.call
|
33
36
|
authorize events
|
37
|
+
events = EventsPresenter.new(patient, events)
|
38
|
+
|
34
39
|
render locals: {
|
35
|
-
|
36
|
-
|
40
|
+
events: events,
|
41
|
+
query: events_query.search
|
37
42
|
}
|
38
43
|
end
|
39
44
|
|
@@ -50,7 +55,7 @@ module Renalware
|
|
50
55
|
if event.update(event_params)
|
51
56
|
redirect_to return_url, notice: t(".success", model_name: "event")
|
52
57
|
else
|
53
|
-
flash[:error] = failed_msg_for("event type")
|
58
|
+
flash.now[:error] = failed_msg_for("event type")
|
54
59
|
render :edit, locals: {
|
55
60
|
patient: patient,
|
56
61
|
event: event,
|
@@ -143,6 +148,10 @@ module Renalware
|
|
143
148
|
def new_event_for_patient(params = {})
|
144
149
|
event = event_class.new
|
145
150
|
event.attributes = params
|
151
|
+
# Need to set disable_selection_of_event_type explicitly rather than relying on the value
|
152
|
+
# in the params which is a string eg "false" which actually evaluates to true!
|
153
|
+
# i.e. (!!"false" == true)
|
154
|
+
event.disable_selection_of_event_type = disable_selection_of_event_type?
|
146
155
|
event.patient = patient
|
147
156
|
authorize event
|
148
157
|
event
|
@@ -161,6 +170,12 @@ module Renalware
|
|
161
170
|
]
|
162
171
|
end
|
163
172
|
end
|
173
|
+
|
174
|
+
def query_params
|
175
|
+
params
|
176
|
+
.fetch(:q, {})
|
177
|
+
.merge(page: page, per_page: per_page || 20)
|
178
|
+
end
|
164
179
|
end
|
165
180
|
end
|
166
181
|
end
|
@@ -15,7 +15,7 @@ module Renalware
|
|
15
15
|
if event_type.save
|
16
16
|
redirect_to events_types_path, notice: success_msg_for("event type")
|
17
17
|
else
|
18
|
-
flash[:error] = failed_msg_for("event type")
|
18
|
+
flash.now[:error] = failed_msg_for("event type")
|
19
19
|
render :new, locals: { event_type: event_type }
|
20
20
|
end
|
21
21
|
end
|
@@ -36,7 +36,7 @@ module Renalware
|
|
36
36
|
if event_type.update(event_params)
|
37
37
|
redirect_to events_types_path, notice: success_msg_for("event type")
|
38
38
|
else
|
39
|
-
flash[:error] = failed_msg_for("event type")
|
39
|
+
flash.now[:error] = failed_msg_for("event type")
|
40
40
|
render :edit, locals: { event_type: event_type }
|
41
41
|
end
|
42
42
|
end
|
@@ -18,7 +18,7 @@ module Renalware
|
|
18
18
|
redirect_to hd_cannulation_types_path,
|
19
19
|
notice: t(".success", model_name: "cannulation type")
|
20
20
|
else
|
21
|
-
flash[:error] = t(".failed", model_name: "cannulation type")
|
21
|
+
flash.now[:error] = t(".failed", model_name: "cannulation type")
|
22
22
|
render :new
|
23
23
|
end
|
24
24
|
end
|
@@ -33,7 +33,7 @@ module Renalware
|
|
33
33
|
redirect_to hd_cannulation_types_path,
|
34
34
|
notice: t(".success", model_name: "cannulation type")
|
35
35
|
else
|
36
|
-
flash[:error] = t(".failed", model_name: "cannulation type")
|
36
|
+
flash.now[:error] = t(".failed", model_name: "cannulation type")
|
37
37
|
render :edit
|
38
38
|
end
|
39
39
|
end
|
@@ -19,7 +19,7 @@ module Renalware
|
|
19
19
|
redirect_to patient_hd_dashboard_path(patient),
|
20
20
|
notice: t(".success", model_name: "HD profile")
|
21
21
|
else
|
22
|
-
flash[:error] = t(".failed", model_name: "HD profile")
|
22
|
+
flash.now[:error] = t(".failed", model_name: "HD profile")
|
23
23
|
render :edit, locals: locals
|
24
24
|
end
|
25
25
|
end
|
@@ -16,7 +16,7 @@ module Renalware
|
|
16
16
|
if dialyser.save
|
17
17
|
redirect_to hd_dialysers_path, notice: success_msg_for("dialyser")
|
18
18
|
else
|
19
|
-
flash[:error] = failed_msg_for("dialyser")
|
19
|
+
flash.now[:error] = failed_msg_for("dialyser")
|
20
20
|
render :new, locals: { dialyser: dialyser }
|
21
21
|
end
|
22
22
|
end
|
@@ -37,7 +37,7 @@ module Renalware
|
|
37
37
|
if dialyser.update(dialyser_params)
|
38
38
|
redirect_to hd_dialysers_path, notice: success_msg_for("dialyser")
|
39
39
|
else
|
40
|
-
flash[:error] = failed_msg_for("dialyser")
|
40
|
+
flash.now[:error] = failed_msg_for("dialyser")
|
41
41
|
render :edit, locals: { dialyser: dialyser }
|
42
42
|
end
|
43
43
|
end
|
@@ -17,7 +17,7 @@ module Renalware
|
|
17
17
|
redirect_to patient_hd_dashboard_path(patient),
|
18
18
|
notice: t(".success", model_name: "HD preferences")
|
19
19
|
else
|
20
|
-
flash[:error] = t(".failed", model_name: "HD preferences")
|
20
|
+
flash.now[:error] = t(".failed", model_name: "HD preferences")
|
21
21
|
render :edit, locals: { patient: patient, preference_set: preference_set }
|
22
22
|
end
|
23
23
|
end
|
@@ -74,7 +74,7 @@ module Renalware
|
|
74
74
|
end
|
75
75
|
|
76
76
|
def save_failure(session)
|
77
|
-
flash[:error] = t(".failed", model_name: "HD session")
|
77
|
+
flash.now[:error] = t(".failed", model_name: "HD session")
|
78
78
|
action = action_name.to_sym == :create ? :new : :edit
|
79
79
|
render action, locals: locals(session)
|
80
80
|
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require_dependency "renalware/hd/base_controller"
|
2
|
+
require "collection_presenter"
|
3
|
+
|
4
|
+
module Renalware
|
5
|
+
module HD
|
6
|
+
class StationsController < BaseController
|
7
|
+
include PresenterHelper
|
8
|
+
|
9
|
+
def index
|
10
|
+
stations = Station.for_unit(unit_id).ordered
|
11
|
+
authorize stations
|
12
|
+
render locals: {
|
13
|
+
unit_id: unit_id,
|
14
|
+
stations: present(stations, StationPresenter)
|
15
|
+
}
|
16
|
+
end
|
17
|
+
|
18
|
+
def new
|
19
|
+
station = Station.new(hospital_unit_id: unit_id)
|
20
|
+
station.by = current_user
|
21
|
+
authorize station
|
22
|
+
render_new(station)
|
23
|
+
end
|
24
|
+
|
25
|
+
def create
|
26
|
+
station = Station.new(station_params.merge!(hospital_unit_id: unit_id))
|
27
|
+
authorize station
|
28
|
+
if station.save_by(current_user)
|
29
|
+
redirect_to hd_unit_stations_path(unit_id: unit_id), notice: success_msg_for("station")
|
30
|
+
else
|
31
|
+
render_new(station)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def edit
|
36
|
+
authorize station
|
37
|
+
render_edit(station)
|
38
|
+
end
|
39
|
+
|
40
|
+
def update
|
41
|
+
authorize station
|
42
|
+
if station.update_by(current_user, station_params)
|
43
|
+
redirect_to hd_unit_stations_path(unit_id: unit_id), notice: success_msg_for("station")
|
44
|
+
else
|
45
|
+
render_edit(station)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def sort
|
50
|
+
authorize Station, :sort?
|
51
|
+
ids = params["hd-station"]
|
52
|
+
Station.sort(ids)
|
53
|
+
render json: ids
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
def render_new(station)
|
59
|
+
render :new, locals: { unit_id: unit_id, station: station }
|
60
|
+
end
|
61
|
+
|
62
|
+
def render_edit(station)
|
63
|
+
render :edit, locals: { unit_id: unit_id, station: station }
|
64
|
+
end
|
65
|
+
|
66
|
+
def unit_id
|
67
|
+
params[:unit_id]
|
68
|
+
end
|
69
|
+
|
70
|
+
def station
|
71
|
+
@station ||= Station.find(params[:id])
|
72
|
+
end
|
73
|
+
|
74
|
+
def station_params
|
75
|
+
params.require(:hd_station).permit(:name, :location)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -18,7 +18,7 @@ module Renalware
|
|
18
18
|
redirect_to hospitals_units_path,
|
19
19
|
notice: t(".success", model_name: "hospital unit")
|
20
20
|
else
|
21
|
-
flash[:error] = t(".failed", model_name: "hospital unit")
|
21
|
+
flash.now[:error] = t(".failed", model_name: "hospital unit")
|
22
22
|
render :new
|
23
23
|
end
|
24
24
|
end
|
@@ -33,7 +33,7 @@ module Renalware
|
|
33
33
|
redirect_to hospitals_units_path,
|
34
34
|
notice: t(".success", model_name: "hospital unit")
|
35
35
|
else
|
36
|
-
flash[:error] = t(".failed", model_name: "hospital unit")
|
36
|
+
flash.now[:error] = t(".failed", model_name: "hospital unit")
|
37
37
|
render :edit
|
38
38
|
end
|
39
39
|
end
|
@@ -48,7 +48,8 @@ module Renalware
|
|
48
48
|
|
49
49
|
def hospital_unit_params
|
50
50
|
params.require(:hospitals_unit).permit(
|
51
|
-
:name, :unit_code, :renal_registry_code, :unit_type, :
|
51
|
+
:name, :unit_code, :renal_registry_code, :unit_type, :hospital_centre_id,
|
52
|
+
:is_hd_site, :number_of_hd_stations
|
52
53
|
)
|
53
54
|
end
|
54
55
|
|
@@ -38,7 +38,7 @@ module Renalware
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def find_contacts
|
41
|
-
CollectionPresenter.new(@patient.contacts.ordered, ContactPresenter)
|
41
|
+
CollectionPresenter.new(@patient.contacts.includes(:description).ordered, ContactPresenter)
|
42
42
|
end
|
43
43
|
|
44
44
|
def find_contact_descriptions
|
@@ -77,9 +77,9 @@ module Renalware
|
|
77
77
|
# if we are creating the person for the contact at the same time.
|
78
78
|
#
|
79
79
|
def try_merge_person_creator(params)
|
80
|
-
return params
|
80
|
+
return params if params[:person_attributes].blank?
|
81
81
|
|
82
|
-
params[:person_attributes]
|
82
|
+
params[:person_attributes][:by] = current_user
|
83
83
|
params
|
84
84
|
end
|
85
85
|
end
|
@@ -56,7 +56,7 @@ module Renalware
|
|
56
56
|
end
|
57
57
|
|
58
58
|
def draft_letter_failed(letter)
|
59
|
-
flash[:error] = t(".failed", model_name: "Letter")
|
59
|
+
flash.now[:error] = t(".failed", model_name: "Letter")
|
60
60
|
render_form(letter, :new)
|
61
61
|
end
|
62
62
|
|
@@ -79,7 +79,7 @@ module Renalware
|
|
79
79
|
end
|
80
80
|
|
81
81
|
def revise_letter_failed(letter)
|
82
|
-
flash[:error] = t(".failed", model_name: "Letter")
|
82
|
+
flash.now[:error] = t(".failed", model_name: "Letter")
|
83
83
|
render_form(letter, :edit)
|
84
84
|
end
|
85
85
|
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require_dependency "renalware/messaging"
|
2
|
+
|
3
|
+
module Renalware
|
4
|
+
module Messaging
|
5
|
+
class MessagesController < BaseController
|
6
|
+
include Renalware::Concerns::Pageable
|
7
|
+
include PresenterHelper
|
8
|
+
|
9
|
+
def sent
|
10
|
+
messages = author.messages.page(page).per(per_page)
|
11
|
+
authorize messages
|
12
|
+
render locals: { messages: present(messages, Messaging::InternalMessagePresenter) }
|
13
|
+
end
|
14
|
+
|
15
|
+
def new
|
16
|
+
authorize Message, :new?
|
17
|
+
form = MessageFormBuilder.new(patient: patient, params: params).call
|
18
|
+
render_new(form)
|
19
|
+
end
|
20
|
+
|
21
|
+
def create
|
22
|
+
authorize Message, :create?
|
23
|
+
form = MessageForm.new(message_params)
|
24
|
+
|
25
|
+
if form.valid?
|
26
|
+
message = SendMessage.call(author: author, patient: patient, form: form)
|
27
|
+
flash.now[:notice] = "Message was successfully sent"
|
28
|
+
render_create(message)
|
29
|
+
else
|
30
|
+
render_new(form)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
def message_we_are_replying_to(message)
|
37
|
+
return if message.replying_to_message_id.blank?
|
38
|
+
InternalMessagePresenter.new(message.replying_to_message)
|
39
|
+
end
|
40
|
+
|
41
|
+
def render_new(form)
|
42
|
+
render :new,
|
43
|
+
locals: {
|
44
|
+
form: form,
|
45
|
+
recipient_options: RecipientOptions.new(patient, current_user).to_a,
|
46
|
+
patient: patient
|
47
|
+
},
|
48
|
+
layout: false
|
49
|
+
end
|
50
|
+
|
51
|
+
def render_create(message)
|
52
|
+
render locals: {
|
53
|
+
message: InternalMessagePresenter.new(message),
|
54
|
+
original_message: message_we_are_replying_to(message)
|
55
|
+
}
|
56
|
+
end
|
57
|
+
|
58
|
+
def author
|
59
|
+
Messaging.cast_author(current_user)
|
60
|
+
end
|
61
|
+
|
62
|
+
def patient
|
63
|
+
Messaging.cast_patient(Patient.find(params[:patient_id]))
|
64
|
+
end
|
65
|
+
|
66
|
+
def message_params
|
67
|
+
params
|
68
|
+
.require(:messaging_message_form)
|
69
|
+
.permit(:subject, :body, :urgent, :replying_to_message_id, recipient_ids: [])
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|