Spaces:
Sleeping
Sleeping
minor UI changes made
Browse files- .gitignore +60 -0
- app.py +70 -6
- patients.csv +51 -51
.gitignore
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# macOS system files
|
| 2 |
+
.DS_Store
|
| 3 |
+
.AppleDouble
|
| 4 |
+
.LSOverride
|
| 5 |
+
|
| 6 |
+
# Icon must end with two \r
|
| 7 |
+
Icon\r\r
|
| 8 |
+
|
| 9 |
+
# Thumbnails
|
| 10 |
+
._*
|
| 11 |
+
|
| 12 |
+
# Files that might appear in the root of a volume
|
| 13 |
+
.DocumentRevisions-V100
|
| 14 |
+
.fseventsd
|
| 15 |
+
.Spotlight-V100
|
| 16 |
+
.TemporaryItems
|
| 17 |
+
.Trashes
|
| 18 |
+
.VolumeIcon.icns
|
| 19 |
+
.com.apple.timemachine.donotpresent
|
| 20 |
+
|
| 21 |
+
# AFP share folders
|
| 22 |
+
.AppleDB
|
| 23 |
+
.AppleDesktop
|
| 24 |
+
Network Trash Folder
|
| 25 |
+
Temporary Items
|
| 26 |
+
.apdisk
|
| 27 |
+
|
| 28 |
+
# iCloud files
|
| 29 |
+
*.icloud
|
| 30 |
+
|
| 31 |
+
# macOS package files
|
| 32 |
+
*.pkg
|
| 33 |
+
*.dmg
|
| 34 |
+
|
| 35 |
+
# Logs and temp files
|
| 36 |
+
*.log
|
| 37 |
+
*.tmp
|
| 38 |
+
*.swp
|
| 39 |
+
|
| 40 |
+
# Xcode (if you ever use it)
|
| 41 |
+
DerivedData/
|
| 42 |
+
*.xcworkspace
|
| 43 |
+
*.xcuserdata
|
| 44 |
+
*.xcuserstate
|
| 45 |
+
|
| 46 |
+
# Node / general dev (optional but common)
|
| 47 |
+
node_modules/
|
| 48 |
+
npm-debug.log*
|
| 49 |
+
yarn-debug.log*
|
| 50 |
+
yarn-error.log*
|
| 51 |
+
|
| 52 |
+
# Python (optional)
|
| 53 |
+
__pycache__/
|
| 54 |
+
*.py[cod]
|
| 55 |
+
*.pyo
|
| 56 |
+
|
| 57 |
+
# Environment files
|
| 58 |
+
.env
|
| 59 |
+
.env.local
|
| 60 |
+
|
app.py
CHANGED
|
@@ -157,6 +157,7 @@ def get_cohort_table(filter_tier="All"):
|
|
| 157 |
"Triggers": len(ev["triggers"]),
|
| 158 |
"Anomaly score": f'{ev["iforest_min_score"]:.3f}',
|
| 159 |
"Flagged days": ev["iforest_flagged_days"],
|
|
|
|
| 160 |
})
|
| 161 |
df = pd.DataFrame(rows)
|
| 162 |
if df.empty:
|
|
@@ -166,6 +167,55 @@ def get_cohort_table(filter_tier="All"):
|
|
| 166 |
df = df.sort_values("_o").drop("_o", axis=1).reset_index(drop=True)
|
| 167 |
return df
|
| 168 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 169 |
# ─── Patient detail plot ────────────────────────────────────────
|
| 170 |
def render_patient_plot(pid):
|
| 171 |
ev = ALL_EVALS[pid]
|
|
@@ -240,6 +290,18 @@ def render_patient_plot(pid):
|
|
| 240 |
ax.set_xlabel("Date", fontsize=9, color="#475569")
|
| 241 |
ax.legend(loc="lower left", fontsize=7.5, framealpha=0.85,
|
| 242 |
edgecolor="#E2E8F0")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 243 |
|
| 244 |
for ax in axes:
|
| 245 |
ax.xaxis.set_major_locator(mdates.WeekdayLocator(interval=2))
|
|
@@ -340,6 +402,9 @@ def render_patient_panel(pid):
|
|
| 340 |
<div style="font-size:12px; color:#475569; margin-top:8px;">
|
| 341 |
<strong>Conditions:</strong> {p['conditions']}
|
| 342 |
</div>
|
|
|
|
|
|
|
|
|
|
| 343 |
</div>
|
| 344 |
|
| 345 |
<!-- Recent vs baseline -->
|
|
@@ -451,8 +516,7 @@ LIGHT_THEME = gr.themes.Soft(
|
|
| 451 |
secondary_hue="slate",
|
| 452 |
neutral_hue="slate",
|
| 453 |
radius_size="md",
|
| 454 |
-
font=[
|
| 455 |
-
gr.themes.Font("system-ui"), gr.themes.Font("sans-serif")],
|
| 456 |
).set(
|
| 457 |
body_background_fill="#FFFFFF",
|
| 458 |
background_fill_primary="#FFFFFF",
|
|
@@ -495,7 +559,7 @@ table { font-size: 13px !important; }
|
|
| 495 |
.tab-nav button { font-size: 14px !important; }
|
| 496 |
"""
|
| 497 |
|
| 498 |
-
with gr.Blocks(title="VårdSignal Demo") as demo:
|
| 499 |
|
| 500 |
gr.HTML("""
|
| 501 |
<div class="dashboard-header">
|
|
@@ -514,6 +578,7 @@ with gr.Blocks(title="VårdSignal Demo") as demo:
|
|
| 514 |
with gr.Tabs():
|
| 515 |
# ============= TAB 1: Cohort Overview =============
|
| 516 |
with gr.Tab("📋 Cohort Overview"):
|
|
|
|
| 517 |
kpi_html = gr.HTML(get_kpis())
|
| 518 |
with gr.Row():
|
| 519 |
tier_filter = gr.Radio(
|
|
@@ -526,7 +591,7 @@ with gr.Blocks(title="VårdSignal Demo") as demo:
|
|
| 526 |
value=get_cohort_table("All"),
|
| 527 |
interactive=False,
|
| 528 |
wrap=True,
|
| 529 |
-
column_widths=["
|
| 530 |
)
|
| 531 |
|
| 532 |
tier_filter.change(
|
|
@@ -650,5 +715,4 @@ with gr.Blocks(title="VårdSignal Demo") as demo:
|
|
| 650 |
""")
|
| 651 |
|
| 652 |
if __name__ == "__main__":
|
| 653 |
-
demo.launch(server_name="0.0.0.0", server_port=7860, share=False
|
| 654 |
-
theme=LIGHT_THEME, css=CSS)
|
|
|
|
| 157 |
"Triggers": len(ev["triggers"]),
|
| 158 |
"Anomaly score": f'{ev["iforest_min_score"]:.3f}',
|
| 159 |
"Flagged days": ev["iforest_flagged_days"],
|
| 160 |
+
"Devices": p["devices"],
|
| 161 |
})
|
| 162 |
df = pd.DataFrame(rows)
|
| 163 |
if df.empty:
|
|
|
|
| 167 |
df = df.sort_values("_o").drop("_o", axis=1).reset_index(drop=True)
|
| 168 |
return df
|
| 169 |
|
| 170 |
+
# ─── Definitions / glossary card ────────────────────────────────
|
| 171 |
+
def get_definitions_card():
|
| 172 |
+
return """
|
| 173 |
+
<div style="background:#F8FAFC; border:1px solid #E2E8F0; border-radius:6px;
|
| 174 |
+
padding:14px 18px; margin:8px 0 14px;
|
| 175 |
+
font-family:'Segoe UI', sans-serif;">
|
| 176 |
+
<div style="font-size:11px; color:#64748B; letter-spacing:0.4px;
|
| 177 |
+
text-transform:uppercase; font-weight:600; margin-bottom:8px;">
|
| 178 |
+
How to read this dashboard
|
| 179 |
+
</div>
|
| 180 |
+
<div style="display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
|
| 181 |
+
gap:8px 18px; font-size:12.5px; color:#334155; line-height:1.45;">
|
| 182 |
+
<div>
|
| 183 |
+
<span style="color:#991B1B; font-weight:600;">▲ High risk</span> —
|
| 184 |
+
Possible-fall pattern detected, sustained heart-rate elevation paired with activity drop,
|
| 185 |
+
or anomaly score below −0.10. Recommended action: district nurse review within hours.
|
| 186 |
+
</div>
|
| 187 |
+
<div>
|
| 188 |
+
<span style="color:#92400E; font-weight:600;">● Watch</span> —
|
| 189 |
+
One or more clinical rule triggers fired, or 2+ flagged days in the evaluation window.
|
| 190 |
+
Recommended action: hemtjänst coordinator notes for next visit.
|
| 191 |
+
</div>
|
| 192 |
+
<div>
|
| 193 |
+
<span style="color:#166534; font-weight:600;">✓ Stable</span> —
|
| 194 |
+
Patient's recent measurements remain within their personalised baseline. No action required.
|
| 195 |
+
</div>
|
| 196 |
+
<div>
|
| 197 |
+
<strong style="color:#0F172A;">Anomaly score</strong> — Output of the Isolation Forest
|
| 198 |
+
model (range approx. −0.2 to +0.3). Lower is more anomalous. The displayed value is
|
| 199 |
+
the lowest score across the 14-day evaluation window.
|
| 200 |
+
</div>
|
| 201 |
+
<div>
|
| 202 |
+
<strong style="color:#0F172A;">Flagged days</strong> — Number of days within the
|
| 203 |
+
14-day evaluation window where the anomaly score fell below the watch threshold (−0.02).
|
| 204 |
+
</div>
|
| 205 |
+
<div>
|
| 206 |
+
<strong style="color:#0F172A;">Triggers</strong> — Count of clinical rule triggers
|
| 207 |
+
that fired (rate elevation, activity drop, sleep disturbance, possible fall, declining trend,
|
| 208 |
+
adherence drop). Listed individually in the Patient Detail tab.
|
| 209 |
+
</div>
|
| 210 |
+
<div>
|
| 211 |
+
<strong style="color:#0F172A;">Devices</strong> — Hardware partners supplying signals
|
| 212 |
+
for this patient. VårdSignal aggregates across vendors; the operator chooses devices
|
| 213 |
+
per patient based on clinical profile.
|
| 214 |
+
</div>
|
| 215 |
+
</div>
|
| 216 |
+
</div>
|
| 217 |
+
"""
|
| 218 |
+
|
| 219 |
# ─── Patient detail plot ────────────────────────────────────────
|
| 220 |
def render_patient_plot(pid):
|
| 221 |
ev = ALL_EVALS[pid]
|
|
|
|
| 290 |
ax.set_xlabel("Date", fontsize=9, color="#475569")
|
| 291 |
ax.legend(loc="lower left", fontsize=7.5, framealpha=0.85,
|
| 292 |
edgecolor="#E2E8F0")
|
| 293 |
+
# Explanatory annotation: scores only computed during evaluation window
|
| 294 |
+
train_mid = full["date"].iloc[TRAIN_WINDOW // 2]
|
| 295 |
+
ymin_ax, ymax_ax = ax.get_ylim()
|
| 296 |
+
ax.text(train_mid, (ymin_ax + ymax_ax) / 2,
|
| 297 |
+
"Scores are computed only on the 14-day\n"
|
| 298 |
+
"evaluation window (yellow band).\n"
|
| 299 |
+
"Earlier days were used to learn the\n"
|
| 300 |
+
"personalised baseline.",
|
| 301 |
+
fontsize=8, color="#64748B", style="italic",
|
| 302 |
+
ha="center", va="center",
|
| 303 |
+
bbox=dict(boxstyle="round,pad=0.4", fc="#F8FAFC",
|
| 304 |
+
ec="#CBD5E1", lw=0.6))
|
| 305 |
|
| 306 |
for ax in axes:
|
| 307 |
ax.xaxis.set_major_locator(mdates.WeekdayLocator(interval=2))
|
|
|
|
| 402 |
<div style="font-size:12px; color:#475569; margin-top:8px;">
|
| 403 |
<strong>Conditions:</strong> {p['conditions']}
|
| 404 |
</div>
|
| 405 |
+
<div style="font-size:12px; color:#475569; margin-top:4px;">
|
| 406 |
+
<strong>Devices:</strong> {p['devices']}
|
| 407 |
+
</div>
|
| 408 |
</div>
|
| 409 |
|
| 410 |
<!-- Recent vs baseline -->
|
|
|
|
| 516 |
secondary_hue="slate",
|
| 517 |
neutral_hue="slate",
|
| 518 |
radius_size="md",
|
| 519 |
+
font=["Segoe UI", "SF Pro Text", "system-ui", "sans-serif"],
|
|
|
|
| 520 |
).set(
|
| 521 |
body_background_fill="#FFFFFF",
|
| 522 |
background_fill_primary="#FFFFFF",
|
|
|
|
| 559 |
.tab-nav button { font-size: 14px !important; }
|
| 560 |
"""
|
| 561 |
|
| 562 |
+
with gr.Blocks(theme=LIGHT_THEME, css=CSS, title="VårdSignal Demo") as demo:
|
| 563 |
|
| 564 |
gr.HTML("""
|
| 565 |
<div class="dashboard-header">
|
|
|
|
| 578 |
with gr.Tabs():
|
| 579 |
# ============= TAB 1: Cohort Overview =============
|
| 580 |
with gr.Tab("📋 Cohort Overview"):
|
| 581 |
+
definitions_html = gr.HTML(get_definitions_card())
|
| 582 |
kpi_html = gr.HTML(get_kpis())
|
| 583 |
with gr.Row():
|
| 584 |
tier_filter = gr.Radio(
|
|
|
|
| 591 |
value=get_cohort_table("All"),
|
| 592 |
interactive=False,
|
| 593 |
wrap=True,
|
| 594 |
+
column_widths=["100px","75px","145px","55px","100px","190px","70px","90px","75px","160px"],
|
| 595 |
)
|
| 596 |
|
| 597 |
tier_filter.change(
|
|
|
|
| 715 |
""")
|
| 716 |
|
| 717 |
if __name__ == "__main__":
|
| 718 |
+
demo.launch(server_name="0.0.0.0", server_port=7860, share=False)
|
|
|
patients.csv
CHANGED
|
@@ -1,51 +1,51 @@
|
|
| 1 |
-
patient_id,name,age,sex,municipality,activity_class,rhr_baseline_mean,rhr_baseline_std,steps_baseline_mean,steps_baseline_std,sleep_baseline_mean,sleep_baseline_std,adherence_baseline,onboarded_days_ago,conditions
|
| 2 |
-
P001,Eva Eriksson,79,F,Karlskrona,active,86.8,4.58,6393,1598,5.9,0.89,0.821,70,Hypertension; Mild cognitive impairment
|
| 3 |
-
P002,Kerstin Larsson,70,F,Karlskrona,low,74.4,5.72,1969,492,7.52,0.6,0.863,77,Hypertension
|
| 4 |
-
P003,Gunnar Pettersson,85,M,Ronneby,moderate,72.9,4.18,2605,651,6.07,0.85,0.789,74,Hypertension
|
| 5 |
-
P004,Karin Lindberg,84,F,Karlshamn,low,73.4,5.3,1038,259,7.65,0.67,0.949,77,No flagged conditions
|
| 6 |
-
P005,Astrid Olsson,79,F,Karlskrona,low,75.9,5.75,2060,515,6.51,0.88,0.566,85,COPD
|
| 7 |
-
P006,Per Karlsson,91,M,Karlskrona,low,73.1,4.38,1480,370,6.91,0.71,0.927,66,Hypertension
|
| 8 |
-
P007,Maj-Britt Persson,89,F,Karlshamn,low,85.7,4.89,1447,361,5.78,0.56,0.974,70,Atrial fibrillation
|
| 9 |
-
P008,Anders Olsson,83,M,Sölvesborg,low,73.2,5.27,1000,250,7.99,0.54,0.924,66,Type 2 diabetes
|
| 10 |
-
P009,Solveig Eriksson,92,F,Olofström,moderate,83.5,3.64,2535,633,8.35,0.75,0.808,65,No flagged conditions
|
| 11 |
-
P010,Karin Eriksson,77,F,Sölvesborg,low,78.3,5.16,985,246,7.23,0.6,0.628,85,No flagged conditions
|
| 12 |
-
P011,Maj-Britt Jonsson,91,F,Olofström,moderate,82.4,3.98,2643,660,7.33,0.88,0.901,67,COPD
|
| 13 |
-
P012,Stig Johansson,80,M,Karlskrona,low,75.2,5.35,1172,293,6.07,0.87,0.795,88,Type 2 diabetes; Atrial fibrillation
|
| 14 |
-
P013,Britta Andersson,78,F,Karlshamn,moderate,72.3,3.93,3146,786,8.82,0.55,0.743,77,Hypertension; COPD
|
| 15 |
-
P014,Eva Jonsson,85,F,Karlshamn,low,82.4,5.97,1726,431,7.48,0.75,0.803,61,No flagged conditions
|
| 16 |
-
P015,Hans Larsson,95,M,Karlskrona,low,70.1,3.69,1039,259,5.88,0.59,0.948,63,Hypertension; Type 2 diabetes
|
| 17 |
-
P016,Kerstin Andersson,82,F,Ronneby,low,74.2,4.16,1147,286,6.91,0.72,0.881,80,Hypertension; Type 2 diabetes
|
| 18 |
-
P017,Stig Pettersson,91,M,Sölvesborg,low,71.4,5.38,1125,281,6.61,0.42,0.861,77,Hypertension; Atrial fibrillation
|
| 19 |
-
P018,Per Jonsson,80,M,Sölvesborg,low,61.5,4.5,1465,366,7.17,0.41,0.807,89,Mild cognitive impairment
|
| 20 |
-
P019,Karin Eriksson,85,F,Sölvesborg,low,76.4,5.05,1414,353,6.68,0.52,0.836,63,Hypertension
|
| 21 |
-
P020,Åke Lindström,86,M,Ronneby,moderate,64.0,5.35,2443,610,6.87,0.83,0.865,82,Mild cognitive impairment
|
| 22 |
-
P021,Greta Berglund,81,F,Karlshamn,moderate,80.1,4.85,2906,726,6.65,0.47,0.89,83,Hypertension
|
| 23 |
-
P022,Marie Johansson,85,F,Karlshamn,low,78.2,5.44,1725,431,5.66,0.43,0.827,64,Hypertension
|
| 24 |
-
P023,Karin Persson,91,F,Karlshamn,moderate,85.5,5.63,4214,1053,7.48,0.75,0.91,74,Mild cognitive impairment
|
| 25 |
-
P024,Ulla Lindberg,80,F,Karlskrona,moderate,74.3,5.93,2818,704,7.54,0.65,0.581,88,Hypertension; Mild cognitive impairment
|
| 26 |
-
P025,Bengt Lindberg,83,M,Karlshamn,low,71.3,4.34,1413,353,6.38,0.66,0.939,82,No flagged conditions
|
| 27 |
-
P026,Karl Olsson,83,M,Ronneby,low,77.0,5.57,1121,280,7.13,0.56,0.804,71,No flagged conditions
|
| 28 |
-
P027,Elisabeth Karlsson,83,F,Karlskrona,moderate,73.0,5.5,4034,1008,6.12,0.59,0.938,82,Atrial fibrillation; COPD
|
| 29 |
-
P028,Karl Gustafsson,82,M,Karlshamn,low,73.8,4.89,857,214,9.0,0.55,0.977,62,Hypertension; Type 2 diabetes
|
| 30 |
-
P029,Solveig Gustafsson,80,F,Karlskrona,active,77.3,3.56,4974,1243,7.58,0.7,0.844,72,Hypertension
|
| 31 |
-
P030,Anna Nilsson,87,F,Olofström,low,72.5,4.56,1153,288,7.66,0.63,0.936,73,Mild cognitive impairment
|
| 32 |
-
P031,Elisabeth Johansson,74,F,Olofström,low,73.7,3.75,1054,263,6.73,0.55,0.746,70,No flagged conditions
|
| 33 |
-
P032,Erik Jonsson,77,M,Olofström,low,69.0,4.14,1620,405,7.27,0.43,0.778,67,Type 2 diabetes
|
| 34 |
-
P033,Ingrid Gustafsson,74,F,Ronneby,low,82.8,4.15,2065,516,6.49,0.49,0.88,69,No flagged conditions
|
| 35 |
-
P034,Britta Olsson,88,F,Karlskrona,moderate,86.2,3.98,4181,1045,7.42,0.59,0.948,63,Type 2 diabetes
|
| 36 |
-
P035,Kerstin Persson,87,F,Ronneby,moderate,84.5,5.01,3501,875,7.45,0.5,0.857,79,Type 2 diabetes
|
| 37 |
-
P036,Anna Karlsson,74,F,Karlshamn,moderate,68.0,3.52,3712,928,8.0,0.72,0.975,75,Mild cognitive impairment
|
| 38 |
-
P037,Eva Svensson,76,F,Karlskrona,low,76.7,3.65,1449,362,8.48,0.69,0.882,79,Hypertension; Mild cognitive impairment
|
| 39 |
-
P038,Kerstin Jonsson,71,F,Karlshamn,low,73.6,5.18,1873,468,8.05,0.67,0.877,73,Mild cognitive impairment
|
| 40 |
-
P039,Karl Eriksson,78,M,Karlskrona,low,72.7,3.8,1080,270,7.23,0.85,0.816,66,Atrial fibrillation
|
| 41 |
-
P040,Karl Eriksson,70,M,Karlshamn,low,72.0,3.6,1430,357,6.62,0.62,0.851,84,Hypertension; Type 2 diabetes; COPD
|
| 42 |
-
P041,Rolf Lindberg,89,M,Sölvesborg,low,69.5,5.38,1570,392,8.07,0.81,0.804,68,Hypertension
|
| 43 |
-
P042,Birgitta Persson,79,F,Karlskrona,active,73.3,3.96,4833,1208,7.6,0.55,0.731,66,Hypertension
|
| 44 |
-
P043,Rolf Lindberg,79,M,Karlshamn,low,71.7,3.51,1878,469,6.97,0.81,0.849,70,Mild cognitive impairment
|
| 45 |
-
P044,Britta Berglund,91,F,Sölvesborg,low,81.3,5.29,1551,387,6.42,0.84,0.898,76,Mild cognitive impairment; COPD
|
| 46 |
-
P045,Britta Lindberg,75,F,Sölvesborg,low,76.1,5.45,904,226,7.35,0.83,0.899,77,Type 2 diabetes; Atrial fibrillation
|
| 47 |
-
P046,Rolf Larsson,84,M,Sölvesborg,low,78.2,4.9,868,217,7.08,0.85,0.895,82,Hypertension
|
| 48 |
-
P047,Rolf Andersson,84,M,Olofström,active,68.3,4.61,7131,1782,7.49,0.43,0.879,86,No flagged conditions
|
| 49 |
-
P048,Maj-Britt Berglund,80,F,Olofström,active,81.7,5.12,7306,1826,6.66,0.88,0.85,88,No flagged conditions
|
| 50 |
-
P049,Gunnar Lindström,93,M,Ronneby,moderate,80.5,5.25,4109,1027,6.33,0.66,0.802,75,Hypertension; Atrial fibrillation
|
| 51 |
-
P050,Maj-Britt Nilsson,81,F,Ronneby,low,81.1,4.72,1213,303,6.52,0.54,0.756,66,No flagged conditions
|
|
|
|
| 1 |
+
patient_id,name,age,sex,municipality,activity_class,rhr_baseline_mean,rhr_baseline_std,steps_baseline_mean,steps_baseline_std,sleep_baseline_mean,sleep_baseline_std,adherence_baseline,onboarded_days_ago,conditions,devices
|
| 2 |
+
P001,Eva Eriksson,79,F,Karlskrona,active,86.8,4.58,6393,1598,5.9,0.89,0.821,70,Hypertension; Mild cognitive impairment,Phoniro · Evondos · Withings
|
| 3 |
+
P002,Kerstin Larsson,70,F,Karlskrona,low,74.4,5.72,1969,492,7.52,0.6,0.863,77,Hypertension,Phoniro
|
| 4 |
+
P003,Gunnar Pettersson,85,M,Ronneby,moderate,72.9,4.18,2605,651,6.07,0.85,0.789,74,Hypertension,Evondos · Vivago · Withings
|
| 5 |
+
P004,Karin Lindberg,84,F,Karlshamn,low,73.4,5.3,1038,259,7.65,0.67,0.949,77,No flagged conditions,Phoniro · Evondos · Vivago
|
| 6 |
+
P005,Astrid Olsson,79,F,Karlskrona,low,75.9,5.75,2060,515,6.51,0.88,0.566,85,COPD,Phoniro · Evondos
|
| 7 |
+
P006,Per Karlsson,91,M,Karlskrona,low,73.1,4.38,1480,370,6.91,0.71,0.927,66,Hypertension,Phoniro · Vivago
|
| 8 |
+
P007,Maj-Britt Persson,89,F,Karlshamn,low,85.7,4.89,1447,361,5.78,0.56,0.974,70,Atrial fibrillation,Phoniro · Withings
|
| 9 |
+
P008,Anders Olsson,83,M,Sölvesborg,low,73.2,5.27,1000,250,7.99,0.54,0.924,66,Type 2 diabetes,Phoniro · Withings
|
| 10 |
+
P009,Solveig Eriksson,92,F,Olofström,moderate,83.5,3.64,2535,633,8.35,0.75,0.808,65,No flagged conditions,Phoniro · Evondos
|
| 11 |
+
P010,Karin Eriksson,77,F,Sölvesborg,low,78.3,5.16,985,246,7.23,0.6,0.628,85,No flagged conditions,Phoniro
|
| 12 |
+
P011,Maj-Britt Jonsson,91,F,Olofström,moderate,82.4,3.98,2643,660,7.33,0.88,0.901,67,COPD,Phoniro · Evondos · Vivago
|
| 13 |
+
P012,Stig Johansson,80,M,Karlskrona,low,75.2,5.35,1172,293,6.07,0.87,0.795,88,Type 2 diabetes; Atrial fibrillation,Phoniro · Withings
|
| 14 |
+
P013,Britta Andersson,78,F,Karlshamn,moderate,72.3,3.93,3146,786,8.82,0.55,0.743,77,Hypertension; COPD,Phoniro · Evondos · Withings
|
| 15 |
+
P014,Eva Jonsson,85,F,Karlshamn,low,82.4,5.97,1726,431,7.48,0.75,0.803,61,No flagged conditions,Phoniro
|
| 16 |
+
P015,Hans Larsson,95,M,Karlskrona,low,70.1,3.69,1039,259,5.88,0.59,0.948,63,Hypertension; Type 2 diabetes,Phoniro · Evondos
|
| 17 |
+
P016,Kerstin Andersson,82,F,Ronneby,low,74.2,4.16,1147,286,6.91,0.72,0.881,80,Hypertension; Type 2 diabetes,Phoniro · Withings
|
| 18 |
+
P017,Stig Pettersson,91,M,Sölvesborg,low,71.4,5.38,1125,281,6.61,0.42,0.861,77,Hypertension; Atrial fibrillation,Phoniro · Evondos
|
| 19 |
+
P018,Per Jonsson,80,M,Sölvesborg,low,61.5,4.5,1465,366,7.17,0.41,0.807,89,Mild cognitive impairment,Phoniro · Vivago
|
| 20 |
+
P019,Karin Eriksson,85,F,Sölvesborg,low,76.4,5.05,1414,353,6.68,0.52,0.836,63,Hypertension,Phoniro · Evondos · Vivago · Withings
|
| 21 |
+
P020,Åke Lindström,86,M,Ronneby,moderate,64.0,5.35,2443,610,6.87,0.83,0.865,82,Mild cognitive impairment,Phoniro · Vivago
|
| 22 |
+
P021,Greta Berglund,81,F,Karlshamn,moderate,80.1,4.85,2906,726,6.65,0.47,0.89,83,Hypertension,Phoniro · Evondos · Withings
|
| 23 |
+
P022,Marie Johansson,85,F,Karlshamn,low,78.2,5.44,1725,431,5.66,0.43,0.827,64,Hypertension,Evondos · Withings
|
| 24 |
+
P023,Karin Persson,91,F,Karlshamn,moderate,85.5,5.63,4214,1053,7.48,0.75,0.91,74,Mild cognitive impairment,Phoniro · Evondos
|
| 25 |
+
P024,Ulla Lindberg,80,F,Karlskrona,moderate,74.3,5.93,2818,704,7.54,0.65,0.581,88,Hypertension; Mild cognitive impairment,Phoniro · Evondos · Vivago
|
| 26 |
+
P025,Bengt Lindberg,83,M,Karlshamn,low,71.3,4.34,1413,353,6.38,0.66,0.939,82,No flagged conditions,Phoniro
|
| 27 |
+
P026,Karl Olsson,83,M,Ronneby,low,77.0,5.57,1121,280,7.13,0.56,0.804,71,No flagged conditions,Phoniro · Withings
|
| 28 |
+
P027,Elisabeth Karlsson,83,F,Karlskrona,moderate,73.0,5.5,4034,1008,6.12,0.59,0.938,82,Atrial fibrillation; COPD,Phoniro · Evondos
|
| 29 |
+
P028,Karl Gustafsson,82,M,Karlshamn,low,73.8,4.89,857,214,9.0,0.55,0.977,62,Hypertension; Type 2 diabetes,Phoniro · Evondos · Vivago
|
| 30 |
+
P029,Solveig Gustafsson,80,F,Karlskrona,active,77.3,3.56,4974,1243,7.58,0.7,0.844,72,Hypertension,Phoniro · Withings
|
| 31 |
+
P030,Anna Nilsson,87,F,Olofström,low,72.5,4.56,1153,288,7.66,0.63,0.936,73,Mild cognitive impairment,Phoniro · Evondos · Vivago
|
| 32 |
+
P031,Elisabeth Johansson,74,F,Olofström,low,73.7,3.75,1054,263,6.73,0.55,0.746,70,No flagged conditions,Phoniro · Evondos
|
| 33 |
+
P032,Erik Jonsson,77,M,Olofström,low,69.0,4.14,1620,405,7.27,0.43,0.778,67,Type 2 diabetes,Phoniro
|
| 34 |
+
P033,Ingrid Gustafsson,74,F,Ronneby,low,82.8,4.15,2065,516,6.49,0.49,0.88,69,No flagged conditions,Phoniro · Withings
|
| 35 |
+
P034,Britta Olsson,88,F,Karlskrona,moderate,86.2,3.98,4181,1045,7.42,0.59,0.948,63,Type 2 diabetes,Phoniro · Evondos
|
| 36 |
+
P035,Kerstin Persson,87,F,Ronneby,moderate,84.5,5.01,3501,875,7.45,0.5,0.857,79,Type 2 diabetes,Phoniro
|
| 37 |
+
P036,Anna Karlsson,74,F,Karlshamn,moderate,68.0,3.52,3712,928,8.0,0.72,0.975,75,Mild cognitive impairment,Phoniro · Evondos · Vivago
|
| 38 |
+
P037,Eva Svensson,76,F,Karlskrona,low,76.7,3.65,1449,362,8.48,0.69,0.882,79,Hypertension; Mild cognitive impairment,Phoniro
|
| 39 |
+
P038,Kerstin Jonsson,71,F,Karlshamn,low,73.6,5.18,1873,468,8.05,0.67,0.877,73,Mild cognitive impairment,Phoniro · Vivago · Withings
|
| 40 |
+
P039,Karl Eriksson,78,M,Karlskrona,low,72.7,3.8,1080,270,7.23,0.85,0.816,66,Atrial fibrillation,Phoniro
|
| 41 |
+
P040,Karl Eriksson,70,M,Karlshamn,low,72.0,3.6,1430,357,6.62,0.62,0.851,84,Hypertension; Type 2 diabetes; COPD,Phoniro · Withings
|
| 42 |
+
P041,Rolf Lindberg,89,M,Sölvesborg,low,69.5,5.38,1570,392,8.07,0.81,0.804,68,Hypertension,Phoniro · Evondos · Vivago
|
| 43 |
+
P042,Birgitta Persson,79,F,Karlskrona,active,73.3,3.96,4833,1208,7.6,0.55,0.731,66,Hypertension,Phoniro
|
| 44 |
+
P043,Rolf Lindberg,79,M,Karlshamn,low,71.7,3.51,1878,469,6.97,0.81,0.849,70,Mild cognitive impairment,Phoniro · Vivago
|
| 45 |
+
P044,Britta Berglund,91,F,Sölvesborg,low,81.3,5.29,1551,387,6.42,0.84,0.898,76,Mild cognitive impairment; COPD,Phoniro · Vivago
|
| 46 |
+
P045,Britta Lindberg,75,F,Sölvesborg,low,76.1,5.45,904,226,7.35,0.83,0.899,77,Type 2 diabetes; Atrial fibrillation,Phoniro
|
| 47 |
+
P046,Rolf Larsson,84,M,Sölvesborg,low,78.2,4.9,868,217,7.08,0.85,0.895,82,Hypertension,Phoniro · Vivago
|
| 48 |
+
P047,Rolf Andersson,84,M,Olofström,active,68.3,4.61,7131,1782,7.49,0.43,0.879,86,No flagged conditions,Phoniro · Evondos
|
| 49 |
+
P048,Maj-Britt Berglund,80,F,Olofström,active,81.7,5.12,7306,1826,6.66,0.88,0.85,88,No flagged conditions,Phoniro · Vivago
|
| 50 |
+
P049,Gunnar Lindström,93,M,Ronneby,moderate,80.5,5.25,4109,1027,6.33,0.66,0.802,75,Hypertension; Atrial fibrillation,Phoniro · Evondos · Withings
|
| 51 |
+
P050,Maj-Britt Nilsson,81,F,Ronneby,low,81.1,4.72,1213,303,6.52,0.54,0.756,66,No flagged conditions,Phoniro · Evondos
|