SAIF.Business.Claim.Person business rules
This page captures business rules enforced by this library.
BR-PER-001: Optimistic concurrency applies to CRUD operations
| Field |
Value |
| Statement |
Optimistic concurrency checks apply to claim-person business-object save and delete operations. |
| Trigger |
When an entity save or delete operation completes. |
| Enforcement |
BOF criteria lifecycle handlers and entity completion checks across the person business objects. |
| Outcome |
Stale updates raise contention errors instead of silently overwriting database state. |
| Source |
Business\SAIF.Business.Claim.Person\clsAwardEligibility.vb |
BR-PER-002: Phonetic name generation is required for name maintenance
| Field |
Value |
| Statement |
The library generates a phonetic name code whenever a claim-person name is inserted or updated. |
| Trigger |
When clsClaimPersonName saves a name-history record. |
| Enforcement |
clsClaimPersonName.GetPhoneticNameCode calls the Oracle package before name persistence. |
| Outcome |
Search-oriented phonetic indexing stays aligned with saved name history. |
| Tables |
CL_CLAIM_PERSON_NAME_HISTORY, CL_CLAIM_PERSON, DUAL |
| SQL |
SQL-002, SQL-008, SQL-016, SQL-017 |
| Source |
Business\SAIF.Business.Claim.Person\clsClaimPersonName.vb |
BR-PROC-001: Phonetic name generation must occur before claim-person name persistence
| Field |
Value |
| Statement |
Phonetic name generation must occur before claim-person name persistence. |
| Trigger |
When clsClaimPersonName prepares Oracle-backed name persistence. |
| Enforcement |
PK82028_PHONETIC_NAME.createPhoneticName |
| Outcome |
The stored procedure returns the phonetic name token that the BOF object persists with the claim-person name history row. |
| Confidence |
Source-backed |
| Source |
PK82028_PHONETIC_NAME.createPhoneticName |
BR-PER-003: Tax ID must contain exactly nine digits
| Field |
Value |
| Statement |
A person tax ID history row's tax ID must contain exactly nine digits. |
| Trigger |
When a dirty clsPersonTaxIDHistory row is validated. |
| Enforcement |
clsPersonTaxIDHistory.SSNRequired. |
| Outcome |
An invalid tax ID blocks save. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsPersonTaxIDHistory.vb |
BR-PER-004: Primary flag must be Y or N
| Field |
Value |
| Statement |
PrimaryFlag on a tax ID history row must be Y or N. |
| Trigger |
When a dirty clsPersonTaxIDHistory row is validated. |
| Enforcement |
clsPersonTaxIDHistory.PrimaryFlagValid. |
| Outcome |
An invalid flag value blocks save. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsPersonTaxIDHistory.vb |
BR-PER-005: Void flag must be Y or N
| Field |
Value |
| Statement |
VoidFlag on a tax ID history row must be Y or N. |
| Trigger |
When a dirty clsPersonTaxIDHistory row is validated. |
| Enforcement |
clsPersonTaxIDHistory.VoidFlagValid. |
| Outcome |
An invalid flag value blocks save. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsPersonTaxIDHistory.vb |
BR-PER-006: Primary tax IDs must be unique across worker records
| Field |
Value |
| Statement |
A primary tax ID cannot already be recorded as primary for a different worker person. |
| Trigger |
When a nine-digit primary tax ID is validated. |
| Enforcement |
clsPersonTaxIDHistory.PrimarySSNValid (via GetPrimaryTaxID). |
| Outcome |
A duplicate primary tax ID for another worker blocks save. |
| Tables |
CL_PERSON_TAX_ID_HISTORY, CL_CLAIM_PERSON |
| SQL |
SQL-011 |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsPersonTaxIDHistory.vb |
BR-PER-007: Duplicate tax IDs raise a warning
| Field |
Value |
| Statement |
A tax ID already used by another person's history row generates a warning rather than a blocking error. |
| Trigger |
When a nine-digit tax ID is validated. |
| Enforcement |
clsPersonTaxIDHistory.SSNInUse (via GetTaxIDInUseAsActive / GetTaxIDInUse). |
| Outcome |
A warning is added; save is not blocked by this check alone. |
| Tables |
CL_PERSON_TAX_ID_HISTORY |
| SQL |
SQL-010, SQL-012 |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsPersonTaxIDHistory.vb |
BR-PER-008: Only one tax ID can be primary per person
| Field |
Value |
| Statement |
A person's tax ID history collection can contain at most one row marked primary. |
| Trigger |
When the tax ID history collection is dirty and validated. |
| Enforcement |
clsPersonTaxIDHistoryCollection.PrimaryValid. |
| Outcome |
Multiple primary rows block save. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsPersonTaxIDHistoryCollection.vb |
BR-PER-009: Primary tax IDs cannot be voided
| Field |
Value |
| Statement |
A tax ID history row cannot be marked both primary and void. |
| Trigger |
When a clsPersonTaxIDHistory row is validated. |
| Enforcement |
clsPersonTaxIDHistory.PrimaryNotVoid. |
| Outcome |
An invalid combination blocks save. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsPersonTaxIDHistory.vb |
BR-PER-010: Award eligibility effective date is required
| Field |
Value |
| Statement |
An award eligibility period must have an effective date. |
| Trigger |
When a clsAwardEligibility period is validated. |
| Enforcement |
clsAwardEligibility.ValidEffectiveDate. |
| Outcome |
A blank effective date blocks save. |
| Tables |
CL_AWARD_ELIGIBILITY |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsAwardEligibility.vb |
BR-PER-011: Award eligibility expiration date cannot precede the effective date
| Field |
Value |
| Statement |
An award eligibility period's expiration date cannot be earlier than its effective date. |
| Trigger |
When a clsAwardEligibility period is validated. |
| Enforcement |
clsAwardEligibility.ValidExpirationDate. |
| Outcome |
An invalid date range blocks save. |
| Tables |
CL_AWARD_ELIGIBILITY |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsAwardEligibility.vb |
BR-PER-012: Award eligibility cannot start before the beneficiary birth date
| Field |
Value |
| Statement |
An award eligibility period's effective date must be on or after the beneficiary's birth date. |
| Trigger |
When a clsAwardEligibility period is validated. |
| Enforcement |
clsAwardEligibility.EffectiveDateAfterBirthDate. |
| Outcome |
An invalid period blocks save. |
| Tables |
CL_AWARD_ELIGIBILITY |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsAwardEligibility.vb |
BR-PER-013: Award eligibility cannot extend past the beneficiary death date
| Field |
Value |
| Statement |
An award eligibility period cannot run beyond the beneficiary's recorded death date. |
| Trigger |
When a clsAwardEligibility period is validated and a death date is present. |
| Enforcement |
clsAwardEligibility.EligPeriodAfterDeathDate. |
| Outcome |
An invalid period blocks save. |
| Tables |
CL_AWARD_ELIGIBILITY |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsAwardEligibility.vb |
BR-PER-014: Award eligibility periods cannot overlap
| Field |
Value |
| Statement |
A beneficiary's award eligibility periods cannot overlap one another. |
| Trigger |
When the award eligibility collection is validated. |
| Enforcement |
clsAwardEligibilityCollection.NoDateOverlap. |
| Outcome |
Overlapping periods block save. |
| Tables |
CL_AWARD_ELIGIBILITY |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsAwardEligibilityCollection.vb |
BR-PER-015: Beneficiary last name is required
| Field |
Value |
| Statement |
A beneficiary must have a last name. |
| Trigger |
When a clsBeneficiary object is validated. |
| Enforcement |
clsBeneficiary.PrimaryLastNameRequired. |
| Outcome |
A missing last name blocks validation. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsBeneficiary.vb |
BR-PER-016: Orphan codes require the child relationship code
| Field |
Value |
| Statement |
An orphan code of 1 or 2 requires the beneficiary relationship code to be the child code (2). |
| Trigger |
When a clsBeneficiary object is validated. |
| Enforcement |
clsBeneficiary.OrphanIsChild. |
| Outcome |
An inconsistent orphan/relationship combination blocks validation. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsBeneficiary.vb |
BR-PER-017: Beneficiary birth dates cannot be future-dated and are required when eligibility periods exist
| Field |
Value |
| Statement |
A beneficiary birth date cannot be in the future, and is required when an eligibility end date exists. |
| Trigger |
When a clsBeneficiary object is validated. |
| Enforcement |
clsBeneficiary.ValidBirthDate. |
| Outcome |
An invalid birth-date state blocks validation. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsBeneficiary.vb |
BR-PER-018: Beneficiary death dates cannot be future-dated and must be after the birth date
| Field |
Value |
| Statement |
A beneficiary death date cannot be in the future and must be later than the birth date. |
| Trigger |
When a clsBeneficiary object is validated. |
| Enforcement |
clsBeneficiary.ValidDeathDate. |
| Outcome |
An invalid death date blocks validation. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsBeneficiary.vb |
BR-PER-019: Birth certificate received dates cannot be future-dated
| Field |
Value |
| Statement |
A beneficiary's birth-certificate-received date cannot be in the future. |
| Trigger |
When a clsBeneficiary object is validated. |
| Enforcement |
clsBeneficiary.ValidBirthCertReceivedDate. |
| Outcome |
An invalid date blocks validation. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsBeneficiary.vb |
BR-PER-020: Beneficiary gender codes must be M, F, or U
| Field |
Value |
| Statement |
A beneficiary gender code must be M, F, or U. |
| Trigger |
When a clsBeneficiary object is validated. |
| Enforcement |
clsBeneficiary.ValidGenderCode. |
| Outcome |
An invalid code blocks validation. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsBeneficiary.vb |
BR-PER-021: Beneficiary tax IDs must contain exactly nine digits when provided
| Field |
Value |
| Statement |
A beneficiary tax ID, when entered, must contain exactly nine digits. |
| Trigger |
When a clsBeneficiary object is validated and a tax ID is present. |
| Enforcement |
clsBeneficiary.ValidSSN. |
| Outcome |
An invalid tax ID blocks validation. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsBeneficiary.vb |
BR-PER-022: Post-1999 PTD beneficiary claims require a recorded worker death date
| Field |
Value |
| Statement |
For claims with an injury date on or after October 23, 1999, PTD beneficiary eligibility requires a recorded worker death date. |
| Trigger |
When a clsBeneficiary object is validated. |
| Enforcement |
clsBeneficiary.PTDBenefitsAfter10_23_1999. |
| Outcome |
A missing worker death date blocks validation. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsBeneficiary.vb |
BR-PER-023: Conflicting payment addresses generate a warning
| Field |
Value |
| Statement |
When a beneficiary has both a special payment address and a guardian payment address, a warning is generated. |
| Trigger |
When a clsBeneficiary object is validated. |
| Enforcement |
clsBeneficiary.TwoPaymentAddresses. |
| Outcome |
A warning is added; validation is not blocked by this check alone. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsBeneficiary.vb |
BR-PER-024: Beneficiary death-date changes generate an eligibility review warning
| Field |
Value |
| Statement |
Editing a beneficiary's death date generates a warning that the current award eligibility period may need expiration review. |
| Trigger |
When the beneficiary death date is modified. |
| Enforcement |
clsBeneficiary.DeathDateModified. |
| Outcome |
A warning is added. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsBeneficiary.vb |
BR-PER-025: Higher education requires orphan code 2
| Field |
Value |
| Statement |
Higher-education status is only valid for a beneficiary with orphan code 2. |
| Trigger |
When a clsBeneficiary object is validated. |
| Enforcement |
clsBeneficiary.HigherEdOrphanValid. |
| Outcome |
An invalid combination blocks validation. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsBeneficiary.vb |
BR-PER-026: Twice-orphaned child beneficiaries must resolve higher education status
| Field |
Value |
| Statement |
A child beneficiary with orphan code 2 must resolve a definite higher-education status. |
| Trigger |
When a clsBeneficiary object is validated. |
| Enforcement |
clsBeneficiary.HigherEdOrphanRequired. |
| Outcome |
An unresolved status blocks validation. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsBeneficiary.vb |
BR-PER-027: Worker health issue exposure codes are required and must be at least 1
| Field |
Value |
| Statement |
A worker health issue row's exposure code cannot be blank and must be numerically at least 1. |
| Trigger |
When a clsWorkerHealthIssue row is validated. |
| Enforcement |
clsWorkerHealthIssue.ExposureCodeValid. |
| Outcome |
An invalid exposure code blocks save. |
| Tables |
CL_WORKER_HEALTH_ISSUE |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsWorkerHealthIssue.vb |
BR-PER-028: Claim-person name last name is required
| Field |
Value |
| Statement |
A claim-person name-history row must have a non-blank last name. |
| Trigger |
When a clsClaimPersonName row is validated. |
| Enforcement |
clsClaimPersonName.LastNameRequired. |
| Outcome |
A blank last name blocks save. |
| Tables |
CL_CLAIM_PERSON_NAME_HISTORY |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsClaimPersonName.vb |
BR-PER-029: Claim-person name primary flag must be Y or N
| Field |
Value |
| Statement |
PrimaryFlag on a claim-person name row must be Y or N. |
| Trigger |
When a clsClaimPersonName row is validated. |
| Enforcement |
clsClaimPersonName.PrimaryFlagValid. |
| Outcome |
An invalid flag value blocks save. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsClaimPersonName.vb |
BR-PER-030: Claim-person name void flag must be Y or N
| Field |
Value |
| Statement |
VoidFlag on a claim-person name row must be Y or N. |
| Trigger |
When a clsClaimPersonName row is validated. |
| Enforcement |
clsClaimPersonName.VoidFlagValid. |
| Outcome |
An invalid flag value blocks save. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsClaimPersonName.vb |
BR-PER-031: A primary claim-person name may not be void
| Field |
Value |
| Statement |
A claim-person name row cannot be marked both primary and void. |
| Trigger |
When a clsClaimPersonName row is validated. |
| Enforcement |
clsClaimPersonName.PrimaryVoidFlagsValid. |
| Outcome |
An invalid combination blocks save. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsClaimPersonName.vb |
BR-PER-032: Only one claim-person name can be primary
| Field |
Value |
| Statement |
A person's name-history collection can contain at most one row marked primary. |
| Trigger |
When the name-history collection is dirty and non-empty. |
| Enforcement |
clsClaimPersonNameCollection.PrimaryValid. |
| Outcome |
Multiple primary name rows block save. |
| Tables |
CL_CLAIM_PERSON_NAME_HISTORY |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsClaimPersonNameCollection.vb |
BR-PER-033: Payment address effective date must be present and not in the past
| Field |
Value |
| Statement |
A special payment address's effective date cannot be blank or earlier than today. |
| Trigger |
When a dirty payment address (clsClaimPersonAddress) with a modified effective date is validated. |
| Enforcement |
clsClaimPersonAddress.ValidEffDate. |
| Outcome |
An invalid effective date blocks save. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsClaimPersonAddress.vb |
BR-PER-034: Payment address expiration date cannot precede the effective date or be in the past
| Field |
Value |
| Statement |
A special payment address's expiration date, when set, cannot be earlier than the effective date and cannot be in the past if it was just modified. |
| Trigger |
When a dirty payment address (clsClaimPersonAddress) is validated. |
| Enforcement |
clsClaimPersonAddress.ValidExpDate. |
| Outcome |
An invalid expiration date blocks save. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsClaimPersonAddress.vb |
BR-PER-035: Domestic payment addresses require address line 1, city, state, and zip
| Field |
Value |
| Statement |
A dirty, non-foreign payment address that has any address content entered must include address line 1, city, state, and zip code. |
| Trigger |
When a dirty, domestic-format payment address (clsClaimPersonAddress) is validated. |
| Enforcement |
clsClaimPersonAddress.ValidDomesticAddress. |
| Outcome |
An incomplete domestic address blocks save. |
| Confidence |
Source-backed |
| Source |
Business\SAIF.Business.Claim.Person\clsClaimPersonAddress.vb |
Sources
Business\SAIF.Business.Claim.Person\clsAwardEligibility.vb
Business\SAIF.Business.Claim.Person\clsAwardEligibilityCollection.vb
Business\SAIF.Business.Claim.Person\clsClaimPersonName.vb
Business\SAIF.Business.Claim.Person\clsClaimPersonNameCollection.vb
Business\SAIF.Business.Claim.Person\clsClaimPersonAddress.vb
Business\SAIF.Business.Claim.Person\clsPersonTaxIDHistory.vb
Business\SAIF.Business.Claim.Person\clsPersonTaxIDHistoryCollection.vb
Business\SAIF.Business.Claim.Person\clsBeneficiary.vb
Business\SAIF.Business.Claim.Person\clsWorkerHealthIssue.vb