Skip to content

SAIF.Business.Claim.Payment architecture

SAIF.Business.Claim.Payment is the claim-payment business component for financial transactions, benefit periods and schedules, payees, awards, payment posting, and wage and time-loss calculation workflows backed primarily by Oracle package contracts.

Responsibilities

  • Persist and retrieve financial transactions, transaction detail, transaction remarks, and payment postings.
  • Maintain benefit remarks, benefit periods, benefit schedules, payees, awards, and award offsets.
  • Expose payment-list and pending-award retrieval workflows for payment operations.
  • Calculate wage, offset, and time-loss payment data across primary and secondary calculation models.
  • Support adjustment and recovery scenarios that depend on payment and financial-transaction state.

Inherited framework context (from Legends CLI)

Cached resolvedTypes[].queries[] results for SAIF.Business.Claim.Payment indicate the following inherited framework behavior:

  • IBusinessCriteria provides the BOF criteria contract that supplies overridable create/retrieve/insert/update/delete request slots for database and API-backed requests.† (source: saif-framework-core library docs)
  • IDataPortalInfo supplies connection, data-access-layer, API-client, and scalar-execution context to business objects during persistence and retrieval.† (source: saif-framework-core library docs)
  • IDataRequest represents the request abstraction used by the Oracle and SQL portal implementations beneath BOF business objects.† (source: saif-framework-core library docs)
  • clsBusinessBase contributes edit lifecycle support and a per-object clsRulesManager used to surface validation state.† (source: saif-framework-core library docs)
  • clsBusinessCollection(Of T) contributes typed collection traversal, deleted-item tracking, and collection-level validation surfacing.† (source: saif-framework-core library docs)
  • clsBusinessCollectionBase contributes collection traversal, deleted-item tracking, and IDataErrorInfo validation surfacing for collection objects.† (source: saif-framework-core library docs)
  • clsResultSet is identified as a framework result-wrapper type, but no deeper indexed behavior was returned by the cached Legends results.† (source: saif-framework-core library docs)
  • clsSAIFDataReader is identified as a framework data-reader abstraction, but no deeper indexed behavior was returned by the cached Legends results.† (source: saif-framework-core library docs)
  • clsSmartDate is part of the BOF smart-value wrapper set used to carry null-safe date values through business objects.† (source: saif-framework-core library docs)
  • clsSmartDecimal is part of the BOF smart-value wrapper set used to carry null-safe decimal values through business objects.† (source: saif-framework-core library docs)
  • clsSmartString is part of the BOF smart-value wrapper set used to carry null-safe string values through business objects.† (source: saif-framework-core library docs)

Component boundaries

  • Financial-transaction boundary: FinancialTransaction\* classes own transaction header, detail, remark, posting, and payment-total persistence.
  • Benefit and payee boundary: clsBenefitRemark, Periods\clsBenefitPeriod*, Payees\*, and Payments\clsPaymentBase own benefit- and payee-centric payment state.
  • Award boundary: Payments\StateAwardPayments\* owns award, award-offset, and state-award payee behavior.
  • Payment-list boundary: clsPaymentList* owns filtered list retrieval for operational payment queues.
  • Wage and time-loss boundary: Wage and Job\* and related timeloss classes own wage-period, earnings, offset, and time-loss calculation state.

Interaction model

Consumers save or retrieve BOF payment objects and collections, each object fills criteria SQL or stored-procedure names, and IDataPortalInfo routes those requests to Oracle. Financial-transaction and benefit modules depend heavily on package contracts, while wage-calculation classes persist their own calculation tables through many criteria-specific CRUD objects.

Architecture diagram

The following diagram shows high-level component interactions.


flowchart TD

    A[Payment applications] --> B[Payment business objects]

    B --> C[Financial transaction layer]

    B --> D[Benefit and payee layer]

    B --> E[Wage and timeloss calculations]

    C --> F[PK82343_FINANCIAL_TRANS]

    D --> G[PK82394_CLAIM_BENEFIT]

    E --> H[Payment calculation tables]

    F --> I[Oracle payment tables]

    G --> I

Sequence diagram

The following diagram shows the primary request/response sequence.


sequenceDiagram

    participant App as Payment application

    participant Trans as clsFinancialTrans

    participant DPI as IDataPortalInfo

    participant Proc as pk82343_financial_trans

    participant DB as Payment tables

    App->>Trans: Save financial transaction

    Trans->>DPI: Submit insert or update request

    DPI->>Proc: Execute financial transaction package method

    Proc->>DB: Persist transaction header and detail state

    DB-->>Proc: Rowcount and transaction data

    Proc-->>DPI: Package result

    DPI-->>Trans: Materialized payment object

    Trans-->>App: Updated transaction state

Design constraints

  • The payment library is package-heavy: benefit, financial-transaction, payment-list, and posting workflows depend on Oracle package contracts rather than purely inline SQL.
  • Stage 1b could not retrieve source for PK82394_CLAIM_BENEFIT, PK82343_FINANCIAL_TRANS, or PK82395_OVERPAYMENTS, so database-side behavior is only traceable to caller contracts and live SQL signatures.
  • Wage and time-loss calculations add a large number of criteria-driven table mappings, increasing schema-coupling and regression scope.
  • No local security or configuration surface was identified, so runtime behavior depends mainly on BOF infrastructure and Oracle contracts rather than library-owned settings.

