SAIF.Business.Claim operations and processes¶
SAIF.Business.Claim is the shared claim-domain business object library. It carries the operations that other claim applications reuse rather than reimplement: stopping benefit payment schedules when claim data changes, moving awards back to pending, maintaining federal awards and their payments, calling the Oracle procedures that calculate statutory wages, aggravation rights, medically stationary dates, and first-payment timeliness, tracking work status and injured body parts, queueing 1502 filings for the Department of Consumer and Business Services, and caching the permanent partial disability and reserve service reference tables.
Each operation below has its own page describing its trigger, ordered steps, per-step rule and SQL citations, branch handling, and failure behavior.
Operation catalog¶
| Operation | Intent | Trigger | Inputs | Outputs | Rules | Tables | SQL |
|---|---|---|---|---|---|---|---|
| Benefit schedule payment processing | Stop a claim's outstanding payment schedules, truncating released payments and deleting unreleased ones, then task the adjuster | A claim change invalidates the schedule; ProcessBenefitPayment is called |
Claim ID, calling application and function, adjuster mail ID, task-suppression flag | Truncated or deleted schedules, adjuster task, #PAYUPD# / #PAYDEL# errors |
BR-008, BR-009, BR-010 | CL_BENEFIT_SCHEDULE, CL_BENEFIT_PAYMENT | SQL-013, SQL-017, SQL-022, SQL-029, SQL-031, SQL-036, SQL-040, SQL-041, SQL-042, SQL-046 |
| Award payment pending transition | Move a claim's active award to pending and reset its payments for re-approval | GetSetAwardPaymentPending followed by Save() |
Claim ID, acting portal user | Award status P, payments returned to in-progress, UpdateError / #PAYUPD# |
BR-008, BR-011 | CL_AWARD, CL_BENEFIT_PAYMENT | SQL-025, SQL-037 |
| Award benefit payment management | Retrieve, update, and delete the benefit payments attached to a SAIF award | A caller requests a payment or payment collection and saves changes | Claim ID, award number, payment sequence number, benefit type codes | Payment object or collection, updated or deleted payment rows | BR-008, BR-012 | CL_BENEFIT_PAYMENT | SQL-015, SQL-016, SQL-030, SQL-041 |
| Federal award management | Retrieve federal awards by claim or worker, hydrate their payments, and persist status changes | A caller requests federal awards and saves the collection | Claim ID or worker ID, award status code, benefit type codes | Federal award collection with attached payments, updated award rows | BR-008, BR-012 | CL_FEDERAL_AWARD, CL_BENEFIT_PAYMENT | SQL-016, SQL-021, SQL-035 |
| Statutory weekly wage calculation | Calculate the statutory weekly wage that drives time-loss benefit amounts | GetStatutoryWeeklyWageCalculation |
Injury date, wages, pay period, hours per day, days per week | Statutory weekly wage, procedure error message | PR-001, PR-002, PR-003, PR-004, PR-005, PR-006 | N/A | SQL-026 |
| Aggravation rights date calculation | Return the start and end of a claim's aggravation rights window | GetAggRightDates |
Claim ID | Aggravation right start and end dates, error message, "Claim Not Found" | N/A | N/A | SQL-014 |
| Medically stationary date retrieval | Return a claim's medically stationary date, blanked when the procedure reports an error | GetMedicallyStationaryDate |
SAIF claim number | Medically stationary date, procedure error message | N/A | N/A | SQL-024 |
| Timeliness of first payment evaluation | Assemble the dates, flags, and verdict needed to judge whether the first time-loss payment was timely | GetTimelinessOfFirstPayment |
Claim ID, claim-detail request flag | Knowledge, disability, authorization, attempt, due and issue dates; timeliness flags and codes | BR-016 | N/A | SQL-023 |
| DCBS 1502 transfer management | Queue, list, and mark off the 1502 filings awaiting transfer to DCBS | A caller creates a transfer record or requests the outstanding queue | Claim ID, filing reason, document type, file name and identifier, image sequence | Persisted transfer rows, transfer list collections | BR-001, BR-002, BR-008, BR-014 | CL_1502_DCBS_TRANSFER, CLM_DBA.CL_1502_DCBS_TRANSFER, CL_1502_DCBS_TRANSFER_SEQ | SQL-001, SQL-004, SQL-028, SQL-039 |
| Claim list generation | Turn a caller-supplied query into a sortable collection of claim identifiers and SAIF claim numbers | GetClaimListCollection |
SQL statement text, a single bind value, optional column-name overrides | Claim list collection of claim ID, claim number, check character, worker ID | N/A | N/A | N/A |
| Work status and work release tracking | Record and maintain the worker's return-to-work status and the physician's work release status | A claim-maintenance caller creates or retrieves the current status and saves | Claim ID, return-to-work or work release date, status codes | Sequence-numbered status rows, rule failures | BR-003, BR-004, BR-005, BR-008, BR-019 | CL_CLAIM_WORK_STATUS, CL_CLAIM_WORK_RELEASE_STATUS, CLAIM_WORK_STATUS_SEQ, CLAIM_WORK_REL_STATUS_SEQ_NUM | SQL-002, SQL-003, SQL-006, SQL-007, SQL-019, SQL-020, SQL-033, SQL-034, SQL-044, SQL-045 |
| Worker injured body part management | Maintain the claim's injured body parts and mirror the primary selection onto the claim header | A caller retrieves the body part collection, edits it, and saves | Claim ID, body part code, body side code, injury nature code, primary flag | Persisted body part rows, updated claim header primary columns | BR-006, BR-007, BR-008, BR-013 | CL_WORKER_INJURED_BODY_PART | SQL-008, SQL-027, SQL-038, SQL-047 |
| Claim employee work address management | Maintain the address of the work site where the injury occurred | A caller retrieves or creates the address and saves | Claim ID, address lines, city, state, ZIP, county, foreign flag | Persisted address row, address rule failures | BR-008, BR-015 | CL_CLAIM_EMPLOYEE_WORK_ADDRESS | SQL-005, SQL-018, SQL-032, SQL-043 |
| PPD award reference lookups | Load and cache the PPD body part and degree award rate tables and price awards from them | A caller requests a PPD reference table or an award amount | Data portal info, refresh flag, effective date, degree count | Cached body part and rate tables, calculated award amount, calculation proof | BR-017, BR-018 | CL_PPD_BODY_PART_CODE, CL_PPD_SCHED_DEGREE_AWARD, CL_PPD_UNSCHED_DEGREE_AWARD | SQL-009, SQL-010, SQL-011 |
| Reserve service reference lookups | Load and cache the vocational and medical service type lists with their service descriptions | A caller requests a reserve service reference list | Data portal info, refresh flag | Cached service type code table and service type collections with descriptions | N/A | CL_RESERVE_VOC_SERV_TYPE_CODE | SQL-012 |
Process flow diagram¶
The following diagram shows how the library's operations relate to the claim lifecycle they support.
flowchart TD
App([Claim application or batch process]) --> Group{What is being done?}
Group -->|Claim data changed| Stop[Benefit schedule<br>payment processing]
Group -->|Award re-work| Pend[Award payment<br>pending transition]
Group -->|Award maintenance| Fed[Federal award management]
Fed --> Pay[Award benefit<br>payment management]
Stop --> Task[Claim task posted<br>for the adjuster]
Group -->|Statutory determination| Proc{Which procedure?}
Proc --> Wage[Statutory weekly<br>wage calculation]
Proc --> Agg[Aggravation rights<br>date calculation]
Proc --> Med[Medically stationary<br>date retrieval]
Proc --> Time[Timeliness of first<br>payment evaluation]
Group -->|Claim status upkeep| Status[Work status and<br>work release tracking]
Group -->|Injury detail upkeep| Body[Worker injured body<br>part management]
Body --> Header[Claim header primary<br>body part updated]
Group -->|Employer detail upkeep| Addr[Claim employee work<br>address management]
Group -->|Regulatory filing| DCBS[DCBS 1502<br>transfer management]
Group -->|List of claims needed| List[Claim list generation]
Group -->|Reference data needed| Ref{Which reference set?}
Ref --> PPD[PPD award<br>reference lookups]
Ref --> Serv[Reserve service<br>reference lookups]
Inherited operations and processes¶
Operations in this section come from inherited BOF framework behavior.
From clsBusinessBase (SAIF.Framework.Core)¶
| Operation | Intent | Provided by | Origin |
|---|---|---|---|
| Edit lifecycle † | Supports the begin-edit, cancel-edit, and apply-edit lifecycle used by every mutable business object in this library before Save() is called.* |
clsBusinessBase |
SAIF.Framework.Core |
| Rule evaluation † | Runs the property and object rules registered by each object's rule-registration member and exposes the resulting broken-rule state.* | clsBusinessBase |
SAIF.Framework.Core |
| Data portal lifecycle hooks † | Invokes the create, retrieve, insert, update, and delete hooks that each object overrides to bind its Criteria SQL and inspect the affected row count.* | clsBusinessBase |
SAIF.Framework.Core |
From clsBusinessCollectionBase (SAIF.Framework.Core)¶
| Operation | Intent | Provided by | Origin |
|---|---|---|---|
| Collection traversal † | Supports cursor-style traversal and deleted-item tracking for the award, federal award, body part, transfer list, and claim list collections.* | clsBusinessCollectionBase |
SAIF.Framework.Core |
| Cascading save † | Walks each dirty child item through its own insert, update, or delete path when the collection is saved.* | clsBusinessCollectionBase |
SAIF.Framework.Core |
Origin: The operations in this section are implemented in
SAIF.Framework.Coreand inherited by this library's business objects and collections rather than being defined here.
Database interactions¶
The following table maps catalogued SQL statements back to the operation that executes them.
Several statements executed by this library are not represented in the SQL catalog because they are built at runtime or issued through direct portal requests rather than through a Criteria property: the filtered schedule select and partial schedule update used when stopping payments, the benefit payment retrieve and update used by the award pending transition, the claim header cascade used by injured body part management, the worker-scoped federal award join, the two ad-hoc 1502 transfer queue selects, the reserve service type and description join, and the caller-supplied statement executed by claim list generation.*
Stored procedure operations¶
Operations implemented by referenced Oracle procedures.
| Operation | Description | Source | Link |
|---|---|---|---|
| Calculate statutory weekly wage | Calculates the statutory weekly wage from injury date, wage basis, and schedule inputs, applying its own input validation and the pre-1995 three-day minimum | sp82286_statutoryweeklywage |
Details |
| Calculate aggravation rights dates | Returns the start and end dates of a claim's aggravation rights window | sp82046_CalcAggRightDates |
Details |
| Retrieve medically stationary date | Returns the medically stationary date for a SAIF claim number | sp82289_medicallystationarydt |
Details |
| Evaluate timeliness of first payment | Returns the dates, flags, and verdict used to judge whether the first time-loss payment met the statutory deadline | sp82067_TimelinessOf1stPayment |
Details |
Failure and edge-case behavior¶
- Every mutable object in this library reports persistence failure by adding an error message rather than raising an exception, so a caller that ignores the error collection will believe a failed save succeeded.
- Optimistic concurrency is expressed by carrying the prior update number in the
WHEREclause and incrementing it in theSETclause; a concurrent change therefore appears as an affected row count other than one. The 1502 transfer update is the exception and carries no update number, so it has no concurrency protection. - Several objects override
Save()to returnTrueunconditionally, discarding the framework result — the three benefit schedule objects and the award benefit payment item all behave this way.* - The stored-procedure wrapper objects catch and discard every exception raised while reading their result cursor, so a schema or type mismatch surfaces as an unset result rather than as a failure.
- Multi-statement operations are not wrapped in an explicit transaction inside this library, so the award pending transition, the federal award cascade, and the injured body part claim-header cascade can each leave a partially applied change.
- Reference data caches are module-level statics with no expiry, so changes to PPD rate tables or reserve service lists are not visible until a caller requests a refresh or the process restarts.
- Retrieval paths generally return an unpopulated object rather than an error when nothing matches, so "not found" and "found but empty" are indistinguishable without inspecting the object's state.
- Only four objects register real business rules — the 1502 transfer, the two work status objects, and the injured body part collection — so most field-level validity in this library is the caller's responsibility.
- Oracle schema, sequence, or procedure changes can alter behavior without any change to this library's code.
Related documentation¶
- Index
- Overview
- Architecture
- Dependencies
- Business rules
- Database tables
- SQL catalog
- Procedures
- API reference
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†are inherited from a dependency and are documented here for context only.
Sources¶
Business\SAIF.Business.Claim\cls1502Transfer.vbBusiness\SAIF.Business.Claim\clsActiveBenefitSchedule.vbBusiness\SAIF.Business.Claim\clsAggRightDates.vbBusiness\SAIF.Business.Claim\clsAwardBenefitPayment.vbBusiness\SAIF.Business.Claim\clsAwardBenefitPaymentCollection.vbBusiness\SAIF.Business.Claim\clsBenefitSchedule.vbBusiness\SAIF.Business.Claim\clsClaimEmployeeWorkAddress.vbBusiness\SAIF.Business.Claim\clsClaimListCollection.vbBusiness\SAIF.Business.Claim\clsClaimListGenerator.vbBusiness\SAIF.Business.Claim\clsClaimListItem.vbBusiness\SAIF.Business.Claim\clsClaimWorkReleaseStatus.vbBusiness\SAIF.Business.Claim\clsClaimWorkStatus.vbBusiness\SAIF.Business.Claim\clsFederalAwardStatus.vbBusiness\SAIF.Business.Claim\clsFederalAwardStatusCollection.vbBusiness\SAIF.Business.Claim\clsFederalBenefitSchedule.vbBusiness\SAIF.Business.Claim\clsITimelinessOfFirstPayment.vbBusiness\SAIF.Business.Claim\clsMedicallyStationaryDate.vbBusiness\SAIF.Business.Claim\clsPPDBodyParts.vbBusiness\SAIF.Business.Claim\clsPPDScheduledDegreeAwards.vbBusiness\SAIF.Business.Claim\clsPPDUnscheduledDegreeAwards.vbBusiness\SAIF.Business.Claim\clsServiceDescription.vbBusiness\SAIF.Business.Claim\clsServiceDescriptionCollection.vbBusiness\SAIF.Business.Claim\clsServiceType.vbBusiness\SAIF.Business.Claim\clsServiceTypeCollection.vbBusiness\SAIF.Business.Claim\clsSetAwardPaymentPending.vbBusiness\SAIF.Business.Claim\clsStatutoryWeeklyWageCalculation.vbBusiness\SAIF.Business.Claim\clsVocationalServicesTypes.vbBusiness\SAIF.Business.Claim\clsWorkerInjuredBodyPart.vbBusiness\SAIF.Business.Claim\clsWorkerInjuredBodyPartCollection.vbBusiness\SAIF.Business.Claim\Enums.vbBusiness\SAIF.Business.Claim\mdlPPD.vbBusiness\SAIF.Business.Claim\mdlReserveServices.vbBusiness\SAIF.Business.Claim\SAIF.BOF.Business.Claim.vbprojBusiness\SAIF.Business\ClaimServices.vbBusiness\SAIF.Business.Tasks.Claim\clsClaimTaskGenerator.vb