renalware-core 2.0.157 → 2.0.162
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/assets/javascripts/renalware/components/configuration.js +20 -0
- data/app/assets/javascripts/renalware/components/{dialogs.js.erb → dialogs.js} +2 -5
- data/app/assets/javascripts/renalware/components/{feed_only_inputs.js.erb → feed_only_inputs.js} +4 -4
- data/app/assets/javascripts/renalware/{core.js.erb → core.js} +0 -5
- data/app/assets/javascripts/renalware/rollup_compiled.css +42050 -42050
- data/app/assets/javascripts/renalware/rollup_compiled.js +768 -201
- data/app/assets/stylesheets/renalware/modules/_clinical.scss +41 -0
- data/app/components/renalware/admissions/active_consult_alert_component.html.slim +1 -1
- data/app/components/renalware/article_component.rb +1 -1
- data/app/components/renalware/letters/letters_in_progress_component.rb +1 -5
- data/app/components/renalware/letters/unread_electronic_ccs_component.rb +1 -4
- data/app/components/renalware/medications/tabbed_prescriptions_list_component.html.slim +2 -2
- data/app/components/renalware/pathology/sparkline_component.html.slim +1 -1
- data/app/components/renalware/patients/bookmarks_component.rb +1 -5
- data/app/components/renalware/patients/messages_component.rb +2 -8
- data/app/components/renalware/pd/adequacy_results_component.rb +1 -1
- data/app/components/renalware/pd/pet_results_component.html.slim +5 -7
- data/app/components/renalware/surveys/eq5d_component.rb +1 -5
- data/app/components/renalware/surveys/pos_s_component.rb +1 -5
- data/app/components/renalware/system/admin_menu_component.rb +1 -4
- data/app/components/renalware/system/users_awaiting_approval_component.rb +1 -5
- data/app/controllers/renalware/api/token_authenticated_api_controller.rb +1 -1
- data/app/controllers/renalware/api/v1/medications/prescriptions_controller.rb +1 -1
- data/app/controllers/renalware/api/v1/patients/patients_controller.rb +1 -1
- data/app/controllers/renalware/events/events_controller.rb +0 -1
- data/app/controllers/renalware/pd/pet_results_controller.rb +1 -1
- data/{lib → app/documents}/document/attribute_initializer.rb +0 -0
- data/{lib → app/documents}/document/attribute_initializer/active_model.rb +0 -0
- data/{lib → app/documents}/document/attribute_initializer/base.rb +0 -0
- data/{lib → app/documents}/document/attribute_initializer/enum.rb +0 -0
- data/{lib → app/documents}/document/base.rb +0 -0
- data/{lib → app/documents}/document/embedded.rb +0 -0
- data/{lib → app/documents}/document/enum.rb +0 -0
- data/app/javascript/renalware/controllers/modal_controller.js +1 -1
- data/app/jobs/renalware/hd/generate_monthly_statistics.rb +1 -1
- data/app/jobs/renalware/hd/generate_monthly_statistics_for_patient_job.rb +1 -1
- data/app/jobs/renalware/letters/calculate_page_count_job.rb +0 -1
- data/app/jobs/renalware/letters/mailshots/create_mailshot_letters_job.rb +0 -1
- data/app/jobs/renalware/letters/printing/batch_print_job.rb +0 -1
- data/app/jobs/renalware/letters/save_rtf_letter_to_file_job.rb +1 -1
- data/app/mailers/renalware/letters/{delivery/errors.rb → delivery.rb} +2 -1
- data/app/mailers/renalware/letters/delivery/practice_mailer.rb +2 -2
- data/app/models/concerns/renalware/deviseable.rb +3 -3
- data/app/models/renalware/admissions/admission_query.rb +0 -1
- data/{lib → app/models}/renalware/automatic_age_calculator.rb +0 -0
- data/app/models/renalware/clinical/create_allergy.rb +4 -4
- data/app/models/renalware/clinics/create_clinic_visit.rb +4 -4
- data/app/models/renalware/clinics/current_observations.rb +3 -4
- data/app/models/renalware/events/alertable_events_query.rb +27 -0
- data/app/models/renalware/events/create_event.rb +0 -1
- data/app/models/renalware/events/event.rb +4 -0
- data/app/models/renalware/events/event_type_alert_trigger.rb +15 -0
- data/app/models/renalware/events/type.rb +7 -0
- data/app/models/renalware/feeds/files/exceptions.rb +1 -0
- data/app/models/renalware/feeds/files/practice_memberships/import_csv.rb +0 -1
- data/app/models/renalware/feeds/files/primary_care_physicians/import_csv.rb +0 -1
- data/app/models/renalware/feeds/message_processor.rb +0 -1
- data/app/models/renalware/hd/prescription_administration.rb +6 -4
- data/app/models/renalware/hd/profiles_in_date_range_query.rb +1 -6
- data/app/models/renalware/hd/scheduling/diary_range.rb +1 -2
- data/app/models/renalware/hd/scheduling/find_or_create_diary_by_week_query.rb +1 -1
- data/app/models/renalware/hd/session_forms/batch.rb +0 -1
- data/app/models/renalware/hd/session_forms/batch_compile_pdfs.rb +0 -1
- data/app/models/renalware/hd/session_forms/batch_item.rb +0 -1
- data/app/models/renalware/hd/sessions/close_stale_open_sessions.rb +0 -1
- data/app/models/renalware/letters/approve_letter.rb +0 -1
- data/app/models/renalware/letters/complete_letter.rb +0 -1
- data/app/models/renalware/letters/delivery/delivery_policy.rb +0 -1
- data/app/models/renalware/letters/delivery/email_letter_to_practice.rb +0 -1
- data/app/models/renalware/letters/delivery/practice_email.rb +0 -1
- data/app/models/renalware/letters/html_renderer.rb +1 -1
- data/app/models/renalware/letters/letter_factory.rb +1 -1
- data/app/models/renalware/letters/part/recent_pathology_results.rb +0 -1
- data/app/models/renalware/letters/pathology_layout.rb +1 -1
- data/app/models/renalware/letters/pdf_letter_cache.rb +1 -1
- data/app/models/renalware/letters/pdf_renderer.rb +1 -1
- data/app/models/renalware/letters/printing/batch_compile_pdfs.rb +0 -1
- data/app/models/renalware/letters/printing/complete_batch.rb +0 -1
- data/app/models/renalware/letters/printing/pdf_combining.rb +0 -2
- data/app/models/renalware/letters/resolve_default_electronic_ccs.rb +0 -2
- data/app/models/renalware/letters/rtf_renderer.rb +3 -2
- data/app/models/renalware/modalities/change_patient_modality.rb +4 -4
- data/app/models/renalware/pathology.rb +1 -0
- data/app/models/renalware/pathology/adjust_observation.rb +0 -1
- data/app/models/renalware/pathology/message_listener.rb +1 -1
- data/app/models/renalware/pathology/observation.rb +1 -1
- data/app/models/renalware/pathology/observation_descriptions_by_code_query.rb +1 -1
- data/app/models/renalware/pathology/observations_grouped_by_date_query.rb +0 -1
- data/app/models/renalware/pathology/observations_grouped_by_date_table.rb +0 -1
- data/app/models/renalware/pathology/ordered_patient_query.rb +1 -1
- data/app/models/renalware/pathology/requests/request_params_factory.rb +0 -1
- data/app/models/renalware/patients/calculate_age.rb +0 -1
- data/app/models/renalware/patients/clear_patient_ukrdc_data.rb +0 -1
- data/app/models/renalware/patients/ingestion/update_master_patient_index.rb +0 -1
- data/app/models/renalware/patients/last_successful_practice_sync_date_query.rb +0 -2
- data/app/models/renalware/patients/primary_care_physician.rb +1 -0
- data/app/models/renalware/patients/sync_ods_job.rb +1 -1
- data/app/models/renalware/patients/sync_practices_via_api.rb +1 -1
- data/app/models/renalware/pd.rb +5 -0
- data/app/models/renalware/pd/{apd/exceptions.rb → apd.rb.dead} +0 -0
- data/app/models/renalware/pd/apd/available_overnight_volume.rb +0 -1
- data/app/models/renalware/pd/apd/regime_calculations.rb +1 -1
- data/app/models/renalware/pd/create_regime.rb +4 -4
- data/app/models/renalware/pd/regimes_in_date_range_query.rb +0 -2
- data/app/models/renalware/pd/revise_regime.rb +5 -5
- data/{lib → app/models}/renalware/remembered_preferences.rb +0 -0
- data/app/models/renalware/research/study_participants_query.rb +0 -1
- data/app/models/renalware/transplants/create_donor_stage.rb +4 -4
- data/app/models/renalware/transplants/registrations/wait_list_query.rb +1 -1
- data/app/models/renalware/ukrdc.rb +1 -0
- data/app/models/renalware/ukrdc/create_encrypted_patient_xml_files.rb +2 -2
- data/app/models/renalware/ukrdc/create_patient_xml_file.rb +1 -2
- data/app/models/renalware/ukrdc/export_summary.rb +0 -1
- data/app/models/renalware/ukrdc/housekeeping/remove_old_export_archive_folders.rb +0 -1
- data/app/models/renalware/ukrdc/incoming/file_list.rb +0 -2
- data/app/models/renalware/ukrdc/incoming/import_survey.rb +0 -1
- data/app/models/renalware/ukrdc/incoming/import_surveys.rb +0 -1
- data/app/models/renalware/ukrdc/incoming/xml_document.rb +0 -1
- data/app/models/renalware/ukrdc/pathology_observation_requests_query.rb +1 -2
- data/app/models/renalware/ukrdc/treatment_timeline/generate_timeline.rb +0 -1
- data/app/models/renalware/ukrdc/treatment_timeline/generate_treatments.rb +1 -1
- data/app/models/renalware/ukrdc/treatment_timeline/generator_factory.rb +1 -1
- data/app/models/renalware/ukrdc/treatment_timeline/hd/generator.rb +1 -1
- data/app/models/renalware/ukrdc/treatment_timeline/pd/generator.rb +0 -1
- data/app/models/renalware/ukrdc/treatment_timeline/pd/regime_decorator.rb +0 -1
- data/app/models/renalware/ukrdc/treatment_timeline/transfer_out/generator.rb +0 -1
- data/app/models/renalware/ukrdc/treatment_timeline/transplant/generator.rb +0 -1
- data/app/models/renalware/ukrdc/xml_renderer.rb +2 -2
- data/app/models/renalware/virology/vaccination.rb +14 -1
- data/app/models/renalware/virology/vaccination_type.rb +16 -0
- data/app/presenters/renalware/accesses/dashboard_presenter.rb +0 -1
- data/app/presenters/renalware/clinical/header_presenter.rb +0 -1
- data/app/presenters/renalware/letters/letter_presenter.rb +1 -1
- data/app/presenters/renalware/letters/part_class_filter.rb +0 -1
- data/app/presenters/renalware/letters/practice_email_meta_data.rb +0 -1
- data/app/presenters/renalware/low_clearance/dashboard_presenter.rb +0 -1
- data/app/presenters/renalware/medications/prescription_presenter.rb +7 -0
- data/app/presenters/renalware/pathology/observations_diff.rb +0 -1
- data/app/presenters/renalware/renal/clinical_summary_presenter.rb +0 -1
- data/app/presenters/renalware/summary_part.rb +0 -2
- data/app/presenters/renalware/transplants/donor_dashboard_presenter.rb +0 -1
- data/app/presenters/renalware/transplants/recipient_dashboard_presenter.rb +0 -1
- data/app/presenters/renalware/ukrdc/transplant_operation_presenter.rb +0 -1
- data/app/presenters/renalware/user_session_presenter.rb +1 -3
- data/app/values/renalware/bmi.rb +0 -2
- data/app/views/renalware/admin/cache/show.html.slim +0 -36
- data/app/views/renalware/admin/playgrounds/show.html.slim +2 -2
- data/app/views/renalware/events/events/_alerts.html.slim +3 -0
- data/app/views/renalware/events/events/alert/_simple.html.slim +5 -0
- data/app/views/renalware/events/events/toggled_cell/_swab.html.slim +1 -1
- data/app/views/renalware/hd/dashboards/_page_actions.html.slim +4 -1
- data/app/views/renalware/hd/mdm_patients/_patient.html.slim +1 -1
- data/app/views/renalware/hd/prescription_administrations/_form.html.slim +2 -2
- data/app/views/renalware/hd/transmission_logs/index.html.slim +2 -1
- data/app/views/renalware/layouts/_patient.html.slim +1 -0
- data/app/views/renalware/letters/batches/_create.html.slim +2 -2
- data/app/views/renalware/letters/contacts/_new_person.html.slim +1 -1
- data/app/views/renalware/letters/contacts/_person_from_directory.html.slim +1 -1
- data/app/views/renalware/letters/formatted_letters/_letter.html.slim +13 -14
- data/app/views/renalware/letters/mailshots/mailshots/_form.html.slim +25 -21
- data/app/views/renalware/letters/parts/_allergies.html.slim +1 -1
- data/app/views/renalware/letters/parts/_problems.html.slim +1 -1
- data/app/views/renalware/letters/parts/_recent_pathology_results.html.slim +1 -1
- data/app/views/renalware/medications/home_delivery/events/_edit.html.slim +4 -4
- data/app/views/renalware/medications/prescriptions/_current.html.slim +1 -1
- data/app/views/renalware/medications/prescriptions/_current_hd.html.slim +1 -1
- data/app/views/renalware/medications/prescriptions/_form.html.slim +3 -3
- data/app/views/renalware/medications/prescriptions/_prescription.html.slim +3 -1
- data/app/views/renalware/medications/prescriptions/_recently_stopped.html.slim +1 -1
- data/app/views/renalware/system/downloads/index.html.slim +1 -1
- data/app/views/renalware/system/messages/_form.html.slim +1 -1
- data/app/views/renalware/system/view_metadata/_columns_table.html.slim +2 -2
- data/app/views/renalware/system/view_metadata/edit.html.slim +6 -6
- data/app/views/renalware/virology/vaccinations/_alert.html.slim +5 -0
- data/app/views/renalware/virology/vaccinations/_cell.html.slim +1 -1
- data/app/views/renalware/virology/vaccinations/_inputs.html.slim +3 -1
- data/app/views/renalware/virology/vaccinations/_toggled_cell.html.slim +3 -1
- data/config/initializers/core_extensions.rb +1 -1
- data/config/initializers/inflections.rb +2 -0
- data/config/locales/renalware/virology/virology.en.yml +4 -0
- data/db/migrate/20201105153422_update_medication_current_prescriptions_view.rb +7 -0
- data/db/migrate/20201112152752_update_pd_mdm_patients_view1.rb +7 -0
- data/db/migrate/20210105163944_create_virology_vaccination_types.rb +13 -0
- data/db/migrate/20210115181817_create_event_type_alert_triggers.rb +15 -0
- data/db/seeds/default/seeds.rb +1 -0
- data/db/seeds/default/virology/seeds.rb +3 -0
- data/db/seeds/default/virology/vaccination_types.rb +25 -0
- data/db/views/medication_current_prescriptions_v01.sql +2 -1
- data/db/views/medication_current_prescriptions_v02.sql +30 -0
- data/db/views/pd_mdm_patients_v03.sql +50 -0
- data/db/views/reporting_anaemia_audit_v01.sql +0 -2
- data/lib/core_extensions/active_support/{duration.rb → duration_additions.rb} +0 -0
- data/lib/failure.rb +6 -0
- data/lib/gpg_encrypt_folder.rb +0 -2
- data/lib/month_period.rb +16 -0
- data/lib/renalware/configuration.rb +5 -6
- data/lib/renalware/version_number.rb +1 -1
- data/lib/service_result.rb +17 -0
- data/lib/sql/indexed_case_stmt.rb +1 -3
- data/lib/success.rb +9 -0
- data/lib/tasks/ukrdc.rake +1 -1
- data/lib/week_period.rb +57 -0
- data/spec/factories/events/events.rb +1 -2
- data/spec/factories/letters/letters.rb +4 -11
- data/spec/factories/medications/prescription_version.rb +1 -2
- data/spec/factories/patients/ethnicities.rb +1 -2
- data/spec/factories/pd/bag_types.rb +2 -2
- data/spec/factories/snippets/users.rb +1 -2
- data/spec/factories/transplants/recipient_followups.rb +1 -2
- data/spec/factories/virology/vaccination_types.rb +8 -0
- data/spec/factories/virology/vaccinations.rb +1 -1
- data/{lib/test_support → spec/support}/ajax_helpers.rb +0 -0
- data/{lib/test_support → spec/support}/text_editor_helpers.rb +0 -0
- metadata +51 -42
- data/app/assets/javascripts/renalware/components/reporting.js.erb +0 -0
- data/app/assets/javascripts/renalware/components/session_timeout_redirect.js.erb +0 -37
- data/app/components/renalware/system/article_component.html.slim +0 -3
- data/app/components/renalware/system/article_component.rb +0 -9
- data/app/mailers/renalware/previews/report_preview.rb +0 -14
- data/app/mailers/renalware/previews/ukrdc_summary_preview.rb +0 -20
- data/app/mailers/renalware/previews/user_mailer_preview.rb +0 -16
- data/lib/renalware/failure.rb +0 -6
- data/lib/renalware/month_period.rb +0 -18
- data/lib/renalware/service_result.rb +0 -19
- data/lib/renalware/success.rb +0 -9
- data/lib/renalware/week_period.rb +0 -59
File without changes
|
@@ -1,8 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_dependency "renalware/clinical"
|
4
|
-
|
5
|
-
|
4
|
+
require "success"
|
5
|
+
require "failure"
|
6
6
|
|
7
7
|
module Renalware
|
8
8
|
module Clinical
|
@@ -17,9 +17,9 @@ module Renalware
|
|
17
17
|
yield allergy if block_given?
|
18
18
|
if allergy.valid?
|
19
19
|
save_allergy(allergy)
|
20
|
-
::
|
20
|
+
::Success.new(allergy)
|
21
21
|
else
|
22
|
-
::
|
22
|
+
::Failure.new(allergy)
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_dependency "renalware/clinics"
|
4
|
-
|
5
|
-
|
4
|
+
require "success"
|
5
|
+
require "failure"
|
6
6
|
|
7
7
|
module Renalware
|
8
8
|
module Clinics
|
@@ -22,9 +22,9 @@ module Renalware
|
|
22
22
|
visit = patient.clinic_visits.new(params)
|
23
23
|
objects = OpenStruct.new(clinic_visit: visit, appointment: appointment)
|
24
24
|
if visit.save && update_appointment_with(visit.id)
|
25
|
-
return ::
|
25
|
+
return ::Success.new(objects)
|
26
26
|
else
|
27
|
-
return ::
|
27
|
+
return ::Failure.new(objects)
|
28
28
|
end
|
29
29
|
end
|
30
30
|
end
|
@@ -1,11 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_dependency "renalware/letters"
|
4
|
-
require "attr_extras"
|
5
4
|
|
6
5
|
module Renalware
|
7
6
|
module Clinics
|
8
|
-
# TODO:
|
7
|
+
# TODO: Unused?
|
9
8
|
class CurrentObservations
|
10
9
|
NULL_DATE = nil
|
11
10
|
pattr_initialize :patient
|
@@ -17,7 +16,7 @@ module Renalware
|
|
17
16
|
@weight ||= begin
|
18
17
|
result = ClinicVisit
|
19
18
|
.most_recent_for_patient(patient)
|
20
|
-
.where(
|
19
|
+
.where.not(weight: nil)
|
21
20
|
.pluck(:date, :weight).first || []
|
22
21
|
|
23
22
|
Observation.new(result.first, result.last)
|
@@ -29,7 +28,7 @@ module Renalware
|
|
29
28
|
@height ||= begin
|
30
29
|
result = ClinicVisit
|
31
30
|
.most_recent_for_patient(patient)
|
32
|
-
.where(
|
31
|
+
.where.not(height: nil)
|
33
32
|
.pluck(:date, :height).first || []
|
34
33
|
|
35
34
|
Observation.new(result.first, result.last)
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_dependency "renalware/events"
|
4
|
+
|
5
|
+
module Renalware
|
6
|
+
module Events
|
7
|
+
# Query object that returns, for a patient, the most recent matching event (if any) for each
|
8
|
+
# event_type_alert_trigger row in the databse. The results are used to display
|
9
|
+
# alerts in the UI.
|
10
|
+
# For example given a vaccination Event::Type and an EventTypeAlertTrigger
|
11
|
+
# which is configured to find any vaccination event with the word "covid" in
|
12
|
+
# anywhere in the document, this query will return the most matching event.
|
13
|
+
# It is possible to have mltiple triggers rows for the same event type, so for eample one
|
14
|
+
# could display triggers for the most recent covid vaccination, and the most recent HBV
|
15
|
+
# vaccination.
|
16
|
+
class AlertableEventsQuery
|
17
|
+
def self.call(patient:)
|
18
|
+
Event
|
19
|
+
.for_patient(patient)
|
20
|
+
.joins(event_type: :alert_triggers)
|
21
|
+
.select("DISTINCT ON (events.patient_id, event_type_alert_triggers.id) events.*")
|
22
|
+
.where("(events.document::text ilike '%' || when_event_document_contains || '%') or (events.description ilike '%' || when_event_description_contains || '%')")
|
23
|
+
.order("events.patient_id, event_type_alert_triggers.id, events.created_at desc")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_dependency "renalware/events"
|
4
|
+
|
5
|
+
module Renalware
|
6
|
+
module Events
|
7
|
+
# Used to defines conditions where, for a particular event type, if the there is e.g. a case-
|
8
|
+
# insensitive text match against the contents of the event document (eg 'COVID')
|
9
|
+
# then an alert will be displayed in the UI (for the most recent match is there are > 1).
|
10
|
+
class EventTypeAlertTrigger < ApplicationRecord
|
11
|
+
belongs_to :event_type, class_name: "Events::Type"
|
12
|
+
validates :event_type, presence: true
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -6,6 +6,13 @@ module Renalware
|
|
6
6
|
module Events
|
7
7
|
class Type < ApplicationRecord
|
8
8
|
self.table_name = "event_types"
|
9
|
+
has_many(
|
10
|
+
:alert_triggers,
|
11
|
+
class_name: "EventTypeAlertTrigger",
|
12
|
+
foreign_key: :event_type_id,
|
13
|
+
dependent: :destroy
|
14
|
+
)
|
15
|
+
|
9
16
|
DEFAULT_EVENT_CLASS_NAME = "Renalware::Events::Simple"
|
10
17
|
|
11
18
|
acts_as_paranoid
|
@@ -9,10 +9,12 @@ module Renalware
|
|
9
9
|
acts_as_paranoid
|
10
10
|
|
11
11
|
# Set to true by the parent hd_session if we are not signing off at this stage
|
12
|
-
attr_accessor
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
attr_accessor(
|
13
|
+
:skip_witness_validation,
|
14
|
+
:skip_administrator_validation,
|
15
|
+
:administered_by_password,
|
16
|
+
:witnessed_by_password
|
17
|
+
)
|
16
18
|
|
17
19
|
belongs_to :hd_session, class_name: "HD::Session", touch: true
|
18
20
|
belongs_to :prescription, class_name: "Medications::Prescription"
|
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "attr_extras"
|
4
|
-
|
5
3
|
module Renalware
|
6
4
|
module HD
|
7
5
|
class ProfilesInDateRangeQuery
|
@@ -13,9 +11,6 @@ module Renalware
|
|
13
11
|
# so for the start date of the profile we always use created_at and ignore prescribed_on,
|
14
12
|
# even if it is present.
|
15
13
|
def call
|
16
|
-
# p " from #{from}"
|
17
|
-
# p " to #{to}"
|
18
|
-
|
19
14
|
# If to is nil it is because modality we are targetting is a current one.
|
20
15
|
# We need a date for the from..to range to work so use a far future one.
|
21
16
|
@to ||= Date.parse("3000-01-01")
|
@@ -24,7 +19,7 @@ module Renalware
|
|
24
19
|
# we will have duplicate Treatments with odd state/end date ordering
|
25
20
|
used_profiles_ids = UKRDC::Treatment
|
26
21
|
.where(patient: patient)
|
27
|
-
.where(
|
22
|
+
.where.not(hd_profile_id: nil)
|
28
23
|
.pluck(:hd_profile_id)
|
29
24
|
HD::Profile
|
30
25
|
.with_deactivated
|
@@ -5,7 +5,7 @@ module Renalware
|
|
5
5
|
# Note we cannot use a partial layout with render_to_string as it will always expect
|
6
6
|
# the location to be in views/layouts and its not possible in Rails 5.1 to specify
|
7
7
|
# another or absolute path
|
8
|
-
class
|
8
|
+
class HtmlRenderer
|
9
9
|
def call(letter)
|
10
10
|
context = LettersController.new
|
11
11
|
context.render_to_string_with_wicked_pdf(
|
@@ -54,7 +54,7 @@ module Renalware
|
|
54
54
|
Letter::Draft.new(params.merge!(type: Letter::Draft.name, patient: patient))
|
55
55
|
end
|
56
56
|
|
57
|
-
#
|
57
|
+
# NOTE: both practice and gp need to be present before we can send to the pcp - we'll use the
|
58
58
|
# practice address but the GP's name as the salutation.
|
59
59
|
def include_primary_care_physician_as_default_main_recipient
|
60
60
|
return if letter.main_recipient.present?
|
@@ -11,7 +11,7 @@ module Renalware
|
|
11
11
|
def each_group
|
12
12
|
Pathology::ObservationDescription
|
13
13
|
.select(:id, :code, :letter_group, :letter_order)
|
14
|
-
.where(
|
14
|
+
.where.not(letter_group: nil)
|
15
15
|
.order("letter_group asc, letter_order asc")
|
16
16
|
.group_by(&:letter_group)
|
17
17
|
.each do |group_number, descriptions|
|
@@ -40,7 +40,7 @@ module Renalware
|
|
40
40
|
delegate :clear, to: :store
|
41
41
|
|
42
42
|
def fetch(letter, **options)
|
43
|
-
store.fetch(cache_key_for(letter, **options)) { yield }
|
43
|
+
store.fetch(cache_key_for(letter, **options), expires_in: 4.weeks) { yield }
|
44
44
|
end
|
45
45
|
|
46
46
|
# Note the letter must be a LetterPresenter which has a #to_html method
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
#
|
4
4
|
# Render a Letter to PDF. Try and get it from the cachefirst
|
5
|
-
# Lean on Letters::
|
5
|
+
# Lean on Letters::HtmlRenderer which already renders the letter to html via
|
6
6
|
# LetterPresenter#content.
|
7
7
|
#
|
8
8
|
module Renalware
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_dependency "renalware/letters"
|
4
|
-
require "attr_extras"
|
5
4
|
|
6
5
|
module Renalware
|
7
6
|
module Letters
|
@@ -36,10 +35,12 @@ module Renalware
|
|
36
35
|
temp_html_file.unlink # allows garbage collection and temp file removal
|
37
36
|
end
|
38
37
|
|
38
|
+
# Use windows line endings (CRLF) rather than linux (LF).
|
39
|
+
# This solves a problem at Barts exporting RTFs to send to GPs
|
39
40
|
def rtf_content_converted_from(html_temp_file)
|
40
41
|
rtf_template = File.join(Engine.root, "lib", "pandoc", "templates", "default.rtf")
|
41
42
|
options = { template: rtf_template }
|
42
|
-
PandocRuby.html([html_temp_file.path], options, :standalone).to_rtf
|
43
|
+
PandocRuby.html([html_temp_file.path], options, :standalone).to_rtf("--eol=crlf")
|
43
44
|
end
|
44
45
|
|
45
46
|
def html_with_images_stripped
|