SAIF.Business.Claim.Bill.AutomatedAudit operations and processes¶
This page is the operation catalog and cross-operation hub for SAIF.Business.Claim.Bill.AutomatedAudit. The library exposes six operations: the top-level audit orchestration pipeline, the bill-level and service-level edit passes it drives, MCO (managed-care-organization) determination, the large rule-based audit engine that computes payable amounts, and a standalone audit-comparison utility. Each operation's detailed, step-by-step logic lives in its own page under operations/.
Operation catalog¶
| Operation | Intent | Trigger | Inputs | Outputs | Rules | Tables | SQL |
|---|---|---|---|---|---|---|---|
| Automated bill audit orchestration | Retrieve a bill, generate/enrich its audit data, run bill and service edits, determine MCO status, run the audit rule engine, and save the result | Caller invokes BillAuditEngine.AuditBill(BillID, ForceCompleteReAudit, ReadOnlyMode) |
BillID, ForceCompleteReAudit, ReadOnlyMode, IDataPortalInfo |
AuditResults code and message; populated clsBillAudit in ProcessedAuditData; persisted audit data (unless read-only) |
BR-001, BR-002, BR-003, BR-004 | CBP_BILL | Persistence delegated to clsBillAudit.Save (SAIF.Business.Claim.Bill)* |
| Bill edit validation | Validate the bill header, diagnoses, and procedures before audit | BillAuditEngine.AuditBill calls clsBillEditor.EditBill(Bill) |
Populated clsBillAudit |
Pass/fail per rule group; audit messages on the bill; broken rules propagated to the engine | BR-003 | — | — |
| Service edit and adjustment | Validate and normalize each billed service line, then apply full-charge disallowance adjustments for services that fail eligibility checks | BillAuditEngine.AuditBill calls clsServiceEditor.EditService/AdjustService per service |
clsBillAudit, clsBillAuditService per line |
Normalized service data; ReauditCode transitions; full-charge adjustments; audit messages |
BR-004, BR-008, BR-009, BR-010, BR-011, BR-012, BR-013, BR-014, BR-015, BR-016, BR-017 | — | — |
| MCO determination | Resolve claim, billing-provider, and servicing-provider MCO plan enrollment and withhold eligibility for each auditable service | BillAuditEngine.AuditBill calls clsMCOManager.DetermineMCO(Bill) for non-Worker-Reimbursement bills |
clsBillAudit, per-service MCO/plan state |
Resolved MCO plan IDs, eligibility status codes, and withhold admin-fee rate/amount on each audited service | None registered* | — | — |
| Bill audit rule execution | Run the ordered audit rule set that computes basic allowance, applies provider contracts, checks cross-service and historical rules, and finalizes payable amounts | BillAuditEngine.AuditBill calls clsBillAuditor.AuditBill(Bill) after edits and MCO determination |
clsBillAudit with edited, MCO-resolved services |
Computed AllowedAmount/TotalAdjustmentAmount per service; bill audit totals; adjustment codes and audit messages |
BR-005, BR-006, BR-007, BR-018, BR-019, BR-020, BR-021 | CBP_DRG_CODE | SQL-001 |
| Audit bill comparison | Compare two clsBillAudit snapshots (typically before/after an audit) field-by-field and report mismatches |
Caller invokes clsAuditCompare.CompareBills(Audit1, Audit2, ForceCompare) |
Two clsBillAudit instances, optional ForceCompare flag |
Boolean match result; collection of comparison error messages | None registered* | — | — |
Process flow diagram¶
The following diagram shows how the six operations relate across a single automated-audit run: the orchestration operation retrieves and enriches the bill, drives the bill/service edit and MCO operations, invokes the rule-based audit engine, and saves the result. Audit bill comparison is a standalone utility outside this pipeline.
flowchart TD
Start([Caller invokes AuditBill]) --> Retrieve[Retrieve bill and prior audit]
Retrieve --> Valid{Bill valid?}
Valid -->|No| InvalidBill([AuditResult = InvalidBill;<br>no data saved])
Valid -->|Yes| Status{Status eligible<br>for audit?}
Status -->|No| InvalidStatus([AuditResult = InvalidStatus])
Status -->|Yes| Generate[Generate/enrich audit data:<br>claim, provider, NDC lookups]
Generate -->|Failed| FailGen([AuditResult = FailAuditGeneration])
Generate -->|Ok| BillEdits[Bill edit validation]
BillEdits -->|Fatal error| FailBillEdits([AuditResult = FailBillEdits;<br>new audit data discarded])
BillEdits -->|Ok| ServiceEdits[Service edit and adjustment<br>per service line]
ServiceEdits --> ForAudit{Services scheduled<br>for re-audit?}
ForAudit -->|No| Save
ForAudit -->|Yes, edits failed| FailServiceEdits([AuditResult = FailServiceEdits])
ForAudit -->|Yes, edits passed| MCO[MCO determination<br>unless Worker Reimbursement]
MCO --> Audit[Bill audit rule execution]
Audit -->|Failed| FailAuditCheck([AuditResult = FailAuditCheck])
Audit -->|Ok| Save[Save audit data<br>unless read-only]
Save -->|Failed| FailSave([AuditResult = FailAuditSave])
Save -->|Ok| Success([AuditResult = Success])
Compare[Audit bill comparison]:::standalone --> CompareResult([Match/mismatch report])
classDef standalone fill:#eee,stroke:#999,stroke-dasharray: 5 5
Inherited operations and processes¶
Operations in this section originate from base classes or services provided by dependency framework and same-repo libraries. They are inherited or delegated, not implemented in this library.
From clsBusinessBase (SAIF.BOF.Framework)¶
| Operation | Intent | Provided by | Origin | Embedded in |
|---|---|---|---|---|
| Edit lifecycle and rules-manager evaluation | Supports BeginEdit/CancelEdit/ApplyEdit and broken-rule collection/propagation for business objects.* |
clsBusinessBase |
SAIF.BOF.Framework |
Automated bill audit orchestration, Bill edit validation, Service edit and adjustment, Bill audit rule execution |
Origin: This lifecycle behavior is defined in
SAIF.BOF.Framework/clsBusinessBaseand inherited byBillAuditEngineand the audit utility classes. No dedicated operation page exists for this framework dependency; behavior is summarized inline in the consuming operation pages.
From clsBill (SAIF.Business.Claim.Bill)¶
| Operation | Intent | Provided by | Origin | Embedded in |
|---|---|---|---|---|
| Bill CRUD | Persists the bill header and cascades save into diagnosis, procedure, service, and status collections. | clsBill |
SAIF.Business.Claim.Bill |
Automated bill audit orchestration |
| Audit and audited services | Persists the audit header, audited-service lines, adjustments, and audit messages generated during automated audit. | clsBill/clsAudit |
SAIF.Business.Claim.Bill |
Automated bill audit orchestration |
| National drug validation | Retrieves a national drug code's master record and price history. | clsNationalDrug |
SAIF.Business.Claim.Bill |
Automated bill audit orchestration |
| Service reference lookups | Resolves and caches billable-service reference data (descriptions, fee schedules, CPT bundling, MCO fee exemptions). | clsServiceManager/clsServiceInfo |
SAIF.Business.Claim.Bill |
Bill audit rule execution, Service edit and adjustment |
Origin: These operations are defined in
SAIF.Business.Claim.Billand inherited or delegated by this component. Their step-by-step logic is embedded inline (with> Origincallouts) in the consuming operation's detail page. See Bill CRUD, Audit and audited services, National drug validation, and Service reference lookups in theSAIF.Business.Claim.Billdocumentation set.
From clsClaimData (SAIF.Business.View.Claim)¶
| Operation | Intent | Provided by | Origin | Embedded in |
|---|---|---|---|---|
| Retrieve claim summary data | Loads claim-level summary values (status, injury date, jurisdiction, merge/replacement chain) used to validate and enrich a bill. | clsClaimData |
SAIF.Business.View.Claim |
Automated bill audit orchestration, Bill edit validation |
Origin: This operation is defined in
SAIF.Business.View.Claim, which is documented in the previous format (no per-operation page exists). See Retrieve claim summary data in theSAIF.Business.View.Claimdocumentation set.
From clsProviderLocation (SAIF.BOF.Business.View.Provider)¶
| Operation | Intent | Provided by | Origin | Embedded in |
|---|---|---|---|---|
| Retrieve provider location | Loads billing/servicing/prescribing provider location detail, provider type, and tax IDs used to validate a bill and its services. | clsProviderLocation |
SAIF.BOF.Business.View.Provider |
Automated bill audit orchestration, Bill edit validation |
| Retrieve DCBS cost charges | Loads the effective cost/charge conversion factor used for cost-charge basic allowance computation. | clsProviderLocation |
SAIF.BOF.Business.View.Provider |
Bill audit rule execution |
| Retrieve provider service contracts | Loads active provider service contracts used to compute contract-based allowance. | clsProviderLocation |
SAIF.BOF.Business.View.Provider |
Bill audit rule execution |
| Retrieve MCO provider enrollments | Loads MCO plan enrollment for a provider location used to resolve billing/servicing-provider MCO plans. | clsProviderLocation |
SAIF.BOF.Business.View.Provider |
MCO determination |
Origin: These operations are defined in
SAIF.BOF.Business.View.Provider, which is documented in the previous format (no per-operation page exists). See Retrieve provider location, Retrieve DCBS cost charges, Retrieve provider service contracts, and Retrieve MCO provider enrollments in theSAIF.BOF.Business.View.Providerdocumentation set.
Database interactions¶
The following table summarizes which operations read from or write to the database. Per-step SQL and table citations live in each operation's detail page under operations/.
| Operation | SQL | Tables | Type |
|---|---|---|---|
| Automated bill audit orchestration | — (persistence delegated to clsBillAudit.Save in SAIF.Business.Claim.Bill)* |
CBP_BILL | Write* |
| Bill audit rule execution | SQL-001 | CBP_DRG_CODE | Read |
Two additional SQL statements are used in support of this pipeline but are executed by supporting utility classes rather than the operations above: SQL-002 (historical bill/service data, CBP_BILL) backs the service history lookups consumed inside Bill audit rule execution, and SQL-003 (pharmacy eligibility, CL_PHARMACY_ELIGIBILITY_REPORT) backs a lazily-loaded property on clsBillAudit consumed during Automated bill audit orchestration.
Failure and edge-case behavior¶
- An invalid bill or an ineligible bill status short-circuits the pipeline before any data is generated, edited, or saved;
AuditBillstill returnsTruein these cases because they are not environment errors (BR-001, BR-002). - If bill edits fail with a fatal error, any audit-service rows that were newly generated for this run are discarded so they are not saved with an invalid bill.
AuditBillreturnsFalseonly forEnvironmentError,FailAuditGeneration, orFailAuditSave— business-rule failures such asInvalidBill,InvalidStatus,FailBillEdits,FailServiceEdits, andFailAuditCheckall returnTrue, so callers must inspectAuditResult, not just the boolean return value, to detect a failed audit.*ReadOnlyModesuppresses all persistence: only an in-memory status record is generated andBill.Save()is never called.- Unhandled exceptions anywhere in the pipeline are caught, recorded in
AuditExceptions, and reported asEnvironmentError. - Oracle schema, sequence, or procedure changes in the underlying tables can alter audit behavior without any local code change.
Related documentation¶
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.AutomatedAudit\BillAuditEngine.vbBusiness\SAIF.Business.Claim.Bill.AutomatedAudit\clsBillAudit.vbBusiness\SAIF.Business.Claim.Bill.AutomatedAudit\clsBillAuditService.vbBusiness\SAIF.Business.Claim.Bill.AutomatedAudit\AuditUtilities\AuditTrailManager.vbBusiness\SAIF.Business.Claim.Bill.AutomatedAudit\AuditUtilities\clsAuditCalculator.vbBusiness\SAIF.Business.Claim.Bill.AutomatedAudit\AuditUtilities\clsAuditCompare.vbBusiness\SAIF.Business.Claim.Bill.AutomatedAudit\AuditUtilities\clsBillAuditUtility.vbBusiness\SAIF.Business.Claim.Bill.AutomatedAudit\AuditUtilities\clsBillAuditor.vbBusiness\SAIF.Business.Claim.Bill.AutomatedAudit\AuditUtilities\clsBillEditor.vbBusiness\SAIF.Business.Claim.Bill.AutomatedAudit\AuditUtilities\clsClaimBillHistory.vbBusiness\SAIF.Business.Claim.Bill.AutomatedAudit\AuditUtilities\clsMCOManager.vbBusiness\SAIF.Business.Claim.Bill.AutomatedAudit\AuditUtilities\clsPharmacyEnrollment.vbBusiness\SAIF.Business.Claim.Bill.AutomatedAudit\AuditUtilities\clsServiceEditor.vb