mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-14 22:50:51 +00:00
feat(vaccinations): show the planned booster's renewal state on the log
Whether a vaccination is still current was known only on the checkups page. The vaccination log now shows it on each antigen's heading: the booster the person planned when they logged a dose, marked as overdue, due soon (within 30 days) or scheduled, tinted only in the first two cases. The state is resolved on the server from the person's own confirmed booster reminder and published on the list response as renewals, so the web page and the native client read the same answer. Nothing is worked out from age, history or the catalogue: an antigen without a planned booster shows no state. Renewals are null for a grant that does not reach the measurements section the reminders live in. Refs #1005
This commit is contained in:
1 parent
b480ac4543
commit
15d6251ad2
17 files changed
+672
-15
No files matched your search
@@ -60594,8 +60594,17 @@ components:
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/components/schemas/Vaccination"
|
||||
renewals:
|
||||
anyOf:
|
||||
- type: array
|
||||
items:
|
||||
$ref: "#/components/schemas/VaccinationRenewal"
|
||||
- type: "null"
|
||||
description: Each antigen's renewal state, earliest due first. Null when the caller acts under a grant that does not
|
||||
cover the measurements section the booster reminders live in.
|
||||
required:
|
||||
- vaccinations
|
||||
- renewals
|
||||
additionalProperties: false
|
||||
description: The caller's immunization history, newest dose first, with every entry's series already resolved over the
|
||||
whole live set — never over the filtered page, which would report the oldest dose in a window as the first ever
|
||||
@@ -60831,6 +60840,37 @@ components:
|
||||
grant does not cover the document vault: a dose lives in the health background but points into the vault, and a
|
||||
page's filename is itself the sensitive part. The link is still listed — the caller may know the dose was
|
||||
transcribed from a page — and `redacted` tells a withheld name apart from a page that simply has no date."
|
||||
VaccinationRenewal:
|
||||
type: object
|
||||
properties:
|
||||
antigen:
|
||||
type: string
|
||||
reminderId:
|
||||
type: string
|
||||
dueAt:
|
||||
type: string
|
||||
daysUntil:
|
||||
type: integer
|
||||
minimum: -9007199254740991
|
||||
maximum: 9007199254740991
|
||||
state:
|
||||
type: string
|
||||
enum:
|
||||
- current
|
||||
- dueSoon
|
||||
- overdue
|
||||
required:
|
||||
- antigen
|
||||
- reminderId
|
||||
- dueAt
|
||||
- daysUntil
|
||||
- state
|
||||
additionalProperties: false
|
||||
description: "One antigen's renewal state, read from the booster reminder the person confirmed for it (`dueAt` is that
|
||||
reminder's next due instant). `daysUntil` counts calendar days on the person's own clock and is negative once
|
||||
the date has passed. `state` is `overdue` once it has passed, `dueSoon` within 30 days, `current` otherwise.
|
||||
Render from `state`; do not recompute it. Nothing here is derived from age, history or the catalogue: an antigen
|
||||
without a confirmed booster has no entry."
|
||||
CreateVaccinationEnvelope:
|
||||
type: object
|
||||
properties:
|
||||
|
||||
Reference in new issue
Block a user