Payment list queries and NDR claim data retrieval¶
This operation covers clsPaymentList/clsPaymentListCollection (read-only payment worklists for pending approval and by-approver views), clsPaymentUser (payment initiate/approve authority limits), and the non-disabling reimbursement (NDR) claim-amount lookup logic embedded in clsNdRefund (the nested clsNDRClaimAmountsResponse helper and GetNDROverMax/SQLCompareNDRCurrentToMax), used by Refund adjustment processing.
| Field | Value |
|---|---|
| Operation ID | OP-CP-14 |
| Trigger | Adjuster/approver requests a payment worklist; a payment initiation/approval checks the acting user's authority; a refund requests NDR claim amounts |
| Inputs | Mail/approver ID, business function and payment amount (authority check), claim ID (NDR lookup) |
| Outputs | Read-only payment-list rows (with confidentiality masking applied); authority pass/fail result; NDR claim amount figures |
| Primary components | clsPaymentList, clsPaymentListCollection, clsPaymentUser, clsNdRefund (NDR claim-amount retrieval) |
| Entry point | Business\SAIF.Business.Claim.Payment\clsPaymentListCollection.vb |
Steps¶
- Retrieve payments pending approval.
clsPaymentListCollectionexecutespk82394_claim_benefit.getPaymentsByApprover(SQL-073) for one worklist view. - Retrieve a second by-approver payment view. A related overload of the same stored procedure (SQL-074) returns a differently-scoped by-approver list. Together, the two overloads let the caller filter the worklist by whether the acting user is the payment's approver or its initiator (BR-CP-002).
- Retrieve pending awards.
pk82394_claim_benefit.getPendingAwards(SQL-075) returns awards awaiting approval, feeding the same worklist surface alongside other pending payment types. - Mask confidential worker identity (BR-CP-071).
clsPaymentList.WorkerNamereturns the literal "Confidential" instead of the worker's real name whenever the underlying claim is flagged as a worker conflict. - Check the acting user's payment authority (BR-CP-072).
clsPaymentUser.HasAuthority/PaymentAuthoritiesexclude any authority limit past its expiration date and permit initiating or approving only up to that limit's configured maximum amount, returningApprovalErrors.AuthorityLevel/NotAllowedToApprovewhen the amount or expiration is out of bounds. - Retrieve NDR claim amounts primarily from the claim-data API.*
clsNdRefund.GetNDROverMaxcalls the external claim-data API endpointv1/GeneralClaimData/Claim/Nondisabling/ReimbursementAmountsviaGetApiRouteMaxNdr, deserializing the response into the nestedclsNDRClaimAmountsResponse/NdrClaimDataResponsetypes, and comparesTotalRecoveredAmount + NDRAmountagainstMaxReimbursementAmountper claim. - Fall back to a local comparison query when needed.
clsNdRefund.SQLCompareNDRCurrentToMax(SQL-067) computes the same current-vs-maximum comparison directly against local tables (CLAIM_NON_DISAB_REIMB_MAX, CL_FINANCIAL_TRANS_DTL, CL_INJURY_CLAIM) as an inline alternative to the API call. - Compare recovered amount to the statutory maximum (BR-CP-073). This comparison — and the resulting over-maximum flag consumed by Refund adjustment processing — is fully embedded in
clsNdRefund; it is documented here as the data-retrieval side of that check, since it is the SQL/API-facing logic rather than the refund-creation workflow itself.
Process flow¶
flowchart TD
Start([Adjuster/approver opens<br>payment worklist]) --> WhichList{Which list?}
WhichList -->|Pending approval| ProcA[Call getPaymentsByApprover]
WhichList -->|By-approver view| ProcB[Call getPaymentsByApprover overload]
WhichList -->|Pending awards| ProcC[Call getPendingAwards]
ProcA --> Mask{Claim flagged as<br>worker conflict?}
ProcB --> Mask
ProcC --> Mask
Mask -->|Yes| Confidential[Worker name shown<br>as Confidential]
Mask -->|No| RealName[Worker name shown as-is]
Confidential --> Rendered([Worklist rendered])
RealName --> Rendered
AuthStart([Payment initiate/approve<br>requested]) --> AuthCheck{Within authority limit<br>and not expired?}
AuthCheck -->|No| AuthBlocked([Blocked: authority error])
AuthCheck -->|Yes| AuthOK([Initiate/approve allowed])
NDRStart([Refund requests<br>NDR claim amounts]) --> CallAPI[Call claim-data API<br>or local comparison query]
CallAPI --> Compare{Recovered + proposed ><br>statutory maximum?}
Compare -->|Yes| FlagOverMax([Claim flagged<br>for adjuster review])
Compare -->|No| NoFlag([No flag raised])
Failure and edge-case behavior¶
- The confidentiality mask only substitutes the worker's name string; it does not remove other potentially identifying fields (payment amount, dates, payee type) from the same worklist row, so downstream consumers relying on the mask for full anonymization should not assume it is comprehensive.
- Authority limits are checked purely by amount and expiration date at the moment of the check; a limit that expires between initiation and approval of the same payment would need to be re-checked at approval time to catch that change (consistent with the check being invoked separately at each stage).
clsNdRefund's dependency on an external claim-data API for the primary NDR lookup path means claim amount figures reflect that API's data as of the call, not necessarily the same instant as the payment library's own transaction data — a timing/consistency consideration flagged as inferred* rather than directly confirmed in this layer. The localSQLCompareNDRCurrentToMaxfallback avoids that dependency but was not confirmed as the primary path.- No SQL catalog entries exist for a distinct
clsPaymentList(non-collection) persistence path; it is a read-only projection over the collection's stored-procedure results.
Related documentation¶
Note: Statements marked with
*were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.
Sources¶
Business\SAIF.Business.Claim.Payment\clsPaymentListCollection.vbBusiness\SAIF.Business.Claim.Payment\clsPaymentList.vbBusiness\SAIF.Business.Claim.Payment\clsPaymentUser.vbBusiness\SAIF.Business.Claim.Payment\Adjustments\Refunds\clsNdRefund.vbBusiness\SAIF.Business.Claim.Payment\NdrClaimData.vb