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,22 @@
|
|
1
|
+
require_dependency "renalware/messaging"
|
2
|
+
|
3
|
+
module Renalware
|
4
|
+
module Modalities
|
5
|
+
class DescriptionPolicy < BasePolicy
|
6
|
+
# For safety we currently disallow the deletion of any ModalityDescription
|
7
|
+
def destroy?
|
8
|
+
false
|
9
|
+
end
|
10
|
+
|
11
|
+
# Its only possible to edit a ModalityDescription (e.g. to change its name) when it has no
|
12
|
+
# (STI) type - ie its not a system-required ModalityDescription.
|
13
|
+
def edit?
|
14
|
+
record.type.nil?
|
15
|
+
end
|
16
|
+
|
17
|
+
def update?
|
18
|
+
edit?
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -40,7 +40,12 @@ module Renalware
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def body_compositions
|
43
|
-
@body_compositions ||=
|
43
|
+
@body_compositions ||= begin
|
44
|
+
BodyComposition
|
45
|
+
.for_patient(patient)
|
46
|
+
.includes([:modality_description, :assessor])
|
47
|
+
.ordered
|
48
|
+
end
|
44
49
|
end
|
45
50
|
end
|
46
51
|
end
|
@@ -6,9 +6,6 @@ module Renalware
|
|
6
6
|
class DashboardPresenter
|
7
7
|
def initialize(user)
|
8
8
|
@user = user
|
9
|
-
@bookmarker = Patients.cast_user(user)
|
10
|
-
@typists = Letters.cast_typist(user)
|
11
|
-
@author = Letters.cast_author(user)
|
12
9
|
end
|
13
10
|
|
14
11
|
attr_reader :user
|
@@ -18,14 +15,27 @@ module Renalware
|
|
18
15
|
end
|
19
16
|
|
20
17
|
def bookmarks
|
21
|
-
@bookmarks ||=
|
22
|
-
|
23
|
-
|
24
|
-
|
18
|
+
@bookmarks ||= begin
|
19
|
+
Patients.cast_user(user)
|
20
|
+
.bookmarks
|
21
|
+
.ordered
|
22
|
+
.includes(patient: [current_modality: :description])
|
23
|
+
end
|
25
24
|
end
|
26
25
|
|
27
26
|
def letters_in_progress
|
28
|
-
@letters_in_progress ||=
|
27
|
+
@letters_in_progress ||= begin
|
28
|
+
present_letters(
|
29
|
+
Letters.cast_author(user).letters.in_progress.reverse
|
30
|
+
)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def unread_messages_receipts
|
35
|
+
@unread_messages_receipts ||= begin
|
36
|
+
receipts = Messaging.cast_recipient(user).receipts.unread
|
37
|
+
CollectionPresenter.new(receipts, Messaging::ReceiptPresenter)
|
38
|
+
end
|
29
39
|
end
|
30
40
|
|
31
41
|
private
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require_dependency "renalware/events"
|
2
|
+
|
3
|
+
module Renalware
|
4
|
+
module Events
|
5
|
+
class EventsPresenter < SimpleDelegator
|
6
|
+
attr_reader :patient
|
7
|
+
|
8
|
+
def initialize(patient, events)
|
9
|
+
@patient = patient
|
10
|
+
super(events)
|
11
|
+
end
|
12
|
+
|
13
|
+
def users_for_filtering
|
14
|
+
User.where(id: ids_of_users_having_created_events_for_this_patient)
|
15
|
+
.distinct
|
16
|
+
.order(family_name: :asc)
|
17
|
+
end
|
18
|
+
|
19
|
+
def event_types_for_filtering
|
20
|
+
Events::Type
|
21
|
+
.where(id: all_event_type_ids_in_use_for_this_patient)
|
22
|
+
.distinct
|
23
|
+
.order(name: :asc)
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def ids_of_users_having_created_events_for_this_patient
|
29
|
+
Event.for_patient(patient).pluck(:created_by_id)
|
30
|
+
end
|
31
|
+
|
32
|
+
def all_event_type_ids_in_use_for_this_patient
|
33
|
+
Event.for_patient(patient).pluck(:event_type_id)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require_dependency "renalware/messaging"
|
2
|
+
|
3
|
+
module Renalware
|
4
|
+
module Messaging
|
5
|
+
class InternalMessagePresenter < SimpleDelegator
|
6
|
+
def age_in_days
|
7
|
+
(Time.zone.now.to_date - sent_at.to_date).to_i
|
8
|
+
end
|
9
|
+
|
10
|
+
def html_identifier
|
11
|
+
"message-#{id}"
|
12
|
+
end
|
13
|
+
|
14
|
+
def html_preview_identifier
|
15
|
+
"message-preview-#{id}"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -1,3 +1,6 @@
|
|
1
|
+
require_dependency "renalware/pd"
|
2
|
+
require_dependency "renalware/events"
|
3
|
+
|
1
4
|
module Renalware
|
2
5
|
module PD
|
3
6
|
class DashboardPresenter
|
@@ -43,6 +46,10 @@ module Renalware
|
|
43
46
|
def training_sessions
|
44
47
|
@training_sessions ||= TrainingSession.for_patient(patient).ordered
|
45
48
|
end
|
49
|
+
|
50
|
+
def latest_pd_line_change_events
|
51
|
+
@latest_pd_line_change_events ||= Events::LineChangeEventQuery.new(patient).call(limit: 1)
|
52
|
+
end
|
46
53
|
end
|
47
54
|
end
|
48
55
|
end
|
@@ -1,41 +1,41 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
= within_admin_layout(title: "Edit",
|
2
|
+
breadcrumbs: breadcrumb_for("Users", admin_users_path)) do
|
3
3
|
|
4
|
-
|
5
|
-
.columns.small-12
|
6
|
-
h2= @user
|
4
|
+
h2= @user
|
7
5
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
6
|
+
= simple_form_for @user,
|
7
|
+
html: { autocomplete: "off" },
|
8
|
+
url: admin_user_path(@user) do |f|
|
9
|
+
= f.input :approved, as: :hidden, input_html: { value: true }
|
12
10
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
11
|
+
- if @user.errors.any?
|
12
|
+
ul.error-messages
|
13
|
+
- @user.errors.full_messages.each do |msg|
|
14
|
+
li= msg
|
17
15
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
16
|
+
- if @user.expired?
|
17
|
+
.row
|
18
|
+
= check_box_tag "user[unexpire]", true, false, class: "inline"
|
19
|
+
= label_tag :user_unexpire, "Reactivate account"
|
22
20
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
21
|
+
br
|
22
|
+
- Renalware::Role.all.each_with_index do |role, index|
|
23
|
+
- element_id = "user_role_ids_#{index}"
|
24
|
+
= check_box_tag "user[role_ids][]",
|
25
|
+
role.id,
|
26
|
+
@user.has_role?(role.name),
|
27
|
+
disabled: role.hidden,
|
28
|
+
id: element_id,
|
29
|
+
class: "inline"
|
30
|
+
= label_tag element_id, role.name.humanize
|
31
|
+
br
|
32
|
+
br
|
33
|
+
= f.input :telephone,
|
34
|
+
input_html: { class: "input small" },
|
35
|
+
wrapper: :horizontal_small
|
32
36
|
|
33
|
-
.row
|
34
|
-
.large-2.columns
|
35
|
-
= f.input :telephone, input_html: { class: "input small" }
|
36
37
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
= link_to "cancel", admin_users_path
|
38
|
+
- msg = @user.approved? ? "Update" : "Approve"
|
39
|
+
= f.submit msg, class: "button"
|
40
|
+
span= " or "
|
41
|
+
= link_to "cancel", admin_users_path
|
@@ -1,7 +1,13 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
= within_admin_layout(title: "Users") do
|
2
|
+
|
3
|
+
dl.sub-nav
|
4
|
+
dd(class=("active" if params[:q].nil?))
|
5
|
+
= link_to "All", admin_users_path(q: nil)
|
6
|
+
dd(class=("active" if params.fetch(:q, {})[:unapproved]))
|
7
|
+
= link_to "Unapproved", admin_unapproved_users_path
|
8
|
+
dd(class=("active" if params.fetch(:q, {})[:inactive]))
|
9
|
+
= link_to "Inactive", admin_inactive_users_path
|
3
10
|
|
4
|
-
.row
|
5
11
|
table
|
6
12
|
thead
|
7
13
|
th.col-width-tiny
|
@@ -1,8 +1,8 @@
|
|
1
1
|
= within_patient_layout(title: "Body Composition Measurement") do
|
2
2
|
|
3
3
|
.document
|
4
|
-
= simple_form_for
|
5
|
-
url: patient_clinical_body_composition_path(
|
4
|
+
= simple_form_for body_composition,
|
5
|
+
url: patient_clinical_body_composition_path(patient, body_composition),
|
6
6
|
html: { autocomplete: "off" },
|
7
7
|
wrapper: "horizontal_form" do |f|
|
8
8
|
= render "form", f: f, patient: patient
|
@@ -25,11 +25,11 @@
|
|
25
25
|
= f.input :weight, wrapper: :horizontal_small
|
26
26
|
= f.input :bp,
|
27
27
|
label: "Blood Pressure",
|
28
|
-
placeholder: "
|
28
|
+
placeholder: "e.g. 110/70",
|
29
29
|
wrapper: :horizontal_small
|
30
30
|
= f.input :standing_bp,
|
31
31
|
label: "Standing BP",
|
32
|
-
placeholder: "
|
32
|
+
placeholder: "e.g. 110/70",
|
33
33
|
wrapper: :horizontal_small
|
34
34
|
= f.input :pulse, wrapper: :horizontal_small
|
35
35
|
= f.input :temperature, wrapper: :horizontal_small
|
@@ -1,6 +1,5 @@
|
|
1
1
|
tr class=("urgent" if bookmark.urgent?)
|
2
|
-
td= link_to
|
3
|
-
td= bookmark.patient
|
2
|
+
td= link_to bookmark.patient.to_s(:long), patient_clinical_summary_path(bookmark.patient)
|
4
3
|
td= bookmark.patient.hospital_identifier
|
5
4
|
td= I18n.l bookmark.patient.born_on
|
6
5
|
td= bookmark.patient.age
|
@@ -8,6 +7,6 @@ tr class=("urgent" if bookmark.urgent?)
|
|
8
7
|
td= bookmark.patient.current_modality
|
9
8
|
td= bookmark.notes
|
10
9
|
td= I18n.l bookmark.created_at
|
11
|
-
td= render "renalware/patients/bookmarks/delete",
|
12
|
-
|
13
|
-
|
10
|
+
td.nowrap= render "renalware/patients/bookmarks/delete",
|
11
|
+
bookmark: bookmark,
|
12
|
+
link_text: "Remove"
|
@@ -17,7 +17,13 @@
|
|
17
17
|
|
18
18
|
section.messages
|
19
19
|
h2 Messages
|
20
|
-
|
20
|
+
- if dashboard.unread_messages_receipts.any?
|
21
|
+
= render "renalware/messaging/shared/key"
|
22
|
+
.unread-messages
|
23
|
+
= render "renalware/messaging/receipts/table",
|
24
|
+
receipts: dashboard.unread_messages_receipts
|
25
|
+
- else
|
26
|
+
p.empty-section= t(".messages.none")
|
21
27
|
|
22
28
|
section.electonic_ccs
|
23
29
|
h2 Electronic CCs
|
@@ -10,7 +10,7 @@ tr(class=letter.state.dasherize)
|
|
10
10
|
span= letter.state_description
|
11
11
|
td= l letter.issued_on
|
12
12
|
td= letter.author
|
13
|
-
td= link_to letter.patient,
|
13
|
+
td= link_to letter.patient, patient_clinical_summary_path(letter.patient)
|
14
14
|
td= letter.description
|
15
15
|
= content_tag(:tr, id: "quick-preview-#{letter.id}", style: "display: none")
|
16
16
|
td
|
@@ -1,38 +1,35 @@
|
|
1
|
-
= within_patient_layout(title: "
|
1
|
+
= within_patient_layout(title: "Cause of Death",
|
2
|
+
breadcrumbs: breadcrumb_for("Clinical Profile", patient_clinical_profile_path(@patient))) do
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
|
4
|
+
= simple_form_for @patient,
|
5
|
+
url: patient_death_path(@patient),
|
6
|
+
html: { autocomplete: "off" },
|
7
|
+
wrapper: "horizontal_form" do |f|
|
6
8
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
9
|
+
= f.input :died_on,
|
10
|
+
as: :date_picker,
|
11
|
+
label: "Date of Death",
|
12
|
+
wrapper: :horizontal_datepicker
|
11
13
|
|
12
|
-
|
13
|
-
.large-12.columns
|
14
|
-
fieldset
|
15
|
-
legend Cause of Death
|
16
|
-
.large-9.columns
|
17
|
-
= f.input :died_on, as: :date_picker, label: "Date of Death"
|
18
|
-
|
19
|
-
= f.association :first_cause,
|
14
|
+
= f.association :first_cause,
|
20
15
|
label: "Cause of Death (1)",
|
21
16
|
label_method: :description,
|
22
17
|
value_method: :id,
|
23
|
-
include_blank: "Select 1st cause of death"
|
18
|
+
include_blank: "Select 1st cause of death",
|
19
|
+
wrapper: :horizontal_medium
|
24
20
|
|
25
|
-
|
21
|
+
= f.association :second_cause,
|
26
22
|
label: "Cause of Death (2)",
|
27
23
|
label_method: :description,
|
28
24
|
value_method: :id,
|
29
|
-
include_blank: "Select 2nd cause of death"
|
25
|
+
include_blank: "Select 2nd cause of death",
|
26
|
+
wrapper: :horizontal_medium
|
30
27
|
|
31
|
-
|
32
|
-
|
28
|
+
= f.input :death_notes,
|
29
|
+
label: "Notes",
|
30
|
+
as: :text, input_html: { rows: 5 },
|
31
|
+
wrapper: :horizontal_large
|
33
32
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
span= " or "
|
38
|
-
= link_to "cancel", patient_clinical_profile_path(@patient)
|
33
|
+
= f.button :submit
|
34
|
+
span= " or "
|
35
|
+
= link_to "cancel", patient_clinical_profile_path(@patient)
|
@@ -17,7 +17,7 @@
|
|
17
17
|
html: { autocomplete: "off" }) do |f|
|
18
18
|
= f.input :username, input_html: { autofocus: true }, required: false
|
19
19
|
= f.input :password, input_html: { autocomplete: "off" }
|
20
|
-
= f.input
|
20
|
+
= f.input(:remember_me, as: :boolean, boolean_style: :inline) if devise_mapping.rememberable?
|
21
21
|
|
22
22
|
.actions
|
23
23
|
= f.submit "Log in", class: "button save"
|
@@ -1,14 +1,16 @@
|
|
1
1
|
= f.simple_fields_for :address, wrapper: "horizontal_form" do |fa|
|
2
2
|
= fa.input :name,
|
3
|
-
placeholder: "If different than above (optional)"
|
3
|
+
placeholder: "If different than above (optional)",
|
4
|
+
wrapper: :horizontal_medium
|
4
5
|
= fa.input :organisation_name,
|
5
|
-
placeholder: "e.g. practice or hospital name (optional)"
|
6
|
-
|
7
|
-
= fa.input :
|
8
|
-
= fa.input :
|
9
|
-
= fa.input :
|
10
|
-
= fa.input :
|
11
|
-
= fa.input :
|
12
|
-
= fa.input :
|
13
|
-
= fa.input :
|
14
|
-
= fa.input :
|
6
|
+
placeholder: "e.g. practice or hospital name (optional)",
|
7
|
+
wrapper: :horizontal_medium
|
8
|
+
= fa.input :street_1, wrapper: :horizontal_medium
|
9
|
+
= fa.input :street_2, wrapper: :horizontal_medium
|
10
|
+
= fa.input :street_3, wrapper: :horizontal_medium
|
11
|
+
= fa.input :town, wrapper: :horizontal_small
|
12
|
+
= fa.input :county, wrapper: :horizontal_small
|
13
|
+
= fa.input :postcode, wrapper: :horizontal_small
|
14
|
+
= fa.input :country, as: :string, wrapper: :horizontal_small
|
15
|
+
= fa.input :telephone, wrapper: :horizontal_small
|
16
|
+
= fa.input :email, wrapper: :horizontal_small
|
@@ -0,0 +1,9 @@
|
|
1
|
+
.search-form.filters
|
2
|
+
= simple_form_for q, as: :q, url: directory_people_path, method: :get do |f|
|
3
|
+
.row
|
4
|
+
.small-8.medium-6.large-4.columns
|
5
|
+
= f.input :name_cont, label: "Name contains"
|
6
|
+
.small-4.end.columns.actions
|
7
|
+
= f.submit t("helpers.submit.filter"), class: "button"
|
8
|
+
span= " or "
|
9
|
+
= link_to t("helpers.reset"), directory_people_path
|
@@ -1,17 +1,15 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
= f.input :given_name
|
9
|
-
= f.input :family_name
|
1
|
+
= simple_form_for person,
|
2
|
+
html: { autocomplete: "off" },
|
3
|
+
wrapper: "horizontal_form" do |f|
|
4
|
+
= field_set_tag "Person" do
|
5
|
+
= f.input :title, wrapper: :horizontal_tiny
|
6
|
+
= f.input :given_name, wrapper: :horizontal_medium
|
7
|
+
= f.input :family_name, wrapper: :horizontal_medium
|
10
8
|
|
11
|
-
|
12
|
-
|
9
|
+
= field_set_tag "Postal Address" do
|
10
|
+
= render "address_form", f: f
|
13
11
|
|
14
|
-
|
15
|
-
|
16
|
-
|
12
|
+
= f.button :submit
|
13
|
+
span= " or "
|
14
|
+
= link_to "cancel", directory_people_path
|
17
15
|
|
@@ -1,5 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
= render "renalware/shared/errors", model: @person
|
1
|
+
= within_admin_layout(title: "Edit Person",
|
2
|
+
breadcrumbs: breadcrumb_for("Directory", directory_people_path))
|
4
3
|
|
5
|
-
= render "
|
4
|
+
= render "renalware/shared/errors", model: person
|
5
|
+
= render "form", person: person
|
@@ -1,31 +1,9 @@
|
|
1
|
-
|
2
|
-
=
|
1
|
+
= content_for(:actions) do
|
2
|
+
= link_to "Add Person", new_directory_person_path, class: "button"
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
fieldset
|
7
|
-
legend Filters
|
8
|
-
= simple_form_for @q, as: :q, url: directory_people_path, method: :get do |f|
|
9
|
-
.row
|
10
|
-
.large-8.columns
|
11
|
-
= f.input :name_cont, label: "Name contains"
|
12
|
-
.large-4.columns.actions
|
13
|
-
= f.submit t("helpers.submit.filter"), class: "button"
|
14
|
-
span= " or "
|
15
|
-
= link_to t("helpers.reset"), directory_people_path
|
4
|
+
= within_admin_layout(title: "Directory")
|
5
|
+
= render "filters", q: q
|
16
6
|
|
17
|
-
|
18
|
-
=
|
19
|
-
|
20
|
-
table.auto-layout.people
|
21
|
-
thead
|
22
|
-
tr
|
23
|
-
th.col-width-small
|
24
|
-
th Title
|
25
|
-
th Family Name
|
26
|
-
th Given Name
|
27
|
-
th Address
|
28
|
-
tbody
|
29
|
-
= render partial: "person", collection: @people
|
30
|
-
|
31
|
-
= paginate @people
|
7
|
+
= page_entries_info people
|
8
|
+
= render "table", people: people
|
9
|
+
= paginate people
|