Version History
Current version: v1.6.0
1.6.0 - 27 Oct 2026
- One page per calculator, replacing the single multi-calculator page: /qrisk3, /qrisk3-lifetime,
/qrisk4, /qdiabetes, /qfracture, /qadmissions-frailty, /oesophageal-cancer, /fib4 and /qcancer, each
with its own information page, and a sitemap. The multi-calculator page is parked, not deleted:
MultiCalculatorEnabled (default false) sends /run to the calculator named, or to the list.
- The forms as agreed with Julia Hippisley-Cox and David Stables on 22 Sep 2026: drop-downs start on
"Please select" with no defaults; the nine ethnic groups the engines use; conditions in two columns in
Julia's order; questions that apply to one sex greyed out for the other; systolic blood pressure as
one box with an optional standard deviation; each value checked against the calculator's range as it
is entered. QR4 is named QRISK4.
- Results: a plain headline sentence first, worded about "the risk" rather than "your risk"; the
comparison is a reference person (the same age, sex and ethnic group, no adverse risk factors), with
the relative risk; a note under each score; any assumed values named beside the score.
- QRISK3 Lifetime works as qrisk.org/lifetime does: lifetime risk to 99 first, the risk to the age
chosen beneath it. QAdmissions Frailty offers 1 or 2 years, default 2.
- QCancer offered, on EP Services 2.6.9: two tables, the 2-year risk of a cancer as yet undiagnosed and
the 10-year risk of developing each cancer, with no faces picture.
- QDiabetes, on EP Services 2.6.10: blood pressure is no longer asked for, and a blank blood test is
no longer filled in as 4.0 / 30. The page asks for a fasting blood glucose or an HbA1c, or both, and
will not score without one (David Stables, 27 Oct 2026). With only an HbA1c it is now used.
- Information pages for QCancer, QRISK4, Oesophageal Cancer and FIB-4, and the Publications page
grouped by product with QCancer, FIB-4 and the oesophageal cancer paper added.
The QRISK4 information page gives the age range as 18 to 84, as the calculator does (Julia
Hippisley-Cox, 10 Nov 2026).
- No cookies: values are kept only while moving between calculators on the page.
- BUGFIX (the live multi-calculator page): the lifetime headline was the year-9 risk labelled "12
years"; Frailty was labelled "within the next 10 years" and showed the 1-year answer when the engine
refused 10; a fast result could be replaced by a spinner by the preflight check; a page could open
filled in with the previous patient from the saved-form cookie.
- Linked to EP Services 2.6.10.
1.5.2 - 23 Aug 2026
- BUGFIX: the FIB-4 calculator never returned a result. Submitting it showed a validation badge and
then a spinner that never resolved; the request behind it was failing with a server error. FIB-4 has
been offered on the calculator since it was re-linked to EP Services 2.6.7, so it has not worked at
any point since going back on the list.
Cause: an engine whose score has no year dimension must be called once, not looped over prediction
years 1 to 10. FIB-4 was removed from that list on 29 June, when the calculator was rolled back to
EP Services 2.4.0 because FIB-4 was not ready to go live, and was never put back when the calculator
moved forward again. It was therefore being run ten times, producing ten results that all collapsed
onto the same key, and assembling them threw. The preflight request hid the fault, because that path
builds a single result and succeeds - which is why a validation badge appeared before the spinner.
- All eight calculators were re-checked end to end after the fix, each driven with a real row from its
own reference data: QRisk3, QDiabetes, Oesophageal cancer, QR4, QFracture, QRisk3 Lifetime and
QAdmissionsFrailty all score and chart exactly as before, and FIB-4 now returns its score and
interpretation.
1.5.1 - 23 Aug 2026
- BUGFIX: the QRisk3 Lifetime calculator returned an error page instead of a result. It failed for every
valid patient; the only input that did not fail was an invalid one, which validation rejected before
reaching the fault. Introduced when the calculator moved to EP Services 2.6.7 and present on UAT only -
production was never affected because it was still on 2.6.3-and-earlier services.
Cause: from EP Services 2.6.3 each point on a lifetime curve carries its own score id ("?ageplus=N"),
where every point previously shared the one score id. The results view grouped on that id, so a single
45-point curve became 45 one-point groups, and each group's id then had no matching entry in the
engine's score metadata. The view now groups on the base score id, which both restores the lifetime
chart and makes the lookup resolve.
- A score id with no matching metadata entry, or a calculator name that is unknown or parked, now
produces a "not found" rather than an error page. The results view and the results endpoint were both
missing the guard the calculator page already had.
1.5.0 - 21 Aug 2026
- Linked to ep_services 2.6.7 (the calculator was on 2.4.0)
- QCancer wired into the calculator, ready for the day the engine is un-parked. It is not offered while EP Services reports it as disabled
- The engine list now honours the Enabled flag from EP Services, so a parked engine is no longer offered anywhere on the calculator
- Added end-to-end browser coverage for the QR4 and QFracture calculators
1.4.0 - 29 Jun 2026
- Re-wired to services 2.4.0 - Fib4 is not ready to go live yet
1.3.0 - 07 Jun 2026
- Linked to ep_services 2.5.0
- Wired in the FIB-4 Liver Fibrosis Score, a new single-score engine (single-score and multi-year engines now handled separately)
- Updated the multi-calculator results display to show single-score engine results
- Fixed a typo on the homepage
1.2.1 - 21 Apr 2026
- Linked to ep_services 2.4.0 (flexible input model)
1.2.0 - 15 Mar 2026
- linked to ep_services 2.3.0 - Introduction of QAdmissionsFrailty
- "Flatten" StDev to 40 if it's above 40, and change the messaging.
- Fix to Bug when adding calcs (input was not refreshing)
1.1.6 - 01 Dec 2025
- linked to ep_services 2.1.1 Fixes Display Issue grouping Cardio calcs
1.1.5 - 18 Nov 2025
- make cardio distinct (e.g. can only have one of qr3, qr4, qr3 lifetime)
When selecting "Cardiovascular Risk", the other engines can still be selected, but we'll need some kind of Radio button, since they should only use one at once in that group
- default townsend (0) if postcode missing (allow null postcode)
- manual townsend - allow input, dropdown
- allow only one sys blood pressure reading, validate as so.
- auto scroll up to any error, popup to prompt inputs to be filled in?
- When user clicks Submit we check for any blanks, and give them a "You left BMI blank, shall we use 22" Yes/No modal, user can either go back and add the missing values, or accept our defaults.
- Place holders in the input boxes to show valid ranges
- Updates to Meta Model to include a ShortDesc for better display on web of the substitution boxes
- Acceptance disclaimer on calc selection
1.1.4 - Change townsend call to go via server side call not client to server
1.1.3 - Bump to services 2.0.10 to pickup the FBS change
x.x.x - Lots of Dan updates with no version
1.1.2 - 07 Jul 2025 - Mass renaming of X05 to Oesophagealcancer
1.1.1 - 22 Mar 2025 - Linked to latest ep_services (1.21.0) ready to introduce QR4
1.1.0 - 18 Feb 2025 - Addition of X05, linkage to ep_services 1.20.1
1.0.1 - 13 Jan 2025 - Moved Calcs JSON back into Web (from core) changed into a manifest resource
1.0.0 - 15 Oct 2024 - Initial Release with cookie links fixed

Endeavour Health