Feature #171
openCanteen: attendant meal sale, charged to the IP bill (behind a flag)
100%
Description
A patient's attendant eats at the canteen; the meal goes on the admission's bill instead of being paid at the till.
- IAttendantChargeService: active-admission lookup, ATTN-MEAL charge code, running bill, one bill item per meal at the visitor price. Payment mode ToIpBill; nothing collected at the till.
- Idempotency key is hospital-qualified so a retried completion cannot double the bill item.
- POS Attendant tab: IP number in, patient/ward/bed shown for confirmation, then sell.
- An attendant sale cannot be voided at the till; the message names Billing.
- Ships behind CanteenManagement:Features:AttendantSale, OFF by default: Billing has not confirmed the ATTN-MEAL charge code yet (open question BIL). The IPD admission-lookup contract (C2) is already in the shared kernel, so that half is ready.
Blocked on: Billing confirming ATTN-MEAL (BIL).
NP Updated by Navya P. about 1 month ago
test note
NP Updated by Navya P. about 1 month ago
Attendant sale (V1-11) built end to end, ships off (CanteenManagement Features AttendantSale), pending Billing confirming ATTN-MEAL.
Turned out bigger than expected: canteen had no way to reach Billing over HTTP at all, unlike HR, IPD and Admin which already have a shared kernel connector. Built across three repos: the kernel connector (branch feat canteen attendant billing client, pushed), a proposed Billing internal endpoint not yet reviewed by that team (branch feat canteen attendant billing internal, pushed), and the canteen side wired into the sale, the void refusal, the resolve and enabled endpoints, and the POS Attendant tab hidden while the flag is off (integration canteen v1, pushed).
Needs before this can be turned on: Billing confirms ATTN-MEAL, Billing reviews the proposed endpoint, shared kernel reviews the connector, then flip the flag.
API 513 unit plus 645 integration tests. Portal 445 tests. All green.
NP Updated by Navya P. about 1 month ago
- Due date set to 09/29/2026
- Status changed from New to Resolved
- % Done changed from 0 to 100
- Resolved By set to Navya P.