renalware-core 2.0.55 → 2.0.56
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/controllers/renalware/admissions/requests_controller.rb +5 -1
- data/app/controllers/renalware/hd/sessions_controller.rb +5 -1
- data/app/controllers/renalware/problems/problems_controller.rb +2 -2
- data/app/models/concerns/renalware/feeds/job.rb +1 -1
- data/app/models/renalware/admissions/consult_query.rb +1 -0
- data/app/models/renalware/admissions/request.rb +1 -0
- data/app/models/renalware/hd/session.rb +9 -6
- data/app/models/renalware/ukrdc/batch_number.rb +9 -3
- data/app/models/renalware/ukrdc/create_encrypted_patient_xml_files.rb +14 -9
- data/app/models/renalware/ukrdc/create_patient_xml_file.rb +2 -11
- data/app/models/renalware/ukrdc/filename.rb +35 -0
- data/app/models/renalware/ukrdc/paths.rb +4 -3
- data/app/presenters/renalware/accesses/dashboard_presenter.rb +3 -3
- data/app/presenters/renalware/hd/dashboard_presenter.rb +1 -1
- data/app/presenters/renalware/hd/profile_presenter.rb +4 -1
- data/app/presenters/renalware/hd/session_presenter.rb +21 -1
- data/app/presenters/renalware/letters/letter_presenter.rb +1 -1
- data/app/views/renalware/admissions/requests/_request.html.slim +1 -2
- data/app/views/renalware/api/ukrdc/patients/_encounters.xml.builder +9 -9
- data/app/views/renalware/api/ukrdc/patients/_procedures.xml.builder +37 -0
- data/app/views/renalware/api/ukrdc/patients/procedures/_dialysis_session.xml.builder +43 -0
- data/app/views/renalware/api/ukrdc/patients/show.xml.builder +1 -0
- data/lib/gpg_encrypt_folder.rb +4 -4
- data/lib/renalware/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b43e0abe941399d01e0ad556cd252275bee56352a1f93c36539047e23d494596
|
4
|
+
data.tar.gz: c01f1fb595e6349a0fe2cec92b9e1ece2051e46c3198bf4535206413a891dd4b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b1a75fd73bab54706788485f5c2d5a05f325f23d055aff0832f4a8e482ccc691ad6d654c1f94c279e4a0dbd9504cf10d244d1b7153f3660caf6f512ea1f5ab12
|
7
|
+
data.tar.gz: 272ff58c7269f6c12fce46cf38bea2826d77ff188241218380cd0f62f9d0a71e6aeed60ff238a467ee5266eb5e80692cb69444358ec9c5a9f1c7da97e9bbcbc4
|
@@ -8,7 +8,11 @@ module Renalware
|
|
8
8
|
include Renalware::Concerns::Pageable
|
9
9
|
|
10
10
|
def index
|
11
|
-
requests = Request
|
11
|
+
requests = Request
|
12
|
+
.ordered
|
13
|
+
.includes(:patient, :reason, :created_by, :updated_by, :hospital_unit)
|
14
|
+
.all
|
15
|
+
.page(page).per(per_page)
|
12
16
|
authorize requests
|
13
17
|
render locals: { requests: requests }
|
14
18
|
end
|
@@ -13,7 +13,11 @@ module Renalware
|
|
13
13
|
|
14
14
|
def index
|
15
15
|
query = sessions_query
|
16
|
-
sessions = query
|
16
|
+
sessions = query
|
17
|
+
.call
|
18
|
+
.includes(:hospital_unit, :patient, :signed_on_by, :signed_off_by)
|
19
|
+
.page(page)
|
20
|
+
.per(per_page || 15)
|
17
21
|
authorize sessions
|
18
22
|
presenter = CollectionPresenter.new(sessions, SessionPresenter, view_context)
|
19
23
|
@q = query.search
|
@@ -8,13 +8,13 @@ module Renalware
|
|
8
8
|
authorize problems
|
9
9
|
render locals: {
|
10
10
|
patient: patient,
|
11
|
-
current_problems: problems.current.
|
11
|
+
current_problems: problems.current.with_updated_by.ordered,
|
12
12
|
archived_problems: problems.archived.with_created_by.ordered
|
13
13
|
}
|
14
14
|
end
|
15
15
|
|
16
16
|
def show
|
17
|
-
problem = patient.problems.with_archived.find(params[:id])
|
17
|
+
problem = patient.problems.with_archived.includes(versions: :item).find(params[:id])
|
18
18
|
notes = problem.notes.with_updated_by.ordered
|
19
19
|
authorize problem
|
20
20
|
render locals: {
|
@@ -19,7 +19,7 @@ module Renalware
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def find_file_in(files, pattern)
|
22
|
-
file = files.
|
22
|
+
file = files.detect{ |f| f.basename.to_s.match(pattern) }
|
23
23
|
if file.nil?
|
24
24
|
msg = "Zip file does not contain a file with name matching #{pattern}!"
|
25
25
|
log(msg)
|
@@ -54,21 +54,24 @@ module Renalware
|
|
54
54
|
datetime_at(end_time)
|
55
55
|
end
|
56
56
|
|
57
|
+
def compute_duration
|
58
|
+
return unless start_time_changed? || end_time_changed?
|
59
|
+
|
60
|
+
self.duration = DurationCalculator.in_minutes(start_time, end_time)
|
61
|
+
end
|
62
|
+
|
57
63
|
private
|
58
64
|
|
59
65
|
def datetime_at(time)
|
66
|
+
return if performed_on.blank?
|
67
|
+
return performed_on.to_time if start_time.blank?
|
68
|
+
|
60
69
|
Time.zone.parse("#{performed_on.strftime('%F')} #{time.strftime('%T')}")
|
61
70
|
end
|
62
71
|
|
63
72
|
def assign_modality
|
64
73
|
self.modality_description = patient.modality_description
|
65
74
|
end
|
66
|
-
|
67
|
-
def compute_duration
|
68
|
-
return unless start_time_changed? || end_time_changed?
|
69
|
-
|
70
|
-
self.duration = DurationCalculator.in_minutes(start_time, end_time)
|
71
|
-
end
|
72
75
|
end
|
73
76
|
end
|
74
77
|
end
|
@@ -6,9 +6,15 @@ module Renalware
|
|
6
6
|
module UKRDC
|
7
7
|
class BatchNumber < ApplicationRecord
|
8
8
|
def self.next
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
create!
|
10
|
+
end
|
11
|
+
|
12
|
+
def number
|
13
|
+
id.to_s.rjust(6, "0")
|
14
|
+
end
|
15
|
+
|
16
|
+
def to_s
|
17
|
+
number
|
12
18
|
end
|
13
19
|
end
|
14
20
|
end
|
@@ -29,22 +29,27 @@ module Renalware
|
|
29
29
|
@logger = logger || Rails.logger
|
30
30
|
@request_uuid = SecureRandom.uuid # helps group logs together
|
31
31
|
@timestamp = Time.zone.now.strftime("%Y%m%d%H%M%S%L")
|
32
|
-
|
32
|
+
|
33
33
|
@summary = ExportSummary.new
|
34
34
|
end
|
35
35
|
|
36
36
|
def call
|
37
37
|
logger.tagged(request_uuid) do
|
38
38
|
# Skipping transaction for now as worried about the quantity of rows and data invovled.
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
39
|
+
ActiveRecord::Base.transaction do
|
40
|
+
@batch_number = BatchNumber.next.number
|
41
|
+
@paths = Paths.new(
|
42
|
+
timestamp: timestamp,
|
43
|
+
batch_number: batch_number,
|
44
|
+
working_path: config.ukrdc_working_path
|
45
|
+
)
|
46
|
+
summary.milliseconds_taken = Benchmark.ms do
|
47
|
+
create_patient_xml_files
|
48
|
+
encrypt_patient_xml_files
|
49
|
+
copy_encrypted_xml_files_into_the_outgoing_folder
|
50
|
+
end
|
46
51
|
end
|
47
|
-
|
52
|
+
paths.create_symlink_to_latest_timestamped_folder_so_it_is_easier_to_eyeball
|
48
53
|
build_summary
|
49
54
|
print_summary
|
50
55
|
email_summary
|
@@ -20,7 +20,7 @@ module Renalware
|
|
20
20
|
def call
|
21
21
|
update_patient_to_indicated_we_checked_them_for_any_relevant_changes
|
22
22
|
UKRDC::TransmissionLog.with_logging(patient, request_uuid) do |log|
|
23
|
-
logger.info " Patient #{patient.
|
23
|
+
logger.info " Patient #{patient.ukrdc_external_id}"
|
24
24
|
xml_payload = build_payload(log)
|
25
25
|
if xml_payload_same_as_last_sent_payload?(xml_payload)
|
26
26
|
logger.info " skipping as no change in XML file"
|
@@ -98,19 +98,10 @@ module Renalware
|
|
98
98
|
end
|
99
99
|
|
100
100
|
def xml_filepath
|
101
|
+
xml_filename = Filename.new(patient: patient, batch_number: batch_number).to_s
|
101
102
|
File.join(dir, xml_filename)
|
102
103
|
end
|
103
104
|
|
104
|
-
def xml_filename
|
105
|
-
patient_identifier = patient.nhs_number || patient.local_patient_id
|
106
|
-
if patient_identifier.blank?
|
107
|
-
raise(ArgumentError, "Patient has no NHS number or local patient id")
|
108
|
-
end
|
109
|
-
|
110
|
-
site_code = Renalware.config.ukrdc_site_code # e.g. RJZ
|
111
|
-
"#{site_code}_#{batch_number}_#{patient_identifier.upcase}.xml"
|
112
|
-
end
|
113
|
-
|
114
105
|
class Payload
|
115
106
|
pattr_initialize :payload
|
116
107
|
delegate :to_s, to: :payload
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_dependency "renalware/ukrdc"
|
4
|
+
|
5
|
+
module Renalware
|
6
|
+
module UKRDC
|
7
|
+
# Formats a UKRDC patient XML filename
|
8
|
+
class Filename
|
9
|
+
pattr_initialize [:patient!, :batch_number!]
|
10
|
+
|
11
|
+
def to_s
|
12
|
+
"#{site_code}_#{batch_number}_#{sanitized_patient_identifier}.xml"
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def sanitized_patient_identifier
|
18
|
+
patient_identifier.strip.upcase
|
19
|
+
end
|
20
|
+
|
21
|
+
def site_code
|
22
|
+
Renalware.config.ukrdc_site_code # e.g. RJZ
|
23
|
+
end
|
24
|
+
|
25
|
+
# For an patient identifer to put in the filename (to make it easierto look up the patient)
|
26
|
+
# choose the NHS Number is there is one, falling back to local_patient_id(2,3,4) then
|
27
|
+
# ukrdc_external_id - the latter at least is guaranteed to be present.
|
28
|
+
def patient_identifier
|
29
|
+
return patient.nhs_number if patient.nhs_number.present?
|
30
|
+
|
31
|
+
patient.hospital_identifier&.id || patient.ukrdc_external_id
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -5,12 +5,13 @@ require_dependency "renalware/ukrdc"
|
|
5
5
|
module Renalware
|
6
6
|
module UKRDC
|
7
7
|
class Paths
|
8
|
-
attr_reader :timestamp, :working_path
|
8
|
+
attr_reader :timestamp, :batch_number, :working_path
|
9
9
|
|
10
|
-
def initialize(timestamp: nil, working_path:)
|
10
|
+
def initialize(timestamp: nil, batch_number:, working_path:)
|
11
11
|
raise(ArgumentError, "Invalid working_path") if working_path.blank?
|
12
12
|
|
13
13
|
@timestamp = timestamp
|
14
|
+
@batch_number = batch_number
|
14
15
|
@timestamp ||= Time.zone.now.strftime("%Y%m%d%H%M%S%L")
|
15
16
|
@working_path = Pathname(working_path)
|
16
17
|
create_folders
|
@@ -30,7 +31,7 @@ module Renalware
|
|
30
31
|
end
|
31
32
|
|
32
33
|
def timestamped_folder
|
33
|
-
@timestamped_folder ||= archive_folder.join(timestamp)
|
34
|
+
@timestamped_folder ||= archive_folder.join("#{batch_number}_#{timestamp}")
|
34
35
|
end
|
35
36
|
|
36
37
|
def timestamped_xml_folder
|
@@ -10,7 +10,7 @@ module Renalware
|
|
10
10
|
|
11
11
|
def profiles
|
12
12
|
@profiles ||= CollectionPresenter.new(
|
13
|
-
patient.profiles.past_and_future.ordered,
|
13
|
+
patient.profiles.past_and_future.ordered.includes(:type),
|
14
14
|
ProfilePresenter
|
15
15
|
)
|
16
16
|
end
|
@@ -24,14 +24,14 @@ module Renalware
|
|
24
24
|
|
25
25
|
def procedures
|
26
26
|
@procedures ||= CollectionPresenter.new(
|
27
|
-
patient.procedures.ordered,
|
27
|
+
patient.procedures.ordered.includes(:type),
|
28
28
|
ProcedurePresenter
|
29
29
|
)
|
30
30
|
end
|
31
31
|
|
32
32
|
def assessments
|
33
33
|
@assessments ||= CollectionPresenter.new(
|
34
|
-
patient.assessments.ordered,
|
34
|
+
patient.assessments.ordered.includes(:type),
|
35
35
|
AssessmentPresenter
|
36
36
|
)
|
37
37
|
end
|
@@ -47,7 +47,7 @@ module Renalware
|
|
47
47
|
|
48
48
|
def sessions
|
49
49
|
@sessions ||= begin
|
50
|
-
hd_sessions = Session.includes(:hospital_unit, :patient)
|
50
|
+
hd_sessions = Session.includes(:hospital_unit, :patient, :signed_on_by, :signed_off_by)
|
51
51
|
.for_patient(patient)
|
52
52
|
.limit(10).ordered
|
53
53
|
CollectionPresenter.new(hd_sessions, SessionPresenter, view_context)
|
@@ -69,7 +69,10 @@ module Renalware
|
|
69
69
|
end
|
70
70
|
|
71
71
|
def schedule_definitions
|
72
|
-
ScheduleDefinition
|
72
|
+
ScheduleDefinition
|
73
|
+
.includes(:diurnal_period)
|
74
|
+
.ordered
|
75
|
+
.map{ |definition| [definition.to_s, definition.id] }
|
73
76
|
end
|
74
77
|
|
75
78
|
def last_update
|
@@ -8,6 +8,7 @@ module Renalware
|
|
8
8
|
:observations_before,
|
9
9
|
:observations_after,
|
10
10
|
:dialysis,
|
11
|
+
:complications,
|
11
12
|
to: :document, allow_nil: true
|
12
13
|
delegate :access_type,
|
13
14
|
:access_type_abbreviation,
|
@@ -27,6 +28,11 @@ module Renalware
|
|
27
28
|
:renal_registry_code,
|
28
29
|
to: :hospital_unit,
|
29
30
|
prefix: true, allow_nil: true
|
31
|
+
delegate :username, :to_s, to: :updated_by, prefix: true, allow_nil: true
|
32
|
+
delegate :sodium_content, to: :dialysate, allow_nil: true
|
33
|
+
delegate :had_intradialytic_hypotension,
|
34
|
+
to: :complications,
|
35
|
+
allow_nil: true
|
30
36
|
delegate :class, to: :__getobj__
|
31
37
|
|
32
38
|
def initialize(session, view_context = nil)
|
@@ -35,6 +41,10 @@ module Renalware
|
|
35
41
|
super(session)
|
36
42
|
end
|
37
43
|
|
44
|
+
def had_intradialytic_hypotension?
|
45
|
+
had_intradialytic_hypotension&.yes? ? "Y" : "N"
|
46
|
+
end
|
47
|
+
|
38
48
|
def state
|
39
49
|
self.class.to_s.demodulize.downcase
|
40
50
|
end
|
@@ -45,6 +55,10 @@ module Renalware
|
|
45
55
|
view_context.link_to(text, url)
|
46
56
|
end
|
47
57
|
|
58
|
+
def performed_on_date
|
59
|
+
__getobj__.performed_on
|
60
|
+
end
|
61
|
+
|
48
62
|
def start_time
|
49
63
|
::I18n.l(super, format: :time)
|
50
64
|
end
|
@@ -53,10 +67,16 @@ module Renalware
|
|
53
67
|
::I18n.l(super, format: :time)
|
54
68
|
end
|
55
69
|
|
70
|
+
# Returns duration as e.g. "02:01"
|
56
71
|
def duration
|
57
72
|
super && ::Renalware::Duration.from_minutes(super)
|
58
73
|
end
|
59
74
|
|
75
|
+
# Returns duration as e.g. 121 (minutes)
|
76
|
+
def duration_in_minutes
|
77
|
+
__getobj__.duration
|
78
|
+
end
|
79
|
+
|
60
80
|
def before_measurement_for(measurement)
|
61
81
|
observations_before.try(measurement.to_sym)
|
62
82
|
end
|
@@ -87,7 +107,7 @@ module Renalware
|
|
87
107
|
end
|
88
108
|
|
89
109
|
def truncated_notes
|
90
|
-
return
|
110
|
+
return if notes.blank?
|
91
111
|
|
92
112
|
notes.truncate(100, omission: "…").html_safe
|
93
113
|
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
ruby:
|
2
2
|
patient = request.patient
|
3
|
-
unit = Renalware::Hospitals::Unit.find_by(id: request.hospital_unit_id)
|
4
3
|
editing_history = "Created #{l(request.created_at)} by #{request.created_by}\n"\
|
5
4
|
"Updated #{l(request.updated_at)} by #{request.updated_by}"
|
6
5
|
= content_tag_for(:tr,
|
@@ -13,7 +12,7 @@ ruby:
|
|
13
12
|
td= default_patient_link(patient)
|
14
13
|
td= patient.nhs_number
|
15
14
|
td= patient.hospital_identifiers
|
16
|
-
td=
|
15
|
+
td= request.hospital_unit&.name
|
17
16
|
td.col-width-medium-with-ellipsis(title=request.notes)
|
18
17
|
= request.notes
|
19
18
|
td(title=editing_history)= l(request.created_at)
|
@@ -1,12 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
xml = builder
|
3
|
+
# xml = builder
|
4
4
|
|
5
|
-
xml.Encounters do
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
end
|
5
|
+
# xml.Encounters do
|
6
|
+
# patient.finished_hd_sessions.each do |session|
|
7
|
+
# render "renalware/api/ukrdc/patients/encounters/hd_session",
|
8
|
+
# builder: xml,
|
9
|
+
# patient: patient,
|
10
|
+
# session: Renalware::HD::SessionPresenter.new(session)
|
11
|
+
# end
|
12
|
+
# end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
xml = builder
|
4
|
+
|
5
|
+
xml.Procedures do
|
6
|
+
patient.finished_hd_sessions.each do |session|
|
7
|
+
render "renalware/api/ukrdc/patients/procedures/dialysis_session",
|
8
|
+
builder: xml,
|
9
|
+
patient: patient,
|
10
|
+
session: Renalware::HD::SessionPresenter.new(session)
|
11
|
+
end
|
12
|
+
# patient.prescriptions.each do |prescription|
|
13
|
+
# xml.Medication do
|
14
|
+
# xml.FromTime prescription.prescribed_on.to_datetime
|
15
|
+
# if prescription.terminated_or_marked_for_termination?
|
16
|
+
# xml.ToTime prescription.terminated_on&.to_datetime
|
17
|
+
# end
|
18
|
+
# xml.Route do
|
19
|
+
# xml.CodingStandard "RR22"
|
20
|
+
# xml.Code prescription.medication_route&.rr_code
|
21
|
+
# xml.Description prescription.medication_route&.name
|
22
|
+
# end
|
23
|
+
# xml.DrugProduct do
|
24
|
+
# xml.Generic prescription.drug
|
25
|
+
# # xml.Id do
|
26
|
+
# # xml.CodingStandard "DM+D"
|
27
|
+
# # xml.Code "dm + d code for the drug - coming soon"
|
28
|
+
# # xml.Description prescription.drug
|
29
|
+
# # end
|
30
|
+
# end
|
31
|
+
# xml.Frequency prescription.frequency
|
32
|
+
# xml.Comments prescription.notes
|
33
|
+
# # xml.DoseUoM
|
34
|
+
# # xml.Indication
|
35
|
+
# end
|
36
|
+
# end
|
37
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
xml = builder
|
4
|
+
|
5
|
+
xml.DialysisSession(
|
6
|
+
start: session.performed_on_date,
|
7
|
+
stop: session.performed_on_date
|
8
|
+
) do
|
9
|
+
|
10
|
+
xml.ProcedureType do
|
11
|
+
xml.CodingStandard "SNOMED"
|
12
|
+
xml.Code "19647005"
|
13
|
+
xml.Description "Plasma Exchange"
|
14
|
+
end
|
15
|
+
|
16
|
+
xml.Clinician do
|
17
|
+
xml.Description session.updated_by
|
18
|
+
end
|
19
|
+
|
20
|
+
xml.ProcedureTime session.start_datetime.to_datetime
|
21
|
+
|
22
|
+
xml.EnteredBy do
|
23
|
+
xml.CodingStandard "LOCAL"
|
24
|
+
xml.Code session.updated_by_username
|
25
|
+
xml.Description session.updated_by
|
26
|
+
end
|
27
|
+
|
28
|
+
xml.EnteredAt do
|
29
|
+
xml.Code session.hospital_unit_renal_registry_code
|
30
|
+
end
|
31
|
+
|
32
|
+
xml.ExternalId session.uuid
|
33
|
+
xml.Attributes do
|
34
|
+
xml.QHD19 session.had_intradialytic_hypotension?
|
35
|
+
xml.QHD20 session.access_type
|
36
|
+
xml.QHD21 session.access_side
|
37
|
+
xml.QHD22 "N" # Access in two sites simultaneously
|
38
|
+
xml.QHD30 session.blood_flow
|
39
|
+
xml.QHD31 session.duration_in_minutes # Time Dialysed in Minutes
|
40
|
+
xml.QHD32 session.sodium_content # Sodium in Dialysate
|
41
|
+
xml.QHD33 # Needling Method
|
42
|
+
end
|
43
|
+
end
|
@@ -21,6 +21,7 @@ xml.ukrdc(:PatientRecord, namespace_and_schema) do
|
|
21
21
|
render "allergies", builder: xml, patient: patient
|
22
22
|
render "diagnoses", builder: xml, patient: patient
|
23
23
|
render "medications", builder: xml, patient: patient
|
24
|
+
render "procedures", builder: xml, patient: patient
|
24
25
|
render "documents", builder: xml, patient: patient
|
25
26
|
render "encounters", builder: xml, patient: patient
|
26
27
|
render "program_memberships", builder: xml, patient: patient
|
data/lib/gpg_encrypt_folder.rb
CHANGED
@@ -40,13 +40,13 @@ class GpgEncryptFile
|
|
40
40
|
err = Open3.popen3(gpg_command) do |_stdin, _stdout, stderr|
|
41
41
|
stderr.read
|
42
42
|
end
|
43
|
-
raise "Error encrypting UKRDC files: #{err}" unless err.empty?
|
43
|
+
raise "Error encrypting UKRDC files: #{err}, #{gpg_command}" unless err.empty?
|
44
44
|
end
|
45
45
|
|
46
46
|
private
|
47
47
|
|
48
48
|
def gpg_command
|
49
|
-
GpgCommand.new(file: file, options: options).to_s
|
49
|
+
@gpg_command ||= GpgCommand.new(file: file, options: options).to_s
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
@@ -56,8 +56,8 @@ class GpgCommand
|
|
56
56
|
def to_s
|
57
57
|
"gpg --armor --no-default-keyring --trust-model always "\
|
58
58
|
"#{keyring} #{homedir} #{recipient} "\
|
59
|
-
"-o #{encrypted_filename} "\
|
60
|
-
"--encrypt #{file}"
|
59
|
+
"-o \"#{encrypted_filename}\" "\
|
60
|
+
"--encrypt \"#{file}\""
|
61
61
|
end
|
62
62
|
|
63
63
|
def recipient
|
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.56
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Airslie
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-10-
|
11
|
+
date: 2018-10-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: active_type
|
@@ -1763,6 +1763,7 @@ files:
|
|
1763
1763
|
- app/models/renalware/ukrdc/create_encrypted_patient_xml_files.rb
|
1764
1764
|
- app/models/renalware/ukrdc/create_patient_xml_file.rb
|
1765
1765
|
- app/models/renalware/ukrdc/export_summary.rb
|
1766
|
+
- app/models/renalware/ukrdc/filename.rb
|
1766
1767
|
- app/models/renalware/ukrdc/paths.rb
|
1767
1768
|
- app/models/renalware/ukrdc/patients_query.rb
|
1768
1769
|
- app/models/renalware/ukrdc/transmission_log.rb
|
@@ -2043,6 +2044,7 @@ files:
|
|
2043
2044
|
- app/views/renalware/api/ukrdc/patients/_name.xml.builder
|
2044
2045
|
- app/views/renalware/api/ukrdc/patients/_observations.xml.builder
|
2045
2046
|
- app/views/renalware/api/ukrdc/patients/_patient.xml.builder
|
2047
|
+
- app/views/renalware/api/ukrdc/patients/_procedures.xml.builder
|
2046
2048
|
- app/views/renalware/api/ukrdc/patients/_program_memberships.xml.builder
|
2047
2049
|
- app/views/renalware/api/ukrdc/patients/_sending_facility.xml.builder
|
2048
2050
|
- app/views/renalware/api/ukrdc/patients/_social_histories.xml.builder
|
@@ -2054,6 +2056,7 @@ files:
|
|
2054
2056
|
- app/views/renalware/api/ukrdc/patients/observations/_blood_pressure.xml.builder
|
2055
2057
|
- app/views/renalware/api/ukrdc/patients/observations/_standing_blood_pressure.xml.builder
|
2056
2058
|
- app/views/renalware/api/ukrdc/patients/observations/_weight.xml.builder
|
2059
|
+
- app/views/renalware/api/ukrdc/patients/procedures/_dialysis_session.xml.builder
|
2057
2060
|
- app/views/renalware/api/ukrdc/patients/show.xml.builder
|
2058
2061
|
- app/views/renalware/api/v1/medications/prescriptions/index.json.jbuilder
|
2059
2062
|
- app/views/renalware/api/v1/patients/patients/index.json.jbuilder
|