Skip to content

Commit 7ffd629

Browse files
committed
Use administered outcome for already had
We can use outcome `administered` and a new source value `manual_record` to ensure that already had records are treated more consistently. Jira-Issue: MAV-2848 Jira-Issue: MAV-3404
1 parent ce76186 commit 7ffd629

5 files changed

Lines changed: 14 additions & 17 deletions

File tree

app/components/app_vaccination_record_summary_component.rb

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -351,12 +351,6 @@ def outcome_value
351351
outcome =
352352
VaccinationRecord.human_enum_name(:outcome, @vaccination_record.outcome)
353353

354-
if Flipper.enabled?(:already_vaccinated) &&
355-
@vaccination_record.already_had? &&
356-
@vaccination_record.reported_as_already_vaccinated?
357-
outcome = VaccinationRecord.human_enum_name(:outcome, "administered")
358-
end
359-
360354
highlight_if(outcome, @vaccination_record.outcome_changed?)
361355
end
362356

app/controllers/draft_vaccination_records_controller.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ def update
6363

6464
reload_steps
6565

66+
require 'pry'; binding.pry
6667
render_wizard @draft_vaccination_record
6768
end
6869

app/controllers/patient_sessions/programmes_controller.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def record_already_vaccinated
3131
first_active_wizard_step:,
3232
location_id: nil,
3333
location_name: "Unknown",
34-
outcome: :already_had,
34+
outcome: (Flipper.enabled?(:already_vaccinated) ? :administered : :already_had),
3535
patient: @patient,
3636
performed_at: (Time.current unless Flipper.enabled?(:already_vaccinated)),
3737
performed_by_user_id:
@@ -42,7 +42,7 @@ def record_already_vaccinated
4242
(current_user.id if Flipper.enabled?(:already_vaccinated)),
4343
reported_at: (Time.current if Flipper.enabled?(:already_vaccinated)),
4444
session: @session,
45-
source: "service"
45+
source: (Flipper.enabled?(:already_vaccinated) ? :manual_report : :service)
4646
)
4747

4848
redirect_to draft_vaccination_record_path(

app/models/draft_vaccination_record.rb

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,9 @@ def wizard_steps
7070
:date_and_time,
7171
(:outcome if can_change_outcome?),
7272
(:supplier if requires_supplied_by?),
73-
(:delivery if administered?),
74-
(:dose if administered? && can_be_half_dose?),
75-
(:batch if administered?),
73+
(:delivery if administered? && !reported_as_already_vaccinated?),
74+
(:dose if administered? && can_be_half_dose? && !reported_as_already_vaccinated?),
75+
(:batch if administered? && !reported_as_already_vaccinated?),
7676
(
7777
if !already_had? && (session&.generic_clinic? || national_reporting_user_and_record?)
7878
:location
@@ -162,7 +162,7 @@ def wizard_steps
162162

163163
with_options on: :update,
164164
if: -> do
165-
required_for_step?(:confirm, exact: true) && administered?
165+
required_for_step?(:confirm, exact: true) && administered? && !reported_as_already_vaccinated?
166166
end do
167167
validates :delivery_method,
168168
:delivery_site,
@@ -191,8 +191,7 @@ def already_had?
191191
end
192192

193193
def reported_as_already_vaccinated?
194-
Flipper.enabled?(:already_vaccinated) && already_had? &&
195-
reported_by_id.present?
194+
Flipper.enabled?(:already_vaccinated) && administered? && sourced_from_manual_report?
196195
end
197196

198197
# So that a form error matches to a field in this model
@@ -381,6 +380,8 @@ def sourced_from_consent_refusal? = source == "consent_refusal"
381380

382381
def sourced_from_national_reporting? = source == "national_reporting"
383382

383+
def sourced_from_manual_report? = source == "manual_report"
384+
384385
def national_reporting_user_and_record?
385386
@current_user.selected_team.has_national_reporting_access? &&
386387
sourced_from_national_reporting?
@@ -487,7 +488,7 @@ def vaccine_method
487488
def can_be_half_dose? = vaccine_method == "nasal"
488489

489490
def can_change_outcome?
490-
(outcome != "already_had" || editing? || session.nil? || session.today?) &&
491+
((outcome != "already_had" && reported_at.nil?) || editing? || session.nil? || session.today?) &&
491492
!national_reporting_user_and_record?
492493
end
493494

app/models/vaccination_record.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,8 @@ class VaccinationRecord < ApplicationRecord
195195
historical_upload: 1,
196196
nhs_immunisations_api: 2,
197197
consent_refusal: 3,
198-
national_reporting: 4
198+
national_reporting: 4,
199+
manual_report: 5
199200
},
200201
prefix: "sourced_from",
201202
validate: true
@@ -272,7 +273,7 @@ class << self
272273
def not_administered? = !administered?
273274

274275
def reported_as_already_vaccinated?
275-
already_had? && reported_by_id.present?
276+
administered? && sourced_from_manual_report?
276277
end
277278

278279
def show_in_academic_year?(current_academic_year)

0 commit comments

Comments
 (0)