Skip to content

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