---
title: "Changes to Autocomplete suggestions for the line-item note field (ITE-573 + ITE-574): saved note\ntemplates merged with distinct notes previously used on estimate lines for the same\ncatalog item. Saved entries carry `source: \"saved\"` + their `templateId`;\nhistory entries carry `source: \"history\"` + null. Serves the FE combobox (ITE-575).\n\nSaved-template candidacy: templates with an attachment to the line's item id, tag\nattachments whose Smart Tag is assigned to the line's item (service/inventory lines\nonly — retail and billable items are not taggable), plus any-item templates\n(AppliesToAnyItem, offered on any keyed line); Clinic scope for everyone, Personal\nscope only for the owner. A history entry whose trimmed\ncase-insensitive text equals a saved template's collapses INTO the saved entry\n(saved wins). Orphaned templates (item-specific, all items deleted) are never offered.\n\nThe caller sends exactly one item-id param — whichever FK the line being authored keys\non. `PrescriptionItemId` is deliberately NOT a keying param: Rx-created lines always\ncarry `InventoryItemId` too, and a prescription item is a per-prescription governance\nrecord, not a reusable catalog identity.\n\nRanking: q match quality (prefix beats substring) → recency → frequency. De-duped\ncase-insensitively on trimmed text; blank or &lt;3-char notes excluded. Always 200 with\n`[]` on no key / no match."
method: GET
path: "/Estimates/line-item-notes/suggestions"
---

# Changes to Autocomplete suggestions for the line-item note field (ITE-573 + ITE-574): saved note
templates merged with distinct notes previously used on estimate lines for the same
catalog item. Saved entries carry `source: "saved"` + their `templateId`;
history entries carry `source: "history"` + null. Serves the FE combobox (ITE-575).

Saved-template candidacy: templates with an attachment to the line's item id, tag
attachments whose Smart Tag is assigned to the line's item (service/inventory lines
only — retail and billable items are not taggable), plus any-item templates
(AppliesToAnyItem, offered on any keyed line); Clinic scope for everyone, Personal
scope only for the owner. A history entry whose trimmed
case-insensitive text equals a saved template's collapses INTO the saved entry
(saved wins). Orphaned templates (item-specific, all items deleted) are never offered.

The caller sends exactly one item-id param — whichever FK the line being authored keys
on. `PrescriptionItemId` is deliberately NOT a keying param: Rx-created lines always
carry `InventoryItemId` too, and a prescription item is a per-prescription governance
record, not a reusable catalog identity.

Ranking: q match quality (prefix beats substring) → recency → frequency. De-duped
case-insensitively on trimmed text; blank or &lt;3-char notes excluded. Always 200 with
`[]` on no key / no match.

`GET /Estimates/line-item-notes/suggestions`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 1 of 14 revisions.

- **2026-09-11** `503cd0546309`: 1 info

## Changes

- **2026-09-11** `503cd0546309`: 1 info
  - endpoint added

---

[Operation](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/docs/Estimates/line-item-notes/suggestions/get.md) - [API](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1.md) - [Page](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/changes/Estimates/line-item-notes/suggestions/get)
