Skip to content

SAIF.Business.Claim operations and processes

This page is the operation catalog and cross-operation hub for this library. Each operation's detailed, step-by-step logic lives in its own page under operations/.

Operation catalog

Operation Intent Trigger Inputs Outputs Rules Tables SQL
Benefit-payment stop processing Stop remaining scheduled benefit payments when a payment has been released Caller invokes ProcessBenefitPayment(claimId, callingApplication) ClaimID, CallingApplication, CallingFunction Updated/deleted schedule and payment rows, StopStatus BR-009, BR-010 CL_BENEFIT_SCHEDULE, CL_BENEFIT_PAYMENT SQL-011, SQL-012
Set award to Pending Move an active award to Pending status and cascade benefit-payment updates AfterUpdate when award status is set to 'P' ClaimID, AwardNum Updated award and benefit-payment rows BR-011 CL_AWARD, CL_BENEFIT_PAYMENT SQL-031, SQL-048
Injured body-part maintenance Maintain injured body parts for a claim and enforce single-primary rules Caller creates/updates/deletes an injured body part ClaimID, BodyPartCode, BodyPartSideCode, PrimaryIndicator Injured body-part rows, propagated CL_INJURY_CLAIM columns BR-006, BR-007 CL_WORKER_INJURED_BODY_PART, CL_INJURY_CLAIM SQL-008, SQL-050, SQL-051
Dynamic claim list generation Execute a caller-supplied SQL statement to build an ad-hoc claim list Caller invokes GetClaimListCollection(dpi, sqlStatement, id) Caller-supplied SQL text, ID Configurable claim-list rows — (caller-determined) SQL-019
DCBS 1502 transfer handling Create, retrieve, and process DCBS 1502 transfer files Transfer file creation, sweep, or marking as processed ClaimID, FileId, FileName Transfer records; processed-date updates BR-001, BR-002 CL_1502_DCBS_TRANSFER SQL-004, SQL-037
Stored-procedure read models Retrieve claim-related calculated values from Oracle stored procedures Caller retrieves aggravation-rights dates, timeliness of first payment, medically-stationary date, or statutory weekly wage ClaimID and calculation-specific inputs Calculated result values via REF CURSOR BR-008 — SQL-013, SQL-025, SQL-033, SQL-034
Code-table caching Cache PPD and reserve-services reference code tables for the process lifetime First call to a mdlPPD/mdlReserveServices accessor, or explicit Refresh Optional Refresh flag Cached code-table collections — CL_PPD_BODY_PART_CODE, CL_RESERVE_VOC_SERV_TYPE_CODE SQL-026, SQL-035
PPD award calculation Calculate scheduled and unscheduled PPD degree-award amounts with an auditable calculation trail Caller invokes GetAwardAmount(...) Degrees, effective date Award amount, CalcProof audit trail — CL_PPD_SCHED_DEGREE_AWARD, CL_PPD_UNSCHED_DEGREE_AWARD SQL-027, SQL-028

Process flow diagram

The following diagram visualizes the primary benefit-payment stop processing flow.

