Skip to content

Commit 294d2b0

Browse files
committed
Merge pull request #4407 from nhsuk/systm-one-prescriber
Add prescriber to SystmOne export
2 parents 50eb0da + d2ffb5a commit 294d2b0

File tree

2 files changed

+56
-9
lines changed

2 files changed

+56
-9
lines changed

app/lib/reports/systm_one_exporter.rb

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ def vaccination_records
9595
:patient,
9696
:performed_by_user,
9797
:session,
98+
:supplied_by,
9899
:vaccine
99100
)
100101

@@ -209,14 +210,19 @@ def site(vaccination_record)
209210
end
210211

211212
def notes(vaccination_record)
212-
notes = vaccination_record.notes.to_s
213-
if vaccination_record.performed_by
214-
notes += (notes.empty? ? "" : "\n ")
215-
notes +=
216-
"Administered by: #{vaccination_record.performed_by.given_name}" \
217-
" #{vaccination_record.performed_by.family_name}"
218-
end
219-
notes
213+
[
214+
vaccination_record.notes,
215+
if (user = vaccination_record.performed_by)
216+
"Administered by: #{user.full_name}"
217+
end,
218+
if (user = vaccination_record.supplied_by)
219+
if vaccination_record.pgd?
220+
"Authorised by: #{user.full_name}"
221+
else
222+
"Prescribed by: #{user.full_name}"
223+
end
224+
end
225+
].compact_blank.join("\n")
220226
end
221227

222228
def method(vaccination_record)

spec/lib/reports/systm_one_exporter_spec.rb

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
"Reason" => "Routine",
5959
"Site" => "Left deltoid",
6060
"Method" => "Intramuscular",
61-
"Notes" => "Administered by: Test User"
61+
"Notes" => "Administered by: USER, Test"
6262
}
6363
)
6464
end
@@ -264,6 +264,47 @@
264264
end
265265
end
266266

267+
describe "Notes field" do
268+
subject { csv_row["Notes"] }
269+
270+
let(:nurse) { create(:nurse, given_name: "Nurse") }
271+
let(:healthcare_assistant) do
272+
create(:healthcare_assistant, given_name: "HCA")
273+
end
274+
275+
context "nasal flu administered by healthcare assistant under PGD" do
276+
let(:vaccination_record) do
277+
create(
278+
:vaccination_record,
279+
programme:,
280+
patient:,
281+
session:,
282+
protocol: "pgd",
283+
performed_by: healthcare_assistant,
284+
supplied_by: nurse
285+
)
286+
end
287+
288+
it { should eq("Administered by: USER, HCA\nAuthorised by: USER, Nurse") }
289+
end
290+
291+
context "nasal flu administered by healthcare assistant under PSD" do
292+
let(:vaccination_record) do
293+
create(
294+
:vaccination_record,
295+
programme:,
296+
patient:,
297+
session:,
298+
protocol: "psd",
299+
performed_by: healthcare_assistant,
300+
supplied_by: nurse
301+
)
302+
end
303+
304+
it { should eq("Administered by: USER, HCA\nPrescribed by: USER, Nurse") }
305+
end
306+
end
307+
267308
describe "Flu vaccine records" do
268309
let(:vaccination_record) do
269310
create(

0 commit comments

Comments
 (0)