Skip to content

SAIF.Application.Claim architecture

SAIF.Application.Claim is the claim-domain application-layer coordinator that establishes claim context, enforces claim-level access rules, provisions the Oracle data portal, and delegates business operations to lower-layer claim libraries.

Responsibilities

  • Manage active claim and worker context through ClaimContext and ClaimAppManager.
  • Enforce claim-specific authorization checks before retrieval or write operations.
  • Orchestrate transactional write flow for consuming applications.
  • Provision the ClaimDPI Oracle data portal with the CLM database user.
  • Wrap claim task generation and imaging client initialization for consumers.

Component boundaries

  • ClaimAppManager is the abstract orchestration layer for context changes, retrieval, transactions, and task saving.
  • ClaimSecurity and ClaimUserAccess evaluate claim-scope authorization by combining claim flags with AD-resource checks.
  • ClaimContext holds the active claim number, claim ID, and worker ID for the current application session.
  • Business and view libraries supply clsClaimData, task generation, and persistence services that this library coordinates.
  • IDataPortalInfo and the Oracle portal form the infrastructure boundary used by downstream business objects for database access.

Interaction model

Consumers call SetClaimContext or SetWorkerContext, which creates a new ClaimContext, retrieves claim data from the view layer, applies claim-level authorization, and then hands control to subclass retrieval logic. Write operations begin and end Oracle transactions in the application layer, while all SQL execution remains in dependent business libraries.

Inherited framework context

  • ClaimAppManager inherits AppManagerBase, so context-state flags, status messages, and security-role transitions are supplied by the BOF application base class.
  • ClaimUserAccess inherits UserAccess, so claim-resource checks reuse the shared HasAccess cache and clsSecurityPrincipal.IsAuthorized authorization path.

Architecture diagram

The following diagram shows the high-level claim application orchestration path.

flowchart TD
    Consumer["Consuming application"] --> AppMgr["ClaimAppManager"]
    AppMgr --> Context["ClaimContext"]
    AppMgr --> Security["ClaimSecurity / ClaimUserAccess"]
    AppMgr --> ViewClaim["SAIF.Business.View.Claim"]
    AppMgr --> Tasks["SAIF.Business.Tasks.Claim"]
    AppMgr --> Imaging["Imaging client"]
    AppMgr --> ClaimSvc["ClaimServices override check"]
    ViewClaim --> Oracle["Oracle claim data portal"]
    Tasks --> Oracle
    ClaimSvc --> Oracle

Sequence diagram

The following diagram shows the primary claim-context retrieval sequence.

sequenceDiagram
    participant Consumer
    participant AppMgr as ClaimAppManager
    participant View as clsClaimData
    participant Security as ClaimSecurity
    participant Override as ClaimServices
    Consumer->>AppMgr: SetClaimContext(claimId)
    AppMgr->>View: GetData(DPI, claimId)
    View-->>AppMgr: ClaimData
    AppMgr->>Security: CheckClaim(claimData)
    Security-->>AppMgr: Access flags
    alt Conflict access denied
        AppMgr->>Override: HasOverrideAcess(DPI, claimId, userName)
        Override-->>AppMgr: Override result
    end
    AppMgr-->>Consumer: Context ready or no access

Design constraints

  • ClaimAppManager is MustInherit, so consuming applications must implement retrieval and write specifics in subclasses.
  • Context retrieval always runs before claim security checks and subclass retrieval logic.
  • Oracle data access is delegated to dependent business and view libraries; this layer should not introduce direct SQL.
  • Imaging integration depends on the externally supplied imagingapiurl environment setting.

Sources

  • Application\SAIF.Application.Claim\ClaimAppManager.vb
  • Application\SAIF.Application.Claim\ClaimSecurity.vb
  • Application\SAIF.Application.Claim\ClaimContext.vb
  • Application\SAIF.Application.Claim\ClaimUserAccess.vb
  • Application\SAIF.Application\AppManagerBase.vb
  • Application\SAIF.Application\UserAccess.vb
  • Business\SAIF.Business\ClaimServices.vb
  • Application\SAIF.Application.Claim\SAIF.BOF.Application.Claim.vbproj
  • Application\SAIF.Application.Claim\packages.config
  • Application\SAIF.Application.Claim\app.config
  • Application\SAIF.Application.Claim\Web.config