diff --git a/app/locals.js b/app/locals.js
index 09fefe28..2f9c1e91 100644
--- a/app/locals.js
+++ b/app/locals.js
@@ -29,6 +29,7 @@ module.exports = function(req, res, next) {
]
const now = new Date()
+ res.locals.today = now.toISOString().substring(0,10)
const lastMonthDate = new Date(now.getFullYear(), now.getMonth() - 1, 1)
res.locals.lastCalendarMonth = `${monthNames[lastMonthDate.getMonth()]} ${lastMonthDate.getFullYear()}`
@@ -85,4 +86,3 @@ module.exports = function(req, res, next) {
next()
}
-
diff --git a/app/routes.js b/app/routes.js
index 73349898..2415830f 100644
--- a/app/routes.js
+++ b/app/routes.js
@@ -44,6 +44,7 @@ router.use('/support{*splat}', authorise({userType: 'admin'}))
require('./routes/apply')(router)
require('./routes/appointments')(router)
+require('./routes/clinics')(router)
require('./routes/record-vaccinations')(router)
require('./routes/regions')(router)
require('./routes/user-admin')(router)
diff --git a/app/routes/clinics.js b/app/routes/clinics.js
new file mode 100644
index 00000000..dedffa59
--- /dev/null
+++ b/app/routes/clinics.js
@@ -0,0 +1,15 @@
+module.exports = router => {
+
+ router.post('/clinics/answer-patient-nhs-number-known', (req, res) => {
+ const nhsNumberKnown = req.session.data.nhsNumberKnown
+
+ if (nhsNumberKnown === 'yes') {
+ return res.redirect('/clinics/patient-history')
+ } else if (nhsNumberKnown === 'no') {
+ return res.redirect('/clinics/patient-search')
+ }
+
+ return res.redirect('/clinics/patient')
+ })
+
+}
diff --git a/app/routes/prototype-admin.js b/app/routes/prototype-admin.js
index ad433577..ccb728c5 100644
--- a/app/routes/prototype-admin.js
+++ b/app/routes/prototype-admin.js
@@ -525,6 +525,13 @@ module.exports = (router) => {
data.currentOrganisationId = 'FA425'
setupBatchesForOrg(data, 'FA425')
addRandomVaccinations(data, 'FA425', 30)
+ } else if (scenario === 'clinics') {
+ data.currentUserId = '12345678'
+ data.currentOrganisationId = 'FA425'
+ data.status = 'insession'
+ data.scenario = 'clinics'
+ setupBatchesForOrg(data, 'FA425')
+ addRandomVaccinations(data, 'FA425', 30)
} else {
res.redirect('/')
return
diff --git a/app/views/clinics/add-patients.html b/app/views/clinics/add-patients.html
new file mode 100644
index 00000000..d4474271
--- /dev/null
+++ b/app/views/clinics/add-patients.html
@@ -0,0 +1,43 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Add patients" %}
+
+{% set currentSection = "clinics" %}
+
+{% block beforeContent %}
+
+{{ backLink({
+href: "javascript:window.history.back()",
+text: "Back"
+}) }}
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+ {#
{{ pageName }}
#}
+
+ {{ textarea({
+ label: {
+ text: pageName,
+ size: "l",
+ isPageHeading: true
+ },
+ hint: "Copy and paste NHS numbers from a spreadsheet or another source.",
+ id: "example",
+ name: "example"
+ }) }}
+
+
+ {{ button({
+ text: "Continue",
+ href: "/clinics/session"
+ }) }}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/views/clinics/appointments.html b/app/views/clinics/appointments.html
new file mode 100644
index 00000000..628a1b62
--- /dev/null
+++ b/app/views/clinics/appointments.html
@@ -0,0 +1,593 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Today’s appointments" %}
+
+{% set currentSection = "appointments" %}
+
+{% if data.status == "complete" %}
+{% set completedNumber = "33" %}
+{% else %}
+{% set completedNumber = "4" %}
+{% endif %}
+
+{% block content %}
+
+
+
+
+
{{ pageName }}
+ {#
Imported from Manage your appointments (opens in new tab)
+
#}
+
+ {{ summaryList({
+ rows: [
+ {
+ key: {
+ text: "Date"
+ },
+ value: {
+ html: today | formatDate
+ }
+ },
+ {
+ key: {
+ text: "Vaccinator"
+ },
+ value: {
+ html: data.vaccinator or "
Set today's vaccinator"
+ }
+ },
+ {
+ key: {
+ text: "Vaccine"
+ },
+ value: {
+ html: data.vaccine or "
Set today's vaccine"
+ }
+ }
+ ]
+ }) }}
+
+
+
+ {% if data.status != "complete" %}
+
+ {{ button({
+ text: "Add walk-in patient",
+ variant: "secondary",
+ href: "/clinics/patient?recording=walkin"
+ }) }}
+
+ {% else %}
+ {% endif %}
+
+
+
+
+
+
+
+
+
+ {{ pagination({
+ previous: {
+ label: "Yesterday",
+ href: "#"
+ },
+ next: {
+ label: "Tomorrow",
+ href: "#"
+ }
+ }) }}
+
+ {% if data.status == "complete" %}
+
+
+
+ -
+ {% call card({
+ heading: {
+ text: "33",
+ visuallyHiddenText: "vaccinations",
+ classes: "nhsuk-u-font-size-64 nhsuk-u-margin-bottom-1"
+ }
+ }) %}
+ Vaccinations
+ {% endcall %}
+
+ -
+ {% call card({
+ heading: {
+ text: "1",
+ visuallyHiddenText: "vaccinations",
+ classes: "nhsuk-u-font-size-64 nhsuk-u-margin-bottom-1"
+ }
+ }) %}
+ Cancelled
+ {% endcall %}
+
+ -
+ {% call card({
+ heading: {
+ text: "29",
+ visuallyHiddenText: "vaccinations",
+ classes: "nhsuk-u-font-size-64 nhsuk-u-margin-bottom-1"
+ }
+ }) %}
+ Appointments
+ {% endcall %}
+
+ -
+ {% call card({
+ heading: {
+ text: "4",
+ visuallyHiddenText: "vaccinations",
+ classes: "nhsuk-u-font-size-64 nhsuk-u-margin-bottom-1"
+ }
+ }) %}
+ Walk-ins
+ {% endcall %}
+
+
+
+ {% endif %}
+
+ {% set patientActionsContent01 %}
+
+ {% if data.status == "complete" %}
+
View record
+ {% else %}
+
+
+
+ {{ button({
+ text: "Check-in",
+ small: true,
+ variant: "secondary",
+ attributes: {
+ "data-check-in": "true"
+ }
+ }) }}
+
+
+ {{ tag({ text: "Checked in" }) }}
+ Undo
+
+
+
+
+
+
+
Cancel
+
+ {% endif %}
+
+ {% endset -%}
+
+ {% set patientActionsContent %}
+
+ {% if data.status == "complete" %}
+
View record
+ {% else %}
+
+
+
+ {{ button({
+ text: "Check-in",
+ small: true,
+ variant: "secondary",
+ attributes: {
+ "data-check-in": "true"
+ }
+ }) }}
+
+
+ {{ tag({ text: "Checked in" }) }}
+ Undo
+
+
+
+
+
+
+
Cancel
+
+ {% endif %}
+
+ {% endset -%}
+
+ {% set allPatientContent %}
+ {{ table({
+ caption: {
+ text: "Patients",
+ classes: "nhsuk-u-visually-hidden"
+ },
+ compact: false,
+ head: [
+ {
+ text: "Time"
+ },
+ {
+ text: "Details"
+ },
+ {
+ text: "Date of birth"
+ }
+ ,
+ {
+ text: "Vaccines"
+ }
+ ,
+ {
+ text: "Contact details"
+ }
+ ,
+ {
+ text: "Actions"
+ }
+ ],
+ rows: [
+ [
+ {
+ html: "10:00am"
+ },
+ {
+ html: "Jodie Brown
912 312 3123
"
+ },
+ {
+ html: "14 April 1940
86 years old
"
+ },
+ {
+ html: "Flu"
+ },
+ {
+ html: "07588547704",
+ classes: "nhsuk-u-text-break-word"
+ },
+ {
+ html: patientActionsContent01
+ }
+ ] if data.patient != "complete"
+ ,
+ [
+ {
+ html: "10:30am"
+ },
+ {
+ html: "Margaret Green
943 876 2109
"
+ },
+ {
+ html: "2 September 1943
83 years old
"
+ },
+ {
+ html: "Flu"
+ },
+ {
+ html: "07623842424",
+ classes: "nhsuk-u-text-break-word"
+ },
+ {
+ html: patientActionsContent
+ }
+ ],
+ [
+ {
+ html: "10:40am"
+ },
+ {
+ html: "George Wilson
978 654 3210
"
+ },
+ {
+ html: "19 November 1946
79 years old
"
+ },
+ {
+ html: "Flu"
+ },
+ {
+ html: "07623913141",
+ classes: "nhsuk-u-text-break-word"
+ },
+ {
+ html: patientActionsContent
+ }
+ ],
+ [
+ {
+ html: "Walk-in"
+ },
+ {
+ html: "Alan Teapot
912 312 3123
"
+ },
+ {
+ html: "14 April 1940
86 years old
"
+ },
+ {
+ html: "Flu"
+ },
+ {
+ html: "077345813941",
+ classes: "nhsuk-u-text-break-word"
+ },
+ {
+ html: patientActionsContent
+ }
+ ] if data.walkin == "true"
+ ]
+ }) }}
+ {% endset -%}
+
+ {% set completedActionsContent %}
+
View record
+ {% endset -%}
+
+ {% set completedPatientContent %}
+ {{ table({
+ caption: {
+ text: "Patients",
+ classes: "nhsuk-u-visually-hidden"
+ },
+ compact: false,
+ head: [
+ {
+ text: "Time"
+ },
+ {
+ text: "Details"
+ },
+ {
+ text: "Date of birth"
+ }
+ ,
+ {
+ text: "Vaccines"
+ }
+ ,
+ {
+ text: "Contact details"
+ }
+ ,
+ {
+ text: "Action"
+ }
+ ],
+ rows: [
+ [
+ {
+ html: "08:30am"
+ },
+ {
+ html: "Miriam Davies
486 318 9214
"
+ },
+ {
+ html: "22 March 1941
85 years old
"
+ },
+ {
+ html: "Flu"
+ },
+ {
+ html: "07755611802",
+ classes: "nhsuk-u-text-break-word"
+ },
+ {
+ html: completedActionsContent
+ }
+ ],
+ [
+ {
+ html: "08:45am"
+ },
+ {
+ html: "John Harris
164 702 5538
"
+ },
+ {
+ html: "8 January 1940
86 years old
"
+ },
+ {
+ html: "Flu"
+ },
+ {
+ html: "07956241392",
+ classes: "nhsuk-u-text-break-word"
+ },
+ {
+ html: completedActionsContent
+ }
+ ],
+ [
+ {
+ html: "09:00am"
+ },
+ {
+ html: "Patricia Moore
245 691 7740
"
+ },
+ {
+ html: "16 July 1943
83 years old
"
+ },
+ {
+ html: "Flu"
+ },
+ {
+ html: "07214168855",
+ classes: "nhsuk-u-text-break-word"
+ },
+ {
+ html: completedActionsContent
+ }
+ ],
+ [
+ {
+ html: "09:15am"
+ },
+ {
+ html: "Christopher Evans
367 245 9921
"
+ },
+ {
+ html: "27 October 1942
84 years old
"
+ },
+ {
+ html: "Flu"
+ },
+ {
+ html: "07666548801",
+ classes: "nhsuk-u-text-break-word"
+ },
+ {
+ html: completedActionsContent
+ }
+ ],
+ [
+ {
+ html: "10:00am"
+ },
+ {
+ html: "Jodie Brown
912 312 3123
"
+ },
+ {
+ html: "14 April 1940
86 years old
"
+ },
+ {
+ html: "Flu"
+ },
+ {
+ html: "07588547704",
+ classes: "nhsuk-u-text-break-word"
+ },
+ {
+ html: completedActionsContent
+ }
+ ] if data.patient == "complete"
+ ]
+ }) }}
+ {% endset -%}
+
+ {% set cancelledPatientContent %}
+ {{ table({
+ caption: {
+ text: "Patients",
+ classes: "nhsuk-u-visually-hidden"
+ },
+ head: [
+ {
+ text: "Name and NHS number"
+ },
+ {
+ text: "Date of birth"
+ }
+ ,
+ {
+ text: "Cancellation reason"
+ }
+ ],
+ rows: [
+ [
+ {
+ html: "Harriet Wright
245 916 3341
"
+ },
+ {
+ html: "12 January 1960
66 years old
"
+ },
+ {
+ html: data.cancelReason or "Consent not given"
+ }
+ ]
+ ]
+ }) }}
+ {% endset -%}
+
+ {{ tabs({
+ items: [
+ {
+ label: "Scheduled (15)",
+ id: "patients",
+ panel: {
+ html: allPatientContent
+ }
+ } if data.status != "complete"
+ ,
+ {
+ label: "Completed (" + completedNumber +")",
+ id: "vaccinated",
+ panel: {
+ html: completedPatientContent
+ }
+ }
+ ,
+ {
+ label: "Cancelled (1)",
+ id: "cancelled",
+ panel: {
+ html: cancelledPatientContent
+ }
+ }
+ ]
+ }) }}
+
+ {{ pagination({
+ next: {
+ href: "#"
+ },
+ items: [
+ {
+ href: "#",
+ number: 1,
+ current: true
+ },
+ {
+ href: "#",
+ number: 2
+ },
+ {
+ href: "#",
+ number: 3
+ }
+ ]
+ }) }}
+
+ {% if data.status != "complete" %}
+
+ {{ button({
+ text: "End clinic",
+ href: "?status=complete",
+ variant: "warning"
+ }) }}
+
+ {% endif %}
+
+
+ Print patient list
+
+
+
+
+
+{% endblock %}
+
+{% block bodyEnd %}
+
+ {{ super() }}
+{% endblock %}
\ No newline at end of file
diff --git a/app/views/clinics/batch.html b/app/views/clinics/batch.html
new file mode 100644
index 00000000..8c20fbc7
--- /dev/null
+++ b/app/views/clinics/batch.html
@@ -0,0 +1,52 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Which batch are you using?" %}
+
+{% set currentSection = "appointments" %}
+
+{% block beforeContent %}
+{{ backLink({
+href: "javascript:window.history.back()",
+text: "Back"
+}) }}
+{% endblock %}
+
+{% block content %}
+
+{% endblock %}
diff --git a/app/views/clinics/cancel-appointment.html b/app/views/clinics/cancel-appointment.html
new file mode 100644
index 00000000..a2d56977
--- /dev/null
+++ b/app/views/clinics/cancel-appointment.html
@@ -0,0 +1,69 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Cancel" %}
+
+{% set currentSection = "appointments" %}
+
+{% block beforeContent %}
+{{ backLink({
+href: "javascript:window.history.back()",
+text: "Back"
+}) }}
+{% endblock %}
+
+{% block content %}
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/views/clinics/cancel.html b/app/views/clinics/cancel.html
new file mode 100644
index 00000000..fda8bfc8
--- /dev/null
+++ b/app/views/clinics/cancel.html
@@ -0,0 +1,72 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Cancel" %}
+
+{% set currentSection = "clinics" %}
+
+{% block beforeContent %}
+{{ backLink({
+href: "javascript:window.history.back()",
+text: "Back"
+}) }}
+{% endblock %}
+
+{% block content %}
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/views/clinics/check-so-far.html b/app/views/clinics/check-so-far.html
new file mode 100644
index 00000000..c5afb169
--- /dev/null
+++ b/app/views/clinics/check-so-far.html
@@ -0,0 +1,157 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Check recording so far" %}
+
+{% block beforeContent %}
+{{ backLink({
+href: "javascript:window.history.back()",
+text: "Back"
+}) }}
+{% endblock %}
+
+{% block content %}
+
+
+
+
+
{{ pageName }}
+
+ Patient
+
+ {{ summaryList({
+ rows: [
+ {
+ key: {
+ text: "Name"
+ },
+ value: {
+ text: "Jodie Brown"
+ },
+ actions: {
+ items: [
+
+ ]
+ }
+ },
+ {
+ key: {
+ text: "Date of birth"
+ },
+ value: {
+ html: "14 April 1940
(86 years old)"
+ },
+ actions: {
+ items: [
+
+ ]
+ }
+ },
+ {
+ key: {
+ text: "Address"
+ },
+ value: {
+ html: "73 Roman Road
Leeds
LS2 5ZN"
+ },
+ actions: {
+ items: []
+ }
+ },
+ {
+ key: {
+ text: "NHS number"
+ },
+ value: {
+ text: "912 312 3123"
+ },
+ actions: {
+ items: []
+ }
+ }
+ ]
+ }) }}
+
+ Vaccination
+
+ {{ summaryList({
+ rows: [
+ {
+ key: {
+ text: "Date"
+ },
+ value: {
+ text: "Today"
+ }
+ },
+ {
+ key: {
+ text: "Site"
+ },
+ value: {
+ text: currentOrganisation.name
+ }
+ },
+ {
+ key: {
+ text: "Vaccinator"
+ },
+ value: {
+ text: data.vaccinator or currentUser.firstName + " " + currentUser.lastName
+ },
+ actions: {
+ items: [
+ {
+ href: "#",
+ text: "Change",
+ visuallyHiddenText: "vaccinator"
+ }
+ ]
+ }
+ },
+ {
+ key: {
+ text: "Vaccine"
+ },
+ value: {
+ html: "Flu"
+ },
+ actions: {
+ items: [
+ {
+ href: "#",
+ text: "Change",
+ visuallyHiddenText: "vaccine"
+ }
+ ]
+ }
+ },
+ {
+ key: {
+ text: "Eligibility"
+ },
+ value: {
+ text: "Based on age"
+ },
+ actions: {
+ items: [
+ {
+ href: "#",
+ text: "Change",
+ visuallyHiddenText: "eligibility"
+ }
+ ]
+ }
+ }
+ ]
+ }) }}
+
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/views/clinics/check-walk-in.html b/app/views/clinics/check-walk-in.html
new file mode 100644
index 00000000..948cc647
--- /dev/null
+++ b/app/views/clinics/check-walk-in.html
@@ -0,0 +1,141 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Check walk-in vaccination" %}
+
+{% block beforeContent %}
+{{ backLink({
+href: "javascript:window.history.back()",
+text: "Back"
+}) }}
+{% endblock %}
+
+{% block content %}
+
+
+
+
+
{{ pageName }}
+
+ {# Patient
+
+ {{ summaryList({
+ rows: [
+ {
+ key: {
+ text: "Name"
+ },
+ value: {
+ text: "Alan Teapot"
+ },
+ actions: {
+ items: [
+ {
+ href: "#",
+ text: "Change",
+ visuallyHiddenText: "name"
+ }
+ ]
+ }
+ },
+ {
+ key: {
+ text: "Date of birth"
+ },
+ value: {
+ html: "14 April 1940
(86 years old)"
+ }
+ },
+ {
+ key: {
+ text: "Address"
+ },
+ value: {
+ html: "73 Roman Road
Leeds
LS2 5ZN"
+ },
+ actions: {
+ items: []
+ }
+ },
+ {
+ key: {
+ text: "NHS number"
+ },
+ value: {
+ text: "912 312 3123"
+ },
+ actions: {
+ items: []
+ }
+ }
+ ]
+ }) }} #}
+
+ Vaccination
+
+ {{ summaryList({
+ rows: [
+ {
+ key: {
+ text: "Date"
+ },
+ value: {
+ text: "Today"
+ }
+ },
+ {
+ key: {
+ text: "Site"
+ },
+ value: {
+ text: currentOrganisation.name
+ }
+ },
+ {
+ key: {
+ text: "Vaccinator"
+ },
+ value: {
+ text: data.vaccinator or currentUser.firstName + " " + currentUser.lastName
+ },
+ actions: {
+ items: [
+ {
+ href: "#",
+ text: "Change",
+ visuallyHiddenText: "vaccinator"
+ }
+ ]
+ }
+ },
+ {
+ key: {
+ text: "Vaccine"
+ },
+ value: {
+ html: data.vaccine or "Flu"
+ },
+ actions: {
+ items: [
+ {
+ href: "#",
+ text: "Change",
+ visuallyHiddenText: "vaccine"
+ }
+ ]
+ }
+ }
+ ]
+ }) }}
+
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/views/clinics/check.html b/app/views/clinics/check.html
new file mode 100644
index 00000000..c8e190b7
--- /dev/null
+++ b/app/views/clinics/check.html
@@ -0,0 +1,239 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Check and confirm" %}
+
+{% if data.scenario == "clinics" %}
+{% set currentSection = "clinics" %}
+{% set location = "Hillside Care Home" %}
+{% set eligiblity = "Resident in a care home" %}
+{% elif data.scenario == "appts" %}
+{% set location = currentOrganisation.name %}
+{% set currentSection = "appointments" %}
+{% set eligiblity = "Based on age" %}
+{% endif %}
+
+{% block beforeContent %}
+{{ backLink({
+href: "javascript:window.history.back()",
+text: "Back"
+}) }}
+{% endblock %}
+
+{% block content %}
+
+
+
+
+
{{ pageName }}
+
+ Patient
+
+ {{ summaryList({
+ rows: [
+ {
+ key: {
+ text: "Name"
+ },
+ value: {
+ text: "Jodie Brown"
+ },
+ actions: {
+ items: [
+ {
+ href: "#",
+ text: "Change",
+ visuallyHiddenText: "name"
+ }
+ ]
+ }
+ },
+ {
+ key: {
+ text: "Date of birth"
+ },
+ value: {
+ html: "14 April 1940
(86 years old)"
+ },
+ actions: {
+ items: [
+ {
+ href: "#",
+ text: "Change",
+ visuallyHiddenText: "date of birth"
+ }
+ ]
+ }
+ },
+ {
+ key: {
+ text: "Address"
+ },
+ value: {
+ html: "73 Roman Road
Leeds
LS2 5ZN"
+ },
+ actions: {
+ items: []
+ }
+ },
+ {
+ key: {
+ text: "NHS number"
+ },
+ value: {
+ text: "912 312 3123"
+ },
+ actions: {
+ items: []
+ }
+ }
+ ]
+ }) }}
+
+ Vaccination
+
+ {{ summaryList({
+ rows: [
+ {
+ key: {
+ text: "Date"
+ },
+ value: {
+ text: "Today"
+ }
+ },
+ {
+ key: {
+ text: "Site"
+ },
+ value: {
+ text: location
+ }
+ },
+ {
+ key: {
+ text: "Vaccinator"
+ },
+ value: {
+ text: data.vaccinator or currentUser.firstName + " " + currentUser.lastName
+ },
+ actions: {
+ items: [
+ {
+ href: "#",
+ text: "Change",
+ visuallyHiddenText: "vaccinator"
+ }
+ ]
+ }
+ },
+ {
+ key: {
+ text: "Vaccine"
+ },
+ value: {
+ html: "Flu
Adjuvanted Trivalent Influenza Vaccine (aTIV)"
+ },
+ actions: {
+ items: [
+ {
+ href: "#",
+ text: "Change",
+ visuallyHiddenText: "vaccine"
+ }
+ ]
+ }
+ },
+ {
+ key: {
+ text: "Batch"
+ },
+ value: {
+ html: "914-151
Expires 19 February 2028"
+ },
+ actions: {
+ items: [
+ {
+ href: "#",
+ text: "Change",
+ visuallyHiddenText: "vaccine batch"
+ }
+ ]
+ }
+ },
+ {
+ key: {
+ text: "Eligibility"
+ },
+ value: {
+ text: eligiblity
+ },
+ actions: {
+ items: [
+ {
+ href: "#",
+ text: "Change",
+ visuallyHiddenText: "eligibility"
+ }
+ ]
+ }
+ },
+ {
+ key: {
+ text: "Consent given by"
+ },
+ value: {
+ text: "Patient"
+ },
+ actions: {
+ items: [
+ {
+ href: "#",
+ text: "Change",
+ visuallyHiddenText: "consent"
+ }
+ ]
+ }
+ },
+ {
+ key: {
+ text: "Injection site"
+ },
+ value: {
+ text: "Left arm"
+ },
+ actions: {
+ items: [
+ {
+ href: "#",
+ text: "Change",
+ visuallyHiddenText: "injection site"
+ }
+ ]
+ }
+ }
+ ]
+ }) }}
+
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/views/clinics/confirmation-saved-for-later.html b/app/views/clinics/confirmation-saved-for-later.html
new file mode 100644
index 00000000..4bb36d8a
--- /dev/null
+++ b/app/views/clinics/confirmation-saved-for-later.html
@@ -0,0 +1,26 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Saved for later" %}
+
+{% if data.scenario == "clinics" %}
+{% set currentSection = "clinics" %}
+{% elif data.scenario == "appts" %}
+{% set currentSection = "appointments" %}
+{% endif %}
+
+{% block content %}
+
+
+
+
+ {{ panel({
+ titleText: pageName,
+ text: "The vaccinator can complete this record later"
+ }) }}
+
+
Return to appointments list
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/views/clinics/confirmation.html b/app/views/clinics/confirmation.html
new file mode 100644
index 00000000..223683df
--- /dev/null
+++ b/app/views/clinics/confirmation.html
@@ -0,0 +1,60 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Vaccination saved" %}
+
+{% if data.scenario == "clinics" %}
+{% set currentSection = "clinics" %}
+{% set nextPage = "/clinics/session?patient=complete" %}
+{% elif data.scenario == "appts" %}
+{% set currentSection = "appointments" %}
+{% set nextPage = "/clinics/appointments?patient=complete" %}
+{% endif %}
+
+{% block content %}
+
+
+
+
+ {{ panel({
+ titleText: pageName,
+ text: "Jodie Brown’s flu record will be sent to their GP."
+ }) }}
+
+ {{ radios({
+ fieldset: {
+ legend: {
+ text: "What would you like to record now?",
+ size: "m"
+ }
+ },
+ idPrefix: "example-hints",
+ name: "exampleHints",
+ items: [
+ {
+ value: "Jodie Brown’s next vaccination",
+ text: "Jodie Brown’s next vaccination"
+ },
+ {
+ divider: "or"
+ },
+ {
+ value: "Go to clinic list",
+ text: "Go to clinic list"
+ } if data.scenario == "clinics"
+ ,
+ {
+ value: "Go to appointments list",
+ text: "Go to appointments list"
+ } if data.scenario == "appts"
+ ]
+ }) }}
+
+ {{ button({
+ text: "Continue",
+ href: nextPage
+ }) }}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/views/clinics/consent.html b/app/views/clinics/consent.html
new file mode 100644
index 00000000..bd065f88
--- /dev/null
+++ b/app/views/clinics/consent.html
@@ -0,0 +1,71 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Who is giving consent?" %}
+
+{% if data.scenario == "clinics" %}
+{% set currentSection = "clinics" %}
+{% elif data.scenario == "appts" %}
+{% set currentSection = "appointments" %}
+{% endif %}
+
+{% block beforeContent %}
+{{ backLink({
+href: "javascript:window.history.back()",
+text: "Back"
+}) }}
+{% endblock %}
+
+{% block content %}
+
+
+
+
+ {{ radios({
+ fieldset: {
+ legend: {
+ text: pageName,
+ size: "l",
+ isPageHeading: true
+ }
+ },
+ idPrefix: "example-hints",
+ name: "exampleHints",
+ items: [
+ {
+ value: "Jodie Brown",
+ text: "Jodie Brown"
+ },
+ {
+ divider: "or"
+ },
+ {
+ value: "Clinician acting in the patient’s best interests",
+ text: "Clinician acting in the patient’s best interests"
+ },
+ {
+ value: "Person with lasting power of attorney for health and welfare",
+ text: "Person with lasting power of attorney for health and welfare"
+ },
+ {
+ value: "Parent or guardian",
+ text: "Parent or guardian"
+ },
+ {
+ value: "Independent mental capacity advocate",
+ text: "Independent mental capacity advocate" },
+ {
+ value: "Court appointed deputy",
+ text: "Court appointed deputy"
+ }
+ ]
+ }) }}
+
+ {{ button({
+ text: "Continue",
+ href: "injection-site"
+ }) }}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/views/clinics/create.html b/app/views/clinics/create.html
new file mode 100644
index 00000000..d7bddd13
--- /dev/null
+++ b/app/views/clinics/create.html
@@ -0,0 +1,86 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Create clinic" %}
+
+{% set currentSection = "clinics" %}
+
+{% block beforeContent %}
+
+{{ backLink({
+href: "javascript:window.history.back()",
+text: "Back"
+}) }}
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+
{{ pageName }}
+
+
Choose if you want to set a date, location, vaccinator or other defaults that apply to all vaccinations given during this clinic.
+
+ {{ input({
+ label: {
+ text: "Clinic name"
+ },
+ id: "example-with-hint-text",
+ name: "exampleWithHintText",
+ width: 20
+ }) }}
+
+ {{ checkboxes({
+ fieldset: {
+ legend: {
+ text: "Set defaults"
+ }
+ },
+ idPrefix: "example",
+ name: "example",
+ items: [
+ {
+ value: "Date",
+ text: "Date"
+ },
+ {
+ value: "Location",
+ text: "Location"
+ },
+ {
+ value: "Vaccinator",
+ text: "Vaccinator"
+ },
+ {
+ value: "Vaccine",
+ text: "Vaccine"
+ },
+ {
+ value: "Vaccine product",
+ text: "Vaccine product"
+ },
+ {
+ value: "Batch",
+ text: "Batch"
+ },
+ {
+ value: "Eligibility",
+ text: "Eligibility"
+ },
+ {
+ value: "Consent",
+ text: "Consent"
+ }
+ ]
+ }) }}
+
+ {{ button({
+ text: "Continue",
+ href: "/clinics/add-patients"
+ }) }}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/views/clinics/eligibility.html b/app/views/clinics/eligibility.html
new file mode 100644
index 00000000..22614251
--- /dev/null
+++ b/app/views/clinics/eligibility.html
@@ -0,0 +1,86 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Why are you giving them the flu vaccine?" %}
+
+{% set currentSection = "appointments" %}
+
+{% block beforeContent %}
+{{ backLink({
+href: "javascript:window.history.back()",
+text: "Back"
+}) }}
+{% endblock %}
+
+{% block content %}
+
+{% endblock %}
diff --git a/app/views/clinics/index.html b/app/views/clinics/index.html
new file mode 100644
index 00000000..c18b526e
--- /dev/null
+++ b/app/views/clinics/index.html
@@ -0,0 +1,200 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Clinics" %}
+
+{% set currentSection = "clinics" %}
+
+{% block content %}
+
+
+
+
+
{{ pageName }}
+
+
+
To save time when you record vaccinations, you can set up a clinic with default answers for a group of patients.
+
+
+ {{ button({
+ text: "Create clinic",
+ href: "/clinics/create"
+ }) }}
+
+ {% set actionsContent %}
+
+
+
+
+ {% endset -%}
+
+ {% set completedActionsContent %}
+
+ {% endset -%}
+
+ {% set upcomingContent %}
+ {{ table({
+ caption: {
+ text: "Existing clinics",
+ classes: "nhsuk-u-visually-hidden"
+ },
+ head: [
+ {
+ text: "Name"
+ },
+ {
+ text: "Date"
+ },
+ {
+ text: "Location"
+ },
+ {
+ text: "Patients"
+ },
+ {
+ text: "Actions"
+ }
+ ],
+ rows: [
+ [
+ {
+ text: "Hillside Care home - Flu over 75s"
+ },
+ {
+ text: "30 October 2026"
+ },
+ {
+ text: "Hillside Care Home"
+ },
+ {
+ text: "49"
+ },
+ {
+ html: actionsContent
+ }
+ ]
+ ,
+ [
+ {
+ text: "Oaklands care home - Covid"
+ },
+ {
+ text: "22 November 2026"
+ },
+ {
+ text: "Oaklands Residential Home"
+ },
+ {
+ text: "36"
+ },
+ {
+ html: actionsContent
+ }
+ ]
+ ,
+ [
+ {
+ text: "Housebound patients Meadowbrook list"
+ },
+ {
+ text: "5 December 2026 to 6 December 2026"
+ },
+ {
+ text: "Meadowbrook Care Centre"
+ },
+ {
+ text: "58"
+ },
+ {
+ html: actionsContent
+ }
+ ]
+ ]
+ }) }}
+ {% endset -%}
+
+ {% set completedContent %}
+ {{ table({
+ caption: {
+ text: "Completed clinics",
+ classes: "nhsuk-u-visually-hidden"
+ },
+ head: [
+ {
+ text: "Name"
+ },
+ {
+ text: "Date"
+ },
+ {
+ text: "Location"
+ },
+ {
+ text: "Patients"
+ },
+ {
+ text: "Action"
+ }
+ ],
+ rows: [
+ [
+ {
+ text: "Willowbrook GP Flu clinic"
+ },
+ {
+ text: "18 September 2026"
+ },
+ {
+ text: "Willowbrook Medical Centre"
+ },
+ {
+ text: "72"
+ },
+ {
+ html: completedActionsContent
+ }
+ ],
+ [
+ {
+ text: "Ashfield Care Home Covid vaccination"
+ },
+ {
+ text: "9 August 2026"
+ },
+ {
+ text: "Ashfield Residential Home"
+ },
+ {
+ text: "41"
+ },
+ {
+ html: completedActionsContent
+ }
+ ]
+ ]
+ }) }}
+ {% endset -%}
+
+ {{ tabs({
+ items: [
+ {
+ label: "Scheduled (3)",
+ id: "upcoming",
+ panel: {
+ html: upcomingContent
+ }
+ }
+ ,
+ {
+ label: "Completed (2)",
+ id: "completed",
+ panel: {
+ html: completedContent
+ }
+ }
+ ]
+ }) }}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/views/clinics/injection-site.html b/app/views/clinics/injection-site.html
new file mode 100644
index 00000000..b45b762f
--- /dev/null
+++ b/app/views/clinics/injection-site.html
@@ -0,0 +1,60 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Where was the injection given?" %}
+
+{% if data.scenario == "clinics" %}
+{% set currentSection = "clinics" %}
+{% elif data.scenario == "appts" %}
+{% set currentSection = "appointments" %}
+{% endif %}
+
+{% block beforeContent %}
+{{ backLink({
+href: "javascript:window.history.back()",
+text: "Back"
+}) }}
+{% endblock %}
+
+{% block content %}
+
+
+
+
+ {{ radios({
+ fieldset: {
+ legend: {
+ text: pageName,
+ size: "l",
+ isPageHeading: true
+ }
+ },
+ idPrefix: "example-hints",
+ name: "exampleHints",
+ items: [
+ {
+ value: "Left arm",
+ text: "Left arm"
+ },
+ {
+ value: "Right arm",
+ text: "Right arm"
+ },
+ {
+ divider: "or"
+ },
+ {
+ value: "Somewhere else",
+ text: "Somewhere else"
+ }
+ ]
+ }) }}
+
+ {{ button({
+ text: "Continue",
+ href: "check"
+ }) }}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/views/clinics/patient-history.html b/app/views/clinics/patient-history.html
new file mode 100644
index 00000000..e10307bd
--- /dev/null
+++ b/app/views/clinics/patient-history.html
@@ -0,0 +1,266 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Check the patient's details" %}
+
+{% if data.scenario == "clinics" %}
+{% set currentSection = "clinics" %}
+{% set nextPage = "/clinics/consent" %}
+{% elif data.scenario == "appts" %}
+{% set currentSection = "appointments" %}
+{% set nextPage = "/clinics/vaccine" %}
+{% endif %}
+
+{% if data.vaccine %}
+{% set nextPage = "/clinics/check-walk-in" %}
+{% endif %}
+
+{% if data.recording == "start" and data.vaccinator and data.vaccine %}
+{% set nextPage = "/clinics/eligibility" %}
+{% elif data.recording == "start" and data.vaccinator %}
+{% set nextPage = "/clinics/vaccine" %}
+{% elif data.recording == "start" %}
+{% set nextPage = "/clinics/vaccinator" %}
+{% endif %}
+
+{% if data.recording == "walkin" %}
+{% set patientName = "Alan Teapot" %}
+{% else %}
+{% set patientName = "Jodie Brown" %}
+{% endif %}
+
+{% block beforeContent %}
+{{ backLink({
+href: "javascript:window.history.back()",
+text: "Back"
+}) }}
+{% endblock %}
+
+{% block content %}
+
+
+
+
Check {{ patientName }}’s details and vaccination history
+
+ {{ summaryList({
+ rows: [
+ {
+ key: {
+ text: "Name"
+ },
+ value: {
+ text: patientName
+ }
+ },
+ {
+ key: {
+ text: "Date of birth"
+ },
+ value: {
+ html: "14 April 1940
86 years old
"
+ }
+ },
+ {
+ key: {
+ text: "Address"
+ },
+ value: {
+ html: "73 Roman Road
Leeds
LS2 5ZN"
+ }
+ },
+ {
+ key: {
+ text: "NHS number"
+ },
+ value: {
+ text: "912 312 3123"
+ }
+ }
+ ,
+ {
+ key: {
+ text: "GP surgery"
+ },
+ value: {
+ html: "Beech House surgery
1 Ash Tree Road
Knaresborough
HG5 0UB"
+ }
+ }
+ ]
+ }) }}
+
+
Vaccination history
+
+ {% set insetTextHtml %}
+
This shows NHS vaccinations given in England. It includes all vaccinations recorded in RAVS but only some recorded in other systems.
+ {% endset %}
+
+ {{ insetText({
+ html: insetTextHtml,
+ classes: "nhsuk-u-padding-top-2 nhsuk-u-padding-bottom-2 nhsuk-u-margin-top-2 nhsuk-u-margin-bottom-4"
+ }) }}
+
+
+
+
+
+
+
+ {{ table({
+ panel: false,
+ caption: "",
+ firstCellIsHeader: false,
+ head: [
+ {
+ text: "Date"
+ },
+ {
+ text: "Vaccine"
+ },
+ {
+ text: "Product"
+ }
+ ],
+ rows: [
+ [
+ {
+ text: "15 April 2025"
+ },
+ {
+ text: "COVID-19"
+ },
+ {
+ text: "Spikevax JN.1"
+ }
+ ],
+ [
+ {
+ text: "11 November 2024"
+ },
+ {
+ text: "RSV"
+ },
+ {
+ text: "Abrysvo"
+ }
+ ],
+ [
+ {
+ text: "9 November 2024"
+ },
+ {
+ text: "MMR (2nd dose)"
+ },
+ {
+ text: "Priorix"
+ }
+ ],
+ [
+ {
+ text: "29 October 2024"
+ },
+ {
+ text: "Pneumococcal"
+ },
+ {
+ text: "Pneumovax"
+ }
+ ],
+ [
+ {
+ text: "25 October 2024"
+ },
+ {
+ text: "Flu (1st dose)"
+ },
+ {
+ text: "Adjuvanted Quadrivalent Influenza Vaccine (aQIV)"
+ }
+ ],
+ [
+ {
+ text: "15 October 2023"
+ },
+ {
+ text: "COVID-19"
+ },
+ {
+ text: "Comirnaty 30 Omicron XBB.1.5"
+ }
+ ],
+ [
+ {
+ text: "10 October 2023"
+ },
+ {
+ text: "Flu"
+ },
+ {
+ text: "Not known",
+ classes: "nhsuk-u-secondary-text-color"
+ }
+ ],
+ [
+ {
+ text: "7 October 2023"
+ },
+ {
+ text: "Pertussis"
+ },
+ {
+ text: "Boostrix-IPV suspension"
+ }
+ ],
+ [
+ {
+ text: "11 March 2022"
+ },
+ {
+ text: "COVID-19"
+ },
+ {
+ text: "Moderna mRNA (Spikevax) Original"
+ }
+ ],
+ [
+ {
+ text: "4 December 2023"
+ },
+ {
+ text: "MMR"
+ },
+ {
+ text: "Priorix"
+ }
+ ]
+ ]
+ }) }}
+
+ {{ pagination({
+ next: {
+ href: "#"
+ },
+ items: [
+ {
+ href: "#",
+ number: 1,
+ current: true
+ },
+ {
+ href: "#",
+ number: 2
+ },
+ {
+ href: "#",
+ number: 3
+ }
+ ]
+ }) }}
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/views/clinics/patient-search.html b/app/views/clinics/patient-search.html
new file mode 100644
index 00000000..9f1c2353
--- /dev/null
+++ b/app/views/clinics/patient-search.html
@@ -0,0 +1,90 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Search for the patient" %}
+
+{% set currentSection = "appointments" %}
+
+{% block beforeContent %}
+{{ backLink({
+href: "javascript:window.history.back()",
+text: "Back"
+}) }}
+{% endblock %}
+
+{% block content %}
+
+
+
+
Search for the patient
+
+
Make sure the details you enter match those registered with the patient’s GP.
+
+
+
+
+
+{% endblock %}
diff --git a/app/views/clinics/patient.html b/app/views/clinics/patient.html
new file mode 100644
index 00000000..7be8caac
--- /dev/null
+++ b/app/views/clinics/patient.html
@@ -0,0 +1,68 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Do you have the patient’s NHS number?" %}
+
+{% set currentSection = "appointments" %}
+
+{% block beforeContent %}
+{{ backLink({
+href: "javascript:window.history.back()",
+text: "Back"
+}) }}
+{% endblock %}
+
+{% block content %}
+
+{% endblock %}
diff --git a/app/views/clinics/session.html b/app/views/clinics/session.html
new file mode 100644
index 00000000..50b35e4f
--- /dev/null
+++ b/app/views/clinics/session.html
@@ -0,0 +1,399 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Hillside Care home - Flu over 75s" %}
+
+{% set sessionLocation = "Hillside Care Home" %}
+
+{% set currentSection = "clinics" %}
+
+{% if data.status == "complete" %}
+{% set completedNumber = "48" %}
+{% else %}
+{% set completedNumber = "33" %}
+{% endif %}
+
+{% block beforeContent %}
+
+{{ backLink({
+href: "javascript:window.history.back()",
+text: "Back"
+}) }}
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+
{{ pageName }}
+
+ {{ summaryList({
+ rows: [
+ {
+ key: {
+ text: "Date"
+ },
+ value: {
+ text: "30 October 2026"
+ }
+ }
+ ,
+ {
+ key: {
+ text: "Location"
+ },
+ value: {
+ text: sessionLocation
+ }
+ },
+ {
+ key: {
+ text: "Vaccinator"
+ },
+ value: {
+ text: currentUser.firstName + " " + currentUser.lastName
+ }
+ },
+ {
+ key: {
+ text: "Vaccine"
+ },
+ value: {
+ html: "Flu
Adjuvanted Trivalent Influenza Vaccine (aTIV)
914-151"
+ }
+ },
+ {
+ key: {
+ text: "Eligibility"
+ },
+ value: {
+ text: "Resident in a care home"
+ }
+ }
+
+ ]
+ }) }}
+
+
+
+
+
+
+
+
+
+ {% if data.status == "complete" %}
+
+ {% else %}
+
+ {{ button({
+ text: "Edit clinic",
+ variant: "secondary",
+ href: "/clinics/create"
+ }) }}
+
+ {{ button({
+ text: "Add patients",
+ variant: "secondary",
+ href: "/clinics/add-patients"
+ }) }}
+
+ {% endif %}
+
+
+
+
+
+
+
+
+
+ {% set patientActionsContent %}
+
+
+
+ {% endset -%}
+
+ {% set completedActionsContent %}
+
+
View record
+
+ {% endset -%}
+
+ {% set allPatientContent %}
+ {{ table({
+ caption: {
+ text: "Patients",
+ classes: "nhsuk-u-visually-hidden"
+ },
+ head: [
+ {
+ text: "Name and NHS number"
+ },
+ {
+ text: "Date of birth"
+ }
+ ,
+ {
+ text: "Actions"
+ }
+ ],
+ rows: [
+ [
+ {
+ html: "Jodie Brown
912 312 3123
"
+ },
+ {
+ html: "14 April 1940
86 years old
"
+ },
+ {
+ html: patientActionsContent
+ }
+ ] if data.patient != "complete"
+ ,
+ [
+ {
+ html: "Margaret Green
943 876 2109
"
+ },
+ {
+ html: "2 September 1943
83 years old
"
+ },
+ {
+ html: patientActionsContent
+ }
+ ],
+ [
+ {
+ html: "George Wilson
978 654 3210
"
+ },
+ {
+ html: "19 November 1946
79 years old
"
+ },
+ {
+ html: patientActionsContent
+ }
+ ],
+ [
+ {
+ html: "Evelyn Carter
621 874 3056
"
+ },
+ {
+ html: "7 June 1938
88 years old
"
+ },
+ {
+ html: patientActionsContent
+ }
+ ],
+ [
+ {
+ html: "Arthur Bennett
584 207 9163
"
+ },
+ {
+ html: "23 January 1945
81 years old
"
+ },
+ {
+ html: patientActionsContent
+ }
+ ]
+ ]
+ }) }}
+ {% endset -%}
+
+ {% set completedPatientContent %}
+ {{ table({
+ caption: {
+ text: "Completed patients",
+ classes: "nhsuk-u-visually-hidden"
+ },
+ head: [
+ {
+ text: "Name and NHS number"
+ },
+ {
+ text: "Date of birth"
+ }
+ ,
+ {
+ text: "Action"
+ }
+ ],
+ rows: [
+ [
+ {
+ html: "Jodie Brown
912 312 3123
"
+ },
+ {
+ html: "14 April 1940
86 years old
"
+ },
+ {
+ html: completedActionsContent
+ }
+ ] if data.patient == "complete"
+ ,
+ [
+ {
+ html: "Claire Thompson
482 194 8651
"
+ },
+ {
+ html: "12 January 1939
87 years old
"
+ },
+ {
+ html: completedActionsContent
+ }
+ ],
+ [
+ {
+ html: "Donald Walsh
764 953 1185
"
+ },
+ {
+ html: "28 May 1942
84 years old
"
+ },
+ {
+ html: completedActionsContent
+ }
+ ],
+ [
+ {
+ html: "Maureen Patel
318 642 9076
"
+ },
+ {
+ html: "4 July 1941
85 years old
"
+ },
+ {
+ html: completedActionsContent
+ }
+ ],
+ [
+ {
+ html: "Thomas Hughes
852 317 6649
"
+ },
+ {
+ html: "17 October 1937
89 years old
"
+ },
+ {
+ html: completedActionsContent
+ }
+ ],
+ [
+ {
+ html: "Sylvia Adams
475 603 2248
"
+ },
+ {
+ html: "3 February 1944
82 years old
"
+ },
+ {
+ html: completedActionsContent
+ }
+ ]
+ ]
+ }) }}
+ {% endset -%}
+
+ {% set cancelledPatientContent %}
+ {{ table({
+ caption: {
+ text: "Patients",
+ classes: "nhsuk-u-visually-hidden"
+ },
+ head: [
+ {
+ text: "Name and NHS number"
+ },
+ {
+ text: "Date of birth"
+ }
+ ,
+ {
+ text: "Cancellation reason"
+ }
+ ],
+ rows: [
+ [
+ {
+ html: "Harriet Wright
245 916 3341
"
+ },
+ {
+ html: "12 January 1960
66 years old
"
+ },
+ {
+ html: data.cancelReason or "Consent not given"
+ }
+ ]
+ ]
+ }) }}
+ {% endset -%}
+
+ {{ tabs({
+ items: [
+ {
+ label: "Scheduled (15)",
+ id: "patients",
+ panel: {
+ html: allPatientContent
+ }
+ } if data.status!="complete"
+ ,
+ {
+ label: "Completed (" + completedNumber +")",
+ id: "vaccinated",
+ panel: {
+ html: completedPatientContent
+ }
+ }
+ ,
+ {
+ label: "Cancelled (1)",
+ id: "cancelled",
+ panel: {
+ html: cancelledPatientContent
+ }
+ }
+ ]
+ }) }}
+
+ {{ pagination({
+ next: {
+ href: "#"
+ },
+ items: [
+ {
+ href: "#",
+ number: 1,
+ current: true
+ },
+ {
+ href: "#",
+ number: 2
+ },
+ {
+ href: "#",
+ number: 3
+ }
+ ]
+ }) }}
+
+ {% if data.status == "insession" %}
+
+ {{ button({
+ text: "End clinic",
+ href: "?status=complete",
+ variant: "warning"
+ }) }}
+
+ {% endif %}
+
+
+ Print patient list
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/views/clinics/vaccinator-today.html b/app/views/clinics/vaccinator-today.html
new file mode 100644
index 00000000..580de257
--- /dev/null
+++ b/app/views/clinics/vaccinator-today.html
@@ -0,0 +1,56 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Set today’s vaccinator" %}
+
+{% set currentSection = "appointments" %}
+
+{% block beforeContent %}
+{{ backLink({
+href: "javascript:window.history.back()",
+text: "Back"
+}) }}
+{% endblock %}
+
+{% block content %}
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/views/clinics/vaccinator.html b/app/views/clinics/vaccinator.html
new file mode 100644
index 00000000..44886c13
--- /dev/null
+++ b/app/views/clinics/vaccinator.html
@@ -0,0 +1,56 @@
+{% extends 'layout.html' %}
+
+
+{# {% set pageName = "Set today’s vaccinator" %} #}
+
+{% set pageName = "Who is the vaccinator?" %}
+
+{% set currentSection = "appointments" %}
+
+{% block beforeContent %}
+{{ backLink({
+href: "javascript:window.history.back()",
+text: "Back"
+}) }}
+{% endblock %}
+
+{% block content %}
+
+
+
+
+ {{ radios({
+ fieldset: {
+ legend: {
+ text: pageName,
+ size: "l",
+ isPageHeading: true
+ }
+ },
+ idPrefix: "example-hints",
+ name: "exampleHints",
+ items: [
+ {
+ value: "Me" + currentUser.firstName + " " + currentUser.lastName,
+ text: "Me (" + currentUser.firstName + " " + currentUser.lastName + ")"
+ },
+ {
+ value: "Grady Campos (grady.campos@nhs.net)",
+ text: "Grady Campos (grady.campos@nhs.net)"
+ },
+ {
+ value: "Nina Hunt (nina.hunt@nhs.net)",
+ text: "Nina Hunt (nina.hunt@nhs.net)"
+ }
+ ]
+ }) }}
+
+ {{ button({
+ text: "Continue",
+ href: "vaccine"
+ }) }}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/views/clinics/vaccine-product.html b/app/views/clinics/vaccine-product.html
new file mode 100644
index 00000000..143de35e
--- /dev/null
+++ b/app/views/clinics/vaccine-product.html
@@ -0,0 +1,44 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Which vaccine product?" %}
+
+{% set currentSection = "appointments" %}
+
+{% block beforeContent %}
+{{ backLink({
+href: "javascript:window.history.back()",
+text: "Back"
+}) }}
+{% endblock %}
+
+{% block content %}
+
+{% endblock %}
diff --git a/app/views/clinics/vaccine-today.html b/app/views/clinics/vaccine-today.html
new file mode 100644
index 00000000..7198aa11
--- /dev/null
+++ b/app/views/clinics/vaccine-today.html
@@ -0,0 +1,53 @@
+{% extends 'layout.html' %}
+
+{% set pageName = " Set today's vaccine" %}
+
+{% set currentSection = "appointments" %}
+
+{% block beforeContent %}
+ {{ backLink({
+href: "javascript:window.history.back()",
+text: "Back"
+}) }}
+{% endblock %}
+
+{% block content %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/views/clinics/vaccine.html b/app/views/clinics/vaccine.html
new file mode 100644
index 00000000..8bfb6861
--- /dev/null
+++ b/app/views/clinics/vaccine.html
@@ -0,0 +1,69 @@
+{% extends 'layout.html' %}
+
+{% set pageName = "Which vaccine?" %}
+
+{% set currentSection = "appointments" %}
+
+{% if data.recording == "walkin" %}
+{% set nextPage = "check-walk-in" %}
+{% else %}
+{% set nextPage = "eligibility" %}
+{% endif %}
+
+{% block beforeContent %}
+{{ backLink({
+href: "javascript:window.history.back()",
+text: "Back"
+}) }}
+{% endblock %}
+
+{% block content %}
+
+{% endblock %}
diff --git a/app/views/includes/header.html b/app/views/includes/header.html
index 9c9fafd6..14407ba8 100644
--- a/app/views/includes/header.html
+++ b/app/views/includes/header.html
@@ -8,7 +8,13 @@
{% if currentUser and not (currentOrganisation.type === "Region") %}
- {% if canShowAppointments %}
+ {% if canShowAppointments and data.scenario == "appts" %}
+ {% set navigationItems = (navigationItems.push({
+ href: "/clinics/appointments",
+ html: "Appointments New",
+ active: (currentSection == "appointments") or ((not currentSection) and (defaultMainSection == "appointments"))
+ }), navigationItems) %}
+ {% elif canShowAppointments and data.scenario != "clinics" %}
{% set navigationItems = (navigationItems.push({
href: "/appointments",
html: "Appointments New",
@@ -25,6 +31,15 @@
}), navigationItems) %}
{% endif %}
+
+ {% if data.scenario == "clinics" %}
+ {% set navigationItems = (navigationItems.push({
+ href: "/clinics/",
+ text: "Clinics",
+ active: (currentSection == "clinics")
+ }), navigationItems) %}
+ {% endif %}
+
{% set navigationItems = (navigationItems.push({
href: "/home/",
diff --git a/app/views/index.html b/app/views/index.html
index 641c4600..3c3c2d98 100755
--- a/app/views/index.html
+++ b/app/views/index.html
@@ -257,6 +257,33 @@ Regions interface
+ Clinics
+
+
+ -
+ {{ card({
+ heading: {
+ text: "Care home clinic",
+ size: "m"
+ },
+ href: "/prototype-setup/quick-access/clinics?next=/clinics/",
+ clickable: true,
+ variant: "primary"
+ }) }}
+
+ -
+ {{ card({
+ heading: {
+ text: "Pharmacy appointments",
+ size: "m"
+ },
+ href: "/prototype-setup/quick-access/pharmacy?next=/clinics/appointments?scenario=appts&status=insession",
+ clickable: true,
+ variant: "primary"
+ }) }}
+
+
+
Error pages