---
title: clsProviderLocation
summary: API reference for clsProviderLocation.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-07-24
library: SAIF.Business.View.Provider
reference_type: package
---

# clsProviderLocation

API reference for clsProviderLocation.

## Purpose
- Business object (implements `iPayee`) representing a single physical/service location for a provider.
- Nested `Criteria` implements `IBusinessCriteria`, supplying full CRUD SQL for provider location records, and is the parent for relationship, ineligibility-period, and provider-type child collections.

## Context
- Namespace: `SAIF.Business.View.Provider`
- Assembly/package: `SAIF.BOF.Business.View.Provider`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| ProviderLocationID | `ReadOnly Property ProviderLocationID() As Decimal` | Returns the unique identifier for this provider location. |
| ProviderID | `ReadOnly Property ProviderID() As Decimal` | Returns the identifier of the provider this location belongs to. |
| Provider | `ReadOnly Property Provider() As clsProvider` | Lazily retrieves and returns the owning `clsProvider` via `clsProvider.GetProvider(...)`. |
| BusinessName | `ReadOnly Property BusinessName() As String Implements iPayee.Name` | Returns the location's business name (also serves as the `iPayee.Name` implementation). |
| Name | `ReadOnly Property Name() As clsName` | Returns the location's structured name. |
| PayeeName | `ReadOnly Property PayeeName() As String` | Returns the payee display name for this location. |
| Addresses | `ReadOnly Property Addresses() As clsProviderAddressCollection` | Lazily retrieves and returns all addresses for this location via `clsProviderAddressCollection.GetProviderAddressCollection(...)`. |
| ActiveAddresses() | `ReadOnly Property ActiveAddresses() As clsProviderAddressCollection` | Returns the addresses active as of `Date.Now` (delegates to `Addresses.ActiveAddresses(Date.Now)`). |
| ActiveAddresses(ActiveDate) | `ReadOnly Property ActiveAddresses(ByVal ActiveDate As Date) As clsProviderAddressCollection` | Returns the addresses active as of the supplied date (delegates to `Addresses.ActiveAddresses(ActiveDate)`). |
| ChildRelationships | `ReadOnly Property ChildRelationships() As clsProviderRelationshipCollection` | Lazily retrieves the relationships where this location is the parent, via `clsProviderRelationshipCollection.GetChildProviderRelationshipCollection(...)`. |
| ParentRelationships | `ReadOnly Property ParentRelationships() As clsProviderRelationshipCollection` | Lazily retrieves the relationships where this location is the child, via `clsProviderRelationshipCollection.GetParentProviderRelationshipCollection(...)`. |
| IneligibilityPeriods | `ReadOnly Property IneligibilityPeriods() As clsProviderIneligibilityPeriodCollection` | Retrieves the ineligibility periods for this location via `clsProviderIneligibilityPeriodCollection.GetProviderIneligibilityPeriodCollection(...)` (not cached — re-queried on each access). |
| IsDuringIneligibilityPeriod | `ReadOnly Property IsDuringIneligibilityPeriod(ByVal effectiveDate As Date) As Boolean` | Returns whether `effectiveDate` falls within any of this location's ineligibility periods. |
| ProviderTypeCode | `ReadOnly Property ProviderTypeCode() As String` | Returns the raw provider type code for this location. |
| ProviderType | `ReadOnly Property ProviderType() As clsProviderType` | Lazily retrieves and returns the `clsProviderType` matching `ProviderTypeCode` via `clsProviderType.GetProviderType(...)`. |
| DCBSCostCharges | `ReadOnly Property DCBSCostCharges() As clsDCBSCostChargeList` | Lazily constructs and returns the DCBS cost-charge list for this location (`New clsDCBSCostChargeList(dpi, ProviderLocationID)`). |
| MCOList | `ReadOnly Property MCOList() As clsMCOProviderList` | Lazily constructs and returns the MCO provider list for this location (`New clsMCOProviderList(dpi, ProviderLocationID)`). |
| Services | `ReadOnly Property Services() As clsProviderServiceList` | Lazily constructs and returns the service list for this location (`New clsProviderServiceList(dpi, ProviderLocationID)`). |
| ServiceContracts | `ReadOnly Property ServiceContracts() As clsProviderServiceContractList` | Lazily constructs and returns the service-contract list for this location (`New clsProviderServiceContractList(dpi, ProviderLocationID)`). |
| ApprovedUser | `ReadOnly Property ApprovedUser() As String` | Returns the user who approved this location. |
| IsApproved | `ReadOnly Property IsApproved() As Boolean` | Returns whether this location is approved. |
| IsBusiness | `ReadOnly Property IsBusiness() As Boolean` | Returns whether this location is flagged as a business. |
| IsCriticalAccessHospital | `ReadOnly Property IsCriticalAccessHospital() As Boolean` | Returns whether this location is flagged as a critical-access hospital. |
| IsIneligible | `ReadOnly Property IsIneligible() As Boolean` | Returns whether this location is currently flagged ineligible. |
| IsPossibleFraud | `ReadOnly Property IsPossibleFraud() As Boolean` | Returns whether this location is flagged as possible fraud. |
| IsPrimaryLocation | `ReadOnly Property IsPrimaryLocation() As Boolean` | Returns whether this location is the provider's primary location. |
| HasRecentActivity | `ReadOnly Property HasRecentActivity() As Boolean` | Returns whether this location has recent activity flagged. |
| Phone / TollFreePhone / TollFreeFax / Fax | `ReadOnly Property Phone() As clsPhone` (and related) | Return the location's phone, toll-free phone, toll-free fax, and fax numbers. |
| WebSiteAddress | `ReadOnly Property WebSiteAddress() As String` | Returns the location's website address. |
| EmailAddress | `ReadOnly Property EmailAddress() As String` | Returns the location's email address. |
| PayeeAddress | `ReadOnly Property PayeeAddress As clsAddress Implements iPayee.Address` | Returns the owning `Provider`'s `PayeeAddress` (delegated `iPayee` implementation). |
| PayeeEmailAddress | `Property PayeeEmailAddress As String Implements iPayee.EmailAddress` | Auto-implemented `iPayee.EmailAddress` property. |
| PayeeID | `ReadOnly Property PayeeID As String Implements iPayee.PayeeID` | Returns `ProviderLocationID.ToString` as the payee identifier. |
| PayeeType | `ReadOnly Property PayeeType As iPayee.PayeeTypes Implements iPayee.PayeeType` | Returns `iPayee.PayeeTypes.Provider`. |
| PayeeTypeCode | `ReadOnly Property PayeeTypeCode As String Implements iPayee.PayeeTypeCode` | Returns the literal payee type code `"PROV"`. |
| PhoneNumber | `ReadOnly Property PhoneNumber As String Implements iPayee.PhoneNumber` | Returns `Phone.FormattedValue`. |
| SSNTaxID | `ReadOnly Property SSNTaxID As String Implements iPayee.SSNTaxID` | Always returns `String.Empty` (provider locations have no SSN/Tax ID of their own). |
| GetProviderLocation | `Shared Function GetProviderLocation(ByVal inDataportal As IDataPortalInfo, ByVal inProviderLocationID As Decimal) As clsProviderLocation` | Retrieves a single provider location by ID through [SQL-010](../../sql/SQL-010-saif-business-view-provider.md). |

