renalware-core 2.0.77 → 2.0.78
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/images/renalware/hd/avf_avg_assessment.jpg +0 -0
- data/app/assets/javascripts/renalware/table.js +16 -0
- data/app/assets/stylesheets/renalware/base/_variables.scss +2 -1
- data/app/assets/stylesheets/renalware/lib/_foundation_and_overrides.scss +1 -1
- data/app/assets/stylesheets/renalware/modules/_admissions.scss +0 -5
- data/app/assets/stylesheets/renalware/modules/_clinical.scss +22 -6
- data/app/assets/stylesheets/renalware/modules/_hd.scss +0 -9
- data/app/assets/stylesheets/renalware/modules/_pathology.scss +49 -5
- data/app/assets/stylesheets/renalware/modules/_patients.scss +5 -2
- data/app/assets/stylesheets/renalware/modules/_system.scss +65 -0
- data/app/assets/stylesheets/renalware/partials/_button.scss +1 -1
- data/app/assets/stylesheets/renalware/partials/_forms.scss +7 -7
- data/app/assets/stylesheets/renalware/partials/_layout.scss +1 -1
- data/app/assets/stylesheets/renalware/partials/_lists.scss +11 -0
- data/app/assets/stylesheets/renalware/partials/_mdm.scss +0 -6
- data/app/assets/stylesheets/renalware/partials/_modal_window.scss +10 -2
- data/app/assets/stylesheets/renalware/partials/_navigation.scss +2 -2
- data/app/assets/stylesheets/renalware/partials/_print.scss +1 -1
- data/app/assets/stylesheets/renalware/partials/_tables.scss +40 -20
- data/app/assets/stylesheets/renalware/partials/_typography.scss +1 -0
- data/app/controllers/renalware/accesses/assessments_controller.rb +2 -2
- data/app/controllers/renalware/accesses/procedures_controller.rb +1 -1
- data/app/controllers/renalware/accesses/profiles_controller.rb +2 -2
- data/app/controllers/renalware/admin/users_controller.rb +1 -1
- data/app/controllers/renalware/admissions/consults_controller.rb +6 -3
- data/app/controllers/renalware/clinical/body_compositions_controller.rb +2 -2
- data/app/controllers/renalware/clinics/clinic_visits_controller.rb +2 -2
- data/app/controllers/renalware/deaths_controller.rb +1 -1
- data/app/controllers/renalware/drugs/drugs_controller.rb +1 -1
- data/app/controllers/renalware/hd/cannulation_types_controller.rb +3 -3
- data/app/controllers/renalware/hd/current_profile_controller.rb +1 -1
- data/app/controllers/renalware/hd/preference_sets_controller.rb +1 -1
- data/app/controllers/renalware/hospitals/wards_controller.rb +1 -1
- data/app/controllers/renalware/letters/letters_controller.rb +5 -5
- data/app/controllers/renalware/medications/prescriptions_controller.rb +1 -1
- data/app/controllers/renalware/messaging/internal/messages_controller.rb +6 -6
- data/app/controllers/renalware/modalities/descriptions_controller.rb +3 -3
- data/app/controllers/renalware/modalities/modalities_controller.rb +1 -1
- data/app/controllers/renalware/pathology/patient_rules_controller.rb +3 -3
- data/app/controllers/renalware/patients/primary_care_physicians_controller.rb +2 -2
- 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/regimes_controller.rb +1 -1
- data/app/controllers/renalware/pd/training_sessions_controller.rb +2 -2
- data/app/controllers/renalware/renal/profiles_controller.rb +1 -1
- data/app/controllers/renalware/reporting/audits_controller.rb +1 -1
- data/app/controllers/renalware/system/downloads_controller.rb +96 -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 +13 -12
- 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 +3 -3
- data/app/controllers/renalware/transplants/registrations_controller.rb +1 -1
- data/app/documents/renalware/dated_integer.rb +1 -1
- data/app/documents/renalware/hd/session_document.rb +11 -0
- data/app/documents/renalware/infection_status.rb +1 -1
- data/app/documents/renalware/transplants/donor_operation_document.rb +3 -3
- data/app/documents/renalware/transplants/registration_document.rb +2 -2
- data/app/drops/renalware/pd/patient_drop.rb +1 -1
- data/app/helpers/renalware/application_helper.rb +2 -2
- data/app/helpers/renalware/clinic_helper.rb +5 -5
- data/app/helpers/renalware/drugs_helper.rb +1 -1
- data/app/helpers/renalware/layout_helper.rb +1 -1
- data/app/helpers/renalware/pd_helper.rb +2 -2
- data/app/helpers/renalware/snippets_helper.rb +3 -3
- data/app/helpers/renalware/transplant_helper.rb +2 -2
- data/app/models/concerns/renalware/feeds/job.rb +2 -2
- data/app/models/concerns/renalware/hd/session_scopes.rb +4 -4
- data/app/models/renalware/admissions/consult.rb +2 -2
- data/app/models/renalware/admissions/request.rb +1 -1
- data/app/models/renalware/admissions/request_reason.rb +1 -1
- data/app/models/renalware/clinics/clinic_visit.rb +1 -1
- data/app/models/renalware/events/investigation.rb +2 -2
- data/app/models/renalware/feeds/file.rb +1 -1
- data/app/models/renalware/feeds/files/practice_memberships/import_job.rb +1 -1
- data/app/models/renalware/feeds/files/practices/csv_organisation.rb +1 -1
- data/app/models/renalware/feeds/files/practices/xml_parser.rb +1 -1
- data/app/models/renalware/feeds/files/primary_care_physicians/import_job.rb +1 -1
- data/app/models/renalware/hd/diary.rb +1 -1
- data/app/models/renalware/hd/diary_slot.rb +2 -2
- data/app/models/renalware/hd/schedule_definition.rb +1 -1
- data/app/models/renalware/hd/session/closed.rb +5 -0
- data/app/models/renalware/hd/sessions/auditable_session_collection.rb +3 -3
- data/app/models/renalware/hd/station.rb +2 -2
- data/app/models/renalware/hd/weekly_diary.rb +1 -1
- data/app/models/renalware/hospitals/ward.rb +1 -1
- data/app/models/renalware/letters/electronic_receipt.rb +1 -1
- data/app/models/renalware/letters/letterhead.rb +1 -1
- data/app/models/renalware/medications/prescription.rb +2 -2
- data/app/models/renalware/messaging/internal/message.rb +1 -1
- data/app/models/renalware/messaging/internal/receipt.rb +1 -1
- data/app/models/renalware/pathology/code_group.rb +52 -0
- data/app/models/renalware/pathology/code_group_membership.rb +19 -0
- data/app/models/renalware/pathology/current_observation_set.rb +1 -1
- data/app/models/renalware/pathology/observation_description.rb +8 -2
- data/app/models/renalware/pathology/request_description.rb +1 -1
- data/app/models/renalware/pathology/requests/drug.rb +1 -1
- data/app/models/renalware/pathology/requests/patient_rule.rb +1 -1
- data/app/models/renalware/pathology/requests/request.rb +2 -2
- data/app/models/renalware/patient.rb +1 -1
- data/app/models/renalware/patients/patient_hospital_identifiers.rb +2 -2
- data/app/models/renalware/pd/apd/glucose_calculator.rb +1 -1
- data/app/models/renalware/pd/bag_type.rb +1 -1
- data/app/models/renalware/pd/capd_regime.rb +1 -1
- data/app/models/renalware/pd/peritonitis_episode_type_description.rb +1 -1
- data/app/models/renalware/pd/regime.rb +3 -3
- data/app/models/renalware/pd/regime_termination.rb +4 -4
- data/app/models/renalware/problems/problem.rb +1 -1
- data/app/models/renalware/renal/aki_alert.rb +3 -3
- data/app/models/renalware/reporting/audit.rb +1 -1
- data/app/models/renalware/system/country.rb +1 -1
- data/app/models/renalware/system/download.rb +22 -0
- data/app/models/renalware/system/download_query.rb +23 -0
- data/app/models/renalware/system/message.rb +1 -1
- data/app/models/renalware/transplants/donor_stage.rb +2 -2
- data/app/models/renalware/transplants/recipient_followup.rb +1 -0
- data/app/models/renalware/ukrdc/create_encrypted_patient_xml_files.rb +1 -1
- data/app/models/renalware/ukrdc/modality_code.rb +14 -0
- data/app/models/renalware/ukrdc/transmission_log.rb +2 -2
- data/app/models/renalware/user.rb +2 -2
- data/app/policies/renalware/system/download_policy.rb +21 -0
- data/app/presenters/renalware/hd/dashboard_presenter.rb +1 -1
- data/app/presenters/renalware/hd/diary_presenter.rb +1 -1
- data/app/presenters/renalware/hd/mdm_presenter.rb +2 -1
- data/app/presenters/renalware/hd/profile_presenter.rb +2 -2
- data/app/presenters/renalware/letters/part_class_filter.rb +1 -1
- data/app/presenters/renalware/pathology/observations_diff.rb +1 -1
- data/app/presenters/renalware/pathology/observations_for_codes_presenter.rb +2 -2
- data/app/presenters/renalware/system/users_presenter.rb +1 -1
- data/app/views/renalware/admissions/_summary_part.html.slim +4 -4
- data/app/views/renalware/api/ukrdc/patients/show.xml.builder +1 -1
- data/app/views/renalware/devise/sessions/new.html.slim +1 -1
- data/app/views/renalware/events/events/_summary_part.html.slim +2 -1
- data/app/views/renalware/hd/accesses/_summary.html.slim +1 -1
- data/app/views/renalware/hd/current_profile/_summary.html.slim +2 -2
- data/app/views/renalware/hd/mdm/_sessions.html.slim +4 -3
- data/app/views/renalware/hd/sessions/_form.html.slim +25 -8
- data/app/views/renalware/hd/sessions/_show.html.slim +5 -0
- data/app/views/renalware/layouts/_patient.html.slim +2 -0
- data/app/views/renalware/letters/_summary_part.html.slim +4 -3
- data/app/views/renalware/mdm/_biopsies.html.slim +4 -3
- data/app/views/renalware/mdm/_clinic_visits.html.slim +13 -11
- data/app/views/renalware/mdm/_events.html.slim +2 -1
- data/app/views/renalware/mdm/_letters.html.slim +6 -6
- data/app/views/renalware/mdm/_pathology.html.slim +4 -3
- data/app/views/renalware/mdm/_prescriptions.html.slim +2 -1
- data/app/views/renalware/mdm/_problems.html.slim +9 -7
- data/app/views/renalware/mdm/prescriptions/_table.html.slim +4 -2
- data/app/views/renalware/mdm/show.html.slim +1 -0
- data/app/views/renalware/navigation/_branding.html.slim +1 -1
- data/app/views/renalware/navigation/_help_items.html.slim +2 -1
- data/app/views/renalware/pathology/historical_observation_results/_table.html.slim +4 -1
- data/app/views/renalware/pathology/historical_observation_results/index.html.slim +1 -1
- data/app/views/renalware/pathology/recent_observation_results/_table.html.slim +4 -1
- data/app/views/renalware/system/downloads/_form.html.slim +11 -0
- data/app/views/renalware/system/downloads/edit.html.slim +2 -0
- data/app/views/renalware/system/downloads/index.html.slim +47 -0
- data/app/views/renalware/system/downloads/new.html.slim +2 -0
- data/app/views/renalware/transplants/mdm/_bottom.html.slim +0 -3
- data/app/views/renalware/transplants/recipient_followups/_form.html.slim +1 -0
- data/app/views/renalware/transplants/recipient_followups/show.html.slim +2 -1
- data/app/views/renalware/transplants/recipient_operations/_mdm_list.html.slim +7 -6
- data/app/views/renalware/virology/profiles/_summary.html.slim +1 -1
- data/config/locales/renalware/hd/session.en.yml +26 -0
- data/config/locales/renalware/transplants/recipient_followup.yml +1 -0
- data/config/permissions.yml +1 -0
- data/config/routes/fallbacks.rb +1 -1
- data/config/routes/hd.rb +6 -6
- data/config/routes/letters.rb +4 -4
- data/config/routes/system.rb +1 -0
- data/config/routes/transplants.rb +6 -6
- data/config/routes/virology.rb +2 -2
- data/db/migrate/20190511164137_create_ukrdc_modality_codes.rb +12 -0
- data/db/migrate/20190512155900_create_system_help_files.rb +14 -0
- data/db/migrate/20190513131826_add_view_count_to_system_help.rb +7 -0
- data/db/migrate/20190513135312_create_pathology_code_groups.rb +30 -0
- data/db/migrate/20190516093707_add_graft_nephectomy_on_to_tx_op_followup.rb +5 -0
- data/db/seeds/default/seeds.rb +1 -0
- data/db/seeds/default/ukrdc/modality_codes.csv +76 -0
- data/db/seeds/default/ukrdc/modality_codes.rb +17 -0
- data/db/seeds/default/ukrdc/seeds.rb +3 -0
- data/lib/core_extensions/active_support/duration.rb +1 -1
- data/lib/renalware/engine.rb +1 -0
- data/lib/renalware/version.rb +1 -1
- data/spec/factories/hd/hd_session_document.rb +5 -0
- data/spec/factories/letters/primary_care_physicians.rb +2 -2
- data/spec/factories/pathology/observation_descriptions.rb +1 -1
- data/spec/factories/pathology/requests/drug_category.rb +1 -1
- data/spec/factories/pathology/requests/global_rule_set.rb +1 -1
- data/spec/factories/pathology/requests/patient_rule.rb +1 -1
- data/spec/factories/system/downloads.rb +19 -0
- data/spec/factories/transplants/donor_stage.rb +1 -1
- data/spec/factories/transplants/registration_status_descriptions.rb +1 -1
- data/spec/factories/transplants/registrations.rb +1 -1
- data/spec/support/factory_bot.rb +2 -2
- metadata +40 -18
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_dependency "renalware/pathology"
|
4
|
+
|
5
|
+
module Renalware
|
6
|
+
module Pathology
|
7
|
+
# An ObservationDescription can be a member of many groups (a set of descriptions used for
|
8
|
+
# displaying or printing a subset of context-specific results). Within each group,
|
9
|
+
# say, 'letters', a description might be in a sub group (which merely serves to pull results
|
10
|
+
# together in groups on the page for clarity) and within that group might have a position wich
|
11
|
+
# determines its order in the subgroup.
|
12
|
+
class CodeGroupMembership < ApplicationRecord
|
13
|
+
validates :position_within_subgroup, presence: true
|
14
|
+
validates :subgroup, presence: true
|
15
|
+
belongs_to :code_group
|
16
|
+
belongs_to :observation_description
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -5,10 +5,16 @@ require_dependency "renalware/pathology"
|
|
5
5
|
module Renalware
|
6
6
|
module Pathology
|
7
7
|
class ObservationDescription < ApplicationRecord
|
8
|
+
belongs_to :measurement_unit
|
8
9
|
has_many :observations,
|
9
10
|
class_name: "Pathology::Observation",
|
10
|
-
inverse_of: :description
|
11
|
-
|
11
|
+
inverse_of: :description,
|
12
|
+
dependent: :restrict_with_exception
|
13
|
+
has_many :code_group_memberships,
|
14
|
+
foreign_key: :observation_description_id,
|
15
|
+
dependent: :destroy
|
16
|
+
has_many :code_groups,
|
17
|
+
through: :code_group_memberships
|
12
18
|
|
13
19
|
scope :in_display_order, lambda {
|
14
20
|
where("display_group is not null and display_order is not null")
|
@@ -9,7 +9,7 @@ module Renalware
|
|
9
9
|
belongs_to :lab
|
10
10
|
has_many :global_rule_sets, class_name: "::Renalware::Pathology::Requests::GlobalRuleSet"
|
11
11
|
has_and_belongs_to_many :requests,
|
12
|
-
|
12
|
+
class_name: "::Renalware::Pathology::Requests::Request"
|
13
13
|
|
14
14
|
validates :lab, presence: true
|
15
15
|
|
@@ -7,7 +7,7 @@ module Renalware
|
|
7
7
|
module Requests
|
8
8
|
class Drug < ActiveType::Record[Renalware::Drugs::Drug]
|
9
9
|
has_and_belongs_to_many :drug_categories,
|
10
|
-
|
10
|
+
join_table: "pathology_requests_drugs_drug_categories"
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
@@ -13,7 +13,7 @@ module Renalware
|
|
13
13
|
belongs_to :patient, class_name: "::Renalware::Pathology::Patient"
|
14
14
|
belongs_to :lab, class_name: "::Renalware::Pathology::Lab"
|
15
15
|
has_and_belongs_to_many :requests,
|
16
|
-
|
16
|
+
class_name: "::Renalware::Pathology::Requests::Request"
|
17
17
|
|
18
18
|
validates :lab, presence: true
|
19
19
|
validates :test_description, presence: true
|
@@ -14,9 +14,9 @@ module Renalware
|
|
14
14
|
belongs_to :clinic, class_name: "::Renalware::Clinics::Clinic"
|
15
15
|
belongs_to :consultant, class_name: "::Renalware::Pathology::Consultant"
|
16
16
|
has_and_belongs_to_many :request_descriptions,
|
17
|
-
|
17
|
+
class_name: "::Renalware::Pathology::RequestDescription"
|
18
18
|
has_and_belongs_to_many :patient_rules,
|
19
|
-
|
19
|
+
class_name: "::Renalware::Pathology::Requests::PatientRule"
|
20
20
|
|
21
21
|
validates :patient, presence: true
|
22
22
|
validates :clinic, presence: true
|
@@ -156,7 +156,7 @@ module Renalware
|
|
156
156
|
# TODO: Use a constant for the max number of local patient ids
|
157
157
|
def upcase_local_patient_ids
|
158
158
|
self.local_patient_id = local_patient_id.upcase if local_patient_id.present?
|
159
|
-
(2..5).each{ |index| upcase_local_patient_id(index) }
|
159
|
+
(2..5).each { |index| upcase_local_patient_id(index) }
|
160
160
|
end
|
161
161
|
|
162
162
|
def upcase_local_patient_id(index)
|
@@ -49,11 +49,11 @@ module Renalware
|
|
49
49
|
# Renders all patients hospital numbers in the format e.g.
|
50
50
|
# "KCH: X12344 QEH: 12123123 XXX: Xxxxx ..."
|
51
51
|
def to_s
|
52
|
-
all.map{ |name, hosp_no| "#{name}: #{hosp_no}" }.join(" ")
|
52
|
+
all.map { |name, hosp_no| "#{name}: #{hosp_no}" }.join(" ")
|
53
53
|
end
|
54
54
|
|
55
55
|
def to_s_multiline
|
56
|
-
all.map{ |name, hosp_no| "#{name}: #{hosp_no}" }.join("<br>").html_safe
|
56
|
+
all.map { |name, hosp_no| "#{name}: #{hosp_no}" }.join("<br>").html_safe
|
57
57
|
end
|
58
58
|
|
59
59
|
# Returns true if the patient has a hospital number at the requested hospital.
|
@@ -8,7 +8,7 @@ module Renalware
|
|
8
8
|
acts_as_paranoid
|
9
9
|
extend Enumerize
|
10
10
|
|
11
|
-
scope :ordered, ->{ order(manufacturer: :asc, description: :asc) }
|
11
|
+
scope :ordered, -> { order(manufacturer: :asc, description: :asc) }
|
12
12
|
|
13
13
|
enumerize :glucose_strength, in: { not_applicable: 0, low: 1, medium: 2, high: 3 }
|
14
14
|
|
@@ -15,9 +15,9 @@ module Renalware
|
|
15
15
|
has_many :bags, class_name: "Renalware::PD::RegimeBag"
|
16
16
|
has_many :bag_types, through: :bags
|
17
17
|
has_one :termination,
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
class_name: "RegimeTermination",
|
19
|
+
dependent: :delete,
|
20
|
+
inverse_of: :regime
|
21
21
|
|
22
22
|
accepts_nested_attributes_for :bags, allow_destroy: true
|
23
23
|
|
@@ -10,10 +10,10 @@ module Renalware
|
|
10
10
|
belongs_to :regime, touch: true
|
11
11
|
|
12
12
|
validates :terminated_on,
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
timeliness: {
|
14
|
+
type: :date,
|
15
|
+
on_or_after: ->(termination) { termination.regime.start_date }
|
16
|
+
}
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
@@ -16,7 +16,7 @@ module Renalware
|
|
16
16
|
|
17
17
|
scope :ordered, -> { order(position: :asc) }
|
18
18
|
scope :with_notes, -> { includes(:notes) }
|
19
|
-
scope :with_patient, ->{ includes(:patient) }
|
19
|
+
scope :with_patient, -> { includes(:patient) }
|
20
20
|
|
21
21
|
validates :patient, presence: true
|
22
22
|
validates :description, presence: true
|
@@ -7,7 +7,7 @@ module Renalware
|
|
7
7
|
class AKIAlert < ApplicationRecord
|
8
8
|
include Accountable
|
9
9
|
include PatientsRansackHelper
|
10
|
-
scope :ordered, ->{ order(created_at: :desc) }
|
10
|
+
scope :ordered, -> { order(created_at: :desc) }
|
11
11
|
belongs_to :patient, class_name: "Renal::Patient", touch: true
|
12
12
|
belongs_to :action, class_name: "Renal::AKIAlertAction"
|
13
13
|
belongs_to :hospital_ward, class_name: "Hospitals::Ward"
|
@@ -15,8 +15,8 @@ module Renalware
|
|
15
15
|
validates :max_aki, inclusion: 1..3, allow_nil: true
|
16
16
|
alias_attribute :decided_by, :updated_by
|
17
17
|
|
18
|
-
scope :today, ->{ where(created_at: Time.zone.today.all_day) }
|
19
|
-
scope :hotlist, ->{ where(hotlist: true) }
|
18
|
+
scope :today, -> { where(created_at: Time.zone.today.all_day) }
|
19
|
+
scope :hotlist, -> { where(hotlist: true) }
|
20
20
|
|
21
21
|
has_paper_trail class_name: "Renalware::Renal::Version", on: [:create, :update, :destroy]
|
22
22
|
|
@@ -8,7 +8,7 @@ module Renalware
|
|
8
8
|
validates :name, presence: true
|
9
9
|
validates :view_name, presence: true
|
10
10
|
|
11
|
-
scope :enabled, ->{ where(enabled: true) }
|
11
|
+
scope :enabled, -> { where(enabled: true) }
|
12
12
|
|
13
13
|
def self.available_audit_materialized_views
|
14
14
|
result = connection.execute("SELECT oid::regclass::text FROM pg_class
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_dependency "renalware/system"
|
4
|
+
|
5
|
+
module Renalware
|
6
|
+
module System
|
7
|
+
class Download < ApplicationRecord
|
8
|
+
include Accountable
|
9
|
+
acts_as_paranoid
|
10
|
+
validates :name, presence: true, uniqueness: true
|
11
|
+
has_one_attached :file
|
12
|
+
validates :file, presence: true
|
13
|
+
validate :validate_presence_of_file_attachment
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def validate_presence_of_file_attachment
|
18
|
+
errors[:file] << "Please specify a file to upload" unless file.attached?
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_dependency "renalware/system"
|
4
|
+
|
5
|
+
module Renalware
|
6
|
+
module System
|
7
|
+
class DownloadQuery
|
8
|
+
attr_reader :query_params
|
9
|
+
|
10
|
+
def initialize(query_params)
|
11
|
+
@query_params = query_params || {}
|
12
|
+
end
|
13
|
+
|
14
|
+
def call
|
15
|
+
search.result.includes(:updated_by)
|
16
|
+
end
|
17
|
+
|
18
|
+
def search
|
19
|
+
@search ||= Download.order(view_count: :desc, name: :asc).ransack(query_params)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -12,7 +12,7 @@ module Renalware
|
|
12
12
|
timeliness: { type: :datetime, allow_blank: true, after: :display_from }
|
13
13
|
enumerize :severity, in: %i(default warning info success)
|
14
14
|
|
15
|
-
scope :active, lambda{
|
15
|
+
scope :active, lambda {
|
16
16
|
where(
|
17
17
|
"display_from <= ? and (display_until is null or display_until >= ?)",
|
18
18
|
Time.zone.now,
|
@@ -16,8 +16,8 @@ module Renalware
|
|
16
16
|
validates :stage_status, presence: true
|
17
17
|
validates :started_on, presence: true
|
18
18
|
|
19
|
-
scope :current, ->{ where(terminated_on: nil) }
|
20
|
-
scope :ordered, ->{ order(terminated_on: :desc, started_on: :desc) }
|
19
|
+
scope :current, -> { where(terminated_on: nil) }
|
20
|
+
scope :ordered, -> { order(terminated_on: :desc, started_on: :desc) }
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
@@ -22,6 +22,7 @@ module Renalware
|
|
22
22
|
has_document class_name: "Renalware::Transplants::RecipientFollowupDocument"
|
23
23
|
|
24
24
|
validates :stent_removed_on, timeliness: { type: :date, allow_blank: true }
|
25
|
+
validates :graft_nephrectomy_on, timeliness: { type: :date, allow_blank: true }
|
25
26
|
validates :transplant_failed_on, timeliness: { type: :date, allow_blank: true }
|
26
27
|
validates :transplant_failed_on,
|
27
28
|
presence: true,
|
@@ -107,7 +107,7 @@ module Renalware
|
|
107
107
|
logger.info("Files saved to #{summary.archive_folder}")
|
108
108
|
logger.info "*** Summary ***"
|
109
109
|
logger.info "Took #{summary.milliseconds_taken.to_i / 1000} seconds"
|
110
|
-
summary.results.map{ |key, value| logger.info("#{key}: #{value}") }
|
110
|
+
summary.results.map { |key, value| logger.info("#{key}: #{value}") }
|
111
111
|
end
|
112
112
|
# rubocop:enable Metrics/AbcSize
|
113
113
|
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_dependency "renalware/ukrdc"
|
4
|
+
|
5
|
+
module Renalware
|
6
|
+
module UKRDC
|
7
|
+
# Represents a Renal Reg modality QBL or Text code and description
|
8
|
+
# e.g. (1) Haemodialysis
|
9
|
+
# TXT refers to Renal Reg Patient timeline information
|
10
|
+
# QBL refers to Renal Reg Patient monthy treatment history
|
11
|
+
class ModalityCode < ApplicationRecord
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -9,7 +9,7 @@ module Renalware
|
|
9
9
|
validates :status, presence: true
|
10
10
|
belongs_to :patient, class_name: "Renalware::Patient"
|
11
11
|
enum status: [:undefined, :error, :unsent_no_change_since_last_send, :sent]
|
12
|
-
scope :ordered, ->{ order(sent_at: :asc) }
|
12
|
+
scope :ordered, -> { order(sent_at: :asc) }
|
13
13
|
|
14
14
|
def self.with_logging(patient, request_uuid)
|
15
15
|
log = new(patient: patient, sent_at: Time.zone.now, request_uuid: request_uuid)
|
@@ -25,7 +25,7 @@ module Renalware
|
|
25
25
|
def self.formatted_exception(error)
|
26
26
|
[
|
27
27
|
"#{error.backtrace.first}: #{error.message} (#{error.class})",
|
28
|
-
error.backtrace.drop(1).map{ |line| "\t#{line}" }
|
28
|
+
error.backtrace.drop(1).map { |line| "\t#{line}" }
|
29
29
|
].join("\n")
|
30
30
|
end
|
31
31
|
end
|
@@ -16,11 +16,11 @@ module Renalware
|
|
16
16
|
validate :approval_with_roles, on: :update
|
17
17
|
validates :professional_position, presence: {
|
18
18
|
on: :update,
|
19
|
-
if: ->(user){ user.with_extended_validation }
|
19
|
+
if: ->(user) { user.with_extended_validation }
|
20
20
|
}
|
21
21
|
validates :signature, presence: {
|
22
22
|
on: :update,
|
23
|
-
if: ->(user){ user.with_extended_validation }
|
23
|
+
if: ->(user) { user.with_extended_validation }
|
24
24
|
}
|
25
25
|
|
26
26
|
scope :unapproved, -> { where(approved: [nil, false]) }
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_dependency "renalware/snippets"
|
4
|
+
|
5
|
+
module Renalware
|
6
|
+
module System
|
7
|
+
class DownloadPolicy < BasePolicy
|
8
|
+
def new?
|
9
|
+
user_is_super_admin?
|
10
|
+
end
|
11
|
+
|
12
|
+
def create?
|
13
|
+
user_is_super_admin?
|
14
|
+
end
|
15
|
+
|
16
|
+
def destroy?
|
17
|
+
user_is_super_admin?
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -38,7 +38,7 @@ module Renalware
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def each_station
|
41
|
-
stations.each_with_index{ |station, index| yield(station, index + 1) if block_given? }
|
41
|
+
stations.each_with_index { |station, index| yield(station, index + 1) if block_given? }
|
42
42
|
end
|
43
43
|
|
44
44
|
def each_day(diurnal_period, station)
|
@@ -16,7 +16,8 @@ module Renalware
|
|
16
16
|
@sessions ||= begin
|
17
17
|
sessions = Sessions::LatestPatientSessionsQuery
|
18
18
|
.new(patient: patient)
|
19
|
-
.call(max_sessions: 6)
|
19
|
+
.call(max_sessions: 6)
|
20
|
+
.includes(:patient, :hospital_unit, :signed_on_by, :signed_off_by)
|
20
21
|
CollectionPresenter.new(sessions, SessionPresenter, view_context)
|
21
22
|
end
|
22
23
|
end
|
@@ -26,7 +26,7 @@ module Renalware
|
|
26
26
|
delegate :type,
|
27
27
|
:loading_dose,
|
28
28
|
:hourly_dose,
|
29
|
-
|
29
|
+
to: :anticoagulant, allow_nil: true, prefix: true
|
30
30
|
|
31
31
|
delegate :unit_code,
|
32
32
|
to: :hospital_unit, prefix: true, allow_nil: true
|
@@ -72,7 +72,7 @@ module Renalware
|
|
72
72
|
ScheduleDefinition
|
73
73
|
.includes(:diurnal_period)
|
74
74
|
.ordered
|
75
|
-
.map{ |definition| [definition.to_s, definition.id] }
|
75
|
+
.map { |definition| [definition.to_s, definition.id] }
|
76
76
|
end
|
77
77
|
|
78
78
|
def last_update
|