SAIF.Business.Claim.Maintenance business rules
This page captures business rules enforced by SAIF.Business.Claim.Maintenance.
BR-CM-001: Optimistic concurrency — updates fail if RowsAffected ≠ 1
Field
Value
Statement
Optimistic concurrency — updates fail if RowsAffected ≠ 1
Trigger
All After* lifecycle methods
Enforcement
All business objects
Outcome
AddErrorMessage with DB contention error
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AfterUpdate; Business\SAIF.Business.Claim.Maintenance\clsClaimSupportOrder.vb — AfterUpdate; Business\SAIF.Business.Claim.Maintenance\clsMedicalCondition.vb — AfterUpdate
BR-CM-002: Support order cannot be deleted if awards exist for the SUO claim
Field
Value
Statement
Support order cannot be deleted if awards exist for the SUO claim
Trigger
Delete validation
Enforcement
clsClaimSupportOrder — PK82141_SUPPORT_ORDER.AwardExistsForSUOClaim
Outcome
Prevents deletion
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimSupportOrder.vb — ValidSelectedClaims, AwardForOrderExists
BR-CM-003: Support order cannot be deleted if payments exist for the SUO claim
Field
Value
Statement
Support order cannot be deleted if payments exist for the SUO claim
Trigger
Delete validation
Enforcement
clsClaimSupportOrder — PK82141_SUPPORT_ORDER.PaymentExistsForSUOClaim
Outcome
Prevents deletion
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimSupportOrder.vb — ValidSelectedClaims, PaymentForOrderExists
BR-CM-004: Support order validates payment-about-to-be-issued status before changes
Field
Value
Statement
Support order validates payment-about-to-be-issued status before changes
Trigger
Pre-update check
Enforcement
clsClaimSupportOrder — PK82141_SUPPORT_ORDER.PaymentAboutToBeIssued
Outcome
Prevents update
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimSupportOrder.vb — PaymentIssueWarning, PaymentAboutToBeIssued
BR-CM-005: Benefit payee must exist for support order before payment processing
Field
Value
Statement
Benefit payee must exist for support order before payment processing
Trigger
Pre-payment check
Enforcement
clsClaimSupportOrder — PK82141_SUPPORT_ORDER.BenfitPayeeForOrderExists
Outcome
Validation check
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimSupportOrder.vb — DetermineTodoTasks, BenifitPayeeReferencesOrder
BR-CM-006: Award reduction validation before support order modification
Field
Value
Statement
Award reduction validation before support order modification
Trigger
Pre-update check
Enforcement
clsClaimSupportOrder — PK82141_SUPPORT_ORDER.AwardReductionExists
Outcome
Validation check
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimSupportOrder.vb — AwardReductionExists
BR-CM-007: Void, combine, transfer, restore are mutually exclusive adjustment operations
Field
Value
Statement
Void, combine, transfer, restore are mutually exclusive adjustment operations
Trigger
Adjustment type selection
Enforcement
clsClaimAdjustment — operation type parameter
Outcome
Only one operation per call
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimAdjustment.vb — Save, IsValid
BR-CM-008: Claims with status 'I' (in-progress) or 'V' (voided) are excluded from support order claim
Field
Value
Statement
Claims with status 'I' (in-progress) or 'V' (voided) are excluded from support order claim lists
Trigger
Claim query filter
Enforcement
clsClaimSupportOrder — inline SQL WHERE clause
Outcome
Filters out non-active claims
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimSupportOrder.vb — CreateConnections
BR-CM-009: Injury occupational disease code must be I or D
Field
Value
Statement
InjOccupationalDiseaseCode must be I (injury) or D (occupational disease).
Trigger
InjOccupationalDiseaseCode property set, and again during IsValid()
Enforcement
clsClaimDetail — rule InjOccupationalDiseaseCodeValid (clsClaimDetail01, Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, InjOccupationalDiseaseCodeValid
BR-CM-010: Active claim flag must be Y or N
Field
Value
Statement
ActiveClaimFlag must be Y or N.
Trigger
ActiveClaimFlag property set, and again during IsValid()
Enforcement
clsClaimDetail — rule ActiveClaimFlagValid (clsClaimDetail02, Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, ActiveClaimFlagValid
BR-CM-011: Knowledge date is required and bounded by injury date and today
Field
Value
Statement
KnowledgeDate must be populated, must not be in the future, and must not precede InjuryDate.
Trigger
KnowledgeDate property set, and again during IsValid()
Enforcement
clsClaimDetail — rule KnowledgeDateValid (clsClaimDetail03, Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, KnowledgeDateValid
BR-CM-012: Disability date must not precede injury date or be in the future
Field
Value
Statement
A populated DisabilityDate may not precede InjuryDate unless the claim is an occupational disease claim, and may not be in the future.
Trigger
DisabilityDate property set, and again during IsValid()
Enforcement
clsClaimDetail — rule DisabilityDateValid (clsClaimDetail04, Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, DisabilityDateValid
BR-CM-013: Coverage code must be A B C or E
Field
Value
Statement
CoverageCode must be one of A, B, C, or E.
Trigger
CoverageCode property set, and again during IsValid()
Enforcement
clsClaimDetail — rule CoverageCodeValid (clsClaimDetail05, Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, CoverageCodeValid
BR-CM-014: Handicap worker reserve flag must be Y or N
Field
Value
Statement
HandicapWorkerReserveFlag must be Y or N.
Trigger
HandicapWorkerReserveFlag property set, and again during IsValid()
Enforcement
clsClaimDetail — rule HandicapWorkerReserveFlagValid (clsClaimDetail06, Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, HandicapWorkerReserveFlagValid
BR-CM-015: WCD claim number must be unique across claims
Field
Value
Statement
A non-blank WCDClaimNum may not already be assigned to another claim.
Trigger
WCDClaimNum property set, and again during IsValid()
Enforcement
clsClaimDetail — rule WCDClaimNumValid (clsClaimDetail07, Error) via GetWCDClaimNumberCount
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, WCDClaimNumValid, GetWCDClaimNumberCount
BR-CM-016: Claim status code must be New Open Closed or Denied
Field
Value
Statement
ClaimStatusCode must be one of New (N), Open (O), Closed (C), or Denied (D).
Trigger
ClaimStatusCode property set, and again during IsValid()
Enforcement
clsClaimDetail — rule ClaimStatusCodeValid (clsClaimDetail08, Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, ClaimStatusCodeValid
BR-CM-017: State occupational disease PPD or PTD claims require a disability or initial treatment date
Field
Value
Statement
For state-jurisdiction (1) occupational-disease claims of type PPD (5) or PTD (7), either DisabilityDate or InitialTreatmentDate must be populated.
Trigger
DisabilityDate, InitialTreatmentDate, or ClaimTypeCode set, and again during IsValid()
Enforcement
clsClaimDetail — rule DisabilityTreatmentDateValid (clsClaimDetail09, Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, DisabilityTreatmentDateValid
BR-CM-018: Aggravation decision on a disabling claim requires a closed status
Field
Value
Statement
An aggravation decision (ClaimDecisionTypeToA) on a disabling claim type (4, 5, or 7) requires a current or prior Closed claim status.
Trigger
Claim decision or claim type change, and again during IsValid()
Enforcement
clsClaimDetail — rule AggDisablingClosedValid (clsClaimDetail10, Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, AggDisablingClosedValid
BR-CM-019: OWCP claim number must be unique per worker
Field
Value
Statement
A non-blank OwcpClaimNum may not already be assigned to another claim for the same worker.
Trigger
OwcpClaimNum property set, and again during IsValid()
Enforcement
clsClaimDetail — rule OWCPClaimNumValid (clsClaimDetail11, Error) via GetOWCPClaimNumberCount
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, OWCPClaimNumValid, GetOWCPClaimNumberCount
BR-CM-020: Claim status may not change without at least one condition
Field
Value
Statement
ClaimStatusCode may not change to Closed, Open, or Denied while the claim has zero medical conditions.
Trigger
ClaimStatusCode property set, and again during IsValid()
Enforcement
clsClaimDetail — rule ClaimStatusChangedWithoutCondition (clsClaimDetail12, Error) using the retrieve-time conditions count
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, ClaimStatusChangedWithoutCondition, GetConditionsCount
BR-CM-021: Claim status may not close while the latest decision is deferred
Field
Value
Statement
ClaimStatusCode may not be set to Closed when the latest claim decision is a deferred original-injury request.
Trigger
ClaimStatusCode property set, and again during IsValid()
Enforcement
clsClaimDetail — rule ClaimStatusClosedAndDeferred (clsClaimDetail13, Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, ClaimStatusClosedAndDeferred
BR-CM-022: Medicare ORM termination date must fall between injury date and seven days ahead
Field
Value
Statement
A populated MedicareORMTermDate may not precede InjuryDate and may not exceed seven days past today.
Trigger
MedicareORMTermDate property set, and again during IsValid()
Enforcement
clsClaimDetail — rule ORMExpirationDateValid (clsClaimDetail14, Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, ORMExpirationDateValid
BR-CM-023: Disabling occupational disease claims should have a disability date
Field
Value
Statement
A disabling occupational-disease claim (ClaimTypeCode = 4) should carry a DisabilityDate.
Trigger
ClaimTypeCode or DisabilityDate set, and again during IsValid()
Enforcement
clsClaimDetail — rule DisabilityDateRequired (clsClaimDetail100, Warning)
Outcome
Warning surfaced to the caller; the save may still proceed
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, DisabilityDateRequired
BR-CM-024: Disability date changes require wage re-verification
Field
Value
Statement
Changing DisabilityDate on an occupational-disease claim warns the user to re-verify claim-cost wages.
Trigger
DisabilityDate property changed, and again during IsValid()
Enforcement
clsClaimDetail — rule DisabilityDateChanged (clsClaimDetail101, Warning)
Outcome
Warning surfaced to the caller; the save may still proceed
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, DisabilityDateChanged
BR-CM-025: Aggravation request after aggravation rights end date warns of own motion
Field
Value
Statement
When an aggravation decision's request date falls after AggRightsEndDate, the user is warned of a possible own-motion decision.
Trigger
Claim decision change, and again during IsValid()
Enforcement
clsClaimDetail — rule ClaimDecisionChanged (clsClaimDetail102, Warning)
Outcome
Warning surfaced to the caller; the save may still proceed
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, ClaimDecisionChanged
BR-CM-026: Non-disabling to disabling change within 365 days warns the user
Field
Value
Statement
Changing a non-disabling claim (3) to a disabling type (4, 5, 7) while the claim is Closed and the last non-disabling effective date is within 365 days raises a warning.
Trigger
ClaimTypeCode property changed, and again during IsValid()
Enforcement
clsClaimDetail — rule NonDisablingToDisabling (clsClaimDetail103, Warning)
Outcome
Warning surfaced to the caller; the save may still proceed
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, NonDisablingToDisabling
BR-CM-027: Closing a claim without a medically stationary date warns the user
Field
Value
Statement
Changing ClaimStatusCode to Closed while accepted conditions still lack a medically-stationary date raises a warning.
Trigger
ClaimStatusCode property changed to Closed, and again during IsValid()
Enforcement
clsClaimDetail — rule ClaimStatusClosedWithoutMedStatDate (clsClaimDetail104, Warning) using the retrieve-time accepted-condition count
Outcome
Warning surfaced to the caller; the save may still proceed
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, ClaimStatusClosedWithoutMedStatDate, GetAcceptCondMedStationaryCount
BR-CM-028: Aggravation decision change warns of a possible aggravation decision
Field
Value
Statement
The inverse condition of the own-motion check warns the user of a possible aggravation decision on the claim.
Trigger
Claim decision change, and again during IsValid()
Enforcement
clsClaimDetail — rule ClaimDecisionAggChanged (clsClaimDetail105, Warning)
Outcome
Warning surfaced to the caller; the save may still proceed
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, ClaimDecisionAggChanged
BR-CM-029: Closing or denying a claim sets pharmacy eligibility to ineligible
Field
Value
Statement
When ClaimStatusCode changes to Closed (C) or Denied (D) and an existing pharmacy-eligibility record is not already Ineligible (I), the pharmacy eligibility status is forced to I with today's effective date.
Trigger
IsValid() evaluation before save, after a claim-status change
Enforcement
clsClaimDetail — IsValid derivation onto WorkerPharmacyEligibilityReport
Outcome
Pharmacy eligibility record is updated and persisted with the claim
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — IsValid
BR-CM-030: Denying a claim sets the Medicare ORM termination date and reopening clears it
Field
Value
Statement
A status change to Denied (D) sets MedicareORMTermDate to the claim-status-activity effective date; a change to Open (O) clears it.
Trigger
IsValid() evaluation before save, after a claim-status change
Enforcement
clsClaimDetail — IsValid derivation of MedicareORMTermDate
Outcome
MedicareORMTermDate is derived automatically and written with the claim update
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — IsValid
BR-CM-031: Reopening a claim with a CDA order warns the user
Field
Value
Statement
Reopening a claim (ClaimStatusCode = O) that is flagged with a CDA order (CdaFlag = Y) raises a warning.
Trigger
ClaimStatusCode set to Open, and again during IsValid()
Enforcement
clsClaimDetail — rule ClaimHasCDAOrder (clsClaimDetail107, Warning)
Outcome
Warning surfaced to the caller; the save may still proceed
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, ClaimHasCDAOrder
BR-CM-032: OHS or suspended pharmacy status requires Majoris enrollment
Field
Value
Statement
A pharmacy eligibility status of OHS (O) or Suspended (S) requires the MCO plan to be Majoris (FF) and the MCO eligibility status to be enrolled (Y).
Trigger
Pharmacy eligibility status change, and again during IsValid()
Enforcement
clsClaimDetail — rule PharmacyEligibilityStatusCodeValid (clsClaimDetail08 reused, Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, PharmacyEligibilityStatusCodeValid
Field
Value
Statement
A pharmacy eligibility status of Caremark (C) or Denied (D) requires the MCO plan to be Caremark (AA) and the MCO eligibility status to be enrolled (Y).
Trigger
Pharmacy eligibility status change, and again during IsValid()
Enforcement
clsClaimDetail — rule PharmacyEligibilityCaremarkCodeValid (clsClaimDetail09 reused, Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — AddBusinessRules, PharmacyEligibilityCaremarkCodeValid
Field
Value
Statement
When MCO eligibility is saved as formally enrolled or pending credentialing (status and reason 1Y or 3Y), pharmacy eligibility is set to the matching formulary code — O for Majoris (FF) or C for Caremark (AA) — with today's effective date.
Trigger
Save() when ClaimMcoEligibility is dirty
Enforcement
clsClaimDetail — Save derivation onto WorkerPharmacyEligibilityReport
Outcome
Pharmacy eligibility record is updated and saved with the claim
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — Save
BR-CM-035: Accepted claim decision derives pharmacy eligibility from MCO plan
Field
Value
Statement
When the latest or pending claim decision is to Accept, there is no date of death, the jurisdiction is not Inmate (2), the claim type is not Fatal (8), and the status is Open or New, pharmacy eligibility is set to C (Caremark), O (Majoris/OHS), or E (Extended, default) with today's effective date — unless the pharmacy record is already Ineligible or already dirty.
Trigger
Save() following a claim-decision change
Enforcement
clsClaimDetail — Save derivation onto WorkerPharmacyEligibilityReport
Outcome
Pharmacy eligibility record is updated and saved with the claim
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — Save
BR-CM-036: Reopening a closed claim resets pharmacy eligibility status
Field
Value
Statement
When the claim status changes from Closed (C) to Open (O) and a pharmacy record exists, the pharmacy eligibility status is set to D (Caremark), S (Majoris), or L (Limited) depending on MCO enrollment, with today's effective date.
Trigger
Save() following a Closed-to-Open status change
Enforcement
clsClaimDetail — Save derivation onto WorkerPharmacyEligibilityReport
Outcome
Pharmacy eligibility record is updated and saved with the claim
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — Save
BR-CM-037: First accept or deny decision copies responsible adjuster to compensability adjuster
Field
Value
Statement
When the first claim decision transitions to Accept or Denied, ClaimRespCode is copied into CompensabilityRespCode.
Trigger
Save() when GetIsFirstDeniedAcceptedDecision is true
Enforcement
clsClaimDetail — Save derivation of CompensabilityRespCode
Outcome
The compensability adjuster code is derived automatically and persisted with the claim
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — Save
Field
Value
Statement
Changing JurisdictionCode clears or defaults the identifier fields tied to the old and new jurisdiction: leaving Inmate (2) zeroes InmateNum; entering Inmate forces PolicyNum = 8 with a blank sub-code and creates a claim-policy-history row; leaving State (1) clears WCDClaimNum; leaving Federal clears OwcpClaimNum and resets OwcpServiceOfficeCode to 0.
Trigger
Save() when JurisdictionCode was modified
Enforcement
clsClaimDetail — ProcessJurisdictionCodeChanges
Outcome
Dependent identifier fields are cleared or defaulted before the claim update is issued
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — Save, ProcessJurisdictionCodeChanges
BR-CM-039: Deactivating a claim auto-terminates open legal representation
Field
Value
Statement
When ActiveClaimFlag changes from Y to N, any open legal-representative row for the claim is expired with EXP_DATE = today and end-reason code 1.
Trigger
Save() when ActiveClaimFlag changed from Y to N
Enforcement
clsClaimDetail — ProcessLegalRep
Outcome
The open legal-representative row is closed as a side effect of the claim save
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb — Save, ProcessLegalRep
BR-CM-040: Injury date is required when modified
Field
Value
Statement
InjuryDate may not be left empty once it has been modified.
Trigger
InjuryDate modified, evaluated during IsValid()
Enforcement
clsAccidentInjury — rule clsAccidentInjury00 (Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsAccidentInjury.vb — AddBusinessRules
BR-CM-041: Injury date more than one year in the past warns the user
Field
Value
Statement
An InjuryDate more than one year before today raises a warning.
Trigger
InjuryDate modified, evaluated during IsValid()
Enforcement
clsAccidentInjury — rule clsAccidentInjury02 (Warning)
Outcome
Warning surfaced to the caller; the save may still proceed
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsAccidentInjury.vb — AddBusinessRules
BR-CM-042: Another claim within fourteen days for the same worker warns the user
Field
Value
Statement
If the worker has another claim with an injury date within plus or minus fourteen days of this claim's injury date, a warning naming the duplicate claim is raised.
Trigger
InjuryDate modified, evaluated during IsValid()
Enforcement
clsAccidentInjury — rule clsAccidentInjury04 (Warning) via CheckForMultipleClaimsForWorker
Outcome
Warning surfaced to the caller; the save may still proceed
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsAccidentInjury.vb — AddBusinessRules, CheckForMultipleClaimsForWorker
BR-CM-043: Initial treatment date change on a disease claim requires wage re-verification
Field
Value
Statement
Changing InitialTreatmentDate on a disease claim (InjOccupationalDiseaseCode = D) warns the user to re-verify claim-cost wages.
Trigger
InitialTreatmentDate modified, evaluated during IsValid()
Enforcement
clsAccidentInjury — rule clsAccidentInjury06 (Warning)
Outcome
Warning surfaced to the caller; the save may still proceed
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsAccidentInjury.vb — AddBusinessRules
BR-CM-044: Injury date may not follow the knowledge date
Field
Value
Statement
InjuryDate may not be later than a populated KnowledgeDate.
Trigger
InjuryDate modified, evaluated during IsValid()
Enforcement
clsAccidentInjury — rule clsAccidentInjury10 (Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsAccidentInjury.vb — AddBusinessRules
BR-CM-045: Injury date may not follow the 801 received date
Field
Value
Statement
InjuryDate may not be later than Received801Date.
Trigger
InjuryDate modified, evaluated during IsValid()
Enforcement
clsAccidentInjury — rule clsAccidentInjury12 (Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsAccidentInjury.vb — AddBusinessRules
BR-CM-046: Injury date may not follow the stamped-in received date
Field
Value
Statement
InjuryDate may not be later than ReceivedDate (the stamped-in date).
Trigger
InjuryDate modified, evaluated during IsValid()
Enforcement
clsAccidentInjury — rule clsAccidentInjury14 (Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsAccidentInjury.vb — AddBusinessRules
BR-CM-047: Injury date may not follow the leave work date
Field
Value
Statement
InjuryDate may not be later than LeaveWorkDate.
Trigger
InjuryDate modified, evaluated during IsValid()
Enforcement
clsAccidentInjury — rule clsAccidentInjury16 (Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsAccidentInjury.vb — AddBusinessRules
BR-CM-048: Injury date may not precede the worker birth date
Field
Value
Statement
InjuryDate may not be earlier than the worker's BirthDate.
Trigger
InjuryDate modified, evaluated during IsValid()
Enforcement
clsAccidentInjury — rule clsAccidentInjury18 (Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsAccidentInjury.vb — AddBusinessRules
BR-CM-049: Injury date may not follow the worker death date
Field
Value
Statement
InjuryDate may not be later than the worker's DeathDate.
Trigger
InjuryDate modified, evaluated during IsValid()
Enforcement
clsAccidentInjury — rule clsAccidentInjury20 (Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsAccidentInjury.vb — AddBusinessRules
BR-CM-050: Injury date may not follow a work release date
Field
Value
Statement
InjuryDate may not be later than any recorded work release date for the claim.
Trigger
InjuryDate modified, evaluated during IsValid()
Enforcement
clsAccidentInjury — rule clsAccidentInjury22 (Error) via GetWrkRelDtGTInjDtCount
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsAccidentInjury.vb — AddBusinessRules, GetWrkRelDtGTInjDtCount
BR-CM-051: Injury date may not follow a decision request effective date
Field
Value
Statement
InjuryDate may not be later than any claim decision-request effective date.
Trigger
InjuryDate modified, evaluated during IsValid()
Enforcement
clsAccidentInjury — rule clsAccidentInjury24 (Error) via GetReqDecDtGTInjDtCount
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsAccidentInjury.vb — AddBusinessRules, GetReqDecDtGTInjDtCount
BR-CM-052: Injury date may not follow a disability authorization activity date
Field
Value
Statement
InjuryDate may not be later than any disability-authorization activity date for the claim.
Trigger
InjuryDate modified, evaluated during IsValid()
Enforcement
clsAccidentInjury — rule clsAccidentInjury26 (Error) via GetDisabAuthDtGTInjDtCount
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsAccidentInjury.vb — AddBusinessRules, GetDisabAuthDtGTInjDtCount
BR-CM-053: Injury date may not follow a medically stationary date
Field
Value
Statement
InjuryDate may not be later than any medically-stationary date recorded on the claim's conditions.
Trigger
InjuryDate modified, evaluated during IsValid()
Enforcement
clsAccidentInjury — rule clsAccidentInjury28 (Error) via GetMedStatDtGTInjDtCount
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsAccidentInjury.vb — AddBusinessRules, GetMedStatDtGTInjDtCount
BR-CM-054: Injury date may not follow the disability date on injury claims
Field
Value
Statement
For injury claims (InjOccupationalDiseaseCode = I), InjuryDate may not be later than DisabilityDate.
Trigger
InjuryDate modified, evaluated during IsValid()
Enforcement
clsAccidentInjury — rule clsAccidentInjury30 (Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsAccidentInjury.vb — AddBusinessRules
BR-CM-055: PPD or PTD occupational disease claims require a disability or initial treatment date
Field
Value
Statement
Claims of type PPD (5) or PTD (7) with InjOccupationalDiseaseCode = D require either a disability date or an initial treatment date.
Trigger
InjuryDate or InitialTreatmentDate modified, evaluated during IsValid()
Enforcement
clsAccidentInjury — rule clsAccidentInjury32 (Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsAccidentInjury.vb — AddBusinessRules
BR-CM-056: Initial treatment date must fall between 1850 and today
Field
Value
Statement
InitialTreatmentDate may not be in the future and may not precede the MIN_DATE constant of 01/01/1850.
Trigger
InitialTreatmentDate modified, evaluated during IsValid()
Enforcement
clsAccidentInjury — rule clsAccidentInjury34 (Error)
Outcome
Broken rule; save is blocked until corrected
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsAccidentInjury.vb — AddBusinessRules
BR-CM-057: Injury date may not change while unposted payments or adjustments exist
Field
Value
Statement
InjuryDate may not be changed while the claim has unposted payments or adjustments.
Trigger
InjuryDate modified, evaluated during IsValid()
Enforcement
clsAccidentInjury — rule clsAccidentInjury36 (Error) via ClaimServices.HasUnpostedPaymentsOrAdjustments
Outcome
Broken rule; save is blocked until the financials are posted
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsAccidentInjury.vb — AddBusinessRules, CanInjuryDateChange
BR-CM-058: Missing policy coverage at injury date warns the user
Field
Value
Statement
When PolicyNum is greater than 17 and no policy coverage exists at the injury date, a warning is raised.
Trigger
InjuryDate modified, evaluated during IsValid()
Enforcement
clsAccidentInjury — rule clsAccidentInjury37 (Warning) via PolicyServices.CoverageExists
Outcome
Warning surfaced to the caller; the save may still proceed
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.Maintenance\clsAccidentInjury.vb — AddBusinessRules, ValidPolicyCoverageAtInjury
BR-PROC-001: Claim void requests must provide the claim identifier, current update number, and acting u
Field
Value
Statement
Claim void requests must provide the claim identifier, current update number, and acting user.
Trigger
Package specification parameters inClaimID, inUpdateNum, and inUserID.
Enforcement
PK82140_CLAIM_ADJUSTMENTS.VoidClaim
Outcome
The package exposes a version-aware claim-void contract to the .NET caller.
Confidence
Source-backed
Source
PK82140_CLAIM_ADJUSTMENTS.VoidClaim
BR-PROC-002: Claim combine requests must identify both the source claim and the claim to combine into
Field
Value
Statement
Claim combine requests must identify both the source claim and the claim to combine into.
Trigger
Package specification parameters inClaimID and inCombineClaimID.
Enforcement
PK82140_CLAIM_ADJUSTMENTS.CombineClaim
Outcome
The package contract prevents a combine operation from running without both claim identifiers.
Confidence
Source-backed
Source
PK82140_CLAIM_ADJUSTMENTS.CombineClaim
BR-PROC-003: Claim transfer and restore flows require a target worker identifier in addition to claim v
Field
Value
Statement
Claim transfer and restore flows require a target worker identifier in addition to claim version inputs.
Trigger
Package specification parameters inWorkerID, inUpdateNum, and inUserID.
Enforcement
PK82140_CLAIM_ADJUSTMENTS.TransferClaim
Outcome
The contract shows that worker reassignment is part of both transfer and restore operations.
Confidence
Source-backed
Source
PK82140_CLAIM_ADJUSTMENTS.TransferClaim
Notes
Procedure-derived rules are mirrored here so claim-domain readers do not have to open procedure pages to see active constraints.
Rules without BOF rule attributes are enforced by lifecycle methods, helper methods, or stored-procedure contracts.
Sources
Business\SAIF.Business.Claim.Maintenance\clsAccidentInjury.vb
Business\SAIF.Business.Claim.Maintenance\clsAttendingPhysician.vb
Business\SAIF.Business.Claim.Maintenance\clsClaimAdjustment.vb
Business\SAIF.Business.Claim.Maintenance\clsClaimDetail.vb
Business\SAIF.Business.Claim.Maintenance\clsClaimDisabilityActivity.vb
Business\SAIF.Business.Claim.Maintenance\clsClaimSupportOrder.vb
Business\SAIF.Business.Claim.Maintenance\clsVocationalDetail.vb
Business\SAIF.Business.Claim.Maintenance\clsVocationalDetailCollection.vb
Business\SAIF.Business.Claim.Maintenance\clsHelper.vb
Business\SAIF.Business.Claim.Maintenance\enums.vb
Business\SAIF.Business.Claim.Maintenance\packages.config
Business\SAIF.Business.Claim.Maintenance\SAIF.BOF.Business.Claim.Maintenance.nuspec
Business\SAIF.Business.Claim.Maintenance\Pipelines\build-vars.yml
Business\SAIF.Business.Claim.Maintenance\CCClaimDataApi\AttendingPhysicians.vb
Business\SAIF.Business.Claim.Maintenance\CCClaimDataApi\ClaimContactsResponse.vb
Business\SAIF.Business.Claim.Maintenance\clsClaimDisabilityActivityCollection.vb
Business\SAIF.Business.Claim.Maintenance\clsClaimMcoEligibility.vb
Business\SAIF.Business.Claim.Maintenance\clsClaimMcoEligibilityCollection.vb
Business\SAIF.Business.Claim.Maintenance\clsClaimPolicy.vb
Business\SAIF.Business.Claim.Maintenance\clsClaimPolicyHistory.vb
Business\SAIF.Business.Claim.Maintenance\clsClaimPolicyHistoryCollection.vb
Business\SAIF.Business.Claim.Maintenance\clsClaimRequestDecision.vb
Business\SAIF.Business.Claim.Maintenance\clsClaimRequestDecisionCollection.vb
Business\SAIF.Business.Claim.Maintenance\clsClaimStatusActivity.vb
Business\SAIF.Business.Claim.Maintenance\clsClaimStatusActivityCollection.vb
Business\SAIF.Business.Claim.Maintenance\clsClaimSupportOrderCollection.vb
Business\SAIF.Business.Claim.Maintenance\clsClaimSupportOrderConn.vb
Business\SAIF.Business.Claim.Maintenance\clsClaimSupportOrderConnCollection.vb
Business\SAIF.Business.Claim.Maintenance\clsClaimTypeActivity.vb
Business\SAIF.Business.Claim.Maintenance\clsClaimTypeActivityCollection.vb
Business\SAIF.Business.Claim.Maintenance\clsConditionDecision.vb
Business\SAIF.Business.Claim.Maintenance\clsConditionDecisionCollection.vb
Business\SAIF.Business.Claim.Maintenance\clsCovid19TestingHistory.vb
Business\SAIF.Business.Claim.Maintenance\clsCovid19TestingHistoryCollection.vb
Business\SAIF.Business.Claim.Maintenance\clsDisabilityAuthActivity.vb
Business\SAIF.Business.Claim.Maintenance\clsDisabilityAuthActivityCollection.vb
Business\SAIF.Business.Claim.Maintenance\clsMedicalCondition.vb
Business\SAIF.Business.Claim.Maintenance\clsMedicalConditionCollection.vb
Business\SAIF.Business.Claim.Maintenance\clsOmittedCondition.vb
Business\SAIF.Business.Claim.Maintenance\clsOmittedConditionCollection.vb
Business\SAIF.Business.Claim.Maintenance\clsTDThreeDayWait.vb
Business\SAIF.Business.Claim.Maintenance\clsTDThreeDayWaitCollection.vb
Business\SAIF.Business.Claim.Maintenance\clsWorkRelease.vb
Business\SAIF.Business.Claim.Maintenance\clsWorkReleaseCollection.vb
Business\SAIF.Business.Claim.Maintenance\clsWorkStatus.vb
Business\SAIF.Business.Claim.Maintenance\clsWorkStatusCollection.vb
Business\SAIF.Business.Claim.Maintenance\clsWorkStatusInjuryClaim.vb
Business\SAIF.Business.Claim.Maintenance\clsWorkerClaimBenefitPayment.vb
Business\SAIF.Business.Claim.Maintenance\clsWorkerClaimBenefitSchedule.vb
Business\SAIF.Business.Claim.Maintenance\clsWorkerInjuryClaim.vb
Business\SAIF.Business.Claim.Maintenance\clsWorkerPharmacyEligibilityReport.vb