SAIF.Business.Claim.MedicalBill business rules
This page captures business rules enforced by SAIF.Business.Claim.MedicalBill.
BR-MB-001: Exposure claims require ExposureClaim AD resource authorization
Field
Value
Statement
Exposure claims require ExposureClaim AD resource authorization
Trigger
Bill collection retrieval
Enforcement
clsMedicalBillCollection.HasExposureAccess
Outcome
Filters data based on authorization
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.MedicalBill\clsMedicalBillCollection.vb — HasExposureAccess
BR-MB-002: Collateral health claims require CollateralHealthClaim AD resource authorization
Field
Value
Statement
Collateral health claims require CollateralHealthClaim AD resource authorization
Trigger
Bill collection retrieval
Enforcement
clsMedicalBillCollection.HasHealthIssueAccess
Outcome
Filters data based on authorization
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.MedicalBill\clsMedicalBillCollection.vb — HasHealthIssueAccess
BR-MB-003: SAIF employee status affects data visibility
Field
Value
Statement
SAIF employee status affects data visibility
Trigger
Bill retrieval
Enforcement
clsMedicalBillCollection.IsSAIFEmployee — checks SecurityPrincipal.Domain = "SAIF"
Outcome
Domain-based filtering
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.MedicalBill\clsMedicalBillCollection.vb — IsSAIFEmployee, AfterRetrieve
BR-MB-004: Optimistic concurrency on all CRUD operations
Field
Value
Statement
Optimistic concurrency on all CRUD operations
Trigger
All After* lifecycle methods
Enforcement
All business objects
Outcome
DB contention error on failure
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.MedicalBill\clsNationalDrug.vb — AfterUpdate; Business\SAIF.Business.Claim.MedicalBill\clsNationalDrugPrice.vb — AfterUpdate, AfterDelete; Business\SAIF.Business.Claim.MedicalBill\clsNdcPriceHistory.vb — AfterInsert
BR-MB-005: Bill search claim number must resolve to a valid SAIF claim
Field
Value
Statement
When a claim number is entered on a bill search, it must resolve to a valid claim through claim security.
Trigger
clsBillSearchCriteria.IsValid evaluation of the ClaimNumber property.
Enforcement
clsBillSearchCriteria.IsValidClaim
Outcome
Search is blocked with a broken rule until the claim number is valid or cleared.
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.MedicalBill\clsBillSearchCriteria.vb — IsValidClaim
BR-MB-006: Bill search provider location must be valid when entered
Field
Value
Statement
When a provider location is entered on a bill search, it must resolve to a valid provider location; resolving it also derives the associated provider identifier.
Trigger
clsBillSearchCriteria.IsValid evaluation of the ProviderLocID property.
Enforcement
clsBillSearchCriteria.IsValidProviderLocation
Outcome
Search is blocked with a broken rule when the location does not resolve; ProviderID is set as a side effect when it does.
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.MedicalBill\clsBillSearchCriteria.vb — IsValidProviderLocation
BR-MB-007: Bill search worker last name is required when a first name is entered
Field
Value
Statement
A worker last name must be entered whenever a worker first name is entered on a bill search.
Trigger
clsBillSearchCriteria.IsValid evaluation of the WorkerFirstName property.
Enforcement
clsBillSearchCriteria.IsValidFirstName
Outcome
Search is blocked with a broken rule until a last name is also supplied.
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.MedicalBill\clsBillSearchCriteria.vb — IsValidFirstName
BR-MB-008: Bill search service begin and end dates must both be entered together
Field
Value
Statement
A service begin date and a service end date must both be entered together on a bill search, or neither.
Trigger
clsBillSearchCriteria.IsValid evaluation of the ServiceBeginDate property.
Enforcement
clsBillSearchCriteria.IsValidDatesOfService
Outcome
Search is blocked with a broken rule when only one of the two dates is present.
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.MedicalBill\clsBillSearchCriteria.vb — IsValidDatesOfService
BR-MB-009: Bill search service begin date may not be in the future
Field
Value
Statement
A bill search service begin date may not be later than today.
Trigger
clsBillSearchCriteria.IsValid evaluation of the ServiceBeginDate property.
Enforcement
clsBillSearchCriteria.IsFromDateNotFuture
Outcome
Search is blocked with a broken rule when the begin date is in the future.
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.MedicalBill\clsBillSearchCriteria.vb — IsFromDateNotFuture
BR-MB-010: Bill search service end date may not precede the begin date
Field
Value
Statement
A bill search service end date may not be earlier than the service begin date.
Trigger
clsBillSearchCriteria.IsValid evaluation of the ServiceEndDate property.
Enforcement
clsBillSearchCriteria.IsValidThruDate
Outcome
Search is blocked with a broken rule when the end date precedes the begin date.
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.MedicalBill\clsBillSearchCriteria.vb — IsValidThruDate
BR-MB-011: Bill search date range may not exceed six months unless an identifier is given
Field
Value
Statement
A bill search date range may not exceed six months unless a claim number, bill number, or check number is also entered.
Trigger
clsBillSearchCriteria.IsValid evaluation of the ServiceBeginDate property.
Enforcement
clsBillSearchCriteria.IsValidDateRange
Outcome
Search is blocked with a broken rule when the six-month window is exceeded without a qualifying identifier.
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.MedicalBill\clsBillSearchCriteria.vb — IsValidDateRange
BR-MB-012: Bill search service end date may not be in the future
Field
Value
Statement
A bill search service end date may not be later than today.
Trigger
clsBillSearchCriteria.IsValid evaluation of the ServiceEndDate property.
Enforcement
clsBillSearchCriteria.IsThruDateNotFuture
Outcome
Search is blocked with a broken rule when the end date is in the future.
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.MedicalBill\clsBillSearchCriteria.vb — IsThruDateNotFuture
BR-MB-013: Bill search worker birth date may not be in the future
Field
Value
Statement
A bill search worker birth date may not be later than today.
Trigger
clsBillSearchCriteria.IsValid evaluation of the WorkerBirthDate property.
Enforcement
clsBillSearchCriteria.IsValidDob
Outcome
Search is blocked with a broken rule when the birth date is in the future.
Confidence
Source-backed* (the rule's RuleData attribute text is copy-pasted from IsFromDateNotFuture, but the bound function and message describe a birth-date check)
Source
Business\SAIF.Business.Claim.MedicalBill\clsBillSearchCriteria.vb — IsValidDob
BR-MB-014: Internal bill search requires a claim number, bill number, or provider number
Field
Value
Statement
A non-external bill search must include a claim number, bill number, or provider location before it is considered valid.
Trigger
clsBillSearchCriteria.IsValid evaluation of the ClaimNumber property, when the criteria object was constructed as non-external.
Enforcement
clsBillSearchCriteria.IsValidSearchInfo
Outcome
Search is blocked with a broken rule when none of the three identifiers is present; external searches skip this check.
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.MedicalBill\clsBillSearchCriteria.vb — IsValidSearchInfo
BR-MB-015: Bill search by check number requires a provider number
Field
Value
Statement
A bill search that includes a check number must also include a provider number.
Trigger
clsBillSearchCriteria.IsValid evaluation of the CheckNumber property.
Enforcement
clsBillSearchCriteria.IsValidCheckNum
Outcome
Search is blocked with a broken rule when a check number is entered without a resolved provider.
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.MedicalBill\clsBillSearchCriteria.vb — IsValidCheckNum
BR-MB-016: Bill search starts-with option requires at least three characters
Field
Value
Statement
When the starts-with option is selected for worker last name, at least three characters must be entered.
Trigger
clsBillSearchCriteria.IsValid evaluation of the WorkerLastName property.
Enforcement
clsBillSearchCriteria.IsValidWildCard
Outcome
Search is blocked with a broken rule when fewer than three characters are entered with starts-with selected.
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.MedicalBill\clsBillSearchCriteria.vb — IsValidWildCard
BR-MB-017: Medical bill search requires exactly one of worker ID or provider location
Field
Value
Statement
A medical bill search (IsMedicalBillSearch) must supply exactly one of WorkerID or ProviderLocID; supplying both or neither is invalid.
Trigger
clsBillSearchCriteria.IsValid evaluation of the IsMedicalBillSearch property.
Enforcement
clsBillSearchCriteria.IsValidMedicalBillSearch
Outcome
Search is blocked with a broken rule when zero or both identifiers are present.
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.MedicalBill\clsBillSearchCriteria.vb — IsValidMedicalBillSearch
BR-MB-018: Active drug price selection prefers an unexpired row, falling back to the most recent effective date
Field
Value
Statement
The active national drug price is the first price row found with an expiration date equal to Date.MaxValue or Date.MinValue (treated as unexpired); if no such row exists, the price row with the latest effective date is used instead.
Trigger
Reading clsNationalDrug.ActivePrice.
Enforcement
clsNationalDrug.ActivePrice
Outcome
Callers receive a single "current" price row for pricing calculations without having to scan the full price collection themselves.
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.MedicalBill\clsNationalDrug.vb — ActivePrice
BR-MB-019: Pending bill payment totals are suppressed during a medical bill search
Field
Value
Statement
TotalPaidAmt returns a null value for a pending bill when the bill belongs to a parent collection retrieved as a medical bill search (IsMedicalBillSearch), instead of the computed allowed-minus-admin-fee amount.
Trigger
Reading clsMedicalBill.TotalPaidAmt on a pending bill returned from a medical bill search.
Enforcement
clsMedicalBill.TotalPaidAmt
Outcome
Search result views do not display a misleading paid amount for bills that have not yet completed processing.
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.MedicalBill\clsMedicalBill.vb — TotalPaidAmt
BR-MB-020: Audit and EOB detail retrieval is suppressed for bulk print views
Field
Value
Statement
When SuppressAuditDetail is set on a bill or propagated across a bill collection, lazy retrieval of audit services, EOB notes, and adjustment descriptions is skipped for the affected bill(s).
Trigger
clsMedicalBillCollection.SuppresAuditDetail setter (propagates to each item) or clsMedicalBill.SuppressAuditDetail directly.
Enforcement
clsMedicalBill.AuditServices, clsMedicalBill.EOBNotes, clsMedicalBill.AuditDescriptions, clsMedicalBillCollection.AuditDescriptions
Outcome
Avoids per-bill audit-detail round trips when printing bill search result reports.
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.MedicalBill\clsMedicalBill.vb — SuppressAuditDetail, AuditServices, EOBNotes; Business\SAIF.Business.Claim.MedicalBill\clsMedicalBillCollection.vb — SuppresAuditDetail
BR-MB-021: Worker name is masked for confidential claims
Field
Value
Statement
WorkerName returns ** Confidential ** instead of the formatted worker name when the caller is internal (or is flagged as a SAIF employee) and the claim reports a worker conflict.
Trigger
Reading clsMedicalBill.WorkerName.
Enforcement
clsMedicalBill.WorkerName
Outcome
Confidential worker identity is withheld from views that would otherwise expose it.
Confidence
Source-backed
Source
Business\SAIF.Business.Claim.MedicalBill\clsMedicalBill.vb — WorkerName
BR-PROC-001: Service adjustments are sorted so code FT appears first, PA appears last, and all othe
Field
Value
Statement
Service adjustments are sorted so code FT appears first, PA appears last, and all other codes sort in the middle.
Trigger
CASE adj.AUDIT_ADJUSTMENT_CODE WHEN FT THEN 0 WHEN PA THEN 999 ELSE 1 END.
Enforcement
PK82396_MEDICAL_BILLS.GetServiceAdjustments
Outcome
Consumers receive a stable adjustment ordering for the bill audit UI.
Confidence
Source-backed
Source
PK82396_MEDICAL_BILLS.GetServiceAdjustments
BR-PROC-002: Service descriptions prefer bill service description text and fall back to generic drug na
Field
Value
Statement
Service descriptions prefer bill service description text and fall back to generic drug name when the service code is a national drug code.
Trigger
NVL(CD.SERVICE_DESCR_TEXT, DRG.GENERIC_NAME) with date-effective joins.
Enforcement
PK82396_MEDICAL_BILLS.GetAuditServices
Outcome
Audit-service retrieval returns the most specific available description.
Confidence
Source-backed
Source
PK82396_MEDICAL_BILLS.GetAuditServices
BR-PROC-003: EOB note retrieval is always restricted to the requested bill identifier
Field
Value
Statement
EOB note retrieval is always restricted to the requested bill identifier.
Trigger
WHERE bill_id = inBillId.
Enforcement
PK82396_MEDICAL_BILLS.GetEOBNotes
Outcome
Callers only receive note rows for the current medical bill.
Confidence
Source-backed
Source
PK82396_MEDICAL_BILLS.GetEOBNotes
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.MedicalBill\clsMedicalBill.vb
Business\SAIF.Business.Claim.MedicalBill\clsMedicalBillCollection.vb
Business\SAIF.Business.Claim.MedicalBill\clsAuditServiceCollection.vb
Business\SAIF.Business.Claim.MedicalBill\clsEOBNoteCollection.vb
Business\SAIF.Business.Claim.MedicalBill\clsServiceAdjustmentCollection.vb
Business\SAIF.Business.Claim.MedicalBill\clsNationalDrug.vb
Business\SAIF.Business.Claim.MedicalBill\clsNationalDrugPrice.vb
Business\SAIF.Business.Claim.MedicalBill\clsNdcPriceHistory.vb
Business\SAIF.Business.Claim.MedicalBill\packages.config
Business\SAIF.Business.Claim.MedicalBill\SAIF.BOF.Business.Claim.MedicalBill.nuspec
Business\SAIF.Business.Claim.MedicalBill\Pipelines\build-vars.yml
Business\SAIF.Business.Claim.MedicalBill\clsAdjustmentCode.vb
Business\SAIF.Business.Claim.MedicalBill\clsAdjustmentCodeCollection.vb
Business\SAIF.Business.Claim.MedicalBill\clsNationalDrugPriceCollection.vb
Business\SAIF.Business.Claim.MedicalBill\clsNdcPriceHistoryCollection.vb
Business\SAIF.Business.Claim.MedicalBill\clsBillSearchCriteria.vb