IndexService¶
Implements IIndexService to index an extracted e-billing batch's providers, patients, and bill service locations against internal claim/location data, then transition the batch to the Indexed status. It delegates the actual matching logic to the static ProviderIndexer, PatientIndexer, and BillIndexer helpers, persisting each step through its own IUnitOfWork transaction and recording indexing errors through IErrorConditionHandler.
Purpose¶
- Indexes a batch's providers to internal locations (
IndexProviders). - Indexes a batch's patients to internal claims (
IndexPatients). - Indexes a batch's bill service providers to internal locations (
IndexBills). - Runs all three indexing steps for a batch and transitions it to
Indexedstatus, returning the aggregated results (IndexBatch).
Context¶
- Namespace:
SAIF.Services.Claims.EBilling - Assembly/package:
SAIF.Services(packaged inside theSAIF.SAIFCode.CoreNuGet package)
Public members¶
| Member | Signature | Purpose |
|---|---|---|
| IndexService | public IndexService(IUnitOfWork uow, IUserProfileService prof, IEbillingQueryProvider qu, IErrorConditionHandler err) |
Wires the unit-of-work, current-user resolver, e-billing query provider, and error-condition handler used to drive indexing. |
| IndexBatch | public IndexResults IndexBatch(long batchId) |
Runs provider, patient, and bill indexing for the batch in sequence, then transitions the batch to Indexed, returning the combined IndexResults. |
Behavioral notes¶
- Each indexing step (
IndexProviders,IndexPatients,IndexBills) and the final status transition run in its own separateIUnitOfWork.Begin()/Commit()transaction rather than one transaction spanning the whole batch. - Matching logic itself is implemented in the static
ProviderIndexer/PatientIndexer/BillIndexerhelper types, not in this class;IndexServiceonly sequences the calls and persists results. - This type largely duplicates the indexing sequence found in
EbillingService.IndexBatch, but uses the plainProviderIndexer/PatientIndexer/BillIndexerhelpers instead of the*V2/claim-API-aware variants (ProviderIndexerV2, claim-API-parameterizedPatientIndexer) used there.*
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¶
- Services/SAIF.Services/Claims/EBilling/IndexService.cs