---
title: Bill audit evaluation
summary: Evaluate audited bill services to determine nurse-review requirements, duplicate/physical-medicine counts, and service date ranges.
status: draft
owner: SAIF.Core documentation team
last_reviewed: 2026-09-24
library: SAIF.Data
reference_type: package
operation_id: OP-SD-10
trigger: Bill audit workflow evaluates a bill's audited services.
---

# Bill audit evaluation

Evaluate audited bill services to determine nurse-review requirements, duplicate/physical-medicine counts, and service date ranges.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-SD-10 |
| **Trigger** | Bill audit workflow evaluates a bill's audited services. |
| **Inputs** | Bill id, service collection |
| **Outputs** | bool / int counts / service list |
| **Primary components** | `AuditQueryProvider` |
| **Entry point** | `Data/SAIF.Data/Queries/AuditQueryProvider.cs` |

## Steps

1. `IsNurseReviewRequired`: returns true if any audited service's service code has `IsNurseReviewRequired` set ([SD-BR-030](../business-rules.md#sd-br-030-nurse-review-required-if-any-audited-service-code-flags-it)). Data: `CbpAuditedService` (`CBP_AUDITED_SERVICE`), `CbpServiceCode` (`CBP_SERVICE_CODE`).
2. `GetNonDuplicateServiceCount`: excludes services where `OriginalBillCode = "D"` ([SD-BR-031](../business-rules.md#sd-br-031-duplicate-services-excluded-from-count)).
3. `GetServices`: a thru-date of `DateTime.MinValue` is treated as `DateTime.MaxValue` ([SD-BR-032](../business-rules.md#sd-br-032-unset-thru-date-treated-as-open-ended)).
4. `GetPhysicalMedicineCount`: counts physical-medicine services. Data: `CBP_SERVICE_PHYSICAL_MEDICINE`.

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
	Start(["Bill audit workflow evaluates a bill's audited services."]) --> S1["`AuditQueryProvider`"]
	S1 --> S2{"Rules satisfied?"}
	S2 -->|Yes| EndOk([Result returned])
	S2 -->|No| EndErr([Exception / empty result])
```

## Failure and edge-case behavior
- No audited services: `IsNurseReviewRequired` returns false.

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [SQL catalog](../sql/index.md)
- [Database tables](../database-tables.md)


## Sources
- `Data/SAIF.Data/Queries/AuditQueryProvider.cs`
- `Data/SAIF.Data/Queries/AuditQueryProvider.cs:34`
- `Data/SAIF.Data/Queries/AuditQueryProvider.cs:39`
- `Data/SAIF.Data/Queries/AuditQueryProvider.cs:44`