Note: Statements marked with † are derived from dependency library documentation via the Legends CLI. Statements marked with ** could not be confirmed; treat them as unknown until verified.

Sources

  • Business\SAIF.Business.Claim.Payment\clsBenefitRemark.vb
  • Business\SAIF.Business.Claim.Payment\clsPaymentListCollection.vb
  • Business\SAIF.Business.Claim.Payment\Adjustments\clsAdjustmentCategory.vb
  • Business\SAIF.Business.Claim.Payment\FinancialTransaction\clsFinancialTrans.vb
  • Business\SAIF.Business.Claim.Payment\FinancialTransaction\clsFinancialTransCollection.vb
  • Business\SAIF.Business.Claim.Payment\FinancialTransaction\clsFinancialTransDtl.vb
  • Business\SAIF.Business.Claim.Payment\FinancialTransaction\clsFinancialTranRemark.vb
  • Business\SAIF.Business.Claim.Payment\FinancialTransaction\clsPaymentPosting.vb
  • Business\SAIF.Business.Claim.Payment\Payees\clsPayeeBase.vb
  • Business\SAIF.Business.Claim.Payment\Payments\clsPaymentBase.vb
  • Business\SAIF.Business.Claim.Payment\Payments\TimelossPayments\clsBenefitSchedule.vb
  • Business\SAIF.Business.Claim.Payment\Periods\clsBenefitPeriod.vb
  • Business\SAIF.Business.Claim.Payment\Wage and Job\clsClaimTimelossCalculation.vb
  • Business\SAIF.Business.Claim.Payment\Pipelines\build-vars.yml
  • Business\SAIF.Business.Claim.Payment\packages.config
  • Business\SAIF.Business.Claim.Payment\SAIF.BOF.Business.Claim.Payment.nuspec
  • Business\SAIF.Business.Claim.Payment\Adjustments\Refunds\clsNdRefund.vb
  • Business\SAIF.Business.Claim.Payment\Adjustments\clsBillPaymentAdjustment.vb
  • Business\SAIF.Business.Claim.Payment\FinancialTransaction\clsFinancialTransDtlCollection.vb
  • Business\SAIF.Business.Claim.Payment\FinancialTransaction\clsPaymentPostingCollection.vb
  • Business\SAIF.Business.Claim.Payment\FinancialTransaction\clsPaymentTotalManager.vb
  • Business\SAIF.Business.Claim.Payment\Payees\clsAwardPayeeInfo.vb
  • Business\SAIF.Business.Claim.Payment\Payees\clsPayeeCollection.vb
  • Business\SAIF.Business.Claim.Payment\Payees\clsSupportPayee.vb
  • Business\SAIF.Business.Claim.Payment\Payments\NonRecurringPayments\clsEmployerRefundPayment.vb
  • Business\SAIF.Business.Claim.Payment\Payments\SettlementPayments\clsDCSPayment.vb
  • Business\SAIF.Business.Claim.Payment\Payments\SettlementPayments\clsSettlementPayment.vb
  • Business\SAIF.Business.Claim.Payment\Payments\StateAwardPayments\clsAward.vb
  • Business\SAIF.Business.Claim.Payment\Payments\StateAwardPayments\clsAwardCollection.vb
  • Business\SAIF.Business.Claim.Payment\Payments\StateAwardPayments\clsAwardSSOffset.vb
  • Business\SAIF.Business.Claim.Payment\Payments\StateAwardPayments\clsAwardSSOffsetCollection.vb
  • Business\SAIF.Business.Claim.Payment\Payments\TimelossPayments\clsBenefitScheduleCollection.vb
  • Business\SAIF.Business.Claim.Payment\Payments\TimelossPayments\clsOffsetWageCalcPeriod.vb
  • Business\SAIF.Business.Claim.Payment\Payments\TimelossPayments\clsOffsetWageCalcPeriods.vb
  • Business\SAIF.Business.Claim.Payment\Payments\TimelossPayments\clsOffsetWageCalculation.vb
  • Business\SAIF.Business.Claim.Payment\Payments\TimelossPayments\clsSupplementalWagePeriod.vb
  • Business\SAIF.Business.Claim.Payment\Payments\TimelossPayments\clsSupplementalWagePeriods.vb
  • Business\SAIF.Business.Claim.Payment\Payments\TimelossPayments\clsSupplementalWages.vb
  • Business\SAIF.Business.Claim.Payment\Payments\TimelossPayments\clsTimelossPayment.vb
  • Business\SAIF.Business.Claim.Payment\Periods\clsBenefitPeriodCollection.vb
  • Business\SAIF.Business.Claim.Payment\Wage and Job\clsInjuryClaimWageAndJob.vb
  • Business\SAIF.Business.Claim.Payment\Wage and Job\clsSecTimelossCalculation.vb
  • Business\SAIF.Business.Claim.Payment\Wage and Job\clsSecWageCalcPeriodEarnings.vb
  • Business\SAIF.Business.Claim.Payment\Wage and Job\clsSecWageCalculationPeriod.vb
  • Business\SAIF.Business.Claim.Payment\Wage and Job\clsWageCalcPeriodEarnings.vb
  • Business\SAIF.Business.Claim.Payment\Wage and Job\clsWageCalculationPeriod.vb
  • Business\SAIF.Business.Claim.Payment\SAIF.BOF.Business.Claim.Payment.vbproj