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
@@ -0,0 +1,20 @@
|
|
1
|
+
module Renalware
|
2
|
+
module System
|
3
|
+
class ErrorsController < ApplicationController
|
4
|
+
layout "renalware/layouts/error"
|
5
|
+
|
6
|
+
def not_found
|
7
|
+
render status: 404, formats: [:html]
|
8
|
+
end
|
9
|
+
|
10
|
+
def internal_server_error
|
11
|
+
render status: 500, formats: [:html]
|
12
|
+
end
|
13
|
+
|
14
|
+
def generate_test_internal_server_error
|
15
|
+
raise "This is an intentionally raised error - please ignore it. " \
|
16
|
+
"It is used only to test system integration"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -22,7 +22,7 @@ module Renalware
|
|
22
22
|
redirect_to patient_transplants_donor_dashboard_path(patient),
|
23
23
|
notice: t(".success", model_name: "donation")
|
24
24
|
else
|
25
|
-
flash[:error] = t(".failed", model_name: "donation")
|
25
|
+
flash.now[:error] = t(".failed", model_name: "donation")
|
26
26
|
render :new, locals: { patient: patient, donation: donation }
|
27
27
|
end
|
28
28
|
end
|
@@ -40,7 +40,7 @@ module Renalware
|
|
40
40
|
redirect_to patient_transplants_donor_dashboard_path(patient),
|
41
41
|
notice: t(".success", model_name: "donation")
|
42
42
|
else
|
43
|
-
flash[:error] = t(".failed", model_name: "donation")
|
43
|
+
flash.now[:error] = t(".failed", model_name: "donation")
|
44
44
|
render :edit, locals: { patient: patient, donation: donation }
|
45
45
|
end
|
46
46
|
end
|
@@ -22,7 +22,7 @@ module Renalware
|
|
22
22
|
redirect_to patient_transplants_donor_dashboard_path(patient),
|
23
23
|
notice: t(".success", model_name: "donor operation")
|
24
24
|
else
|
25
|
-
flash[:error] = t(".failed", model_name: "donor operation")
|
25
|
+
flash.now[:error] = t(".failed", model_name: "donor operation")
|
26
26
|
render :new, locals: { operation: operation, patient: patient }
|
27
27
|
end
|
28
28
|
end
|
@@ -40,7 +40,7 @@ module Renalware
|
|
40
40
|
redirect_to patient_transplants_donor_dashboard_path(patient),
|
41
41
|
notice: t(".success", model_name: "donor operation")
|
42
42
|
else
|
43
|
-
flash[:error] = t(".failed", model_name: "donor operation")
|
43
|
+
flash.now[:error] = t(".failed", model_name: "donor operation")
|
44
44
|
render :edit, locals: { operation: operation, patient: patient }
|
45
45
|
end
|
46
46
|
end
|
@@ -23,7 +23,7 @@ module Renalware
|
|
23
23
|
redirect_to patient_transplants_donor_workup_path(patient),
|
24
24
|
notice: t(".success", model_name: "donor work up")
|
25
25
|
else
|
26
|
-
flash[:error] = t(".failed", model_name: "donor work up")
|
26
|
+
flash.now[:error] = t(".failed", model_name: "donor work up")
|
27
27
|
render :edit, locals: { patient: patient, workup: workup }
|
28
28
|
end
|
29
29
|
end
|
@@ -25,7 +25,7 @@ module Renalware
|
|
25
25
|
redirect_to patient_transplants_recipient_dashboard_path(patient),
|
26
26
|
notice: t(".success", model_name: "recipient follow up")
|
27
27
|
else
|
28
|
-
flash[:error] = t(".failed", model_name: "recipient follow up")
|
28
|
+
flash.now[:error] = t(".failed", model_name: "recipient follow up")
|
29
29
|
render :new, locals: { patient: patient, recipient_followup: recipient_followup }
|
30
30
|
end
|
31
31
|
end
|
@@ -45,7 +45,7 @@ module Renalware
|
|
45
45
|
redirect_to patient_transplants_recipient_dashboard_path(patient),
|
46
46
|
notice: t(".success", model_name: "recipient follow up")
|
47
47
|
else
|
48
|
-
flash[:error] = t(".failed", model_name: "recipient follow up")
|
48
|
+
flash.now[:error] = t(".failed", model_name: "recipient follow up")
|
49
49
|
render :edit,
|
50
50
|
locals: {
|
51
51
|
patient: patient,
|
@@ -27,7 +27,7 @@ module Renalware
|
|
27
27
|
redirect_to patient_transplants_recipient_dashboard_path(patient),
|
28
28
|
notice: t(".success", model_name: "recipient operation")
|
29
29
|
else
|
30
|
-
flash[:error] = t(".failed", model_name: "recipient operation")
|
30
|
+
flash.now[:error] = t(".failed", model_name: "recipient operation")
|
31
31
|
render :new,
|
32
32
|
locals: {
|
33
33
|
patient: patient,
|
@@ -50,7 +50,7 @@ module Renalware
|
|
50
50
|
redirect_to patient_transplants_recipient_dashboard_path(patient),
|
51
51
|
notice: t(".success", model_name: "recipient operation")
|
52
52
|
else
|
53
|
-
flash[:error] = t(".failed", model_name: "recipient operation")
|
53
|
+
flash.now[:error] = t(".failed", model_name: "recipient operation")
|
54
54
|
render :edit, locals: { patient: patient, recipient_operation: operation }
|
55
55
|
end
|
56
56
|
end
|
@@ -32,7 +32,7 @@ module Renalware
|
|
32
32
|
redirect_to patient_transplants_recipient_workup_path(patient),
|
33
33
|
notice: t(".success", model_name: "recipient work up")
|
34
34
|
else
|
35
|
-
flash[:error] = t(".failed", model_name: "recipient work up")
|
35
|
+
flash.now[:error] = t(".failed", model_name: "recipient work up")
|
36
36
|
render :edit, locals: { patient: patient, workup: workup }
|
37
37
|
end
|
38
38
|
end
|
@@ -19,7 +19,7 @@ module Renalware
|
|
19
19
|
redirect_to patient_transplants_recipient_dashboard_path(patient),
|
20
20
|
notice: t(".success", model_name: "registration status")
|
21
21
|
else
|
22
|
-
flash[:error] = t(".failed", model_name: "registration status")
|
22
|
+
flash.now[:error] = t(".failed", model_name: "registration status")
|
23
23
|
render :new, locals: { patient: patient, status: status }
|
24
24
|
end
|
25
25
|
end
|
@@ -38,7 +38,7 @@ module Renalware
|
|
38
38
|
redirect_to patient_transplants_recipient_dashboard_path(patient),
|
39
39
|
notice: t(".success", model_name: "registration status")
|
40
40
|
else
|
41
|
-
flash[:error] = t(".failed", model_name: "registration status")
|
41
|
+
flash.now[:error] = t(".failed", model_name: "registration status")
|
42
42
|
render :edit, locals: { patient: patient, status: status }
|
43
43
|
end
|
44
44
|
end
|
@@ -22,7 +22,7 @@ module Renalware
|
|
22
22
|
redirect_to patient_transplants_recipient_dashboard_path(patient),
|
23
23
|
notice: t(".success", model_name: "registration")
|
24
24
|
else
|
25
|
-
flash[:error] = t(".failed", model_name: "registration")
|
25
|
+
flash.now[:error] = t(".failed", model_name: "registration")
|
26
26
|
render :edit, locals: { patient: patient, registration: registration }
|
27
27
|
end
|
28
28
|
end
|
@@ -20,6 +20,7 @@ module Renalware
|
|
20
20
|
attribute :ischaemic_neuropathic_ulcers, YearDatedConfirmation
|
21
21
|
attribute :non_coronary_intervention, YearDatedConfirmation
|
22
22
|
attribute :dementia, YearDatedConfirmation
|
23
|
+
attribute :smoking, SmokingStatus
|
23
24
|
end
|
24
25
|
attribute :comorbidities, Comorbidities
|
25
26
|
|
@@ -4,7 +4,7 @@ module Renalware
|
|
4
4
|
# e.g. Engine.routes.url_for({controller: .., action: .., only_path: true})
|
5
5
|
def sub_nav_item(label, path)
|
6
6
|
current_page = current_page?(path)
|
7
|
-
content_tag(:dd, class: (
|
7
|
+
content_tag(:dd, class: ("active" if current_page)) do
|
8
8
|
link_to label, path
|
9
9
|
end
|
10
10
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require_dependency "renalware"
|
2
2
|
|
3
3
|
module Renalware
|
4
|
-
#
|
4
|
+
# Responsible for assigning a system user to the record when it is created
|
5
5
|
# and updated.
|
6
6
|
#
|
7
7
|
# @example
|
@@ -27,6 +27,21 @@ module Renalware
|
|
27
27
|
scope :with_updated_by, -> { includes(:updated_by) }
|
28
28
|
end
|
29
29
|
|
30
|
+
def save_by!(user)
|
31
|
+
self.by = user
|
32
|
+
save!
|
33
|
+
end
|
34
|
+
|
35
|
+
def save_by(user)
|
36
|
+
self.by = user
|
37
|
+
save
|
38
|
+
end
|
39
|
+
|
40
|
+
def update_by(user, attrs)
|
41
|
+
self.by = user
|
42
|
+
update(attrs)
|
43
|
+
end
|
44
|
+
|
30
45
|
private
|
31
46
|
|
32
47
|
def assign_creator
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require_dependency "renalware"
|
2
|
+
|
3
|
+
module Renalware
|
4
|
+
module Broadcasting
|
5
|
+
include Wisper::Publisher
|
6
|
+
extend ActiveSupport::Concern
|
7
|
+
|
8
|
+
# Subscribes any listeners configured in Renalware.config.broadcast_subscription_map
|
9
|
+
# to the current instance.
|
10
|
+
#
|
11
|
+
# Example usage
|
12
|
+
#
|
13
|
+
# class SomeServiceObject
|
14
|
+
# include Broadcasting
|
15
|
+
#
|
16
|
+
# def call
|
17
|
+
# ..
|
18
|
+
# end
|
19
|
+
# end
|
20
|
+
#
|
21
|
+
# SomeServiceObject.new(..).broadcasting_to_configured_subscribers.call(..)
|
22
|
+
#
|
23
|
+
# See https://github.com/krisleech/wisper
|
24
|
+
#
|
25
|
+
def broadcasting_to_configured_subscribers
|
26
|
+
subscribers = Renalware.config.broadcast_subscription_map[self.class.name]
|
27
|
+
Array(subscribers).each{ |listener|
|
28
|
+
subscribe(listener.to_s.constantize.new)
|
29
|
+
}
|
30
|
+
self
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -16,7 +16,9 @@ module Renalware
|
|
16
16
|
belongs_to :patient, touch: true
|
17
17
|
belongs_to :event_type, class_name: "Type"
|
18
18
|
|
19
|
-
validates :patient,
|
19
|
+
validates :patient, presence: true
|
20
|
+
validates :date_time, presence: true
|
21
|
+
validates :event_type_id, presence: true
|
20
22
|
validates :date_time, timeliness: { type: :datetime }
|
21
23
|
|
22
24
|
scope :ordered, -> { order(date_time: :desc, updated_at: :desc) }
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require_dependency "renalware/clinics"
|
2
|
+
|
3
|
+
module Renalware
|
4
|
+
module Events
|
5
|
+
class EventQuery
|
6
|
+
attr_reader :query, :patient
|
7
|
+
|
8
|
+
def initialize(patient:, query: {})
|
9
|
+
@query = query
|
10
|
+
@patient = patient
|
11
|
+
@query[:s] = "created_at DESC" if @query[:s].blank?
|
12
|
+
end
|
13
|
+
|
14
|
+
def call
|
15
|
+
search.result.for_patient(patient)
|
16
|
+
.includes(:event_type)
|
17
|
+
.eager_load(:event_type)
|
18
|
+
.includes(:created_by)
|
19
|
+
.eager_load(:created_by)
|
20
|
+
.page(query[:page]).per(query[:per_page])
|
21
|
+
.ordered
|
22
|
+
end
|
23
|
+
|
24
|
+
def search
|
25
|
+
@search ||= Event.ransack(query)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require_dependency "renalware/clinics"
|
2
|
+
|
3
|
+
module Renalware
|
4
|
+
module Events
|
5
|
+
class LineChangeEventQuery
|
6
|
+
attr_reader :patient
|
7
|
+
|
8
|
+
def initialize(patient)
|
9
|
+
@patient = patient
|
10
|
+
end
|
11
|
+
|
12
|
+
def call(limit: 1)
|
13
|
+
return [] if event_type.nil?
|
14
|
+
Event.for_patient(patient)
|
15
|
+
.where(event_type_id: event_type.id)
|
16
|
+
.order(date_time: :desc)
|
17
|
+
.limit(limit)
|
18
|
+
end
|
19
|
+
|
20
|
+
def event_type
|
21
|
+
@event_type ||= Renalware::Events::Type.find_by(slug: :pd_line_changes)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# rubocop:disable Rails/SkipsModelValidations
|
2
|
+
module Renalware
|
3
|
+
module HD
|
4
|
+
class PatientListener
|
5
|
+
def patient_modality_changed_to_death(patient:, modality:, actor:)
|
6
|
+
nullify_significant_hd_profile_attributes(patient, by: actor)
|
7
|
+
end
|
8
|
+
|
9
|
+
private
|
10
|
+
|
11
|
+
def nullify_significant_hd_profile_attributes(patient, by:)
|
12
|
+
hd_profile = HD.cast_patient(patient).hd_profile
|
13
|
+
return if hd_profile.nil?
|
14
|
+
hd_profile.hospital_unit = nil
|
15
|
+
hd_profile.schedule = nil
|
16
|
+
hd_profile.save_by!(by)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -31,8 +31,8 @@ module Renalware
|
|
31
31
|
|
32
32
|
class Observations < Renalware::HD::SessionDocument::Observations
|
33
33
|
validates_presence_of :pulse, :blood_pressure, :weight_measured, :temperature_measured
|
34
|
-
validates_presence_of :weight, if:
|
35
|
-
validates_presence_of :temperature, if:
|
34
|
+
validates_presence_of :weight, if: ->{ weight_measured&.yes? }
|
35
|
+
validates_presence_of :temperature, if: ->{ temperature_measured&.yes? }
|
36
36
|
validates :blood_pressure, "renalware/patients/blood_pressure_presence" => true
|
37
37
|
end
|
38
38
|
attribute :observations_before, Observations
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# To override the values in the location enum use something like this:
|
2
|
+
# module CustomizeHDStationLocationEnum
|
3
|
+
# extend Enumerize
|
4
|
+
# enumerize :location, in: %i(side_room ante_room cubicle)
|
5
|
+
# end
|
6
|
+
# Renalware::HD::Station.singleton_class.send(:prepend, CustomizeHDStationLocationEnum)
|
7
|
+
#
|
8
|
+
require_dependency "renalware/hd"
|
9
|
+
|
10
|
+
module Renalware
|
11
|
+
module HD
|
12
|
+
class Station < ApplicationRecord
|
13
|
+
extend Enumerize
|
14
|
+
include Accountable
|
15
|
+
validates :hospital_unit_id, presence: true
|
16
|
+
validates :name, uniqueness: { scope: :hospital_unit_id }
|
17
|
+
|
18
|
+
enumerize :location, in: %i(side_room)
|
19
|
+
|
20
|
+
scope :for_unit, ->(id){ where(hospital_unit_id: id) }
|
21
|
+
scope :ordered, ->{ order(position: :asc) }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -12,6 +12,7 @@ module Renalware
|
|
12
12
|
validates :name, presence: true
|
13
13
|
validates :renal_registry_code, presence: true
|
14
14
|
validates :unit_type, presence: true
|
15
|
+
validates :number_of_hd_stations, numericality: { allow_blank: true, only_integer: true }
|
15
16
|
|
16
17
|
enumerize :unit_type, in: %i(hospital satellite home)
|
17
18
|
|
@@ -18,7 +18,7 @@ module Renalware
|
|
18
18
|
private
|
19
19
|
|
20
20
|
def process_main_recipient_attributes(params)
|
21
|
-
return params unless params.
|
21
|
+
return params unless params.key?(:main_recipient_attributes)
|
22
22
|
|
23
23
|
params.merge(
|
24
24
|
main_recipient_attributes: main_recipient_attributes(params)
|
@@ -26,7 +26,7 @@ module Renalware
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def process_cc_recipients_attributes(params)
|
29
|
-
return params unless params.
|
29
|
+
return params unless params.key?(:cc_recipients_attributes)
|
30
30
|
|
31
31
|
params.merge(
|
32
32
|
cc_recipients_attributes: cc_recipients_attributes(params)
|
@@ -4,7 +4,7 @@ module Renalware
|
|
4
4
|
module Letters
|
5
5
|
class Part::RecentPathologyResults < Part
|
6
6
|
|
7
|
-
delegate :each, :present?, to: :recent_pathology_results
|
7
|
+
delegate :each, :any?, :present?, to: :recent_pathology_results
|
8
8
|
|
9
9
|
def to_partial_path
|
10
10
|
"renalware/letters/parts/recent_pathology_results"
|
@@ -19,9 +19,14 @@ module Renalware
|
|
19
19
|
def find_recent_pathology_results
|
20
20
|
presenter = Pathology::CurrentObservationResults::Presenter.new
|
21
21
|
descriptions = Letters::RelevantObservationDescription.all
|
22
|
-
|
23
|
-
|
24
|
-
|
22
|
+
query = Pathology::CurrentObservationsForDescriptionsQuery.new(
|
23
|
+
patient: @patient,
|
24
|
+
descriptions: descriptions
|
25
|
+
)
|
26
|
+
|
27
|
+
# Only select display result with a value
|
28
|
+
results = query.call.reject{ |result| result.result.blank? }
|
29
|
+
|
25
30
|
# Removes the header from the results, this will be unnecessary when
|
26
31
|
# a custom Presenter is implemented
|
27
32
|
presenter.present(results)[1..-1]
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# rubocop:disable Rails/SkipsModelValidations
|
2
|
+
module Renalware
|
3
|
+
module Letters
|
4
|
+
class PatientListener
|
5
|
+
def patient_modality_changed_to_death(patient:, modality:, actor:)
|
6
|
+
# Using update_columns here (bypassing validation) because currently, once the Death
|
7
|
+
# modality is assigned, attempting to update the patient triggers validation
|
8
|
+
# on cause_of_death which will at this stage be missing.
|
9
|
+
patient.update_columns(
|
10
|
+
cc_on_all_letters: false,
|
11
|
+
cc_decision_on: modality.started_on
|
12
|
+
)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require_dependency "renalware/medications"
|
2
|
+
|
3
|
+
module Renalware
|
4
|
+
module Medications
|
5
|
+
class PatientListener
|
6
|
+
def patient_modality_changed_to_death(patient:, modality:, actor:)
|
7
|
+
TerminateAllPatientPrescriptions.call(patient: patient, by: actor)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -17,7 +17,8 @@ module Renalware
|
|
17
17
|
@search ||= begin
|
18
18
|
Prescription
|
19
19
|
.current
|
20
|
-
.includes(:medication_route, :
|
20
|
+
.includes(:medication_route, :drug)
|
21
|
+
.includes(patient: { current_modality: :description })
|
21
22
|
.eager_load(drug: [:drug_types])
|
22
23
|
.where("lower(drug_types.name) = lower(?)", drug_type_name)
|
23
24
|
.search(search_params)
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require_dependency "renalware/medications"
|
2
|
+
|
3
|
+
module Renalware
|
4
|
+
module Medications
|
5
|
+
class TerminateAllPatientPrescriptions
|
6
|
+
attr_reader :patient, :by
|
7
|
+
|
8
|
+
def self.call(patient:, by:)
|
9
|
+
new(patient, by).call
|
10
|
+
end
|
11
|
+
|
12
|
+
def initialize(patient, by)
|
13
|
+
@patient = patient
|
14
|
+
@by = by
|
15
|
+
end
|
16
|
+
|
17
|
+
def call
|
18
|
+
patient.prescriptions.each do |prescription|
|
19
|
+
prescription.terminate(by: by).save!
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|