Skip to content

SQL-117: EbillQueryProvider.GetBillsForResponseFileForClearinghouse

This statement is a read operation invoked through ORM (NHibernate LINQ). Executed by EbillQueryProvider.GetBillsForResponseFileForClearinghouse.

Classification

Field Value
SQL ID SQL-117
Operation type Read
Execution method ORM (NHibernate LINQ)
Database Oracle*
Schema [unqualified]**
Command type N/A (ORM-generated)
Business object EbillQueryProvider
Criteria property N/A — ORM
Lifecycle method GetBillsForResponseFileForClearinghouse

Parameters

Parameter Direction Type Max length Description
clearinghouse Input EbillClearinghouse N/A Method argument of EbillQueryProvider.GetBillsForResponseFileForClearinghouse bound into the ORM expression; NHibernate generates the bind variable at runtime

Tables

Table Access Columns used
EBILL SELECT EBILL_SEQ_NUM, UPDATE_NUM, CLEARINGHOUSE_CONTROL_NUM, STATEMENT_FROM_DATE, STATEMENT_THRU_DATE, INJURY_DATE, ADMISSION_DATE, DISCHARGE_DATE, ORIGINAL_BILL_ID, BILL_TOTAL_AMOUNT, UB_BILL_TYPE_CODE, SERVICE_LOCATION_CODE, FACILITY_NPI, SUBMITTER_CONTROL_NUM, TRANSACTION_SET_CONTROL_NUM, UPDATE_USER, UPDATE_DATE, CLEARINGHOUSE_RECEIVED_DATE, CBP_ADMISSION_TYPE_CODE, BILL_ID, EBILL_RECEIPT_BATCH_SEQ_NUM, EBILL_PATIENT_SEQ_NUM, EBILL_STATUS_CODE, FACILITY_ADDRESS_SEQ_NUM, EBILL_SET_TYPE_CODE, EBILL_FIRST_RESPONSE_SEQ_NUM, EBILL_LAST_RESPONSE_SEQ_NUM, EBILL_RESPONSE_SET_SEQ_NUM, EBILL_EOB_SEQ_NUM
EBILL_BATCH JOIN EBILL_BATCH_SEQ_NUM, EBILL_CLEARINGHOUSE_SEQ_NUM
CBP_BILL JOIN BILL_ID, CURRENT_BILL_STATUS_CODE

LINQ statement

Source: Data/SAIF.Data/Queries/Claims/Ebilling/EbillQueryProvider.cs:64

// Data/SAIF.Data/Queries/Claims/Ebilling/EbillQueryProvider.cs:29
billRepository = Factory.GetRepository<Ebill>().Query();

// Data/SAIF.Data/Queries/Claims/Ebilling/EbillQueryProvider.cs:64
return
  billRepository.Where(x => x.Bill != null)
        .Where(
            x => x.ReceiptBatch.Clearinghouse == clearinghouse &&
                (x.FirstResponseBatch == null ||
                (x.LastResponseBatch == null && x.Bill.BillStatus.Code != "PEN"))
                )
        .OrderBy(x => x.ReceiptBatch)
        .ThenBy(x => x.TransactionSetControlNumber)
        .ToList();

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.

-- Inferred from LINQ (NHibernate mapping translation); not concrete SQL
SELECT
  E.EBILL_SEQ_NUM,
  E.UPDATE_NUM,
  E.CLEARINGHOUSE_CONTROL_NUM,
  E.STATEMENT_FROM_DATE,
  E.STATEMENT_THRU_DATE,
  E.INJURY_DATE,
  E.ADMISSION_DATE,
  E.DISCHARGE_DATE,
  E.ORIGINAL_BILL_ID,
  E.BILL_TOTAL_AMOUNT,
  E.UB_BILL_TYPE_CODE,
  E.SERVICE_LOCATION_CODE,
  E.FACILITY_NPI,
  E.SUBMITTER_CONTROL_NUM,
  E.TRANSACTION_SET_CONTROL_NUM,
  E.UPDATE_USER,
  E.UPDATE_DATE,
  E.CLEARINGHOUSE_RECEIVED_DATE,
  E.CBP_ADMISSION_TYPE_CODE,
  E.BILL_ID,
  E.EBILL_RECEIPT_BATCH_SEQ_NUM,
  E.EBILL_PATIENT_SEQ_NUM,
  E.EBILL_STATUS_CODE,
  E.FACILITY_ADDRESS_SEQ_NUM,
  E.EBILL_SET_TYPE_CODE,
  E.EBILL_FIRST_RESPONSE_SEQ_NUM,
  E.EBILL_LAST_RESPONSE_SEQ_NUM,
  E.EBILL_RESPONSE_SET_SEQ_NUM,
  E.EBILL_EOB_SEQ_NUM
FROM EBILL E
  INNER JOIN EBILL_BATCH EB
    ON EB.EBILL_BATCH_SEQ_NUM = E.EBILL_RECEIPT_BATCH_SEQ_NUM
  INNER JOIN CBP_BILL CB
    ON CB.BILL_ID = E.BILL_ID
WHERE E.BILL_ID IS NOT NULL
  AND EB.EBILL_CLEARINGHOUSE_SEQ_NUM = :clearinghouse
  AND (E.EBILL_FIRST_RESPONSE_SEQ_NUM IS NULL
    OR (E.EBILL_LAST_RESPONSE_SEQ_NUM IS NULL
      AND CB.CURRENT_BILL_STATUS_CODE <> 'PEN'))
ORDER BY E.EBILL_RECEIPT_BATCH_SEQ_NUM, E.TRANSACTION_SET_CONTROL_NUM

Translation notes:

  • The two chained Where calls combine with AND.
  • OrderBy(x => x.ReceiptBatch) orders by a many-to-one. NHibernate orders by its FK/identifier, E.EBILL_RECEIPT_BATCH_SEQ_NUM.
  • CBP_BILL is joined for x.Bill.BillStatus. NHibernate 4.x may render a navigation inside an OR disjunction as LEFT OUTER JOIN. The result is the same here, because E.BILL_ID IS NOT NULL is also required.

Operations and processes

Business rules

Sources

  • Data/SAIF.Data/Queries/Claims/Ebilling/EbillQueryProvider.cs:64