Skip to content

SAIF.Business.Claim.EAIP architecture

SAIF.Business.Claim.EAIP is a claim-domain business component that persists EAIP billing, period, reimbursement, targeting, and related history records through BOF business objects, Oracle stored procedures, and configuration-driven calculation helpers.

Responsibilities

  • Manage EAIP billing records, expense billing, and bill-generation workflows.
  • Maintain pay periods, time cards, expenses, purchases, reassignment records, and related history.
  • Calculate and persist reimbursements, reimbursement detail, DCBS balances, and wage-subsidy values.
  • Expose search and targeting entry points for EAIP claim and employer workflows.
  • Centralize EAIP-specific code-table and utility helpers used across business objects.

Inherited framework context (from Legends CLI)

Cached resolvedTypes[].queries[] results for SAIF.Business.Claim.EAIP 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)
  • 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

  • Billing boundary: Billing\clsBilling, clsExpenseBilling, and clsGenerateBill own employer-billing persistence and bill-generation behavior.
  • Period boundary: Period\clsPayPeriod, clsPayPeriodTimeCard, clsExpense, clsPurchase, clsWageSubsidy, and related history classes own EAIP operational state.
  • Reimbursement boundary: Reimbursement\clsReimbursement, clsReimbursementDetail, clsAmount, and clsDetailAmount own reimbursement calculation and persistence.
  • Search and targeting boundary: Search\* classes and Targeting\clsTargeting expose read-oriented lookup and eligibility-targeting behavior.
  • Utility boundary: mdlCodeTables, mdlUtility, and dcbsMethods isolate reusable code-table access and helper behavior from entity persistence.

Interaction model

Application callers construct BOF business objects and criteria, the objects populate SQL or stored-procedure contracts on their criteria classes, and IDataPortalInfo routes those requests to Oracle. Billing and wage-subsidy operations additionally read Environment API configuration values before persisting calculated results.

Architecture diagram

The following diagram shows high-level component interactions.


flowchart TD

    A[Claim applications] --> B[EAIP business objects]

    B --> C[Billing and period modules]

    B --> D[Reimbursement and targeting modules]

    C --> E[Environment API settings]

    C --> F[pk82500_eaip procedures]

    D --> F

    F --> G[Oracle EAIP tables]

Sequence diagram

The following diagram shows the primary request/response sequence.


sequenceDiagram

    participant App as Claim application

    participant EAIP as clsGenerateBill / clsPayPeriod

    participant Config as EnvironmentService

    participant DPI as IDataPortalInfo

    participant DB as pk82500_eaip

    App->>EAIP: Create or update EAIP work item

    EAIP->>Config: Read EAIP rate settings when needed

    Config-->>EAIP: Configuration values

    EAIP->>DPI: Submit criteria SQL or stored-proc request

    DPI->>DB: Execute EAIP insert/update/select

    DB-->>DPI: Oracle rowset or rowcount

    DPI-->>EAIP: Materialized business data

    EAIP-->>App: Updated EAIP object graph

Design constraints

  • Persistence is Oracle-centric and largely package-driven through pk82500_eaip, with one notable inline EAIP_PERIOD_TIMECARD insert path that must stay consistent with package-managed tables.
  • EAIP billing and wage-subsidy calculations depend on claims.eaip.fs2360.rate and claims.eaip.wagesubsidyrates, and the configuration analysis found no local defaults for either key.
  • Update and delete flows rely on optimistic-concurrency rowcount checks surfaced as DB-contention errors by BOF lifecycle methods.
  • The library is packaged with broad claim-domain dependencies, so changes in adjacent claim, payment, maintenance, and task libraries can affect EAIP orchestration behavior.

Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with ** could not be confirmed; treat as unknown until verified.

Sources

  • Business\SAIF.Business.Claim.EAIP\SAIF.BOF.Business.Claim.EAIP.vbproj
  • Business\SAIF.Business.Claim.EAIP\SAIF.BOF.Business.Claim.EAIP.nuspec
  • Business\SAIF.Business.Claim.EAIP\packages.config
  • Business\SAIF.Business.Claim.EAIP\Pipelines\build-vars.yml
  • Business\SAIF.Business.Claim.EAIP\Billing\clsBilling.vb
  • Business\SAIF.Business.Claim.EAIP\Billing\clsExpenseBilling.vb
  • Business\SAIF.Business.Claim.EAIP\Billing\clsGenerateBill.vb
  • Business\SAIF.Business.Claim.EAIP\Period\clsPayPeriod.vb
  • Business\SAIF.Business.Claim.EAIP\Period\clsPayPeriodTimeCard.vb
  • Business\SAIF.Business.Claim.EAIP\Period\clsPeriod.vb
  • Business\SAIF.Business.Claim.EAIP\Period\clsCreditCardPayments.vb
  • Business\SAIF.Business.Claim.EAIP\Period\clsWageSubsidy.vb
  • Business\SAIF.Business.Claim.EAIP\Reimbursement\clsReimbursement.vb
  • Business\SAIF.Business.Claim.EAIP\Reimbursement\clsBalanceDCBS.vb
  • Business\SAIF.Business.Claim.EAIP\Targeting\clsTargeting.vb
  • Business\SAIF.Business.Claim.EAIP\Search\clsSearchCriteria.vb
  • Business\SAIF.Business.Claim.EAIP\mdlCodeTables.vb