SQL-115: Retrieve CbpBill¶
This ORM statement performs a read operation on CbpBill via IUnitOfWork.GetRepository<T>(), executed from Services/SAIF.Services/Claims/Bills/BillEntryService.cs (L133, L288, L309, L346, L364, L628).
Classification¶
| Field | Value |
|---|---|
| SQL ID | SQL-115 |
| Operation type | Read |
| Execution method | ORM (NHibernate LINQ) |
| Database | Oracle |
| Schema | [unqualified]** |
| Command type | N/A (ORM-generated) |
| Business object | CbpBill |
| Criteria property | N/A — ORM |
| Lifecycle method | CheckForDuplicateBill, GetInboxBillsByResponsiblePartyId, SaveBill, UpdateBillStatus |
Parameters¶
| Parameter | Direction | Type | Max length | Description |
|---|---|---|---|---|
imageSeqNum |
Input | ** | N/A | x.ImageId == imageSeqNum → column IMAGE_SEQ_NUM |
bill.Id |
Input | ** | N/A | x.Id == bill.Id → column BILL_ID |
dataBill.Id |
Input | ** | N/A | x.Id == dataBill.Id → column BILL_ID |
billId |
Input | ** | N/A | x.Id == billId → column BILL_ID |
responsiblePartyId |
Input | ** | N/A | x.CurrentResponsiblePartyId == responsiblePartyId → column CURRENT_RESPONSIBLE_PARTY_ID |
Tables¶
| Table | Access | Columns used |
|---|---|---|
| CBP_BILL | SELECT | BILL_ID, UPDATE_NUM, PATIENT_REFERENCE_NUM, MAIL_ROOM_RECEIVED_DATE, SAIF_CLAIM_NUM, SAIF_CLAIM_CHK_VALUE, WORKER_FIRST_NAME, WORKER_MIDDLE_INITIAL, WORKER_LAST_NAME, WORKER_PHONE_NUM, WORKER_BIRTH_DATE, WORKER_ADDRESS_LINE1, WORKER_ADDRESS_LINE2, WORKER_ADDRESS_LINE3, WORKER_ADDRESS_LINE4, GENDER_CODE, PATIENT_ACCOUNT_NUM, PROVIDER_TAX_ID, PROVIDER_ADDRESS_LINE1, PROVIDER_ADDRESS_LINE2, PROVIDER_CITY_NAME, PROVIDER_STATE_CODE, PROVIDER_ZIP_CODE, PROVIDER_LICENSE_NUM, ADMISSION_DATE, DISCHARGE_DATE, STATEMENT_FROM_DATE, STATEMENT_THRU_DATE, WORKER_TAX_ID, TOWID, REBILL_FLAG, CURRENT_BILL_STATUS_ID, PRIORITY_NUM, UPDATE_USER, UPDATE_DATE, REFERRING_PROVIDER_NAME, BILL_TOTAL_AMT, DRG_CODE, BILL_PACKAGE_QUANTITY, WORKFLOW_BYPASS_CODE, CURRENT_RESPONSIBLE_PARTY_ID, CURRENT_STATUS_EFF_DATE, CURRENT_UPDATE_USER, CURRENT_NEXT_REVIEW_DATE, UB_BILL_TYPE_CODE, CBP_ADMISSION_TYPE_CODE, IMAGE_SEQ_NUM, CLAIM_ID, BILL_TYPE_CODE, PROVIDER_LOCATION_SEQ_NUM, CURRENT_BILL_STATUS_CODE, CBP_BILL_ENTRY_SOURCE_CODE |
LINQ statement¶
Source: Services/SAIF.Services/Claims/Bills/BillEntryService.cs:133
// Services/SAIF.Services/Claims/Bills/BillEntryService.cs:133
var bills = unitOfWork.GetRepository<CbpBill>().Query().Where(x => x.ImageId == imageSeqNum).ToList();
// Services/SAIF.Services/Claims/Bills/BillEntryService.cs:288
dataBill = unitOfWork.GetRepository<CbpBill>().Query().FirstOrDefault(x => x.Id == bill.Id);
// Services/SAIF.Services/Claims/Bills/BillEntryService.cs:309
return Mapper.Map<Bill>(unitOfWork.GetRepository<CbpBill>().Query().FirstOrDefault(x => x.Id == dataBill.Id));
// Services/SAIF.Services/Claims/Bills/BillEntryService.cs:346
dataBill = unitOfWork.GetRepository<CbpBill>().Query().FirstOrDefault(x => x.Id == billId);
// Services/SAIF.Services/Claims/Bills/BillEntryService.cs:364
return Mapper.Map<Bill>(unitOfWork.GetRepository<CbpBill>().Query().FirstOrDefault(x => x.Id == billId));
// Services/SAIF.Services/Claims/Bills/BillEntryService.cs:628-629
var bills = unitOfWork.GetRepository<CbpBill>().Query()
.Where(x => x.CurrentResponsiblePartyId == responsiblePartyId).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
-- Services/SAIF.Services/Claims/Bills/BillEntryService.cs:133
SELECT
CB.BILL_ID,
CB.UPDATE_NUM,
CB.PATIENT_REFERENCE_NUM,
CB.MAIL_ROOM_RECEIVED_DATE,
CB.SAIF_CLAIM_NUM,
CB.SAIF_CLAIM_CHK_VALUE,
CB.WORKER_FIRST_NAME,
CB.WORKER_MIDDLE_INITIAL,
CB.WORKER_LAST_NAME,
CB.WORKER_PHONE_NUM,
CB.WORKER_BIRTH_DATE,
CB.WORKER_ADDRESS_LINE1,
CB.WORKER_ADDRESS_LINE2,
CB.WORKER_ADDRESS_LINE3,
CB.WORKER_ADDRESS_LINE4,
CB.GENDER_CODE,
CB.PATIENT_ACCOUNT_NUM,
CB.PROVIDER_TAX_ID,
CB.PROVIDER_ADDRESS_LINE1,
CB.PROVIDER_ADDRESS_LINE2,
CB.PROVIDER_CITY_NAME,
CB.PROVIDER_STATE_CODE,
CB.PROVIDER_ZIP_CODE,
CB.PROVIDER_LICENSE_NUM,
CB.ADMISSION_DATE,
CB.DISCHARGE_DATE,
CB.STATEMENT_FROM_DATE,
CB.STATEMENT_THRU_DATE,
CB.WORKER_TAX_ID,
CB.TOWID,
CB.REBILL_FLAG,
CB.CURRENT_BILL_STATUS_ID,
CB.PRIORITY_NUM,
CB.UPDATE_USER,
CB.UPDATE_DATE,
CB.REFERRING_PROVIDER_NAME,
CB.BILL_TOTAL_AMT,
CB.DRG_CODE,
CB.BILL_PACKAGE_QUANTITY,
CB.WORKFLOW_BYPASS_CODE,
CB.CURRENT_RESPONSIBLE_PARTY_ID,
CB.CURRENT_STATUS_EFF_DATE,
CB.CURRENT_UPDATE_USER,
CB.CURRENT_NEXT_REVIEW_DATE,
CB.UB_BILL_TYPE_CODE,
CB.CBP_ADMISSION_TYPE_CODE,
CB.IMAGE_SEQ_NUM,
CB.CLAIM_ID,
CB.BILL_TYPE_CODE,
CB.PROVIDER_LOCATION_SEQ_NUM,
CB.CURRENT_BILL_STATUS_CODE,
CB.CBP_BILL_ENTRY_SOURCE_CODE
FROM CBP_BILL CB
WHERE CB.IMAGE_SEQ_NUM = :imageSeqNum
-- Services/SAIF.Services/Claims/Bills/BillEntryService.cs:288
SELECT *
FROM (
SELECT
CB.BILL_ID,
CB.UPDATE_NUM,
CB.PATIENT_REFERENCE_NUM,
CB.MAIL_ROOM_RECEIVED_DATE,
CB.SAIF_CLAIM_NUM,
CB.SAIF_CLAIM_CHK_VALUE,
CB.WORKER_FIRST_NAME,
CB.WORKER_MIDDLE_INITIAL,
CB.WORKER_LAST_NAME,
CB.WORKER_PHONE_NUM,
CB.WORKER_BIRTH_DATE,
CB.WORKER_ADDRESS_LINE1,
CB.WORKER_ADDRESS_LINE2,
CB.WORKER_ADDRESS_LINE3,
CB.WORKER_ADDRESS_LINE4,
CB.GENDER_CODE,
CB.PATIENT_ACCOUNT_NUM,
CB.PROVIDER_TAX_ID,
CB.PROVIDER_ADDRESS_LINE1,
CB.PROVIDER_ADDRESS_LINE2,
CB.PROVIDER_CITY_NAME,
CB.PROVIDER_STATE_CODE,
CB.PROVIDER_ZIP_CODE,
CB.PROVIDER_LICENSE_NUM,
CB.ADMISSION_DATE,
CB.DISCHARGE_DATE,
CB.STATEMENT_FROM_DATE,
CB.STATEMENT_THRU_DATE,
CB.WORKER_TAX_ID,
CB.TOWID,
CB.REBILL_FLAG,
CB.CURRENT_BILL_STATUS_ID,
CB.PRIORITY_NUM,
CB.UPDATE_USER,
CB.UPDATE_DATE,
CB.REFERRING_PROVIDER_NAME,
CB.BILL_TOTAL_AMT,
CB.DRG_CODE,
CB.BILL_PACKAGE_QUANTITY,
CB.WORKFLOW_BYPASS_CODE,
CB.CURRENT_RESPONSIBLE_PARTY_ID,
CB.CURRENT_STATUS_EFF_DATE,
CB.CURRENT_UPDATE_USER,
CB.CURRENT_NEXT_REVIEW_DATE,
CB.UB_BILL_TYPE_CODE,
CB.CBP_ADMISSION_TYPE_CODE,
CB.IMAGE_SEQ_NUM,
CB.CLAIM_ID,
CB.BILL_TYPE_CODE,
CB.PROVIDER_LOCATION_SEQ_NUM,
CB.CURRENT_BILL_STATUS_CODE,
CB.CBP_BILL_ENTRY_SOURCE_CODE
FROM CBP_BILL CB
WHERE CB.BILL_ID = :Id
)
WHERE ROWNUM <= 1
-- Services/SAIF.Services/Claims/Bills/BillEntryService.cs:309
SELECT *
FROM (
SELECT
CB.BILL_ID,
CB.UPDATE_NUM,
CB.PATIENT_REFERENCE_NUM,
CB.MAIL_ROOM_RECEIVED_DATE,
CB.SAIF_CLAIM_NUM,
CB.SAIF_CLAIM_CHK_VALUE,
CB.WORKER_FIRST_NAME,
CB.WORKER_MIDDLE_INITIAL,
CB.WORKER_LAST_NAME,
CB.WORKER_PHONE_NUM,
CB.WORKER_BIRTH_DATE,
CB.WORKER_ADDRESS_LINE1,
CB.WORKER_ADDRESS_LINE2,
CB.WORKER_ADDRESS_LINE3,
CB.WORKER_ADDRESS_LINE4,
CB.GENDER_CODE,
CB.PATIENT_ACCOUNT_NUM,
CB.PROVIDER_TAX_ID,
CB.PROVIDER_ADDRESS_LINE1,
CB.PROVIDER_ADDRESS_LINE2,
CB.PROVIDER_CITY_NAME,
CB.PROVIDER_STATE_CODE,
CB.PROVIDER_ZIP_CODE,
CB.PROVIDER_LICENSE_NUM,
CB.ADMISSION_DATE,
CB.DISCHARGE_DATE,
CB.STATEMENT_FROM_DATE,
CB.STATEMENT_THRU_DATE,
CB.WORKER_TAX_ID,
CB.TOWID,
CB.REBILL_FLAG,
CB.CURRENT_BILL_STATUS_ID,
CB.PRIORITY_NUM,
CB.UPDATE_USER,
CB.UPDATE_DATE,
CB.REFERRING_PROVIDER_NAME,
CB.BILL_TOTAL_AMT,
CB.DRG_CODE,
CB.BILL_PACKAGE_QUANTITY,
CB.WORKFLOW_BYPASS_CODE,
CB.CURRENT_RESPONSIBLE_PARTY_ID,
CB.CURRENT_STATUS_EFF_DATE,
CB.CURRENT_UPDATE_USER,
CB.CURRENT_NEXT_REVIEW_DATE,
CB.UB_BILL_TYPE_CODE,
CB.CBP_ADMISSION_TYPE_CODE,
CB.IMAGE_SEQ_NUM,
CB.CLAIM_ID,
CB.BILL_TYPE_CODE,
CB.PROVIDER_LOCATION_SEQ_NUM,
CB.CURRENT_BILL_STATUS_CODE,
CB.CBP_BILL_ENTRY_SOURCE_CODE
FROM CBP_BILL CB
WHERE CB.BILL_ID = :Id
)
WHERE ROWNUM <= 1
-- Services/SAIF.Services/Claims/Bills/BillEntryService.cs:346
SELECT *
FROM (
SELECT
CB.BILL_ID,
CB.UPDATE_NUM,
CB.PATIENT_REFERENCE_NUM,
CB.MAIL_ROOM_RECEIVED_DATE,
CB.SAIF_CLAIM_NUM,
CB.SAIF_CLAIM_CHK_VALUE,
CB.WORKER_FIRST_NAME,
CB.WORKER_MIDDLE_INITIAL,
CB.WORKER_LAST_NAME,
CB.WORKER_PHONE_NUM,
CB.WORKER_BIRTH_DATE,
CB.WORKER_ADDRESS_LINE1,
CB.WORKER_ADDRESS_LINE2,
CB.WORKER_ADDRESS_LINE3,
CB.WORKER_ADDRESS_LINE4,
CB.GENDER_CODE,
CB.PATIENT_ACCOUNT_NUM,
CB.PROVIDER_TAX_ID,
CB.PROVIDER_ADDRESS_LINE1,
CB.PROVIDER_ADDRESS_LINE2,
CB.PROVIDER_CITY_NAME,
CB.PROVIDER_STATE_CODE,
CB.PROVIDER_ZIP_CODE,
CB.PROVIDER_LICENSE_NUM,
CB.ADMISSION_DATE,
CB.DISCHARGE_DATE,
CB.STATEMENT_FROM_DATE,
CB.STATEMENT_THRU_DATE,
CB.WORKER_TAX_ID,
CB.TOWID,
CB.REBILL_FLAG,
CB.CURRENT_BILL_STATUS_ID,
CB.PRIORITY_NUM,
CB.UPDATE_USER,
CB.UPDATE_DATE,
CB.REFERRING_PROVIDER_NAME,
CB.BILL_TOTAL_AMT,
CB.DRG_CODE,
CB.BILL_PACKAGE_QUANTITY,
CB.WORKFLOW_BYPASS_CODE,
CB.CURRENT_RESPONSIBLE_PARTY_ID,
CB.CURRENT_STATUS_EFF_DATE,
CB.CURRENT_UPDATE_USER,
CB.CURRENT_NEXT_REVIEW_DATE,
CB.UB_BILL_TYPE_CODE,
CB.CBP_ADMISSION_TYPE_CODE,
CB.IMAGE_SEQ_NUM,
CB.CLAIM_ID,
CB.BILL_TYPE_CODE,
CB.PROVIDER_LOCATION_SEQ_NUM,
CB.CURRENT_BILL_STATUS_CODE,
CB.CBP_BILL_ENTRY_SOURCE_CODE
FROM CBP_BILL CB
WHERE CB.BILL_ID = :billId
)
WHERE ROWNUM <= 1
-- Services/SAIF.Services/Claims/Bills/BillEntryService.cs:364
SELECT *
FROM (
SELECT
CB.BILL_ID,
CB.UPDATE_NUM,
CB.PATIENT_REFERENCE_NUM,
CB.MAIL_ROOM_RECEIVED_DATE,
CB.SAIF_CLAIM_NUM,
CB.SAIF_CLAIM_CHK_VALUE,
CB.WORKER_FIRST_NAME,
CB.WORKER_MIDDLE_INITIAL,
CB.WORKER_LAST_NAME,
CB.WORKER_PHONE_NUM,
CB.WORKER_BIRTH_DATE,
CB.WORKER_ADDRESS_LINE1,
CB.WORKER_ADDRESS_LINE2,
CB.WORKER_ADDRESS_LINE3,
CB.WORKER_ADDRESS_LINE4,
CB.GENDER_CODE,
CB.PATIENT_ACCOUNT_NUM,
CB.PROVIDER_TAX_ID,
CB.PROVIDER_ADDRESS_LINE1,
CB.PROVIDER_ADDRESS_LINE2,
CB.PROVIDER_CITY_NAME,
CB.PROVIDER_STATE_CODE,
CB.PROVIDER_ZIP_CODE,
CB.PROVIDER_LICENSE_NUM,
CB.ADMISSION_DATE,
CB.DISCHARGE_DATE,
CB.STATEMENT_FROM_DATE,
CB.STATEMENT_THRU_DATE,
CB.WORKER_TAX_ID,
CB.TOWID,
CB.REBILL_FLAG,
CB.CURRENT_BILL_STATUS_ID,
CB.PRIORITY_NUM,
CB.UPDATE_USER,
CB.UPDATE_DATE,
CB.REFERRING_PROVIDER_NAME,
CB.BILL_TOTAL_AMT,
CB.DRG_CODE,
CB.BILL_PACKAGE_QUANTITY,
CB.WORKFLOW_BYPASS_CODE,
CB.CURRENT_RESPONSIBLE_PARTY_ID,
CB.CURRENT_STATUS_EFF_DATE,
CB.CURRENT_UPDATE_USER,
CB.CURRENT_NEXT_REVIEW_DATE,
CB.UB_BILL_TYPE_CODE,
CB.CBP_ADMISSION_TYPE_CODE,
CB.IMAGE_SEQ_NUM,
CB.CLAIM_ID,
CB.BILL_TYPE_CODE,
CB.PROVIDER_LOCATION_SEQ_NUM,
CB.CURRENT_BILL_STATUS_CODE,
CB.CBP_BILL_ENTRY_SOURCE_CODE
FROM CBP_BILL CB
WHERE CB.BILL_ID = :billId
)
WHERE ROWNUM <= 1
-- Services/SAIF.Services/Claims/Bills/BillEntryService.cs:628
SELECT
CB.BILL_ID,
CB.UPDATE_NUM,
CB.PATIENT_REFERENCE_NUM,
CB.MAIL_ROOM_RECEIVED_DATE,
CB.SAIF_CLAIM_NUM,
CB.SAIF_CLAIM_CHK_VALUE,
CB.WORKER_FIRST_NAME,
CB.WORKER_MIDDLE_INITIAL,
CB.WORKER_LAST_NAME,
CB.WORKER_PHONE_NUM,
CB.WORKER_BIRTH_DATE,
CB.WORKER_ADDRESS_LINE1,
CB.WORKER_ADDRESS_LINE2,
CB.WORKER_ADDRESS_LINE3,
CB.WORKER_ADDRESS_LINE4,
CB.GENDER_CODE,
CB.PATIENT_ACCOUNT_NUM,
CB.PROVIDER_TAX_ID,
CB.PROVIDER_ADDRESS_LINE1,
CB.PROVIDER_ADDRESS_LINE2,
CB.PROVIDER_CITY_NAME,
CB.PROVIDER_STATE_CODE,
CB.PROVIDER_ZIP_CODE,
CB.PROVIDER_LICENSE_NUM,
CB.ADMISSION_DATE,
CB.DISCHARGE_DATE,
CB.STATEMENT_FROM_DATE,
CB.STATEMENT_THRU_DATE,
CB.WORKER_TAX_ID,
CB.TOWID,
CB.REBILL_FLAG,
CB.CURRENT_BILL_STATUS_ID,
CB.PRIORITY_NUM,
CB.UPDATE_USER,
CB.UPDATE_DATE,
CB.REFERRING_PROVIDER_NAME,
CB.BILL_TOTAL_AMT,
CB.DRG_CODE,
CB.BILL_PACKAGE_QUANTITY,
CB.WORKFLOW_BYPASS_CODE,
CB.CURRENT_RESPONSIBLE_PARTY_ID,
CB.CURRENT_STATUS_EFF_DATE,
CB.CURRENT_UPDATE_USER,
CB.CURRENT_NEXT_REVIEW_DATE,
CB.UB_BILL_TYPE_CODE,
CB.CBP_ADMISSION_TYPE_CODE,
CB.IMAGE_SEQ_NUM,
CB.CLAIM_ID,
CB.BILL_TYPE_CODE,
CB.PROVIDER_LOCATION_SEQ_NUM,
CB.CURRENT_BILL_STATUS_CODE,
CB.CBP_BILL_ENTRY_SOURCE_CODE
FROM CBP_BILL CB
WHERE CB.CURRENT_RESPONSIBLE_PARTY_ID = :responsiblePartyId
Translation notes:
- bill.Id (L288) / dataBill.Id (L309) -> bind :Id.
- FirstOrDefault on the primary key still emits the Oracle10 ROWNUM <= 1 wrapper.
Operations and processes¶
- BillEntryService.CheckForDuplicateBill — see Operations and processes
- BillEntryService.GetInboxBillsByResponsiblePartyId — see Operations and processes
- BillEntryService.SaveBill — see Operations and processes
- BillEntryService.UpdateBillStatus — see Operations and processes
Business rules¶
- SVC-BR-BIL-080 BillTotalAmount NotNull - 'Error - Bill total amount is required.'
- SVC-BR-BIL-081 BillTypeCode NotNull - 'Error - Bill type is required.'
- SVC-BR-BIL-082 DrgCode ≤3 - 'Error - DRG code can be a maximum 3 characters.'
- SVC-BR-BIL-083 Claim number must be valid (ClaimQueryProvider.IsValidClaim) - 'Error - Claim not found.'---'error---claim-not-found.')
- SVC-BR-BIL-084 UbBillTypeCode numeric - 'Error - UB Bill Type Code is invalid. Must be numeric.'
- SVC-BR-BIL-085 CBPAdmissionTypeCode must be in the acceptable list - 'Error - CBP Admission Type Code is invalid.'
- SVC-BR-BIL-086
- SVC-BR-BIL-087 A bill with no existing row is created with status PEN, entry source CBE
- SVC-BR-BIL-094
- SVC-BR-BIL-087 A bill with no existing row is created with status PEN, entry source CBE
Sources¶
Services/SAIF.Services/Claims/Bills/BillEntryService.cs (L133, L288, L309, L346, L364, L628)