This commit is contained in:
leif stawnyczy 2024-07-10 11:20:56 -04:00
parent d61d5bc70d
commit 141538eca9
3 changed files with 17 additions and 18 deletions

View File

@ -473,9 +473,9 @@ public class HapiFhirJpaMigrationTasks extends BaseMigrationTasks<VersionEnum> {
* Adding new column to ResourceLink
*/
version.onTable("HFJ_RES_LINK")
.addColumn("20240710.1", "TARGET_RESOURCE_URL_VERSION")
.nullable()
.type(ColumnTypeEnum.STRING, 50);
.addColumn("20240710.1", "TARGET_RESOURCE_URL_VERSION")
.nullable()
.type(ColumnTypeEnum.STRING, 50);
}
protected void init720() {

View File

@ -331,21 +331,22 @@ public class ResourceLinkPredicateBuilder extends BaseJoiningPredicateBuilder im
Condition targetUrlsCondition = null;
if (!theTargetQualifiedUrls.isEmpty()) {
//TODO - these urls may have versions
// TODO - these urls may have versions
AtomicBoolean hasVersions = new AtomicBoolean();
List<UrlUtil.UrlAndVersion> urlAndVersions = theTargetQualifiedUrls.stream()
.map((url) -> {
UrlUtil.UrlAndVersion urlAndVersion = UrlUtil.parseUrlWithVersion(url);
if (isNotBlank(urlAndVersion.Version)) {
hasVersions.set(true);
}
return urlAndVersion;
}).collect(Collectors.toList());
.map((url) -> {
UrlUtil.UrlAndVersion urlAndVersion = UrlUtil.parseUrlWithVersion(url);
if (isNotBlank(urlAndVersion.Version)) {
hasVersions.set(true);
}
return urlAndVersion;
})
.collect(Collectors.toList());
if (!hasVersions.get()) {
List<String> placeholders = generatePlaceholders(theTargetQualifiedUrls);
targetUrlsCondition =
QueryParameterUtils.toEqualToOrInPredicate(myColumnTargetResourceUrl, placeholders, theInverse);
QueryParameterUtils.toEqualToOrInPredicate(myColumnTargetResourceUrl, placeholders, theInverse);
} else {
// there may be some versions or not on these values
List<Condition> conditions = new ArrayList<>();
@ -360,9 +361,7 @@ public class ResourceLinkPredicateBuilder extends BaseJoiningPredicateBuilder im
} else {
versionCondition = BinaryCondition.EMPTY;
}
conditions.add(
QueryParameterUtils.toAndPredicate(urlCondition, versionCondition)
);
conditions.add(QueryParameterUtils.toAndPredicate(urlCondition, versionCondition));
}
// or is the default for multiple query params
targetUrlsCondition = QueryParameterUtils.toOrPredicate(conditions);

View File

@ -80,9 +80,6 @@ import org.hl7.fhir.instance.model.api.IPrimitiveType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import javax.measure.quantity.Quantity;
import javax.measure.unit.NonSI;
import javax.measure.unit.Unit;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
@ -96,6 +93,9 @@ import java.util.Optional;
import java.util.Set;
import java.util.TreeSet;
import java.util.stream.Collectors;
import javax.measure.quantity.Quantity;
import javax.measure.unit.NonSI;
import javax.measure.unit.Unit;
import static ca.uhn.fhir.rest.api.RestSearchParameterTypeEnum.DATE;
import static ca.uhn.fhir.rest.api.RestSearchParameterTypeEnum.REFERENCE;