renalware-core 2.0.148 → 2.0.149

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/renalware/components/session_timeout_redirect.js.erb +26 -21
  3. data/app/assets/javascripts/renalware/core.js.erb +2 -0
  4. data/app/assets/javascripts/renalware/rollup_compiled.js +169 -0
  5. data/app/assets/stylesheets/renalware/partials/_simple_form.scss +2 -2
  6. data/app/components/renalware/hd/administer_prescription_dropdown_component.html.slim +1 -1
  7. data/app/controllers/renalware/base_controller.rb +3 -3
  8. data/app/controllers/renalware/session_timeout_controller.rb +20 -17
  9. data/app/javascript/renalware/controllers/session_controller.js +223 -0
  10. data/app/javascript/renalware/index.js +2 -0
  11. data/app/models/renalware/accesses/assessment.rb +5 -1
  12. data/app/models/renalware/accesses/procedure.rb +4 -1
  13. data/app/models/renalware/accesses/profile.rb +4 -1
  14. data/app/models/renalware/clinical/body_composition.rb +4 -1
  15. data/app/models/renalware/clinical/dry_weight.rb +4 -1
  16. data/app/models/renalware/clinics/clinic_visit.rb +5 -1
  17. data/app/models/renalware/hd/preference_set.rb +4 -1
  18. data/app/models/renalware/hd/profile.rb +5 -2
  19. data/app/models/renalware/hd/session.rb +4 -1
  20. data/app/models/renalware/low_clearance/profile.rb +5 -2
  21. data/app/models/renalware/medications/prescription.rb +4 -2
  22. data/app/models/renalware/pathology/code_group.rb +3 -1
  23. data/app/models/renalware/pathology/code_group_membership.rb +4 -1
  24. data/app/models/renalware/patient.rb +4 -1
  25. data/app/models/renalware/patients/worry.rb +5 -1
  26. data/app/models/renalware/problems/problem.rb +5 -1
  27. data/app/models/renalware/renal/aki_alert.rb +4 -1
  28. data/app/models/renalware/renal/profile.rb +4 -1
  29. data/app/models/renalware/transplants/donation.rb +4 -2
  30. data/app/models/renalware/transplants/donor_followup.rb +4 -2
  31. data/app/models/renalware/transplants/donor_operation.rb +4 -2
  32. data/app/models/renalware/transplants/donor_workup.rb +4 -2
  33. data/app/models/renalware/transplants/recipient_followup.rb +5 -2
  34. data/app/models/renalware/transplants/recipient_operation.rb +5 -2
  35. data/app/models/renalware/transplants/recipient_workup.rb +5 -2
  36. data/app/models/renalware/transplants/registration.rb +5 -2
  37. data/app/models/renalware/transplants/rejection_episode.rb +1 -1
  38. data/app/models/renalware/ukrdc/{batch_number.rb → batch.rb} +1 -1
  39. data/app/models/renalware/ukrdc/create_encrypted_patient_xml_files.rb +7 -10
  40. data/app/models/renalware/ukrdc/create_patient_xml_file.rb +3 -4
  41. data/app/models/renalware/ukrdc/housekeeping/remove_old_export_archive_folders.rb +3 -3
  42. data/app/models/renalware/ukrdc/housekeeping/remove_stale_files.rb +2 -2
  43. data/app/models/renalware/ukrdc/incoming/import_surveys.rb +1 -2
  44. data/app/models/renalware/ukrdc/transmission_log.rb +3 -2
  45. data/app/presenters/renalware/user_session_presenter.rb +44 -0
  46. data/app/views/renalware/admissions/consults/_form.html.slim +19 -18
  47. data/app/views/renalware/hd/prescription_administrations/_form.html.slim +1 -1
  48. data/app/views/renalware/hd/prescription_administrations/_row.html.slim +1 -1
  49. data/app/views/renalware/hd/prescription_administrations/new.js.erb +1 -1
  50. data/app/views/renalware/hd/protocols/_protocol.pdf.slim +39 -38
  51. data/app/views/renalware/hd/scheduling/diary_slots/_slot.html.slim +2 -1
  52. data/app/views/renalware/hd/witnesses/_form.html.slim +2 -2
  53. data/app/views/renalware/letters/contacts/_contact.html.slim +1 -1
  54. data/app/views/renalware/letters/letters/index.html.slim +4 -0
  55. data/app/views/renalware/medications/prescriptions/index.html.slim +1 -1
  56. data/app/views/renalware/navigation/_sign_out.html.slim +5 -1
  57. data/app/views/renalware/patients/patients/show/_primary_care_physician.html.slim +1 -1
  58. data/app/views/renalware/transplants/wait_lists/show.html.slim +1 -1
  59. data/config/initializers/paper_trail.rb +1 -1
  60. data/config/initializers/simple_form_wrappers.rb +14 -9
  61. data/config/routes/system.rb +2 -1
  62. data/db/migrate/20200408131217_associate_batch_with_ukrdc_transmission_log.rb +15 -0
  63. data/db/seeds/seeds_helper.rb +8 -2
  64. data/lib/renalware/configuration.rb +6 -0
  65. data/lib/renalware/engine.rb +2 -1
  66. data/lib/renalware/version.rb +1 -1
  67. data/spec/support/shared_examples/supersedable_examples.rb +2 -2
  68. metadata +22 -7
