feat(sp29): inbox rejected-row 999 ack chips + per-row Resubmit
- backend: _ack_summary_for_claims helper attaches claim_acks payload to inbox rejected-lane rows (3 tests) - frontend: InboxRow renders newest 3 AK2 chips + '+N more' overflow under the rejection reason, with '999 not linked' marker when an ack couldn't be linked to a claim - frontend: per-row Resubmit button downloads a single corrected 837 via api.serializeClaim837 (no bulk modal, no zip — one click, one .x12 file) - frontend: 2 new tests for the chip rendering and the per-row download flow
This commit is contained in:
@@ -54,6 +54,28 @@ export type InboxClaimRow = {
|
||||
payer_rejected_by_277ca_id?: string | null;
|
||||
payer_rejected_acknowledged_at?: string | null;
|
||||
payer_rejected_acknowledged_actor?: string | null;
|
||||
// SP29: present on `rejected`-lane rows (999 envelope rejects).
|
||||
// Newest 5 AK2 set-responses for this claim plus a `total` /
|
||||
// `rejected` summary. `null` when the claim has zero linked
|
||||
// 999 acks. Filtered to ack_kind='999' only — the
|
||||
// `payer_rejected` lane carries 277CA evidence separately.
|
||||
claim_acks?: InboxClaimAckSummary | null;
|
||||
};
|
||||
|
||||
/**
|
||||
* SP29: per-claim 999 ack-evidence summary for the Inbox
|
||||
* `rejected`-lane drill. Newest-first; up to 5 items.
|
||||
*/
|
||||
export type InboxClaimAckSummary = {
|
||||
total: number;
|
||||
rejected: number;
|
||||
items: Array<{
|
||||
ack_id: number;
|
||||
set_control_number: string;
|
||||
set_accept_reject_code: string;
|
||||
ak2_index: number;
|
||||
linked_at: string;
|
||||
}>;
|
||||
};
|
||||
|
||||
export type InboxCandidateRow = {
|
||||
|
||||
Reference in New Issue
Block a user