renalware-core 2.0.139 → 2.0.140
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/rollup_compiled.js +50 -0
- data/app/assets/stylesheets/renalware/medications_pdf.scss +17 -1
- data/app/assets/stylesheets/renalware/modules/_medications.scss +17 -0
- data/app/assets/stylesheets/renalware/partials/_utilities.scss +8 -0
- data/app/controllers/renalware/medications/home_delivery/events_controller.rb +134 -0
- data/app/javascript/renalware/controllers/foundation_modal_controller.js +19 -0
- data/app/javascript/renalware/controllers/medications/home_delivery_modal_controller.js +24 -0
- data/app/javascript/renalware/index.js +4 -0
- data/app/models/renalware/drugs/homecare_form.rb +17 -0
- data/app/models/renalware/drugs/supplier.rb +12 -0
- data/app/models/renalware/feeds/hl7_message.rb +2 -2
- data/app/models/renalware/medications.rb +6 -0
- data/app/models/renalware/medications/delivery/event.rb +48 -0
- data/app/models/renalware/medications/delivery/event_prescription.rb +24 -0
- data/app/models/renalware/medications/delivery/homecare_forms_adapter.rb +104 -0
- data/app/models/renalware/medications/delivery/purchase_order_number.rb +27 -0
- data/app/models/renalware/medications/prescriptions_by_drug_type_id_query.rb +21 -0
- data/app/models/renalware/medications/provider.rb +20 -0
- data/app/views/renalware/medications/home_delivery/events/_edit.html.slim +71 -0
- data/app/views/renalware/medications/home_delivery/events/edit.html.slim +1 -0
- data/app/views/renalware/medications/home_delivery/events/edit.js.erb +4 -0
- data/app/views/renalware/medications/home_delivery/events/new.js.erb +3 -0
- data/app/views/renalware/medications/home_delivery/events/update.js.erb +5 -0
- data/app/views/renalware/medications/home_delivery/prescriptions/index.pdf.slim +4 -1
- data/app/views/renalware/medications/prescriptions/_form.html.slim +4 -0
- data/app/views/renalware/medications/prescriptions/index.html.slim +15 -5
- data/app/views/renalware/shared/_modal_close_link.html.slim +1 -1
- data/config/routes/medications.rb +5 -4
- data/db/migrate/20200301113102_create_drug_homecare_suppliers.rb +73 -0
- data/db/migrate/20200301124200_create_medication_delivery_events.rb +49 -0
- data/db/migrate/20200301124300_create_medication_delivery_event_prescriptions.rb +35 -0
- data/db/migrate/20200306183423_add_next_delivery_date_to_prescriptions.rb +7 -0
- data/lib/renalware/configuration.rb +7 -0
- data/lib/renalware/engine.rb +1 -0
- data/lib/renalware/version.rb +1 -1
- data/spec/factories/drugs/homecare_forms.rb +13 -0
- data/spec/factories/drugs/suppliers.rb +7 -0
- data/spec/factories/medications/delivery/events.rb +13 -0
- data/spec/support/pages/medications/home_delivery_dialog.rb +77 -0
- metadata +39 -13
- data/app/controllers/renalware/medications/home_delivery/prescriptions_controller.rb +0 -51
- data/app/models/renalware/letters/printing/create_pdf_by_interleaving_address_sheet_and_letter_for_each_recipient.rb.dead +0 -90
- data/app/models/renalware/pathology/consultant.rb.dead +0 -10
- data/app/models/renalware/pathology/view_observation_results.rb.dead +0 -64
- data/app/models/renalware/patients/ingestion/update_master_patient_index_job.rb.dead +0 -20
- data/app/presenters/renalware/admin/users/summary_part.rb.dead +0 -25
- data/app/presenters/renalware/ukrdc/modality_presenter.rb.dead +0 -8
- data/app/views/renalware/admin/users/_summary_part.html.slim.dead +0 -4
- data/app/views/renalware/letters/lists/index.html.slim.dead +0 -101
- data/app/views/renalware/letters/lists/index.html.slim.dead1 +0 -90
- data/app/views/renalware/mdm/_biopsies.html.slim.dead +0 -18
@@ -0,0 +1,35 @@
|
|
1
|
+
class CreateMedicationDeliveryEventPrescriptions < ActiveRecord::Migration[5.2]
|
2
|
+
def change
|
3
|
+
# rubocop:disable Rails/CreateTableWithTimestamps
|
4
|
+
within_renalware_schema do
|
5
|
+
create_table(
|
6
|
+
:medication_delivery_event_prescriptions,
|
7
|
+
comment: "A cross reference table between delivery_events and prescriptions"
|
8
|
+
) do |t|
|
9
|
+
t.references(
|
10
|
+
:event,
|
11
|
+
foreign_key: { to_table: :medication_delivery_events },
|
12
|
+
index: false,
|
13
|
+
null: false
|
14
|
+
)
|
15
|
+
t.references(
|
16
|
+
:prescription,
|
17
|
+
foreign_key: { to_table: :medication_prescriptions },
|
18
|
+
index: false,
|
19
|
+
null: false
|
20
|
+
)
|
21
|
+
end
|
22
|
+
# rubocop:enable Rails/CreateTableWithTimestamps
|
23
|
+
|
24
|
+
add_index(
|
25
|
+
:medication_delivery_event_prescriptions,
|
26
|
+
[
|
27
|
+
:event_id,
|
28
|
+
:prescription_id
|
29
|
+
],
|
30
|
+
unique: true,
|
31
|
+
name: :idx_medication_delivery_event_prescriptions
|
32
|
+
)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -99,6 +99,13 @@ module Renalware
|
|
99
99
|
config_accessor(:generate_pathology_request_forms_from_hd_mdm_listing) { true }
|
100
100
|
config_accessor(:disable_inputs_controlled_by_tissue_typing_feed) { false }
|
101
101
|
config_accessor(:disable_inputs_controlled_by_demographics_feed) { false }
|
102
|
+
config_accessor(:medication_delivery_purchase_order_prefix) { "R" }
|
103
|
+
config_accessor(:medication_homecare_pdf_forms) do
|
104
|
+
# esa: { provider: :generic, version: 1 },
|
105
|
+
{
|
106
|
+
immunosuppressant: { provider: :generic, version: 1 }
|
107
|
+
}
|
108
|
+
end
|
102
109
|
|
103
110
|
# A host app can override this to add/remove/re-order the clinical summary display
|
104
111
|
# Note these have to be strings - they mapped to constants in ClinicalSummaryPresenter.
|
data/lib/renalware/engine.rb
CHANGED
data/lib/renalware/version.rb
CHANGED
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
FactoryBot.define do
|
4
|
+
factory :homecare_form, class: "Renalware::Drugs::HomecareForm" do
|
5
|
+
association :supplier, factory: :drug_supplier
|
6
|
+
drug_type
|
7
|
+
form_name { "form_name" }
|
8
|
+
form_version { "form_version" }
|
9
|
+
prescription_durations { [1, 3, 6] }
|
10
|
+
prescription_duration_default { 3 }
|
11
|
+
prescription_duration_unit { "month" }
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
FactoryBot.define do
|
4
|
+
factory :medication_delivery_event, class: "Renalware::Medications::Delivery::Event" do
|
5
|
+
homecare_form factory: :homecare_form
|
6
|
+
patient
|
7
|
+
accountable
|
8
|
+
printed { false }
|
9
|
+
reference_number { Time.zone.now.to_i }
|
10
|
+
drug_type
|
11
|
+
prescription_duration { 1 }
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rails_helper"
|
4
|
+
require_relative "../page_object"
|
5
|
+
require "capybara-select-2"
|
6
|
+
|
7
|
+
module Pages
|
8
|
+
module Medications
|
9
|
+
class HomeDeliveryDialog < PageObject
|
10
|
+
include CapybaraSelect2
|
11
|
+
pattr_initialize [:patient!]
|
12
|
+
|
13
|
+
def path
|
14
|
+
patient_prescriptions_path(
|
15
|
+
patient,
|
16
|
+
treatable_type: patient.class.to_s,
|
17
|
+
treatable_id: patient
|
18
|
+
)
|
19
|
+
end
|
20
|
+
|
21
|
+
def open
|
22
|
+
visit path
|
23
|
+
within ".page-actions" do
|
24
|
+
click_on "Print home delivery drugs"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def drug_type
|
29
|
+
within("#print-home-delivery-drugs-modal") do
|
30
|
+
find("#event_drug_type_id").find("option[selected]").text
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def prescription_duration
|
35
|
+
within("#print-home-delivery-drugs-modal") do
|
36
|
+
find("#event_prescription_duration").find("option[selected]").text
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def print
|
41
|
+
within("#print-home-delivery-drugs-modal") do
|
42
|
+
click_on "Print"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def drug_type_css
|
47
|
+
"#print-home-delivery-drugs-modal #event_drug_type_id"
|
48
|
+
end
|
49
|
+
|
50
|
+
def prescription_duration_css
|
51
|
+
"#print-home-delivery-drugs-modal #event_prescription_duration"
|
52
|
+
end
|
53
|
+
|
54
|
+
def indicate_printing_was_succesful
|
55
|
+
within("#print-home-delivery-drugs-modal") do
|
56
|
+
click_on "Yes - mark as printed"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def visible?
|
61
|
+
page.has_css?("#print-home-delivery-drugs-modal .modal", visible: true)
|
62
|
+
end
|
63
|
+
|
64
|
+
def has_enabled_print_button?
|
65
|
+
within("#print-home-delivery-drugs-modal") do
|
66
|
+
has_css?("a.home-delivery--print:not([disabled])")
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def has_no_prescriptions_error?
|
71
|
+
within("#print-home-delivery-drugs-modal") do
|
72
|
+
has_content?("There are no home delivery prescriptions for this drug type")
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
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.140
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Airslie
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionview-component
|
@@ -766,6 +766,20 @@ dependencies:
|
|
766
766
|
- - "~>"
|
767
767
|
- !ruby/object:Gem::Version
|
768
768
|
version: 1.0.0
|
769
|
+
- !ruby/object:Gem::Dependency
|
770
|
+
name: renalware-forms
|
771
|
+
requirement: !ruby/object:Gem::Requirement
|
772
|
+
requirements:
|
773
|
+
- - ">="
|
774
|
+
- !ruby/object:Gem::Version
|
775
|
+
version: 0.1.3
|
776
|
+
type: :runtime
|
777
|
+
prerelease: false
|
778
|
+
version_requirements: !ruby/object:Gem::Requirement
|
779
|
+
requirements:
|
780
|
+
- - ">="
|
781
|
+
- !ruby/object:Gem::Version
|
782
|
+
version: 0.1.3
|
769
783
|
- !ruby/object:Gem::Dependency
|
770
784
|
name: ruby-hl7
|
771
785
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1288,7 +1302,7 @@ files:
|
|
1288
1302
|
- app/controllers/renalware/mdm_controller.rb
|
1289
1303
|
- app/controllers/renalware/mdm_patients_controller.rb
|
1290
1304
|
- app/controllers/renalware/medications/drug_types/prescriptions_controller.rb
|
1291
|
-
- app/controllers/renalware/medications/home_delivery/
|
1305
|
+
- app/controllers/renalware/medications/home_delivery/events_controller.rb
|
1292
1306
|
- app/controllers/renalware/medications/prescriptions_controller.rb
|
1293
1307
|
- app/controllers/renalware/medications/terminations_controller.rb
|
1294
1308
|
- app/controllers/renalware/messaging/internal/messages_controller.rb
|
@@ -1458,7 +1472,9 @@ files:
|
|
1458
1472
|
- app/inputs/simple_time_input.rb
|
1459
1473
|
- app/inputs/user_picker_input.rb
|
1460
1474
|
- app/javascript/renalware/controllers/another_test_controller.js
|
1475
|
+
- app/javascript/renalware/controllers/foundation_modal_controller.js
|
1461
1476
|
- app/javascript/renalware/controllers/hd/prescription_administration_controller.js
|
1477
|
+
- app/javascript/renalware/controllers/medications/home_delivery_modal_controller.js
|
1462
1478
|
- app/javascript/renalware/controllers/test_controller.js
|
1463
1479
|
- app/javascript/renalware/controllers/toggle_controller.js
|
1464
1480
|
- app/javascript/renalware/index.js
|
@@ -1566,6 +1582,8 @@ files:
|
|
1566
1582
|
- app/models/renalware/drugs.rb
|
1567
1583
|
- app/models/renalware/drugs/classification.rb
|
1568
1584
|
- app/models/renalware/drugs/drug.rb
|
1585
|
+
- app/models/renalware/drugs/homecare_form.rb
|
1586
|
+
- app/models/renalware/drugs/supplier.rb
|
1569
1587
|
- app/models/renalware/drugs/type.rb
|
1570
1588
|
- app/models/renalware/events.rb
|
1571
1589
|
- app/models/renalware/events/biopsy.rb
|
@@ -1714,7 +1732,6 @@ files:
|
|
1714
1732
|
- app/models/renalware/letters/primary_care_physician.rb
|
1715
1733
|
- app/models/renalware/letters/printing/batch_compile_pdfs.rb
|
1716
1734
|
- app/models/renalware/letters/printing/complete_batch.rb
|
1717
|
-
- app/models/renalware/letters/printing/create_pdf_by_interleaving_address_sheet_and_letter_for_each_recipient.rb.dead
|
1718
1735
|
- app/models/renalware/letters/printing/duplex_interleaved_pdf_renderer.rb
|
1719
1736
|
- app/models/renalware/letters/printing/pdf_combining.rb
|
1720
1737
|
- app/models/renalware/letters/printing/printable_recipients.rb
|
@@ -1736,12 +1753,17 @@ files:
|
|
1736
1753
|
- app/models/renalware/low_clearance/referrer.rb
|
1737
1754
|
- app/models/renalware/low_clearance/version.rb
|
1738
1755
|
- app/models/renalware/medications.rb
|
1756
|
+
- app/models/renalware/medications/delivery/event.rb
|
1757
|
+
- app/models/renalware/medications/delivery/event_prescription.rb
|
1758
|
+
- app/models/renalware/medications/delivery/homecare_forms_adapter.rb
|
1759
|
+
- app/models/renalware/medications/delivery/purchase_order_number.rb
|
1739
1760
|
- app/models/renalware/medications/dose_unit.rb
|
1740
1761
|
- app/models/renalware/medications/medication_route.rb
|
1741
1762
|
- app/models/renalware/medications/patient_listener.rb
|
1742
1763
|
- app/models/renalware/medications/prescription.rb
|
1743
1764
|
- app/models/renalware/medications/prescription_termination.rb
|
1744
1765
|
- app/models/renalware/medications/prescription_version.rb
|
1766
|
+
- app/models/renalware/medications/prescriptions_by_drug_type_id_query.rb
|
1745
1767
|
- app/models/renalware/medications/prescriptions_by_drug_type_query.rb
|
1746
1768
|
- app/models/renalware/medications/prescriptions_query.rb
|
1747
1769
|
- app/models/renalware/medications/provider.rb
|
@@ -1774,7 +1796,6 @@ files:
|
|
1774
1796
|
- app/models/renalware/pathology/clinic.rb
|
1775
1797
|
- app/models/renalware/pathology/code_group.rb
|
1776
1798
|
- app/models/renalware/pathology/code_group_membership.rb
|
1777
|
-
- app/models/renalware/pathology/consultant.rb.dead
|
1778
1799
|
- app/models/renalware/pathology/create_observation_requests.rb
|
1779
1800
|
- app/models/renalware/pathology/create_observations_grouped_by_date_table.rb
|
1780
1801
|
- app/models/renalware/pathology/current_observation.rb
|
@@ -1844,7 +1865,6 @@ files:
|
|
1844
1865
|
- app/models/renalware/pathology/requests/sample_type.rb
|
1845
1866
|
- app/models/renalware/pathology/results.rb
|
1846
1867
|
- app/models/renalware/pathology/version.rb
|
1847
|
-
- app/models/renalware/pathology/view_observation_results.rb.dead
|
1848
1868
|
- app/models/renalware/patient.rb
|
1849
1869
|
- app/models/renalware/patients.rb
|
1850
1870
|
- app/models/renalware/patients/abridgement.rb
|
@@ -1863,7 +1883,6 @@ files:
|
|
1863
1883
|
- app/models/renalware/patients/ingestion/message_mapper.rb
|
1864
1884
|
- app/models/renalware/patients/ingestion/message_mappers/patient.rb
|
1865
1885
|
- app/models/renalware/patients/ingestion/update_master_patient_index.rb
|
1866
|
-
- app/models/renalware/patients/ingestion/update_master_patient_index_job.rb.dead
|
1867
1886
|
- app/models/renalware/patients/language.rb
|
1868
1887
|
- app/models/renalware/patients/last_successful_practice_sync_date_query.rb
|
1869
1888
|
- app/models/renalware/patients/mdm_list_query.rb
|
@@ -2170,7 +2189,6 @@ files:
|
|
2170
2189
|
- app/presenters/renalware/address_presenter/block.rb
|
2171
2190
|
- app/presenters/renalware/address_presenter/short.rb
|
2172
2191
|
- app/presenters/renalware/address_presenter/single_line.rb
|
2173
|
-
- app/presenters/renalware/admin/users/summary_part.rb.dead
|
2174
2192
|
- app/presenters/renalware/admissions/admission_presenter.rb
|
2175
2193
|
- app/presenters/renalware/admissions/consult_presenter.rb
|
2176
2194
|
- app/presenters/renalware/admissions/consult_summary_part.rb
|
@@ -2256,7 +2274,6 @@ files:
|
|
2256
2274
|
- app/presenters/renalware/transplants/patient_presenter.rb
|
2257
2275
|
- app/presenters/renalware/transplants/recipient_dashboard_presenter.rb
|
2258
2276
|
- app/presenters/renalware/transplants/wait_list_registration_presenter.rb
|
2259
|
-
- app/presenters/renalware/ukrdc/modality_presenter.rb.dead
|
2260
2277
|
- app/presenters/renalware/ukrdc/pathology_observation_presenter.rb
|
2261
2278
|
- app/presenters/renalware/ukrdc/pathology_observation_request_presenter.rb
|
2262
2279
|
- app/presenters/renalware/ukrdc/patient_presenter.rb
|
@@ -2324,7 +2341,6 @@ files:
|
|
2324
2341
|
- app/views/renalware/admin/user_mailer/approval.text.erb
|
2325
2342
|
- app/views/renalware/admin/user_mailer/unexpiry.text.erb
|
2326
2343
|
- app/views/renalware/admin/users/_filters.html.slim
|
2327
|
-
- app/views/renalware/admin/users/_summary_part.html.slim.dead
|
2328
2344
|
- app/views/renalware/admin/users/_tabs.html.slim
|
2329
2345
|
- app/views/renalware/admin/users/edit.html.slim
|
2330
2346
|
- app/views/renalware/admin/users/index.html.slim
|
@@ -2659,8 +2675,6 @@ files:
|
|
2659
2675
|
- app/views/renalware/letters/lists/_letter.html.slim
|
2660
2676
|
- app/views/renalware/letters/lists/_table.html.slim
|
2661
2677
|
- app/views/renalware/letters/lists/_tabs.html.slim
|
2662
|
-
- app/views/renalware/letters/lists/index.html.slim.dead
|
2663
|
-
- app/views/renalware/letters/lists/index.html.slim.dead1
|
2664
2678
|
- app/views/renalware/letters/lists/show.html.slim
|
2665
2679
|
- app/views/renalware/letters/lists/show.js.erb
|
2666
2680
|
- app/views/renalware/letters/parts/_allergies.html.slim
|
@@ -2679,7 +2693,6 @@ files:
|
|
2679
2693
|
- app/views/renalware/low_clearance/mdm_patients/_tabs.html.slim
|
2680
2694
|
- app/views/renalware/low_clearance/profiles/_summary.html.slim
|
2681
2695
|
- app/views/renalware/low_clearance/profiles/edit.html.slim
|
2682
|
-
- app/views/renalware/mdm/_biopsies.html.slim.dead
|
2683
2696
|
- app/views/renalware/mdm/_clinic_visits.html.slim
|
2684
2697
|
- app/views/renalware/mdm/_events.html.slim
|
2685
2698
|
- app/views/renalware/mdm/_letters.html.slim
|
@@ -2699,6 +2712,11 @@ files:
|
|
2699
2712
|
- app/views/renalware/medications/drug_types/prescriptions/_filters.html.slim
|
2700
2713
|
- app/views/renalware/medications/drug_types/prescriptions/_table.html.slim
|
2701
2714
|
- app/views/renalware/medications/drug_types/prescriptions/index.html.slim
|
2715
|
+
- app/views/renalware/medications/home_delivery/events/_edit.html.slim
|
2716
|
+
- app/views/renalware/medications/home_delivery/events/edit.html.slim
|
2717
|
+
- app/views/renalware/medications/home_delivery/events/edit.js.erb
|
2718
|
+
- app/views/renalware/medications/home_delivery/events/new.js.erb
|
2719
|
+
- app/views/renalware/medications/home_delivery/events/update.js.erb
|
2702
2720
|
- app/views/renalware/medications/home_delivery/prescriptions/index.pdf.slim
|
2703
2721
|
- app/views/renalware/medications/prescriptions/_current.html.slim
|
2704
2722
|
- app/views/renalware/medications/prescriptions/_extended_patient_details.html.slim
|
@@ -3836,6 +3854,10 @@ files:
|
|
3836
3854
|
- db/migrate/20200129093835_create_system_dashboards.rb
|
3837
3855
|
- db/migrate/20200204153231_alter_hd_prescription_administrations.rb
|
3838
3856
|
- db/migrate/20200205121805_remove_created_by_on_pathology_code_groups.rb
|
3857
|
+
- db/migrate/20200301113102_create_drug_homecare_suppliers.rb
|
3858
|
+
- db/migrate/20200301124200_create_medication_delivery_events.rb
|
3859
|
+
- db/migrate/20200301124300_create_medication_delivery_event_prescriptions.rb
|
3860
|
+
- db/migrate/20200306183423_add_next_delivery_date_to_prescriptions.rb
|
3839
3861
|
- db/seeds.rb
|
3840
3862
|
- db/seeds/default/accesses/access_pd_catheter_insertion_techniques.csv
|
3841
3863
|
- db/seeds/default/accesses/access_pd_catheter_insertion_techniques.rb
|
@@ -4059,6 +4081,8 @@ files:
|
|
4059
4081
|
- spec/factories/directory/people.rb
|
4060
4082
|
- spec/factories/drugs/drug.rb
|
4061
4083
|
- spec/factories/drugs/drug_types.rb
|
4084
|
+
- spec/factories/drugs/homecare_forms.rb
|
4085
|
+
- spec/factories/drugs/suppliers.rb
|
4062
4086
|
- spec/factories/events/events.rb
|
4063
4087
|
- spec/factories/events/events_types.rb
|
4064
4088
|
- spec/factories/feeds/file.rb
|
@@ -4097,6 +4121,7 @@ files:
|
|
4097
4121
|
- spec/factories/low_clearance/modality_descriptions.rb
|
4098
4122
|
- spec/factories/low_clearance/patients.rb
|
4099
4123
|
- spec/factories/low_clearance/profiles.rb
|
4124
|
+
- spec/factories/medications/delivery/events.rb
|
4100
4125
|
- spec/factories/medications/medication_route.rb
|
4101
4126
|
- spec/factories/medications/prescription.rb
|
4102
4127
|
- spec/factories/medications/prescription_terminations.rb
|
@@ -4214,6 +4239,7 @@ files:
|
|
4214
4239
|
- spec/support/pages/letters/form.rb
|
4215
4240
|
- spec/support/pages/letters/patient_letters.rb
|
4216
4241
|
- spec/support/pages/low_clearance/profile_page.rb
|
4242
|
+
- spec/support/pages/medications/home_delivery_dialog.rb
|
4217
4243
|
- spec/support/pages/medications/prescription_fom.rb
|
4218
4244
|
- spec/support/pages/page_object.rb
|
4219
4245
|
- spec/support/pathology_spec_helper.rb
|
@@ -1,51 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_dependency "renalware/medications"
|
4
|
-
|
5
|
-
module Renalware
|
6
|
-
module Medications
|
7
|
-
module HomeDelivery
|
8
|
-
class PrescriptionsController < BaseController
|
9
|
-
include Renalware::Concerns::PdfRenderable
|
10
|
-
include PresenterHelper
|
11
|
-
|
12
|
-
def index
|
13
|
-
respond_to do |format|
|
14
|
-
format.pdf do
|
15
|
-
authorize prescriptions
|
16
|
-
render_index_pdf prescriptions
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
private
|
22
|
-
|
23
|
-
def prescriptions
|
24
|
-
@prescriptions ||= begin
|
25
|
-
patient
|
26
|
-
.prescriptions
|
27
|
-
.current
|
28
|
-
.where(provider: :home_delivery)
|
29
|
-
.includes(:medication_route, :drug)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def render_index_pdf(prescriptions)
|
34
|
-
options = default_pdf_options.merge!(
|
35
|
-
pdf: pdf_filename,
|
36
|
-
layout: "renalware/layouts/letter",
|
37
|
-
locals: {
|
38
|
-
patient: patient,
|
39
|
-
prescriptions: present(prescriptions, PrescriptionPresenter)
|
40
|
-
}
|
41
|
-
)
|
42
|
-
render options
|
43
|
-
end
|
44
|
-
|
45
|
-
def pdf_filename
|
46
|
-
"#{patient.local_patient_id} prescriptions-for-home-delivery"
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
@@ -1,90 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_dependency "renalware/letters"
|
4
|
-
require "attr_extras"
|
5
|
-
|
6
|
-
module Renalware
|
7
|
-
module Letters
|
8
|
-
module Printing
|
9
|
-
# Build PDF for printing. We are targetting an envelope stuffer so there will be an address
|
10
|
-
# cover sheet in front of each letter.
|
11
|
-
# So for a letter where the patient is the main recipient, and we CC to the GP (no practice
|
12
|
-
# email address so snail mailing) and 1 extra CC (a contact) the output will look like
|
13
|
-
# this:
|
14
|
-
#
|
15
|
-
# 1. Patient address cover sheet
|
16
|
-
# 2. Letter
|
17
|
-
# 3. GP address cover sheet
|
18
|
-
# 2. Letter
|
19
|
-
# 5. Contact address cover sheet
|
20
|
-
# 2. Letter
|
21
|
-
#
|
22
|
-
# Note however the we always pad each item (address sheet, letter) with blank pages to make
|
23
|
-
# sure duplex printing does not cause the next page recipient's content to be rendered on the
|
24
|
-
# back of the ast page of the previous letter for example/
|
25
|
-
#
|
26
|
-
# Compiles print content for all input letters and outputs the merged PDF to output_file.
|
27
|
-
# Allows batch printing if you want to print say all 2 page letters together.
|
28
|
-
# The caller may choose for example to send the output_file could be sent back to the browser
|
29
|
-
# for manual printing using (eg using send_file) or copy the merged PDF to a folder for
|
30
|
-
# automated printing.
|
31
|
-
# class CreatePdfByInterleavingAddressSheetAndLetterForEachRecipient
|
32
|
-
# pattr_initialize [:letters!, :output_file!]
|
33
|
-
|
34
|
-
# def call
|
35
|
-
# # There is a choice of two methods of building the merged PDF. See pros and cons.
|
36
|
-
# # The other is UsingSeparatePdfForEachLetterSection.
|
37
|
-
# UsingOnePdfForAllLetterSections.new(
|
38
|
-
# letters: letters,
|
39
|
-
# output_file: output_file
|
40
|
-
# ).call
|
41
|
-
# end
|
42
|
-
|
43
|
-
# # For each letter, uses whkhtmltopdf to build the entire print content, ie all address
|
44
|
-
# # sheets and required instance of the letter are created as one fresh pdf (no cache will be
|
45
|
-
# # used).
|
46
|
-
# #
|
47
|
-
# # Pros:
|
48
|
-
# # - Quicker: For each letter only one PDF is generated, and although the generation is slow
|
49
|
-
# # as it does not use the previously cached letter PDF, and it has to render all the letter
|
50
|
-
# # sections, including the letter itself, for every recipient, its stil faster then
|
51
|
-
# # rendering separate PDFs for each section.
|
52
|
-
# # Cons:
|
53
|
-
# # - wastes some resources because it does not use the cache and renders same letter
|
54
|
-
# # multiple times in the views
|
55
|
-
# # - cannot be 100% sure the number of pages in the final PDF will be extactly what we
|
56
|
-
# # predict, so requires a check to load the pdf into a reader and validate the page_count
|
57
|
-
# class UsingOnePdfForAllLetterSections
|
58
|
-
# include PdfCombining
|
59
|
-
# pattr_initialize [:letters!, :output_file!]
|
60
|
-
|
61
|
-
# def call
|
62
|
-
# in_a_temporary_folder do |dir|
|
63
|
-
# Array(letters).each do |letter|
|
64
|
-
# if letter.page_count.to_i < 1
|
65
|
-
# raise(ArgumentError, "letter.page_count not set on letter.id=#{letter.id}")
|
66
|
-
# end
|
67
|
-
|
68
|
-
# letter_filename = create_letter_pdf_in(dir, letter)
|
69
|
-
# files << letter_filename
|
70
|
-
# end
|
71
|
-
# combine_multiple_pdfs_into_one(dir, output_file)
|
72
|
-
# # For debuging:
|
73
|
-
# # FileUtils.cp output_file, "/Users/tim/Desktop/x.pdf"
|
74
|
-
# # `open /Users/tim/Desktop/x.pdf`
|
75
|
-
# end
|
76
|
-
# end
|
77
|
-
|
78
|
-
# private
|
79
|
-
|
80
|
-
# def create_letter_pdf_in(dir, letter)
|
81
|
-
# filename = "letter_#{letter.id}.pdf"
|
82
|
-
# path = dir.join(filename)
|
83
|
-
# File.open(path, "wb") { |file| file.write(DuplexInterleavedPdfRenderer.call(letter)) }
|
84
|
-
# filename
|
85
|
-
# end
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|