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
Claimdata. - 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 theSAIF.SAIFCode.CoreNuGet 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 returnthisto support fluent chaining, as used byClaimInformationApiService.BuildClaimNode. AddClaimAttributes()conditionally formats CDA/DCS attribute strings with an issue date only when the date is present and greater thanDateTime.MinValue.
Constraints and usage notes¶
- The constructor assumes
claimis 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