diff --git a/app/views/index.html b/app/views/index.html index 5bcb294..f528709 100755 --- a/app/views/index.html +++ b/app/views/index.html @@ -46,22 +46,25 @@

MVP: Occupational health


+

Post MVP features

+ +
- Post MVP features + Experimental features
-

Post MVP features

-

Clinics / sessions

-

Research journey 1

diff --git a/app/views/invites/_bereavement-warning.html b/app/views/invites/_bereavement-warning.html new file mode 100644 index 0000000..a7d67e7 --- /dev/null +++ b/app/views/invites/_bereavement-warning.html @@ -0,0 +1,7 @@ +{{ warningCallout({ + heading: "Important", + headingLevel: 2, + html: + "

Please check that you have not included anyone who has recently had a termination, miscarriage or baby loss.

+

Read full guidance (opens in new tab)

" +}) }} diff --git a/app/views/invites/_filtered-patient-list.html b/app/views/invites/_filtered-patient-list.html new file mode 100644 index 0000000..7aceb77 --- /dev/null +++ b/app/views/invites/_filtered-patient-list.html @@ -0,0 +1,40 @@ +{{ summaryList({ + card: { + heading: "Filtered patient list", + headingSize: "m", + actions: { + items: [ + { + text: "Edit", + href: "#" + } + ] + } + }, + rows: [ + { + key: { + text: "Patients" + }, + value: { + text: "354" + } + }, + { + key: { + text: "Filters" + }, + value: { + html: "RSV status: Eligible
Weeks pregnant: 20 weeks" + } + }, + { + key: { + text: "Excluded" + }, + value: { + html: "22 patients have no mobile number" + } + } + ] + }) }} \ No newline at end of file diff --git a/app/views/invites/_upload-date.html b/app/views/invites/_upload-date.html new file mode 100644 index 0000000..7d5b6b7 --- /dev/null +++ b/app/views/invites/_upload-date.html @@ -0,0 +1,3 @@ +

+ Your current list of pregnant patients was uploaded by Chloe Liu at 11:57am on {{ date({ day: "numeric", month: "long", year: "numeric" }, { day: -7 }) }}. +

\ No newline at end of file diff --git a/app/views/invites/check-answers.html b/app/views/invites/check-answers.html new file mode 100644 index 0000000..a71d86f --- /dev/null +++ b/app/views/invites/check-answers.html @@ -0,0 +1,99 @@ +{% extends 'layouts/ravs-plus-layout-1-maternity.html' %} + +{% set currentSection = "plus" %} + +{% set pageTitle = "Check answers" %} + +{% block pageTitle %} + {{ pageTitle }} - Record a vaccination - NHS +{% endblock %} + +{% block beforeContent %} + {{ backLink({ + href: "javascript:window.history.back()" + }) }} +{% endblock %} + + +{% block content %} +
+
+ +

{{ pageTitle }}

+ + {% include "invites/_upload-date.html" %} + + {% include "invites/_bereavement-warning.html" %} + + {% include "invites/_filtered-patient-list.html" %} + + {{ summaryList({ + card: { + heading: "Message", + headingSize: "m" + }, + rows: [ + { + key: { + text: "Template name" + }, + value: { + text: "Invite for RSV at 20 weeks" + }, + actions: { + items: [ + { + href: "message-template", + text: "Change", + visuallyHiddenText: "template" + } + ] + } + }, + { + key: { + text: "Message body" + }, + value: { + text: "You're invited to get the RSV vaccination during pregnancy to help protect you and your baby. Please contact your maternity team or book online if you are 20 weeks or more." + }, + actions: { + items: [ + { + href: "message-template", + text: "Change", + visuallyHiddenText: "template" + } + ] + } + }, + { + key: { + text: "Method" + }, + value: { + html: "Text message" + }, + actions: { + items: [ + { + href: "message-type", + text: "Change", + visuallyHiddenText: "method" + } + ] + } + } + ] + }) }} + +
+ + +
+ +
+
+{% endblock %} \ No newline at end of file diff --git a/app/views/invites/confirmation.html b/app/views/invites/confirmation.html new file mode 100644 index 0000000..41caf14 --- /dev/null +++ b/app/views/invites/confirmation.html @@ -0,0 +1,28 @@ +{% extends 'layouts/ravs-plus-layout-1-maternity.html' %} + +{% set currentSection = "plus" %} + +{% set pageTitle = "Message sent" %} + +{% block pageTitle %} + {{ pageTitle }} - Record a vaccination - NHS +{% endblock %} + +{% block content %} +
+
+ + {{ panel({ + titleText: pageTitle, + text: "354 patients have been sent an RSV invitation message" + }) }} + +

When a patient receives their RSV vaccination, they will show as 'Vaccinated' in your list of patients.

+ +

+ Send another message +

+ +
+
+{% endblock %} \ No newline at end of file diff --git a/app/views/invites/index.html b/app/views/invites/index.html new file mode 100644 index 0000000..30cf12a --- /dev/null +++ b/app/views/invites/index.html @@ -0,0 +1,70 @@ +{% extends 'layout.html' %} + +{% block header %} + {% include "includes/header-index-only.html" %} +{% endblock %} + +{% set pageTitle = "Invites" %} + +{% block pageTitle %} + {{ pageTitle }} - Record a vaccination - NHS +{% endblock %} + +{% block content %} + +
+
+ + Post MVP +

{{ pageTitle }}

+ +

Navigation pages

+ + + +

Filter patient list

+ +

To do

+ +

Create and send message

+ + + + +

View single patient

+ + + +

History

+ + + +

Templates

+ + + +
+
+{% endblock %} \ No newline at end of file diff --git a/app/views/invites/invites-landing.html b/app/views/invites/invites-landing.html new file mode 100644 index 0000000..e1d2edc --- /dev/null +++ b/app/views/invites/invites-landing.html @@ -0,0 +1,65 @@ +{% extends 'layouts/ravs-plus-layout-1-maternity.html' %} + +{% set currentSection = "plus" %} + +{% set pageTitle = "Invites and reminders" %} + +{% block pageTitle %} + {{ pageTitle }} - Record a vaccination - NHS +{% endblock %} + +{% block beforeContent %} + {{ breadcrumb({ + items: [ + { + href: "landing", + text: "Maternity" + } + ] + }) }} +{% endblock %} + +{% block content %} + +
+
+ +

{{ pageTitle }}

+ + + +
+
+ +{% endblock %} \ No newline at end of file diff --git a/app/views/invites/landing.html b/app/views/invites/landing.html new file mode 100644 index 0000000..3150cad --- /dev/null +++ b/app/views/invites/landing.html @@ -0,0 +1,46 @@ +{% extends 'layouts/ravs-plus-layout-1-maternity.html' %} + +{% set currentSection = "plus" %} + +{% set pageTitle = "Maternity" %} + +{% block pageTitle %} + {{ pageTitle }} - Record a vaccination - NHS +{% endblock %} + +{% block content %} + +
+
+ +

{{ pageTitle }}

+ +

View, filter and export vaccination information for your pregnant patients.

+ + + +
+
+ +{% endblock %} \ No newline at end of file diff --git a/app/views/invites/message-detail.html b/app/views/invites/message-detail.html new file mode 100644 index 0000000..eff45b0 --- /dev/null +++ b/app/views/invites/message-detail.html @@ -0,0 +1,80 @@ +{% extends 'layouts/ravs-plus-layout-1-maternity.html' %} + +{% set currentSection = "plus" %} + +{% set pageTitle = "View sent message" %} + +{% block pageTitle %} + {{ pageTitle }} - Record a vaccination - NHS +{% endblock %} + +{% block beforeContent %} + {{ breadcrumb({ + items: [ + { + href: "landing", + text: "Maternity" + }, + { + href: "invites-landing", + text: "Invites" + }, + { + href: "message-history", + text: "History" + } + ] + }) }} +{% endblock %} + +{% block content %} + +
+
+ +

{{ pageTitle }}

+ + {{ card({ + description: "You're invited to get the RSV vaccination during pregnancy to help protect you and your baby. Please contact your maternity team or book online if you are 20 weeks or more." + }) }} + + {{ summaryList({ + rows: [ + { + key: { + text: "Template" + }, + value: { + text: "Invite for RSV at 20 weeks" + } + }, + { + key: { + text: "Version" + }, + value: { + text: "7" + } + }, + { + key: { + text: "User" + }, + value: { + text: "Jeremy Blue" + } + }, + { + key: { + text: "Date" + }, + value: { + html: "18 Aug 2026" + } + } + ] + }) }} + +
+
+{% endblock %} \ No newline at end of file diff --git a/app/views/invites/message-history.html b/app/views/invites/message-history.html new file mode 100644 index 0000000..dd205c2 --- /dev/null +++ b/app/views/invites/message-history.html @@ -0,0 +1,98 @@ +{% extends 'layouts/ravs-plus-layout-1-maternity.html' %} + +{% set currentSection = "plus" %} + +{% set pageTitle = "Message history" %} + +{% block pageTitle %} + {{ pageTitle }} - Record a vaccination - NHS +{% endblock %} + +{% block beforeContent %} + {{ breadcrumb({ + items: [ + { + href: "landing", + text: "Maternity" + }, + { + href: "invites-landing", + text: "Invites" + } + ] + }) }} +{% endblock %} + +{% block content %} +
+
+ +

{{ pageTitle }}

+ + {{ table({ + caption: pageTitle, + captionClasses: "nhsuk-u-visually-hidden", + firstCellIsHeader: true, + head: [ + { + text: "Template" + }, + { + text: "User" + }, + { + text: "Date" + }, + { + text: "Actions" + } + ], + rows: [ + [ + { + text: "Invite for RSV at 20 weeks" + }, + { + text: "Jeremy Blue" + }, + { + text: "18 Aug 2026" + }, + { + html: "View" + } + ], + [ + { + text: "Invite for RSV at 20 weeks" + }, + { + text: "Jane Smith" + }, + { + text: "9 Aug 2026" + }, + { + html: "View" + } + ], + [ + { + text: "Invite for RSV at 20 weeks" + }, + { + text: "Jane Smith" + }, + { + text: "9 Jul 2026" + }, + { + html: "View" + } + ] + ] + }) }} + +
+
+{% endblock %} \ No newline at end of file diff --git a/app/views/invites/message-start.html b/app/views/invites/message-start.html new file mode 100644 index 0000000..31a60f0 --- /dev/null +++ b/app/views/invites/message-start.html @@ -0,0 +1,37 @@ +{% extends 'layouts/ravs-plus-layout-1-maternity.html' %} + +{% set currentSection = "plus" %} + +{% set pageTitle = "Send a message" %} + +{% block pageTitle %} + {{ pageTitle }} - Record a vaccination - NHS +{% endblock %} + +{% block beforeContent %} + {{ backLink({ + href: "javascript:window.history.back()" + }) }} +{% endblock %} + +{% block content %} + +
+
+ +

{{ pageTitle }}

+ + {% include "invites/_upload-date.html" %} + + {% include "invites/_bereavement-warning.html" %} + + {% include "invites/_filtered-patient-list.html" %} + + {{ button({ + text: "Start message", + href: "message-type" + }) }} + +
+
+{% endblock %} \ No newline at end of file diff --git a/app/views/invites/message-template.html b/app/views/invites/message-template.html new file mode 100644 index 0000000..07fc51b --- /dev/null +++ b/app/views/invites/message-template.html @@ -0,0 +1,87 @@ +{% extends 'layouts/ravs-plus-layout-1-maternity.html' %} + +{% set currentSection = "plus" %} + +{% set pageTitle = "Choose template" %} + +{% block pageTitle %} + {{ pageTitle }} - Record a vaccination - NHS +{% endblock %} + +{% block beforeContent %} + {{ backLink({ + href: "javascript:window.history.back()" + }) }} +{% endblock %} + +{% block content %} + +

{{ pageTitle }}

+ +
+
+ + + +
+
+{% endblock %} \ No newline at end of file diff --git a/app/views/invites/message-type.html b/app/views/invites/message-type.html new file mode 100644 index 0000000..aa4f904 --- /dev/null +++ b/app/views/invites/message-type.html @@ -0,0 +1,57 @@ +{% extends 'layouts/ravs-plus-layout-1-maternity.html' %} + +{% set currentSection = "plus" %} + +{% set pageTitle = "Message type" %} + +{% block pageTitle %} + {{ pageTitle }} - Record a vaccination - NHS +{% endblock %} + +{% block beforeContent %} + {{ backLink({ + href: "javascript:window.history.back()" + }) }} +{% endblock %} + +{% block content %} +
+
+ + {{ checkboxes({ + idPrefix: "example-hints", + name: "exampleHints", + fieldset: { + legend: { + text: pageTitle, + size: "l", + isPageHeading: true + } + }, + hint: { + text: "Select all options that are relevant to you" + }, + items: [ + { + value: "text", + text: "Text message" + }, + { + value: "email", + text: "Email" + }, + { + value: "app", + text: "NHS App" + } + ] + }) }} + + {{ button({ + text: "Continue", + href: "message-template" + }) }} + +
+
+{% endblock %} \ No newline at end of file diff --git a/app/views/invites/patient-add-flag-check.html b/app/views/invites/patient-add-flag-check.html new file mode 100644 index 0000000..ab08dbf --- /dev/null +++ b/app/views/invites/patient-add-flag-check.html @@ -0,0 +1,76 @@ +{% extends 'layouts/ravs-plus-layout-1-maternity.html' %} + +{% set currentSection = "plus" %} + +{% set pageTitle = "Check and confirm" %} + +{% block pageTitle %} + {{ pageTitle }} - Record a vaccination - NHS +{% endblock %} + +{% block beforeContent %} + {{ backLink({ + href: "javascript:window.history.back()" + }) }} +{% endblock %} + +{% block content %} +
+
+ +

{{ pageTitle }}

+ + {{ summaryList({ + rows: [ + { + key: { + text: "Flag" + }, + value: { + text: "Invited via telephone" + }, + actions: { + items: [ + { + href: "patient-add-flag", + text: "Change", + visuallyHiddenText: "template" + } + ] + } + }, + { + key: { + text: "User" + }, + value: { + html: "Jane Smith" + } + }, + { + key: { + text: "Date" + }, + value: { + html: "20 Aug 2026" + } + }, + { + key: { + text: "Organisation" + }, + value: { + html: "Royal Berkshire" + } + } + ] + }) }} + + {{ button({ + text: "Confirm", + href: "patient-detail?flag=success" + }) }} + +
+
+{% endblock %} \ No newline at end of file diff --git a/app/views/invites/patient-add-flag.html b/app/views/invites/patient-add-flag.html new file mode 100644 index 0000000..36e51f5 --- /dev/null +++ b/app/views/invites/patient-add-flag.html @@ -0,0 +1,65 @@ +{% extends 'layouts/ravs-plus-layout-1-maternity.html' %} + +{% set currentSection = "plus" %} + +{% set pageTitle = "Add patient flag" %} + +{% block pageTitle %} + {{ pageTitle }} - Record a vaccination - NHS +{% endblock %} + +{% block beforeContent %} + {{ backLink({ + href: "javascript:window.history.back()" + }) }} +{% endblock %} + +{% block content %} +
+
+ + {{ radios({ + idPrefix: "example-hints", + name: "exampleHints", + fieldset: { + legend: { + text: pageTitle, + size: "l", + isPageHeading: true + } + }, + hint: { + text: "Select 1 option" + }, + items: [ + { + value: "invite-sent", + text: "Invited via telephone" + }, + { + value: "reminder-sent", + text: "Reminded via telephone" + }, + { + value: "opt-out", + text: "Opted out" + }, + { + value: "bereavement", + text: "Baby loss, miscarriage or termination" + } + ] + }) }} + +
+ {{ button({ + text: "Continue", + href: "patient-add-flag-check" + }) }} + + Cancel +
+ +
+
+{% endblock %} \ No newline at end of file diff --git a/app/views/invites/patient-detail.html b/app/views/invites/patient-detail.html new file mode 100644 index 0000000..0712411 --- /dev/null +++ b/app/views/invites/patient-detail.html @@ -0,0 +1,198 @@ +{% extends 'layouts/ravs-plus-layout-1-maternity.html' %} + +{% set currentSection = "plus" %} + +{% set pageTitle = "Patient detail" %} + +{% block pageTitle %} + {{ pageTitle }} - Record a vaccination - NHS +{% endblock %} + +{% block beforeContent %} + {{ breadcrumb({ + items: [ + { + href: "landing", + text: "Maternity" + }, + { + href: "#", + text: "Patients" + } + ] + }) }} +{% endblock %} + +{% block content %} +
+
+ + {% set html %} +

Flag added to patient details and timeline updated.

+ {% endset %} + + {% if data.flag === "success" %} + + {{ notificationBanner({ + heading: "Patient record updated", + html: html, + variant: "success" + }) }} + + {% endif %} + +

{{ pageTitle }}

+ + {{ summaryList({ + rows: [ + { + key: { + text: "Name" + }, + value: { + text: "Bailey, Sarah" + } + }, + { + key: { + text: "NHS number" + }, + value: { + text: "104 832 7715" + } + }, + { + key: { + text: "Weeks pregnant" + }, + value: { + html: "39 weeks" + } + }, + { + key: { + text: "Due date" + }, + value: { + html: "6 May 2026" + } + }, + { + key: { + text: "RSV" + }, + value: { + html: "Eligible from 11 Feb 2026" + } + }, + { + key: { + text: "Pertussis" + }, + value: { + html: "Vaccinated" + } + }, + { + key: { + text: "Flu" + }, + value: { + html: "Vaccinated" + } + }, + { + key: { + text: "Message preferences" + }, + value: { + html: "Opt in" + } + } + ] + }) }} + +
+ {{ button({ + text: "Send invite or reminder", + href: "message-start" + }) }} + + {{ button({ + text: "Add patient flag", + href: "patient-add-flag", + classes: "nhsuk-button--secondary" + }) }} +
+ + {{ table({ + caption: "Timeline", + firstCellIsHeader: true, + head: [ + { + text: "Event" + }, + { + text: "Method" + }, + { + text: "Date" + }, + { + text: "User" + }, + { + text: "Organisation" + } + , + { + text: "Actions" + } + ], + rows: [ + [ + { + text: "RSV reminder sent" + }, + { + text: "RAVS" + }, + { + text: "18 Aug 2026" + }, + { + text: "Jeremy Blue" + }, + { + text: "Royal Berkshire" + }, + { + html: "View" + } + ], + [ + { + text: "RSV invite sent" + }, + { + text: "Telephone" + }, + { + text: "11 July 2026" + }, + { + text: "Jane Smith" + }, + { + text: "Royal Berkshire" + }, + { + html: "" + } + ] + ] + }) }} + +
+
+{% endblock %} \ No newline at end of file diff --git a/app/views/invites/template-create-new.html b/app/views/invites/template-create-new.html new file mode 100644 index 0000000..31f4757 --- /dev/null +++ b/app/views/invites/template-create-new.html @@ -0,0 +1,51 @@ +{% extends 'layouts/ravs-plus-layout-1-maternity.html' %} + +{% set currentSection = "plus" %} + +{% set pageTitle = "Create new template" %} + +{% block pageTitle %} + {{ pageTitle }} - Record a vaccination - NHS +{% endblock %} + +{% block beforeContent %} + {{ backLink({ + href: "javascript:window.history.back()" + }) }} +{% endblock %} + +{% block content %} + +
+
+ +

{{ pageTitle }}

+ + {{ input({ + id: "title", + name: "title", + label: { + text: "Title" + } + }) }} + + {{ textarea({ + name: "exampleRightSize", + id: "example-right-size", + rows: "5", + label: { + text: "Message body" + }, + hint: { + text: "Please be aware that text messages are 120 characters, if you go over this it will send across two messages." + } + }) }} + + {{ button({ + text: "Create template" + }) }} + +
+
+ +{% endblock %} \ No newline at end of file diff --git a/app/views/invites/template-detail.html b/app/views/invites/template-detail.html new file mode 100644 index 0000000..f247963 --- /dev/null +++ b/app/views/invites/template-detail.html @@ -0,0 +1,87 @@ +{% extends 'layouts/ravs-plus-layout-1-maternity.html' %} + +{% set currentSection = "plus" %} + +{% set pageTitle = "Template detail" %} + +{% block pageTitle %} + {{ pageTitle }} - Record a vaccination - NHS +{% endblock %} + +{% block beforeContent %} + {{ breadcrumb({ + items: [ + { + href: "landing", + text: "Maternity" + }, + { + href: "invites-landing", + text: "Invites" + }, + { + href: "templates", + text: "Templates" + } + ] + }) }} +{% endblock %} + +{% block content %} + +
+
+ +

{{ pageTitle }}

+ + {{ summaryList({ + rows: [ + { + key: { + text: "Title" + }, + value: { + text: "Invite for RSV at 20 weeks" + } + }, + { + key: { + text: "Version" + }, + value: { + text: "7" + }, + actions: { + items: [ + { + href: "#", + text: "View history", + visuallyHiddenText: "name" + } + ] + } + }, + { + key: { + text: "Message body" + }, + value: { + html: "You're invited to get the RSV vaccination during pregnancy to help protect you and your baby. Please contact your maternity team or book online if you are 20 weeks or more." + }, + actions: { + items: [ + { + href: "template-edit", + text: "Change", + visuallyHiddenText: "name" + } + ] + } + } + ] + }) }} + +
+
+ +{% endblock %} \ No newline at end of file diff --git a/app/views/invites/template-edit.html b/app/views/invites/template-edit.html new file mode 100644 index 0000000..50dfcdd --- /dev/null +++ b/app/views/invites/template-edit.html @@ -0,0 +1,57 @@ +{% extends 'layouts/ravs-plus-layout-1-maternity.html' %} + +{% set currentSection = "plus" %} + +{% set pageTitle = "Edit template" %} + +{% block pageTitle %} + {{ pageTitle }} - Record a vaccination - NHS +{% endblock %} + +{% block beforeContent %} + {{ backLink({ + href: "javascript:window.history.back()" + }) }} +{% endblock %} + +{% block content %} + +
+
+ +

{{ pageTitle }}

+ + {{ input({ + id: "title", + name: "title", + label: { + text: "Title" + }, + value: "Invite for RSV at 20 weeks" + }) }} + + {{ textarea({ + name: "exampleRightSize", + id: "example-right-size", + rows: "5", + label: { + text: "Message body" + }, + hint: { + text: "Please be aware that text messages are 120 characters, if you go over this it will send across two messages." + }, + value: "You're invited to get the RSV vaccination during pregnancy to help protect you and your baby. Please contact your maternity team or book online if you are 20 weeks or more. i" + }) }} + +
+ {{ button({ + text: "Save changes" + }) }} + + Cancel +
+ +
+
+ +{% endblock %} \ No newline at end of file diff --git a/app/views/invites/templates.html b/app/views/invites/templates.html new file mode 100644 index 0000000..0b2a01b --- /dev/null +++ b/app/views/invites/templates.html @@ -0,0 +1,102 @@ +{% extends 'layouts/ravs-plus-layout-1-maternity.html' %} + +{% set currentSection = "plus" %} + +{% set pageTitle = "Templates" %} + +{% block pageTitle %} + {{ pageTitle }} - Record a vaccination - NHS +{% endblock %} + +{% block beforeContent %} + {{ breadcrumb({ + items: [ + { + href: "landing", + text: "Maternity" + }, + { + href: "invites-landing", + text: "Invites" + } + ] + }) }} +{% endblock %} + +{% block content %} + +
+
+ +

{{ pageTitle }}

+ + {{ button({ + text: "Create new template", + href: "template-create-new" + + }) }} + + + +
+
+ +{% endblock %} \ No newline at end of file