---
title: "SQL-120: Retrieve CbpBillService"
summary: Read operation against CbpBillService via NHibernate ORM.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-24
library: SAIF.Services
reference_type: package
---

# SQL-120: Retrieve CbpBillService

This ORM statement performs a read operation on `CbpBillService` via `IUnitOfWork.GetRepository<T>()`, executed from `Services/SAIF.Services/Claims/Bills/BillServiceService.cs (L77, L159)`.

## Classification

| Field | Value |
| --- | --- |
| **SQL ID** | SQL-120 |
| **Operation type** | Read |
| **Execution method** | ORM (NHibernate LINQ) |
| **Database** | Oracle |
| **Schema** | [unqualified]** |
| **Command type** | N/A (ORM-generated) |
| **Business object** | `CbpBillService` |
| **Criteria property** | N/A — ORM |
| **Lifecycle method** | `GetChargedServicesTotal, GetServices` |

## Parameters

| Parameter | Direction | Type | Max length | Description |
| --- | --- | --- | --- | --- |
| `billId` | Input | ** | N/A | `x.Bill.Id == billId` → column join via `Bill` (BILL_ID) → `Bill.Id` |

## Tables

| Table | Access | Columns used |
| --- | --- | --- |
| [CBP_BILL_SERVICE](../database-tables.md#cbp_bill_service) | SELECT | `BILL_ID`, `BILL_SERVICE_SEQ_NUM`, `UPDATE_NUM`, `BILL_SERVICE_DATE`, `BILL_SERVICE_END_DATE`, `PROVIDER_SERVICE_CODE`, `BILL_SERVICE_TYPE_CODE`, `SERVICE_MODIFIER_CODE1`, `SERVICE_MODIFIER_CODE2`, `SERVICE_MODIFIER_CODE3`, `SERVICE_MODIFIER_CODE4`, `SERVICE_QUANTITY`, `CHARGE_AMT`, `MSRP_INVOICE_AMT`, `TOOTH_NUM`, `SERVICE_LOCATION_CODE`, `DAYS_SUPPLY_QTY`, `UPDATE_USER`, `UPDATE_DATE`, `DIAGNOSIS_POINTER_CODE1`, `DIAGNOSIS_POINTER_CODE2`, `DIAGNOSIS_POINTER_CODE3`, `DIAGNOSIS_POINTER_CODE4`, `SECONDARY_PROV_SERVICE_CODE`, `SECONDARY_BILL_SERV_TYPE_CODE`, `PRESCRIPTION_WRITTEN_DATE`, `PRESCRIBING_PROVIDER_ID`, `COMPOUND_DRUG_FLAG`, `PRESCRIBER_LAST_NAME`, `PRESCRIBER_FIRST_NAME`, `TAX_CHARGED_AMT`, `PRESCRIBING_PROVIDER_CODE`, `DISPENSE_AS_WRITTEN_CODE`, `PRESC_PROVIDER_LOC_SEQ_NUM`, `SERV_PROVIDER_LOC_SEQ_NUM`, `MSRP_INVOICE_CODE` |

## LINQ statement

Source: `Services/SAIF.Services/Claims/Bills/BillServiceService.cs:77`

```csharp
// Services/SAIF.Services/Claims/Bills/BillServiceService.cs:77
            var dataServices = unitOfWork.GetRepository<CbpBillService>().Query().Where(x => x.Bill.Id == billId).ToList();

// Services/SAIF.Services/Claims/Bills/BillServiceService.cs:159
            return unitOfWork.GetRepository<CbpBillService>().Query().Where(x => x.Bill.Id == billId).Sum(x => x.ChargeAmount);
```

## Sample SQL

> **Inferred SQL:** This SQL was inferred from the LINQ statement above and the NHibernate mappings. It is not concrete SQL from source code; NHibernate generates the executed statement at runtime, so aliases, column order, join syntax, and bind-parameter names may differ.

```sql
-- Inferred from LINQ (NHibernate mapping translation); not concrete SQL
-- Services/SAIF.Services/Claims/Bills/BillServiceService.cs:77
SELECT
  CBS.BILL_ID,
  CBS.BILL_SERVICE_SEQ_NUM,
  CBS.UPDATE_NUM,
  CBS.BILL_SERVICE_DATE,
  CBS.BILL_SERVICE_END_DATE,
  CBS.PROVIDER_SERVICE_CODE,
  CBS.BILL_SERVICE_TYPE_CODE,
  CBS.SERVICE_MODIFIER_CODE1,
  CBS.SERVICE_MODIFIER_CODE2,
  CBS.SERVICE_MODIFIER_CODE3,
  CBS.SERVICE_MODIFIER_CODE4,
  CBS.SERVICE_QUANTITY,
  CBS.CHARGE_AMT,
  CBS.MSRP_INVOICE_AMT,
  CBS.TOOTH_NUM,
  CBS.SERVICE_LOCATION_CODE,
  CBS.DAYS_SUPPLY_QTY,
  CBS.UPDATE_USER,
  CBS.UPDATE_DATE,
  CBS.DIAGNOSIS_POINTER_CODE1,
  CBS.DIAGNOSIS_POINTER_CODE2,
  CBS.DIAGNOSIS_POINTER_CODE3,
  CBS.DIAGNOSIS_POINTER_CODE4,
  CBS.SECONDARY_PROV_SERVICE_CODE,
  CBS.SECONDARY_BILL_SERV_TYPE_CODE,
  CBS.PRESCRIPTION_WRITTEN_DATE,
  CBS.PRESCRIBING_PROVIDER_ID,
  CBS.COMPOUND_DRUG_FLAG,
  CBS.PRESCRIBER_LAST_NAME,
  CBS.PRESCRIBER_FIRST_NAME,
  CBS.TAX_CHARGED_AMT,
  CBS.PRESCRIBING_PROVIDER_CODE,
  CBS.DISPENSE_AS_WRITTEN_CODE,
  CBS.PRESC_PROVIDER_LOC_SEQ_NUM,
  CBS.SERV_PROVIDER_LOC_SEQ_NUM,
  CBS.MSRP_INVOICE_CODE
FROM CBP_BILL_SERVICE CBS
WHERE CBS.BILL_ID = :billId

-- Services/SAIF.Services/Claims/Bills/BillServiceService.cs:159
SELECT SUM(CBS.CHARGE_AMT)
FROM CBP_BILL_SERVICE CBS
WHERE CBS.BILL_ID = :billId
```

Translation notes:
- `BILL_ID` is both a key-reference part and a `References(...).Not.Insert()` column -> selected once.

## Operations and processes
- BillServiceService.GetChargedServicesTotal — see [Operations and processes](../operations-processes.md)
- BillServiceService.GetServices — see [Operations and processes](../operations-processes.md)

## Business rules
- [SVC-BR-BIL-136 Charged total = sum of ChargeAmount on the bill's lines](../business-rules.md#svc-br-bil-136-charged-total-%3D-sum-of-chargeamount-on-the-bill's-lines)

## Sources
- `Services/SAIF.Services/Claims/Bills/BillServiceService.cs (L77, L159)`
