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" %} + + + + {% endif %} + + {% set patientActionsContent01 %} + + {% if data.status == "complete" %} + View record + {% else %} + +
+ + {{ button({ + text: "Check-in", + small: true, + variant: "secondary", + attributes: { + "data-check-in": "true" + } + }) }} + + + +
+ +
+ {% if data.eligibility %} + Continue recording + {% else %} + Start recording + {% endif %} +
+ + 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" + } + }) }} + + + +
+ + + + 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 %} +
+
+ +
+ {{ radios({ + idPrefix: "batch", + name: "batch", + fieldset: { + legend: { + text: pageName, + size: "l", + isPageHeading: true + } + }, + items: [ + { + value: "914-151", + text: "914-151", + hint: "Expires 19 February 2028" + }, + { + divider: "or" + }, + { + value: "Add a batch", + text: "Add a batch" + } + ] + }) }} + + {{ button({ + text: "Continue" + }) }} +
+ +
+
+{% 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 %} + +
+
+ +
+ + {{ radios({ + fieldset: { + legend: { + text: pageName, + size: "l", + isPageHeading: true + } + }, + idPrefix: "cancel-reason", + name: "cancelReason", + items: [ + { + value: "Consent not given", + text: "Consent not given" + }, + { + value: "Patient declined vaccination", + text: "Patient declined vaccination" + }, + { + value: "Patient unwell", + text: "Patient unwell" + }, + { + value: "Vaccination not suitable", + text: "Vaccination not suitable", + hint: "Medically contra-indindicated, for example patient has allergy or previous reaction" + }, + { + value: "Not eligible", + text: "Not eligible" + }, + { + value: "Already vaccinated", + text: "Already vaccinated" + } + ] + }) }} + + {{ button({ + text: "Cancel", + variant: "warning" + }) }} +
+ +
+
+ +{% 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 %} + +
+
+ +
+ {{ radios({ + fieldset: { + legend: { + text: pageName, + size: "l", + isPageHeading: true + } + }, + idPrefix: "cancel-reason", + name: "cancelReason", + items: [ + { + value: "Consent not given", + text: "Consent not given" + }, + { + value: "Patient declined vaccination", + text: "Patient declined vaccination" + }, + { + value: "Patient unwell", + text: "Patient unwell" + }, + { + value: "Vaccination not suitable", + text: "Vaccination not suitable", + hint: "Medically contra-indindicated, for example patient has allergy or previous reaction" + }, + { + value: "Not eligible", + text: "Not eligible" + }, + { + value: "Patient has died", + text: "Patient has died" + }, + { + value: "Already vaccinated", + text: "Already vaccinated" + } + ] + }) }} + + {{ button({ + text: "Cancel", + variant: "warning" + }) }} +
+ +
+
+ +{% 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" + } + ] + } + } + ] + }) }} + +
+ {{ button({ + text: "Continue" + }) }} +
+ +
+
+ +{% 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" + } + ] + } + } + ] + }) }} + +
+ + {{ button({ + text: "Add walk-in" + }) }} + +
+ +
+
+ +{% 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" + } + ] + } + } + ] + }) }} + +
+ {{ textarea({ + name: "notes", + id: "notes", + label: { + text: "Optional note" + }, + hint: { + text: "This will not be sent to the patient's GP. Only your organisation will see it." + }, + rows: 3, + classes: "nhsuk-u-margin-bottom-7" + }) }} + + {{ button({ + text: "Confirm and save" + }) }} +
+ +
+
+ +{% 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 %} +
+
+ +
+ {{ radios({ + idPrefix: "eligibility", + name: "eligibility", + fieldset: { + legend: { + text: pageName, + size: "l", + isPageHeading: true + } + }, + items: [ + { + value: "Based on age", + text: "Based on age" + }, + { + value: "Healthcare worker", + text: "Healthcare worker" + }, + { + value: "Pregnant", + text: "Pregnant" + }, + { + value: "In a clinical risk group", + text: "In a clinical risk group" + }, + { + value: "Resident in a care home", + text: "Resident in a care home" + }, + { + value: "Carer", + text: "Carer" + }, + { + value: "Household contact of someone immunosuppressed", + text: "Household contact of someone immunosuppressed" + }, + { + value: "Social care worker", + text: "Social care worker" + }, + { + value: "Homeless", + text: "Homeless" + } + ] + }) }} + +
+ + {{ button({ + text: "Continue" + }) }} + + {{ button({ + text: "Save and return", + variant: "secondary", + href:"#" + }) }} + +
+
+ +
+
+{% 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 %} + + +
Edit
+ + {% endset -%} + + {% set completedActionsContent %} +
View
+ {% 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 + } + ] + }) }} + +
+ {{ button({ + text: "Continue" + }) }} +
+ +
+
+{% 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.

+ +
+ {{ input({ + label: { + text: "First name" + }, + id: "firstName", + name: "firstName", + classes: "nhsuk-input--width-20" + }) }} + + {{ input({ + label: { + text: "Last name" + }, + id: "lastName", + name: "lastName", + classes: "nhsuk-input--width-20" + }) }} + + {{ dateInput({ + id: "dateOfBirth", + namePrefix: "dateOfBirth", + fieldset: { + legend: { + text: "Date of birth", + classes: "" + } + }, + hint: { + text: "For example, 15 3 1984" + }, + items: [ + { + name: "day", + classes: "nhsuk-input--width-2" + }, + { + name: "month", + classes: "nhsuk-input--width-2" + }, + { + name: "year", + classes: "nhsuk-input--width-4" + } + ] + }) }} + + {{ input({ + label: { + text: "Postcode (optional)" + }, + id: "postcode", + name: "postcode", + classes: "nhsuk-input--width-10" + }) }} + + {{ details({ + summaryText: "If the patient is homeless", + html: "

Try searching with the postcode ZZ99 3VZ.

" + }) }} + + {{ button({ + text: "Search" + }) }} +
+ +
+
+{% 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 %} +
+
+ +
+ {% set nhsNumberHtml %} + {{ input({ + id: "nhs-number", + name: "nhsNumber", + classes: "nhsuk-input--width-10 nhsuk-input--code", + inputmode: "numeric", + label: { + text: "NHS number", + size: "s" + }, + hint: { + text: "For example, 999 123 4567" + } + }) }} + {% endset %} + + {{ radios({ + idPrefix: "nhs-number-known", + name: "nhsNumberKnown", + fieldset: { + legend: { + text: "Do you have the patient’s NHS number?", + size: "l", + isPageHeading: true + } + }, + items: [ + { + value: "yes", + text: "Yes", + checked: true, + conditional: { + html: nhsNumberHtml + } + }, + { + value: "no", + text: "No" + } + ] + }) }} + + {{ button({ + text: "Continue" + }) }} +
+ +
+
+{% 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 %} + +
+ + Record + + Cancel + +
+ + {% 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 %} + +
+
+ +
+ + {{ radios({ + fieldset: { + legend: { + text: pageName, + size: "l", + isPageHeading: true + } + }, + idPrefix: "vaccinator", + name: "vaccinator", + items: [ + { + value: 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" + }) }} + +
+ +
+
+ +{% 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 %} +
+
+ +
+ {{ radios({ + idPrefix: "vaccine-product", + name: "vaccine-product", + fieldset: { + legend: { + text: pageName, + size: "l", + isPageHeading: true + } + }, + items: [ + { + value: "Adjuvanted Trivalent Influenza Vaccine (aTIV)", + text: "Adjuvanted Trivalent Influenza Vaccine (aTIV)" + } + ] + }) }} + + {{ button({ + text: "Continue" + }) }} +
+ +
+
+{% 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 %} +
+
+ +
+ {{ radios({ + idPrefix: "vaccine", + name: "vaccine", + fieldset: { + legend: { + text: pageName, + size: "l", + isPageHeading: true + } + }, + items: [ + { + value: "COVID-19", + text: "COVID-19" + }, + { + value: "Flu", + text: "Flu" + }, + { + value: "RSV", + text: "RSV" + } + ] + }) }} + + {{ button({ + text: "Continue" + }) }} + +
+ +
+
+{% 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 %} +
+
+ +
+ {{ radios({ + idPrefix: "vaccine", + name: "vaccine", + fieldset: { + legend: { + text: pageName, + size: "l", + isPageHeading: true + } + }, + items: [ + { + value: "COVID-19", + text: "COVID-19" + }, + { + value: "Flu", + text: "Flu" + }, + { + value: "RSV", + text: "RSV" + } + ] + }) }} + +
+ + {{ button({ + text: "Continue" + }) }} + + {# {{ button({ + text: "Save for later", + variant: "secondary", + href:"#" + }) }} #} + +
+ +
+ +
+
+{% 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

+ + +

Error pages