SAIF.Business.View.Provider operations and processes¶
This page is the operation catalog and cross-operation hub for SAIF.Business.View.Provider. The library exposes nine read-only retrieval and search operations covering providers, provider locations and their addresses/relationships/ineligibility periods, provider tax IDs, provider type reference data, a dynamic provider search, and a set of provider-location ancillary reference lists (MCO enrollments, DCBS cost charges, offered services, and service contracts). Every operation in this library is retrieve-only — no operation persists changes back to the database. 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 |
|---|---|---|---|---|---|---|---|
| Provider retrieval | Retrieve a single provider by ID or primary tax ID, or a filtered collection of providers | clsProvider.GetProvider(dpi, providerID), clsProvider.GetProvider(dpi, primaryTaxID), or clsProviderCollection.GetProviderCollection/GetProvidersUsingWhere |
Provider ID (Decimal) or primary tax ID (String); optional dynamic WHERE fragment for the collection path |
Populated clsProvider or clsProviderCollection |
None catalogued* | PROVIDER, PROVIDER_TAX_ID | SQL-003, SQL-004, SQL-007 |
| Provider location retrieval | Retrieve a single provider location by ID, or all locations for a provider or provider type, with lazy-loaded child data | clsProviderLocation.GetProviderLocation(dpi, locationID), or clsProviderLocationCollection.GetProviderLocations(dpi, providerID)/GetProviderLocationsByType(dpi, typeCode) |
Provider location ID, provider ID, or provider type code | Populated clsProviderLocation or clsProviderLocationCollection, with lazy-load access to address, relationship, ineligibility-period, type, and ancillary data |
None catalogued* | PROVIDER_LOCATION | SQL-010, SQL-011, SQL-012 |
| Provider address retrieval | Retrieve the address collection for a provider location, or resolve a single child/parent billing address | clsProviderAddressCollection.GetProviderAddressCollection(dpi, locationID), or clsProviderAddress.GetAddress(...) static overloads |
Provider location ID | Populated clsProviderAddressCollection, or a single resolved clsProviderAddress |
None catalogued* | PROVIDER_LOCATION, PROVIDER_ADDRESS | SQL-005, SQL-006 |
| Provider relationship retrieval | Retrieve provider-location relationships where the given location is the parent or the child | clsProviderRelationshipCollection.GetChildProviderRelationshipCollection(dpi, locationID)/GetParentProviderRelationshipCollection(dpi, locationID) |
Provider location ID | Populated clsProviderRelationshipCollection |
None catalogued* | PROVIDER_LOCATION, PROVIDER_RELATIONSHIP | SQL-013, SQL-014 |
| Provider ineligibility period retrieval | Retrieve a single ineligibility period record, or all ineligibility periods for a provider location | clsProviderIneligibilityPeriod.GetProviderIneligibilityPeriod(dpi, periodID), or clsProviderIneligibilityPeriodCollection.GetProviderIneligibilityPeriodCollection(dpi, locationID) |
Ineligibility period ID, or provider location ID | Populated clsProviderIneligibilityPeriod or clsProviderIneligibilityPeriodCollection |
None catalogued* | PROVIDER_INELIG_PERIOD | SQL-008, SQL-009 |
| Provider tax ID retrieval | Retrieve the tax ID records associated with a provider (retrieve-only) | clsProviderTaxIDCollection.GetProviderTaxIDs(dpi, providerID), or via clsProvider.TaxIDs |
Provider ID | Populated clsProviderTaxIDCollection |
BR-004 | PROVIDER_TAX_ID | SQL-018 |
| Provider type reference data | Retrieve a single provider type code, or the full provider type reference-data catalog (retrieve-only) | clsProviderType.GetProviderType(dpi, code), or clsProviderTypeCollection.GetProviderTypeCollection(dpi) |
Provider type code, or none | Populated clsProviderType or clsProviderTypeCollection |
BR-001 | PROVIDER_TYPE_CODE | SQL-019, SQL-020 |
| Provider search | Dynamically search providers/locations across service type, MCO plan, business/person flag, tax ID, other identifier, name, address, and phone filters | clsProviderSearch.SearchCriteria populated, then searchForProvider() |
Service type, MCO plan, business/person flag, tax ID, other ID, provider name, type, street, city, state, zip, area code, phone (all optional) | clsProviders collection of clsSearchResults, capped at 300 rows |
BR-003 | PROVIDER_LOCATION, PROVIDER_TYPE_CODE, PROVIDER_ADDRESS, PROVIDER_TAX_ID, PROVIDER_IDENTITY, PROVIDER_SERVICE, MCO_PROVIDER | SQL-015 |
| Provider location ancillary data retrieval | Retrieve MCO enrollments, DCBS cost charges, offered services, and service contracts for a provider location | New clsMCOProviderList/clsDCBSCostChargeList/clsProviderServiceList/clsProviderServiceContractList(dpi, locationID), or via clsProviderLocation lazy-load properties |
Provider location ID; optional expiration offset for service contracts | Populated clsMCOProviderList, clsDCBSCostChargeList, clsProviderServiceList, or clsProviderServiceContractList |
BR-002 | PROVIDER_DCBS_COST_CHARGE, MCO_PROVIDER, PROVIDER_SERVICE_CODE, PROVIDER_SERVICE, PROVIDER_SERVICE_CONTRACT | SQL-001, SQL-002, SQL-016, SQL-017 |
Process flow diagram¶
The following diagram shows how the nine operations relate: a provider or provider location is retrieved first, and every other operation either resolves a related provider aspect from a location ID or runs independently as a dynamic search.
flowchart TD
Start([Caller requests provider data]) --> Which{Retrieval path?}
Which -->|By provider ID or tax ID| Provider[Provider retrieval]
Which -->|By location, provider, or type| Location[Provider location retrieval]
Which -->|Dynamic filters| Search[Provider search]
Provider --> TaxID[Provider tax ID retrieval]
Location --> Address[Provider address retrieval]
Location --> Relationship[Provider relationship retrieval]
Location --> Inelig[Provider ineligibility period retrieval]
Location --> Type[Provider type reference data]
Location --> Ancillary[Provider location ancillary data retrieval]
Search --> Results([Capped result set returned])
Provider --> Done1([Populated object returned])
TaxID --> Done1
Address --> Done2([Populated object returned])
Relationship --> Done2
Inelig --> Done2
Type --> Done2
Ancillary --> Done2
Database interactions¶
The following table summarizes which operations read from the database. Per-step SQL and table citations live in each operation's detail page under operations/.
Failure and edge-case behavior¶
- Every operation in this library is retrieve-only; none persists changes. Two operations (provider type reference data, provider tax ID retrieval) enforce this structurally by throwing from every SQL accessor except
RetrieveSQL(BR-001, BR-004); the rest simply have no create/update/delete implementation. - Retrieve paths generally return an empty or unfilled object when no row matches, rather than raising a not-found error; callers must check the populated state themselves.
- Provider search caps its result set at 300 rows and silently truncates further matches (BR-003); detailed behavior is documented on the provider search page.
- Provider service contract retrieval excludes contracts expired beyond a caller-adjustable offset window, defaulting to 721 days (BR-002).
- The provider-location ancillary data operations resolve MCO plan references through
GetMCOInfo, a call not defined anywhere in this library's own source; the underlying dependency could not be identified.** clsProviderLocation.IneligibilityPeriodsre-retrieves from the database on every property read rather than caching, unlike the other lazy-load properties on that class.*
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¶
Business\SAIF.Business.View.Provider\clsProvider.vbBusiness\SAIF.Business.View.Provider\clsProviderCollection.vbBusiness\SAIF.Business.View.Provider\clsProviderAddress.vbBusiness\SAIF.Business.View.Provider\clsProviderAddressCollection.vbBusiness\SAIF.Business.View.Provider\clsProviderLocation.vbBusiness\SAIF.Business.View.Provider\clsProviderLocationCollection.vbBusiness\SAIF.Business.View.Provider\clsMCOProvider.vbBusiness\SAIF.Business.View.Provider\clsDCBSCostCharge.vbBusiness\SAIF.Business.View.Provider\clsProviderServices.vbBusiness\SAIF.Business.View.Provider\clsProviderServiceContract.vbBusiness\SAIF.Business.View.Provider\clsProviderRelationship.vbBusiness\SAIF.Business.View.Provider\clsProviderRelationshipCollection.vbBusiness\SAIF.Business.View.Provider\clsProviderIneligibilityPeriod.vbBusiness\SAIF.Business.View.Provider\clsProviderIneligibilityPeriodCollection.vbBusiness\SAIF.Business.View.Provider\clsProviderTaxID.vbBusiness\SAIF.Business.View.Provider\clsProviderTaxIDCollection.vbBusiness\SAIF.Business.View.Provider\clsProviderType.vbBusiness\SAIF.Business.View.Provider\clsProviderTypeCollection.vbBusiness\SAIF.Business.View.Provider\clsProviderSearch.vb