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 |
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 withnew(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.mdandsaif-services-config-analysis.md. - Credential-bearing transitive configuration keys (
medicalbillingapi.creds,cc.gwcreds,cc.providerdataapi.gwcreds) are read through plain-textGetConfigSettingrather than a secure-settings API, persaif-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 insaif-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
- Overview
- Architecture
- Configuration
- Operations and processes
- Business rules
- Security and authorization
- Database tables
- SQL catalog
- API reference
Sources¶
Services/SAIF.Services/SAIF.Services.csprojServices/SAIF.Services/packages.configCore/SAIF.Core/SAIF.SAIFCode.Core.nuspec