From ac9d110074d968a7d7afb1f917c34686ab5608b7 Mon Sep 17 00:00:00 2001 From: Berkant Karduman Date: Wed, 15 Nov 2023 19:42:50 +0300 Subject: [PATCH 1/2] compositeId added for ref_type search parameters. Signed-off-by: Berkant KARDUMAN --- .../params/database/PlainBatchParameterProcessor.java | 2 +- .../params/database/PlainPostgresParameterBatch.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/fhir-persistence-params/src/main/java/org/linuxforhealth/fhir/persistence/params/database/PlainBatchParameterProcessor.java b/fhir-persistence-params/src/main/java/org/linuxforhealth/fhir/persistence/params/database/PlainBatchParameterProcessor.java index eeb064ae694..306754657f8 100644 --- a/fhir-persistence-params/src/main/java/org/linuxforhealth/fhir/persistence/params/database/PlainBatchParameterProcessor.java +++ b/fhir-persistence-params/src/main/java/org/linuxforhealth/fhir/persistence/params/database/PlainBatchParameterProcessor.java @@ -333,7 +333,7 @@ public void process(String requestShard, String resourceType, String logicalId, try { PlainPostgresParameterBatch dao = getParameterBatchDao(resourceType); - dao.addReference(logicalResourceId, parameterNameValue.getParameterNameId(), refLogicalResourceId.getLogicalResourceId(), parameter.getRefVersionId()); + dao.addReference(logicalResourceId, parameterNameValue.getParameterNameId(), refLogicalResourceId.getLogicalResourceId(), parameter.getRefVersionId(),parameter.getCompositeId()); } catch (SQLException x) { throw new FHIRPersistenceException("Failed inserting security params for '" + resourceType + "'"); } diff --git a/fhir-persistence-params/src/main/java/org/linuxforhealth/fhir/persistence/params/database/PlainPostgresParameterBatch.java b/fhir-persistence-params/src/main/java/org/linuxforhealth/fhir/persistence/params/database/PlainPostgresParameterBatch.java index dc2065794d9..bde4bc637d6 100644 --- a/fhir-persistence-params/src/main/java/org/linuxforhealth/fhir/persistence/params/database/PlainPostgresParameterBatch.java +++ b/fhir-persistence-params/src/main/java/org/linuxforhealth/fhir/persistence/params/database/PlainPostgresParameterBatch.java @@ -516,11 +516,11 @@ public void addSecurity(long logicalResourceId, long commonTokenValueId) throws * @param refLogicalResourceId * @param refVersionId */ - public void addReference(long logicalResourceId, int parameterNameId, long refLogicalResourceId, Integer refVersionId) throws SQLException { + public void addReference(long logicalResourceId, int parameterNameId, long refLogicalResourceId, Integer refVersionId,Integer compositeId) throws SQLException { logger.fine(() -> "Adding reference: parameterNameId:" + parameterNameId + " refLogicalResourceId:" + refLogicalResourceId + " refVersionId:" + refVersionId); if (refs == null) { final String tablePrefix = resourceType.toLowerCase(); - final String insertString = "INSERT INTO " + tablePrefix + "_ref_values (parameter_name_id, logical_resource_id, ref_logical_resource_id, ref_version_id) VALUES (?,?,?,?)"; + final String insertString = "INSERT INTO " + tablePrefix + "_ref_values (parameter_name_id, logical_resource_id, ref_logical_resource_id, ref_version_id,composite_id) VALUES (?,?,?,?,?)"; refs = connection.prepareStatement(insertString); } PreparedStatementHelper psh = new PreparedStatementHelper(refs); @@ -528,6 +528,7 @@ public void addReference(long logicalResourceId, int parameterNameId, long refLo .setLong(logicalResourceId) .setLong(refLogicalResourceId) .setInt(refVersionId) + .setInt(compositeId) .addBatch(); refCount++; } From 01baac16f8a5dec2c6eb961c7841f4af7b3d7fd1 Mon Sep 17 00:00:00 2001 From: Berkant Karduman Date: Wed, 15 Nov 2023 19:54:57 +0300 Subject: [PATCH 2/2] Unittest are failing because of the name pattern. All objects including user-names should fallow the same naming convention. Signed-off-by: Berkant KARDUMAN --- .../fhir/database/utils/common/DataDefinitionUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fhir-database-utils/src/main/java/org/linuxforhealth/fhir/database/utils/common/DataDefinitionUtil.java b/fhir-database-utils/src/main/java/org/linuxforhealth/fhir/database/utils/common/DataDefinitionUtil.java index 3bacdfafb38..ffd585e6e77 100644 --- a/fhir-database-utils/src/main/java/org/linuxforhealth/fhir/database/utils/common/DataDefinitionUtil.java +++ b/fhir-database-utils/src/main/java/org/linuxforhealth/fhir/database/utils/common/DataDefinitionUtil.java @@ -21,7 +21,7 @@ * Handles common syntax for generating DDL */ public class DataDefinitionUtil { - private static final String NAME_PATTERN_RGX = "[a-zA-Z_][-\\w]*$"; + private static final String NAME_PATTERN_RGX = "[a-zA-Z_][\\w]*$"; private static final Pattern NAME_PATTERN = Pattern.compile(NAME_PATTERN_RGX); /**