ClaimInformationService¶
Implements IClaimInformationService, the broad claim-information read facade used across the platform to answer individual questions about a claim (status, dates, contacts, worker, reserves, conditions, etc.) without requiring callers to assemble a full Claim domain object themselves. Nearly every method constructs a fresh Claim (via IUnitOfWork, IUserProfileService, IClaimQueryProvider, IWorkerQueryProvider, ICCClaimApiService, IClaimDataApiClient) per call rather than caching one, and several contact-related methods delegate to the injected IClaimContactService. Its static constructor registers AutoMapper claim/code-table mappings via ClaimsMappingHelper once per process, and AutoMapper.Mapper.Map is used throughout to project domain objects into API contract types.
Purpose¶
- Answers point queries about a claim (validity, claim ID/number resolution, policy number, security attributes, security overrides) without requiring the caller to build a
Claimobject. - Exposes claim status/type/compensability/work-status/work-release/third-party/vocational/pharmacy-eligibility information as
CodeDescriptionDate/CodeDescriptionDTOs mapped from domain code tables. - Provides claim detail/context DTOs (
ClaimDetail) combining claim, worker, reserves, and cost-category data, tolerating a known data-quality exception ("No row with the given identifier") when resolving MyClaim last-login. - Delegates contact resolution (adjuster, claims assistant, supervisor, vocational adjuster, third-party adjuster, RTW adjuster, policy safety-management consultant) to
IClaimContactService. - Resolves worker demographic/contact information independently of the claim-node API pipeline, including SSN masking and language/contact preferences.
- Computes the claim's last time-loss-type payment amount and date, restricted to TD/VocTD/SupTD payment categories.
Context¶
- Namespace:
SAIF.Services.Claims.Information - Assembly/package:
SAIF.Services(packaged inside theSAIF.SAIFCode.CoreNuGet package)
Public members¶
| Member | Signature | Purpose |
|---|---|---|
| ClaimInformationService(...) | public ClaimInformationService(IUnitOfWork unitOfWork, IUserProfileService profile, IClaimQueryProvider query, IClaimContactService contact, IWorkerQueryProvider workerQueryProvider, ICCClaimApiService claimApiService, IClaimPaymentQueryProvider claimPaymentQueryProvider, IClaimDataApiClient gwClaimDataApiClient) |
Validates required dependencies and stores them for use by all query methods. |
| IsValidClaim(claimId) | public bool IsValidClaim(long claimId) |
Returns whether a claim with the given ID has backing data. |
| IsValidClaim(claimNumber) | public bool IsValidClaim(string claimNumber) |
Returns whether a claim with the given claim number has backing data. |
| GetClaimId(claimNumber) | public long GetClaimId(string claimNumber) |
Resolves a claim number to its internal claim ID, or 0 if the claim has no data. |
| GetPolicyNumberForClaim(claimId) | public long GetPolicyNumberForClaim(long claimId) |
Returns the policy number associated with the claim, or 0 if unavailable. |
| GetSaifClaimNumber(claimId) | public string GetSaifClaimNumber(long claimId) |
Returns the claim's full formatted claim number, or an empty string if the claim has no data. |
| GetClaimNumber(claimId) | public string GetClaimNumber(long claimId) |
Returns the claim's raw claim number, or an empty string if the claim has no data. |
| GetClaimSecurity(claimNumber) | public IClaimSecurityAttributes GetClaimSecurity(string claimNumber) |
Returns the claim's security attributes (secure/conflict flags) looked up by claim number. |
| GetClaimSecurity(claimId) | public IClaimSecurityAttributes GetClaimSecurity(long claimId) |
Returns the claim's security attributes (secure/conflict flags) looked up by claim ID. |
| HasSecurityOverride(claimId, userId) | public bool HasSecurityOverride(long claimId, string userId) |
Returns whether the given user (or the current user if userId is blank) has a security override recorded for the claim; false if the user cannot be resolved to an employee. |
| HasSecurityOverride(claimNumber, userId) | public bool HasSecurityOverride(string claimNumber, string userId) |
Resolves the claim number to a claim ID and delegates to the ID-based overload. |
| GetWorkStatus(claimId) | public ClaimWorkStatus GetWorkStatus(long claimId) |
Returns the claim's current work status mapped to the API contract type. |
| GetWorkStatusInfo(claimId) | public CodeDescriptionDate GetWorkStatusInfo(long claimId) |
Returns the claim's work status as a code/description/date triple, or an empty instance if no status exists. |
| GetWorkReleaseStatus(claimId) | public ClaimWorkReleaseStatus GetWorkReleaseStatus(long claimId) |
Returns the claim's current work-release status mapped to the API contract type. |
| GetWorkReleaseStatusInfo(claimId) | public CodeDescriptionDate GetWorkReleaseStatusInfo(long claimId) |
Returns the claim's work-release status as a code/description/date triple, or an empty instance if no status exists. |
| GetLegalRepresentative(claimId) | public ClaimLegalRepresentative GetLegalRepresentative(long claimId) |
Returns the claim's legal representative mapped to the API contract type. |
| GetClaimSupervisor(claimId) | public ClaimSupervisor GetClaimSupervisor(long claimId) |
Returns the claim's supervisor record. |
| GetRecoverableBalance(claimId) | public decimal GetRecoverableBalance(long claimId) |
Returns the claim's recoverable (overpayment) balance. |
| GetClaimCurrentReserves(claimId) | public Reserves GetClaimCurrentReserves(long claimId) |
Returns the claim's current Guidewire reserves data. |
| GetClaimCostCategoryCodes() | public IEnumerable<CodeDescription> GetClaimCostCategoryCodes() |
Returns the full set of claim cost-category codes mapped to code/description pairs, independent of any specific claim. |
| GetClaimDetail(claimId) | public ClaimDetail GetClaimDetail(long claimId) |
Returns a full ClaimDetail (claim, reserves, cost-category codes, MyClaim last login) for the claim ID, or an empty instance if the claim has no data. |
| GetClaimDetail(claimNumber) | public ClaimDetail GetClaimDetail(string claimNumber) |
Returns a full ClaimDetail for the claim number, or an empty instance if the claim has no data. |
| GetClaimContextData(claimId) | public ClaimDetail GetClaimContextData(long claimId) |
Returns a minimal ClaimDetail (identifier, policy number, worker name only) for the claim ID, or an empty instance if the claim has no data. |
| GetClaimContextData(claimNumber) | public ClaimDetail GetClaimContextData(string claimNumber) |
Returns a minimal ClaimDetail (identifier, policy number, worker name only) for the claim number, or an empty instance if the claim has no data. |
| GetActiveAttendingPhysician(claimId) | public string GetActiveAttendingPhysician(long claimId) |
Returns the claim's current attending physician's name. |
| GetInjuryDate(claimNumber) | public DateTime? GetInjuryDate(string claimNumber) |
Returns the claim's injury date, or null if the claim has no data. |
| GetOdInjuryDate(claimNumber) | public DateTime? GetOdInjuryDate(string claimNumber) |
Returns the claim's occupational-disease injury date. |
| GetFirstClosureDate(claimId) | public DateTime? GetFirstClosureDate(long claimId) |
Returns the date the claim was first closed. |
| GetAggravationDates(claimId) | public ClaimAggravationDates GetAggravationDates(long claimId) |
Returns the claim's aggravation date range. |
| GetResponsibleAdjuster(claimId) | public ContactItem GetResponsibleAdjuster(long claimId) |
Delegates to IClaimContactService.GetResponsibleAdjuster to return the claim's responsible adjuster contact. |
| GetClaimsAssistant(claimId) | public ContactItem GetClaimsAssistant(long claimId) |
Delegates to IClaimContactService.GetClaimsAssistant to return the claim's claims-assistant contact. |
| GetSupervisor(claimId) | public ContactItem GetSupervisor(long claimId) |
Delegates to IClaimContactService.GetSupervisor to return the claim's supervisor contact. |
| GetAdjusterLocation(responsibility) | public Location GetAdjusterLocation(Data.Model.Claims.ClaimResponsibility responsibility) |
Resolves the office location of the adjuster identified by a ClaimResponsibility record's mail ID (or pseudo user if no mail ID is set). |
| GetVocationAdjuster(claimId) | public ContactItem GetVocationAdjuster(long claimId) |
Delegates to IClaimContactService.GetVocationAdjuster to return the claim's vocational adjuster contact. |
| GetThirdPartyAdjuster(claimId) | public ContactItem GetThirdPartyAdjuster(long claimId) |
Delegates to IClaimContactService.GetThirdPartyAdjuster to return the claim's third-party adjuster contact. |
| GetRtwAdjuster(claimId) | public ContactItem GetRtwAdjuster(long claimId) |
Delegates to IClaimContactService.GetRtwAdjuster to return the claim's return-to-work adjuster contact. |
| GetPolicySmcContact(claimId) | public ContactItem GetPolicySmcContact(long claimId) |
Delegates to IClaimContactService.GetPolicySmcContact to return the claim's policy safety-management-consultant contact. |
| GetClaimType(claimId) | public CodeDescriptionDate GetClaimType(long claimId) |
Returns the claim's claim type as a code/description/effective-date triple, or an empty instance if no claim-type activity exists. |
| GetWorker(claimId) | public InfoModel.Worker GetWorker(long claimId) |
Returns a full worker DTO (name, gender, phones, age, other-claims count, language/contact preferences, health insurance, birth/death dates, masked SSN, email) for the claim's associated worker, or an empty instance if the worker has no data. |
| GetClaimsMissingTaxId(lookbackDate) | public IEnumerable<InjuryClaim> GetClaimsMissingTaxId(DateTime lookbackDate) |
Returns claims with injuries on or after lookbackDate whose worker is missing a tax ID. |
| GetClaimStatus(claimId) | public CodeDescriptionDate GetClaimStatus(long claimId) |
Returns the claim's current status as a code/description/effective-date triple, or an empty instance if no status activity exists. |
| GetPharmacyEligibilityReport(claimId) | public PharmacyEligibilityReport GetPharmacyEligibilityReport(long claimId) |
Returns the claim's pharmacy eligibility report (status, effective date, previous status/date, update metadata), or an empty instance if none exists. |
| GetConditions(claimId) | public IEnumerable<Condition> GetConditions(long claimId) |
Returns the claim's medical conditions mapped to the API contract type, ordered by decision. |
| GetThirdPartyStatus(claimId) | public CodeDescriptionDate GetThirdPartyStatus(long claimId) |
Returns the claim's third-party case status as a code/description/date triple (using the latest status-history date), or an empty/partial instance if no case or status exists. |
| GetVocStatus(claimId) | public CodeDescriptionDate GetVocStatus(long claimId) |
Returns the claim's most recent vocational status as a code/description/date triple, or an empty instance if none exist. |
| GetPrimaryBodyPart(claimId) | public CodeDescription GetPrimaryBodyPart(long claimId) |
Returns the claim's primary body part as a code/description pair, or an empty instance if the claim has no data. |
| GetPrimaryBodySide(claimId) | public CodeDescription GetPrimaryBodySide(long claimId) |
Returns the claim's primary body side as a code/description pair, or an empty instance if the claim has no data. |
| GetKnowledgeDate(claimId) | public DateTime? GetKnowledgeDate(long claimId) |
Returns the claim's knowledge date. |
| GetLastPayment(claimId) | public DatedNumericValue GetLastPayment(long claimId) |
Returns the summed transaction amount and issue date of the claim's most recent time-loss-category payment (TD, VocTD, or SupTD), or an empty instance if no such payment exists. |
Behavioral notes¶
- Almost every method constructs a new
Claiminstance per call rather than reusing one across calls, unlikeClaimInformationApiService, which caches aClaimApiNodeBuilder/Claimper instance.* GetClaimDetail(Claim)deliberately swallows anExceptionwhose message contains "No row with the given identifier" when resolvingMyClaimLastLogin, treating it as a known Test-environment data issue, but rethrows all other exceptions.- The static constructor performs one-time AutoMapper configuration via
ClaimsMappingHelper, a process-wide side effect shared withClaimInformationApiService. HasSecurityOverride(long, string)resolves the current user viaIUserProfileService.GetCurrentUser()when nouserIdis supplied, then looks up the correspondingEmployeebefore checking for a security override.
Constraints and usage notes¶
[CA1506:AvoidExcessiveClassCoupling]is suppressed at the class level, reflecting that this service intentionally depends on many collaborators to serve as a broad claim-information facade.GetLastPaymentrestricts summation to TD/VocTD/SupTD payment categories only; other payment categories on the same transaction date are excluded from the returned amount.
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¶
- Services/SAIF.Services/Claims/Information/ClaimInformationService.cs