renalware-core 2.0.161 → 2.0.166
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/renalware/modules/_clinical.scss +28 -0
- data/app/assets/stylesheets/renalware/partials/_tables.scss +6 -0
- data/app/components/renalware/system/admin_menu_component.html.slim +1 -0
- data/app/controllers/renalware/virology/vaccination_types_controller.rb +69 -0
- data/app/models/renalware/events/alertable_events_query.rb +27 -0
- 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/letters/pdf_letter_cache.rb +1 -1
- data/app/models/renalware/virology/vaccination_type.rb +25 -3
- data/app/views/renalware/admin/cache/show.html.slim +0 -36
- 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/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/system/downloads/index.html.slim +1 -1
- data/app/views/renalware/system/messages/_form.html.slim +1 -1
- data/app/views/renalware/virology/vaccination_types/_form.html.slim +10 -0
- data/app/views/renalware/virology/vaccination_types/edit.html.slim +3 -0
- data/app/views/renalware/virology/vaccination_types/index.html.slim +42 -0
- data/app/views/renalware/virology/vaccination_types/new.html.slim +3 -0
- data/app/views/renalware/virology/vaccinations/_alert.html.slim +11 -0
- data/config/permissions.yml +1 -0
- data/config/routes/virology.rb +6 -0
- data/db/migrate/20210115181817_create_event_type_alert_triggers.rb +15 -0
- data/lib/renalware/version_number.rb +1 -1
- metadata +17 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ac2d49cbce8125bf334c28dce8c0363c766aa0b4951509bab613eaf3c6c8cc10
|
4
|
+
data.tar.gz: 795e74e0004088a1506766f9e468b1c67be68783c664ff228ff2bd6e98f0aca4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 995cf6f9c31fc67b071e57a07f1235aeb2d86a357854a29bef6d794b9d2548a2ea485222af0bba4e6fae83cf0d8398f1b56026b9233a614c40c3a7d2e053ce3e
|
7
|
+
data.tar.gz: edbc6fdf11d7aad748f713669ccdf1a4c9a6fbe0ffc8f9f0cda3fec4e7a8c875593b4c98e9983e2db331bc617ab26bb5741d1de480bc761c43e1e68f4085f32d
|
@@ -141,6 +141,7 @@ article.clinical-allergies {
|
|
141
141
|
.patient-alerts {
|
142
142
|
color: $white;
|
143
143
|
background-color: transparent;
|
144
|
+
padding-top: .1rem;
|
144
145
|
|
145
146
|
@media print {
|
146
147
|
display: none;
|
@@ -199,6 +200,33 @@ article.clinical-allergies {
|
|
199
200
|
}
|
200
201
|
}
|
201
202
|
|
203
|
+
&.vaccination {
|
204
|
+
background-color: $nhs-aqua-green;
|
205
|
+
|
206
|
+
&:hover {
|
207
|
+
background-color: darken($nhs-aqua-green, 4);
|
208
|
+
}
|
209
|
+
|
210
|
+
.title a,
|
211
|
+
i:before {
|
212
|
+
color: $white;
|
213
|
+
}
|
214
|
+
}
|
215
|
+
|
216
|
+
&.event {
|
217
|
+
background-color: $nhs-yellow;
|
218
|
+
|
219
|
+
&:hover {
|
220
|
+
background-color: darken($nhs-yellow, 7);
|
221
|
+
}
|
222
|
+
|
223
|
+
.title a,
|
224
|
+
.date,
|
225
|
+
i:before {
|
226
|
+
color: $dark-grey;
|
227
|
+
}
|
228
|
+
}
|
229
|
+
|
202
230
|
&.research-study-participant {
|
203
231
|
background-color: darken($nhs-green, 3);
|
204
232
|
color: $white;
|
@@ -24,6 +24,7 @@ ul.side-nav.side-nav--admin
|
|
24
24
|
= super_admin_menu_item "Print batches", renalware.letters_batches_path, %r{letters/batches}
|
25
25
|
= super_admin_menu_item "OBX", renalware.pathology_observation_descriptions_path, %r{admin/pathology_observation_descriptions}
|
26
26
|
= super_admin_menu_item "Pathology Code Groups", renalware.pathology_code_groups_path, %r{pathology/code_groups}
|
27
|
+
= super_admin_menu_item "Virology Vaccination Types", renalware.virology_vaccination_types_path, %r{virology/vaccination_types}
|
27
28
|
= admin_menu_item "Mailshots", renalware.letters_mailshots_path, %r{letters/mailshots}
|
28
29
|
= super_admin_menu_item "Playground", renalware.admin_playground_path, %r{admin/playground}
|
29
30
|
= developer_menu_item "HL7 Test", renalware.new_feeds_hl7_test_message_path, %r{admin/123}
|
@@ -0,0 +1,69 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_dependency "renalware/virology"
|
4
|
+
|
5
|
+
module Renalware
|
6
|
+
module Virology
|
7
|
+
class VaccinationTypesController < BaseController
|
8
|
+
def index
|
9
|
+
types = VaccinationType.with_deleted.ordered
|
10
|
+
authorize types
|
11
|
+
render locals: { types: types }
|
12
|
+
end
|
13
|
+
|
14
|
+
def edit
|
15
|
+
type = find_and_authorise_type
|
16
|
+
render locals: { type: type }
|
17
|
+
end
|
18
|
+
|
19
|
+
def update
|
20
|
+
type = find_and_authorise_type
|
21
|
+
if type.update(type_params)
|
22
|
+
redirect_to virology_vaccination_types_path
|
23
|
+
else
|
24
|
+
render :edit, locals: { type: type }
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def new
|
29
|
+
type = VaccinationType.new
|
30
|
+
authorize type
|
31
|
+
render locals: { type: type }
|
32
|
+
end
|
33
|
+
|
34
|
+
def create
|
35
|
+
type = VaccinationType.new(type_params)
|
36
|
+
authorize type
|
37
|
+
if type.save
|
38
|
+
redirect_to virology_vaccination_types_path
|
39
|
+
else
|
40
|
+
render :new, locals: { type: type }
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def destroy
|
45
|
+
find_and_authorise_type.destroy!
|
46
|
+
redirect_to virology_vaccination_types_path
|
47
|
+
end
|
48
|
+
|
49
|
+
def sort
|
50
|
+
authorize VaccinationType, :sort?
|
51
|
+
ids = params[:virology_vaccination_type]
|
52
|
+
VaccinationType.sort(ids)
|
53
|
+
render json: ids
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
def find_and_authorise_type
|
59
|
+
VaccinationType.find(params[:id]).tap { |type| authorize type }
|
60
|
+
end
|
61
|
+
|
62
|
+
def type_params
|
63
|
+
params
|
64
|
+
.require("virology_vaccination_type")
|
65
|
+
.permit(:name, :code, :position)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -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
|
@@ -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
|
@@ -5,12 +5,34 @@ require_dependency "renalware/virology"
|
|
5
5
|
module Renalware
|
6
6
|
module Virology
|
7
7
|
class VaccinationType < ApplicationRecord
|
8
|
-
|
9
|
-
|
8
|
+
include Sortable
|
9
|
+
|
10
|
+
class UniquenessIncludingDeletedValidator < ActiveModel::EachValidator
|
11
|
+
def validate_each(record, attribute, value)
|
12
|
+
return unless record.send(:"#{attribute}_changed?")
|
13
|
+
|
14
|
+
if record.class.with_deleted.exists?(attribute => value)
|
15
|
+
record.errors.add attribute, (options[:message] || "already used")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
validates :name, presence: true, uniqueness_including_deleted: true
|
20
|
+
validates :code, presence: true, uniqueness_including_deleted: true
|
21
|
+
before_create :underscore_code
|
10
22
|
|
11
23
|
acts_as_paranoid
|
12
24
|
|
13
|
-
scope :ordered, -> { order(position: :asc, name: :asc) }
|
25
|
+
scope :ordered, -> { order(deleted_at: :desc, position: :asc, name: :asc) }
|
26
|
+
|
27
|
+
def self.policy_class
|
28
|
+
BasePolicy
|
29
|
+
end
|
30
|
+
|
31
|
+
def underscore_code
|
32
|
+
return if code.blank?
|
33
|
+
|
34
|
+
self.code = code.downcase.tr(" ", " ").tr(" ", "_")
|
35
|
+
end
|
14
36
|
end
|
15
37
|
end
|
16
38
|
end
|
@@ -42,39 +42,3 @@
|
|
42
42
|
method: :delete,
|
43
43
|
data: { confirm: "Are you sure you want to clear the PDF letter cache?\n" },
|
44
44
|
class: "button alert"
|
45
|
-
|
46
|
-
<label class="block">
|
47
|
-
<span class="text-gray-700">Name</span>
|
48
|
-
<input class="form-input mt-1 block w-full" placeholder="Jane Doe">
|
49
|
-
</label>
|
50
|
-
|
51
|
-
<div class="mt-4">
|
52
|
-
<span class="text-gray-700">Account Type</span>
|
53
|
-
<div class="mt-2">
|
54
|
-
<label class="inline-flex items-center">
|
55
|
-
<input type="radio" class="form-radio" name="accountType" value="personal">
|
56
|
-
<span class="ml-2">Personal</span>
|
57
|
-
</label>
|
58
|
-
<label class="inline-flex items-center ml-6">
|
59
|
-
<input type="radio" class="form-radio" name="accountType" value="busines">
|
60
|
-
<span class="ml-2">Business</span>
|
61
|
-
</label>
|
62
|
-
</div>
|
63
|
-
</div>
|
64
|
-
|
65
|
-
<label class="block mt-4">
|
66
|
-
<span class="text-gray-700">Requested Limit</span>
|
67
|
-
<select class="form-select mt-1 block w-full">
|
68
|
-
<option>$1,000</option>
|
69
|
-
<option>$5,000</option>
|
70
|
-
<option>$10,000</option>
|
71
|
-
<option>$25,000</option>
|
72
|
-
</select>
|
73
|
-
</label>
|
74
|
-
|
75
|
-
<div class="flex mt-6">
|
76
|
-
<label class="flex items-center">
|
77
|
-
<input type="checkbox" class="form-checkbox">
|
78
|
-
<span class="ml-2">I agree to the <span class="underline">privacy policy</span></span>
|
79
|
-
</label>
|
80
|
-
</div>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
- document = event.document
|
2
2
|
dl.dl-horizontal
|
3
3
|
dt= attr_name(document, :location, suffix: ":")
|
4
|
-
dd= document.location.
|
4
|
+
dd= document.location.presence || t("unspecified")
|
5
5
|
dt= attr_name(event, :notes, suffix: ":")
|
6
6
|
dd== event.notes
|
@@ -1,7 +1,10 @@
|
|
1
1
|
= link_to(patient_hd_mdm_path(patient), class: "button with-icon secondary") do
|
2
2
|
i.fas.fa-users
|
3
3
|
= t(".mdm")
|
4
|
-
= link_to(patient_hd_protocol_path(patient),
|
4
|
+
= link_to(patient_hd_protocol_path(patient),
|
5
|
+
class: "button with-icon secondary",
|
6
|
+
target: "_blank",
|
7
|
+
rel: "noopener") do
|
5
8
|
i.fas.fa-print
|
6
9
|
= t(".protocol")
|
7
10
|
|
@@ -30,7 +30,8 @@
|
|
30
30
|
= link_to "...",
|
31
31
|
hd_transmission_log_path(log, format: :xml),
|
32
32
|
class: "button small_ellipsis_button",
|
33
|
-
target: "_blank"
|
33
|
+
target: "_blank",
|
34
|
+
rel: "noopener"
|
34
35
|
td
|
35
36
|
span(title=log.filepath)
|
36
37
|
- filename = log.filepath && Pathname(log.filepath).basename
|
@@ -17,6 +17,7 @@ nav.patient-side-nav.full-screenable
|
|
17
17
|
ul
|
18
18
|
= render "renalware/patients/alerts/list", patient: current_patient
|
19
19
|
= render "renalware/research/alerts", patient: current_patient
|
20
|
+
= render "renalware/events/events/alerts", patient: current_patient
|
20
21
|
= render "renalware/clinical/header", patient: current_patient
|
21
22
|
.row.collapse
|
22
23
|
- if local_assigns[:title].present?
|
@@ -4,14 +4,14 @@
|
|
4
4
|
.percent_complete
|
5
5
|
.modal__body
|
6
6
|
.content
|
7
|
-
.batch_results_container(data={"poll-url" => renalware.letters_batch_status_path(batch)})
|
7
|
+
.batch_results_container(data={ "poll-url" => renalware.letters_batch_status_path(batch) })
|
8
8
|
.preparing
|
9
9
|
= image_tag("renalware/loading-gears-animation.gif", height: "116")
|
10
10
|
|
11
|
-
|
12
11
|
.generated-batch-print-pdf-container(style="display:none")
|
13
12
|
= link_to letters_batch_path(batch, format: :pdf),
|
14
13
|
target: "_blank",
|
14
|
+
rel: "noopener",
|
15
15
|
class: "print-batch-letter",
|
16
16
|
data: { "modal-url" => new_letters_batch_completion_path(batch) } do
|
17
17
|
i.far.fa-check-circle
|
@@ -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")
|
@@ -0,0 +1,42 @@
|
|
1
|
+
= content_for(:actions) do
|
2
|
+
= link_to t("new_record.link_title"),
|
3
|
+
new_virology_vaccination_type_path,
|
4
|
+
class: "button"
|
5
|
+
|
6
|
+
= within_new_admin_layout(title: "Virology Vaccination Types") do
|
7
|
+
.rounded-md.bg-blue-100.px-3.py-2.flex.items-start.shadow.mb-5
|
8
|
+
i.fas.fa-info-circle.mr-2.mt-1.text-blue-500
|
9
|
+
' Deleting a type sets the 'deleted at' date, preventing the type from
|
10
|
+
' being used prospectively.
|
11
|
+
br
|
12
|
+
' The type's code cannot be edited once set, just in case it has already been used.
|
13
|
+
br
|
14
|
+
' Drag and drop the icon to change the sort order.
|
15
|
+
|
16
|
+
table.vaccination_types
|
17
|
+
thead
|
18
|
+
tr
|
19
|
+
th.actions.col-width-small
|
20
|
+
th Name
|
21
|
+
th Code
|
22
|
+
th.text-center Sort order
|
23
|
+
th.col-width-date-time Created at
|
24
|
+
th.col-width-date-time Deleted at
|
25
|
+
tbody.sortables(data-rel=sort_virology_vaccination_types_path)
|
26
|
+
- types.each do |type|
|
27
|
+
= content_tag_for(:tr, type, class: "sortable #{type.deleted? ? 'deleted' : ''}") do
|
28
|
+
td.actions
|
29
|
+
- unless type.deleted?
|
30
|
+
=link_to "Edit", edit_virology_vaccination_type_path(type)
|
31
|
+
=link_to "Delete",
|
32
|
+
virology_vaccination_type_path(type),
|
33
|
+
method: :delete,
|
34
|
+
data: { confirm: "Are you sure you want to delete this type? Doing so will prevent it from being used prospectively."}
|
35
|
+
|
36
|
+
td= type.name
|
37
|
+
td= type.code
|
38
|
+
td.handle
|
39
|
+
- unless type.deleted?
|
40
|
+
i.fas.fa-bars
|
41
|
+
td= l(type.created_at)
|
42
|
+
td= l(type.deleted_at)
|
@@ -0,0 +1,11 @@
|
|
1
|
+
ruby:
|
2
|
+
# Its possible the vaccination type has been soft-deleted so we need to use the
|
3
|
+
# #with_deleted scope. Its also possible the vaccination type row was hard deleted, so be
|
4
|
+
# sure to revert to just displaying the code from the document if this is the case.
|
5
|
+
code = event.document&.type
|
6
|
+
type = Renalware::Virology::VaccinationType.with_deleted.find_by(code: code)
|
7
|
+
title = type&.name || code&.titleize
|
8
|
+
li.patient-alert.vaccination
|
9
|
+
i.fas.fa-syringe
|
10
|
+
span.title= link_to title, renalware.patient_virology_dashboard_path(event.patient)
|
11
|
+
span.date= l(event.date_time.to_date)
|
data/config/permissions.yml
CHANGED
data/config/routes/virology.rb
CHANGED
@@ -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
|
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.166
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Airslie
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-01-
|
11
|
+
date: 2021-01-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord-import
|
@@ -310,14 +310,14 @@ dependencies:
|
|
310
310
|
requirements:
|
311
311
|
- - "~>"
|
312
312
|
- !ruby/object:Gem::Version
|
313
|
-
version: 2.
|
313
|
+
version: 2.4.0
|
314
314
|
type: :runtime
|
315
315
|
prerelease: false
|
316
316
|
version_requirements: !ruby/object:Gem::Requirement
|
317
317
|
requirements:
|
318
318
|
- - "~>"
|
319
319
|
- !ruby/object:Gem::Version
|
320
|
-
version: 2.
|
320
|
+
version: 2.4.0
|
321
321
|
- !ruby/object:Gem::Dependency
|
322
322
|
name: font-awesome-sass
|
323
323
|
requirement: !ruby/object:Gem::Requirement
|
@@ -664,14 +664,14 @@ dependencies:
|
|
664
664
|
name: puma
|
665
665
|
requirement: !ruby/object:Gem::Requirement
|
666
666
|
requirements:
|
667
|
-
- - "
|
667
|
+
- - ">="
|
668
668
|
- !ruby/object:Gem::Version
|
669
669
|
version: '4.3'
|
670
670
|
type: :runtime
|
671
671
|
prerelease: false
|
672
672
|
version_requirements: !ruby/object:Gem::Requirement
|
673
673
|
requirements:
|
674
|
-
- - "
|
674
|
+
- - ">="
|
675
675
|
- !ruby/object:Gem::Version
|
676
676
|
version: '4.3'
|
677
677
|
- !ruby/object:Gem::Dependency
|
@@ -1455,6 +1455,7 @@ files:
|
|
1455
1455
|
- app/controllers/renalware/virology/base_controller.rb
|
1456
1456
|
- app/controllers/renalware/virology/dashboards_controller.rb
|
1457
1457
|
- app/controllers/renalware/virology/profiles_controller.rb
|
1458
|
+
- app/controllers/renalware/virology/vaccination_types_controller.rb
|
1458
1459
|
- app/controllers/renalware/virology/vaccinations_controller.rb
|
1459
1460
|
- app/documents/document/attribute_initializer.rb
|
1460
1461
|
- app/documents/document/attribute_initializer/active_model.rb
|
@@ -1677,12 +1678,14 @@ files:
|
|
1677
1678
|
- app/models/renalware/drugs/type.rb
|
1678
1679
|
- app/models/renalware/events.rb
|
1679
1680
|
- app/models/renalware/events/advanced_care_plan.rb
|
1681
|
+
- app/models/renalware/events/alertable_events_query.rb
|
1680
1682
|
- app/models/renalware/events/biopsy.rb
|
1681
1683
|
- app/models/renalware/events/clinical_frailty_score.rb
|
1682
1684
|
- app/models/renalware/events/create_event.rb
|
1683
1685
|
- app/models/renalware/events/event.rb
|
1684
1686
|
- app/models/renalware/events/event_list_query.rb
|
1685
1687
|
- app/models/renalware/events/event_query.rb
|
1688
|
+
- app/models/renalware/events/event_type_alert_trigger.rb
|
1686
1689
|
- app/models/renalware/events/investigation.rb
|
1687
1690
|
- app/models/renalware/events/line_change_event_query.rb
|
1688
1691
|
- app/models/renalware/events/lists/form.rb
|
@@ -2573,12 +2576,14 @@ files:
|
|
2573
2576
|
- app/views/renalware/events/clinical_frailty_score/_cell.html.slim
|
2574
2577
|
- app/views/renalware/events/clinical_frailty_score/_inputs.html.slim
|
2575
2578
|
- app/views/renalware/events/clinical_frailty_score/_toggled_cell.html.slim
|
2579
|
+
- app/views/renalware/events/events/_alerts.html.slim
|
2576
2580
|
- app/views/renalware/events/events/_event.html.slim
|
2577
2581
|
- app/views/renalware/events/events/_filters.html.slim
|
2578
2582
|
- app/views/renalware/events/events/_form.html.slim
|
2579
2583
|
- app/views/renalware/events/events/_list.html.slim
|
2580
2584
|
- app/views/renalware/events/events/_summary_part.html.slim
|
2581
2585
|
- app/views/renalware/events/events/_table.html.slim
|
2586
|
+
- app/views/renalware/events/events/alert/_simple.html.slim
|
2582
2587
|
- app/views/renalware/events/events/cell/_biopsy.html.slim
|
2583
2588
|
- app/views/renalware/events/events/cell/_investigation.html.slim
|
2584
2589
|
- app/views/renalware/events/events/cell/_simple.html.slim
|
@@ -3326,6 +3331,11 @@ files:
|
|
3326
3331
|
- app/views/renalware/virology/dashboards/show.html.slim
|
3327
3332
|
- app/views/renalware/virology/profiles/_summary.html.slim
|
3328
3333
|
- app/views/renalware/virology/profiles/edit.html.slim
|
3334
|
+
- app/views/renalware/virology/vaccination_types/_form.html.slim
|
3335
|
+
- app/views/renalware/virology/vaccination_types/edit.html.slim
|
3336
|
+
- app/views/renalware/virology/vaccination_types/index.html.slim
|
3337
|
+
- app/views/renalware/virology/vaccination_types/new.html.slim
|
3338
|
+
- app/views/renalware/virology/vaccinations/_alert.html.slim
|
3329
3339
|
- app/views/renalware/virology/vaccinations/_cell.html.slim
|
3330
3340
|
- app/views/renalware/virology/vaccinations/_inputs.html.slim
|
3331
3341
|
- app/views/renalware/virology/vaccinations/_list.html.slim
|
@@ -4078,6 +4088,7 @@ files:
|
|
4078
4088
|
- db/migrate/20201105153422_update_medication_current_prescriptions_view.rb
|
4079
4089
|
- db/migrate/20201112152752_update_pd_mdm_patients_view1.rb
|
4080
4090
|
- db/migrate/20210105163944_create_virology_vaccination_types.rb
|
4091
|
+
- db/migrate/20210115181817_create_event_type_alert_triggers.rb
|
4081
4092
|
- db/seeds.rb
|
4082
4093
|
- db/seeds/default/accesses/access_pd_catheter_insertion_techniques.csv
|
4083
4094
|
- db/seeds/default/accesses/access_pd_catheter_insertion_techniques.rb
|