MUmairAB commited on
Commit
afa6ee7
·
1 Parent(s): e8c63ae

minor UI changes made

Browse files
Files changed (3) hide show
  1. .gitignore +60 -0
  2. app.py +70 -6
  3. 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=[gr.themes.Font("Segoe UI"), gr.themes.Font("SF Pro Text"),
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=["110px","80px","160px","60px","110px","220px","75px","100px","85px"],
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