renalware-core 2.0.162 → 2.0.167
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/stylesheets/renalware/lib/_foundation_and_overrides.scss +1 -1
- data/app/assets/stylesheets/renalware/partials/_tables.scss +15 -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/virology/vaccination_type.rb +25 -3
- data/app/policies/renalware/events/advanced_care_plan_policy.rb +1 -1
- data/app/policies/renalware/events/clinical_frailty_score_policy.rb +1 -1
- data/app/policies/renalware/events/event_policy.rb +4 -0
- data/app/policies/renalware/events/investigation_policy.rb +5 -1
- data/app/policies/renalware/virology/vaccination_policy.rb +6 -1
- data/app/presenters/renalware/virology/dashboard_presenter.rb +1 -1
- data/app/views/renalware/clinics/appointments/index.html.slim +1 -2
- data/app/views/renalware/directory/people/_person.html.slim +1 -2
- data/app/views/renalware/events/events/_event.html.slim +16 -3
- data/app/views/renalware/events/events/_form.html.slim +1 -1
- data/app/views/renalware/events/events/_table.html.slim +1 -2
- data/app/views/renalware/events/events/edit.html.slim +10 -0
- data/app/views/renalware/events/events/new.html.slim +4 -4
- data/app/views/renalware/events/investigations/edit.html.slim +5 -11
- data/app/views/renalware/events/swabs/edit.html.slim +5 -11
- data/app/views/renalware/events/swabs/new.html.slim +5 -11
- data/app/views/renalware/hd/dialysers/index.html.slim +1 -2
- data/app/views/renalware/hd/ongoing_sessions/_session.html.slim +1 -2
- data/app/views/renalware/hospitals/units/index.html.slim +1 -2
- data/app/views/renalware/pd/infection_organisms/_table.html.slim +1 -2
- data/app/views/renalware/problems/notes/_table.html.slim +1 -2
- data/app/views/renalware/problems/problems/_current_table.html.slim +1 -2
- data/app/views/renalware/research/study_participants/_table.html.slim +2 -2
- data/app/views/renalware/transplants/donor_operations/_list.html.slim +1 -2
- data/app/views/renalware/transplants/recipient_operations/_list.html.slim +2 -3
- 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 +8 -2
- data/config/permissions.yml +1 -0
- data/config/routes/events.rb +1 -1
- data/config/routes/virology.rb +6 -0
- data/db/migrate/20210115181817_create_event_type_alert_triggers.rb +1 -1
- data/lib/renalware/version_number.rb +1 -1
- metadata +10 -18
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: aa22cd0095f51d9bc225561fa2560b535a6e2c1af7afc9b6c831577b62f8fff9
|
|
4
|
+
data.tar.gz: 32cff2bcf9bd90f1f08f79716c8541601e8ef7ad09f2c35f4daefa14df89a711
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a40adc5547969171c58e7216f2e26ddad7b841a23c2a3e9710353639142b307007fbc6c98886e9c140a656e97a26fcbf39c9ef9091220b32ff1edfc92afd67c9
|
|
7
|
+
data.tar.gz: b05d494e9d5565979f7dbd9e755202cb227c1e895e065f3aa81e2de68070c36d24f79fb7e6e78b41acd84db767c2ad7069f34477c797bad968d10c8bc9348ef6
|
|
@@ -454,7 +454,7 @@ $form-spacing: rem-calc(12);
|
|
|
454
454
|
// $input-border-radius: $global-radius;
|
|
455
455
|
// $input-disabled-bg: $gainsboro;
|
|
456
456
|
// $input-disabled-cursor: $cursor-default-value;
|
|
457
|
-
|
|
457
|
+
$input-box-shadow: 0;
|
|
458
458
|
|
|
459
459
|
// We use these to style the fieldset border and spacing.
|
|
460
460
|
// $fieldset-border-style: solid;
|
|
@@ -37,6 +37,15 @@ td.actions {
|
|
|
37
37
|
padding-left: 0;
|
|
38
38
|
white-space: nowrap;
|
|
39
39
|
|
|
40
|
+
/* If the action link is just an icon, make it quite subtle so it does not draw attention */
|
|
41
|
+
> a.icon-only {
|
|
42
|
+
color: $link-hover-colour;
|
|
43
|
+
|
|
44
|
+
&:hover {
|
|
45
|
+
color: $link-colour;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
40
49
|
> a, > span {
|
|
41
50
|
&:after {
|
|
42
51
|
color: $pipe-separator-colour;
|
|
@@ -409,6 +418,12 @@ table {
|
|
|
409
418
|
}
|
|
410
419
|
}
|
|
411
420
|
|
|
421
|
+
tr.deleted {
|
|
422
|
+
td {
|
|
423
|
+
background-color: lighten($nhs-red, 53);
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
|
|
412
427
|
table.report {
|
|
413
428
|
table-layout: auto;
|
|
414
429
|
|
|
@@ -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
|
|
@@ -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
|
|
@@ -4,7 +4,12 @@ require_dependency "renalware/virology"
|
|
|
4
4
|
|
|
5
5
|
module Renalware
|
|
6
6
|
module Virology
|
|
7
|
-
class VaccinationPolicy <
|
|
7
|
+
class VaccinationPolicy < Events::EventPolicy
|
|
8
|
+
def edit?
|
|
9
|
+
user_is_super_admin?
|
|
10
|
+
end
|
|
11
|
+
alias update? edit?
|
|
12
|
+
alias destroy? edit?
|
|
8
13
|
end
|
|
9
14
|
end
|
|
10
15
|
end
|
|
@@ -73,11 +73,10 @@
|
|
|
73
73
|
- appointments.each do |appointment|
|
|
74
74
|
tr
|
|
75
75
|
td= check_box_tag nil, appointment.patient.id, true, class: "patient_checkbox"
|
|
76
|
-
td.nowrap
|
|
76
|
+
td.nowrap.actions
|
|
77
77
|
= link_to("Toggle",
|
|
78
78
|
"#appointment-quick-preview-#{appointment.id}",
|
|
79
79
|
data: { behaviour: "toggler" })
|
|
80
|
-
= " | "
|
|
81
80
|
- if appointment.becomes_visit_id.present?
|
|
82
81
|
= link_to edit_patient_clinic_visit_path(appointment.patient,
|
|
83
82
|
id: appointment.becomes_visit_id) do
|
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
- row_id = "#{toggle_prefix}-quick-preview-#{event.id}"
|
|
2
2
|
tr
|
|
3
3
|
td.noprint= toggler("##{row_id}")
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
td.actions
|
|
5
|
+
/ If the event supports editing (most don't as they are immuatble once created, to ensure a
|
|
6
|
+
/ consistent clinical record), then use the supplied proc if passed (which will render a
|
|
7
|
+
/ custom edit link (e.g. the Investigations event subclass, has its own slug, controllwe and
|
|
8
|
+
/ and form) otherwise render a standard Event edit link.
|
|
9
|
+
- if policy(event).edit?
|
|
10
|
+
= link_to("Edit", local_assigns[:edit_proc] ? edit_proc.call(event) : edit_patient_event_path(event.patient, event))
|
|
11
|
+
|
|
12
|
+
- if policy(event).destroy?
|
|
13
|
+
- if local_assigns[:destroy_proc]
|
|
14
|
+
= link_to("Delete", destroy_proc.call(event))
|
|
15
|
+
- else
|
|
16
|
+
= link_to(patient_event_path(event.patient, event),
|
|
17
|
+
method: :delete,
|
|
18
|
+
data: { confirm: "Are you sure you want delete this event?\n" }) do
|
|
19
|
+
i.far.fa-trash-alt
|
|
7
20
|
|
|
8
21
|
td.nowrap= l event.created_at.to_date
|
|
9
22
|
- unless local_assigns[:exclude_type_column] == true
|
|
@@ -4,8 +4,7 @@ table.has-togglable-rows.events-table
|
|
|
4
4
|
thead
|
|
5
5
|
tr
|
|
6
6
|
th.noprint.togglers= table_toggler
|
|
7
|
-
-
|
|
8
|
-
th.col-width-tiny
|
|
7
|
+
th.col-width-tiny
|
|
9
8
|
th.col-width-date=t(".created_at")
|
|
10
9
|
- unless local_assigns.fetch(:exclude_type_column, false)
|
|
11
10
|
th.col-width-large= t(".type")
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
= within_patient_layout(\
|
|
2
|
+
title: "Event / Edit",
|
|
3
|
+
breadcrumbs: breadcrumb_for("Events", patient_events_path(patient)) \
|
|
4
|
+
) do
|
|
5
|
+
|
|
6
|
+
= render "renalware/events/events/form",
|
|
7
|
+
event: event,
|
|
8
|
+
patient: patient,
|
|
9
|
+
event_types: event_types,
|
|
10
|
+
url: patient_event_path(patient, event)
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
= within_patient_layout(title: "Investigations / Edit") do
|
|
2
2
|
|
|
3
|
-
=
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
= render "renalware/events/events/form",
|
|
10
|
-
event: event,
|
|
11
|
-
patient: patient,
|
|
12
|
-
event_types: event_types,
|
|
13
|
-
f: f
|
|
3
|
+
= render "renalware/events/events/form",
|
|
4
|
+
event: event,
|
|
5
|
+
patient: patient,
|
|
6
|
+
event_types: event_types,
|
|
7
|
+
url: patient_investigation_path(patient, event)
|
|
@@ -3,14 +3,8 @@
|
|
|
3
3
|
breadcrumbs: breadcrumb_for("Clinical Profile", patient_clinical_profile_path(patient))\
|
|
4
4
|
) do
|
|
5
5
|
|
|
6
|
-
=
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
= render "renalware/events/events/form",
|
|
13
|
-
event: event,
|
|
14
|
-
patient: patient,
|
|
15
|
-
event_types: event_types,
|
|
16
|
-
f: f
|
|
6
|
+
= render "renalware/events/events/form",
|
|
7
|
+
event: event,
|
|
8
|
+
patient: patient,
|
|
9
|
+
event_types: event_types,
|
|
10
|
+
url: patient_swab_path(patient, event)
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
= within_patient_layout(title: "New Swab", breadcrumbs: clinical_profile_breadcrumb(patient)) do
|
|
2
2
|
|
|
3
|
-
=
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
= render "renalware/events/events/form",
|
|
10
|
-
event: event,
|
|
11
|
-
patient: patient,
|
|
12
|
-
event_types: event_types,
|
|
13
|
-
f: f
|
|
3
|
+
= render "renalware/events/events/form",
|
|
4
|
+
event: event,
|
|
5
|
+
patient: patient,
|
|
6
|
+
event_types: event_types,
|
|
7
|
+
url: patient_swabs_path(patient, event)
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
tr
|
|
2
|
-
td.noprint
|
|
2
|
+
td.noprint.actions
|
|
3
3
|
= link_to "Sign-Off", edit_patient_hd_session_path(session.patient, session)
|
|
4
|
-
= pipe_separator
|
|
5
4
|
= link_to "HD Summary".html_safe, patient_hd_dashboard_path(session.patient)
|
|
6
5
|
td.full-name
|
|
7
6
|
= link_to session.patient.to_s, patient_clinical_summary_path(session.patient)
|
|
@@ -19,10 +19,9 @@
|
|
|
19
19
|
tbody
|
|
20
20
|
- hospital_units.each do |unit|
|
|
21
21
|
tr
|
|
22
|
-
td
|
|
22
|
+
td.actions
|
|
23
23
|
- if policy(unit).edit?
|
|
24
24
|
= link_to "Edit", edit_hospitals_unit_path(unit.id)
|
|
25
|
-
= pipe_separator
|
|
26
25
|
- if policy(unit).destroy?
|
|
27
26
|
= link_to "Delete",
|
|
28
27
|
hospitals_unit_path(unit.id),
|
|
@@ -8,9 +8,8 @@ table
|
|
|
8
8
|
tbody
|
|
9
9
|
- infection_organisms.each do |infection_organism|
|
|
10
10
|
tr
|
|
11
|
-
td
|
|
11
|
+
td.noprint.actions
|
|
12
12
|
= link_to "Edit", edit_pd_infection_organism_path(infection_organism), remote: true
|
|
13
|
-
= pipe_separator
|
|
14
13
|
= link_to "Terminate", pd_infection_organism_path(infection_organism),
|
|
15
14
|
method: :delete, remote: true, data: { confirm: "Are you sure?" }
|
|
16
15
|
td= infection_organism
|
|
@@ -15,13 +15,12 @@
|
|
|
15
15
|
- notes.each do |note|
|
|
16
16
|
tr
|
|
17
17
|
- unless problem.archived?
|
|
18
|
-
td
|
|
18
|
+
td.actions
|
|
19
19
|
- if policy(note).edit?
|
|
20
20
|
= link_to "Edit",
|
|
21
21
|
edit_patient_problem_note_path(problem.patient, problem, note),
|
|
22
22
|
remote: true
|
|
23
23
|
- if policy(note).destroy?
|
|
24
|
-
= pipe_separator
|
|
25
24
|
= link_to "Delete",
|
|
26
25
|
patient_problem_note_path(problem.patient, problem, note),
|
|
27
26
|
method: :delete,
|
|
@@ -9,9 +9,8 @@ table#current_problems.manual-stripes.auto-layout
|
|
|
9
9
|
= content_tag(:tbody, class: "sortables", data: { rel: sort_patient_problems_path(@patient) }) do
|
|
10
10
|
- problems.each do |problem|
|
|
11
11
|
= content_tag_for(:tr, problem, class: "sortable") do
|
|
12
|
-
td
|
|
12
|
+
td.actions
|
|
13
13
|
= link_to "Edit", patient_problem_path(@patient, problem)
|
|
14
|
-
= pipe_separator
|
|
15
14
|
= link_to "Archive",
|
|
16
15
|
patient_problem_path(@patient, problem),
|
|
17
16
|
method: :delete,
|
|
@@ -22,13 +22,13 @@
|
|
|
22
22
|
td= participant.patient.age
|
|
23
23
|
td= participant.patient.sex
|
|
24
24
|
td= participant.external_id
|
|
25
|
-
td
|
|
25
|
+
td.actions
|
|
26
26
|
= link_to "Delete",
|
|
27
27
|
research_study_participant_path(study, participant),
|
|
28
28
|
method: :delete,
|
|
29
29
|
data: { confirm: "Are you sure?" }
|
|
30
|
-
= " | "
|
|
31
30
|
= link_to("Edit",
|
|
32
31
|
edit_research_study_participant_path(study, participant),
|
|
33
32
|
data: { "reveal-id" => "study-participant-modal", "reveal-ajax" => "true" })
|
|
33
|
+
|
|
34
34
|
= paginate participants
|
|
@@ -20,10 +20,9 @@ article.status-history
|
|
|
20
20
|
td= operation.nephrectomy_type.try(:text)
|
|
21
21
|
- if operation.followup
|
|
22
22
|
td= l operation.followup.last_seen_on
|
|
23
|
-
td
|
|
23
|
+
td.actions.text-left
|
|
24
24
|
= link_to "View",
|
|
25
25
|
patient_transplants_donor_operation_followup_path(patient, operation)
|
|
26
|
-
= pipe_separator
|
|
27
26
|
= link_to "Update",
|
|
28
27
|
edit_patient_transplants_donor_operation_followup_path(patient, operation)
|
|
29
28
|
- else
|
|
@@ -38,15 +38,14 @@ article.recipient-operations
|
|
|
38
38
|
- if operation.followup
|
|
39
39
|
td= l operation.followup.transplant_failed_on
|
|
40
40
|
td= operation.followup.transplant_failure_cause_description
|
|
41
|
-
td
|
|
41
|
+
td.actions.text-left
|
|
42
42
|
= link_to "View",
|
|
43
43
|
patient_transplants_recipient_operation_followup_path(patient, operation)
|
|
44
|
-
= pipe_separator
|
|
45
44
|
= link_to "Update",
|
|
46
45
|
edit_patient_transplants_recipient_operation_followup_path(patient, operation)
|
|
47
46
|
- else
|
|
48
47
|
td
|
|
49
48
|
td
|
|
50
|
-
td
|
|
49
|
+
td.actions.text-left
|
|
51
50
|
- url = new_patient_transplants_recipient_operation_followup_path(patient, operation)
|
|
52
51
|
= link_to "Enter details", url
|
|
@@ -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)
|
|
@@ -1,5 +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
|
|
1
8
|
li.patient-alert.vaccination
|
|
2
9
|
i.fas.fa-syringe
|
|
3
|
-
|
|
4
|
-
span.title= link_to title, patient_virology_dashboard_path
|
|
10
|
+
span.title= link_to title, renalware.patient_virology_dashboard_path(event.patient)
|
|
5
11
|
span.date= l(event.date_time.to_date)
|
data/config/permissions.yml
CHANGED
data/config/routes/events.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
resources :patients, only: [] do
|
|
4
|
-
resources :events,
|
|
4
|
+
resources :events, except: :show, controller: "events/events"
|
|
5
5
|
constraints(format: /(pdf)/) do
|
|
6
6
|
resources :events, only: :show, controller: "events/events"
|
|
7
7
|
end
|
data/config/routes/virology.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: renalware-core
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.0.
|
|
4
|
+
version: 2.0.167
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Airslie
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-02-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activerecord-import
|
|
@@ -742,14 +742,14 @@ dependencies:
|
|
|
742
742
|
requirements:
|
|
743
743
|
- - "~>"
|
|
744
744
|
- !ruby/object:Gem::Version
|
|
745
|
-
version: 2.
|
|
745
|
+
version: 2.4.0
|
|
746
746
|
type: :runtime
|
|
747
747
|
prerelease: false
|
|
748
748
|
version_requirements: !ruby/object:Gem::Requirement
|
|
749
749
|
requirements:
|
|
750
750
|
- - "~>"
|
|
751
751
|
- !ruby/object:Gem::Version
|
|
752
|
-
version: 2.
|
|
752
|
+
version: 2.4.0
|
|
753
753
|
- !ruby/object:Gem::Dependency
|
|
754
754
|
name: record_tag_helper
|
|
755
755
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -792,20 +792,6 @@ dependencies:
|
|
|
792
792
|
- - "~>"
|
|
793
793
|
- !ruby/object:Gem::Version
|
|
794
794
|
version: 1.2.0
|
|
795
|
-
- !ruby/object:Gem::Dependency
|
|
796
|
-
name: rubyzip
|
|
797
|
-
requirement: !ruby/object:Gem::Requirement
|
|
798
|
-
requirements:
|
|
799
|
-
- - "~>"
|
|
800
|
-
- !ruby/object:Gem::Version
|
|
801
|
-
version: 1.3.0
|
|
802
|
-
type: :runtime
|
|
803
|
-
prerelease: false
|
|
804
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
805
|
-
requirements:
|
|
806
|
-
- - "~>"
|
|
807
|
-
- !ruby/object:Gem::Version
|
|
808
|
-
version: 1.3.0
|
|
809
795
|
- !ruby/object:Gem::Dependency
|
|
810
796
|
name: sassc-rails
|
|
811
797
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -1455,6 +1441,7 @@ files:
|
|
|
1455
1441
|
- app/controllers/renalware/virology/base_controller.rb
|
|
1456
1442
|
- app/controllers/renalware/virology/dashboards_controller.rb
|
|
1457
1443
|
- app/controllers/renalware/virology/profiles_controller.rb
|
|
1444
|
+
- app/controllers/renalware/virology/vaccination_types_controller.rb
|
|
1458
1445
|
- app/controllers/renalware/virology/vaccinations_controller.rb
|
|
1459
1446
|
- app/documents/document/attribute_initializer.rb
|
|
1460
1447
|
- app/documents/document/attribute_initializer/active_model.rb
|
|
@@ -2587,6 +2574,7 @@ files:
|
|
|
2587
2574
|
- app/views/renalware/events/events/cell/_investigation.html.slim
|
|
2588
2575
|
- app/views/renalware/events/events/cell/_simple.html.slim
|
|
2589
2576
|
- app/views/renalware/events/events/cell/_swab.html.slim
|
|
2577
|
+
- app/views/renalware/events/events/edit.html.slim
|
|
2590
2578
|
- app/views/renalware/events/events/index.html.slim
|
|
2591
2579
|
- app/views/renalware/events/events/inputs/_biopsy.html.slim
|
|
2592
2580
|
- app/views/renalware/events/events/inputs/_investigation.html.slim
|
|
@@ -3330,6 +3318,10 @@ files:
|
|
|
3330
3318
|
- app/views/renalware/virology/dashboards/show.html.slim
|
|
3331
3319
|
- app/views/renalware/virology/profiles/_summary.html.slim
|
|
3332
3320
|
- app/views/renalware/virology/profiles/edit.html.slim
|
|
3321
|
+
- app/views/renalware/virology/vaccination_types/_form.html.slim
|
|
3322
|
+
- app/views/renalware/virology/vaccination_types/edit.html.slim
|
|
3323
|
+
- app/views/renalware/virology/vaccination_types/index.html.slim
|
|
3324
|
+
- app/views/renalware/virology/vaccination_types/new.html.slim
|
|
3333
3325
|
- app/views/renalware/virology/vaccinations/_alert.html.slim
|
|
3334
3326
|
- app/views/renalware/virology/vaccinations/_cell.html.slim
|
|
3335
3327
|
- app/views/renalware/virology/vaccinations/_inputs.html.slim
|