Skip to content

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/.

Operation SQL Tables Type
Provider retrieval SQL-003, SQL-004, SQL-007 PROVIDER, PROVIDER_TAX_ID Read only
Provider location retrieval SQL-010, SQL-011, SQL-012 PROVIDER_LOCATION Read only
Provider address retrieval SQL-005, SQL-006 PROVIDER_LOCATION, PROVIDER_ADDRESS Read only
Provider relationship retrieval SQL-013, SQL-014 PROVIDER_LOCATION, PROVIDER_RELATIONSHIP Read only
Provider ineligibility period retrieval SQL-008, SQL-009 PROVIDER_INELIG_PERIOD Read only
Provider tax ID retrieval SQL-018 PROVIDER_TAX_ID Read only (retrieve-only criteria)
Provider type reference data SQL-019, SQL-020 PROVIDER_TYPE_CODE Read only (retrieve-only criteria)
Provider search SQL-015 PROVIDER_LOCATION, PROVIDER_TYPE_CODE, PROVIDER_ADDRESS, PROVIDER_TAX_ID, PROVIDER_IDENTITY, PROVIDER_SERVICE, MCO_PROVIDER Read only
Provider location ancillary data retrieval SQL-001, SQL-002, SQL-016, SQL-017 PROVIDER_DCBS_COST_CHARGE, MCO_PROVIDER, PROVIDER_SERVICE_CODE, PROVIDER_SERVICE, PROVIDER_SERVICE_CONTRACT Read only

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.IneligibilityPeriods re-retrieves from the database on every property read rather than caching, unlike the other lazy-load properties on that class.*

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.vb
  • Business\SAIF.Business.View.Provider\clsProviderCollection.vb
  • Business\SAIF.Business.View.Provider\clsProviderAddress.vb
  • Business\SAIF.Business.View.Provider\clsProviderAddressCollection.vb
  • Business\SAIF.Business.View.Provider\clsProviderLocation.vb
  • Business\SAIF.Business.View.Provider\clsProviderLocationCollection.vb
  • Business\SAIF.Business.View.Provider\clsMCOProvider.vb
  • Business\SAIF.Business.View.Provider\clsDCBSCostCharge.vb
  • Business\SAIF.Business.View.Provider\clsProviderServices.vb
  • Business\SAIF.Business.View.Provider\clsProviderServiceContract.vb
  • Business\SAIF.Business.View.Provider\clsProviderRelationship.vb
  • Business\SAIF.Business.View.Provider\clsProviderRelationshipCollection.vb
  • Business\SAIF.Business.View.Provider\clsProviderIneligibilityPeriod.vb
  • Business\SAIF.Business.View.Provider\clsProviderIneligibilityPeriodCollection.vb
  • Business\SAIF.Business.View.Provider\clsProviderTaxID.vb
  • Business\SAIF.Business.View.Provider\clsProviderTaxIDCollection.vb
  • Business\SAIF.Business.View.Provider\clsProviderType.vb
  • Business\SAIF.Business.View.Provider\clsProviderTypeCollection.vb
  • Business\SAIF.Business.View.Provider\clsProviderSearch.vb