mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-15 06:52:04 +00:00
feat(insights): blood pressure by time of day
Home monitoring reads morning and evening readings as separate sets, so the blood pressure page now shows the morning, midday and evening means side by side over the chart's range, each with its count and pulse, and the morning-minus-evening difference. A control under them narrows the chart to one part of the day; the choice lives in `?partOfDay=` so it survives a reload and a shared link, and the whole day keeps a bare URL. The split is resolved on the server in the record's own time zone and published as one response, `GET /api/measurements/blood-pressure/time-of-day`, so every client renders the same numbers. Morning is 04:00 to 11:59, midday 12:00 to 17:59, evening 18:00 to 03:59: the guidelines define the sets by waking and bedtime rather than by the clock, so the windows are wide, and a reading after midnight is a late evening one. Pairs follow the blood-pressure series' rule (same source within five minutes); the pulse is the reading's own. A part shows a mean from three readings on. `GET /api/measurements` takes `partOfDay` on the blood-pressure and pulse series read: each local day folds only that part's readings, a day runs from 04:00, and long ranges fold weekly instead of reading rollups that cannot tell the hour. Refs #1331
This commit is contained in:
1 parent
41e75b5bde
commit
b93241aa87
32 files changed
+2184
-43
No files matched your search
@@ -4972,6 +4972,34 @@
|
||||
"emptyDescription": "In diesem Zeitraum wurde noch kein Score erfasst.",
|
||||
"usualRange": "Schattiert: dein üblicher Bereich, {lo} bis {hi}.",
|
||||
"seam": "Die Linie bricht dort ab, wo sich geändert hat, was in den Score einfließt."
|
||||
},
|
||||
"bpTimeOfDay": {
|
||||
"title": "Nach Tageszeit",
|
||||
"description": "Dein durchschnittlicher Blutdruck je Tageszeit im Zeitraum des Diagramms.",
|
||||
"part": {
|
||||
"morning": "Morgens",
|
||||
"midday": "Mittags",
|
||||
"evening": "Abends"
|
||||
},
|
||||
"filterAll": "Ganzer Tag",
|
||||
"filterLabel": "Im Diagramm zeigen",
|
||||
"readingsOne": "{count} Messung",
|
||||
"readingsFew": "{count} Messungen",
|
||||
"readingsOther": "{count} Messungen",
|
||||
"notEnough": "Zu wenige Messungen",
|
||||
"pulse": "Puls {value} bpm",
|
||||
"difference": "Morgens minus abends: {systolic}/{diastolic} mmHg.",
|
||||
"differencePending": "Morgen und Abend werden verglichen, sobald beide mindestens {min} Messungen haben.",
|
||||
"hours": "Morgens {morning}, mittags {midday}, abends {evening}, in deiner Zeitzone.",
|
||||
"hourRange": "{start} bis {end} Uhr",
|
||||
"emptyTitle": "Keine vollständigen Messungen in diesem Zeitraum",
|
||||
"emptyDescription": "Hier erscheinen Messungen mit systolischem und diastolischem Wert.",
|
||||
"error": "Die Werte nach Tageszeit konnten nicht geladen werden.",
|
||||
"chartTitle": {
|
||||
"morning": "Blutdruck morgens",
|
||||
"midday": "Blutdruck mittags",
|
||||
"evening": "Blutdruck abends"
|
||||
}
|
||||
}
|
||||
},
|
||||
"thresholds": {
|
||||
|
||||
@@ -4972,6 +4972,34 @@
|
||||
"emptyDescription": "No score was recorded in this range yet.",
|
||||
"usualRange": "Shaded: your usual range, {lo} to {hi}.",
|
||||
"seam": "The line breaks where what counts toward the score changed."
|
||||
},
|
||||
"bpTimeOfDay": {
|
||||
"title": "By time of day",
|
||||
"description": "Your average blood pressure in each part of the day, over the chart's range.",
|
||||
"part": {
|
||||
"morning": "Morning",
|
||||
"midday": "Midday",
|
||||
"evening": "Evening"
|
||||
},
|
||||
"filterAll": "All day",
|
||||
"filterLabel": "Show in the chart",
|
||||
"readingsOne": "{count} reading",
|
||||
"readingsFew": "{count} readings",
|
||||
"readingsOther": "{count} readings",
|
||||
"notEnough": "Too few readings",
|
||||
"pulse": "Pulse {value} bpm",
|
||||
"difference": "Morning minus evening: {systolic}/{diastolic} mmHg.",
|
||||
"differencePending": "Morning and evening are compared once each has at least {min} readings.",
|
||||
"hours": "Morning {morning}, midday {midday}, evening {evening}, in your time zone.",
|
||||
"hourRange": "{start}–{end}",
|
||||
"emptyTitle": "No complete readings in this range",
|
||||
"emptyDescription": "Readings with both a systolic and a diastolic value show up here.",
|
||||
"error": "The time-of-day averages could not be loaded.",
|
||||
"chartTitle": {
|
||||
"morning": "Blood pressure in the morning",
|
||||
"midday": "Blood pressure at midday",
|
||||
"evening": "Blood pressure in the evening"
|
||||
}
|
||||
}
|
||||
},
|
||||
"thresholds": {
|
||||
|
||||
@@ -4972,6 +4972,34 @@
|
||||
"emptyDescription": "Todavía no hay ninguna puntuación registrada en este periodo.",
|
||||
"usualRange": "Sombreado: tu rango habitual, de {lo} a {hi}.",
|
||||
"seam": "La línea se interrumpe donde cambió lo que cuenta para la puntuación."
|
||||
},
|
||||
"bpTimeOfDay": {
|
||||
"title": "Por momento del día",
|
||||
"description": "Tu tensión arterial media en cada momento del día, en el periodo del gráfico.",
|
||||
"part": {
|
||||
"morning": "Mañana",
|
||||
"midday": "Mediodía",
|
||||
"evening": "Noche"
|
||||
},
|
||||
"filterAll": "Todo el día",
|
||||
"filterLabel": "Mostrar en el gráfico",
|
||||
"readingsOne": "{count} medición",
|
||||
"readingsFew": "{count} mediciones",
|
||||
"readingsOther": "{count} mediciones",
|
||||
"notEnough": "Muy pocas mediciones",
|
||||
"pulse": "Pulso {value} lpm",
|
||||
"difference": "Mañana menos noche: {systolic}/{diastolic} mmHg.",
|
||||
"differencePending": "La mañana y la noche se comparan cuando cada una tiene al menos {min} mediciones.",
|
||||
"hours": "Mañana {morning}, mediodía {midday}, noche {evening}, en tu zona horaria.",
|
||||
"hourRange": "{start}–{end}",
|
||||
"emptyTitle": "No hay mediciones completas en este periodo",
|
||||
"emptyDescription": "Aquí aparecen las mediciones con valor sistólico y diastólico.",
|
||||
"error": "No se pudieron cargar los promedios por momento del día.",
|
||||
"chartTitle": {
|
||||
"morning": "Tensión arterial por la mañana",
|
||||
"midday": "Tensión arterial a mediodía",
|
||||
"evening": "Tensión arterial por la noche"
|
||||
}
|
||||
}
|
||||
},
|
||||
"thresholds": {
|
||||
|
||||
@@ -4972,6 +4972,34 @@
|
||||
"emptyDescription": "Aucun score n’a encore été enregistré sur cette période.",
|
||||
"usualRange": "En grisé : votre plage habituelle, de {lo} à {hi}.",
|
||||
"seam": "La ligne s’interrompt là où ce qui compte pour le score a changé."
|
||||
},
|
||||
"bpTimeOfDay": {
|
||||
"title": "Selon le moment de la journée",
|
||||
"description": "Votre tension artérielle moyenne à chaque moment de la journée, sur la période du graphique.",
|
||||
"part": {
|
||||
"morning": "Matin",
|
||||
"midday": "Midi",
|
||||
"evening": "Soir"
|
||||
},
|
||||
"filterAll": "Toute la journée",
|
||||
"filterLabel": "Afficher dans le graphique",
|
||||
"readingsOne": "{count} mesure",
|
||||
"readingsFew": "{count} mesures",
|
||||
"readingsOther": "{count} mesures",
|
||||
"notEnough": "Trop peu de mesures",
|
||||
"pulse": "Pouls {value} bpm",
|
||||
"difference": "Matin moins soir : {systolic}/{diastolic} mmHg.",
|
||||
"differencePending": "Le matin et le soir sont comparés dès que chacun compte au moins {min} mesures.",
|
||||
"hours": "Matin {morning}, midi {midday}, soir {evening}, dans votre fuseau horaire.",
|
||||
"hourRange": "{start}–{end}",
|
||||
"emptyTitle": "Aucune mesure complète sur cette période",
|
||||
"emptyDescription": "Les mesures avec une valeur systolique et diastolique apparaissent ici.",
|
||||
"error": "Impossible de charger les moyennes selon le moment de la journée.",
|
||||
"chartTitle": {
|
||||
"morning": "Tension artérielle le matin",
|
||||
"midday": "Tension artérielle à midi",
|
||||
"evening": "Tension artérielle le soir"
|
||||
}
|
||||
}
|
||||
},
|
||||
"thresholds": {
|
||||
|
||||
@@ -4972,6 +4972,34 @@
|
||||
"emptyDescription": "In questo periodo non è ancora stato registrato alcun punteggio.",
|
||||
"usualRange": "In ombra: il tuo intervallo abituale, da {lo} a {hi}.",
|
||||
"seam": "La linea si interrompe dove è cambiato ciò che conta per il punteggio."
|
||||
},
|
||||
"bpTimeOfDay": {
|
||||
"title": "Per momento della giornata",
|
||||
"description": "La tua pressione arteriosa media in ogni momento della giornata, nel periodo del grafico.",
|
||||
"part": {
|
||||
"morning": "Mattina",
|
||||
"midday": "Mezzogiorno",
|
||||
"evening": "Sera"
|
||||
},
|
||||
"filterAll": "Tutto il giorno",
|
||||
"filterLabel": "Mostra nel grafico",
|
||||
"readingsOne": "{count} misurazione",
|
||||
"readingsFew": "{count} misurazioni",
|
||||
"readingsOther": "{count} misurazioni",
|
||||
"notEnough": "Troppe poche misurazioni",
|
||||
"pulse": "Pulsazioni {value} bpm",
|
||||
"difference": "Mattina meno sera: {systolic}/{diastolic} mmHg.",
|
||||
"differencePending": "Mattina e sera vengono confrontate quando ciascuna ha almeno {min} misurazioni.",
|
||||
"hours": "Mattina {morning}, mezzogiorno {midday}, sera {evening}, nel tuo fuso orario.",
|
||||
"hourRange": "{start}–{end}",
|
||||
"emptyTitle": "Nessuna misurazione completa in questo periodo",
|
||||
"emptyDescription": "Qui compaiono le misurazioni con valore sistolico e diastolico.",
|
||||
"error": "Impossibile caricare le medie per momento della giornata.",
|
||||
"chartTitle": {
|
||||
"morning": "Pressione arteriosa al mattino",
|
||||
"midday": "Pressione arteriosa a mezzogiorno",
|
||||
"evening": "Pressione arteriosa alla sera"
|
||||
}
|
||||
}
|
||||
},
|
||||
"thresholds": {
|
||||
|
||||
@@ -4972,6 +4972,34 @@
|
||||
"emptyDescription": "이 기간에는 아직 기록된 점수가 없습니다.",
|
||||
"usualRange": "음영: 평소 범위 {lo}에서 {hi}까지.",
|
||||
"seam": "점수에 반영되는 항목이 바뀐 지점에서 선이 끊깁니다."
|
||||
},
|
||||
"bpTimeOfDay": {
|
||||
"title": "시간대별",
|
||||
"description": "차트 기간 동안 하루 중 시간대별 평균 혈압입니다.",
|
||||
"part": {
|
||||
"morning": "아침",
|
||||
"midday": "낮",
|
||||
"evening": "저녁"
|
||||
},
|
||||
"filterAll": "하루 전체",
|
||||
"filterLabel": "차트에 표시",
|
||||
"readingsOne": "측정 {count}회",
|
||||
"readingsFew": "측정 {count}회",
|
||||
"readingsOther": "측정 {count}회",
|
||||
"notEnough": "측정 횟수 부족",
|
||||
"pulse": "맥박 {value} bpm",
|
||||
"difference": "아침 빼기 저녁: {systolic}/{diastolic} mmHg.",
|
||||
"differencePending": "아침과 저녁에 각각 측정이 {min}회 이상 있으면 비교합니다.",
|
||||
"hours": "아침 {morning}, 낮 {midday}, 저녁 {evening}, 내 시간대 기준.",
|
||||
"hourRange": "{start}–{end}",
|
||||
"emptyTitle": "이 기간에 완전한 측정이 없습니다",
|
||||
"emptyDescription": "수축기와 이완기 값이 모두 있는 측정이 여기에 표시됩니다.",
|
||||
"error": "시간대별 평균을 불러오지 못했습니다.",
|
||||
"chartTitle": {
|
||||
"morning": "아침 혈압",
|
||||
"midday": "낮 혈압",
|
||||
"evening": "저녁 혈압"
|
||||
}
|
||||
}
|
||||
},
|
||||
"thresholds": {
|
||||
|
||||
@@ -4972,6 +4972,34 @@
|
||||
"emptyDescription": "In deze periode is nog geen score vastgelegd.",
|
||||
"usualRange": "Gearceerd: je gebruikelijke bereik, {lo} tot {hi}.",
|
||||
"seam": "De lijn wordt onderbroken op het moment dat veranderde wat meetelt voor de score."
|
||||
},
|
||||
"bpTimeOfDay": {
|
||||
"title": "Per moment van de dag",
|
||||
"description": "Je gemiddelde bloeddruk per moment van de dag, over de periode van de grafiek.",
|
||||
"part": {
|
||||
"morning": "Ochtend",
|
||||
"midday": "Middag",
|
||||
"evening": "Avond"
|
||||
},
|
||||
"filterAll": "Hele dag",
|
||||
"filterLabel": "Tonen in de grafiek",
|
||||
"readingsOne": "{count} meting",
|
||||
"readingsFew": "{count} metingen",
|
||||
"readingsOther": "{count} metingen",
|
||||
"notEnough": "Te weinig metingen",
|
||||
"pulse": "Hartslag {value} bpm",
|
||||
"difference": "Ochtend min avond: {systolic}/{diastolic} mmHg.",
|
||||
"differencePending": "Ochtend en avond worden vergeleken zodra elk minstens {min} metingen heeft.",
|
||||
"hours": "Ochtend {morning}, middag {midday}, avond {evening}, in je eigen tijdzone.",
|
||||
"hourRange": "{start}–{end}",
|
||||
"emptyTitle": "Geen volledige metingen in deze periode",
|
||||
"emptyDescription": "Metingen met zowel een systolische als een diastolische waarde verschijnen hier.",
|
||||
"error": "De gemiddelden per moment van de dag konden niet worden geladen.",
|
||||
"chartTitle": {
|
||||
"morning": "Bloeddruk 's ochtends",
|
||||
"midday": "Bloeddruk 's middags",
|
||||
"evening": "Bloeddruk 's avonds"
|
||||
}
|
||||
}
|
||||
},
|
||||
"thresholds": {
|
||||
|
||||
@@ -4972,6 +4972,34 @@
|
||||
"emptyDescription": "W tym okresie nie zapisano jeszcze żadnego wyniku.",
|
||||
"usualRange": "Zacieniowane: twój zwykły zakres, od {lo} do {hi}.",
|
||||
"seam": "Linia przerywa się tam, gdzie zmieniło się to, co liczy się do wyniku."
|
||||
},
|
||||
"bpTimeOfDay": {
|
||||
"title": "Według pory dnia",
|
||||
"description": "Twoje średnie ciśnienie w każdej porze dnia, w zakresie wykresu.",
|
||||
"part": {
|
||||
"morning": "Rano",
|
||||
"midday": "W południe",
|
||||
"evening": "Wieczorem"
|
||||
},
|
||||
"filterAll": "Cały dzień",
|
||||
"filterLabel": "Pokaż na wykresie",
|
||||
"readingsOne": "{count} pomiar",
|
||||
"readingsFew": "{count} pomiary",
|
||||
"readingsOther": "{count} pomiarów",
|
||||
"notEnough": "Za mało pomiarów",
|
||||
"pulse": "Tętno {value} bpm",
|
||||
"difference": "Rano minus wieczór: {systolic}/{diastolic} mmHg.",
|
||||
"differencePending": "Rano i wieczór zostaną porównane, gdy każda z tych pór będzie mieć co najmniej {min} pomiary.",
|
||||
"hours": "Rano {morning}, w południe {midday}, wieczorem {evening}, w Twojej strefie czasowej.",
|
||||
"hourRange": "{start}–{end}",
|
||||
"emptyTitle": "Brak pełnych pomiarów w tym zakresie",
|
||||
"emptyDescription": "Tutaj pojawią się pomiary z wartością skurczową i rozkurczową.",
|
||||
"error": "Nie udało się wczytać średnich według pory dnia.",
|
||||
"chartTitle": {
|
||||
"morning": "Ciśnienie tętnicze rano",
|
||||
"midday": "Ciśnienie tętnicze w południe",
|
||||
"evening": "Ciśnienie tętnicze wieczorem"
|
||||
}
|
||||
}
|
||||
},
|
||||
"thresholds": {
|
||||
|
||||
@@ -4972,6 +4972,34 @@
|
||||
"emptyDescription": "Nenhuma pontuação foi registrada nesta faixa ainda.",
|
||||
"usualRange": "Sombreado: sua faixa habitual, {lo} a {hi}.",
|
||||
"seam": "A linha quebra onde o que conta para a pontuação mudou."
|
||||
},
|
||||
"bpTimeOfDay": {
|
||||
"title": "Por período do dia",
|
||||
"description": "Sua pressão arterial média em cada período do dia, no intervalo do gráfico.",
|
||||
"part": {
|
||||
"morning": "Manhã",
|
||||
"midday": "Tarde",
|
||||
"evening": "Noite"
|
||||
},
|
||||
"filterAll": "Dia todo",
|
||||
"filterLabel": "Mostrar no gráfico",
|
||||
"readingsOne": "{count} medição",
|
||||
"readingsFew": "{count} medições",
|
||||
"readingsOther": "{count} medições",
|
||||
"notEnough": "Poucas medições",
|
||||
"pulse": "Pulso {value} bpm",
|
||||
"difference": "Manhã menos noite: {systolic}/{diastolic} mmHg.",
|
||||
"differencePending": "Manhã e noite são comparadas quando cada uma tiver pelo menos {min} medições.",
|
||||
"hours": "Manhã {morning}, tarde {midday}, noite {evening}, no seu fuso horário.",
|
||||
"hourRange": "{start}–{end}",
|
||||
"emptyTitle": "Nenhuma medição completa neste intervalo",
|
||||
"emptyDescription": "Medições com valor sistólico e diastólico aparecem aqui.",
|
||||
"error": "Não foi possível carregar as médias por período do dia.",
|
||||
"chartTitle": {
|
||||
"morning": "Pressão arterial pela manhã",
|
||||
"midday": "Pressão arterial à tarde",
|
||||
"evening": "Pressão arterial à noite"
|
||||
}
|
||||
}
|
||||
},
|
||||
"thresholds": {
|
||||
|
||||
Reference in new issue
Block a user