---
title: "The \"Why this reminder?\" debugger view: rule (current + as-emitted),
trigger, timeline, and computed conflicts (PAW-624)"
method: GET
path: "/Reminders/{id}/debug"
tags: ["Reminders"]
---

# The "Why this reminder?" debugger view: rule (current + as-emitted),
trigger, timeline, and computed conflicts (PAW-624)

`GET /Reminders/{id}/debug`

## Path parameters

- `id` string, required

## Response `200`

OK

- ReminderDebugDto — Composed "Why this reminder?" payload (PAW-624): the reminder, the rule that produced it (current + the version pinned at emission), the trigger, the lifecycle timeline, and computed conflicts.
  - `reminder` ReminderResponseDto — Response DTO for reminder
    - `id` string
    - `title` string
    - `description` string, nullable
    - `category` integer
    - `origin` integer
    - `dueDate` string, date-time
    - `snoozeUntil` string, date-time, nullable
    - `isActive` boolean
    - `isCompleted` boolean
    - `completedAt` string, date-time, nullable
    - `patientId` string, nullable
    - `patientName` string, nullable
    - `clientId` string, nullable
    - `clientName` string, nullable
    - `appointmentId` string, nullable
    - `customAttributes` object, nullable
    - `emissionSource` integer — What kind of producer created a machine- or human-generated work item (Reminder or WorkTask). Structured replacement for the provenance that used to live only in `Reminder.CustomAttributes`. ReminderOrigin is kept for API compatibility; this is the authoritative answer to "what created this?".
    - `generatedByRuleId` string, nullable
    - `generatedByRuleVersion` union
      - integer
      - string, int32
    - `triggerEventType` string, nullable
    - `triggerEntityType` string, nullable
    - `triggerEntityId` string, nullable
    - `suppressedAt` string, date-time, nullable
    - `suppressedByUserId` string, nullable
    - `suppressedReason` string, nullable
    - `completionType` integer
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
    - `status` integer
  - `rule` WorkItemRuleDto
    - `id` string
    - `name` string
    - `description` string, nullable
    - `kind` integer — What domain a `WorkItemRule` governs. Drives which dimension columns apply and how the debugger/admin UI render the rule in clinic language.
    - `emitType` integer — Which work-item table a WorkItemEventType history row refers to.
    - `emitReminderCategory` integer
    - `emitTaskCategory` integer
    - `emitTaskPriority` integer
    - `titleTemplate` string, nullable
    - `descriptionTemplate` string, nullable
    - `triggerEventTypes` string[]
    - `speciesIds` string[], nullable
    - `requiredTagIds` string[], nullable
    - `excludedTagIds` string[], nullable
    - `triggerTagId` string, nullable
    - `minAgeMonths` union
      - integer
      - string, int32
    - `maxAgeMonths` union
      - integer
      - string, int32
    - `locationId` string, nullable
    - `cadenceOffsetsDays` union[]
      - union
        - integer
        - string, int32
    - `recurrenceIntervalMonths` union
      - integer
      - string, int32
    - `autoSatisfyOnTrigger` boolean
    - `isActive` boolean
    - `version` union
      - integer
      - string, int32
    - `itemMaps` WorkItemRuleItemMapDto[]
      - `id` string
      - `billableItemId` string, nullable
      - `billableItemName` string, nullable
      - `vaccineTypeId` string, nullable
      - `vaccineTypeName` string, nullable
      - `serviceCatalogItemId` string, nullable
      - `serviceCatalogItemName` string, nullable
      - `inventoryItemId` string, nullable
      - `inventoryItemName` string, nullable
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
  - `ruleSnapshot` object, nullable — The rule as it was when this reminder was emitted (version snapshot).
  - `ruleChangedSinceEmission` boolean
  - `trigger` ReminderTriggerInfoDto
    - `entityType` string
    - `entityId` string
    - `eventType` string, nullable
    - `exists` boolean — False when the trigger entity has since been deleted.
    - `description` string, nullable — Clinic-language one-liner, e.g. "Rabies vaccination recorded 2026-06-03".
  - `events` WorkItemEventDto[]
    - `id` string
    - `workItemType` integer — Which work-item table a WorkItemEventType history row refers to.
    - `workItemId` string
    - `eventType` integer — Lifecycle transitions recorded in the work_item_events history table. This is the data behind the "why this reminder?" timeline (PAW-624).
    - `actorUserId` string, nullable
    - `actorName` string, nullable — Display name of the acting user; "System" semantics are left to the client when null.
    - `data` object, nullable
    - `timestamp` string, date-time
  - `conflicts` ReminderConflictDto[]
    - `key` string — Stable machine key, e.g. "rule-inactive", "possible-duplicate".
    - `severity` string — "Warning" or "Info".
    - `message` string
    - `relatedReminderId` string, nullable — For duplicate conflicts: the other reminder involved.

## 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/versions/a905bde4e796/schema)
