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

# SAIF.Business.Claim.Entry architecture

`SAIF.Business.Claim.Entry` is the claim-entry business component for creating and editing injury claims, persisting Online 801 submission artifacts, managing pharmacy eligibility records, and brokering several API-backed lookup and submission flows.

## Responsibilities

- Provide the abstract claim-entry aggregate that creates, inserts, updates, numbers, and deletes injury claims.
- Extend the base claim-entry workflow with state-specific logic such as county resolution, work-release management, and multiple-employer letter requests.
- Persist Online 801 submissions, submission detail, and document records through `PK82538_ONLINE_801_CLAIM`.
- Expose pharmacy eligibility CRUD and collection retrieval workflows.
- Broker API-backed worker lookup, claim submission, and claim search requests for Online 801 scenarios.

## Inherited framework context (from Legends CLI)

Cached `resolvedTypes[].queries[]` results for `SAIF.Business.Claim.Entry` 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 worker lookup, submission, and search objects.† (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)
- `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)
- `clsRuleArgs` is identified as the V1 rule-handler argument type used by the framework rules engine, though no deeper indexed behavior was returned.† (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

- **Claim-entry boundary**: `clsClaimEntry` owns the shared injury-claim aggregate, core lifecycle methods, numbering logic, and inline validation behavior.
- **State-entry boundary**: `clsStateClaimEntry` owns county lookup, work-release child management, and multiple-employer letter-request creation.
- **Online 801 boundary**: `Online801\Submission\*` and `Online801\Search\*` own submission persistence, document persistence, search DTOs, and API wrappers.
- **Pharmacy boundary**: `clsPharmacyEligibilityReport` and its collection own pharmacy-eligibility reporting records and retrieval filters.
- **API integration boundary**: `clsFindWorkerAPI`, `clsSubmitClaimByAPI`, and `clsClaimSearchApi` isolate REST-backed flows from Oracle-backed BOF objects.

## Interaction model

Application callers create or retrieve claim-entry objects, the business objects populate criteria SQL or stored-procedure definitions, and `IDataPortalInfo` routes those requests to Oracle. Online 801 workflows add a second path where API-backed business objects format routes and call framework-managed API clients instead of Oracle.

## Architecture diagram

The following diagram shows high-level component interactions.

```mermaid

flowchart TD

    A[Claim entry application] --> B[Claim entry business objects]

    B --> C[State claim extensions]

    B --> D[Online 801 persistence]

    B --> E[Pharmacy eligibility]

    D --> F[PK82538_ONLINE_801_CLAIM]

    B --> G[Claim tables]

    D --> H[Framework API clients]

    C --> G

    E --> G

```

## Sequence diagram

The following diagram shows the primary request/response sequence.

```mermaid

sequenceDiagram

    participant App as Claim entry UI

    participant Entry as clsStateClaimEntry

    participant Child as Child claim objects

    participant DPI as IDataPortalInfo

    participant DB as Oracle claim tables

    App->>Entry: Save new state claim

    Entry->>Child: Create work-release and state child data

    Entry->>DPI: Submit claim insert and status activity SQL

    DPI->>DB: Insert CL_INJURY_CLAIM and related activity rows

    DB-->>DPI: Rowcount and generated identifiers

    DPI-->>Entry: Persisted claim state

    Entry-->>App: Claim ID and claim number

```

## Design constraints

- The library mixes large inline SQL statements for claim entry with stored-procedure-backed Online 801 workflows, so both persistence styles must evolve together.
- `clsClaimEntryBusinessRules.vb` contains commented-out rule methods, which means active validation lives primarily inside business-object lifecycle code instead of a centralized rules class.
- Several child objects referenced by the entry workflow are defined outside this library, increasing coupling to adjacent claim-domain packages.
- No local environment-setting or app-setting usage was detected, so API endpoint and portal configuration remains an inherited runtime concern rather than a library-owned one.

## 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 `†` are derived from dependency library documentation via the Legends CLI. Statements marked with `**` could not be confirmed; treat them as unknown until verified.

## Sources

- `Business\SAIF.Business.Claim.Entry\clsClaimEntry.vb`
- `Business\SAIF.Business.Claim.Entry\clsStateClaimEntry.vb`
- `Business\SAIF.Business.Claim.Entry\clsClaimEntryBusinessRules.vb`
- `Business\SAIF.Business.Claim.Entry\clsPharmacyEligibility.vb`
- `Business\SAIF.Business.Claim.Entry\enums.vb`
- `Business\SAIF.Business.Claim.Entry\packages.config`
- `Business\SAIF.Business.Claim.Entry\SAIF.BOF.Business.Claim.Entry.nuspec`
- `Business\SAIF.Business.Claim.Entry\app.config`
- `Business\SAIF.Business.Claim.Entry\nuget.config`
- `Business\SAIF.Business.Claim.Entry\Pipelines\build-vars.yml`
- `Business\SAIF.Business.Claim.Entry\Pipelines\build.yml`
- `Business\SAIF.Business.Claim.Entry\Pipelines\release.yml`
- `Business\SAIF.Business.Claim.Entry\Online801\Submission\cls801Document.vb`
- `Business\SAIF.Business.Claim.Entry\Online801\Submission\cls801Submission.vb`
- `Business\SAIF.Business.Claim.Entry\Online801\Submission\cls801SubmissionData.vb`
- `Business\SAIF.Business.Claim.Entry\Online801\Submission\clsFindWorkerAPI.vb`
- `Business\SAIF.Business.Claim.Entry\Online801\Submission\clsSubmitClaimByAPI.vb`
- `Business\SAIF.Business.Claim.Entry\Online801\Search\clsClaimSearchResult.vb`
- `Business\SAIF.Business.Claim.Entry\Online801\Search\clsClaimSearchCriteria.vb`
- `Business\SAIF.Business.Claim.Entry\Online801\Search\CCClaimDataApi\clsClaimSearchApi.vb`
- `Business\SAIF.Business.Claim.Entry\Online801\CCClaimDataAPIResponseData.vb`
- `Business\SAIF.Business.Claim.Entry\Online801\ClaimCenterAPIResponseData.vb`
- `Business\SAIF.Business.Claim.Entry\Online801\clsRecordInfo.vb`
- `Business\SAIF.Business.Claim.Entry\Online801\mdlCodeTables.vb`
- `Business\SAIF.Business.Claim.Entry\SAIF.BOF.Business.Claim.Entry.vbproj`
