---
title: "Suggest the schedule stage and next-due date for a dose being administered — which dose of
the series this is, and when the next one is due (generalizes the rabies 1-vs-3-year rule)."
method: GET
path: "/api/Vaccinations/next-dose"
tags: ["Vaccinations"]
---

# Suggest the schedule stage and next-due date for a dose being administered — which dose of
the series this is, and when the next one is due (generalizes the rabies 1-vs-3-year rule).

`GET /api/Vaccinations/next-dose`

## Query parameters

- `patientId` string
- `vaccineTypeId` string
- `administeredDate` string, date-time

## Response `200`

OK

- NextDoseSuggestionDto — Point-of-care suggestion for the dose being administered: which schedule stage it is, and when the NEXT dose is due. Exactly one of int? NextDoseSuggestionDto.SuggestedIntervalDays (series dose coming up, e.g. "lepto dose 2 in 21 days") or int? NextDoseSuggestionDto.SuggestedDurationMonths (expiry-driven booster) is set — or neither, when bool NextDoseSuggestionDto.IsSeriesComplete says this dose ends the course. Generalizes the rabies 1-vs-3-year rule (ITE-162) to any vaccine schedule.
  - `vaccineTypeId` string
  - `hasSchedule` boolean — False when the type has no explicit schedule and isn't rabies — plain single-duration behavior.
  - `stageSequence` union — 1-based stage this dose resolves to (1 = first dose or series restart).
    - integer
    - string, int32
  - `stageCount` union
    - integer
    - string, int32
  - `stageLabel` string, nullable
  - `isSeriesRestart` boolean — True when prior doses exist but lapsed beyond the grace window, so the series restarts.
  - `isSeriesComplete` boolean — True when this dose is the last of a non-repeating schedule: nothing further is due, so there is no suggested interval, duration, or next-due date (and no reminders).
  - `isRabies` boolean
  - `suggestedIntervalDays` union — Next dose due this many days after administration (series), else null.
    - integer
    - string, int32
  - `suggestedIntervalMaxDays` union — Upper bound of the recommended window (display only).
    - integer
    - string, int32
  - `suggestedDurationMonths` union — Validity this dose confers in months (expiry-driven), else null.
    - integer
    - string, int32
  - `labeledDurationMonths` union — The product's labeled (maximum) duration in months.
    - integer
    - string, int32
  - `durationOptionsMonths` union[] — Distinct certifiable durations for the override UI (e.g. [12, 36] for rabies).
    - union
      - integer
      - string, int32
  - `suggestedNextDueDate` string, date-time, nullable — Server-computed next-due date from the given administration date (the FE default). Null when bool NextDoseSuggestionDto.IsSeriesComplete — nothing further is due.

## Other responses

- `404` — Not Found

---

[API](https://skmtc.net/clinicos/apis/pawthosx-business-api-v1.md) · [All operations](https://skmtc.net/clinicos/apis/pawthosx-business-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/clinicos/pawthosx-business-api-v1/revisions/a905bde4e796/schema)
