SAIF.Business.Claim.Entry operations and processes¶
This page is the operation catalog and cross-operation hub for SAIF.Business.Claim.Entry. The library exposes sixteen operations covering the core claim-entry lifecycle (create, insert, update, delete, number, and duplicate-claim detection), state-specific entry extensions (county-code resolution, multiple-employer letters, work release), pharmacy eligibility CRUD and reporting, and the Online 801 electronic-submission surface (documents, submissions, submission detail, worker lookup, claim submission, and claim search), which is backed by the PK82538_ONLINE_801_CLAIM Oracle package and two ClaimCenter/CCClaimDataApi REST integrations. 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 |
|---|---|---|---|---|---|---|---|
| Create new claim | Generate a new CLAIM_ID from an Oracle sequence and initialize claim defaults |
clsClaimEntry.BeforeCreate / AfterCreate via the data-portal create pipeline |
Acting worker ID, jurisdiction code | New in-memory claim object seeded with default status/coverage/flags | None documented* | None | SQL-001 |
| Insert claim | Persist a new claim header to CL_INJURY_CLAIM and, for New-status claims, cascade auxiliary status rows |
clsClaimEntry.BeforeInsert / AfterInsert during Save() of a new claim |
Populated claim fields, injury address, IsNewStatus |
Inserted CL_INJURY_CLAIM row; conditional request-decision, status-activity, type-activity, MCO-eligibility, and policy-history rows |
BR-CE-004, BR-CE-011, BR-CE-013 | CL_INJURY_CLAIM, CL_CLAIM_REQUEST_DECISION, CL_CLAIM_STATUS_ACTIVITY, CL_CLAIM_TYPE_ACTIVITY, CL_CLAIM_MCO_ELIGIBILITY, CL_CLAIM_POLICY_HISTORY | SQL-010, SQL-005, SQL-006, SQL-007, SQL-008, SQL-009 |
| Update claim | Update all mutable fields on CL_INJURY_CLAIM with optimistic concurrency, re-running the New-status cascade |
clsClaimEntry.BeforeUpdate / AfterUpdate during Save() of an existing claim |
Modified claim fields, ClaimID, UpdateNum |
Updated CL_INJURY_CLAIM row; same conditional auxiliary rows as insert |
BR-CE-004, BR-CE-011, BR-CE-013 | CL_INJURY_CLAIM, CL_CLAIM_REQUEST_DECISION, CL_CLAIM_STATUS_ACTIVITY, CL_CLAIM_TYPE_ACTIVITY, CL_CLAIM_MCO_ELIGIBILITY, CL_CLAIM_POLICY_HISTORY | SQL-022, SQL-005, SQL-006, SQL-007, SQL-008, SQL-009 |
| Delete claim | Remove all tasks for the claim, then delete the CL_INJURY_CLAIM row |
clsClaimEntry.BeforeDelete / AfterDelete during Save() of a deleted claim |
ClaimID |
Deleted TASK rows and CL_INJURY_CLAIM row, or a DB contention error |
BR-CE-011 | CL_INJURY_CLAIM | SQL-027 |
| Number claim / manual claim validation | Assign the next system claim number or validate a manually entered claim number | Caller calls NumberClaim or ValidManualClaim before save |
Current SaifClaimNum, or a manually entered claim number |
Assigned/validated SaifClaimNum and recalculated check digit |
BR-CE-003, BR-CE-014 | None | SQL-002 |
| Check multiple claims for worker | Detect an existing claim for the same worker within a 14-day injury-date window | Caller calls CheckForMultipleClaimsForWorker |
WorkerID, ClaimID, InjuryDate |
Matching SAIF claim number, or an empty string | BR-CE-012 | CL_INJURY_CLAIM | SQL-016 |
| State insert extensions | Resolve the county code from the injury address and, for New-status claims, queue a multiple-employer letter request | clsStateClaimEntry.BeforeInsert / BeforeUpdate |
Injury address state/zip, MultipleEmprFlag, SaifClaimNum |
Resolved County on the injury address; conditional CL_MULT_EMPLOYER_LETTER_REQ row |
BR-CE-007, BR-CE-008, BR-CE-009 | ZIP_MCO_COUNTY, CL_MULT_EMPLOYER_LETTER_REQ | SQL-019, SQL-015 |
| Work release management | Create, update, or delete the claim's work-release-status child record to match the caller-supplied code/date | clsStateClaimEntry.IsValid, via UpdateWorkReleaseStatus |
WorkReleaseCode, WorkReleaseDate, claim deletion state |
Created/updated/deleted work-release-status child object | BR-CE-005, BR-CE-015 | None in this library* | None in this library* |
| Pharmacy eligibility CRUD | Insert or update a pharmacy eligibility report record for a claim | clsPharmacyEligibilityReport.BeforeInsert / BeforeUpdate during Save() |
ClaimID, eligibility status/effective date, transmit dates |
Inserted/updated CL_PHARMACY_ELIGIBILITY_REPORT row |
BR-CE-010, BR-CE-011 | CL_PHARMACY_ELIGIBILITY_REPORT | SQL-014, SQL-026 |
| Pharmacy report retrieval | Extract full, delta, and first-fill pharmacy eligibility report sets for downstream transmission | Caller calls GetEligibilityReports, GetEligibilityFFReports, or GetFirstFillEligibilityReports |
Full/delta extraction flag | Sorted eligibility-report collections for transmission | BR-CE-016, BR-CE-017, BR-CE-018, BR-CE-019 | CL_PHARMACY_ELIGIBILITY_REPORT | Not catalogued in the SQL index — inline queries documented on the operation page* |
| 801 document management | Create, update, and retrieve Online 801 document metadata rows | cls801Document CRUD lifecycle and cls801DocumentCollection retrieval |
ClaimID, ImageSeqNum, FileName, DocTypeCode |
Persisted CL_801_DOCUMENT row, or a retrieved/sorted document collection |
BR-CE-011, BR-PROC-003 | CL_801_DOCUMENT | SQL-003, SQL-011, SQL-023 |
| 801 submission CRUD | Create, update, delete, and retrieve Online 801 submission header rows, including worker-lookup-driven duplicate prevention | cls801Submission CRUD lifecycle and retrieval helpers |
PolicyNumber, ClaimID/SubmissionID, submission header fields |
Persisted CL_801_SUBMISSION row; populated or claim-synthesized submission object |
BR-CE-011, BR-CE-020, BR-CE-021, BR-PROC-001, BR-PROC-002 | CL_801_SUBMISSION | SQL-004, SQL-012, SQL-024, SQL-028 |
| 801 submission data CRUD | Create, update, delete, and retrieve Online 801 submission detail rows, including claim/worker prefill | cls801SubmissionData CRUD lifecycle and LoadFromClaim / LoadClaimWorker prefill |
Submission ID, claim data, worker DTO/ID, Box-field detail | Persisted CL_801_SUBMISSION_DATA row and six contact objects |
BR-CE-011, BR-PROC-002 | CL_801_SUBMISSION_DATA | SQL-013, SQL-018, SQL-025, SQL-029 |
| Worker lookup via API | Resolve a worker (and, when applicable, an in-progress claim) from CCClaimDataApi before an Online 801 submission | cls801Submission.FindWorker, delegating to clsFindWorkerAPI |
Submission name fields, tax ID, birth date, injury date | Resolved cls801FindWorkerDTO worker(s); adopted ClaimID on a same-claim match |
BR-CE-022 | None (REST) | None |
| Claim submission via API | Submit a completed Online 801 submission to ClaimCenter and adopt the returned ClaimID |
cls801Submission.SubmitClaim, delegating to clsSubmitClaimByAPI |
Validated submission and submission-data, acting user | ClaimCenter ClaimID; updated submission status Submitted; clsSubmissionResult |
BR-CE-023 | None (REST) | None |
| Claim search via API | Search CCClaimDataApi for Online 801 claims matching policy/name/SSN/date criteria | clsClaimSearchResultCollection.GetResults, delegating to clsClaimSearchApi |
PolicyNum, name, SSN, claim number, status flags, date ranges |
Sorted clsClaimSearchResult collection with display-translated claim number/status |
BR-CE-024 | None (REST) | None |
Process flow diagram¶
The following diagram shows how the sixteen operations relate: a claim is created, numbered, and persisted through its core lifecycle; state-specific extensions and pharmacy eligibility hang off the same claim; and the Online 801 surface runs its own parallel lifecycle for documents, submissions, and submission detail, converging on worker lookup and ClaimCenter submission.
flowchart TD
Start([Caller requests claim entry]) --> Create[Create new claim]
Create --> Number[Number claim /<br>manual claim validation]
Number --> Dup{Check multiple claims<br>for worker?}
Dup -->|Match found| Warn([Caller warned of<br>possible duplicate claim])
Dup -->|No match| Insert[Insert claim]
Insert --> StateExt[State insert extensions:<br>county code, multiple-employer letter]
Insert --> WorkRel[Work release management]
Insert --> Pharmacy[Pharmacy eligibility CRUD]
Pharmacy --> PharmReports[Pharmacy report retrieval]
Create --> Update[Update claim]
Update --> StateExt
Update --> WorkRel
Update --> Pharmacy
Insert --> Delete{Claim deleted?}
Update --> Delete
Delete -->|Yes| DeleteOp[Delete claim]
Online801Start([Online 801 electronic submission]) --> Search[Claim search via API]
Online801Start --> WorkerLookup[Worker lookup via API]
WorkerLookup --> SubCrud[801 submission CRUD]
SubCrud --> SubDataCrud[801 submission data CRUD]
SubDataCrud --> DocMgmt[801 document management]
SubDataCrud --> Submit{Ready to submit?}
Submit -->|Yes| ClaimSubmit[Claim submission via API]
ClaimSubmit --> Insert
Submit -->|No| SubDataCrud
Inherited operations and processes¶
Operations in this section originate from base classes or business objects provided by dependency libraries. They are inherited or delegated, not implemented in this library.
From clsClaimWorkReleaseStatus and clsClaimEmployeeWorkAddress (SAIF.Business.Claim)¶
| Operation | Intent | Provided by | Origin | Embedded in |
|---|---|---|---|---|
| Work status and work release tracking | Create, retrieve, update, and delete the sequence-numbered work-release-status child row | clsClaimWorkReleaseStatus |
SAIF.Business.Claim |
Work release management |
| Claim employee work address management | Maintain the address of the work site where the injury occurred | clsClaimEmployeeWorkAddress |
SAIF.Business.Claim |
State insert extensions |
Origin: These operations are defined and fully documented in
SAIF.Business.Claim, which has been migrated to the current documentation format. See Work status and work release tracking and Claim employee work address management in theSAIF.Business.Claimdocumentation set.
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 |
|---|---|---|---|
| Retrieve Online 801 submissions | Returns submission rows by submission ID, claim ID, policy number, or retention-date cleanup mode. | PK82538_ONLINE_801_CLAIM.submission_select |
Details |
| Persist Online 801 submission headers | Inserts, updates, and deletes Online 801 submission header rows. | PK82538_ONLINE_801_CLAIM.submission_insert |
Details |
| Persist Online 801 submission detail | Inserts, updates, retrieves, and deletes Online 801 submission detail rows. | PK82538_ONLINE_801_CLAIM.submission_data_insert |
Details |
| Persist Online 801 documents | Retrieves and maintains Online 801 document metadata keyed by claim or image sequence number. | PK82538_ONLINE_801_CLAIM.document_insert |
Details |
Failure and edge-case behavior¶
- Every persisting claim-entry, pharmacy, and Online 801 operation checks the affected row count and adds a DB contention error instead of throwing (BR-CE-011). Detailed per-operation behavior is documented on each operation page.
- Deleting Online 801 documents is not operational:
cls801Documentprepares delete parameters, but its criteria class throwsInvalidSQLPropertyforDeleteSQL, so nodocument_deleteprocedure is wired.* 801 submission CRUDretrieval and cleanup paths (submission_select,submission_claim_select,submission_policy_select,submission_cleanup_select,Incomplete_Submission_select) callPK82538_ONLINE_801_CLAIMprocedures that are not individually catalogued asSQL-*documents in this run; see the operation page for the traced call sites.*- The
Claim submission via APIflow unconditionally setsIsSubmitted = Trueon the result object after the local save attempt, regardless of whether the save actually succeeded, which can mask a failed local persist.* Claim submission via API's response handling inclsSubmitClaimByAPI.AfterInsertdereferencesresponse(0)in its own empty-response fallback branch, which throws if the API ever returns a zero-length response array.*Claim search via APIdoes not inspect the wrapper response's status code or handle a missing/emptyDatapayload before consuming it.*- Warning-versus-error severity for duplicate-claim detection is caller-dependent:
CheckForMultipleClaimsForWorkeritself only returns a claim number string; historical rule wrappers treated a match as a warning rather than a blocking error.*
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.
Sources¶
Business\SAIF.Business.Claim.Entry\clsClaimEntry.vbBusiness\SAIF.Business.Claim.Entry\clsClaimEntryBusinessRules.vbBusiness\SAIF.Business.Claim.Entry\clsPharmacyEligibility.vbBusiness\SAIF.Business.Claim.Entry\clsStateClaimEntry.vbBusiness\SAIF.Business.Claim.Entry\enums.vbBusiness\SAIF.Business.Claim.Entry\Online801\Submission\cls801Document.vbBusiness\SAIF.Business.Claim.Entry\Online801\Submission\cls801Submission.vbBusiness\SAIF.Business.Claim.Entry\Online801\Submission\cls801SubmissionData.vbBusiness\SAIF.Business.Claim.Entry\Online801\Submission\clsFindWorkerAPI.vbBusiness\SAIF.Business.Claim.Entry\Online801\Submission\clsSubmitClaimByAPI.vbBusiness\SAIF.Business.Claim.Entry\Online801\Submission\clsGwNameSuffix.vbBusiness\SAIF.Business.Claim.Entry\Online801\Submission\cls801FindWorkerDTO.vbBusiness\SAIF.Business.Claim.Entry\Online801\Submission\cls801SearchCriteriaDTO.vbBusiness\SAIF.Business.Claim.Entry\Online801\Submission\ApiNewClaimModels\clsNewClaimModel.vbBusiness\SAIF.Business.Claim.Entry\Online801\Submission\ApiNewClaimModels\Claimant.vbBusiness\SAIF.Business.Claim.Entry\Online801\Submission\ApiNewClaimModels\EmploymentData.vbBusiness\SAIF.Business.Claim.Entry\Online801\Submission\ApiNewClaimModels\Policy.vbBusiness\SAIF.Business.Claim.Entry\Online801\Submission\ApiNewClaimModels\PrimaryAddress.vbBusiness\SAIF.Business.Claim.Entry\Online801\Search\clsClaimSearchCriteria.vbBusiness\SAIF.Business.Claim.Entry\Online801\Search\clsClaimSearchResult.vbBusiness\SAIF.Business.Claim.Entry\Online801\Search\CCClaimDataApi\clsClaimSearchApi.vbBusiness\SAIF.Business.Claim.Entry\Online801\Search\CCClaimDataApi\CCClaimDataApiClaimSearchCriteria.vbBusiness\SAIF.Business.Claim.Entry\Online801\CCClaimDataAPIResponseData.vbBusiness\SAIF.Business.Claim.Entry\Online801\ClaimCenterAPIResponseData.vbBusiness\SAIF.Business.Claim.Entry\Online801\clsRecordInfo.vbBusiness\SAIF.Business.Claim.Entry\Online801\mdlCodeTables.vb