Skip to content

Claim award and closure order retrieval

This operation retrieves two related, SQL-backed per-claim history sub-objects: claim award/benefit-payment detail (clsAwardInfo) and claim closure/order header records (clsClosureOrder). Both are simple inline-SQL retrievals with no shared rule set beyond claim-scoped filtering, but neither has an existing per-operation home in the previous documentation, so they are documented together as newly-traced claim-detail retrievals.

Field Value
Operation ID OP-VC-10
Trigger Caller reads clsClaimData.AwardInfo (lazy-loads clsAwardInfo), or calls clsClosureOrder.GetClosureOrders(claimID) or single-record retrieval by closure/order ID
Inputs Claim ID; optional closure ID and order ID for clsClosureOrder single-record retrieval
Outputs clsAwardInfo (award details, counts by type, active/state/federal award flags); one clsClosureOrder or IEnumerable(Of clsClosureOrder) (closure/order header, order type, rescission flag)
Primary components clsAwardInfo.Details, clsAwardInfo.DetailsByType, clsAwardInfo.GetActiveAward, clsClosureOrder.GetClosureOrders, clsClosureOrder.Load
Entry point Business\SAIF.Business.View.Claim\clsAwardInfo.vb, Business\SAIF.Business.View.Claim\clsClosureOrder.vb

Steps

  1. Award retrieval — query awards and payments. clsAwardInfo queries CL_AWARD joined to CL_BENEFIT_PAYMENT for the claim to build the award detail list.
  2. Award retrieval — recalculate PPD balances. For rows whose benefit type is permanent partial disability (PPD), a second query against cl_state_award_monthly_payee and cl_benefit_payee replaces the balance from step 1 with a payee-level computed balance (BR-011).
  3. Award retrieval — map status. Each award's status code (A/P/S/D) is mapped to an enum value; any other code maps to Unknown.
  4. Award retrieval — expose summaries. clsAwardInfo exposes Details, DetailsByType(type), LastAwardByType(type), GetActiveAward(), CountByType(type), AwardCount, StateCount, FederalCount, and boolean flags HasActiveAward/HasStateAward/HasFederalAward.
  5. Closure order retrieval — query closure/order header. clsClosureOrder's claim-level query selects from cl_claim_closure_order joined to cl_order_type_code; a single-record variant adds closure ID and order ID filters.
  6. Closure order retrieval — mark loaded. Load sets the object as valid (IsValid = True) once populated.
  7. Closure order retrieval — lazily resolve order type description. The OrderType property lazy-loads the full order-type reference row via clsOrderTypeCode.GetOrderTypeCode(dataPortalInfo, OrderTypeCode) on first access.
  8. Return results. clsAwardInfo is returned as clsClaimData.AwardInfo; clsClosureOrder.GetClosureOrders returns a single object or an enumerable of closure/order records for the claim.

Process flow

The following diagram visualizes this operation's control flow.

flowchart TD
    Start([Caller requests award or closure order data]) --> Which{Award info or closure order?}
    Which -->|Award| QueryAward[Query CL_AWARD joined to<br>CL_BENEFIT_PAYMENT]
    QueryAward --> PPD{Benefit type is PPD?}
    PPD -->|Yes| Recalc[Recalculate balance from<br>state award payee tables]
    PPD -->|No| KeepBalance[Keep original balance]
    Recalc --> MapStatus[Map status code to enum]
    KeepBalance --> MapStatus
    MapStatus --> DoneAward([Return clsAwardInfo])
    Which -->|Closure order| QueryClosure[Query cl_claim_closure_order<br>joined to cl_order_type_code]
    QueryClosure --> MarkValid[Mark object valid]
    MarkValid --> DoneClosure([Return clsClosureOrder / enumerable])

Failure and edge-case behavior

  • An unmapped award status code defaults to Unknown rather than raising an error, so unexpected status values are silently absorbed.
  • PPD balance recalculation issues one additional query per PPD award row, so claims with many PPD awards incur proportionally more database round-trips.*
  • OrderType description resolution is lazy and depends on a successful separate lookup against the order-type reference table; if that lookup fails, the closure/order object still returns its own code-level fields.*

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.View.Claim\clsAwardInfo.vb
  • Business\SAIF.Business.View.Claim\clsClosureOrder.vb
  • Business\SAIF.Business.View.Claim\clsClaimData.vb