Estimates

Mark an estimate line performed. For an undispensed inventory line this runs the in-visit dispense (stamping `InventoryTransactionId` on the line; no Invoice involvement until convert). Gas items have no transaction.

Changed on
post/Estimates/{id}/items/{lineId}/perform

Request

Path parameters

idstring required
lineIdstring required

Request body

dispenseTypestring nullable

InHouse (administered now) or Prescription (take-home). Defaults to InHouse.

dispositionstring nullable

Explicit dispense disposition (InHouse | TakeHomeLabelNow | TakeHomeLabelLater). When supplied it is persisted on the line and drives the convert gate (take-home requires the SIG filled; in-house never blocks). Falls back to a mapping from string? PerformEstimateItemRequest.DispenseType when omitted.

overrideValidationboolean
overrideReasonstring nullable
lotIdstring nullable

ITE-157: the confirmed lot/container for a plain inventory line (null = FEFO/auto).

containerIdstring nullable
containerPinsobject nullable

ITE-1361: per-lot container pins (lot id → container row id) for a blank-lot perform that the engine splits earliest-expiry-first across lots. See Dictionary<string, string>? DispenseItemDto.ContainerPins.

witnessUserIdstring nullable

Real witness for a controlled-substance dispense — replaces the appointment self-witness when supplied.

componentOverrideReasonstring nullable

Required when the charge's dispensed component set deviates from the catalog default (skip / substitute / quantity change / addition).

Response

OK

idstring
serviceCatalogItemIdstring nullable
retailItemIdstring nullable
inventoryItemIdstring nullable
billableItemIdstring nullable

Source BillableItem ("Charge") id when this line is a charge.

codestring
descriptionstring
qtyModestring
isFlatRateboolean

Flat-rate inventory line: bills one administration at UnitPrice whatever amount is given.

isTaxableboolean
vatCategorystring nullable

The source item's VAT category ("standard" | "reduced" | "zero" | "exempt"; null is standard). Prices the line in VAT mode, at the rate convert bills it at (ITE-1539).

notestring nullable
groupIdstring nullable

The EstimateLineGroupDto this line sits under; null when ungrouped.

createdByAiboolean

True when the line came from an accepted AI treatment suggestion (ITE-871).

groupCodeIdstring nullable

The kit this line was expanded from; null for a line added on its own.

groupCodeNamestring nullable

The kit's name when it was added.

kitInstanceIdstring nullable

Shared by every line one add of a kit produced.

serviceTypestring

"Procedure" | "Inventory" | "Retail" — derived from the source FK.

inventoryItemCategorystring nullable

InventoryItemCategory ("Vaccine", "Medication", …) for an inventory-backed line; routes the perform flow (e.g. vaccine administration).

executionStatusstring

Pending | Performed | Declined.

dispositionstring nullable

Persisted dispense disposition: InHouse | TakeHomeLabelNow | TakeHomeLabelLater (null for non-dispensing lines).

requiresSigboolean

True when this performed take-home line still needs its SIG / medication details filled (blocks convert). Drives the per-line "Fill instructions" affordance. In-house lines are never required.

markedForBillingboolean
inventoryTransactionIdstring nullable

Set once an inventory line is dispensed in-visit. The void reversal anchors on this.

performedByIdstring nullable
performedByNamestring nullable
performedAtstring date-time nullable
declinedReasonstring nullable
declinedAtstring date-time nullable
isControlledSubstanceboolean

True for a controlled-substance inventory line (gates the void-reason requirement).

discountSetByIdstring nullable
discountSetByNamestring nullable
discountSetAtstring date-time nullable
priceOverriddenByIdstring nullable
priceOverriddenByNamestring nullable
priceOverriddenAtstring date-time nullable

Changes

    • info

      added the optional property to the response with the status (media type: text/plain)

    • info

      added the optional property to the response with the status (media type: application/json)

    • info

      added the optional property to the response with the status (media type: text/json)

    • info

      added the optional property to the response with the status (media type: text/plain)

    • info

      added the optional property to the response with the status (media type: application/json)

    • info

      added the optional property to the response with the status (media type: text/json)

    • info

      added the optional property to the response with the status (media type: text/plain)

    • info

      added the optional property to the response with the status (media type: application/json)

    • info

      added the optional property to the response with the status (media type: text/json)

    • info

      added the optional property to the response with the status (media type: text/plain)

    • info

      added the optional property to the response with the status (media type: application/json)

    • info

      added the optional property to the response with the status (media type: text/json)

    • info

      added the new optional request property //// (media type: application/json)

    • info

      added the new optional request property //// (media type: text/json)

    • info

      added the new optional request property //// (media type: application/*+json)

    • info

      added the optional property to the response with the status (media type: text/plain)

    • info

      added the optional property to the response with the status (media type: application/json)

    • info

      added the optional property to the response with the status (media type: text/json)