801 submission data CRUD¶
cls801SubmissionData holds the Box-field detail for an Online 801 submission — the employer, employee, physician, and other contact information required by the electronic claim form — spread across six contact child objects. This operation covers its persistence lifecycle and the prefill logic that copies known claim and worker data onto those contacts so a claims examiner does not have to re-key it.
| Field | Value |
|---|---|
| Operation ID | OP-CE-13 |
| Trigger | cls801SubmissionData CRUD lifecycle (BeforeCreate, BeforeInsert, BeforeUpdate, BeforeDelete) and LoadFromClaim / LoadClaimWorker prefill |
| Inputs | SubmissionID, claim data, worker DTO/ID, Box-field detail for six contact objects, LastUpdateNum |
| Outputs | Persisted CL_801_SUBMISSION_DATA row and six contact objects |
| Primary components | cls801SubmissionData.BeforeInsert, cls801SubmissionData.BeforeUpdate, cls801SubmissionData.BeforeDelete, cls801SubmissionData.LoadFromClaim, cls801SubmissionData.LoadClaimWorker |
| Entry point | Business\SAIF.Business.Claim.Entry\Online801\Submission\cls801SubmissionData.vb |
Steps¶
- Insert the submission detail row.
BeforeInsertbinds the Box-field detail and the six contact objects' values, and issues the insert throughPK82538_ONLINE_801_CLAIM.submission_data_insert(SQL-013, CL_801_SUBMISSION_DATA). - Retrieve the submission detail row.
BeforeRetrieveselects the detail row for a submission and fills all six contact objects from the returned columns (SQL-018, CL_801_SUBMISSION_DATA). - Update the submission detail row under version checking (BR-CE-011).
BeforeUpdatebindsLastUpdateNumalongside the updated detail fields (SQL-025, CL_801_SUBMISSION_DATA). - If the rows-affected value is not
1: add anUpdateErrorbroken rule. - Delete the submission detail row under version checking (BR-PROC-002).
BeforeDeletebindsLastUpdateNumand issues the delete (SQL-029, CL_801_SUBMISSION_DATA). - If the rows-affected value is not
1: add aDeleteErrorbroken rule. - Prefill from an existing claim.
LoadFromClaimcopies known claim-level data (e.g., policy number, employer information) onto the corresponding contact objects, reducing manual re-entry when a submission is created for an existing claim.* - Prefill from a resolved worker.
LoadClaimWorkercopies fields from the worker record resolved during Worker lookup via API onto the employee contact object.
Process flow¶
flowchart TD
Start([Caller manages Online 801<br>submission detail]) --> Mode{Create, update,<br>delete, or retrieve?}
Mode -->|Create/Insert| Insert[Insert CL_801_SUBMISSION_DATA<br>via submission_data_insert]
Mode -->|Update| Update[Update row,<br>checking LastUpdateNum]
Update --> URows{RowsAffected = 1?}
URows -->|No| UConflict([Raise UpdateError])
URows -->|Yes| UDone([Detail updated])
Mode -->|Delete| Delete[Delete row,<br>checking LastUpdateNum]
Delete --> DRows{RowsAffected = 1?}
DRows -->|No| DConflict([Raise DeleteError])
DRows -->|Yes| DDone([Detail deleted])
Mode -->|Retrieve| Select[Select detail row;<br>fill six contact objects]
Select --> Return([Return submission<br>data object])
Insert --> Prefill{Prefill requested?}
Prefill -->|From claim| LoadClaim[Copy claim data<br>onto contacts]
Prefill -->|From worker| LoadWorker[Copy worker data<br>onto employee contact]
Prefill -->|No| Return
LoadClaim --> Return
LoadWorker --> Return
Failure and edge-case behavior¶
LoadFromClaimandLoadClaimWorkeroverwrite contact-object fields with claim/worker data; if a claims examiner had already manually entered different values on those fields, the prefill would replace them rather than merge or warn.*- Update and delete both enforce the same
LastUpdateNumversion check as 801 submission CRUD (BR-PROC-002), surfacing a broken rule rather than throwing on a stale version. - Splitting the six contact objects across a single detail row means a partial-fill failure on retrieve (e.g., an unexpected null in one contact's columns) could leave some contact objects populated and others empty rather than failing the whole retrieve atomically; no explicit atomicity guard was found in the traced source.*
Related documentation¶
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\Online801\Submission\cls801SubmissionData.vb