Skip to content

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

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