From e81827fe9db27ad0fa903ce5f5201885efd04dcb Mon Sep 17 00:00:00 2001 From: Brenin Rhodes Date: Thu, 25 Apr 2024 09:04:50 -0600 Subject: [PATCH] cleanup --- .../PrefetchTemplateBuilderDstu3.java | 28 +++++++++---------- .../discovery/PrefetchTemplateBuilderR4.java | 8 +----- .../discovery/PrefetchTemplateBuilderR5.java | 25 ++++++++--------- 3 files changed, 26 insertions(+), 35 deletions(-) diff --git a/hapi-fhir-server-cds-hooks/src/main/java/ca/uhn/hapi/fhir/cdshooks/svc/cr/discovery/PrefetchTemplateBuilderDstu3.java b/hapi-fhir-server-cds-hooks/src/main/java/ca/uhn/hapi/fhir/cdshooks/svc/cr/discovery/PrefetchTemplateBuilderDstu3.java index 0d754b3df99..9e994b509b0 100644 --- a/hapi-fhir-server-cds-hooks/src/main/java/ca/uhn/hapi/fhir/cdshooks/svc/cr/discovery/PrefetchTemplateBuilderDstu3.java +++ b/hapi-fhir-server-cds-hooks/src/main/java/ca/uhn/hapi/fhir/cdshooks/svc/cr/discovery/PrefetchTemplateBuilderDstu3.java @@ -46,7 +46,6 @@ public class PrefetchTemplateBuilderDstu3 extends BasePrefetchTemplateBuilder { PrefetchUrlList prefetchList = new PrefetchUrlList(); if (thePlanDefinition == null) return null; Library library = resolvePrimaryLibrary(thePlanDefinition); - // TODO: resolve data requirements if (!library.hasDataRequirement()) return null; for (DataRequirement dataRequirement : library.getDataRequirement()) { List requestUrls = createRequestUrl(dataRequirement); @@ -58,6 +57,7 @@ public class PrefetchTemplateBuilderDstu3 extends BasePrefetchTemplateBuilder { return prefetchList; } + @SuppressWarnings("ReassignedVariable") protected Library resolvePrimaryLibrary(PlanDefinition thePlanDefinition) { Library library = null; Extension dataReqExt = thePlanDefinition.getExtensionByUrl(CRMI_EFFECTIVE_DATA_REQUIREMENTS); @@ -82,7 +82,7 @@ public class PrefetchTemplateBuilderDstu3 extends BasePrefetchTemplateBuilder { List fhirQueryExtList = theDataRequirement.getExtension().stream() .filter(e -> e.getUrl().equals(CQF_FHIR_QUERY_PATTERN) && e.hasValue()) .collect(Collectors.toList()); - if (fhirQueryExtList != null && !fhirQueryExtList.isEmpty()) { + if (!fhirQueryExtList.isEmpty()) { for (Extension fhirQueryExt : fhirQueryExtList) { urlList.add(fhirQueryExt.getValueAsPrimitive().getValueAsString()); } @@ -105,12 +105,12 @@ public class PrefetchTemplateBuilderDstu3 extends BasePrefetchTemplateBuilder { return urlList; } + @SuppressWarnings("ReassignedVariable") protected void resolveCodeFilter(DataRequirement theDataRequirement, List theUrlList, String theBaseQuery) { for (DataRequirement.DataRequirementCodeFilterComponent codeFilterComponent : theDataRequirement.getCodeFilter()) { if (!codeFilterComponent.hasPath()) continue; String path = mapCodePathToSearchParam(theDataRequirement.getType(), codeFilterComponent.getPath()); - StringType codeFilterComponentString = null; if (codeFilterComponent.hasValueSetStringType()) { codeFilterComponentString = codeFilterComponent.getValueSetStringType(); @@ -126,7 +126,6 @@ public class PrefetchTemplateBuilderDstu3 extends BasePrefetchTemplateBuilder { } else { theUrlList.add("," + code); } - isFirstCodingInFilter = false; } } @@ -139,23 +138,22 @@ public class PrefetchTemplateBuilderDstu3 extends BasePrefetchTemplateBuilder { } } + @SuppressWarnings("ReassignedVariable") protected List resolveValueCodingCodes(List theValueCodings) { List result = new ArrayList<>(); - StringBuilder codes = new StringBuilder(); for (Coding coding : theValueCodings) { if (coding.hasCode()) { String system = coding.getSystem(); String code = coding.getCode(); - codes = getCodesStringBuilder(result, codes, system, code); } } - result.add(codes.toString()); return result; } + @SuppressWarnings("ReassignedVariable") protected List resolveValueSetCodes(StringType theValueSetId) { ValueSet valueSet = (ValueSet) SearchHelper.searchRepositoryByCanonical(myRepository, theValueSetId); List result = new ArrayList<>(); @@ -187,17 +185,17 @@ public class PrefetchTemplateBuilderDstu3 extends BasePrefetchTemplateBuilder { @SuppressWarnings("ReassignedVariable") protected StringBuilder getCodesStringBuilder( List theStrings, StringBuilder theCodes, String theSystem, String theCode) { + StringBuilder codes = theCodes; String codeToken = theSystem + "|" + theCode; - int postAppendLength = theCodes.length() + codeToken.length(); - - if (theCodes.length() > 0 && postAppendLength < myMaxUriLength) { - theCodes.append(","); + int postAppendLength = codes.length() + codeToken.length(); + if (codes.length() > 0 && postAppendLength < myMaxUriLength) { + codes.append(","); } else if (postAppendLength > myMaxUriLength) { - theStrings.add(theCodes.toString()); - theCodes = new StringBuilder(); + theStrings.add(codes.toString()); + codes = new StringBuilder(); } - theCodes.append(codeToken); - return theCodes; + codes.append(codeToken); + return codes; } protected String mapCodePathToSearchParam(String theDataType, String thePath) { diff --git a/hapi-fhir-server-cds-hooks/src/main/java/ca/uhn/hapi/fhir/cdshooks/svc/cr/discovery/PrefetchTemplateBuilderR4.java b/hapi-fhir-server-cds-hooks/src/main/java/ca/uhn/hapi/fhir/cdshooks/svc/cr/discovery/PrefetchTemplateBuilderR4.java index 78108dafe86..bc4047bc7c2 100644 --- a/hapi-fhir-server-cds-hooks/src/main/java/ca/uhn/hapi/fhir/cdshooks/svc/cr/discovery/PrefetchTemplateBuilderR4.java +++ b/hapi-fhir-server-cds-hooks/src/main/java/ca/uhn/hapi/fhir/cdshooks/svc/cr/discovery/PrefetchTemplateBuilderR4.java @@ -56,6 +56,7 @@ public class PrefetchTemplateBuilderR4 extends BasePrefetchTemplateBuilder { return prefetchList; } + @SuppressWarnings("ReassignedVariable") protected Library resolvePrimaryLibrary(PlanDefinition thePlanDefinition) { Library library = null; Extension dataReqExt = thePlanDefinition.getExtensionByUrl(CRMI_EFFECTIVE_DATA_REQUIREMENTS); @@ -121,7 +122,6 @@ public class PrefetchTemplateBuilderR4 extends BasePrefetchTemplateBuilder { } else { theUrlList.add("," + code); } - isFirstCodingInFilter = false; } } @@ -131,17 +131,14 @@ public class PrefetchTemplateBuilderR4 extends BasePrefetchTemplateBuilder { @SuppressWarnings("ReassignedVariable") protected List resolveValueCodingCodes(List theValueCodings) { List result = new ArrayList<>(); - StringBuilder codes = new StringBuilder(); for (Coding coding : theValueCodings) { if (coding.hasCode()) { String system = coding.getSystem(); String code = coding.getCode(); - codes = getCodesStringBuilder(result, codes, system, code); } } - result.add(codes.toString()); return result; } @@ -156,7 +153,6 @@ public class PrefetchTemplateBuilderR4 extends BasePrefetchTemplateBuilder { valueSet.getExpansion().getContains()) { String system = contains.getSystem(); String code = contains.getCode(); - codes = getCodesStringBuilder(result, codes, system, code); } } else if (valueSet.hasCompose() && valueSet.getCompose().hasInclude()) { @@ -165,7 +161,6 @@ public class PrefetchTemplateBuilderR4 extends BasePrefetchTemplateBuilder { if (concepts.hasConcept()) { for (ValueSet.ConceptReferenceComponent concept : concepts.getConcept()) { String code = concept.getCode(); - codes = getCodesStringBuilder(result, codes, system, code); } } @@ -181,7 +176,6 @@ public class PrefetchTemplateBuilderR4 extends BasePrefetchTemplateBuilder { StringBuilder codes = theCodes; String codeToken = theSystem + "|" + theCode; int postAppendLength = codes.length() + codeToken.length(); - if (codes.length() > 0 && postAppendLength < myMaxUriLength) { codes.append(","); } else if (postAppendLength > myMaxUriLength) { diff --git a/hapi-fhir-server-cds-hooks/src/main/java/ca/uhn/hapi/fhir/cdshooks/svc/cr/discovery/PrefetchTemplateBuilderR5.java b/hapi-fhir-server-cds-hooks/src/main/java/ca/uhn/hapi/fhir/cdshooks/svc/cr/discovery/PrefetchTemplateBuilderR5.java index 8d5c20575c2..5e81cca8d26 100644 --- a/hapi-fhir-server-cds-hooks/src/main/java/ca/uhn/hapi/fhir/cdshooks/svc/cr/discovery/PrefetchTemplateBuilderR5.java +++ b/hapi-fhir-server-cds-hooks/src/main/java/ca/uhn/hapi/fhir/cdshooks/svc/cr/discovery/PrefetchTemplateBuilderR5.java @@ -56,6 +56,7 @@ public class PrefetchTemplateBuilderR5 extends BasePrefetchTemplateBuilder { return prefetchList; } + @SuppressWarnings("ReassignedVariable") protected Library resolvePrimaryLibrary(PlanDefinition thePlanDefinition) { Library library = null; Extension dataReqExt = thePlanDefinition.getExtensionByUrl(CRMI_EFFECTIVE_DATA_REQUIREMENTS); @@ -79,7 +80,7 @@ public class PrefetchTemplateBuilderR5 extends BasePrefetchTemplateBuilder { List fhirQueryExtList = theDataRequirement.getExtension().stream() .filter(e -> e.getUrl().equals(CQF_FHIR_QUERY_PATTERN) && e.hasValue()) .collect(Collectors.toList()); - if (fhirQueryExtList != null && !fhirQueryExtList.isEmpty()) { + if (!fhirQueryExtList.isEmpty()) { for (Extension fhirQueryExt : fhirQueryExtList) { urlList.add(fhirQueryExt.getValueAsPrimitive().getValueAsString()); } @@ -102,6 +103,7 @@ public class PrefetchTemplateBuilderR5 extends BasePrefetchTemplateBuilder { return urlList; } + @SuppressWarnings("ReassignedVariable") protected void resolveCodeFilter(DataRequirement theDataRequirement, List theUrlList, String theBaseQuery) { for (DataRequirement.DataRequirementCodeFilterComponent codeFilterComponent : theDataRequirement.getCodeFilter()) { @@ -121,26 +123,23 @@ public class PrefetchTemplateBuilderR5 extends BasePrefetchTemplateBuilder { } else { theUrlList.add("," + code); } - isFirstCodingInFilter = false; } } } } + @SuppressWarnings("ReassignedVariable") protected List resolveValueCodingCodes(List theValueCodings) { List result = new ArrayList<>(); - StringBuilder codes = new StringBuilder(); for (Coding coding : theValueCodings) { if (coding.hasCode()) { String system = coding.getSystem(); String code = coding.getCode(); - codes = getCodesStringBuilder(result, codes, system, code); } } - result.add(codes.toString()); return result; } @@ -176,17 +175,17 @@ public class PrefetchTemplateBuilderR5 extends BasePrefetchTemplateBuilder { @SuppressWarnings("ReassignedVariable") protected StringBuilder getCodesStringBuilder( List theStrings, StringBuilder theCodes, String theSystem, String theCode) { + StringBuilder codes = theCodes; String codeToken = theSystem + "|" + theCode; - int postAppendLength = theCodes.length() + codeToken.length(); - - if (theCodes.length() > 0 && postAppendLength < myMaxUriLength) { - theCodes.append(","); + int postAppendLength = codes.length() + codeToken.length(); + if (codes.length() > 0 && postAppendLength < myMaxUriLength) { + codes.append(","); } else if (postAppendLength > myMaxUriLength) { - theStrings.add(theCodes.toString()); - theCodes = new StringBuilder(); + theStrings.add(codes.toString()); + codes = new StringBuilder(); } - theCodes.append(codeToken); - return theCodes; + codes.append(codeToken); + return codes; } protected String mapCodePathToSearchParam(String theDataType, String thePath) {