diff --git a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/CarrierClaimTransformerV2.java b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/CarrierClaimTransformerV2.java index d7f8724906..d7eba1a432 100644 --- a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/CarrierClaimTransformerV2.java +++ b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/CarrierClaimTransformerV2.java @@ -92,7 +92,11 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { } ExplanationOfBenefit eob; try (Timer.Context ignored = metricRegistry.timer(METRIC_NAME).time()) { - eob = transformClaim((CarrierClaim) claim, includeTaxNumber); + CarrierClaim carrierClaim = (CarrierClaim) claim; + String securityTag = + lookUpSamhsaSecurityTags.getClaimSecurityLevel( + String.valueOf(carrierClaim.getClaimId()), CarrierTag.class); + eob = transformClaim(carrierClaim, includeTaxNumber, securityTag); } return eob; } @@ -102,18 +106,17 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { * * @param claimGroup the CCW {@link CarrierClaim} to transform * @param includeTaxNumbers whether to include tax numbers in the response + * @param securityTag securityTag of the claim * @return a FHIR {@link ExplanationOfBenefit} resource that represents the specified {@link * CarrierClaim} */ - private ExplanationOfBenefit transformClaim(CarrierClaim claimGroup, boolean includeTaxNumbers) { + private ExplanationOfBenefit transformClaim( + CarrierClaim claimGroup, boolean includeTaxNumbers, String securityTag) { ExplanationOfBenefit eob = new ExplanationOfBenefit(); // Required values not directly mapped eob.getMeta().addProfile(Profile.C4BB.getVersionedEobNonclinicianUrl()); - String securityTag = - lookUpSamhsaSecurityTags.getClaimSecurityLevel( - String.valueOf(claimGroup.getClaimId()), CarrierTag.class); eob.getMeta() .addSecurity() .setSystem("https://terminology.hl7.org/6.1.0/CodeSystem-v3-Confidentiality.html") diff --git a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/DMEClaimTransformerV2.java b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/DMEClaimTransformerV2.java index 5e92059a8d..52ff7083b2 100644 --- a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/DMEClaimTransformerV2.java +++ b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/DMEClaimTransformerV2.java @@ -72,7 +72,7 @@ final class DMEClaimTransformerV2 implements ClaimTransformerInterfaceV2 { this.metricRegistry = requireNonNull(metricRegistry); this.drugCodeDisplayLookup = requireNonNull(drugCodeDisplayLookup); this.npiOrgLookup = npiOrgLookup; - this.lookUpSamhsaSecurityTags = lookUpSamhsaSecurityTags; + this.lookUpSamhsaSecurityTags = requireNonNull(lookUpSamhsaSecurityTags); } /** @@ -91,7 +91,11 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { } ExplanationOfBenefit eob; try (Timer.Context ignored = metricRegistry.timer(METRIC_NAME).time()) { - eob = transformClaim((DMEClaim) claim, includeTaxNumber); + DMEClaim dmeClaim = (DMEClaim) claim; + String securityTag = + lookUpSamhsaSecurityTags.getClaimSecurityLevel( + String.valueOf(dmeClaim.getClaimId()), DmeTag.class); + eob = transformClaim(dmeClaim, includeTaxNumber, securityTag); } return eob; } @@ -101,18 +105,17 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { * * @param includeTaxNumbers whether to include tax numbers in the transformed EOB * @param claimGroup the CCW {@link DMEClaim} to transform + * @param securityTag securityTag of the claim * @return a FHIR {@link ExplanationOfBenefit} resource that represents the specified {@link * DMEClaim} */ - private ExplanationOfBenefit transformClaim(DMEClaim claimGroup, boolean includeTaxNumbers) { + private ExplanationOfBenefit transformClaim( + DMEClaim claimGroup, boolean includeTaxNumbers, String securityTag) { ExplanationOfBenefit eob = new ExplanationOfBenefit(); // Required values not directly mapped eob.getMeta().addProfile(Profile.C4BB.getVersionedEobInpatientUrl()); - String securityTag = - lookUpSamhsaSecurityTags.getClaimSecurityLevel( - String.valueOf(claimGroup.getClaimId()), DmeTag.class); eob.getMeta() .addSecurity() .setSystem("https://terminology.hl7.org/6.1.0/CodeSystem-v3-Confidentiality.html") diff --git a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/HHAClaimTransformerV2.java b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/HHAClaimTransformerV2.java index ddcaf67a21..da47e59bef 100644 --- a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/HHAClaimTransformerV2.java +++ b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/HHAClaimTransformerV2.java @@ -80,7 +80,11 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { } ExplanationOfBenefit eob; try (Timer.Context ignored = metricRegistry.timer(METRIC_NAME).time()) { - eob = transformClaim((HHAClaim) claim); + HHAClaim hhaClaim = (HHAClaim) claim; + String securityTag = + lookUpSamhsaSecurityTags.getClaimSecurityLevel( + String.valueOf(hhaClaim.getClaimId()), HhaTag.class); + eob = transformClaim(hhaClaim, securityTag); } return eob; } @@ -89,18 +93,15 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { * Transforms a specified {@link HHAClaim} into a FHIR {@link ExplanationOfBenefit}. * * @param claimGroup the CCW {@link HHAClaim} to transform + * @param securityTag securityTag of the claim * @return a FHIR {@link ExplanationOfBenefit} resource that represents the specified {@link * HHAClaim} */ - private ExplanationOfBenefit transformClaim(HHAClaim claimGroup) { + private ExplanationOfBenefit transformClaim(HHAClaim claimGroup, String securityTag) { ExplanationOfBenefit eob = new ExplanationOfBenefit(); // Required values not directly mapped eob.getMeta().addProfile(Profile.C4BB.getVersionedEobNonclinicianUrl()); - - String securityTag = - lookUpSamhsaSecurityTags.getClaimSecurityLevel( - String.valueOf(claimGroup.getClaimId()), HhaTag.class); eob.getMeta() .addSecurity() .setSystem("https://terminology.hl7.org/6.1.0/CodeSystem-v3-Confidentiality.html") diff --git a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/HospiceClaimTransformerV2.java b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/HospiceClaimTransformerV2.java index 2f888fd125..73ff9f0c95 100644 --- a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/HospiceClaimTransformerV2.java +++ b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/HospiceClaimTransformerV2.java @@ -82,7 +82,11 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { } ExplanationOfBenefit eob; try (Timer.Context ignored = metricRegistry.timer(METRIC_NAME).time()) { - eob = transformClaim((HospiceClaim) claim); + HospiceClaim hospiceClaim = (HospiceClaim) claim; + String securityTag = + lookUpSamhsaSecurityTags.getClaimSecurityLevel( + String.valueOf(hospiceClaim.getClaimId()), HospiceTag.class); + eob = transformClaim(hospiceClaim, securityTag); } return eob; } @@ -91,18 +95,15 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { * Transforms a specified {@link HospiceClaim} into a FHIR {@link ExplanationOfBenefit}. * * @param claimGroup the CCW {@link HospiceClaim} to transform + * @param securityTag securityTag of the claim * @return a FHIR {@link ExplanationOfBenefit} resource that represents the specified {@link * HospiceClaim} */ - private ExplanationOfBenefit transformClaim(HospiceClaim claimGroup) { + private ExplanationOfBenefit transformClaim(HospiceClaim claimGroup, String securityTag) { ExplanationOfBenefit eob = new ExplanationOfBenefit(); // Required values not directly mapped eob.getMeta().addProfile(Profile.C4BB.getVersionedEobInpatientUrl()); - - String securityTag = - lookUpSamhsaSecurityTags.getClaimSecurityLevel( - String.valueOf(claimGroup.getClaimId()), HospiceTag.class); eob.getMeta() .addSecurity() .setSystem("https://terminology.hl7.org/6.1.0/CodeSystem-v3-Confidentiality.html") diff --git a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/InpatientClaimTransformerV2.java b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/InpatientClaimTransformerV2.java index cbd8a42ae5..6b84320cc7 100644 --- a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/InpatientClaimTransformerV2.java +++ b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/InpatientClaimTransformerV2.java @@ -66,7 +66,7 @@ public InpatientClaimTransformerV2( LookUpSamhsaSecurityTags lookUpSamhsaSecurityTags) { this.metricRegistry = requireNonNull(metricRegistry); this.npiOrgLookup = requireNonNull(npiOrgLookup); - this.lookUpSamhsaSecurityTags = lookUpSamhsaSecurityTags; + this.lookUpSamhsaSecurityTags = requireNonNull(lookUpSamhsaSecurityTags); } /** @@ -85,7 +85,11 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { } ExplanationOfBenefit eob; try (Timer.Context ignored = metricRegistry.timer(METRIC_NAME).time()) { - eob = transformClaim((InpatientClaim) claim); + InpatientClaim inpatientClaim = (InpatientClaim) claim; + String securityTag = + lookUpSamhsaSecurityTags.getClaimSecurityLevel( + String.valueOf(inpatientClaim.getClaimId()), InpatientTag.class); + eob = transformClaim(inpatientClaim, securityTag); } return eob; } @@ -94,18 +98,15 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { * Transforms a specified {@link InpatientClaim} into a FHIR {@link ExplanationOfBenefit}. * * @param claimGroup the CCW {@link InpatientClaim} to transform + * @param securityTag securityTag of the claim * @return a FHIR {@link ExplanationOfBenefit} resource that represents the specified {@link * InpatientClaim} */ - private ExplanationOfBenefit transformClaim(InpatientClaim claimGroup) { + private ExplanationOfBenefit transformClaim(InpatientClaim claimGroup, String securityTag) { ExplanationOfBenefit eob = new ExplanationOfBenefit(); // Required values not directly mapped eob.getMeta().addProfile(Profile.C4BB.getVersionedEobInpatientUrl()); - - String securityTag = - lookUpSamhsaSecurityTags.getClaimSecurityLevel( - String.valueOf(claimGroup.getClaimId()), InpatientTag.class); eob.getMeta() .addSecurity() .setSystem("https://terminology.hl7.org/6.1.0/CodeSystem-v3-Confidentiality.html") diff --git a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/OutpatientClaimTransformerV2.java b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/OutpatientClaimTransformerV2.java index 90527591ff..9bae947392 100644 --- a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/OutpatientClaimTransformerV2.java +++ b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/OutpatientClaimTransformerV2.java @@ -92,7 +92,12 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { } ExplanationOfBenefit eob; try (Timer.Context ignored = metricRegistry.timer(METRIC_NAME).time()) { - eob = transformClaim((OutpatientClaim) claim); + + OutpatientClaim outpatientClaim = (OutpatientClaim) claim; + String securityTag = + lookUpSamhsaSecurityTags.getClaimSecurityLevel( + String.valueOf(outpatientClaim.getClaimId()), OutpatientTag.class); + eob = transformClaim(outpatientClaim, securityTag); } return eob; } @@ -101,18 +106,15 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { * Transforms a specified {@link InpatientClaim} into a FHIR {@link ExplanationOfBenefit}. * * @param claimGroup the CCW {@link InpatientClaim} to transform + * @param securityTag securityTag of the claim * @return a FHIR {@link ExplanationOfBenefit} resource that represents the specified {@link * OutpatientClaim} */ - private ExplanationOfBenefit transformClaim(OutpatientClaim claimGroup) { + private ExplanationOfBenefit transformClaim(OutpatientClaim claimGroup, String securityTag) { ExplanationOfBenefit eob = new ExplanationOfBenefit(); // Required values not directly mapped eob.getMeta().addProfile(Profile.C4BB.getVersionedEobOutpatientUrl()); - - String securityTag = - lookUpSamhsaSecurityTags.getClaimSecurityLevel( - String.valueOf(claimGroup.getClaimId()), OutpatientTag.class); eob.getMeta() .addSecurity() .setSystem("https://terminology.hl7.org/6.1.0/CodeSystem-v3-Confidentiality.html") diff --git a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/SNFClaimTransformerV2.java b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/SNFClaimTransformerV2.java index 123ea2c981..10f1a5d716 100644 --- a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/SNFClaimTransformerV2.java +++ b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/SNFClaimTransformerV2.java @@ -84,7 +84,11 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { } ExplanationOfBenefit eob; try (Timer.Context ignored = metricRegistry.timer(METRIC_NAME).time()) { - eob = transformClaim((SNFClaim) claim); + SNFClaim snfClaim = (SNFClaim) claim; + String securityTag = + lookUpSamhsaSecurityTags.getClaimSecurityLevel( + String.valueOf(snfClaim.getClaimId()), SnfTag.class); + eob = transformClaim(snfClaim, securityTag); } return eob; } @@ -93,18 +97,15 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { * Transforms a specified {@link SNFClaim} into a FHIR {@link ExplanationOfBenefit}. * * @param claimGroup the CCW {@link SNFClaim} to transform + * @param securityTag securityTag of the claim * @return a FHIR {@link ExplanationOfBenefit} resource that represents the specified {@link * SNFClaim} */ - private ExplanationOfBenefit transformClaim(SNFClaim claimGroup) { + private ExplanationOfBenefit transformClaim(SNFClaim claimGroup, String securityTag) { ExplanationOfBenefit eob = new ExplanationOfBenefit(); // Required values not directly mapped eob.getMeta().addProfile(Profile.C4BB.getVersionedEobInpatientUrl()); - - String securityTag = - lookUpSamhsaSecurityTags.getClaimSecurityLevel( - String.valueOf(claimGroup.getClaimId()), SnfTag.class); eob.getMeta() .addSecurity() .setSystem("https://terminology.hl7.org/6.1.0/CodeSystem-v3-Confidentiality.html") diff --git a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/pac/FissClaimResponseTransformerV2.java b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/pac/FissClaimResponseTransformerV2.java index 7cd0b7f359..1a884488cf 100644 --- a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/pac/FissClaimResponseTransformerV2.java +++ b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/pac/FissClaimResponseTransformerV2.java @@ -93,7 +93,10 @@ public ClaimResponse transform(Object claimEntity, boolean includeTaxNumbers) { } try (Timer.Context ignored = metricRegistry.timer(METRIC_NAME).time()) { - return transformClaim((RdaFissClaim) claimEntity); + RdaFissClaim rdaFissClaim = (RdaFissClaim) claimEntity; + String securityTag = + lookUpSamhsaSecurityTags.getClaimSecurityLevel(rdaFissClaim.getClaimId(), FissTag.class); + return transformClaim(rdaFissClaim, securityTag); } } @@ -101,10 +104,11 @@ public ClaimResponse transform(Object claimEntity, boolean includeTaxNumbers) { * Transforms an {@link RdaFissClaim} to a FHIR {@link ClaimResponse}. * * @param claimGroup the {@link RdaFissClaim} to transform + * @param securityTag securityTag of the claim * @return a FHIR {@link ClaimResponse} resource that represents the specified {@link * RdaFissClaim} */ - private ClaimResponse transformClaim(RdaFissClaim claimGroup) { + private ClaimResponse transformClaim(RdaFissClaim claimGroup, String securityTag) { ClaimResponse claim = new ClaimResponse(); claim.setId("f-" + claimGroup.getClaimId()); @@ -120,10 +124,6 @@ private ClaimResponse transformClaim(RdaFissClaim claimGroup) { claim.setRequest(new Reference(String.format("Claim/f-%s", claimGroup.getClaimId()))); claim.setItem(getClaimItems(claimGroup)); - // claim.getType(), claim.getIdElement().getIdPart() - String securityTag = - lookUpSamhsaSecurityTags.getClaimSecurityLevel(claim.getId(), FissTag.class); - List securityTags = new ArrayList<>(); // Create a Coding object for the security level diff --git a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/pac/FissClaimTransformerV2.java b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/pac/FissClaimTransformerV2.java index 1158b812aa..31013c8abf 100644 --- a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/pac/FissClaimTransformerV2.java +++ b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/pac/FissClaimTransformerV2.java @@ -85,7 +85,7 @@ public class FissClaimTransformerV2 extends AbstractTransformerV2 public FissClaimTransformerV2( MetricRegistry metricRegistry, LookUpSamhsaSecurityTags lookUpSamhsaSecurityTags) { this.metricRegistry = requireNonNull(metricRegistry); - this.lookUpSamhsaSecurityTags = lookUpSamhsaSecurityTags; + this.lookUpSamhsaSecurityTags = requireNonNull(lookUpSamhsaSecurityTags); } /** @@ -102,7 +102,10 @@ public Claim transform(Object claimEntity, boolean includeTaxNumbers) { } try (Timer.Context ignored = metricRegistry.timer(METRIC_NAME).time()) { - return transformClaim((RdaFissClaim) claimEntity, includeTaxNumbers); + RdaFissClaim rdaFissClaim = (RdaFissClaim) claimEntity; + String securityTag = + lookUpSamhsaSecurityTags.getClaimSecurityLevel(rdaFissClaim.getClaimId(), FissTag.class); + return transformClaim(rdaFissClaim, includeTaxNumbers, securityTag); } } @@ -111,9 +114,11 @@ public Claim transform(Object claimEntity, boolean includeTaxNumbers) { * * @param claimGroup the {@link RdaFissClaim} to transform * @param includeTaxNumbers Indicates if tax numbers should be included in the results + * @param securityTag securityTag of the claim * @return a FHIR {@link Claim} resource that represents the specified {@link RdaFissClaim} */ - private Claim transformClaim(RdaFissClaim claimGroup, boolean includeTaxNumbers) { + private Claim transformClaim( + RdaFissClaim claimGroup, boolean includeTaxNumbers, String securityTag) { Claim claim = new Claim(); boolean isIcd9 = @@ -144,9 +149,6 @@ private Claim transformClaim(RdaFissClaim claimGroup, boolean includeTaxNumbers) claim.setInsurance(getInsurance(claimGroup)); claim.setItem(getClaimItems(claimGroup)); - String securityTag = - lookUpSamhsaSecurityTags.getClaimSecurityLevel(claim.getId(), FissTag.class); - List securityTags = new ArrayList<>(); // Create a Coding object for the security level diff --git a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/pac/McsClaimResponseTransformerV2.java b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/pac/McsClaimResponseTransformerV2.java index cb58c8647b..f0a1ab2110 100644 --- a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/pac/McsClaimResponseTransformerV2.java +++ b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/pac/McsClaimResponseTransformerV2.java @@ -108,7 +108,11 @@ public ClaimResponse transform(Object claimEntity, boolean includeTaxNumbers) { } try (Timer.Context ignored = metricRegistry.timer(METRIC_NAME).time()) { - return transformClaim((RdaMcsClaim) claimEntity); + RdaMcsClaim rdaMcsClaim = (RdaMcsClaim) claimEntity; + String securityTag = + lookUpSamhsaSecurityTags.getClaimSecurityLevel( + rdaMcsClaim.getIdrClmHdIcn(), McsTag.class); + return transformClaim(rdaMcsClaim, securityTag); } } @@ -116,9 +120,10 @@ public ClaimResponse transform(Object claimEntity, boolean includeTaxNumbers) { * Transforms a {@link RdaMcsClaim} into a FHIR {@link Claim}. * * @param claimGroup the {@link RdaMcsClaim} to transform + * @param securityTag securityTag of the claim * @return a FHIR {@link ClaimResponse} resource that represents the specified {@link RdaMcsClaim} */ - private ClaimResponse transformClaim(RdaMcsClaim claimGroup) { + private ClaimResponse transformClaim(RdaMcsClaim claimGroup, String securityTag) { ClaimResponse claim = new ClaimResponse(); claim.setId("m-" + claimGroup.getIdrClmHdIcn()); @@ -135,11 +140,7 @@ private ClaimResponse transformClaim(RdaMcsClaim claimGroup) { claim.setPatient(new Reference("#patient")); claim.setRequest(new Reference(String.format("Claim/m-%s", claimGroup.getIdrClmHdIcn()))); - String securityTag = - lookUpSamhsaSecurityTags.getClaimSecurityLevel(claim.getId(), McsTag.class); - List securityTags = new ArrayList<>(); - // Create a Coding object for the security level Coding securityTagCoding = new Coding() diff --git a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/pac/McsClaimTransformerV2.java b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/pac/McsClaimTransformerV2.java index a5a7572374..36a3ccf2c5 100644 --- a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/pac/McsClaimTransformerV2.java +++ b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/r4/providers/pac/McsClaimTransformerV2.java @@ -1,5 +1,7 @@ package gov.cms.bfd.server.war.r4.providers.pac; +import static java.util.Objects.requireNonNull; + import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.Timer; import com.newrelic.api.agent.Trace; @@ -83,7 +85,7 @@ public class McsClaimTransformerV2 extends AbstractTransformerV2 public McsClaimTransformerV2( MetricRegistry metricRegistry, LookUpSamhsaSecurityTags lookUpSamhsaSecurityTags) { this.metricRegistry = metricRegistry; - this.lookUpSamhsaSecurityTags = lookUpSamhsaSecurityTags; + this.lookUpSamhsaSecurityTags = requireNonNull(lookUpSamhsaSecurityTags); } /** @@ -101,7 +103,10 @@ public Claim transform(Object claimEntity, boolean includeTaxNumbers) { } try (Timer.Context ignored = metricRegistry.timer(METRIC_NAME).time()) { - return transformClaim((RdaMcsClaim) claimEntity, includeTaxNumbers); + RdaMcsClaim claim = (RdaMcsClaim) claimEntity; + String securityTag = + lookUpSamhsaSecurityTags.getClaimSecurityLevel(claim.getIdrClmHdIcn(), McsTag.class); + return transformClaim(claim, includeTaxNumbers, securityTag); } } @@ -110,9 +115,11 @@ public Claim transform(Object claimEntity, boolean includeTaxNumbers) { * * @param claimGroup the {@link RdaMcsClaim} to transform * @param includeTaxNumbers Indicates if tax numbers should be included in the results + * @param securityTag securityTag tag of a claim * @return a FHIR {@link Claim} resource that represents the specified {@link RdaMcsClaim} */ - private Claim transformClaim(RdaMcsClaim claimGroup, boolean includeTaxNumbers) { + private Claim transformClaim( + RdaMcsClaim claimGroup, boolean includeTaxNumbers, String securityTag) { Claim claim = new Claim(); claim.setId("m-" + claimGroup.getIdrClmHdIcn()); @@ -139,9 +146,6 @@ private Claim transformClaim(RdaMcsClaim claimGroup, boolean includeTaxNumbers) claim.setCreated(new Date()); - String claimId = claim.getId().replaceAll("\\D", ""); - String securityTag = lookUpSamhsaSecurityTags.getClaimSecurityLevel(claimId, McsTag.class); - List securityTags = new ArrayList<>(); // Create a Coding object for the security level diff --git a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/CarrierClaimTransformer.java b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/CarrierClaimTransformer.java index 04c1754b6a..f9e26f1c90 100644 --- a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/CarrierClaimTransformer.java +++ b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/CarrierClaimTransformer.java @@ -68,7 +68,7 @@ public CarrierClaimTransformer( this.metricRegistry = requireNonNull(metricRegistry); this.npiOrgLookup = requireNonNull(npiOrgLookup); this.drugCodeDisplayLookup = requireNonNull(drugCodeDisplayLookup); - this.lookUpSamhsaSecurityTags = lookUpSamhsaSecurityTags; + this.lookUpSamhsaSecurityTags = requireNonNull(lookUpSamhsaSecurityTags); } /** @@ -86,7 +86,11 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { } ExplanationOfBenefit eob; try (Timer.Context ignored = metricRegistry.timer(METRIC_NAME).time()) { - eob = transformClaim((CarrierClaim) claim, includeTaxNumber); + CarrierClaim carrierClaim = (CarrierClaim) claim; + String securityTag = + lookUpSamhsaSecurityTags.getClaimSecurityLevel( + String.valueOf(carrierClaim.getClaimId()), CarrierTag.class); + eob = transformClaim(carrierClaim, includeTaxNumber, securityTag); } return eob; } @@ -96,10 +100,12 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { * * @param claimGroup the CCW {@link CarrierClaim} to transform * @param includeTaxNumbers whether to include tax numbers in the response + * @param securityTag securityTag tag of a claim * @return a FHIR {@link ExplanationOfBenefit} resource that represents the specified {@link * CarrierClaim} */ - private ExplanationOfBenefit transformClaim(CarrierClaim claimGroup, boolean includeTaxNumbers) { + private ExplanationOfBenefit transformClaim( + CarrierClaim claimGroup, boolean includeTaxNumbers, String securityTag) { ExplanationOfBenefit eob = new ExplanationOfBenefit(); // Common group level fields between all claim types @@ -324,10 +330,6 @@ private ExplanationOfBenefit transformClaim(CarrierClaim claimGroup, boolean inc TransformerUtils.setLastUpdated(eob, claimGroup.getLastUpdated()); - String securityTag = - lookUpSamhsaSecurityTags.getClaimSecurityLevel( - String.valueOf(claimGroup.getClaimId()), CarrierTag.class); - eob.getMeta() .addSecurity() .setSystem("https://terminology.hl7.org/6.1.0/CodeSystem-v3-Confidentiality.html") diff --git a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/DMEClaimTransformer.java b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/DMEClaimTransformer.java index 43c6384c4f..e298a45182 100644 --- a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/DMEClaimTransformer.java +++ b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/DMEClaimTransformer.java @@ -79,7 +79,11 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { } ExplanationOfBenefit eob; try (Timer.Context ignored = metricRegistry.timer(METRIC_NAME).time()) { - eob = transformClaim((DMEClaim) claim, includeTaxNumber); + DMEClaim dmeClaim = (DMEClaim) claim; + String securityTag = + lookUpSamhsaSecurityTags.getClaimSecurityLevel( + String.valueOf(dmeClaim.getClaimId()), DmeTag.class); + eob = transformClaim(dmeClaim, includeTaxNumber, securityTag); } return eob; } @@ -89,10 +93,12 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { * * @param claimGroup the {@link DMEClaim} to use * @param includeTaxNumbers whether to include tax numbers in the transformed EOB + * @param securityTag securityTag tag of a claim * @return a FHIR {@link ExplanationOfBenefit} resource that represents the specified {@link * DMEClaim} */ - private ExplanationOfBenefit transformClaim(DMEClaim claimGroup, boolean includeTaxNumbers) { + private ExplanationOfBenefit transformClaim( + DMEClaim claimGroup, boolean includeTaxNumbers, String securityTag) { ExplanationOfBenefit eob = new ExplanationOfBenefit(); // Common group level fields between all claim types @@ -314,10 +320,6 @@ private ExplanationOfBenefit transformClaim(DMEClaim claimGroup, boolean include } TransformerUtils.setLastUpdated(eob, claimGroup.getLastUpdated()); - String securityTag = - lookUpSamhsaSecurityTags.getClaimSecurityLevel( - String.valueOf(claimGroup.getClaimId()), DmeTag.class); - eob.getMeta() .addSecurity() .setSystem("https://terminology.hl7.org/6.1.0/CodeSystem-v3-Confidentiality.html") diff --git a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/HHAClaimTransformer.java b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/HHAClaimTransformer.java index 4e7f2bcc51..abd888c994 100644 --- a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/HHAClaimTransformer.java +++ b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/HHAClaimTransformer.java @@ -78,7 +78,11 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { } ExplanationOfBenefit eob; try (Timer.Context ignored = metricRegistry.timer(METRIC_NAME).time()) { - eob = transformClaim((HHAClaim) claim); + HHAClaim hhaClaim = (HHAClaim) claim; + String securityTag = + lookUpSamhsaSecurityTags.getClaimSecurityLevel( + String.valueOf(hhaClaim.getClaimId()), HhaTag.class); + eob = transformClaim(hhaClaim, securityTag); } return eob; } @@ -87,10 +91,11 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { * Transforms a specified {@link HHAClaim} into a FHIR {@link ExplanationOfBenefit}. * * @param claimGroup the CCW {@link HHAClaim} to transform + * @param securityTag securityTag tag of a claim * @return a FHIR {@link ExplanationOfBenefit} resource that represents the specified {@link * HHAClaim} */ - private ExplanationOfBenefit transformClaim(HHAClaim claimGroup) { + private ExplanationOfBenefit transformClaim(HHAClaim claimGroup, String securityTag) { ExplanationOfBenefit eob = new ExplanationOfBenefit(); // Common group level fields between all claim types @@ -209,10 +214,6 @@ private ExplanationOfBenefit transformClaim(HHAClaim claimGroup) { TransformerUtils.setLastUpdated(eob, claimGroup.getLastUpdated()); - String securityTag = - lookUpSamhsaSecurityTags.getClaimSecurityLevel( - String.valueOf(claimGroup.getClaimId()), HhaTag.class); - eob.getMeta() .addSecurity() .setSystem("https://terminology.hl7.org/6.1.0/CodeSystem-v3-Confidentiality.html") diff --git a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/HospiceClaimTransformer.java b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/HospiceClaimTransformer.java index 98db87c66a..27e37b1a1f 100644 --- a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/HospiceClaimTransformer.java +++ b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/HospiceClaimTransformer.java @@ -76,7 +76,11 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { } ExplanationOfBenefit eob; try (Timer.Context ignored = metricRegistry.timer(METRIC_NAME).time()) { - eob = transformClaim((HospiceClaim) claim); + HospiceClaim hospiceClaim = (HospiceClaim) claim; + String securityTag = + lookUpSamhsaSecurityTags.getClaimSecurityLevel( + String.valueOf(hospiceClaim.getClaimId()), HospiceTag.class); + eob = transformClaim(hospiceClaim, securityTag); } return eob; } @@ -85,10 +89,11 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { * Transforms a specified {@link HospiceClaim} into a FHIR {@link ExplanationOfBenefit}. * * @param claimGroup the CCW {@link HospiceClaim} to transform + * @param securityTag securityTag tag of a claim * @return a FHIR {@link ExplanationOfBenefit} resource that represents the specified {@link * HospiceClaim} */ - private ExplanationOfBenefit transformClaim(HospiceClaim claimGroup) { + private ExplanationOfBenefit transformClaim(HospiceClaim claimGroup, String securityTag) { ExplanationOfBenefit eob = new ExplanationOfBenefit(); // Common group level fields between all claim types @@ -209,10 +214,6 @@ private ExplanationOfBenefit transformClaim(HospiceClaim claimGroup) { } TransformerUtils.setLastUpdated(eob, claimGroup.getLastUpdated()); - String securityTag = - lookUpSamhsaSecurityTags.getClaimSecurityLevel( - String.valueOf(claimGroup.getClaimId()), HospiceTag.class); - eob.getMeta() .addSecurity() .setSystem("https://terminology.hl7.org/6.1.0/CodeSystem-v3-Confidentiality.html") diff --git a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/InpatientClaimTransformer.java b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/InpatientClaimTransformer.java index f842ad76b9..8a5bff3d98 100644 --- a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/InpatientClaimTransformer.java +++ b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/InpatientClaimTransformer.java @@ -57,7 +57,7 @@ public InpatientClaimTransformer( LookUpSamhsaSecurityTags lookUpSamhsaSecurityTags) { this.metricRegistry = requireNonNull(metricRegistry); this.npiOrgLookup = requireNonNull(npiOrgLookup); - this.lookUpSamhsaSecurityTags = lookUpSamhsaSecurityTags; + this.lookUpSamhsaSecurityTags = requireNonNull(lookUpSamhsaSecurityTags); } /** @@ -75,7 +75,11 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { } ExplanationOfBenefit eob; try (Timer.Context ignored = metricRegistry.timer(METRIC_NAME).time()) { - eob = transformClaim((InpatientClaim) claim); + InpatientClaim inpatientClaim = (InpatientClaim) claim; + String securityTag = + lookUpSamhsaSecurityTags.getClaimSecurityLevel( + String.valueOf(inpatientClaim.getClaimId()), InpatientTag.class); + eob = transformClaim(inpatientClaim, securityTag); } return eob; } @@ -84,10 +88,11 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { * Transforms a specified {@link InpatientClaim} into a FHIR {@link ExplanationOfBenefit}. * * @param claimGroup the CCW {@link InpatientClaim} to transform + * @param securityTag securityTag tag of a claim * @return a FHIR {@link ExplanationOfBenefit} resource that represents the specified {@link * InpatientClaim} */ - private ExplanationOfBenefit transformClaim(InpatientClaim claimGroup) { + private ExplanationOfBenefit transformClaim(InpatientClaim claimGroup, String securityTag) { ExplanationOfBenefit eob = new ExplanationOfBenefit(); // Common group level fields between all claim types @@ -289,10 +294,6 @@ private ExplanationOfBenefit transformClaim(InpatientClaim claimGroup) { } TransformerUtils.setLastUpdated(eob, claimGroup.getLastUpdated()); - String securityTag = - lookUpSamhsaSecurityTags.getClaimSecurityLevel( - String.valueOf(claimGroup.getClaimId()), InpatientTag.class); - eob.getMeta() .addSecurity() .setSystem("https://terminology.hl7.org/6.1.0/CodeSystem-v3-Confidentiality.html") diff --git a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/OutpatientClaimTransformer.java b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/OutpatientClaimTransformer.java index 84eaa296c0..614d997b64 100644 --- a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/OutpatientClaimTransformer.java +++ b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/OutpatientClaimTransformer.java @@ -79,7 +79,11 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { } ExplanationOfBenefit eob; try (Timer.Context ignored = metricRegistry.timer(METRIC_NAME).time()) { - eob = transformClaim((OutpatientClaim) claim); + OutpatientClaim outpatientClaim = (OutpatientClaim) claim; + String securityTag = + lookUpSamhsaSecurityTags.getClaimSecurityLevel( + String.valueOf(outpatientClaim.getClaimId()), OutpatientTag.class); + eob = transformClaim(outpatientClaim, securityTag); } return eob; } @@ -88,10 +92,11 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { * Transforms a specified {@link InpatientClaim} into a FHIR {@link ExplanationOfBenefit}. * * @param claimGroup the CCW {@link OutpatientClaim} to transform + * @param securityTag securityTag tag of a claim * @return a FHIR {@link ExplanationOfBenefit} resource that represents the specified {@link * OutpatientClaim} */ - private ExplanationOfBenefit transformClaim(OutpatientClaim claimGroup) { + private ExplanationOfBenefit transformClaim(OutpatientClaim claimGroup, String securityTag) { ExplanationOfBenefit eob = new ExplanationOfBenefit(); // Common group level fields between all claim types @@ -328,10 +333,6 @@ private ExplanationOfBenefit transformClaim(OutpatientClaim claimGroup) { } TransformerUtils.setLastUpdated(eob, claimGroup.getLastUpdated()); - String securityTag = - lookUpSamhsaSecurityTags.getClaimSecurityLevel( - String.valueOf(claimGroup.getClaimId()), OutpatientTag.class); - eob.getMeta() .addSecurity() .setSystem("https://terminology.hl7.org/6.1.0/CodeSystem-v3-Confidentiality.html") diff --git a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/SNFClaimTransformer.java b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/SNFClaimTransformer.java index daf02517a1..a70376119a 100644 --- a/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/SNFClaimTransformer.java +++ b/apps/bfd-server/bfd-server-war/src/main/java/gov/cms/bfd/server/war/stu3/providers/SNFClaimTransformer.java @@ -80,7 +80,11 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { } ExplanationOfBenefit eob; try (Timer.Context ignored = metricRegistry.timer(METRIC_NAME).time()) { - eob = transformClaim((SNFClaim) claim); + SNFClaim snfClaim = (SNFClaim) claim; + String securityTag = + lookUpSamhsaSecurityTags.getClaimSecurityLevel( + String.valueOf(snfClaim.getClaimId()), SnfTag.class); + eob = transformClaim(snfClaim, securityTag); } return eob; } @@ -89,10 +93,11 @@ public ExplanationOfBenefit transform(Object claim, boolean includeTaxNumber) { * Transforms a specified {@link SNFClaim} into a FHIR {@link ExplanationOfBenefit}. * * @param claimGroup the CCW {@link SNFClaim} to transform + * @param securityTag securityTag tag of a claim * @return a FHIR {@link ExplanationOfBenefit} resource that represents the specified {@link * SNFClaim} */ - private ExplanationOfBenefit transformClaim(SNFClaim claimGroup) { + private ExplanationOfBenefit transformClaim(SNFClaim claimGroup, String securityTag) { ExplanationOfBenefit eob = new ExplanationOfBenefit(); // Common group level fields between all claim types @@ -251,10 +256,6 @@ private ExplanationOfBenefit transformClaim(SNFClaim claimGroup) { } TransformerUtils.setLastUpdated(eob, claimGroup.getLastUpdated()); - String securityTag = - lookUpSamhsaSecurityTags.getClaimSecurityLevel( - String.valueOf(claimGroup.getClaimId()), SnfTag.class); - eob.getMeta() .addSecurity() .setSystem("https://terminology.hl7.org/6.1.0/CodeSystem-v3-Confidentiality.html")