Skip to content

ClaimNodeBuilder

Builds a ClaimNode for the Claim Information API by pulling values directly off a Claim domain object — dates, claim type, claim status, compensability, body part, work release/status, third-party case status, pharmacy eligibility, vocational status, region (from Claim.Supervisor.Section), and a set of claim "attributes" (fraud, secured worker, preferred worker, active support order, worker conflict, multiple employer, overpayment, CDA/DCS settlement flags) derived from combining GetSecurityAttributes(), SettlementInformation, and Data.Worker flags. It has no external service dependencies beyond the injected Claim and the ClaimNode it populates.

Purpose

  • Populates the primary claim summary node (dates, type, status, compensability, body part, region) from Claim data.
  • Derives coded status values (CodeDescriptionDate) for claim status, compensability, work release, work status, third-party status, pharmacy eligibility, and vocational status.
  • Computes a human-readable list of claim attributes (e.g. "Fraud", "Secured worker", "Preferred worker", "Support order", "Worker conflict", "Multiple jobs", "Overpayment", CDA/DCS settlement flags with dates) used to flag notable claim conditions.
  • Records the claim's last payment amount/date and first closure date.

Context

  • Namespace: SAIF.Services.Claims.Information.Api
  • Assembly/package: SAIF.Services (packaged inside the SAIF.SAIFCode.Core NuGet package)

Public members

Member Signature Purpose
Node public ClaimNode Node { get; } Exposes the node instance being populated by this builder.
ClaimNodeBuilder(claim, node) public ClaimNodeBuilder(Claim claim, ClaimNode node) Stores the claim and node, and immediately copies the claim's identifier onto the node.
AddClaimValues() public ClaimNodeBuilder AddClaimValues() Copies injury date and knowledge date from the claim onto the node.
AddLastPayment() public ClaimNodeBuilder AddLastPayment() Sets the last payment amount and date from Claim.GetLastPayment().
AddClaimType() public ClaimNodeBuilder AddClaimType() Sets ClaimType to a code/description pair from the claim's claim-type code table entry.
AddClaimStatus() public ClaimNodeBuilder AddClaimStatus() Sets ClaimStatus (code, description, effective date) from the claim's latest claim-status activity; no-ops if no status activity exists.
AddCompensabilityStatus() public ClaimNodeBuilder AddCompensabilityStatus() Sets CompensabilityStatus (code, description, date) from Claim.CompensabilityStatus().
AddPrimaryBodyPart() public ClaimNodeBuilder AddPrimaryBodyPart() Sets PrimaryBodyPart (code/description) from claim data; no-ops if no primary body part is recorded.
AddPrimaryBodySide() public ClaimNodeBuilder AddPrimaryBodySide() Sets PrimaryBodySide (code/description) from claim data; no-ops if no primary body side is recorded.
AddWorkRelease() public ClaimNodeBuilder AddWorkRelease() Sets WorkRelease (code, description, date) from the claim's work-release status; no-ops if none exists.
AddWorkStatus() public ClaimNodeBuilder AddWorkStatus() Sets WorkStatus (code, description, date) from the claim's work status; no-ops if none exists.
AddThirdParty() public ClaimNodeBuilder AddThirdParty() Sets ThirdPartyStatus (code, description, latest status-history date) from the claim's third-party case; no-ops if no case or status exists.
AddPharmacyEligibility() public ClaimNodeBuilder AddPharmacyEligibility() Sets PharmacyEligibility (code, description, effective date) from the pharmacy eligibility report; no-ops if the report has no claim ID.
AddAggrivationDates() public ClaimNodeBuilder AddAggrivationDates() Sets AggRightStatusDate to the end date of the claim's aggravation-date range.
AddRegion() public ClaimNodeBuilder AddRegion() Sets ClaimRegion to the section of the claim's supervisor.
AddFirstClosureDate() public ClaimNodeBuilder AddFirstClosureDate() Copies Claim.FirstClosureDate onto the node.
AddVocationalStatus() public ClaimNodeBuilder AddVocationalStatus() Sets VocStatus (code, description, update date) from the most recent vocational-status detail; no-ops if none exist.
AddMyClaimInformation() public ClaimNodeBuilder AddMyClaimInformation() Copies Claim.MyClaimLastLogin onto the node.
AddClaimAttributes() public ClaimNodeBuilder AddClaimAttributes() Appends human-readable attribute strings (fraud, secured worker, preferred worker, active support order, worker conflict, multiple employer, overpayment, CDA/DCS settlement with optional issue dates) to ClaimAttributes based on security attributes and settlement information; no-ops if the claim has no data.

Behavioral notes

  • All Add* methods return this to support fluent chaining, as used by ClaimInformationApiService.BuildClaimNode.
  • AddClaimAttributes() conditionally formats CDA/DCS attribute strings with an issue date only when the date is present and greater than DateTime.MinValue.

Constraints and usage notes

  • The constructor assumes claim is non-null (guarded only by a code-analysis suppression, not a runtime null check).
  • Several Add* methods (AddClaimStatus, AddPrimaryBodyPart, AddWorkRelease, etc.) depend on the claim already having loaded related data; they silently skip population when that data is absent rather than throwing.

Sources

  • Services/SAIF.Services/Claims/Information/Api/ClaimNodeBuilder.cs