renalware-core 2.0.159 → 2.0.164
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/renalware/rollup_compiled.js +768 -201
- data/app/assets/stylesheets/renalware/modules/_clinical.scss +28 -0
- 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 +1 -7
- data/app/components/renalware/pd/adequacy_results_component.rb +1 -1
- data/app/components/renalware/pd/pet_results_component.html.slim +4 -4
- 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/{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 +10 -2
- 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/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/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/edit.html.slim +6 -6
- data/app/views/renalware/virology/vaccinations/_alert.html.slim +5 -0
- data/app/views/renalware/virology/vaccinations/_inputs.html.slim +2 -1
- data/app/views/renalware/virology/vaccinations/_toggled_cell.html.slim +1 -1
- data/config/initializers/core_extensions.rb +1 -1
- data/config/initializers/inflections.rb +2 -0
- data/config/locales/renalware/virology/virology.en.yml +2 -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/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 -1
- 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 +37 -31
- 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
@@ -7,7 +7,7 @@
|
|
7
7
|
remote: true,
|
8
8
|
authenticity_token: true,
|
9
9
|
method: :patch,
|
10
|
-
data: {
|
10
|
+
data: { "home-delivery-modal-target" => "form" },
|
11
11
|
as: :event) do |f|
|
12
12
|
|
13
13
|
.modal__header
|
@@ -24,7 +24,7 @@
|
|
24
24
|
/ - the first is initially displayed and has the print options and a print button
|
25
25
|
/ - the second is displayed once Print has been clicked, and asked asks for feedback as to
|
26
26
|
/ whether printing was successful or not. It it was successful we set
|
27
|
-
.form-fields data-
|
27
|
+
.form-fields data-home-delivery-modal-target="printOptions"
|
28
28
|
- homecare_forms = Renalware::Drugs::HomecareForm.all
|
29
29
|
= f.association :drug_type,
|
30
30
|
collection: Renalware::Drugs::Type.where(id: homecare_forms.map(&:drug_type_id)),
|
@@ -32,7 +32,7 @@
|
|
32
32
|
input_html: { \
|
33
33
|
data: { \
|
34
34
|
action: "change->home-delivery-modal#refreshForm", \
|
35
|
-
|
35
|
+
"home-delivery-modal-target" => "drugtype" \
|
36
36
|
} \
|
37
37
|
},
|
38
38
|
wrapper: :horizontal_medium
|
@@ -59,7 +59,7 @@
|
|
59
59
|
data: { action: "click->home-delivery-modal#askForPrintFeedback" },
|
60
60
|
**disabled_args
|
61
61
|
|
62
|
-
.show-after-printing.visuallyhidden data-
|
62
|
+
.show-after-printing.visuallyhidden data-home-delivery-modal-target="printFeedback"
|
63
63
|
|
64
64
|
h2 Was printing successful?
|
65
65
|
.right
|
@@ -38,16 +38,16 @@ ruby:
|
|
38
38
|
required: false,
|
39
39
|
wrapper: :horizontal_datepicker
|
40
40
|
|
41
|
-
span(data-target= "
|
41
|
+
span(data-prescriptions-target= "providers")
|
42
42
|
= f.input :provider,
|
43
43
|
collection: provider_codes,
|
44
44
|
as: :inline_radio_buttons,
|
45
45
|
label_method: :to_label,
|
46
46
|
wrapper: :horizontal_medium,
|
47
|
-
input_html: { data: { action: "change->prescriptions#toggleDeliveryDates", target
|
47
|
+
input_html: { data: { action: "change->prescriptions#toggleDeliveryDates", "prescriptions.target" => "providers"} }
|
48
48
|
|
49
49
|
/ Only show this if home_delivery provider is active/selected. See prescriptions stimulus controller.
|
50
|
-
.home_delivery_dates(style="display:none" data-target="
|
50
|
+
.home_delivery_dates(style="display:none" data-prescriptions-target="homeDeliveryDates")
|
51
51
|
.row
|
52
52
|
.small-12.medium-4.large-3.columns
|
53
53
|
.small-12.medium-8.large-9.columns
|
@@ -1,5 +1,4 @@
|
|
1
1
|
- recently_changed = defined?(recently_changed) && recently_changed
|
2
|
-
|
3
2
|
li.prescription class=("recently_changed" if recently_changed)
|
4
3
|
= prescription.drug.name
|
5
4
|
= blank_separator
|
@@ -8,6 +7,9 @@ li.prescription class=("recently_changed" if recently_changed)
|
|
8
7
|
= prescription.medication_route.code
|
9
8
|
= blank_separator
|
10
9
|
= prescription.frequency
|
10
|
+
= blank_separator
|
11
|
+
i
|
12
|
+
b= prescription.provider_suffix
|
11
13
|
|
12
14
|
/ We pass in date_changed if the prescription is recently_changed or recently_stopped
|
13
15
|
/ It could be the prescribed_on or terminated_on date
|
@@ -22,7 +22,7 @@
|
|
22
22
|
- items.each do |item|
|
23
23
|
.download
|
24
24
|
.file
|
25
|
-
= link_to(system_download_path(item), target: "_blank") do
|
25
|
+
= link_to(system_download_path(item), target: "_blank", rel: "noopener") do
|
26
26
|
i.far.fa-file-alt
|
27
27
|
.details
|
28
28
|
h3= link_to(item.name, system_download_path(item), target: "_blank")
|
@@ -38,18 +38,18 @@ ruby:
|
|
38
38
|
/ Tabs - see also js stimulus tabs-controller
|
39
39
|
div(data-controller="tabs" data-tabs-active-tab="-mb-px border-l border-t border-r rounded-t")
|
40
40
|
ul.list-reset.flex.border-b.ml-0
|
41
|
-
li.-mb-px.mr-1(data-target="
|
41
|
+
li.-mb-px.mr-1(data-tabs-target="tab" data-action="click->tabs#change")
|
42
42
|
a.bg-white.inline-block.py-2.px-4.text-blue-500.hover:text-blue-700.font-semibold.no-underline(href="#") Columns
|
43
|
-
li.-mb-px.mr-1(data-target="
|
43
|
+
li.-mb-px.mr-1(data-tabs-target="tab" data-action="click->tabs#change")
|
44
44
|
a.bg-white.inline-block.py-2.px-4.text-blue-500.hover:text-blue-700.font-semibold.no-underline(href="#") Filters
|
45
|
-
li.-mb-px.mr-1(data-target="
|
45
|
+
li.-mb-px.mr-1(data-tabs-target="tab" data-action="click->tabs#change")
|
46
46
|
a.bg-white.inline-block.py-2.px-4.text-blue-500.hover:text-blue-700.font-semibold.no-underline(href="#") Previous versions
|
47
47
|
|
48
|
-
.hidden.py-4.px-4.border-l.border-b.border-r(data-target="
|
48
|
+
.hidden.py-4.px-4.border-l.border-b.border-r(data-tabs-target="panel")
|
49
49
|
= render "columns_table", view: view
|
50
|
-
.hidden.py-4.px-4.border-l.border-b.border-r(data-target="
|
50
|
+
.hidden.py-4.px-4.border-l.border-b.border-r(data-tabs-target="panel")
|
51
51
|
= render "filters_form", view: view
|
52
|
-
.hidden.py-4.px-4.border-l.border-b.border-r(data-target="
|
52
|
+
.hidden.py-4.px-4.border-l.border-b.border-r(data-tabs-target="panel")
|
53
53
|
= render "versions", view: view
|
54
54
|
|
55
55
|
.modal__footer
|
@@ -1,5 +1,6 @@
|
|
1
1
|
/ See Vaccination.to_partial_path etc
|
2
2
|
/ Pulled into the New Event form via a js get to EventsController#new
|
3
3
|
= f.simple_fields_for :document, event.document do |fd|
|
4
|
-
|
4
|
+
/= fd.input :type, wrapper: :horizontal_medium
|
5
|
+
= fd.input :type, wrapper: :horizontal_medium, collection: Renalware::Virology::VaccinationType.ordered.pluck(:name, :code)
|
5
6
|
= fd.input :drug, wrapper: :horizontal_medium, collection: Renalware::Drugs::Drug.for(:vaccine).pluck(:name, :name)
|
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
dl.dl-horizontal
|
5
5
|
dt= attr_name(document, :type, suffix: ":")
|
6
|
-
dd= document.
|
6
|
+
dd= document.type_name.presence || t("unspecified")
|
7
7
|
dt= attr_name(document, :drug, suffix: ":")
|
8
8
|
dd= document.drug.presence || t("unspecified")
|
9
9
|
dt= attr_name(event, :notes, suffix: ":")
|
@@ -5,7 +5,7 @@ require "core_extensions/i18n/always_cascade"
|
|
5
5
|
require "core_extensions/dumb_delegator"
|
6
6
|
# require "core_extensions/active_record/sort"
|
7
7
|
require "core_extensions/date"
|
8
|
-
require "core_extensions/active_support/
|
8
|
+
require "core_extensions/active_support/duration_additions"
|
9
9
|
require "core_extensions/scenic"
|
10
10
|
require "core_extensions/hash"
|
11
11
|
require "core_extensions/active_record/migration_helpers"
|
@@ -32,6 +32,7 @@ ActiveSupport::Inflector.inflections(:en) do |inflect|
|
|
32
32
|
inflect.acronym "CCs"
|
33
33
|
inflect.acronym "CM"
|
34
34
|
inflect.acronym "CSV"
|
35
|
+
inflect.acronym "CRF"
|
35
36
|
inflect.acronym "DNA"
|
36
37
|
inflect.acronym "EDTA"
|
37
38
|
inflect.acronym "ESRF"
|
@@ -55,6 +56,7 @@ ActiveSupport::Inflector.inflections(:en) do |inflect|
|
|
55
56
|
inflect.acronym "EQ5D"
|
56
57
|
inflect.acronym "EQ5D5L"
|
57
58
|
inflect.acronym "POS"
|
59
|
+
inflect.acronym "YAML"
|
58
60
|
inflect.irregular "feedback", "feedback"
|
59
61
|
inflect.acronym "NHS"
|
60
62
|
inflect.uncountable %w(cache)
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class CreateVirologyVaccinationTypes < ActiveRecord::Migration[5.2]
|
2
|
+
within_renalware_schema do
|
3
|
+
def change
|
4
|
+
create_table :virology_vaccination_types do |t|
|
5
|
+
t.string :code, null: false, index: { unique: true }
|
6
|
+
t.string :name, null: false, index: { unique: true }
|
7
|
+
t.integer :position, null: false, default: 0
|
8
|
+
t.datetime :deleted_at
|
9
|
+
t.timestamps null: false
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class CreateEventTypeAlertTriggers < ActiveRecord::Migration[5.2]
|
2
|
+
def change
|
3
|
+
within_renalware_schema do
|
4
|
+
create_table(
|
5
|
+
:event_type_alert_triggers,
|
6
|
+
comment: "Matching alerts are displayed on patient pages"
|
7
|
+
) do |t|
|
8
|
+
t.references :event_type, foreign_key: true, null: false
|
9
|
+
t.text :when_event_document_contains
|
10
|
+
t.text :when_event_description_contains
|
11
|
+
t.timestamps null: false
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/db/seeds/default/seeds.rb
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Renalware
|
4
|
+
module Virology
|
5
|
+
log "Adding virology vaccination types" do
|
6
|
+
{
|
7
|
+
hbv1: "HBV Vaccination 1",
|
8
|
+
hbv2: "HBV Vaccination 2",
|
9
|
+
hbv3: "HBV Vaccination 3",
|
10
|
+
hbv4: "HBV Vaccination 4",
|
11
|
+
hbv_booster: "HBV Booster",
|
12
|
+
influenza: "Influenza",
|
13
|
+
pneumococcus: "Pneumococcus",
|
14
|
+
covid19_1: "COVID-19 1",
|
15
|
+
covid19_2: "COVID-19 2",
|
16
|
+
patient_refused: "Patient Refused",
|
17
|
+
patient_refused_covid19: "Patient refused Covid-19 vaccine",
|
18
|
+
patient_refused_covid19_pfizer: "Patient refused Covid-19 vaccine Pfizer",
|
19
|
+
patient_refused_covid19_astrazenica: "Patient refused Covid-19 vaccine Astra Zeneca"
|
20
|
+
}.each do |code, name|
|
21
|
+
VaccinationType.find_or_create_by!(code: code, name: name)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
File without changes
|
data/lib/failure.rb
ADDED
data/lib/gpg_encrypt_folder.rb
CHANGED
data/lib/month_period.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class MonthPeriod
|
4
|
+
attr_reader :month, :year, :start, :finish
|
5
|
+
|
6
|
+
def initialize(month:, year:)
|
7
|
+
@month = month
|
8
|
+
@year = year
|
9
|
+
@start = Time.new(year, month, 1, 0, 0, 0)
|
10
|
+
@finish = start.end_of_month.end_of_day
|
11
|
+
end
|
12
|
+
|
13
|
+
def to_range
|
14
|
+
start..finish
|
15
|
+
end
|
16
|
+
end
|
@@ -136,6 +136,9 @@ module Renalware
|
|
136
136
|
# Note that the standard HL7 PID admin sex values are not adhered to here. For reference
|
137
137
|
# they are:
|
138
138
|
# F Female, M Male, O Other, U Unknown, A Ambiguous, N Not applicable
|
139
|
+
# Note
|
140
|
+
# - NS = Not Stated
|
141
|
+
# - NK = Not Known
|
139
142
|
config_accessor(:hl7_pid_sex_map) do
|
140
143
|
{
|
141
144
|
"MALE" => "M",
|
@@ -144,7 +147,8 @@ module Renalware
|
|
144
147
|
"UNKNOWN" => "NK",
|
145
148
|
"NOTKNOWN" => "NK",
|
146
149
|
"AMBIGUOUS" => "NS",
|
147
|
-
"NOT APPLICABLE" => "NS"
|
150
|
+
"NOT APPLICABLE" => "NS",
|
151
|
+
"BOTH" => "NS"
|
148
152
|
}.freeze
|
149
153
|
end
|
150
154
|
end
|
data/lib/success.rb
ADDED
data/lib/tasks/ukrdc.rake
CHANGED
@@ -39,7 +39,7 @@ namespace :ukrdc do
|
|
39
39
|
RubyProf.start
|
40
40
|
end
|
41
41
|
# Renalware::UKRDC::TreatmentTimeline::GenerateTreatments.call
|
42
|
-
Renalware::UKRDC::
|
42
|
+
Renalware::UKRDC::CreateEncryptedPatientXmlFiles.new(
|
43
43
|
changed_since: ENV["changed_since"],
|
44
44
|
patient_ids: ENV.fetch("patient_ids", "").split(",").map(&:to_i),
|
45
45
|
force_send: ENV["force_send"] == "true"
|
data/lib/week_period.rb
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class WeekPeriod
|
4
|
+
attr_reader :year, :week_number, :date_on_first_day_of_week
|
5
|
+
|
6
|
+
def self.from_date(date)
|
7
|
+
date = date.to_date
|
8
|
+
new(week_number: date.cweek, year: date.cwyear)
|
9
|
+
end
|
10
|
+
|
11
|
+
def initialize(week_number:, year:)
|
12
|
+
@week_number = week_number.to_i
|
13
|
+
@year = year.to_i
|
14
|
+
validate_week_number
|
15
|
+
validate_year
|
16
|
+
@date_on_first_day_of_week = Date.commercial(@year, @week_number)
|
17
|
+
end
|
18
|
+
|
19
|
+
def next
|
20
|
+
self.class.from_date(date_on_first_day_of_week + 1.week)
|
21
|
+
end
|
22
|
+
|
23
|
+
def previous
|
24
|
+
self.class.from_date(date_on_first_day_of_week - 1.week)
|
25
|
+
end
|
26
|
+
|
27
|
+
def to_a
|
28
|
+
[week_number, year]
|
29
|
+
end
|
30
|
+
|
31
|
+
def to_s
|
32
|
+
"#{I18n.l(date_on_first_day_of_week, format: :long)} " \
|
33
|
+
"to #{I18n.l(last_day_of_week, format: :long)}"
|
34
|
+
end
|
35
|
+
|
36
|
+
# The date of last day of the week (a Sunday)
|
37
|
+
def last_day_of_week
|
38
|
+
@last_day_of_week ||= (date_on_first_day_of_week + 1.week - 1.minute).to_date
|
39
|
+
end
|
40
|
+
|
41
|
+
def validate_week_number
|
42
|
+
if week_number < 1 || week_number > 53
|
43
|
+
raise(ArgumentError, "invalid date: week_number must be 1-53")
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def validate_year
|
48
|
+
raise(ArgumentError, "invalid date year must be >= 2000") if year <= 2000
|
49
|
+
end
|
50
|
+
|
51
|
+
def to_h
|
52
|
+
{
|
53
|
+
year: year,
|
54
|
+
week_number: week_number
|
55
|
+
}
|
56
|
+
end
|
57
|
+
end
|