Skip to content

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 Project Reference Service interfaces, DTOs, and security role constants (SAIF.Core.Contracts.*) implemented by nearly every public service class
SAIF.Domain 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 Project Reference NHibernate entities and query providers (BillQueryProvider, ClaimPaymentQueryProvider, CertificateHolderQueryProvider, LocationQueryProvider, IClaimQueryProvider, IPolicyQueryProvider, and others)
SAIF.Data.NHibernate Project Reference Repositories and unit-of-work implementation (IUnitOfWork.GetRepository<T>(), NHibernateUnitOfWork, IClaimBillEntryRepository, Investigations repositories)
SAIF.Data.Guidewire Project Reference Guidewire ClaimCenter clients: IClaimDataApiClient, ICCClaimApiService, IFinancialDataApiClient (CreateCheckAsync, CreateRecoveryAsync, GetBillDetailsForCheckNumber, GetPaymentsByInvoiceNumber), IMedicalBillingApiService
SAIF.Services.Web.Proxies 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.

Sources

  • Services/SAIF.Services/SAIF.Services.csproj
  • Services/SAIF.Services/packages.config
  • Core/SAIF.Core/SAIF.SAIFCode.Core.nuspec