renalware-core 2.0.43 → 2.0.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/jobs/feed_job.rb +21 -2
- data/app/jobs/renalware/hd/generate_monthly_statistics.rb +2 -0
- data/app/jobs/renalware/hd/generate_monthly_statistics_for_patient_job.rb +1 -0
- data/app/jobs/renalware/hd/update_rolling_patient_statistics_job.rb +1 -0
- data/app/jobs/renalware/letters/save_pdf_letter_to_file_job.rb +5 -0
- data/app/jobs/renalware/reporting/refresh_audit_data_job.rb +1 -0
- data/app/models/concerns/renalware/patients_ransack_helper.rb +1 -0
- data/app/models/renalware/feeds.rb +4 -0
- data/app/models/renalware/pd/assessment.rb +3 -1
- data/app/views/renalware/pd/assessments/_list.html.slim +2 -2
- data/app/views/renalware/pd/assessments/show.html.slim +3 -3
- data/config/initializers/delayed_job.rb +7 -2
- data/lib/renalware/version.rb +1 -1
- data/spec/factories/messaging/internal/messages.rb +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f0786caf2cbce2b717b9cdac406185a53787547dea6a7e7effed98ed09fdca0
|
4
|
+
data.tar.gz: cb9bcf041a6eb26dcad74880db20ae844fdbf5fe4a5cc0b4a5362a849f322a9f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb3f0f9ffadb729f50b5b39ad3f0f067827eee607a29f5254a606b551a21dded6cbebb587bcf9d63d4efd31e35b8fc7962671e5b0be904d790f5193ab2f1bb45
|
7
|
+
data.tar.gz: 37b69cc689c4bd52d1ef7b2e3ce241f36e65e767527606d1fe94230ef6c8d12b081eedc762d198aefef252fe0066cc51f2fd3e127052ac583620d0be4cd0af1e
|
data/app/jobs/feed_job.rb
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
# into the `delayed_jobs` table:
|
5
5
|
#
|
6
6
|
# handler: {see h7_message_example.yml}
|
7
|
-
# run_at: {current_time}
|
7
|
+
# run_at: {current_time e.g. NOW() AT TIME ZONE 'UTC'}
|
8
8
|
#
|
9
9
|
# Notes:
|
10
10
|
#
|
@@ -15,7 +15,26 @@ FeedJob = Struct.new(:raw_message) do
|
|
15
15
|
def perform
|
16
16
|
Renalware::Feeds
|
17
17
|
.message_processor
|
18
|
-
.broadcasting_to_configured_subscribers
|
19
18
|
.call(raw_message)
|
20
19
|
end
|
20
|
+
|
21
|
+
def max_attempts
|
22
|
+
4
|
23
|
+
end
|
24
|
+
|
25
|
+
def destroy_failed_jobs?
|
26
|
+
false
|
27
|
+
end
|
28
|
+
|
29
|
+
# Reschedule after an error. No point trying straight away, so try at these intervals:
|
30
|
+
# After attempt no. Wait for hours
|
31
|
+
# ---------------------------
|
32
|
+
# 1 2
|
33
|
+
# 2 17
|
34
|
+
# 3 82
|
35
|
+
# Then give up.
|
36
|
+
# Note e.g. attempts**4 == attempts to the power of 4 == 81
|
37
|
+
def reschedule_at(current_time, attempts)
|
38
|
+
current_time + ((attempts**4) + 1).hours
|
39
|
+
end
|
21
40
|
end
|
@@ -5,7 +5,12 @@ require "fileutils"
|
|
5
5
|
|
6
6
|
module Renalware
|
7
7
|
module Letters
|
8
|
+
# Used for example in a host app like renalware-kch to generate a PDF letter for saving to
|
9
|
+
# the electronic public register
|
8
10
|
class SavePdfLetterToFileJob < ApplicationJob
|
11
|
+
queue_as :pdf_generation
|
12
|
+
queue_with_priority 1
|
13
|
+
|
9
14
|
def perform(letter:, file_path:)
|
10
15
|
file_path = Pathname(file_path)
|
11
16
|
create_folder_if_not_exists(file_path)
|
@@ -15,10 +15,14 @@ module Renalware
|
|
15
15
|
@message_processor ||= build_message_processor
|
16
16
|
end
|
17
17
|
|
18
|
+
# Note we are using both the SubscriptionRegistry (which we think is not thread safe)
|
19
|
+
# as does not store the registry in TLS (?) and also the newer subscription_map
|
20
|
+
# We need to consolidate these.
|
18
21
|
def build_message_processor
|
19
22
|
SubscriptionRegistry
|
20
23
|
.instance
|
21
24
|
.subscribe_listeners_to(MessageProcessor.new)
|
25
|
+
.broadcasting_to_configured_subscribers
|
22
26
|
end
|
23
27
|
end
|
24
28
|
end
|
@@ -51,7 +51,9 @@ module Renalware
|
|
51
51
|
attribute :bowel_disease_notes
|
52
52
|
attribute :added_comments
|
53
53
|
|
54
|
-
validates :assessed_on, presence: true
|
54
|
+
validates :assessed_on, presence: true, timeliness: { type: :date }
|
55
|
+
validates :home_visit_on, timeliness: { type: :date, allow_blank: true }
|
56
|
+
validates :access_clinic_on, timeliness: { type: :date, allow_blank: true }
|
55
57
|
end
|
56
58
|
has_document
|
57
59
|
end
|
@@ -23,8 +23,8 @@ article.pd_assessments
|
|
23
23
|
- if policy(assessment).show?
|
24
24
|
= link_to("View", [patient, assessment])
|
25
25
|
td= l(assessment.created_at)
|
26
|
-
td= l(document.assessed_on)
|
26
|
+
td= document.assessed_on.is_a?(Date) ? l(document.assessed_on) : document.assessed_on
|
27
27
|
td= document.assessor
|
28
28
|
td= document.had_home_visit&.text
|
29
|
-
td= l(document.home_visit_on)
|
29
|
+
td= document.home_visit_on.is_a?(Date) ? l(document.home_visit_on) : document.home_visit_on
|
30
30
|
td
|
@@ -8,10 +8,10 @@
|
|
8
8
|
article.pd_assessment_document
|
9
9
|
header
|
10
10
|
= definition_list_for(assessment.document, size: :xlarge) do |list|
|
11
|
-
= list.definition(:assessed_on) { |value| l(value) }
|
11
|
+
= list.definition(:assessed_on) { |value| value.is_a?(Date) ? l(value) : value }
|
12
12
|
= list.definition(:assessor)
|
13
13
|
= list.definition(:had_home_visit, &:text)
|
14
|
-
= list.definition(:home_visit_on) { |value| l(value) }
|
14
|
+
= list.definition(:home_visit_on) { |value| value.is_a?(Date) ? l(value) : value }
|
15
15
|
= list.definition(:housing_type, &:text)
|
16
16
|
= list.definition(:occupant_notes)
|
17
17
|
= list.definition(:exchange_area)
|
@@ -37,7 +37,7 @@
|
|
37
37
|
= list.definition(:insertion_discussed, &:text)
|
38
38
|
= list.definition(:method_chosen, &:text)
|
39
39
|
= list.definition(:access_clinic_referral, &:text)
|
40
|
-
= list.definition(:access_clinic_on) { |value| l(value) }
|
40
|
+
= list.definition(:access_clinic_on) { |value| value.is_a?(Date) ? l(value) : value }
|
41
41
|
= list.definition(:abdo_assessor)
|
42
42
|
= list.definition(:bowel_disease, &:text)
|
43
43
|
= list.definition(:bowel_disease_notes)
|
@@ -2,5 +2,10 @@
|
|
2
2
|
|
3
3
|
Delayed::Worker.logger = Logger.new(Rails.root.join("log", "delayed_job.log"))
|
4
4
|
Delayed::Worker.destroy_failed_jobs = false
|
5
|
-
Delayed::Worker.max_attempts = 10
|
6
|
-
Delayed::Worker.max_run_time =
|
5
|
+
Delayed::Worker.max_attempts = 10 # overridden e.g. in FeedJob
|
6
|
+
Delayed::Worker.max_run_time = 2.hours
|
7
|
+
Delayed::Worker.read_ahead = 10
|
8
|
+
Delayed::Worker.sleep_delay = 15 # Also affects how long it takes delayed_job to stop on Crl+C
|
9
|
+
Delayed::Worker.default_priority = 5 # use a lower number to get preferential treatment
|
10
|
+
# Will only raise an exception on TERM signals but INT will wait for the current job to finish.
|
11
|
+
Delayed::Worker.raise_signal_exceptions = :term
|
data/lib/renalware/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: renalware-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.44
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Airslie
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-08-
|
11
|
+
date: 2018-08-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: active_type
|