---
title: SAIF.Services dependencies
summary: Internal and external dependencies for this library.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-24
library: SAIF.Services
reference_type: package
---

# SAIF.Services dependencies

SAIF.Services depends on five in-repo libraries for contracts, domain logic, and persistence, plus a same-repo web-proxies library for outbound HTTP calls, and pulls in a broad set of external NuGet packages spanning DI/mapping/validation infrastructure, NHibernate/Oracle data access, and integration clients for OnBase imaging, PDF merging, and document management; it is itself packaged into the `SAIF.SAIFCode.Core` NuGet package alongside its own dependencies and is consumed by `Web/SAIF.Web.Mvc5` and `Tests/SAIF.Services.Tests`.

## Internal dependencies

| Dependency | Reference Type | Usage |
| --- | --- | --- |
| [SAIF.SAIFCode.Core](../saif-saifcode-core/overview.md) | Project Reference | Service interfaces, DTOs, and security role constants (`SAIF.Core.Contracts.*`) implemented by nearly every public service class |
| [SAIF.Domain](../saif-domain/overview.md) | Project Reference | Domain operations delegated to from services, for example `Bill.ModifyStatus/SendPend/Approve/SendToAudit`, `BillRegenerator.Regenerate`, `GenerateCbpBills.Generate`, `EobBuilder.GenerateEobs`, `File837Extractor.ProcessFile`, `BillAssignment`, `PatientIndexer`, `ProviderIndexerV2`, `BillServiceIndexer`, `Batch`, `CertificateHolder.Expire/Supersede/Reinstate`, `PacketManager.CreatePackets`, `Claim.GetSecurityAttributes` |
| [SAIF.Data](../saif-data/overview.md) | Project Reference | NHibernate entities and query providers (`BillQueryProvider`, `ClaimPaymentQueryProvider`, `CertificateHolderQueryProvider`, `LocationQueryProvider`, `IClaimQueryProvider`, `IPolicyQueryProvider`, and others) |
| [SAIF.Data.NHibernate](../saif-data-nhibernate/overview.md) | Project Reference | Repositories and unit-of-work implementation (`IUnitOfWork.GetRepository<T>()`, `NHibernateUnitOfWork`, `IClaimBillEntryRepository`, Investigations repositories) |
| [SAIF.Data.Guidewire](../saif-data-guidewire/overview.md) | Project Reference | Guidewire ClaimCenter clients: `IClaimDataApiClient`, `ICCClaimApiService`, `IFinancialDataApiClient` (`CreateCheckAsync`, `CreateRecoveryAsync`, `GetBillDetailsForCheckNumber`, `GetPaymentsByInvoiceNumber`), `IMedicalBillingApiService` |
| [SAIF.Services.Web.Proxies](../saif-services-web-proxies/overview.md) | Project Reference | Web proxies used by services for outbound HTTP integrations |
| SAIF.Framework.Core | NuGet Package | `IEnvironmentService`, `IUnitOfWork`, and other framework abstractions |
| SAIF.Framework.Common | NuGet Package | Shared framework utilities |
| SAIF.Framework.Common.Files | NuGet Package | File-handling utilities |
| SAIF.Framework.Data.NHibernate | NuGet Package | `RepositoryBase<T>` and NHibernate session/unit-of-work framework support |
| SAIF.HashUtil | NuGet Package | Hashing utility used by services* |
| SAIF.Web.API.Clients | NuGet Package | Shared HTTP API client infrastructure* |
| SAIF.Shared.CompareUtilities | NuGet Package | Comparison utilities* |
| SAIF.DocumentManagement | NuGet Package | Document management integration |
| ImagingAPI.Client | NuGet Package | OnBase imaging client (`ImagingClient`: GetImage, GetImageByTowId, GetImages, Upload, SaveCrossReference) |
| PdfAPI.Client | NuGet Package | PDF merge client (`IPdfClient.Merge`) |

**Consumers of this library:** `Web/SAIF.Web.Mvc5` and `Tests/SAIF.Services.Tests`.

