Skip to content

Commit bfe8d5f

Browse files
Finish movement of payment component into leaf entities
1 parent 4627ed0 commit bfe8d5f

15 files changed

Lines changed: 126 additions & 11 deletions

apps/bfd-server-ng/src/main/java/gov/cms/bfd/server/ng/claim/model/common/ClaimPaymentComponent.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
*/
1414
@Embeddable
1515
@Getter
16-
public class ClaimPaymentComponent {
16+
public class ClaimPaymentComponent implements ClaimPaymentComponentBase {
1717
@Column(name = "clm_pd_dt")
1818
private Optional<LocalDate> paymentDate;
1919

@@ -22,6 +22,7 @@ public class ClaimPaymentComponent {
2222
*
2323
* @return an optional PaymentComponent if a date exists
2424
*/
25+
@Override
2526
public Optional<ExplanationOfBenefit.PaymentComponent> toFhir() {
2627
return paymentDate.map(
2728
d -> new ExplanationOfBenefit.PaymentComponent().setDate(DateUtil.toDate(d)));

apps/bfd-server-ng/src/main/java/gov/cms/bfd/server/ng/claim/model/common/ClaimPaymentComponentAmount.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
/** ExplanationOfBeneift.PaymentComponent A payment component with a payment attached to it. */
1313
@Embeddable
1414
@Getter
15-
public class ClaimPaymentComponentAmount {
15+
public class ClaimPaymentComponentAmount implements ClaimPaymentComponentBase {
1616
@Embedded private ClaimPaymentComponent base;
1717

1818
@Column(name = "clm_pmt_amt")
@@ -23,6 +23,7 @@ public class ClaimPaymentComponentAmount {
2323
*
2424
* @return a PaymentComponent with an amount and optional date
2525
*/
26+
@Override
2627
public Optional<ExplanationOfBenefit.PaymentComponent> toFhir() {
2728
var payment = new ExplanationOfBenefit.PaymentComponent().setAmount(USD.toFhir(paymentAmount));
2829
base.getPaymentDate().ifPresent(d -> payment.setDate(DateUtil.toDate(d)));
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package gov.cms.bfd.server.ng.claim.model.common;
2+
3+
import java.util.Optional;
4+
import org.hl7.fhir.r4.model.ExplanationOfBenefit;
5+
6+
/** Interface for an ExplanationofBenefit.PaymentComponent. */
7+
public interface ClaimPaymentComponentBase {
8+
9+
/**
10+
* toFhir().
11+
*
12+
* @return an ExplanationOfBenefit.PaymentComponent
13+
*/
14+
Optional<ExplanationOfBenefit.PaymentComponent> toFhir();
15+
}

apps/bfd-server-ng/src/main/java/gov/cms/bfd/server/ng/claim/model/common/entities/ClaimBase.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import gov.cms.bfd.server.ng.claim.model.common.ClaimIdrLoadDate;
99
import gov.cms.bfd.server.ng.claim.model.common.ClaimItemBase;
1010
import gov.cms.bfd.server.ng.claim.model.common.ClaimPaidStatusCode;
11+
import gov.cms.bfd.server.ng.claim.model.common.ClaimPaymentComponentBase;
1112
import gov.cms.bfd.server.ng.claim.model.common.ClaimRelatedCondition;
1213
import gov.cms.bfd.server.ng.claim.model.common.ClaimSourceId;
1314
import gov.cms.bfd.server.ng.claim.model.common.ClaimState;
@@ -45,8 +46,8 @@
4546
*/
4647
@Getter
4748
@MappedSuperclass
48-
@SuppressWarnings({"JpaAttributeTypeInspection"})
4949
public abstract class ClaimBase {
50+
5051
@Id
5152
@Column(name = "clm_uniq_id", insertable = false, updatable = false)
5253
private long claimUniqueId;
@@ -139,6 +140,13 @@ protected ExplanationOfBenefit sortedEob(ExplanationOfBenefit eob) {
139140
return eob;
140141
}
141142

143+
/**
144+
* Hook method for payment component information, shared across all claims.
145+
*
146+
* @return The class data for a PaymentComponent
147+
*/
148+
public abstract ClaimPaymentComponentBase getPaymentComponent();
149+
142150
/**
143151
* Return the claim source id.
144152
*

apps/bfd-server-ng/src/main/java/gov/cms/bfd/server/ng/claim/model/institutional/entities/ClaimInstitutionalBase.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import gov.cms.bfd.server.ng.claim.model.common.BenefitEnhancementCodes;
99
import gov.cms.bfd.server.ng.claim.model.common.ClaimContractorNumber;
1010
import gov.cms.bfd.server.ng.claim.model.common.ClaimDispositionCode;
11-
import gov.cms.bfd.server.ng.claim.model.common.ClaimPaymentComponentAmount;
1211
import gov.cms.bfd.server.ng.claim.model.common.ClaimProcedureBase;
1312
import gov.cms.bfd.server.ng.claim.model.common.ClaimQueryCode;
1413
import gov.cms.bfd.server.ng.claim.model.common.ClaimRecordType;
@@ -54,7 +53,6 @@ public abstract class ClaimInstitutionalBase extends ClaimBase {
5453

5554
@Embedded private NchPrimaryPayorCode nchPrimaryPayorCode;
5655
@Embedded private TypeOfBillCode typeOfBillCode;
57-
@Embedded private ClaimPaymentComponentAmount paymentComponent;
5856
@Embedded private DiagnosisDrgCode diagnosisDrgCode;
5957
@Embedded private BillingProviderInstitutional billingProviderHistory;
6058
@Embedded private OtherInstitutionalCareTeam otherProviderHistory;

apps/bfd-server-ng/src/main/java/gov/cms/bfd/server/ng/claim/model/institutional/entities/ClaimInstitutionalBasisBase.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@
22

33
import gov.cms.bfd.server.ng.claim.model.common.AdjudicationChargeBase;
44
import gov.cms.bfd.server.ng.claim.model.common.ClaimItemBase;
5+
import gov.cms.bfd.server.ng.claim.model.common.ClaimPaymentComponent;
6+
import gov.cms.bfd.server.ng.claim.model.common.ClaimPaymentComponentBase;
57
import gov.cms.bfd.server.ng.claim.model.common.ClaimRecordType;
68
import gov.cms.bfd.server.ng.claim.model.common.ClaimRelatedCondition;
79
import gov.cms.bfd.server.ng.claim.model.common.ClaimSourceId;
810
import gov.cms.bfd.server.ng.claim.model.common.MetaSourceSk;
911
import gov.cms.bfd.server.ng.claim.model.common.SupportingInfoComponentBase;
1012
import gov.cms.bfd.server.ng.claim.model.institutional.ClaimValue;
1113
import gov.cms.bfd.server.ng.util.SequenceGenerator;
14+
import jakarta.persistence.Embedded;
1215
import java.util.Collections;
1316
import java.util.List;
1417
import java.util.Optional;
@@ -77,4 +80,16 @@ public SortedSet<ClaimItemBase> getItems() {
7780
public Optional<ClaimRelatedCondition> getClaimRelatedCondition() {
7881
return Optional.empty();
7982
}
83+
84+
// region PaymentComponent
85+
86+
// Basis does not have a payment amount, just the date
87+
@Embedded private ClaimPaymentComponent paymentComponent;
88+
89+
@Override
90+
public ClaimPaymentComponentBase getPaymentComponent() {
91+
return paymentComponent;
92+
}
93+
94+
// endregion
8095
}

apps/bfd-server-ng/src/main/java/gov/cms/bfd/server/ng/claim/model/institutional/entities/ClaimInstitutionalCmsBase.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package gov.cms.bfd.server.ng.claim.model.institutional.entities;
22

33
import gov.cms.bfd.server.ng.claim.model.common.ClaimIdrLoadDate;
4+
import gov.cms.bfd.server.ng.claim.model.common.ClaimPaymentComponentAmount;
5+
import gov.cms.bfd.server.ng.claim.model.common.ClaimPaymentComponentBase;
46
import jakarta.persistence.Embedded;
57
import jakarta.persistence.MappedSuperclass;
68
import java.util.Optional;
@@ -14,7 +16,18 @@ public abstract class ClaimInstitutionalCmsBase extends ClaimInstitutionalBase {
1416

1517
@Override
1618
public Optional<ClaimIdrLoadDate> getClaimIdrLoadDate() {
17-
return Optional.ofNullable(claimIdrLoadDate);
19+
return Optional.of(claimIdrLoadDate);
1820
}
21+
22+
// endregion
23+
24+
// region PaymentComponent
25+
@Embedded private ClaimPaymentComponentAmount paymentComponent;
26+
27+
@Override
28+
public ClaimPaymentComponentBase getPaymentComponent() {
29+
return paymentComponent;
30+
}
31+
1932
// endregion
2033
}

apps/bfd-server-ng/src/main/java/gov/cms/bfd/server/ng/claim/model/institutional/entities/ClaimInstitutionalRegularBase.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@
22

33
import gov.cms.bfd.server.ng.claim.model.common.AdjudicationChargeBase;
44
import gov.cms.bfd.server.ng.claim.model.common.ClaimItemBase;
5+
import gov.cms.bfd.server.ng.claim.model.common.ClaimPaymentComponentAmount;
6+
import gov.cms.bfd.server.ng.claim.model.common.ClaimPaymentComponentBase;
57
import gov.cms.bfd.server.ng.claim.model.common.ClaimRecordType;
68
import gov.cms.bfd.server.ng.claim.model.common.ClaimRelatedCondition;
79
import gov.cms.bfd.server.ng.claim.model.common.ClaimSourceId;
810
import gov.cms.bfd.server.ng.claim.model.common.MetaSourceSk;
911
import gov.cms.bfd.server.ng.claim.model.common.SupportingInfoComponentBase;
1012
import gov.cms.bfd.server.ng.claim.model.institutional.ClaimValue;
1113
import gov.cms.bfd.server.ng.util.SequenceGenerator;
14+
import jakarta.persistence.Embedded;
1215
import java.util.Collections;
1316
import java.util.List;
1417
import java.util.Optional;
@@ -77,4 +80,14 @@ public SortedSet<ClaimItemBase> getItems() {
7780
public Optional<ClaimRelatedCondition> getClaimRelatedCondition() {
7881
return Optional.empty();
7982
}
83+
84+
// region PaymentComponent
85+
@Embedded private ClaimPaymentComponentAmount paymentComponent;
86+
87+
@Override
88+
public ClaimPaymentComponentBase getPaymentComponent() {
89+
return paymentComponent;
90+
}
91+
92+
// endregion
8093
}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
package gov.cms.bfd.server.ng.claim.model.institutional.entities;
22

3+
import jakarta.persistence.Entity;
4+
import jakarta.persistence.Table;
35
import javax.annotation.processing.Generated;
6+
import lombok.Getter;
47

58
/** The institutional claim, regular profile, sourced from nch. */
9+
@Getter
10+
@Entity
11+
@Table(name = "claim_institutional_nch", schema = "idr")
612
@Generated("TODO - Remove after query optimization implementation")
713
public abstract class ClaimInstitutionalRegularNch extends ClaimInstitutionalRegularBase {}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
package gov.cms.bfd.server.ng.claim.model.institutional.entities;
22

3+
import jakarta.persistence.Entity;
4+
import jakarta.persistence.Table;
35
import javax.annotation.processing.Generated;
6+
import lombok.Getter;
47

58
/** The institutional claim, regular profile, sourced from shared systems. */
9+
@Getter
10+
@Entity
11+
@Table(name = "claim_institutional_ss", schema = "idr")
612
@Generated("TODO - Remove after query optimization implementation")
713
public class ClaimInstitutionalRegularSharedSystems extends ClaimInstitutionalRegularBase {}

0 commit comments

Comments
 (0)