@@ -20,6 +20,7 @@ import SnippetsController from "./controllers/snippets_controller"
20
20
  import LettersFormController from "./controllers/letters/form_controller"
21
21
  import PrescriptionsController from "./controllers/medications/prescriptions_controller"
22
22
  import ChartsController from "./controllers/charts_controller"
23
+ import SessionController from "./controllers/session_controller"
23
24
 
24
25
  const application = Application.start()
25
26
  application.register("toggle", ToggleController)
@@ -29,5 +30,6 @@ application.register("snippets", SnippetsController)
29
30
  application.register("letters-form", LettersFormController)
30
31
  application.register("prescriptions", PrescriptionsController)
31
32
  application.register("charts", ChartsController)
33
+ application.register("session", SessionController)
32
34
 
33
35
  window.Chartkick.use(window.Highcharts)
@@ -14,7 +14,11 @@ module Renalware
14
14
  belongs_to :type, class_name: "Type"
15
15
 
16
16
  has_document class_name: "Renalware::Accesses::AssessmentDocument"
17
- has_paper_trail class_name: "Renalware::Accesses::Version", on: [:create, :update, :destroy]
17
+
18
+ has_paper_trail(
19
+ versions: { class_name: "Renalware::Accesses::Version" },
20
+ on: [:create, :update, :destroy]
21
+ )
18
22
 
19
23
  scope :ordered, -> { order(performed_on: :desc) }
20
24
 
@@ -12,7 +12,10 @@ module Renalware
12
12
  belongs_to :type, class_name: "Type"
13
13
  belongs_to :pd_catheter_insertion_technique, class_name: "CatheterInsertionTechnique"
14
14
 
15
- has_paper_trail class_name: "Renalware::Accesses::Version", on: [:create, :update, :destroy]
15
+ has_paper_trail(
16
+ versions: { class_name: "Renalware::Accesses::Version" },
17
+ on: [:create, :update, :destroy]
18
+ )
16
19
 
17
20
  scope :ordered, -> { order(performed_on: :desc) }
18
21
 
@@ -11,7 +11,10 @@ module Renalware
11
11
  belongs_to :patient, touch: true
12
12
  belongs_to :type, class_name: "Type"
13
13
 
14
- has_paper_trail class_name: "Renalware::Accesses::Version", on: [:create, :update, :destroy]
14
+ has_paper_trail(
15
+ versions: { class_name: "Renalware::Accesses::Version" },
16
+ on: [:create, :update, :destroy]
17
+ )
15
18
 
16
19
  scope :ordered, -> { order(formed_on: :desc) }
