SAIF.Business.Provider.PaymentPreference operations and processes¶
This page is the operation catalog and cross-operation hub for this library. Each operation's detailed, step-by-step logic lives in its own page under operations/. The library manages a provider location's mail/paperless EOB preference and its EFT (direct-deposit) preference, including assignment/unassignment of payment methods, correspondence-history logging, batch/collection retrieval, and read-only bank-account lookup.
Operation catalog¶
| Operation | Intent | Trigger | Inputs | Outputs | Rules | Tables | SQL |
|---|---|---|---|---|---|---|---|
| EOB preference management | Retrieves, creates, updates, and deletes a provider location's paperless/mail EOB preference | GetProviderEOB(s)/NewProviderEOB(s) → Save() |
ProviderSeqNum, ProviderLocationSeqNum, PaperlessEOBFlag, DefaultPrimaryFlag |
Persisted PROVIDER_EOB_INTERFACE row or InsertError/DBContentionError |
BR-01, BR-02, BR-03, BR-04, BR-05, BR-17, BR-18 | PROVIDER_EOB_INTERFACE | SQL-001, SQL-005, SQL-006, SQL-007, SQL-013, SQL-015 |
| EFT record management | Retrieves, creates, updates, and deletes a provider location's EFT (direct-deposit) record | GetProviderEFT/NewProviderEFT → Save() |
ProviderSeqNum, ProviderLocationSeqNum, ExtUserTypeSeqNum, EffDate, ExpDate |
Persisted PROVIDER_EFT_INTERFACE row or InsertError/DBContentionError |
BR-11, BR-12, BR-13, BR-16 | PROVIDER_EFT_INTERFACE, EXT_USER_TYPE, EXT_USER, PERSON | SQL-003, SQL-008, SQL-014, SQL-016 |
| EFT payment location assignment | Assigns a new direct-deposit/check preference to an EFT record, or unassigns it and revokes the prior authorization | AssignPaymentLocation/UnAssignPaymentLocation |
New clsProviderPaymentPreference, acting user |
Updated ProviderPaymentPreference, EffDate/ExpDate; revoked prior authorization |
BR-08, BR-09, BR-10, BR-11 | PROVIDER_EFT_INTERFACE | SQL-003, SQL-014 |
| EFT correspondence history | Records an EFT authorization-letter correspondence-history event via a stored PL/SQL package | CreateHistory() |
ProviderSeqNum, ProviderLocationSeqNum, EffDate, ExpDate |
Inserted PROVIDER_CORR_HIST row or raised package exception |
PBR-001, PBR-002, PBR-003, PBR-004, PBR-005, PBR-006, PBR-007 | PROVIDER_CORR_HIST, PROVIDER_TAX_ID, PROVIDER | SQL-002 |
| Provider EFT collection retrieval | Retrieves batches of EFT/location records for a provider, or system-wide, and classifies them by assignment status | GetProviderEFTColl/GetAllEFTsColl/GetProviderEFTLocations/GetProviderEFTLocEmails |
ProviderSeqNum (except batch), masking/context flags |
Populated clsProviderEFTCollection; filtered assigned/unassigned views |
BR-06, BR-07, BR-15 | PROVIDER_EFT_INTERFACE, PROVIDER_LOCATION, PROVIDER_ADDRESS, EXT_USER_TYPE, EXT_USER, EMAIL_ADDRESS | SQL-009, SQL-010, SQL-011, SQL-012 |
| Provider bank account retrieval | Retrieves non-deleted bank accounts linked to a provider's payment authorizations and decrypts/masks their fields | GetProviderBankAccounts → field access |
ProviderSeqNum |
Populated clsProviderBankAccountCollection; decrypted/masked field values |
BR-14 | BANK_ACCOUNT, PAYMENT_AUTHORIZATION, PROVIDER_LOCATION | SQL-004 |
Process flow diagram¶
The following diagram visualizes the primary operational flow across operations.
flowchart TD
Start([Provider location payment setup]) --> Choice{Preference type?}
Choice -->|EOB delivery| EOB[EOB preference management]
Choice -->|Payment method| EFT[EFT record management]
EFT --> Assign[EFT payment location assignment]
Assign --> History[EFT correspondence history]
EOB --> Collection[Provider EFT collection retrieval]
Assign --> Collection
Collection --> BankAcct[Provider bank account retrieval]
Inherited operations and processes¶
Operations in this section originate from base classes or services provided by dependency libraries. They are inherited or delegated, not implemented in this library.
From clsProviderPaymentPreference, clsBankAccount (SAIF.Business.Payment.EFT)¶
| Operation | Intent | Provided by | Origin | Embedded in |
|---|---|---|---|---|
| Payment preference selection | Resolves a provider location's current payment-preference type (Check, DirectDeposit, DebitCard, Unspecified) and loads its authorization. | clsProviderPaymentPreference |
SAIF.Business.Payment.EFT |
EFT payment location assignment |
| EFT authorization / consent | Revokes an existing direct-deposit authorization, using an internal or external revocation path depending on the acting user. | clsEFTAuthorization |
SAIF.Business.Payment.EFT |
EFT payment location assignment |
| Bank account management | Resolves and masks a bank account's nickname, routing number, and account number for a given bank account sequence number. | clsBankAccount |
SAIF.Business.Payment.EFT |
Provider bank account retrieval |
Origin: These operations are defined in
SAIF.Business.Payment.EFT, which is documented in the previous format (no per-operation page exists). See Payment preference selection, EFT authorization / consent, and Bank account management in theSAIF.Business.Payment.EFTdocumentation set.
Database interactions¶
The following table summarizes which operations read from or write to the database. Per-step SQL and table citations live in each operation's detail page under operations/.
| Operation | SQL | Tables | Type |
|---|---|---|---|
| EOB preference management | SQL-001, SQL-005, SQL-006, SQL-007, SQL-013, SQL-015 | PROVIDER_EOB_INTERFACE | Read / Write |
| EFT record management | SQL-003, SQL-008, SQL-014, SQL-016 | PROVIDER_EFT_INTERFACE, EXT_USER_TYPE, EXT_USER, PERSON | Read / Write |
| EFT payment location assignment | SQL-003, SQL-014 | PROVIDER_EFT_INTERFACE | Write (via parent EFT save) |
| EFT correspondence history | SQL-002 | PROVIDER_CORR_HIST, PROVIDER_TAX_ID, PROVIDER | Write (stored procedure) |
| Provider EFT collection retrieval | SQL-009, SQL-010, SQL-011, SQL-012 | PROVIDER_EFT_INTERFACE, PROVIDER_LOCATION, PROVIDER_ADDRESS, EXT_USER_TYPE, EXT_USER, EMAIL_ADDRESS | Read |
| Provider bank account retrieval | SQL-004 | BANK_ACCOUNT, PAYMENT_AUTHORIZATION, PROVIDER_LOCATION | Read |
Stored procedure operations¶
Operations implemented in Oracle stored procedures referenced by this library.
| Operation | Description | Source | Link |
|---|---|---|---|
| Insert EFT correspondence history | Resolves the provider's correspondence address and inserts one PROVIDER_CORR_HIST row marked as an EFT authorization-letter event. |
PK83548_PROVIDER_CORR_HIST.EFT_CORR_HIST |
Details |
| Fetch TIN correspondence address | Internal helper that locates the provider's primary tax-ID address effective on a supplied date. | PK83548_PROVIDER_CORR_HIST.FETCH_TIN_ADDRESS |
Details |
| Insert EOB correspondence history | Package sibling that inserts a paperless-EOB correspondence-history row; no call site was found in this library's source.* | PK83548_PROVIDER_CORR_HIST.EOB_CORR_HIST |
Details |
Failure and edge-case behavior¶
- Optimistic concurrency is the dominant failure mode across EOB and EFT persistence: every insert/update/delete checks the affected row count and adds an
InsertError/DBContentionErrorinstead of throwing (BR-03, BR-04, BR-05, BR-12, BR-13). Detailed per-operation behavior is documented on each operation page. clsProviderEOBandclsProviderEFTdiverge on how a retrieved-but-never-persisted row is recognized: EOB relies onUpdateNum = 0to mark itself New (BR-18), while EFT retrieval always marks itself Old regardless ofUpdateNum.- EFT assignment/unassignment and its child payment-preference persistence are only committed when the parent
clsProviderEFT.Save()succeeds; a failed EFT insert/update leaves any staged preference change unsaved. PK83548_PROVIDER_CORR_HIST.EOB_CORR_HISTexists in the Oracle package but was not found to be called anywhere in this library's.vbsource; onlyEFT_CORR_HISTis exercised by this library.*- Bank account retrieval and field decryption is read-only and depends on
SAIF.Business.Payment.EFTand the localSAIFEncrypt.dllfor its underlying implementation; each field access issues its own lookup rather than caching the resolved bank account.*
Related documentation¶
- Index
- Overview
- Architecture
- Dependencies
- Business rules
- Database tables
- SQL catalog
- Procedures
- API reference
- Configuration
Note: Statements marked with
*were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.
Sources¶
Business\SAIF.Business.Provider.PaymentPreference\clsProviderEOB.vbBusiness\SAIF.Business.Provider.PaymentPreference\clsProviderEOBCollection.vbBusiness\SAIF.Business.Provider.PaymentPreference\clsProviderEFT.vbBusiness\SAIF.Business.Provider.PaymentPreference\clsProviderBankAccounts.vb