SAIF.Business.Claim.ThirdParty operations and processes¶
This page is the operation catalog and cross-operation hub for SAIF.Business.Claim.ThirdParty. The library exposes nine operations covering third-party recovery case management, recovery participants (people, companion claims, firms), expenses and their approval workflow, liens and settlements, distributions and refunds, notes and tasks, case search and prediction/statute analytics, billed-cost and payment reconciliation, and batch new-claim intake with adjuster assignment. 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 |
|---|---|---|---|---|---|---|---|
| Maintain recovery case | Create, retrieve, update, and delete third-party recovery cases, cascade firm associations, and drive status-based task/letter generation | clsThirdPartyCase.NewThirdPartyCase/GetThirdPartyCase followed by property edits and Save() |
ClaimID, date of injury, adjuster code, case status, closure code, statute/suit dates |
Persisted THRDPARTY_CASE row; cascaded firm saves; status-driven tasks; letter print flags |
BR-009, BR-010, BR-011, BR-012, BR-013, BR-005 | THRDPARTY_CASE | SQL-054, SQL-058 |
| Manage recovery participants | Persist third-party people, standalone firms, and companion claim associations for a case | clsThrdparty.NewThirdParty/GetThirdParty, clsThrdPartyFirm.NewThrdPartyFirm, or clsThrdpartyCompanionClaim.NewThrdpartyCompanionClaim followed by Save() |
Case sequence number, person name/DOB/phone/fax, firm company name/phone/fax, companion claim number | Persisted person, firm, and companion-claim rows; resolved companion-claim worker name and conflict warnings | BR-014, BR-015, BR-016, BR-017, BR-007, BR-005 | THRDPARTY_CASE, THRDPARTY_COMPANION_CLAIM | SQL-025, SQL-080, SQL-039, SQL-055 |
| Manage expenses | Create, validate, and approve third-party recovery expenses against case-level approval thresholds | clsThrdpartyExpense.NewThrdpartyExpense/GetThrdpartyExpense followed by Save(); clsThrdpartyExpenseApproval.SetExpenseApproval |
Case sequence number, expense type, amount, expense date, budget code, recovery amount | Persisted THRDPARTY_EXPENSE rows; case-level approval status (PEND/APPR/DISA/NOTR) |
BR-018, BR-019, BR-020, BR-001 | THRDPARTY_CASE, THRDPARTY_EXPENSE | SQL-060, SQL-061 |
| Manage liens and settlements | Persist liens, lien categories, settlements, and settlement detail rows, reconciling settlement totals to their detail lines | clsThrdpartyLien.NewThrdpartyLien, clsThrdpartySettlement.NewThrdpartySettlement, or clsThrdpartySettlementDetail.NewThrdpartySettlementDetail followed by Save() |
Case/lien identifiers, lien date, settlement type/date/amount, settlement detail category codes and amounts | Persisted lien, lien category, settlement, and settlement detail rows | BR-021, BR-022, BR-023, BR-024, BR-005 | THRDPARTY_LIEN, THRDPARTY_LIEN_CATEGORY, THRDPARTY_CASE | SQL-056, SQL-058, SQL-065, SQL-072 |
| Manage distributions and refunds | Persist distribution records reconciling check amounts against claim-cost, refund, employer-credit, and other amounts | clsThirdpartyDistribution.NewThirdpartyDistribution/GetThirdpartyDistribution followed by Save() |
Case/distribution identifiers, payee name, check number/date/amount, refund/other amounts and names | Persisted distribution rows; read-only distribution history and refundee data | BR-025, BR-026, BR-027, BR-002, BR-005 | THRDPARTY_CASE | SQL-030, SQL-066 |
| Manage notes and tasks | Persist recovery notes and assigned tasks, including a multi-outcome guard on deleting a case's last remaining task | clsThirdpartyNote.NewThirdPartyNote/clsThirdpartyTask.NewThirdpartyTask followed by property edits and Save() |
Case sequence number, note category/text, task code, task text, assignee, due date, marked-for-delete flag | Persisted THRDPARTY_CASE-scoped note rows and THRDPARTY_TASK rows; blocked or warned deletions |
BR-028, BR-029, BR-030, BR-003, BR-004, BR-005 | THRDPARTY_CASE, THRDPARTY_TASK | SQL-028, SQL-031, SQL-059, SQL-045, SQL-046 |
| Run case search and predictions | Search recovery cases and compute/validate lien-recovery predictions, plus read-only statute-date, unit-stat, and claim-condition lookups | clsThrdpartyCaseSearchCollection criteria-based search; clsThrdpartyPrediction.GetThrdpartyPrediction/NewThrdpartyPrediction followed by Save() |
Search criteria, lien sequence number, prediction percent factor or amount, prediction status code, claim ID | Filtered case-search collection; persisted THRDPARTY_PREDICTION/THRDPARTY_PREDICTION_DETAIL rows; read-only statute-date, unit-stat, and claim-condition projections |
BR-031, BR-032, BR-005 | THRDPARTY_CASE, THRDPARTY_PREDICTION, THRDPARTY_PREDICTION_DETAIL | SQL-044, SQL-048, SQL-047, SQL-067, SQL-036 |
| Retrieve billed-cost and payment details | Reconcile medical bill-audit service and claim payment transaction detail amounts between lien and non-lien portions; look up cost category codes and policy note/mail routing | clsBillAuditService.Save(); clsClaimPaymentTransDetail.Save(); direct calls to clsClaimCostCategoryCode and clsPolicyNote |
Lien/non-lien/allowed amounts, lien/non-lien/unknown/transaction amounts, policy number, team code, memo text | Persisted reconciled bill-audit service and payment transaction detail rows; cost-category lookups; inserted policy memo entries and resolved team mail IDs | BR-033 | THRDPARTY_BILL_SERVICE, TP_CLAIM_COST_CATEGORY_CODE | SQL-017, SQL-071, SQL-040, SQL-032, SQL-033 |
| New claim intake and adjuster assignment | Batch-process newly reported claims and open recovery cases, assign recovery adjusters, and generate initial follow-up tasks | clsThirdPartyNewClaim.NewThirdPartyNewClaim(runDate).Save(); clsClaimActivityManager.NewClaimActivityManager(runDate).Save() |
Run date; new-claim list rows (claim ID, claim number, policy number, DOI, security flags); open-case list rows with task code/text/assignee | New THRDPARTY_CASE rows with assigned adjuster; new THRDPARTY_TASK rows; processed-record count; per-record error messages |
BR-034, BR-005 | THRDPARTY_CASE, THRDPARTY_TASK | SQL-041, SQL-042 |
Note: New claim intake and adjuster assignment was not present in the prior flat-format documentation for this library; it was identified through direct source tracing of
clsThirdPartyNewClaim.vb,clsClaimActivityManager.vb, andclsAdjusterAssignment.vb.
Process flow diagram¶
The following diagram shows how the nine operations relate: a recovery case is created or retrieved (directly, or via batch new-claim intake with automatic adjuster assignment), participants and financial sub-records are maintained against it, and search/prediction and billed-cost/payment reconciliation support downstream reporting.
flowchart TD
Start([Caller initiates recovery workflow]) --> Batch{Batch new-claim<br>intake run?}
Batch -->|Yes| Intake[New claim intake and<br>adjuster assignment]
Batch -->|No| CaseOp[Maintain recovery case]
Intake --> CaseOp
CaseOp --> Participants[Manage recovery participants]
CaseOp --> Expenses[Manage expenses]
CaseOp --> Liens[Manage liens and settlements]
CaseOp --> Distributions[Manage distributions and refunds]
CaseOp --> NotesTasks[Manage notes and tasks]
CaseOp --> Search[Run case search and predictions]
Search --> BilledCost[Retrieve billed-cost<br>and payment details]
Liens --> BilledCost
Participants --> Edit[Caller edits properties]
Expenses --> Edit
Liens --> Edit
Distributions --> Edit
NotesTasks --> Edit
Search --> Edit
Edit --> Validate{Validation rules pass?}
Validate -->|No| Errors([Broken rules returned;<br>changes retained in memory])
Validate -->|Yes| Save[Save via PK82033_THIRDPARTY<br>package-backed criteria]
Save --> Concurrency{RowsAffected = 1?}
Concurrency -->|Yes| Done([Changes persisted;<br>objects marked clean])
Concurrency -->|No| Contention([DB contention error added;<br>save reported as failed])
BilledCost --> ReadOnly([Reconciled or read-only<br>projection returned])
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/.
Stored procedure operations¶
Operations implemented in Oracle stored procedures referenced by this library.
| Operation | Description | Source | Link |
|---|---|---|---|
| PK82033_THIRDPARTY package operations | Package-backed insert, update, delete, and list operations (case, task, note, expense, companion claim, settlement, prediction, distribution, and related entities) used across all nine operations. | PK82033_THIRDPARTY |
Details |
| Policy memo and mail routing | Direct, non-package-backed stored procedure calls used by the billed-cost and payment details operation to insert policy memo entries and resolve team mail IDs. | sp72155_insert_memo_entry, policy_pkg.get_team_mailid |
SQL-033, SQL-032 |
Failure and edge-case behavior¶
- Optimistic/contention checking is the dominant failure mode: every persisting operation checks the affected row count and adds an insert/update/delete error instead of throwing (BR-005). Detailed per-operation behavior is documented on each operation page.
- Several reconciliation rules (settlement totals, distribution check amounts, prediction dispersement, bill-audit/payment-detail lien splits) use exact equality checks rather than a rounding tolerance, so even one-cent discrepancies fail validation.
- Warning-severity rules (statute date month/day mismatch, task due date on a non-work day, expense approval thresholds, prediction pending-approval, companion-claim conflict) surface messages without necessarily blocking the save.
- The last-task-delete guard in Manage notes and tasks requires a confirmed second delete attempt within the same object instance; a fresh retrieval resets that confirmation state.
- New-claim adjuster assignment falls back to the last-iterated range entry when no policy or claim-number-range match is found, rather than failing or assigning an explicit "unassigned" adjuster.
- Some source-registered rules are commented out or otherwise unregistered at runtime (a lien expense-amount rule, a claim-costs-amount rule on distribution, and an expense security-rule stub that always returns
True); they are documented in the relevant operation pages as inactive rather than omitted. clsPolicyNote's memo-insert and mail-ID lookup calls bypass the standard BOF save/business-rule pipeline, issuing their stored procedures directly with noRulesAffected/row-count protection of their own.
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. Detailed inferred/unknown confidence markers are applied per-statement within each operation's detail page underoperations/.
Sources¶
Business\SAIF.Business.Claim.ThirdParty\clsThirdPartyCase.vbBusiness\SAIF.Business.Claim.ThirdParty\clsThrdparty.vbBusiness\SAIF.Business.Claim.ThirdParty\clsThrdPartyFirm.vbBusiness\SAIF.Business.Claim.ThirdParty\clsThrdpartyCompanionClaim.vbBusiness\SAIF.Business.Claim.ThirdParty\clsThrdpartyExpense.vbBusiness\SAIF.Business.Claim.ThirdParty\clsThrdpartyExpenseApproval.vbBusiness\SAIF.Business.Claim.ThirdParty\clsThrdpartyLien.vbBusiness\SAIF.Business.Claim.ThirdParty\clsThrdpartySettlement.vbBusiness\SAIF.Business.Claim.ThirdParty\clsThrdpartySettlementDetail.vbBusiness\SAIF.Business.Claim.ThirdParty\clsThirdpartyDistribution.vbBusiness\SAIF.Business.Claim.ThirdParty\clsThirdpartyNote.vbBusiness\SAIF.Business.Claim.ThirdParty\clsThirdpartyTask.vbBusiness\SAIF.Business.Claim.ThirdParty\clsThrdpartyCaseSearchCollection.vbBusiness\SAIF.Business.Claim.ThirdParty\clsThrdpartyPrediction.vbBusiness\SAIF.Business.Claim.ThirdParty\clsBillAuditService.vbBusiness\SAIF.Business.Claim.ThirdParty\clsClaimPaymentTransDetail.vbBusiness\SAIF.Business.Claim.ThirdParty\clsPolicyNote.vbBusiness\SAIF.Business.Claim.ThirdParty\clsThirdPartyNewClaim.vbBusiness\SAIF.Business.Claim.ThirdParty\clsClaimActivityManager.vbBusiness\SAIF.Business.Claim.ThirdParty\clsAdjusterAssignment.vb