## Behavioral notes
- `Provider`, `ProviderType`, `Addresses` are lazily loaded and cached on first access; `IneligibilityPeriods` is re-queried on every access (no caching).
- `AddBusinessRules` registers three rules: `Rule_ValidProviderLocation` (`ProviderLocationID > 0`, Level I), `Rule_ValidProvider` (`Provider.ProviderID > 0`, Level III), and `Rule_ValidProviderTypeCode` (`ProviderType.Code <> String.Empty`, Level III).
- The class implements `iPayee`, delegating most payee-facing members (`Address`, `PayeeID`, `PayeeType`, `PayeeTypeCode`, `PhoneNumber`) to its own properties or literal values; `SSNTaxID` is always empty for a provider location.

## Constraints and usage notes
- Instances are constructed only through `GetProviderLocation(...)`; the `Protected Friend` constructor is not part of the public surface (see Criteria class for retrieval parameters).

## Inherited members (from clsBusinessBase)

This type inherits the following public surface from clsBusinessBase (`Legacy\BusinessObjectFramework\clsBusinessBase.vb`), in addition to the members listed above:

| Member | Signature | Purpose |
| --- | --- | --- |
| MyGuid | `ReadOnly Property MyGuid() As String` | Returns the internal GUID that uniquely identifies this in-memory object instance. |
| IsNew | `ReadOnly Property IsNew() As Boolean` | Indicates whether the object has not yet been persisted. |
| IsDeleted | `ReadOnly Property IsDeleted() As Boolean` | Indicates whether the object is marked for deletion. |
| IsDirty | `Overridable ReadOnly Property IsDirty() As Boolean` | Indicates whether the object (or a child) has unsaved changes. |
| IsValid | `Overridable ReadOnly Property IsValid() As Boolean` | Indicates whether the object currently has no broken validation rules. |
| ValidateOnDelete | `Property ValidateOnDelete As Boolean` | Controls whether validation rules run before a delete operation. |
| Rules | `ReadOnly Property Rules() As clsRulesManager` | Returns the rules manager that tracks broken rules for this object. |
| ErrorCount | `ReadOnly Property ErrorCount() As Integer` | Returns the number of broken error-severity rules. |
| ErrorMessages | `ReadOnly Property ErrorMessages() As String()` | Returns the text of all broken error-severity rules. |
| WarningCount | `ReadOnly Property WarningCount() As Integer` | Returns the number of broken warning-severity rules. |
| WarningMessages | `ReadOnly Property WarningMessages() As String()` | Returns the text of all broken warning-severity rules. |
| InformationalCount | `ReadOnly Property InformationalCount() As Integer` | Returns the number of broken informational-severity rules. |
| InformationalMessages | `ReadOnly Property InformationalMessages() As String()` | Returns the text of all broken informational-severity rules. |
| BeginEdit | `Sub BeginEdit()` | Begins an editable transaction, snapshotting current field values. |
| CancelEdit | `Sub CancelEdit()` | Rolls back field values to the last `BeginEdit` snapshot. |
| ApplyEdit | `Sub ApplyEdit()` | Commits the current edit transaction, discarding the rollback snapshot. |
| Delete | `Sub Delete()` | Marks the object for deletion on the next save. |
| Save | `Overridable Function Save() As Boolean` | Persists the object (insert, update, or delete) through the BOF data portal, if valid. |
| SaveChild | `Overridable Function SaveChild() As Boolean` | Persists the object as a child of a parent object/collection. |
| Clone | `Function Clone() As Object` | Returns a deep copy of the object. |
| XMLElementName | `Property XMLElementName() As String` | Gets or sets the XML element name used when serializing this object. |
| GetDataset | `Sub GetDataset(ByRef inDS As DataSet)` | Populates a `DataSet` with the object's field values. |
| GetDataset (named table) | `Sub GetDataset(ByRef inDS As DataSet, ByVal inTableName As String)` | Populates a `DataSet` table with the given name with the object's field values. |
| GetReportXML | `Function GetReportXML(ByVal inElementName As String) As String` | Returns an XML fragment representing the object using the supplied element name. |
| GetReportXML (default name) | `Function GetReportXML() As String` | Returns an XML fragment representing the object using the default XML element name. |
| ToXml | `Function ToXml() As String` | Serializes the object to XML using the default element name. |
| ToXml (named tag) | `Function ToXml(ByVal inTagName As String) As String` | Serializes the object to XML using the supplied tag name. |
| PreviousLinkItem / NextLinkItem | `ReadOnly Property PreviousLinkItem() As ILinkItem` / `ReadOnly Property NextLinkItem() As ILinkItem` | Returns the adjacent linked-list item for collection traversal. |
| SetValueOnChange | `Function SetValueOnChange(Of T)(ByRef inFieldValue As T, ByVal inSetValue As T, Optional ByVal inMarkDirty As Boolean = True) As Boolean` | Sets a backing field only when the value changes, optionally marking the object dirty. |

## Sources
- `Business\SAIF.Business.View.Provider\clsProviderLocation.vb`
