Skip to content

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

Operation SQL Tables Type
Retrieve a provider by ID or primary tax ID SQL-PRV-01, SQL-PRV-01b PROVIDER, PROVIDER_TAX_ID Read
Retrieve a provider location and its lazily-loaded graph SQL-PLOC-01 PROVIDER_LOCATION Read
Retrieve provider locations by provider or by provider type SQL-PLOC-02, SQL-PLOC-03 PROVIDER_LOCATION Read
Load and select a provider-location address SQL-PADR-01 PROVIDER_LOCATION, PROVIDER_ADDRESS Read
Load provider relationships (parents or children) SQL-PREL-01, SQL-PREL-02 PROVIDER_LOCATION, PROVIDER_RELATIONSHIP Read
Load provider ineligibility periods SQL-PINE-01, SQL-PINE-02 PROVIDER_INELIG_PERIOD Read
Load a provider type / all provider types SQL-PTYP-01, SQL-PTYP-02 PROVIDER_TYPE_CODE Read
Load provider tax IDs SQL-PTAX-01 PROVIDER_TAX_ID Read
Search for provider locations SQL-SRCH-01 PROVIDER_LOCATION, PROVIDER_TYPE_CODE, PROVIDER_ADDRESS, PROVIDER_TAX_ID, PROVIDER_IDENTITY, PROVIDER_SERVICE, MCO_PROVIDER Read
Load DCBS cost-charge factors SQL-DCBS-01 PROVIDER_DCBS_COST_CHARGE Read
Load MCO enrollments SQL-MCO-01 MCO_PROVIDER Read
Load provider services and service contracts SQL-PSVC-01, SQL-PSVC-02 PROVIDER_SERVICE, PROVIDER_SERVICE_CODE, PROVIDER_SERVICE_CONTRACT Read
Retrieve a set of providers SQL-PRV-02, SQL-PRV-02b PROVIDER, PROVIDER_TAX_ID Read

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.BuildSQLWhere concatenates 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.Criteria throws InvalidSQLProperty on all five SQL properties, so a single relationship can never be retrieved directly through the portal.**
  • SetPlan throws ApplicationException when an MCO plan ID does not match the plan already assigned to an enrollment or service contract (BR-MCO-001).

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