Skip to content

Commit fabcd4c

Browse files
Only dedupe against administered in Imms API search job
This had the potential to cause a bug; previously the job could have discarded incoming records because they duplicated a not-given record in Mavis.
1 parent b7db76d commit fabcd4c

2 files changed

Lines changed: 39 additions & 0 deletions

File tree

app/jobs/search_vaccination_records_in_nhs_job.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ def deduplicate_vaccination_records(incoming_vaccination_records)
133133
service_vaccination_records =
134134
patient
135135
.vaccination_records
136+
.administered
136137
.with_correct_source_for_nhs_immunisations_api
137138
.includes(:team)
138139

spec/jobs/search_vaccination_records_in_nhs_job_spec.rb

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,44 @@
208208
).to eq(mavis_record)
209209
end
210210
end
211+
212+
context "record duplicates a not-administered Mavis record" do
213+
let(:nhs_immunisations_api_primary_source) { true }
214+
215+
before do
216+
create(
217+
:vaccination_record,
218+
:not_administered,
219+
session:,
220+
programme:,
221+
patient:,
222+
performed_at:
223+
)
224+
end
225+
226+
it "returns all incoming records" do
227+
expect(deduplicate).to contain_exactly(
228+
first_vaccination_record,
229+
second_vaccination_record
230+
)
231+
end
232+
233+
it "doesn't discard all incoming records" do
234+
deduplicate
235+
expect(first_vaccination_record.discarded_at).to be_nil
236+
expect(second_vaccination_record.discarded_at).to be_nil
237+
end
238+
239+
it "doesn't point any incoming records at the Mavis record" do
240+
deduplicate
241+
expect(
242+
first_vaccination_record.duplicate_of_vaccination_record
243+
).to be_nil
244+
expect(
245+
second_vaccination_record.duplicate_of_vaccination_record
246+
).to be_nil
247+
end
248+
end
211249
end
212250

213251
let(:vaccination_records) do

0 commit comments

Comments
 (0)