---
title: ProviderContactBuilder
summary: API reference for ProviderContactBuilder.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-24
library: SAIF.Services
reference_type: package
---

# ProviderContactBuilder

Builds a `ContactItem` for a provider location (and optional parent provider), resolving the display name (preferring the provider's own business name, then the parent's), the address via `IProviderInformationService.GetProviderAddress` (using the parent ID when a parent is supplied), the provider type description as job title, and phone/fax/toll-free numbers — falling back to the parent location's phone numbers if the provider location itself has none.

## Purpose
- Resolves a provider contact's display name, preferring the provider location's own business name and falling back to the parent provider's business name.
- Resolves the provider's mailing address, using the parent provider location's ID as a secondary lookup key when a parent is supplied.
- Sets the contact's job title from the provider's provider-type description.
- Populates phone, fax, and toll-free numbers from the parent provider location first, falling back to the provider location's own numbers only if the parent yielded none.

## Context
- Namespace: `SAIF.Services.Claims.Information.Api`
- Assembly/package: `SAIF.Services` (packaged inside the `SAIF.SAIFCode.Core` NuGet package)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| ProviderContactBuilder(service) | `public ProviderContactBuilder(IProviderInformationService service)` | Stores the provider-information service used to resolve addresses. |
| BuildContact(provider, parent) | `public ContactItem BuildContact(DataModel.ProviderLocation provider, DataModel.ProviderLocation parent)` | Returns `null` if `provider` is null; otherwise builds a `ContactItem` with resolved name, address, job title, and phone numbers (parent numbers preferred, falling back to the provider's own numbers). |

## Behavioral notes
- Phone-number resolution order is parent-first: `AddPhones(parent, contact)` runs before the provider's own numbers are added, and the provider's numbers are only added if the contact still has no phone numbers after processing the parent.
- Used by both `AttendingPhysicianNodeBuilder` and `WorkerRepresentativeNodeBuilder` to build consistent provider/representative contact records.

## Constraints and usage notes
- `BuildContact` returns `null` for a null `provider` argument, so callers must null-check the result before use.

## Sources
- Services/SAIF.Services/Claims/Information/Api/ProviderContactBuilder.cs
