Hospital Frailty Risk Score (HFRS)
The Hospital Frailty Risk Score (HFRS) identifies frailty in hospital patients aged 75 years and older using ICD-10 codes from hospital admissions.
Overview
The HFRS was developed using Hospital Episode Statistics data from England and validated against frailty phenotype measures. It identifies 109 ICD-10 codes associated with frailty.
Eligibility
Important: The HFRS is validated for patients aged 75 years and older. Scores for younger patients should be interpreted with caution.
Risk Categories
| Score Range | Risk Category | Interpretation |
|---|---|---|
| < 5 | Low risk | Low likelihood of frailty |
| 5-15 | Intermediate risk | Moderate likelihood of frailty |
| > 15 | High risk | High likelihood of frailty |
Usage
Python API
import polars as pl
from comorbidipy import hfrs
df = pl.DataFrame({
"patient_id": ["P001", "P001", "P002", "P002", "P003"],
"icd_code": ["F00", "R26", "G30", "W19", "J18"],
})
# Calculate HFRS
result = hfrs(
df,
id_col="patient_id",
code_col="icd_code",
)
# Result includes:
# - patient_id
# - hfrs_score (continuous score)
# - hfrs_category (Low/Intermediate/High)
CLI
# Basic HFRS calculation
comorbidipy hfrs input.csv output.csv
# With custom columns
comorbidipy hfrs input.parquet output.parquet --id-col pat_id --code-col diagnosis
# Output as Parquet
comorbidipy hfrs input.csv output.parquet
ICD-10 Codes
The HFRS uses 109 ICD-10 codes grouped into categories with associated weights:
High-weight codes (≥ 3.0)
These codes have the strongest association with frailty:
F00-F03: DementiaG30-G31: Alzheimer's disease and other degenerative diseasesR29.6: Tendency to fallW01-W19: FallsR26: Abnormalities of gait and mobilityR54: Senility
Medium-weight codes (1.0-2.9)
E86: Volume depletion (dehydration)N39.0: Urinary tract infectionJ18: PneumoniaL89: Pressure ulcerI63: Cerebral infarction
Low-weight codes (< 1.0)
- Various codes indicating frailty-associated conditions
Output
The output DataFrame includes:
| Column | Type | Description |
|---|---|---|
| ID column | varies | Patient identifier (original column name) |
hfrs_score |
Float | Continuous frailty score |
hfrs_category |
String | "Low", "Intermediate", or "High" |
Example
import polars as pl
from comorbidipy import hfrs
# Patient with multiple frailty indicators
df = pl.DataFrame({
"id": ["P001", "P001", "P001", "P002"],
"code": [
"F00", # Dementia
"W19", # Fall
"R26", # Gait abnormality
"J18", # Pneumonia only
],
})
result = hfrs(df, id_col="id", code_col="code")
print(result)
# Output:
# ┌──────┬────────────┬───────────────┐
# │ id ┆ hfrs_score ┆ hfrs_category │
# ╞══════╪════════════╪═══════════════╡
# │ P001 ┆ 8.5 ┆ Intermediate │
# │ P002 ┆ 1.2 ┆ Low │
# └──────┴────────────┴───────────────┘
Clinical Use
The HFRS helps identify patients who may benefit from:
- Comprehensive geriatric assessment
- Early discharge planning
- Falls prevention programs
- Medication review
- Nutritional assessment
Limitations
- Age restriction: Only validated for patients ≥75 years
- ICD-10 only: Does not support ICD-9 codes
- Hospital data: Developed from hospital admissions data
- UK validation: Originally validated using English NHS data
References
- Gilbert T, et al. Development and validation of a Hospital Frailty Risk Score focusing on older people in acute care settings using electronic hospital records: an observational study. Lancet. 2018;391(10132):1775-1782.