17
20
  scope :current, lambda {
@@ -19,7 +19,10 @@ module Renalware
19
19
  belongs_to :assessor, class_name: "User", foreign_key: "assessor_id"
20
20
  belongs_to :modality_description, class_name: "Modalities::Description"
21
21
 
22
- has_paper_trail class_name: "Renalware::Clinical::Version", on: [:create, :update, :destroy]
22
+ has_paper_trail(
23
+ versions: { class_name: "Renalware::Clinical::Version" },
24
+ on: [:create, :update, :destroy]
25
+ )
23
26
 
24
27
  scope :ordered, -> { order(assessed_on: :desc, created_at: :desc) }
25
28
 
@@ -12,7 +12,10 @@ module Renalware
12
12
  belongs_to :patient, class_name: "Renalware::Clinical::Patient", touch: true
13
13
  belongs_to :assessor, class_name: "User", foreign_key: "assessor_id"
14
14
 
15
- has_paper_trail class_name: "Renalware::Clinical::Version", on: [:create, :update, :destroy]
15
+ has_paper_trail(
16
+ versions: { class_name: "Renalware::Clinical::Version" },
17
+ on: [:create, :update, :destroy]
18
+ )
16
19
 
17
20
  scope :ordered, -> { order(assessed_on: :desc, created_at: :desc) }
18
21
 
@@ -7,7 +7,11 @@ module Renalware
7
7
  module Clinics
8
8
  class ClinicVisit < ApplicationRecord
9
9
  self.table_name = :clinic_visits
10
- has_paper_trail class_name: "Renalware::Clinics::Version", on: [:create, :update, :destroy]
10
+
11
+ has_paper_trail(
12
+ versions: { class_name: "Renalware::Clinics::Version" },
13
+ on: [:create, :update, :destroy]
14
+ )
11
15
 
12
16
  include Accountable
13
17
  include PatientScope
@@ -12,7 +12,10 @@ module Renalware
12
12
  belongs_to :hospital_unit, class_name: "Hospitals::Unit"
13
13
  belongs_to :schedule_definition, foreign_key: "schedule_definition_id"
14
14
 
15
- has_paper_trail class_name: "Renalware::HD::Version", on: [:create, :update, :destroy]
15
+ has_paper_trail(
16
+ versions: { class_name: "Renalware::HD::Version" },
17
+ on: [:create, :update, :destroy]
18
+ )
16
19
 
17
20
  validates :patient, presence: true
18
21
  validates :entered_on, timeliness: { type: :date, allow_blank: true }
@@ -18,9 +18,12 @@ module Renalware
18
18
  belongs_to :named_nurse, class_name: "User", foreign_key: "named_nurse_id"
19
19
  belongs_to :transport_decider, class_name: "User", foreign_key: "transport_decider_id"
20
20
  belongs_to :schedule_definition, foreign_key: "schedule_definition_id"
21
-
22
21
  has_document class_name: "Renalware::HD::ProfileDocument"
23
- has_paper_trail class_name: "Renalware::HD::Version", on: [:create, :update, :destroy]
22
+
23
+ has_paper_trail(
24
+ versions: { class_name: "Renalware::HD::Version" },
25
+ on: [:create, :update, :destroy]
26
+ )
24
27
 
25
28
  validates :patient, presence: true
26
29
  validates :prescriber, presence: true
@@ -32,7 +32,10 @@ module Renalware
32
32
  dependent: :destroy
33
33
  accepts_nested_attributes_for :prescription_administrations
34
34
 
35
- has_paper_trail class_name: "Renalware::HD::Version", on: [:create, :update, :destroy]
35
+ has_paper_trail(
36
+ versions: { class_name: "Renalware::HD::Version" },
37
+ on: [:create, :update, :destroy]
38
+ )
36
39
 
37
40
  before_create :assign_modality
38
41
  before_save :compute_duration
@@ -12,8 +12,11 @@ module Renalware
12
12
  belongs_to :patient, touch: true
13
13
  belongs_to :referrer
14
14
  has_document class_name: "Renalware::LowClearance::ProfileDocument"
15
- has_paper_trail class_name: "Renalware::LowClearance::Version",
16
- on: [:create, :update, :destroy]
15
+
16
+ has_paper_trail(
17
+ versions: { class_name: "Renalware::LowClearance::Version" },
18
+ on: [:create, :update, :destroy]
19
+ )
17
20
  end
18
21
  end
19
22
  end
@@ -10,8 +10,10 @@ module Renalware
10
10
 
11
11
  attr_accessor :drug_select
12
12
 
13
- has_paper_trail class_name: "Renalware::Medications::PrescriptionVersion",
14
- on: [:create, :update]
13
+ has_paper_trail(
14
+ versions: { class_name: "Renalware::Medications::PrescriptionVersion" },
15
+ on: [:create, :update]
16
+ )
15
17
 
16
18
  belongs_to :patient, touch: true
17
19
 
@@ -30,10 +30,12 @@ module Renalware
30
30
  # M.position_within_subgroup;
31
31
  class CodeGroup < ApplicationRecord
32
32
  include Accountable
33
+
33
34
  has_paper_trail(
34
- class_name: "Renalware::Pathology::Version",
35
+ versions: { class_name: "Renalware::Pathology::Version" },
35
36
  on: [:create, :update, :destroy]
36
37
  )
38
+
37
39
  validates :name, presence: true, uniqueness: true
38
40
  validates :description, presence: true
39
41
  has_many(
@@ -11,7 +11,10 @@ module Renalware
11
11
  # determines its order in the subgroup.
12
12
  class CodeGroupMembership < ApplicationRecord
13
13
  include Accountable
14
- has_paper_trail class_name: "Renalware::Pathology::Version", on: [:create, :update, :destroy]
14
+ has_paper_trail(
15
+ versions: { class_name: "Renalware::Pathology::Version" },
16
+ on: [:create, :update, :destroy]
17
+ )
15
18
  validates :position_within_subgroup, presence: true
16
19
  validates :subgroup, presence: true
17
20
  belongs_to :code_group
@@ -34,7 +34,10 @@ module Renalware
34
34
 
35
35
  enumerize :marital_status, in: %i(married single divorced widowed)
36
36
 
37
- has_paper_trail class_name: "Renalware::Patients::Version", on: [:create, :update, :destroy]
37
+ has_paper_trail(
38
+ versions: { class_name: "Renalware::Patients::Version" },
39
+ on: [:create, :update, :destroy]
40
+ )
38
41
 
39
42
  serialize :sex, Gender
40
43
 
@@ -6,7 +6,11 @@ module Renalware
6
6
  module Patients
7
7
  class Worry < ApplicationRecord
8
8
  include Accountable
9
- has_paper_trail class_name: "Renalware::Patients::Version", on: [:create, :update, :destroy]
9
+
10
+ has_paper_trail(
11
+ versions: { class_name: "Renalware::Patients::Version" },
12
+ on: [:create, :update, :destroy]
13
+ )
10
14
 
11
15
  belongs_to :patient,
12
16
  class_name: "Renalware::Patient",
@@ -9,7 +9,11 @@ module Renalware
9
9
  include Accountable
10
10
 
11
11
  acts_as_paranoid
12
- has_paper_trail class_name: "Renalware::Problems::Version", on: [:create, :update, :destroy]
12
+
13
+ has_paper_trail(
14
+ versions: { class_name: "Renalware::Problems::Version" },
15
+ on: [:create, :update, :destroy]
16
+ )
13
17
 
14
18
  belongs_to :patient, touch: true
15
19
  has_many :notes, -> { ordered }, dependent: :destroy
@@ -18,7 +18,10 @@ module Renalware
18
18
  scope :today, -> { where(created_at: Time.zone.today.all_day) }
19
19
  scope :hotlist, -> { where(hotlist: true) }
20
20
 
21
- has_paper_trail class_name: "Renalware::Renal::Version", on: [:create, :update, :destroy]
21
+ has_paper_trail(
22
+ versions: { class_name: "Renalware::Renal::Version" },
23
+ on: [:create, :update, :destroy]
24
+ )
22
25
 
23
26
  ransacker :created_at_casted do |_parent|
24
27
  Arel.sql("date(renal_aki_alerts.created_at)")
@@ -9,7 +9,10 @@ module Renalware
9
9
  include Document::Base
10
10
  extend Enumerize
11
11
 
12
- has_paper_trail class_name: "Renalware::Renal::Version", on: [:create, :update, :destroy]
12
+ has_paper_trail(
13
+ versions: { class_name: "Renalware::Renal::Version" },
14
+ on: [:create, :update, :destroy]
15
+ )
13
16
 
14
17
  belongs_to :patient, touch: true
15
18
  belongs_to :prd_description
@@ -12,8 +12,10 @@ module Renalware
12
12
  belongs_to :patient, touch: true
13
13
  belongs_to :recipient, class_name: "Patient", foreign_key: "recipient_id", touch: true
14
14
 
15
- has_paper_trail class_name: "Renalware::Transplants::Version",
16
- on: [:create, :update, :destroy]
15
+ has_paper_trail(
16
+ versions: { class_name: "Renalware::Transplants::Version" },
17
+ on: [:create, :update, :destroy]
18
+ )
17
19
 
18
20
  scope :ordered, -> { order(created_at: :asc) }
19
21
  scope :reversed, -> { order(created_at: :desc) }
@@ -11,8 +11,10 @@ module Renalware
11
11
  foreign_key: "operation_id",
12
12
  touch: true
13
13
 
14
- has_paper_trail class_name: "Renalware::Transplants::Version",
15
- on: [:create, :update, :destroy]
14
+ has_paper_trail(
15
+ versions: { class_name: "Renalware::Transplants::Version" },
16
+ on: [:create, :update, :destroy]
17
+ )
16
18
 
17
19
  validates :last_seen_on, timeliness: { type: :date, allow_blank: true }
18
20
  validates :dead_on, timeliness: { type: :date, allow_blank: true }
@@ -19,8 +19,10 @@ module Renalware
19
19
  scope :ordered, -> { order(performed_on: :asc) }
20
20
  scope :reversed, -> { order(performed_on: :desc) }
21
21
 
22
- has_paper_trail class_name: "Renalware::Transplants::Version",
23
- on: [:create, :update, :destroy]
22
+ has_paper_trail(
23
+ versions: { class_name: "Renalware::Transplants::Version" },
24
+ on: [:create, :update, :destroy]
25
+ )
24
26
  has_document class_name: "Renalware::Transplants::DonorOperationDocument"
25
27
 
26
28
  enumerize :kidney_side, in: %i(left right both)
@@ -11,8 +11,10 @@ module Renalware
11
11
 
12
12
  belongs_to :patient, touch: true
13
13
 
14
- has_paper_trail class_name: "Renalware::Transplants::Version",
15
- on: [:create, :update, :destroy]
14
+ has_paper_trail(
15
+ versions: { class_name: "Renalware::Transplants::Version" },
16
+ on: [:create, :update, :destroy]
17
+ )
16
18
  has_document class_name: "Renalware::Transplants::DonorWorkupDocument"
17
19
  end
18
20
  end
@@ -28,8 +28,11 @@ module Renalware
28
28
  reject_if: :all_blank,
29
29
  allow_destroy: true
30
30
 
31
- has_paper_trail class_name: "Renalware::Transplants::Version",
32
- on: [:create, :update, :destroy]
31
+ has_paper_trail(
32
+ versions: { class_name: "Renalware::Transplants::Version" },
33
+ on: [:create, :update, :destroy]
34
+ )
35
+
33
36
  has_document class_name: "Renalware::Transplants::RecipientFollowupDocument"
34
37
 
35
38
  validates :stent_removed_on, timeliness: { type: :date, allow_blank: true }
@@ -19,8 +19,11 @@ module Renalware
19
19
  scope :reversed, -> { order(performed_on: :desc) }
20
20
  scope :most_recent, -> { order(performed_on: :desc).first }
21
21
 
22
- has_paper_trail class_name: "Renalware::Transplants::Version",
23
- on: [:create, :update, :destroy]
22
+ has_paper_trail(
23
+ versions: { class_name: "Renalware::Transplants::Version" },
24
+ on: [:create, :update, :destroy]
25
+ )
26
+
24
27
  has_document class_name: "Renalware::Transplants::RecipientOperationDocument"
25
28
 
26
29
  validates :performed_on, presence: true
@@ -12,8 +12,11 @@ module Renalware
12
12
 
13
13
  belongs_to :patient, touch: true
14
14
 
15
- has_paper_trail class_name: "Renalware::Transplants::Version",
16
- on: [:create, :update, :destroy]
15
+ has_paper_trail(
16
+ versions: { class_name: "Renalware::Transplants::Version" },
17
+ on: [:create, :update, :destroy]
18
+ )
19
+
17
20
  has_document class_name: "Renalware::Transplants::RecipientWorkupDocument"
18
21
  end
19
22
  end
@@ -18,8 +18,11 @@ module Renalware
18
18
  class_name: "RegistrationStatus",
19
19
  foreign_key: "registration_id"
20
20
 
21
- has_paper_trail class_name: "Renalware::Transplants::Version",
22
- on: [:create, :update, :destroy]
21
+ has_paper_trail(
22
+ versions: { class_name: "Renalware::Transplants::Version" },
23
+ on: [:create, :update, :destroy]
24
+ )
25
+
23
26
  has_document class_name: "Renalware::Transplants::RegistrationDocument"
24
27
 
25
28
  accepts_nested_attributes_for :statuses
@@ -7,7 +7,7 @@ module Renalware
7
7
  class RejectionEpisode < ApplicationRecord
8
8
  include Accountable
9
9
  has_paper_trail(
10
- class_name: "Renalware::Transplants::Version",
10
+ versions: { class_name: "Renalware::Transplants::Version" },
11
11
  on: [:create, :update, :destroy]
12
12
  )
13
13
  belongs_to :followup, class_name: "RecipientFollowup", touch: true
@@ -4,7 +4,7 @@ require_dependency "renalware/ukrdc"
4
4
 
5
5
  module Renalware
6
6
  module UKRDC
7
- class BatchNumber < ApplicationRecord
7
+ class Batch < ApplicationRecord
8
8
  def self.next
9
9
  create!
10
10
  end
@@ -16,9 +16,8 @@ module Renalware
16
16
  :patient_ids,
17
17
  :changed_since,
18
18
  :logger,
19
- :request_uuid,
20
19
  :timestamp,
21
- :batch_number,
20
+ :batch,
22
21
  :summary,
23
22
  :force_send
24
23
  )
@@ -27,16 +26,15 @@ module Renalware
27
26
  @changed_since = Time.zone.parse(changed_since) if changed_since.present?
28
27
  @patient_ids = Array(patient_ids)
29
28
  @logger = logger || Rails.logger
30
- @request_uuid = SecureRandom.uuid # helps group logs together
31
29
  @timestamp = Time.zone.now.strftime("%Y%m%d%H%M%S%L")
32
- @batch_number ||= BatchNumber.next.number
30
+ @batch ||= Batch.next
33
31
  @summary = ExportSummary.new
34
32
  @force_send = force_send
35
33
  end
36
34
 
37
35
  # rubocop:disable Metrics/MethodLength
38
36
  def call
39
- logger.tagged(request_uuid) do
37
+ logger.tagged(batch.number) do
40
38
  summary.milliseconds_taken = Benchmark.ms do
41
39
  create_patient_xml_files
42
40
  encrypt_patient_xml_files
@@ -48,7 +46,7 @@ module Renalware
48
46
  email_summary
49
47
  end
50
48
  rescue StandardError => e
51
- # TODO: if fails before copying to outgoing then we should roll back BatchNumber
49
+ # TODO: if fails before copying to outgoing then we should roll back Batch
52
50
  Engine.exception_notifier.notify(e)
53
51
  raise e
54
52
  end
@@ -60,7 +58,7 @@ module Renalware
60
58
  @paths ||= begin
61
59
  Paths.new(
62
60
  timestamp: timestamp,
63
- batch_number: batch_number,
61
+ batch_number: batch.number,
64
62
  working_path: config.ukrdc_working_path
65
63
  )
66
64
  end
@@ -112,8 +110,7 @@ module Renalware
112
110
  patient: patient,
113
111
  dir: paths.timestamped_xml_folder,
114
112
  changes_since: changed_since,
115
- request_uuid: request_uuid,
116
- batch_number: batch_number,
113
+ batch: batch,
117
114
  logger: logger,
118
115
  force_send: force_send,
119
116
  schema: schema
@@ -169,7 +166,7 @@ module Renalware
169
166
  end
170
167
 
171
168
  def export_results
172
- TransmissionLog.where(request_uuid: request_uuid).group(:status).count(:status).to_h
169
+ TransmissionLog.where(batch_id: batch.id).group(:status).count(:status).to_h
173
170
  end
174
171
 
175
172
  def encrypt_patient_xml_files