Merge branch 'feat/medication-record-only' into release/v1.39.1

This commit is contained in:
Marc-André Bombeck committed 2026-09-25 09:37:27 +02:00
commit e03cf7c2c8
81 files changed
+2283 -274

No files matched your search

+79 -4
View File
@@ -23136,6 +23136,16 @@ components:
rates/streaks, but intakes still log (ad-hoc), inventory still consumes, and the history renders. Stays
active indefinitely. Mutually exclusive with `oneShot`."
type: boolean
trackIntake:
description: "v1.39.1 — intake tracking. Default true. When false the medication keeps its dose, dates and schedules as
information, but nothing is ever due: no reminder on any channel, no projected slot, no entry on the today
list or the doses card, and no adherence figure anywhere. Existing intake history stays stored. Switching it
back on resumes from that moment; the time it was off never counts as missed. Omitted on update leaves the
current value. On a medication whose tracking is off, an update that does not name `trackIntake` leaves its
stored schedule alone: `schedules`, `asNeeded` and `oneShot` in such a request are ignored (a client that
does not know the field cannot have seen the stored schedule, which is served in `recordedSchedules`). Name
`trackIntake` to change the schedule of such a medication."
type: boolean
schedules:
type: array
items:
@@ -23451,6 +23461,16 @@ components:
rates/streaks, but intakes still log (ad-hoc), inventory still consumes, and the history renders. Stays
active indefinitely. Mutually exclusive with `oneShot`."
type: boolean
trackIntake:
description: "v1.39.1 — intake tracking. Default true. When false the medication keeps its dose, dates and schedules as
information, but nothing is ever due: no reminder on any channel, no projected slot, no entry on the today
list or the doses card, and no adherence figure anywhere. Existing intake history stays stored. Switching it
back on resumes from that moment; the time it was off never counts as missed. Omitted on update leaves the
current value. On a medication whose tracking is off, an update that does not name `trackIntake` leaves its
stored schedule alone: `schedules`, `asNeeded` and `oneShot` in such a request are ignored (a client that
does not know the field cannot have seen the stored schedule, which is served in `recordedSchedules`). Name
`trackIntake` to change the schedule of such a medication."
type: boolean
schedules:
type: array
items:
@@ -33100,6 +33120,8 @@ components:
type: boolean
asNeeded:
type: boolean
trackIntake:
type: boolean
deliveryForm:
type: string
enum:
@@ -42636,6 +42658,13 @@ components:
any schedule entry alongside the flag): it is never due (`nextDueAt` stays null), never reminded, and
excluded from every compliance rate/streak — but intakes still log as ad-hoc rows, inventory still consumes
per `unitsPerDose`, and the history renders. Stays active indefinitely. Mutually exclusive with `oneShot`."
trackIntake:
type: boolean
description: "v1.39.1 — intake tracking. True (the default) for every medication that existed before the field. When
false the medication is kept as a record: nothing is ever due (`nextDueAt` stays null), nothing reminds on
any channel, and it is excluded from every adherence figure. Its stored schedule then travels in
`recordedSchedules` while `schedules` is served empty, so a client that arms reminders from `schedules`
stays silent without an update."
createdAt:
type: string
format: date-time
@@ -42648,6 +42677,14 @@ components:
type: array
items:
$ref: "#/components/schemas/MedicationScheduleOutput"
description: "The schedules in force. Empty for an as-needed medication and (v1.39.1) for a medication with
`trackIntake: false`, whose stored schedule is in `recordedSchedules`."
recordedSchedules:
description: "v1.39.1 — present only when `trackIntake` is false: the stored schedule, kept as information. Nothing
derives a due dose or a reminder from it. Absent on a tracked medication, whose schedule is `schedules`."
type: array
items:
$ref: "#/components/schemas/MedicationScheduleOutput"
category:
$ref: "#/components/schemas/MedicationCategory"
externalSource:
@@ -42723,6 +42760,7 @@ components:
- endsOn
- oneShot
- asNeeded
- trackIntake
- createdAt
- updatedAt
- schedules
@@ -42887,6 +42925,13 @@ components:
any schedule entry alongside the flag): it is never due (`nextDueAt` stays null), never reminded, and
excluded from every compliance rate/streak — but intakes still log as ad-hoc rows, inventory still consumes
per `unitsPerDose`, and the history renders. Stays active indefinitely. Mutually exclusive with `oneShot`."
trackIntake:
type: boolean
description: "v1.39.1 — intake tracking. True (the default) for every medication that existed before the field. When
false the medication is kept as a record: nothing is ever due (`nextDueAt` stays null), nothing reminds on
any channel, and it is excluded from every adherence figure. Its stored schedule then travels in
`recordedSchedules` while `schedules` is served empty, so a client that arms reminders from `schedules`
stays silent without an update."
createdAt:
type: string
format: date-time
@@ -42899,6 +42944,14 @@ components:
type: array
items:
$ref: "#/components/schemas/MedicationScheduleOutput"
description: "The schedules in force. Empty for an as-needed medication and (v1.39.1) for a medication with
`trackIntake: false`, whose stored schedule is in `recordedSchedules`."
recordedSchedules:
description: "v1.39.1 — present only when `trackIntake` is false: the stored schedule, kept as information. Nothing
derives a due dose or a reminder from it. Absent on a tracked medication, whose schedule is `schedules`."
type: array
items:
$ref: "#/components/schemas/MedicationScheduleOutput"
category:
$ref: "#/components/schemas/MedicationCategory"
stockUnitsRemaining:
@@ -42942,6 +42995,7 @@ components:
- endsOn
- oneShot
- asNeeded
- trackIntake
- createdAt
- updatedAt
- schedules
@@ -43694,7 +43748,9 @@ components:
notApplicableReason:
anyOf:
- type: string
const: NO_LOCAL_SCHEDULE
enum:
- NO_LOCAL_SCHEDULE
- INTAKE_NOT_TRACKED
- type: "null"
compliance7:
description: Seven-day adherence summary, or an all-zero compatibility placeholder when applicable is false.
@@ -43953,10 +44009,13 @@ components:
notApplicableReason:
anyOf:
- type: string
const: NO_LOCAL_SCHEDULE
enum:
- NO_LOCAL_SCHEDULE
- INTAKE_NOT_TRACKED
- type: "null"
description: Reason adherence is not applicable. NO_LOCAL_SCHEDULE means the medication has no HealthLog-owned
expected-dose grid.
description: "Reason adherence is not applicable. NO_LOCAL_SCHEDULE means the medication has no HealthLog-owned
expected-dose grid. INTAKE_NOT_TRACKED (v1.39.1) means the medication's intake tracking is switched off
(`trackIntake: false`): its schedule is kept as information and nothing is expected from it."
compliance7:
description: Seven-day adherence summary. When applicable is false, this remains a non-null all-zero compatibility
placeholder for released clients and must not be rendered as a percentage.
@@ -72175,6 +72234,13 @@ components:
any schedule entry alongside the flag): it is never due (`nextDueAt` stays null), never reminded, and
excluded from every compliance rate/streak — but intakes still log as ad-hoc rows, inventory still consumes
per `unitsPerDose`, and the history renders. Stays active indefinitely. Mutually exclusive with `oneShot`."
trackIntake:
type: boolean
description: "v1.39.1 — intake tracking. True (the default) for every medication that existed before the field. When
false the medication is kept as a record: nothing is ever due (`nextDueAt` stays null), nothing reminds on
any channel, and it is excluded from every adherence figure. Its stored schedule then travels in
`recordedSchedules` while `schedules` is served empty, so a client that arms reminders from `schedules`
stays silent without an update."
createdAt:
type: string
format: date-time
@@ -72187,6 +72253,14 @@ components:
type: array
items:
$ref: "#/components/schemas/MedicationScheduleOutput"
description: "The schedules in force. Empty for an as-needed medication and (v1.39.1) for a medication with
`trackIntake: false`, whose stored schedule is in `recordedSchedules`."
recordedSchedules:
description: "v1.39.1 — present only when `trackIntake` is false: the stored schedule, kept as information. Nothing
derives a due dose or a reminder from it. Absent on a tracked medication, whose schedule is `schedules`."
type: array
items:
$ref: "#/components/schemas/MedicationScheduleOutput"
required:
- id
- name
@@ -72207,6 +72281,7 @@ components:
- endsOn
- oneShot
- asNeeded
- trackIntake
- createdAt
- updatedAt
- schedules