---
title: SAIF.Application.Claim architecture
summary: SAIF.Application.Claim architectural responsibilities, boundaries, and interaction patterns.
status: draft
owner: Technical Writer
last_reviewed: 2026-07-28
library: SAIF.Application.Claim
reference_type: package
---

# 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.

```mermaid
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.

```mermaid
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.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Security and authorization](security-authorization.md)
- [Configuration](configuration.md)
- [API reference](api/index.md)

## 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`
