From 17ed69183a1ded81e6ae63bf9b70707fba0520b6 Mon Sep 17 00:00:00 2001
From: Mal Ross
Date: Tue, 14 Apr 2026 14:49:28 +0100
Subject: [PATCH 1/3] Remove redundant and unwanted adjustments for clinics
Some of the adjustments offered previously were already covered by other pages in the journey (e.g. first or last appointment), while we have had feedback that others are not wanted to be offered by SAIS teams e.g. a dog or the parent's choice for a home visit
---
app/views/book-into-a-clinic/form/adjustments.njk | 15 ---------------
1 file changed, 15 deletions(-)
diff --git a/app/views/book-into-a-clinic/form/adjustments.njk b/app/views/book-into-a-clinic/form/adjustments.njk
index 8a34a2a2d..067367596 100644
--- a/app/views/book-into-a-clinic/form/adjustments.njk
+++ b/app/views/book-into-a-clinic/form/adjustments.njk
@@ -16,29 +16,14 @@
}
},
items: [{
- text: __("consent.child.adjustments.guideDog.label"),
- value: Adjustment.GuideDog
- }, {
text: __("consent.child.adjustments.distraction.label"),
value: Adjustment.Distraction
- }, {
- text: __("consent.child.adjustments.extendedAppointment.label"),
- value: Adjustment.ExtendedAppointment
- }, {
- text: __("consent.child.adjustments.firstAppointment.label"),
- value: Adjustment.FirstAppointment
- }, {
- text: __("consent.child.adjustments.lastAppointment.label"),
- value: Adjustment.LastAppointment
}, {
text: __("consent.child.adjustments.privacy.label"),
value: Adjustment.Privacy,
hint: {
text: __("consent.child.adjustments.privacy.hint")
}
- }, {
- text: __("consent.child.adjustments.homeVisit.label"),
- value: Adjustment.HomeVisit
}, {
text: __("consent.child.adjustments.other.label"),
value: Adjustment.Other,
From 36f84e59f13047cdac62ce38a05882b0232e184a Mon Sep 17 00:00:00 2001
From: Mal Ross
Date: Tue, 14 Apr 2026 15:18:03 +0100
Subject: [PATCH 2/3] Add 'none of the above' style option for impairments and
adjustments
---
app/enums.js | 6 ++--
app/locales/en.js | 6 ++++
.../book-into-a-clinic/form/adjustments.njk | 18 +++++++++--
.../book-into-a-clinic/form/impairments.njk | 30 ++++++++++++++-----
4 files changed, 48 insertions(+), 12 deletions(-)
diff --git a/app/enums.js b/app/enums.js
index 911378259..f8a6b6718 100644
--- a/app/enums.js
+++ b/app/enums.js
@@ -30,7 +30,8 @@ export const Adjustment = {
LastAppointment: 'Needs the last appointment',
Privacy: 'Needs a private space',
HomeVisit: 'Needs a home visit',
- Other: 'Other reasonable adjustment'
+ Other: 'Other reasonable adjustment',
+ None: 'No adjustments required'
}
/**
@@ -225,7 +226,8 @@ export const Impairment = {
Memory: 'Memory',
MentalHealth: 'Mental health',
Communicative: 'Social and/or communication differences',
- Other: 'Other'
+ Other: 'Other',
+ None: 'None'
}
/**
diff --git a/app/locales/en.js b/app/locales/en.js
index 5ba8f3fd2..0acd75696 100644
--- a/app/locales/en.js
+++ b/app/locales/en.js
@@ -650,6 +650,9 @@ export const en = {
},
other: {
label: 'Other'
+ },
+ none: {
+ label: 'No, my child does not need any adjustments'
}
},
adjustmentsOther: {
@@ -676,6 +679,9 @@ export const en = {
},
communicative: {
hint: 'For example, related to autism or ADHD (attention deficit hyperactivity disorder)'
+ },
+ none: {
+ label: 'No, my child has no impairments'
}
},
impairmentsOther: {
diff --git a/app/views/book-into-a-clinic/form/adjustments.njk b/app/views/book-into-a-clinic/form/adjustments.njk
index 067367596..1440ef510 100644
--- a/app/views/book-into-a-clinic/form/adjustments.njk
+++ b/app/views/book-into-a-clinic/form/adjustments.njk
@@ -17,13 +17,15 @@
},
items: [{
text: __("consent.child.adjustments.distraction.label"),
- value: Adjustment.Distraction
+ value: Adjustment.Distraction,
+ exclusiveGroup: "adjustments-list"
}, {
text: __("consent.child.adjustments.privacy.label"),
value: Adjustment.Privacy,
hint: {
text: __("consent.child.adjustments.privacy.hint")
- }
+ },
+ exclusiveGroup: "adjustments-list"
}, {
text: __("consent.child.adjustments.other.label"),
value: Adjustment.Other,
@@ -32,7 +34,17 @@
label: { text: __("consent.child.adjustmentsOther.title") },
decorate: "consent.child.adjustmentsOther"
})
- }
+ },
+ exclusiveGroup: "adjustments-list"
+ },
+ {
+ divider: 'or'
+ },
+ {
+ text: __("consent.child.adjustments.none.label"),
+ value: Adjustment.None,
+ exclusiveGroup: "adjustments-list",
+ exclusive: true
}],
decorate: "consent.child.adjustments"
}) }}
diff --git a/app/views/book-into-a-clinic/form/impairments.njk b/app/views/book-into-a-clinic/form/impairments.njk
index fbd31f173..669ebb103 100644
--- a/app/views/book-into-a-clinic/form/impairments.njk
+++ b/app/views/book-into-a-clinic/form/impairments.njk
@@ -16,32 +16,38 @@
text: Impairment.Vision,
hint: {
text: __("consent.child.impairments.vision.hint")
- }
+ },
+ exclusiveGroup: "impairments-list"
}, {
text: Impairment.Hearing,
hint: {
text: __("consent.child.impairments.hearing.hint")
- }
+ },
+ exclusiveGroup: "impairments-list"
}, {
text: Impairment.Mobility,
hint: {
text: __("consent.child.impairments.mobility.hint")
- }
+ },
+ exclusiveGroup: "impairments-list"
}, {
text: Impairment.Memory,
hint: {
text: __("consent.child.impairments.memory.hint")
- }
+ },
+ exclusiveGroup: "impairments-list"
}, {
text: Impairment.MentalHealth,
hint: {
text: __("consent.child.impairments.mentalHealth.hint")
- }
+ },
+ exclusiveGroup: "impairments-list"
}, {
text: Impairment.Communicative,
hint: {
text: __("consent.child.impairments.communicative.hint")
- }
+ },
+ exclusiveGroup: "impairments-list"
}, {
text: Impairment.Other,
conditional: {
@@ -49,7 +55,17 @@
label: { text: __("consent.child.impairmentsOther.title") },
decorate: "consent.child.impairmentsOther"
})
- }
+ },
+ exclusiveGroup: "impairments-list"
+ },
+ {
+ divider: 'or'
+ },
+ {
+ text: __("consent.child.impairments.none.label"),
+ value: Impairment.None,
+ exclusiveGroup: "impairments-list",
+ exclusive: true
}],
decorate: "consent.child.impairments"
}) }}
From 9fb4f22dcc462923761e0aaa703601cda8ea4ad6 Mon Sep 17 00:00:00 2001
From: Mal Ross
Date: Tue, 14 Apr 2026 17:34:47 +0100
Subject: [PATCH 3/3] Fixes for MMR(V) messaging in clinic booking
---
app/locales/en.js | 4 ++--
app/models/child.js | 11 +++++++++++
.../book-into-a-clinic/form/vaccination-choice.njk | 8 ++++++--
app/views/book-into-a-clinic/start.njk | 1 -
4 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/app/locales/en.js b/app/locales/en.js
index 0acd75696..b5fc35997 100644
--- a/app/locales/en.js
+++ b/app/locales/en.js
@@ -260,13 +260,13 @@ export const en = {
'Book an appointment for the MenACWY and Td/IPV vaccinations',
[SessionPresetName.HPV]: 'Book an appointment for the HPV vaccination',
[SessionPresetName.MMR]:
- 'Book an appointment for an MMR or MMR(V) catch-up vaccination'
+ 'Book an appointment for an MMR or MMRV catch-up vaccination'
},
primaryProgrammeInSentence: {
[SessionPresetName.Flu]: 'flu',
[SessionPresetName.Doubles]: 'MenACWY and Td/IPV',
[SessionPresetName.HPV]: 'HPV',
- [SessionPresetName.MMR]: 'MMR or MMR(V)'
+ [SessionPresetName.MMR]: 'MMR and MMRV'
},
confirm: {
title: 'Book an appointment',
diff --git a/app/models/child.js b/app/models/child.js
index f32c5f346..187df7188 100644
--- a/app/models/child.js
+++ b/app/models/child.js
@@ -150,6 +150,17 @@ export class Child {
return `${this.formatted.dob} (aged ${this.age})`
}
+ /**
+ * Can the child be offered the MMRV vaccine rather than MMR?
+ *
+ * Note: This property makes no assessment of their need for a vaccination
+ *
+ * @returns {boolean} - true if can be offered MMRV, or false if they should only receive MMR
+ */
+ get canBeOfferedMmrv() {
+ return this.dob?.getFullYear() >= 2020
+ }
+
/**
* Get formatted ethnicity (ethnic group and background)
*
diff --git a/app/views/book-into-a-clinic/form/vaccination-choice.njk b/app/views/book-into-a-clinic/form/vaccination-choice.njk
index 5ac988f6b..4c8337a9d 100644
--- a/app/views/book-into-a-clinic/form/vaccination-choice.njk
+++ b/app/views/book-into-a-clinic/form/vaccination-choice.njk
@@ -34,10 +34,14 @@
value: 'td-ipv',
hint: { text: 'Protects against tetanus, diphtheria and polio' }
},{
- text: 'MMR(V)',
+ text: 'MMRV',
value: 'mmr',
hint: { text: 'Protects against measles, mumps, rubella and varicella (chickenpox)' }
- }],
+ } if appointment.child.canBeOfferedMmrv,{
+ text: 'MMR',
+ value: 'mmr',
+ hint: { text: 'Protects against measles, mumps and rubella' }
+ } if not appointment.child.canBeOfferedMmrv],
decorate: "appointment.selected_programme_ids"
}) }}
{% endblock %}
diff --git a/app/views/book-into-a-clinic/start.njk b/app/views/book-into-a-clinic/start.njk
index 2e6cdc39a..c70c8c33a 100644
--- a/app/views/book-into-a-clinic/start.njk
+++ b/app/views/book-into-a-clinic/start.njk
@@ -14,7 +14,6 @@
If your child has not been vaccinated at school, or is not up to date with their vaccinations for any other reason, you can book into a clinic.
- {# TODO: change the use of sessionPreset.name here to a more public-facing name. For example, present "MenACWY and Td/IPC" instead of "Doubles" #}
Clinics have recently been set up to offer {{ __("clinicBooking.start.primaryProgrammeInSentence." + sessionPreset.name) }} vaccinations, but your child may be able to catch up on any outstanding
vaccinations during their appointment.