QRisk
An unofficial javascript port of the ClinRisk QRisk 3-2017 algorithm, with typescript typings
API
Inputs are as follows:
// Biological sex sex: 'm' | 'f' // Age at study entry (baseline) age: number // Atrial fibrillation (including atrial fibrillation, atrial flutter, and paroxysmal atrial fibrillation) atrialFibrillation: boolean // Second generation “atypical” antipsychotic use (including amisulpride, aripiprazole, clozapine, lurasidone, // olanzapine, paliperidone, quetiapine, risperidone, sertindole, or zotepine) atypicalAntipsychotics: boolean // Corticosteroid use (British National Formulary (BNF) chapter 6.3.2 including oral or parenteral prednisolone, // betamethasone, cortisone, depo-medrone, dexamethasone, deflazacort, efcortesol, hydrocortisone, // methylprednisolone, or triamcinolone) corticosteroids: boolean // Diagnosis of migraine (including classic migraine, atypical migraine, abdominal migraine, cluster headaches, // basilar migraine, hemiplegic migraine, and migraine with or without aura) migraine: boolean // Rheumatoid arthritis (diagnosis of rheumatoid arthritis, Felty’s syndrome, Caplan’s syndrome, adult onset // Still’s disease, or inflammatory polyarthropathy not otherwise specified) rheumatoidArthritis: boolean // Chronic kidney disease (stage 3, 4 or 5) and major chronic renal disease (including nephrotic syndrome, chronic // glomerulonephritis, chronic pyelonephritis, renal dialysis, and renal transplant) chronicKidneyDisease345: boolean // Diagnosis of severe mental illness (including psychosis, schizophrenia, or bipolar affective disease) severeMentalIllness: boolean // Systemic lupus erythematosus (including diagnosis of SLE, disseminated lupus erythematosus, or Libman-Sacks disease) systemicLupusErythematosis: boolean // Treated hypertension (diagnosis of hypertension and treatment with at least one antihypertensive drug) treatedForHypertension: boolean // Diagnosis of diabetes type 2 diabetesType1: boolean // Diagnosis of diabetes type 2 diabetesType2: boolean // Body-mass index bmi: number // Ethnic origin // 0: White or not stated // 1: White or not stated // 2: Indian // 3: Pakistani // 4: Bangladeshi // 5: Other Asian // 6: Black Caribbean // 7: Black African // 8: Chinese // 9: Other ethnic group ethnicity: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 // Family history of coronary heart disease in a first degree relative aged less than 60 years familyCardioVascularDisease: boolean // Total cholesterol to high density lipoprotein (HDL) cholesterol ratio cholesterolHdlRatio: number // Systolic blood pressure systolicBloodPressure: number // Measure of systolic blood pressure variability (standard deviation of repeated measures) systolicBloodPressureStandardDeviation: number // Smoking status (0: non-smoker, 1: former smoker, 2: light smoker (1-9/day), 3: moderate smoker (10-19/day), or 4: heavy smoker (≥20/day)) smokerCategory: 0 | 1 | 2 | 3 | 4 // Local deprivation as measured by the Townsend score, where higher values indicate higher levels of material deprivation townsendDeprivation: number // (Males only) Diagnosis of erectile dysfunction or treatment for erectile dysfunction (BNF chapter 7.4.5 including alprostadil, // phosphodiesterase type 5 inhibitors, papaverine, or phentolamine) diagnosisOrTreatmentErectileDysfunction: boolean
License
This code is released under LGPL 3.0. See LICENSE
Additional terms
The following disclaimer must be held together with any risk score score generated by this code.
If the score is displayed, then this disclaimer must be displayed or otherwise be made easily accessible, e.g. by a prominent link alongside it.
The initial implemntation, to be found at http://svn.clinrisk.co.uk/opensource/qrisk2, faithfully implements QRISK3-2017.
ClinRisk Ltd. have released this code under the GNU Lesser General Public License to enable others to implement the algorithm faithfully.
However, the nature of the GNU Lesser General Public License is such that we cannot prevent, for example, someone accidentally altering the coefficients, getting the inputs wrong, or just poor programming.
ClinRisk Ltd. stress, therefore, that it is the responsibility of the end user to check that the source that they receive produces the same results as the original code found at https://qrisk.org.
Inaccurate implementations of risk scores can lead to wrong patients being given the wrong treatment.
End of additional terms