## External dependencies
| Dependency | Version | Usage |
| --- | --- | --- |
| Autofac | 3.5.2 | Referenced for DI attribute/type support; this library performs no container registration itself* |
| AutoMapper | 2.2.1 | Static DTO mapping configuration (304 `Mapper.CreateMap` call sites) in per-area `*MappingHelper` classes |
| FluentValidation | 5.5 | `AbstractValidator<T>` validators co-located with services |
| log4net | 2.0.5 | Logging |
| Newtonsoft.Json | 8.0.3 | JSON serialization (for example dynamic document-type lists) |
| RestSharp | 106.12 | REST client usage for external integrations |
| FluentNHibernate | 2.0.1 | NHibernate mapping support (mappings themselves live in SAIF.Data.NHibernate) |
| NHibernate | 4.0.3.4000 | ORM used through `IUnitOfWork.GetRepository<T>()` |
| Iesi.Collections | (bundled with NHibernate) | NHibernate collection support |
| Oracle.ManagedDataAccess | 21.5.0 | Oracle database provider evidence for the underlying database engine |
| iTextSharp | 5.5.11 | PDF generation/manipulation |
| Microsoft.AspNet.Razor / WebPages | 3.2.7 | Razor templating support |
| System.IO.Abstractions | 13.2.47 | Filesystem abstraction for testability |
| System.Linq.Dynamic.Core | 1.2.18 | Dynamic LINQ query construction |
| System.Text.Json | 6 | JSON serialization |
| Microsoft.Bcl.AsyncInterfaces | 8 | Async interface polyfills |

BCL references also include `System.ServiceModel`, `System.Web.Services` (the CleanAddress ASMX proxy), and `System.Activities`.

## API dependencies
| API / system | Client / integration point | Usage |
| --- | --- | --- |
| Guidewire ClaimCenter | `IClaimDataApiClient`, `ICCClaimApiService`, `IFinancialDataApiClient` (SAIF.Data.Guidewire) | Claim and financial-transaction data (checks, recoveries, bill/payment lookups) |
| OnBase imaging | `ImagingClient` (ImagingAPI.Client) | Retrieve, upload, and cross-reference document images across Claims, Legal, and Collections areas |
| PDF merge API | `IPdfClient.Merge` (PdfAPI.Client) | Merge generated PDF documents |
| CleanAddress | ASMX proxy `clsCAServices` (`Utilities/CleanAddress/*`, `Web References/CleanAddressSvc`) | Address verification/correction; analyzed separately in `cleanaddresssvc-analysis.md` |
| Email | `IEmailService.SendEmail` | Notification emails across Legal, Claims, and Collections areas |

## Dependency risks and notes
- **No DI registration in this library.** Services are constructor-injected and presumably registered by the host (`Web/SAIF.Web.Mvc5`)*; some classes bypass this and construct query providers directly with `new` (`BillQueryProvider`, `ClaimPaymentQueryProvider`, `CertificateHolderQueryProvider`, `LocationQueryProvider`, `WindowsEnvironmentService`), which is an internal coupling risk rather than a formal dependency.
- **This library holds no connection strings.** Database connectivity is resolved entirely through SAIF.Data.NHibernate/SAIF.Framework.Data.NHibernate at the host layer, per `saif-services-db-analysis.md` and `saif-services-config-analysis.md`.
- **Credential-bearing transitive configuration keys** (`medicalbillingapi.creds`, `cc.gwcreds`, `cc.providerdataapi.gwcreds`) are read through plain-text `GetConfigSetting` rather than a secure-settings API, per `saif-services-config-analysis.md`.
- **CleanAddress eligibility conflict.** A sibling proxy with the same functional name exists in `Services/SAIF.Services.CleanAddress` (VB); the CleanAddressSvc consumed here is analyzed separately and this overlap is recorded as an open question in `saif-services-analysis.md`.
- **Package distribution.** SAIF.Services has no pipeline or nuspec of its own; it ships inside `SAIF.SAIFCode.Core` (`Core/SAIF.Core/SAIF.SAIFCode.Core.nuspec`), which also carries SAIF.Data, SAIF.Data.Guidewire, SAIF.Data.NHibernate, SAIF.Domain, SAIF.Services.Web.Proxies, and SAIF.Services.ClaimInfoApi.Core.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Configuration](configuration.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Security and authorization](security-authorization.md)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.md)
- [API reference](api/index.md)

## Sources
- `Services/SAIF.Services/SAIF.Services.csproj`
- `Services/SAIF.Services/packages.config`
- `Core/SAIF.Core/SAIF.SAIFCode.Core.nuspec`
