Please note that at this current time, these services are not available for use in a live environment and must not be used. The following information is made available in advance of go-live
Background
Information about QRISK3 and the free to use Web site can be viewed https://qrisk.org
Integration with systems
Systems may have access to longitudinal health records, in particular those held in General Practice. In that case those systems may elect to use QRISK in a way that provides likely values for the variables used in the algorithm, those values being derived from the records.
That being the case, a set of query criteria and rules are applied to the record entries and the values of the variables derived. These are then presented to a user for confirmation, or amendment before being submitted as a set of parameters to the function via an API.
It is strongly recommended that for any individual decision, or potential entry of the risk score in the record, that each set of assumptions are confirmed. Purely automated calculations may be used for population based risk stratification in order to plan interventions.
Reference date
Scores may be calculated retrospectively. The reference date (current date or past date) is used for all values i.e. what those values were on the reference date. For example when looking for dates within 6 months this means 6 months prior to a reference date
Patient inclusion criteria
This section documents the criteria for a person suitable for the application of QRISK3
All dates are relative to the time at which the algorithm is applied to the patient and is referred to as the reference date.
- Aged between 25 and 84 inclusive at the reference date
• Free from a diagnosis of cardiovascular disease (qr: group 411 see below) on or before the reference date
Variables and function parameters
QRISK® operates as a function whose parameters represent independent variables. The values of those variables, when used in the algorithm are derived in one of two ways
a) By direct entry by a user
b) By a query of a health record.
When passed into the algorithms as arguments to the function, the values are presented either as a double, an integer, a boolean 1 or 0, or a character. The client must convert to these formats before submitting as arguments (e.g. as case statement)
If variables are unknown (missing) or their values are out of range, the algorithm may either reject the request, provide a default value, or adjust the out of range value to an outer limit.
Each concept set has an IRI and the iri namespace is http://apiqcodes.org/qcodes#. Which uses the iri prefix qr in the following table
Input parameters needed to calculate a QRISK3® score and their handling are as follows:
Row ID
Optional Integer.
Used by the client as a reference when a batch API is used. i.e. returned by the result. It has no scope beyond the API request/response
Age
Mandatory Integer. Age of the person in years at the reference date
Gender
Mandatory Character 'M' or 'F'.
Male or female.
Binary values only accepted. QRISK does not have information on transgender or indeterminate gender risks at this stage. It is the responsibility of the requester as to whether to apply the higher risk M gender e.g. For Trans Women and to explain the rationale.
Cardiovascular disease
Optional Boolean 1 or 0 .
Cardiovascular disease prior to the reference date
This is an inclusion criteria and should therefore be 0. The request will be rejected if this is set t
Atrial fibrillation
Mandatory Boolean 1 or 0.
Atrial fibrillation at any time prior to reference date.
QRisk does not differentiate a single one off AF event from chronic or intermittent AF. Clinical interpretation may be required for those with a single event many years ago.
Rule
Observation concept qr:24, effective date < reference date
Code group | Maps to |
---|---|
qr:24 | 1 |
Atypical anti psychotics
Mandatory Boolean 1 or 0.
Second generation ‘atypical’ antipsychotic - prescribed two or more issues in the previous 6 months (includes amisulpride, aripiprazole, clozapine, lurasidone, olanzapine, paliperidone, quetiapine, risperidone, sertindole, or zotepine)
Rule
Medication request medication in qr:1169, effective date >=- 6 months relative to reference date Count(entries)>=2
Code Group | Map |
---|---|
qr:1169 | 1 |
Systemic corticosteriods
Mandatory Boolean 0 or 1
Systemic corticosteroids –prescribed two or more issues in the previous 6 months
Rule
Medication requests, medication in qr: 1194, effective date >=- 6 months relative to reference date
Count(entries) >=2
Code Group | Map |
---|---|
qr:1194 | 1 |
Migraine
Mandatory boolean 0 or 1
Diagnosis of migraine prior to the reference date
Rule
Observation concept in qr:39, effective date <= reference date
Code Group | Map |
---|---|
qr:39 | 1 |
Rheumatoid arthritis
Mandatory boolean 1 or 0
Diagnosis of Rheumatoid arthritis prior to the reference date
Rule
Observation concept in qr:58, effective date <=reference date
Code Group | Map |
---|---|
qr:58 | 1 |
Chronic renal disease
Mandatory boolean 1 or 0
Chronic renal disease at any time prior to the reference date
Rule
Observation concept in qr:322, effective date <= reference date
Code Group | Map |
---|---|
qr:322 | 1 |
Severe mental Illness
Mandatory boolean 1 or 0
Diagnosis of severe mental illness (psychosis, severe depression, manic depression, schizophrenia) at any time prior to the reference date
Rule
Observation concept in qr:3187 ,effective date <=reference date
Code Group | Map |
---|---|
qr:3187 | 1 |
Systemic lupius erythematosis
Diagnosis of systemic lupus erythematosis at any time prior to the reference date
Rule
Observation concept in qr:70, effective date <= reference date
Code Group | Map |
---|---|
qr:3187 | 1 |
Treated hypertension
Mandatory boolean 1 or 0
Diagnosis of hypertension at any time in the patient’s records AND On antihypertensive treatment if 1 or more medication requests within 6 months prior to the reference date.
Rule
Observation concept in qr:21, effective date <= reference date)
AND
Medication requests medication in (medication qr:740 qr:751 qr:759 qr:760 qr:765 to be revised), effective date >= - 6months relative to reference date
Code Group | Name | Map |
---|---|---|
qr:21 | Hypertension | 1 |
qr:740 | Thaizides | 1 |
qr:751 | Beta blockers | 1 |
qr:759 | ACE inhibitors | 1 |
qr: 760 | Angiotensin ii receptor agonists | 1 |
qr:765 | Calcium channel blockers | 1 |
Body mass index
Optional double
The most recently recorded body mass index for the patient recorded prior to the reference date recorded in the last 5 years.
Rule
Observation concept in, qr:200, effective date >= -5 years relative to reference date.
Most recent entry
Handling of out of range values
<18 is set to 18
>47 is set to 47
Code Group | Name | Map |
---|---|---|
qr:200 | Body mass index | 1 |
Diabetes Category
Mandatory integer 0 or 1 or 2
Categorical variable to denote no diabetes, type 1 diabetes or type 2 diabetes diagnosed at any time prior to the reference ate
Rule
Observation concept in qr:1913,qr:2411 effective date <=reference date
Most recent entry
Code Group | Name | Map |
---|---|---|
qr:1913 | Type 1 diabetes | 1 |
qr:2411 | Type II diabetes | 2 |
Ethnicity
Mandatory integer between 0 and 17
Ethnic category
Rule
Patient Ethnicity in (qr:17071, qr:17072, qr:17073, qr:17074, qr:17075, qr:17076, qr:17077, qr:17089, qr:17079, qr:17080, qr:17081, qr:17090, qr:17985, qr:17086, qr: 17087)
Code Group | Name | Map |
---|---|---|
null | 0 | |
qr:17071 | White british | 1 |
qr:17072 | White Irish | 2 |
qr:17073 | Other White Background | 3 |
qr:17074 | White & Black Caribbean | 4 |
qr:17075 | White & Black African | 5 |
qr:17076 | White & Asian | 6 |
qr:17077 | other mixed | 7 |
wr:17089 | Indian | 8 |
qr:17079 | Pakistani | 9 |
qr:17080 | Bangladeshi | 10 |
qr:17081 | Other Asian | 11 |
qr:17090 | Caribbean | 12 |
qr: 17083 | Black African | 13 |
qr:17091 | Other Black | 14 |
qr:17985 | Chinese | 15 |
qr:17086 | Other ethnic group | 16 |
qr:17087 | Not stated and not classified | 17 |
Family history of Coronary heart disease
Optional boolean 0 or 1
Family history of coronary heart disease in a first degree relative under the age of 60 years recorded before the reference date
Rule
Observation concept in qr:404, effective date <= reference date
Code Group | Name | Map |
---|---|---|
qr:404 | Family history of coronary heart disease | 1 |
==== Total cholesterol HDL ratio Optional double
The most recent ratio of total serum cholesterol/HDL recorded in the last 5 years. The ratio is either directly directly recorded (eg using group 405) or can be calculated using total cholesterol divided by hdl.
Note that the person must either have a ratio or both a total and hdl value.
Rule
Observation concept in qr:16 (total cholesterol TC) ,effective date <=reference date - MOST recent as TC Observation concept qr:367 (HDL) ,effective date <=reference date - MOST recent as HDL Observation concept qr:405 (CHDL ratio) , effective date <=reference date MOST recent as TCHDL If TCHDL effective date > TC effective date OR TCHDL effective date >HDL effective date then value= TCHDL numeric value else if TC effective date > TCHDL AND HDL effective date >TCHDL effective date then value = TC / HDL else value = null
Smoking category
Optional integer 0, 1 ,2 ,3 or 4
Category variable The most recently recorded smoking status with 5 levels
This categorisation has one group for ex-smokers rather than trying to distinguish between ex light, ex moderate and ex heavy smokers.
This categorisation does not distinguish between cigarette/cigar and pipe smokers
Special consideration should be given to records that contain both numeric values for the number of cigarettes smoked, and concepts that categorise into light moderate or heavy.
The logic on non smoker is that from the entry of the most recent if it has a numeric value or if there other codes on the same day with numerics take the numeric value on the same day as the most recent, unless the most recent is non smoker
Rule
Observation concept in (qr:2239 -(NONE), qr:2238 (EX) , qr:2244 (LIGHT), qr:2242 (MODERATE), qr:2243 (HEAVY), effective date <reference date Most recent entry as STATUS if STATUS concept= NONE then value=0 else if STATUS numeric value is null if observation in (EX,LIGHT,MODERATE,HEAVY) with effective date = STATUS effective date AND numeric value NOT null as NUMERIC then value = NUMERIC numeric value map else value = concept set map else then value = STATUS numeric value map
Concept set Map
Code Group | Name | Map |
---|---|---|
qr:2239 | None smoker | 1 |
qr:2238 | Ex Smoker | 1 |
qr:2244 | light smoker | 2 |
qr:2242 | Moderate smoker | 3 |
qr:2243 | Heavy smoker | 4 |
Numeric map
Range from to | Map |
---|---|
0 -9 | 2 |
10- 19 | 3 |
>= 20 | 4 |
" Reject if null "Note the following:
"
nteger (nullable)
The most recent systolic blood pressure prior to search date recorded in the last 5 years
198
n/a
sbps5
Double (nullable)
Standard deviation of all of the available systolic blood pressures prior to the search date recorded in the last 5 years
198
n/a
town
Double (nullable)
The Townsend score associated with the output area of a patient’s postcode based on the 2001 census data.
n/a
n/a
postcode
String
Patient’s postcode. This can be missing if Townsend score is supplied.
n/a
n/