Analysis of stroke admission numbers and types using NIHSS 11+ as a surrogate for large vessel occlusions
Contents
Analysis of stroke admission numbers and types using NIHSS 11+ as a surrogate for large vessel occlusions#
Aims:
Analyse proportion of haemorrhagic vs ischaemic stroke by arrival time.
Analyse proportion of ischaemic stroke by NIHSS 0-10 vs 11+ by arrival time.
# import libraries
import pandas as pd
# import data
data = pd.read_csv(
'./../data/2019-11-04-HQIP303-Exeter_MA.csv', low_memory=False)
Remove unknown stroke type or unknown NIHSS#
mask = (data['S2StrokeType'].isnull() == False) & (data['S2NihssArrival'].isnull() == False)
proportion_removed = (data.shape[0] - mask.sum()) / data.shape[0]
data = data[mask]
all_arrivals_count = data.shape[0]
print(f'Percent data removed: {proportion_removed*100:0.1f}')
Percent data removed: 7.8
All admissions#
Get proportion with haemorrhagic stroke:
prop_bleed = (data['S2StrokeType'] == 'Primary Intracerebral Haemorrhage').mean()
print (f'Percent haemorrhage: {prop_bleed * 100:0.1f}')
Percent haemorrhage: 11.5
Analyse infarction stroke:
mask = data['S2StrokeType'] == 'Infarction'
data_infaction = data[mask]
prop_nlvo = (data_infaction['S2NihssArrival'] < 11).mean()
prop_lvo = (data_infaction['S2NihssArrival'] > 10).mean()
print (f'Percent infarction with NIHSS 0-10: {prop_nlvo * 100:0.1f}')
print (f'Percent infarction with NIHSS 11+: {prop_lvo * 100:0.1f}')
Percent infarction with NIHSS 0-10: 77.2
Percent infarction with NIHSS 11+: 22.8
Restrict to admissions within 6 hours of known stroke onset#
mask = (data['S1OnsetToArrival_min'] <= 360) & (data['S1OnsetToArrival_min'] >= 0)
prop_6_hour_arrival = mask.sum() / all_arrivals_count
print (f'Percent with known onset of up to 6 hours: {prop_6_hour_arrival * 100:0.1f}')
data = data[mask]
Percent with known onset of up to 6 hours: 42.9
Get proportion with haemorrhagic stroke:
prop_bleed = (data['S2StrokeType'] == 'Primary Intracerebral Haemorrhage').mean()
print (f'Percent haemorrhage: {prop_bleed * 100:0.1f}')
Percent haemorrhage: 13.6
Analyse infarction stroke:
mask = data['S2StrokeType'] == 'Infarction'
data_infaction = data[mask]
prop_nlvo = (data_infaction['S2NihssArrival'] < 11).mean()
prop_lvo = (data_infaction['S2NihssArrival'] > 10).mean()
print (f'Percent infarction with NIHSS 0-10: {prop_nlvo * 100:0.1f}')
print (f'Percent infarction with NIHSS 11+: {prop_lvo * 100:0.1f}')
Percent infarction with NIHSS 0-10: 70.5
Percent infarction with NIHSS 11+: 29.5
Restrict to admissions within 4 hours of known stroke onset#
mask = (data['S1OnsetToArrival_min'] <= 240) & (data['S1OnsetToArrival_min'] >= 0)
prop_6_hour_arrival = mask.sum() / all_arrivals_count
print (f'Percent with known onset of up to 4 hours: {prop_6_hour_arrival * 100:0.1f}')
data = data[mask]
Percent with known onset of up to 4 hours: 37.1
Get proportion with haemorrhagic stroke:
prop_bleed = (data['S2StrokeType'] == 'Primary Intracerebral Haemorrhage').mean()
print (f'Percent haemorrhage: {prop_bleed * 100:0.1f}')
Percent haemorrhage: 14.1
Analyse infarction stroke:
mask = data['S2StrokeType'] == 'Infarction'
data_infaction = data[mask]
prop_nlvo = (data_infaction['S2NihssArrival'] < 11).mean()
prop_lvo = (data_infaction['S2NihssArrival'] > 10).mean()
print (f'Percent infarction with NIHSS 0-10: {prop_nlvo * 100:0.1f}')
print (f'Percent infarction with NIHSS 11+: {prop_lvo * 100:0.1f}')
Percent infarction with NIHSS 0-10: 68.9
Percent infarction with NIHSS 11+: 31.1
Summary#
Admission type |
All arrivals |
Arrival within 6 hrs known onset |
Arrival within 4 hrs known onset |
---|---|---|---|
Proportion all admissions |
100 |
42.9 |
37.1 |
Proportion haemorrhagic |
11.5 |
13.6 |
14.1 |
Proportion ischaemic |
88.5 |
86.4 |
85.9 |
Proportion ischaemic with NIHSS 0-10 |
77.2 |
70.5 |
68.9 |
Proportion ischaemic with NIHSS 11+ |
22.8 |
29.5 |
31.1 |