Disability and Sensory Impairments
This calculator identifies learning disabilities (intellectual disabilities) and sensory impairments from ICD-10 diagnosis codes.
Overview
The disability identifier detects three categories of impairments:
- Learning Disability / Autism Spectrum Disorder (ASD)
- Visual Impairment
- Hearing Impairment
Supported Codes
Learning Disability / ASD
ICD-10 codes starting with:
| Prefix | Description |
|---|---|
F70 |
Mild intellectual disabilities |
F71 |
Moderate intellectual disabilities |
F72 |
Severe intellectual disabilities |
F73 |
Profound intellectual disabilities |
F78 |
Other intellectual disabilities |
F79 |
Unspecified intellectual disabilities |
F84 |
Pervasive developmental disorders (including autism) |
Visual Impairment
ICD-10 codes starting with:
| Prefix | Description |
|---|---|
H54 |
Blindness and low vision |
Hearing Impairment
ICD-10 codes starting with:
| Prefix | Description |
|---|---|
H90 |
Conductive and sensorineural hearing loss |
H91 |
Other and unspecified hearing loss |
Usage
Python API
import polars as pl
from comorbidipy import disability
df = pl.DataFrame({
"patient_id": ["P001", "P001", "P002", "P003"],
"icd_code": ["F70", "H54", "H90", "J18"],
})
# Identify impairments
result = disability(
df,
id_col="patient_id",
code_col="icd_code",
)
# Result includes binary columns for each impairment type
CLI
# Basic disability identification
comorbidipy disability input.csv output.csv
# With custom columns
comorbidipy disability input.parquet output.parquet --id-col pat_id --code-col diagnosis
# Output as Parquet
comorbidipy disability input.csv output.parquet
Output
The output DataFrame includes:
| Column | Type | Description |
|---|---|---|
| ID column | varies | Patient identifier (original column name) |
ld_asd |
Int (0/1) | Learning disability or ASD present |
impaired_vision |
Int (0/1) | Visual impairment present |
impaired_hearing |
Int (0/1) | Hearing impairment present |
Example
import polars as pl
from comorbidipy import disability
df = pl.DataFrame({
"id": [
"P001", "P001", # LD + vision
"P002", # Hearing only
"P003", # No impairments
],
"code": [
"F70", "H541", # Mild LD + low vision
"H900", # Conductive hearing loss
"J18", # Pneumonia (not an impairment)
],
})
result = disability(df, id_col="id", code_col="code")
print(result)
# Output:
# ┌──────┬────────┬─────────────────┬──────────────────┐
# │ id ┆ ld_asd ┆ impaired_vision ┆ impaired_hearing │
# ╞══════╪════════╪═════════════════╪══════════════════╡
# │ P001 ┆ 1 ┆ 1 ┆ 0 │
# │ P002 ┆ 0 ┆ 0 ┆ 1 │
# │ P003 ┆ 0 ┆ 0 ┆ 0 │
# └──────┴────────┴─────────────────┴──────────────────┘
Use Cases
This calculator is useful for:
- Epidemiological studies: Identifying cohorts with specific impairments
- Healthcare planning: Understanding patient populations
- Reasonable adjustments: Flagging patients who may need communication support
- Quality metrics: Stratifying outcomes by disability status
Notes
- ICD-10 only: This calculator only supports ICD-10 codes
- Prefix matching: Codes are matched by their first 3 characters
- Binary output: Each patient gets a 0 or 1 for each impairment type
- Multiple impairments: A patient can have multiple impairments flagged
Clinical Considerations
When using these flags:
- Learning disability: May indicate need for easy-read materials, longer appointments, or carer involvement
- Visual impairment: Consider large print, audio information, or assistance with navigation
- Hearing impairment: Consider sign language interpreters, written communication, or hearing loops