flowchart TD
    Start([ProcessBenefitPayment called]) --> Retrieve[Retrieve active benefit schedules<br>REMAINING_PAYMENT_COUNT > 0]
    Retrieve --> Check{hasReleasedScheduledPayment?}
    Check -->|Yes| UpdateSched[Update schedule<br>RemainingPaymentCount = 1]
    Check -->|No| DeletePayment[Delete benefit payment row]
    UpdateSched --> RowsA{RowsAffected = 0?}
    DeletePayment --> RowsB{RowsAffected = 0?}
    RowsA -->|Yes| ErrUpd([Error #PAYUPD#<br>return False])
    RowsA -->|No| Released([StopStatus.Released])
    RowsB -->|Yes| ErrDel([Error #PAYDEL#<br>return False])
    RowsB -->|No| Deleted([StopStatus.Deleted])

Database interactions

The following table summarizes which operations read from or write to the database. Per-step SQL and table citations live in each operation's detail page under operations/.

Operation SQL Tables Type
Benefit-payment stop processing SQL-011, SQL-012, SQL-038, SQL-039, SQL-053, SQL-054 CL_BENEFIT_SCHEDULE, CL_BENEFIT_PAYMENT Read / Write
Set award to Pending SQL-031, SQL-032, SQL-048, SQL-049 CL_AWARD, CL_BENEFIT_PAYMENT Read / Write
Injured body-part maintenance SQL-008, SQL-036, SQL-050, SQL-051, SQL-062 CL_WORKER_INJURED_BODY_PART, CL_INJURY_CLAIM Read / Write
Dynamic claim list generation SQL-019 (caller-determined) Read
DCBS 1502 transfer handling SQL-001, SQL-004, SQL-009, SQL-010, SQL-037, SQL-052 CL_1502_DCBS_TRANSFER Read / Write
Stored-procedure read models SQL-013, SQL-025, SQL-033, SQL-034 — (stored procedures) Read
Code-table caching SQL-026, SQL-035 CL_PPD_BODY_PART_CODE, CL_RESERVE_VOC_SERV_TYPE_CODE Read
PPD award calculation SQL-027, SQL-028 CL_PPD_SCHED_DEGREE_AWARD, CL_PPD_UNSCHED_DEGREE_AWARD Read

Failure and edge-case behavior

  • Benefit-payment stop processing raises #PAYUPD# or #PAYDEL# and returns False when the corresponding update/delete affects zero rows.
  • Set award to Pending reports "The Award was NOT succesfully updated to Pending" (spelling as in source) when the update fails; unlike most other updates in this library, SQL-048 has no UPDATE_NUM optimistic-concurrency predicate.*
  • Aggravation-rights and timeliness-of-first-payment stored-procedure retrieves raise "Claim Not Found" when the cursor returns no rows (BR-008).
  • Dynamic claim-list generation executes caller-supplied SQL text with only a single :ID bind parameter — a SQL-injection and maintainability risk whose actual exposure depends on callers, none of which exist in this repository.*
  • Code-table caches in mdlPPD / mdlReserveServices have no expiry or synchronization and are process-lifetime, not thread-safe.*

Stored procedure operations

Operations implemented in Oracle stored procedures referenced by this library.

Operation Description Source Link
Calculate statutory weekly wage Validates the injury date, wage amount, pay-period code and the period-specific hours/days inputs; resolves the injury-date-dependent weeks-per-month factor and the pre-1995 minimum-days-per-week floor; then converts the supplied wage to a weekly amount according to the pay-period code. sp82286_statutoryweeklywage Details
Emit calculation result set Opens the recordset REF CURSOR over dual, projecting the local variables as StatutoryWeeklyWage and ErrorMessage columns; called from every exit path so the caller always receives exactly one row. sp82286_statutoryweeklywage.SelectStatutoryWeeklyWage Details
Consume calculation result Reads the single cursor row into m_StatutoryWeeklyWage and m_ErrorMessage, exposed as read-only properties; wrapped in an empty Try … Catch. clsStatutoryWeeklyWageCalculation.AfterRetrieve Details

No operations are recorded for sp82046_CalcAggRightDates, sp82067_TimelinessOf1stPayment, or sp82289_medicallystationarydt — these three are not-found-by-cli and no procedure body was retrieved for them.

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

  • SAIF.Business.Claim/clsActiveBenefitSchedule.vb
  • SAIF.Business.Claim/clsSetAwardPaymentPending.vb
  • SAIF.Business.Claim/clsWorkerInjuredBodyPart.vb
  • SAIF.Business.Claim/clsClaimListGenerator.vb
  • SAIF.Business.Claim/cls1502Transfer.vb
  • SAIF.Business.Claim/clsAggRightDates.vb
  • SAIF.Business.Claim/mdlPPD.vb
  • SAIF.Business.Claim/mdlReserveServices.vb
  • SAIF.Business.Claim/clsPPDUnscheduledDegreeAwards.vb