---
title: SAIF.Business.Claim.Maintenance architecture
summary: Architectural responsibilities, boundaries, and interaction patterns.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-07-28
library: SAIF.Business.Claim.Maintenance
reference_type: package
---

# SAIF.Business.Claim.Maintenance architecture

`SAIF.Business.Claim.Maintenance` is the post-entry claim-maintenance business component for maintaining claim detail, accident and injury state, legal and medical sub-entities, support orders, adjustments, vocational records, and several related collections and API-backed lookups.

## Responsibilities

- Maintain core claim detail, accident and injury data, work status, work release, policy history, and pharmacy eligibility records.
- Persist and retrieve medical conditions, omitted conditions, compensability decisions, disability activity, and authorization activity records.
- Execute claim-adjustment workflows such as void, combine, transfer, and restore through Oracle packages.
- Coordinate support-order CRUD and validation workflows through support-order stored procedures.
- Expose vocational, attending-physician, and related collection retrieval behavior for downstream claim-maintenance consumers.

## Inherited framework context (from Legends CLI)

Cached `resolvedTypes[].queries[]` results for `SAIF.Business.Claim.Maintenance` 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)
- `clsAddress` is identified as a framework address type, but the cached Legends results did not return deeper indexed behavior for it.* (source: `saif-framework-core` library docs)
- `clsBusinessApiBase` provides the API-oriented single-object lifecycle used by REST-backed attending-physician flows.* (source: `saif-framework-core` library docs)
- `clsBusinessApiCriteriaBase` supplies API-route dictionaries and SQL-like CRUD slots for API-backed criteria objects in the hybrid BOF model.* (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)
- `clsBusinessCollectionApiBase` provides the API-backed collection lifecycle used by REST-backed collection objects.* (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

- **Core claim-maintenance boundary**: `clsClaimDetail`, `clsAccidentInjury`, and related business objects own the main claim-maintenance aggregate and common validation/count checks.
- **Sub-entity boundary**: condition, disability, work status, work release, COVID-19 history, request decision, policy history, and MCO classes each own a single claim-related table set.
- **Adjustment and support-order boundary**: `clsClaimAdjustment` and `clsClaimSupportOrder*` encapsulate multi-step package-driven workflows rather than simple table CRUD.
- **Vocational boundary**: `clsVocationalDetail*` classes isolate vocational data retrieval and persistence.
- **API boundary**: `clsAttendingPhysician*` and CCClaimDataApi models isolate REST-backed attending-physician retrieval from Oracle-backed BOF entities.

## Interaction model

Consumers retrieve or save BOF business objects and collections, criteria definitions are populated on each object, and `IDataPortalInfo` routes those definitions to Oracle. Complex workflows such as support-order management and claim adjustment defer orchestration to package contracts, while API-based attending-physician retrieval uses framework-managed API clients.

## Architecture diagram

The following diagram shows high-level component interactions.

```mermaid

flowchart TD

    A[Claim maintenance applications] --> B[Maintenance business objects]

    B --> C[Entity CRUD classes]

    B --> D[Claim adjustment and support order]

    B --> E[API physician retrieval]

    C --> F[Oracle claim tables]

    D --> G[Oracle package contracts]

    E --> H[Framework API clients]

    G --> F

```

## Sequence diagram

The following diagram shows the primary request/response sequence.

```mermaid

sequenceDiagram

    participant App as Claim maintenance UI

    participant Support as clsClaimSupportOrder

    participant DPI as IDataPortalInfo

    participant Proc as PK82141_SUPPORT_ORDER

    participant DB as Claim tables

    App->>Support: Save support-order change

    Support->>DPI: Submit validation and persistence request

    DPI->>Proc: Execute support-order package method

    Proc->>DB: Read or update support-order rows

    DB-->>Proc: Data and rowcount

    Proc-->>DPI: Package result

    DPI-->>Support: Persisted support-order state

    Support-->>App: Updated support-order object

```

## Design constraints

- The library exposes a very large BOF surface area, with Stage 1 analysis identifying 57 public classes and Stage 1b identifying 41 `IBusinessCriteria` implementations.
- Claim-adjustment behavior is traceable to retrieved `PK82140_CLAIM_ADJUSTMENTS` source, but `PK82141_SUPPORT_ORDER` and `PK82003_VOCDATA` package bodies were not retrieved, so higher-order database behavior must be inferred from caller contracts.
- The library mixes package-driven workflows, inline SQL CRUD, and REST-backed retrieval, which increases regression scope when business behavior changes.
- No local security or configuration surface was identified, so runtime behavior depends mainly on BOF infrastructure and Oracle contracts rather than library-owned settings.

## Related documentation

- [Index](index.md)
- [Overview](overview.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.md)
- [Procedures](procedures/index.md)
- [API reference](api/index.md)

> **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.Maintenance\clsAccidentInjury.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsAttendingPhysician.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsClaimAdjustment.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsClaimDisabilityActivity.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsClaimSupportOrder.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsVocationalDetail.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsVocationalDetailCollection.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsHelper.vb`
- `Business\SAIF.Business.Claim.Maintenance\enums.vb`
- `Business\SAIF.Business.Claim.Maintenance\packages.config`
- `Business\SAIF.Business.Claim.Maintenance\SAIF.BOF.Business.Claim.Maintenance.nuspec`
- `Business\SAIF.Business.Claim.Maintenance\Pipelines\build-vars.yml`
- `Business\SAIF.Business.Claim.Maintenance\CCClaimDataApi\AttendingPhysicians.vb`
- `Business\SAIF.Business.Claim.Maintenance\CCClaimDataApi\ClaimContactsResponse.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsClaimDisabilityActivityCollection.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsClaimMcoEligibility.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsClaimMcoEligibilityCollection.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsClaimPolicy.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsClaimPolicyHistory.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsClaimPolicyHistoryCollection.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsClaimRequestDecision.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsClaimRequestDecisionCollection.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsClaimStatusActivity.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsClaimStatusActivityCollection.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsClaimSupportOrderCollection.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsClaimSupportOrderConn.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsClaimSupportOrderConnCollection.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsClaimTypeActivity.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsClaimTypeActivityCollection.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsConditionDecision.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsConditionDecisionCollection.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsCovid19TestingHistory.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsCovid19TestingHistoryCollection.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsDisabilityAuthActivity.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsDisabilityAuthActivityCollection.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsMedicalCondition.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsMedicalConditionCollection.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsOmittedCondition.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsOmittedConditionCollection.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsTDThreeDayWait.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsTDThreeDayWaitCollection.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsWorkRelease.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsWorkReleaseCollection.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsWorkStatus.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsWorkStatusCollection.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsWorkStatusInjuryClaim.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsWorkerClaimBenefitPayment.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsWorkerClaimBenefitSchedule.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsWorkerInjuryClaim.vb`
- `Business\SAIF.Business.Claim.Maintenance\clsWorkerPharmacyEligibilityReport.vb`
- `Business\SAIF.Business.Claim.Maintenance\SAIF.BOF.Business.Claim.Maintenance.vbproj`
