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
ClaimContextandClaimAppManager. - Enforce claim-specific authorization checks before retrieval or write operations.
- Orchestrate transactional write flow for consuming applications.
- Provision the
ClaimDPIOracle data portal with theCLMdatabase user. - Wrap claim task generation and imaging client initialization for consumers.
Component boundaries¶
ClaimAppManageris the abstract orchestration layer for context changes, retrieval, transactions, and task saving.ClaimSecurityandClaimUserAccessevaluate claim-scope authorization by combining claim flags with AD-resource checks.ClaimContextholds 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. IDataPortalInfoand 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¶
ClaimAppManagerinheritsAppManagerBase, so context-state flags, status messages, and security-role transitions are supplied by the BOF application base class.ClaimUserAccessinheritsUserAccess, so claim-resource checks reuse the sharedHasAccesscache andclsSecurityPrincipal.IsAuthorizedauthorization 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¶
ClaimAppManagerisMustInherit, 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
imagingapiurlenvironment setting.
Related documentation¶
- Index
- Overview
- Dependencies
- Operations and processes
- Business rules
- Security and authorization
- Configuration
- API reference
Sources¶
Application\SAIF.Application.Claim\ClaimAppManager.vbApplication\SAIF.Application.Claim\ClaimSecurity.vbApplication\SAIF.Application.Claim\ClaimContext.vbApplication\SAIF.Application.Claim\ClaimUserAccess.vbApplication\SAIF.Application\AppManagerBase.vbApplication\SAIF.Application\UserAccess.vbBusiness\SAIF.Business\ClaimServices.vbApplication\SAIF.Application.Claim\SAIF.BOF.Application.Claim.vbprojApplication\SAIF.Application.Claim\packages.configApplication\SAIF.Application.Claim\app.configApplication\SAIF.Application.Claim\Web.config