SQL-010: EOB MCO fee adjustment insert (EbillEobAdjustment)¶
EobBuilder.CreateMcoFeeAdjustment builds an MCO fee adjustment row using the clearinghouse MCO reason and group codes and adds it to the repository as part of EOB generation.
Classification¶
| Field | Value |
|---|---|
| SQL ID | SQL-010 |
| Operation type | Create |
| Execution method | ORM (IRepository.Add) |
| Database | Oracle* |
| Schema | [unqualified]** |
| Command type | N/A — ORM (NHibernate generates SQL at runtime from the ClassMaps in Data/SAIF.Data.NHibernate/Mappings/**) |
| Business object | EobBuilder |
| Criteria property | N/A — ORM |
| Lifecycle method | CreateMcoFeeAdjustment |
Tables¶
| Table | Access | Columns used |
|---|---|---|
| EBILL_EOB_ADJUSTMENT | INSERT | EBILL_EOB_ADJUSTMENT_SEQ_NUM, ADJUSTMENT_AMT, EBILL_ADJUSTMENT_LEVEL_CODE, EBILL_ADJUSTMENT_REASON_CODE, EBILL_ADJUSTMENT_GROUP_CODE, EBILL_SEQ_NUM, AUDIT_SEQ_NUM, BILL_ID |
LINQ statement¶
Source: Domain/SAIF.Domain/Claims/Ebilling/EobBuilder.cs:235
// Domain/SAIF.Domain/Claims/Ebilling/EobBuilder.cs:223-237
foreach (var auditService in auditedMcoServices)
{
var adjustment = new EbillEobAdjustment()
{
Ebill = ebill,
AuditedService = auditService,
AdjustmentAmount = auditService.McoAdminFeeAmount ?? 0,
LevelCode = "SERV",
ReasonCode = queryProvider.GetClearinghouse().McoAdjustmentReasonCode,
GroupCode = queryProvider.GetClearinghouse().McoAdjustmentGroupCode
};
factory.GetRepository<EbillEobAdjustment>().Add(adjustment);
results.ServiceAdjustmentInserted++;
}
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 EBILL_EOB_ADJUSTMENT_SEQ.NEXTVAL
FROM DUAL
INSERT INTO EBILL_EOB_ADJUSTMENT (
EBILL_EOB_ADJUSTMENT_SEQ_NUM,
ADJUSTMENT_AMT,
EBILL_ADJUSTMENT_LEVEL_CODE,
EBILL_ADJUSTMENT_REASON_CODE,
EBILL_ADJUSTMENT_GROUP_CODE,
EBILL_SEQ_NUM,
AUDIT_SEQ_NUM,
BILL_ID)
VALUES (
:Id,
:AdjustmentAmount,
:LevelCode,
:ReasonCode,
:GroupCode,
:Ebill,
:AuditedServiceId,
:AuditedServiceAudit)
Translation notes:
- :Id is the value fetched from EBILL_EOB_ADJUSTMENT_SEQ (GeneratedBy.Native("EBILL_EOB_ADJUSTMENT_SEQ") on Oracle).
- No version column mapped.
- :AuditedServiceId / :AuditedServiceAudit are the composite key parts of CbpAuditedService (CbpAuditedServiceMap.cs:17-19), bound to AUDIT_SEQ_NUM / BILL_ID.
- :LevelCode is the literal "SERV" in source; :ReasonCode/:GroupCode come from queryProvider.GetClearinghouse() (separate read).
- Executed once per element of auditedMcoServices (loop at line 223).
Operations and processes¶
- OP-DOM-12 EobBuilder.GenerateEobs — builds the adjustments and remittance advices and inserts them (see Operations and processes)
Business rules¶
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¶
- Domain/SAIF.Domain/Claims/Ebilling/EobBuilder.cs