SAIF.Business.View.Provider 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/.
Operation catalog¶
| Operation | Intent | Trigger | Inputs | Outputs | Rules | Tables | SQL |
|---|---|---|---|---|---|---|---|
| Retrieve a provider by ID or primary tax ID | Load a provider aggregate root read-only | Caller request (e.g. location navigation) | IDataPortalInfo, provider ID or primary tax ID |
clsProvider (ReadOnly = True) |
BR-PRV-001, BR-PRV-004 | PROVIDER | SQL-PRV-01, SQL-PRV-01b |
| Retrieve a provider location and its lazily-loaded graph | Load one provider location and expose lazy navigation properties | Caller request (e.g. LegalManagerBase.CurrentProviderId) |
IDataPortalInfo, provider-location ID |
clsProviderLocation |
BR-PLOC-001, BR-PLOC-002, BR-PLOC-003 | PROVIDER_LOCATION | SQL-PLOC-01 |
| Retrieve provider locations by provider or by provider type | Load a set of provider locations for a provider or a provider type | clsProvider.ProviderLocations; clsRequestManager.ProviderList |
IDataPortalInfo, provider ID or provider type code |
clsProviderLocationCollection |
BR-PLOC-004 | PROVIDER_LOCATION | SQL-PLOC-02, SQL-PLOC-03 |
| Load and select a provider-location address | Load addresses for a location and select the best-available address by type | clsProviderLocation.Addresses; payee-address resolution |
IDataPortalInfo, provider-location ID, optional address type |
clsProviderAddressCollection, clsProviderAddress |
BR-PADR-001 … BR-PADR-006 | PROVIDER_ADDRESS | SQL-PADR-01 |
| Load provider relationships (parents or children) | Load parent or child relationships for a provider location | clsProviderLocation.ChildRelationships / ParentRelationships |
IDataPortalInfo, provider-location ID |
clsProviderRelationshipCollection |
BR-PREL-001 … BR-PREL-004 | PROVIDER_RELATIONSHIP | SQL-PREL-01, SQL-PREL-02 |
| Load provider ineligibility periods | Load ineligibility windows for a location or a single period | clsProviderLocation.IneligibilityPeriods |
IDataPortalInfo, provider-location ID or ineligibility-period ID |
clsProviderIneligibilityPeriodCollection, clsProviderIneligibilityPeriod |
BR-PINE-001 | PROVIDER_INELIG_PERIOD | SQL-PINE-01, SQL-PINE-02 |
| Load a provider type / all provider types | Load one provider type or the full type lookup list | clsProviderLocation.ProviderType |
IDataPortalInfo, provider type code (optional) |
clsProviderType, clsProviderTypeCollection |
BR-PLOC-003 | PROVIDER_TYPE_CODE | SQL-PTYP-01, SQL-PTYP-02 |
| Load provider tax IDs | Load tax-ID registrations for a provider | clsProvider.TaxIDs; clsProvider.PayeeAddress |
IDataPortalInfo, provider sequence number |
clsProviderTaxIDCollection |
BR-PRV-002 | PROVIDER_TAX_ID | SQL-PTAX-01 |
| Search for provider locations | Multi-criteria search across provider locations | Caller populates SearchCriteria, invokes searchForProvider |
clsSearchCriteria (name, tax ID, other ID, type, service type, MCO name, business/person, address, phone) |
Providers (clsProviders of clsSearchResults) |
BR-SRCH-001 … BR-SRCH-008 | PROVIDER_LOCATION | SQL-SRCH-01 |
| Load DCBS cost-charge factors | Load DCBS cost-to-charge factors for a location | clsProviderLocation.DCBSCostCharges |
IDataPortalInfo, provider-location ID |
clsDCBSCostChargeList |
BR-DATE-001 | PROVIDER_DCBS_COST_CHARGE | SQL-DCBS-01 |
| Load MCO enrollments | Load MCO plan enrollments for a location | clsProviderLocation.MCOList |
IDataPortalInfo, provider-location ID |
clsMCOProviderList |
BR-MCO-001, BR-DATE-001 | MCO_PROVIDER | SQL-MCO-01 |
| Load provider services and service contracts | Load service-code assignments and service contracts for a location | clsProviderLocation.Services / ServiceContracts |
IDataPortalInfo, provider-location ID, optional offset (default 721 days) |
clsProviderServiceList, clsProviderServiceContractList |
BR-PSVC-001, BR-MCO-001 | PROVIDER_SERVICE, PROVIDER_SERVICE_CONTRACT | SQL-PSVC-01, SQL-PSVC-02 |
| Retrieve a set of providers | Load a set of providers by tax-ID list or a caller-supplied WHERE clause | GetProviderCollection / GetProvidersUsingWhere |
IDataPortalInfo, tax-ID array or WHERE clause string |
clsProviderCollection |
BR-PRV-003 | PROVIDER | SQL-PRV-02, SQL-PRV-02b |
Process flow diagram¶
The following diagram visualizes the general retrieval flow across the portal/criteria path, the direct-query path, and the search engine.
flowchart TD
Start([Caller request]) --> Kind{Which access style?}
Kind -->|Portal/criteria object| Criteria[Build Criteria<br>e.g. clsProvider.GetProvider]
Criteria --> Portal[IDataPortalInfo.DataAccessLayer.RetrieveObject]
Portal --> Before[BeforeRetrieve<br>bind parameters]
Before --> After[AfterRetrieve<br>Fill / MarkOld]
After --> Result1([Business object returned])
Kind -->|Direct-query list| Ctor[List constructor<br>e.g. clsDCBSCostChargeList]
Ctor --> Helper[SqlHelper.ResultSetQuery]
Helper --> Materialize[Materialize rows into list]
Materialize --> Result2([Self-loaded list returned])
Kind -->|Search| SearchCriteria[clsSearchCriteria populated]
SearchCriteria --> SearchExec[searchForProvider<br>dynamic SQL, up to 13 binds]
SearchExec --> Cap{Rows > 299?}
Cap -->|Yes| Truncate(["Stop loading, discard<br>remainder"])
Cap -->|No| Result3(["Providers / clsSearchResults<br>returned"])
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/.
Failure and edge-case behavior¶
- No rows returned by a single-object retrieval (e.g.
SQL-PRV-01,SQL-PLOC-01): the object keeps default field values (e.g.ProviderID = 0), which downstream rule checks such as BR-PLOC-002 then detect as invalid. - Provider search (SQL-SRCH-01) silently stops loading once results exceed 299 rows (BR-SRCH-007); no truncation warning reaches the caller.
clsProviderCollection.Criteria.BuildSQLWhereconcatenates a tax-ID list or a caller-supplied WHERE clause directly into SQL text with no bind variables (SQL-PRV-02, SQL-PRV-02b) — an unbound WHERE clause is a SQL-injection risk if a caller passes untrusted input (BR-PRV-003).clsProviderRelationship.CriteriathrowsInvalidSQLPropertyon all five SQL properties, so a single relationship can never be retrieved directly through the portal.**SetPlanthrowsApplicationExceptionwhen an MCO plan ID does not match the plan already assigned to an enrollment or service contract (BR-MCO-001).
Related documentation¶
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¶
SAIF.Business.View.Provider/clsProvider.vbSAIF.Business.View.Provider/clsProviderCollection.vbSAIF.Business.View.Provider/clsProviderLocation.vbSAIF.Business.View.Provider/clsProviderLocationCollection.vbSAIF.Business.View.Provider/clsProviderAddress.vbSAIF.Business.View.Provider/clsProviderAddressCollection.vbSAIF.Business.View.Provider/clsProviderRelationship.vbSAIF.Business.View.Provider/clsProviderRelationshipCollection.vbSAIF.Business.View.Provider/clsProviderIneligibilityPeriod.vbSAIF.Business.View.Provider/clsProviderIneligibilityPeriodCollection.vbSAIF.Business.View.Provider/clsProviderTaxID.vbSAIF.Business.View.Provider/clsProviderTaxIDCollection.vbSAIF.Business.View.Provider/clsProviderType.vbSAIF.Business.View.Provider/clsProviderTypeCollection.vbSAIF.Business.View.Provider/clsProviderSearch.vbSAIF.Business.View.Provider/clsDCBSCostCharge.vbSAIF.Business.View.Provider/clsMCOProvider.vbSAIF.Business.View.Provider/clsProviderServices.vbSAIF.Business.View.Provider/clsProviderServiceContract.vb