SAIF.Business.Claim.Bill business rules
This page captures business rules enforced by SAIF.Business.Claim.Bill.
BR-001: Bill ID must be valid (non-zero)
Field
Value
Statement
Bill ID must be valid (non-zero)
Trigger
BillID property
Enforcement
clsMCOBill.validbill
Outcome
Error: "Invalid bill"
Confidence
Verified
Source
Business\SAIF.Business.Claim.Bill\MCOSupport\clsMCOBill.vb (validbill)
BR-002: Bill ID must be non-zero
Field
Value
Statement
Bill ID must be non-zero
Trigger
BillID property
Enforcement
`clsBill.AddBusinessRules (CommonBusinessRules.NonZeroDecimalRequired)`
Outcome
Error: "Invalid Bill ID"
Confidence
Verified
Source
Business\SAIF.Business.Claim.Bill\Core\clsBill.vb (AddBusinessRules)
Field
Value
Statement
National drug code must resolve to valid information
Trigger
NationalDrugCode property
Enforcement
clsNationalDrug.ValidateCode
Outcome
Error: "Information not found for \<code>"
Confidence
Verified
Source
Business\SAIF.Business.Claim.Bill\AuditSupport\Services\clsNationalDrug.vb (ValidateCode)
BR-004: Optimistic concurrency updates fail if RowsAffected does not equal 1
Field
Value
Statement
Insert, update, and delete calls against CBP_BILL, its child collections (diagnosis, procedure, service, status), the CBP_AUDIT aggregate (audit header, audited services, adjustments, messages), and CBP_BILL_PAYMENT_REQUEST must affect exactly one row; any other row count is treated as a failure
Trigger
AfterInsert / AfterUpdate / AfterDelete on clsBill, clsBillDiagnosis, clsBillProcedure, clsBillService, clsBillStatus, clsAudit, clsAuditedService, clsAuditedServiceAdjustment, clsAuditMessage, and clsCBPBillPaymentRequest after each insert/update/delete IDataRequest executes
Enforcement
Each class checks RowsAffected = 1 after the data request runs
Outcome
Error: "Insert Failed" on a failed insert; error using clsConstants.Messages.DBContentionError on a failed update or delete, indicating another user updated or deleted the row first
Confidence
Verified
Source
Business\SAIF.Business.Claim.Bill\Core\clsBill.vb (AfterInsert, AfterUpdate, AfterDelete), Business\SAIF.Business.Claim.Bill\Core\clsAudit.vb, Business\SAIF.Business.Claim.Bill\Core\clsAuditedService.vb, Business\SAIF.Business.Claim.Bill\Core\clsAuditedServiceAdjustment.vb, Business\SAIF.Business.Claim.Bill\Core\clsAuditMessage.vb, Business\SAIF.Business.Claim.Bill\clsCBPBillPaymentRequest.vb
BR-005: Duplicate audited service line for the same service ID is rejected
Field
Value
Statement
An audited-service line cannot be created for a service ID that already exists on the audit
Trigger
clsAuditedServiceCollection.NewAuditedService(inServiceID) is called with a service ID already present in the collection
Enforcement
clsAuditedServiceCollection.NewAuditedService(inServiceID) checks the collection for an existing item with that ServiceID before creating a new one
Outcome
Exception: "Attempt to generate new Audit Service Line for service #<id> failed. - Service already exists."
Confidence
Verified
Source
Business\SAIF.Business.Claim.Bill\Core\clsAuditedServiceCollection.vb (NewAuditedService)
BR-006: MCO location submitted must match the location assigned to the provider-type admin fee
Field
Value
Statement
A location assigned to a provider-type admin fee record must match that record's own MCO ID
Trigger
clsMCOProviderTypeAdminFee.SetLocation(inLocation) is called
Enforcement
SetLocation compares m_McoID.Trim.ToLower to m_MCOLocation.McoID.Trim.ToLower after assigning the location
Outcome
Exception: "MCO location submitted does not match location assigned."
Confidence
Verified
Source
Business\SAIF.Business.Claim.Bill\AuditSupport\MCO\clsMCOProviderTypeAdminFee.vb (SetLocation)
Inherited business rules
Rules in this section are inherited from shared BOF framework behavior.
From clsBusinessBase (saif-framework-core)
INH-001: Framework rule execution
Field
Value
Statement
Inherited BOF business objects evaluate property and object rules through the shared rules manager.*
Trigger
When a property setter or save path triggers rule evaluation
Enforcement
Inherited clsBusinessBase rules-manager flow
Outcome
Broken-rule state is captured and exposed to consumers.*
Confidence
Inherited
Origin
saif-framework-core — clsBusinessBase
Source
Retrieved from dependency documentation via Legends CLI
INH-002: Collection validation surfacing
Field
Value
Statement
Inherited BOF collections surface aggregated validation state through IDataErrorInfo.*
Trigger
When child items or collection state contain broken rules
Enforcement
Inherited clsBusinessCollectionBase validation behavior
Outcome
Consumers can read collection-level error state without querying each child directly.*
Confidence
Inherited
Origin
saif-framework-core — clsBusinessCollectionBase
Source
Retrieved from dependency documentation via Legends CLI
Stored procedure business rules
Rules sourced from Oracle procedures referenced by this library.
PR-001: Map intable values to the correct CBP sequence
Field
Value
Statement
The procedure maps supported intable values to the correct CBP sequence
Trigger
sp82385_get_next_bill_seqnum receives CBP_AUDIT_ERROR, CBP_BILL, CBP_BILL_STATUS, CBP_EOB_NOTE, or CBP_NOTE
Enforcement
sp82385_get_next_bill_seqnum selects the matching Oracle sequence and returns the next value
Outcome
Callers receive a table-specific sequence value for new CBP records
Confidence
Verified
Source
Business\SAIF.Business.Claim.Bill\AuditSupport\mdlCBPSupportingData.vb (GetNextCBPSeqNum calls sp82385_get_next_bill_seqnum)
Notes
Rule identifiers in this document are documentation identifiers for this generated library set.
Note: Statements marked with * were inferred from code structure, naming conventions, or
contextual evidence where direct confirmation was not available in source artifacts. Statements
marked with ** could not be confirmed; treat as unknown until verified.
Sources
Business\SAIF.Business.Claim.Bill\SAIF.BOF.Business.Claim.Bill.vbproj
Business\SAIF.Business.Claim.Bill\SAIF.BOF.Business.Claim.Bill.nuspec
Business\SAIF.Business.Claim.Bill\packages.config
Business\SAIF.Business.Claim.Bill\clsCBPBillPaymentRequest.vb
Business\SAIF.Business.Claim.Bill\clsCallImageApi.vb
Business\SAIF.Business.Claim.Bill\Core\clsBill.vb
Business\SAIF.Business.Claim.Bill\Core\clsAudit.vb
Business\SAIF.Business.Claim.Bill\Core\clsAuditedService.vb
Business\SAIF.Business.Claim.Bill\Core\clsAuditedServiceAdjustment.vb
Business\SAIF.Business.Claim.Bill\Core\clsAuditMessage.vb
Business\SAIF.Business.Claim.Bill\Core\clsBillDiagnosis.vb
Business\SAIF.Business.Claim.Bill\Core\clsBillProcedure.vb
Business\SAIF.Business.Claim.Bill\Core\clsBillService.vb
Business\SAIF.Business.Claim.Bill\Core\clsBillStatus.vb
Business\SAIF.Business.Claim.Bill\MCOSupport\clsMCOBill.vb
Business\SAIF.Business.Claim.Bill\AuditSupport\Services\clsNationalDrug.vb
Business\SAIF.Business.Claim.Bill\AuditSupport\mdlCBPSupportingData.vb
Business\SAIF.Business.Claim.Bill\Core\clsAuditedServiceCollection.vb
Business\SAIF.Business.Claim.Bill\AuditSupport\MCO\clsMCOProviderTypeAdminFee.vb
Business\SAIF.Business.Claim.Bill\clsCBPBillPaymentRequest.vb