---
title: IProviderQueryProvider
summary: API reference for IProviderQueryProvider.
status: draft
owner: SAIF.Core documentation team
last_reviewed: 2026-09-24
library: SAIF.Data
reference_type: package
---

# IProviderQueryProvider

Contract implemented by `ProviderQueryProvider`.

## Purpose
- Defines the members that `ProviderQueryProvider` must provide to callers of this abstraction.

## Context
- Namespace: `SAIF.Data.Queries`
- Assembly/package: `SAIF.Data`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| GetProviderAddressLastUpdateDate | `DateTime GetProviderAddressLastUpdateDate()` | Retrieves provider address last update date.* |
| GetAllActiveProviderAddressesForUpdateDate | `IEnumerable<BatchProviderAddress> GetAllActiveProviderAddressesForUpdateDate(DateTime lastUpdateDate)` | Retrieves all active provider addresses for update date.* |
| GetProvider | `Provider GetProvider(long providerId)` | Retrieves provider.* |
| GetProviderByTaxId | `Provider GetProviderByTaxId(string taxId, bool includeNonPrimaryTaxIds = false)` | Retrieves provider by tax id.* |
| GetLocation | `ProviderLocation GetLocation(long locationId)` | Retrieves location.* |
| GetProviderAddresses | `IEnumerable<ProviderAddress> GetProviderAddresses(long providerId)` | Retrieves provider addresses.* |
| GetProviderAddresses | `IEnumerable<ProviderAddress> GetProviderAddresses(long providerId, string addressType, bool includeExpired = false)` | Retrieves provider addresses.* |
| GetProviderPaymentAddresses | `IEnumerable<ProviderAddress> GetProviderPaymentAddresses(long providerId, bool includeExpired = false)` | Retrieves provider payment addresses.* |
| GetProviderPhysicalAddresses | `IEnumerable<ProviderAddress> GetProviderPhysicalAddresses(long providerId)` | Retrieves provider physical addresses.* |
| GetProviderPhysicalAddresses | `IEnumerable<ProviderAddress> GetProviderPhysicalAddresses(long providerId, bool includeExpired)` | Retrieves provider physical addresses.* |
| GetProviderLocationAddresses | `IEnumerable<ProviderAddress> GetProviderLocationAddresses(long providerLocationId, bool includeExpired = false)` | Retrieves provider location addresses.* |
| GetProviderLocationAddresses | `IEnumerable<ProviderAddress> GetProviderLocationAddresses(long providerLocationId, string addressType, bool includeExpired = false)` | Retrieves provider location addresses.* |
| GetProviderLocationCorrespondenceAddresses | `IEnumerable<ProviderAddress> GetProviderLocationCorrespondenceAddresses(long providerLocationId)` | Retrieves provider location correspondence addresses.* |
| GetProviderLocationCorrespondenceAddresses | `IEnumerable<ProviderAddress> GetProviderLocationCorrespondenceAddresses(long providerLocationId, bool includeExpired)` | Retrieves provider location correspondence addresses.* |
| GetProviderLocationPaymentAddresses | `IEnumerable<ProviderAddress> GetProviderLocationPaymentAddresses(long providerLocationId)` | Retrieves provider location payment addresses.* |
| GetProviderLocationPaymentAddresses | `IEnumerable<ProviderAddress> GetProviderLocationPaymentAddresses(long providerLocationId, bool includeExpired)` | Retrieves provider location payment addresses.* |
| GetProviderLocationPhysicalAddresses | `IEnumerable<ProviderAddress> GetProviderLocationPhysicalAddresses(long providerLocationId, bool includeExpired = false)` | Retrieves provider location physical addresses.* |
| GetBillProviderLocationIds | `IEnumerable<long> GetBillProviderLocationIds(long claimId)` | Retrieves bill provider location ids.* |
| GetProviderIdentitiesByNpi | `IEnumerable<ProviderIdentity> GetProviderIdentitiesByNpi(string nationalProviderId)` | Retrieves provider identities by npi.* |
| GetExpiredRelationshipsOnOrAfterDate | `IEnumerable<ProviderRelationship> GetExpiredRelationshipsOnOrAfterDate(DateTime effectiveDate)` | Retrieves expired relationships on or after date.* |
| GetActiveWorkingRelationshipsForProvider | `IEnumerable<ProviderRelationship> GetActiveWorkingRelationshipsForProvider(long providerLocationId)` | Retrieves active working relationships for provider.* |
| GetWorkingProviderRelationshipsByParentLocation | `IEnumerable<ProviderRelationship> GetWorkingProviderRelationshipsByParentLocation(long providerLocationId, DateTime serviceDate, bool includeExpired = false)` | Retrieves working provider relationships by parent location.* |
| GetRenderingProviderLocationsByNpi | `IEnumerable<ProviderLocation> GetRenderingProviderLocationsByNpi(string nationalProviderId, long providerLocationId, DateTime serviceDate)` | Retrieves rendering provider locations by npi.* |
| GetProviderMCOPlans | `IEnumerable<MCOProvider> GetProviderMCOPlans(long providerLocationId)` | Retrieves provider MCO plans.* |
| IsProviderInMco | `bool IsProviderInMco(string mcoPlanId, long providerLocationId, DateTime serviceDate)` | Indicates whether provider in mco.* |
| HasActiveRelationship | `bool HasActiveRelationship(long providerLocationId, long parentProviderLocationId)` | Indicates whether active relationship.* |

## Behavioral notes
- As an interface, this type defines no executable behavior of its own; behavior is determined by its implementation(s).*

## Constraints and usage notes
- Callers should depend on this interface rather than the concrete implementation(s) (`ProviderQueryProvider`) to preserve testability.*

> **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
- `Data/SAIF.Data/Queries/IProviderQueryProvider.cs`
