ConditionsNodeBuilder¶
Builds a ConditionsNode by reading Claim.MedicalConditions and splitting them into accepted, denied, and deferred lists based on a case-insensitive comparison of each condition's Decision string, with each subset ordered by descending DecisionDate. It has no dependencies beyond the injected Claim.
Purpose¶
- Copies the full set of medical conditions for a claim onto the node.
- Partitions conditions into accepted/denied/deferred lists (matching on
Decisionvalue) so consumers of the API can render each category without re-filtering. - Orders each partitioned list by most recent decision date first.
Context¶
- Namespace:
SAIF.Services.Claims.Information.Api - Assembly/package:
SAIF.Services(packaged inside theSAIF.SAIFCode.CoreNuGet package)
Public members¶
| Member | Signature | Purpose |
|---|---|---|
| Node | public ConditionsNode Node { get; } |
Exposes the node instance being populated by this builder. |
| ConditionsNodeBuilder(claim, node) | public ConditionsNodeBuilder(Claim claim, ConditionsNode node) |
Stores the claim and target node for later population. |
| AddConditions() | public ConditionsNodeBuilder AddConditions() |
Sets Conditions to all medical conditions on the claim, and separately populates AcceptedConditions, DeniedConditions, and DeferredConditions filtered by decision value ("accepted", "denied", "deferred") and sorted by decision date descending. |
Behavioral notes¶
- The decision-value comparison is case-insensitive (
Decision.ToLower()), so upstream data casing does not affect classification.
Constraints and usage notes¶
- Conditions whose
Decisionvalue is anything other than "accepted", "denied", or "deferred" appear inConditionsbut in none of the three filtered lists.
Sources¶
- Services/SAIF.Services/Claims/Information/Api/ConditionsNodeBuilder.cs