Skip to content
This repository was archived by the owner on Oct 6, 2025. It is now read-only.

Commit 4e5a6ff

Browse files
committed
improved logging by @hhund
1 parent f3bacda commit 4e5a6ff

File tree

9 files changed

+58
-19
lines changed

9 files changed

+58
-19
lines changed

codex-process-data-transfer/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/data_transfer/service/receive/StoreValidationErrorForDts.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import org.slf4j.Logger;
1616
import org.slf4j.LoggerFactory;
1717

18-
import ca.uhn.fhir.context.FhirContext;
18+
import de.netzwerk_universitaetsmedizin.codex.processes.data_transfer.logging.DataLogger;
1919
import dev.dsf.bpe.v1.ProcessPluginApi;
2020
import dev.dsf.bpe.v1.activity.AbstractServiceDelegate;
2121
import dev.dsf.bpe.v1.constants.NamingSystems;
@@ -26,12 +26,14 @@ public class StoreValidationErrorForDts extends AbstractServiceDelegate
2626
private static final Logger logger = LoggerFactory.getLogger(StoreValidationErrorForDts.class);
2727

2828
private final String dtsIdentifierValue;
29+
private final DataLogger dataLogger;
2930

30-
public StoreValidationErrorForDts(ProcessPluginApi api, String dtsIdentifierValue)
31+
public StoreValidationErrorForDts(ProcessPluginApi api, String dtsIdentifierValue, DataLogger dataLogger)
3132
{
3233
super(api);
3334

3435
this.dtsIdentifierValue = dtsIdentifierValue;
36+
this.dataLogger = dataLogger;
3537
}
3638

3739
@Override
@@ -40,6 +42,7 @@ public void afterPropertiesSet() throws Exception
4042
super.afterPropertiesSet();
4143

4244
Objects.requireNonNull(dtsIdentifierValue, "dtsIdentifierValue");
45+
Objects.requireNonNull(dataLogger, "dataLogger");
4346
}
4447

4548
@Override
@@ -72,7 +75,7 @@ private IdType createBinaryResource(Binary binary)
7275
}
7376
catch (Exception e)
7477
{
75-
logger.debug("Binary to create {}", FhirContext.forR4().newJsonParser().encodeResourceToString(binary));
78+
dataLogger.logData("Binary to create", binary);
7679
logger.warn("Error while creating Binary resource: " + e.getMessage(), e);
7780

7881
throw new BpmnError(

codex-process-data-transfer/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/data_transfer/service/send/StoreDataForDts.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import org.slf4j.Logger;
1616
import org.slf4j.LoggerFactory;
1717

18-
import ca.uhn.fhir.context.FhirContext;
18+
import de.netzwerk_universitaetsmedizin.codex.processes.data_transfer.logging.DataLogger;
1919
import dev.dsf.bpe.v1.ProcessPluginApi;
2020
import dev.dsf.bpe.v1.activity.AbstractServiceDelegate;
2121
import dev.dsf.bpe.v1.constants.NamingSystems;
@@ -27,12 +27,14 @@ public class StoreDataForDts extends AbstractServiceDelegate
2727
private static final Logger logger = LoggerFactory.getLogger(StoreDataForDts.class);
2828

2929
private final String dtsIdentifierValue;
30+
private final DataLogger dataLogger;
3031

31-
public StoreDataForDts(ProcessPluginApi api, String dtsIdentifierValue)
32+
public StoreDataForDts(ProcessPluginApi api, String dtsIdentifierValue, DataLogger dataLogger)
3233
{
3334
super(api);
3435

3536
this.dtsIdentifierValue = dtsIdentifierValue;
37+
this.dataLogger = dataLogger;
3638
}
3739

3840
@Override
@@ -41,6 +43,7 @@ public void afterPropertiesSet() throws Exception
4143
super.afterPropertiesSet();
4244

4345
Objects.requireNonNull(dtsIdentifierValue, "dtsIdentifierValue");
46+
Objects.requireNonNull(dataLogger, "dataLogger");
4447
}
4548

4649
@Override
@@ -72,7 +75,7 @@ private IdType createBinaryResource(Binary binary)
7275
}
7376
catch (Exception e)
7477
{
75-
logger.debug("Binary to create {}", FhirContext.forR4().newJsonParser().encodeResourceToString(binary));
78+
dataLogger.logData("Binary to create", binary);
7679
logger.warn("Error while creating Binary resource: " + e.getMessage(), e);
7780

7881
throw new BpmnError(CODESYSTEM_NUM_CODEX_DATA_TRANSFER_ERROR_VALUE_UNABLE_TO_STORE_ECRYPTED_DATA,

codex-process-data-transfer/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/data_transfer/service/translate/StoreDataForCrr.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import org.slf4j.Logger;
1616
import org.slf4j.LoggerFactory;
1717

18-
import ca.uhn.fhir.context.FhirContext;
18+
import de.netzwerk_universitaetsmedizin.codex.processes.data_transfer.logging.DataLogger;
1919
import dev.dsf.bpe.v1.ProcessPluginApi;
2020
import dev.dsf.bpe.v1.activity.AbstractServiceDelegate;
2121
import dev.dsf.bpe.v1.constants.NamingSystems;
@@ -27,12 +27,14 @@ public class StoreDataForCrr extends AbstractServiceDelegate
2727
private static final Logger logger = LoggerFactory.getLogger(StoreDataForCrr.class);
2828

2929
private final String crrIdentifierValue;
30+
private final DataLogger dataLogger;
3031

31-
public StoreDataForCrr(ProcessPluginApi api, String crrIdentifierValue)
32+
public StoreDataForCrr(ProcessPluginApi api, String crrIdentifierValue, DataLogger dataLogger)
3233
{
3334
super(api);
3435

3536
this.crrIdentifierValue = crrIdentifierValue;
37+
this.dataLogger = dataLogger;
3638
}
3739

3840
@Override
@@ -41,6 +43,7 @@ public void afterPropertiesSet() throws Exception
4143
super.afterPropertiesSet();
4244

4345
Objects.requireNonNull(crrIdentifierValue, "crrIdentifierValue");
46+
Objects.requireNonNull(dataLogger, "dataLogger");
4447
}
4548

4649
@Override
@@ -72,7 +75,7 @@ private IdType createBinaryResource(Binary binary)
7275
}
7376
catch (Exception e)
7477
{
75-
logger.debug("Binary to create {}", FhirContext.forR4().newJsonParser().encodeResourceToString(binary));
78+
dataLogger.logData("Binary to create", binary);
7679
logger.warn("Error while creating Binary resource: " + e.getMessage(), e);
7780

7881
throw new BpmnError(CODESYSTEM_NUM_CODEX_DATA_TRANSFER_ERROR_VALUE_UNABLE_TO_STORE_ECRYPTED_DATA,

codex-process-data-transfer/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/data_transfer/service/translate/StoreValidationErrorForDic.java

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import static de.netzwerk_universitaetsmedizin.codex.processes.data_transfer.ConstantsDataTransfer.BPMN_EXECUTION_VARIABLE_BUNDLE;
55
import static de.netzwerk_universitaetsmedizin.codex.processes.data_transfer.ConstantsDataTransfer.CODESYSTEM_NUM_CODEX_DATA_TRANSFER_ERROR_VALUE_UNABLE_TO_STORE_ECRYPTED_VALIDATION_ERROR;
66

7+
import java.util.Objects;
8+
79
import org.camunda.bpm.engine.delegate.BpmnError;
810
import org.camunda.bpm.engine.delegate.DelegateExecution;
911
import org.hl7.fhir.r4.model.Binary;
@@ -12,21 +14,34 @@
1214
import org.hl7.fhir.r4.model.ResourceType;
1315
import org.slf4j.Logger;
1416
import org.slf4j.LoggerFactory;
17+
import org.springframework.beans.factory.InitializingBean;
1518

16-
import ca.uhn.fhir.context.FhirContext;
19+
import de.netzwerk_universitaetsmedizin.codex.processes.data_transfer.logging.DataLogger;
1720
import dev.dsf.bpe.v1.ProcessPluginApi;
1821
import dev.dsf.bpe.v1.activity.AbstractServiceDelegate;
1922
import dev.dsf.bpe.v1.constants.NamingSystems;
2023
import dev.dsf.bpe.v1.variables.Variables;
2124
import jakarta.ws.rs.core.MediaType;
2225

23-
public class StoreValidationErrorForDic extends AbstractServiceDelegate
26+
public class StoreValidationErrorForDic extends AbstractServiceDelegate implements InitializingBean
2427
{
2528
private static final Logger logger = LoggerFactory.getLogger(StoreValidationErrorForDic.class);
2629

27-
public StoreValidationErrorForDic(ProcessPluginApi api)
30+
private DataLogger dataLogger;
31+
32+
public StoreValidationErrorForDic(ProcessPluginApi api, DataLogger dataLogger)
2833
{
2934
super(api);
35+
36+
this.dataLogger = dataLogger;
37+
}
38+
39+
@Override
40+
public void afterPropertiesSet() throws Exception
41+
{
42+
super.afterPropertiesSet();
43+
44+
Objects.requireNonNull(dataLogger, "dataLogger");
3045
}
3146

3247
@Override
@@ -60,7 +75,7 @@ private IdType createBinaryResource(Binary binary)
6075
}
6176
catch (Exception e)
6277
{
63-
logger.debug("Binary to create {}", FhirContext.forR4().newJsonParser().encodeResourceToString(binary));
78+
dataLogger.logData("Binary to create", binary);
6479
logger.warn("Error while creating Binary resource: " + e.getMessage(), e);
6580

6681
throw new BpmnError(

codex-process-data-transfer/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/data_transfer/spring/config/ReceiveConfig.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,8 @@ public EncryptValidationError encryptValidationError()
8484
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
8585
public StoreValidationErrorForDts storeValidationErrorForDts()
8686
{
87-
return new StoreValidationErrorForDts(api, transferDataConfig.dtsIdentifierValue());
87+
return new StoreValidationErrorForDts(api, transferDataConfig.dtsIdentifierValue(),
88+
transferDataConfig.dataLogger());
8889
}
8990

9091
@Bean

codex-process-data-transfer/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/data_transfer/spring/config/SendConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ public AfterDryRunEndListener afterDryRunEndListener()
125125
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
126126
public StoreDataForDts storeDataForDts()
127127
{
128-
return new StoreDataForDts(api, transferDataConfig.dtsIdentifierValue());
128+
return new StoreDataForDts(api, transferDataConfig.dtsIdentifierValue(), transferDataConfig.dataLogger());
129129
}
130130

131131
@Bean

codex-process-data-transfer/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/data_transfer/spring/config/TranslateConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public ReplacePseudonym replacePseudonym()
5252
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
5353
public StoreDataForCrr storeDataForCodex()
5454
{
55-
return new StoreDataForCrr(api, transferDataConfig.crrIdentifierValue());
55+
return new StoreDataForCrr(api, transferDataConfig.crrIdentifierValue(), transferDataConfig.dataLogger());
5656
}
5757

5858
@Bean
@@ -108,7 +108,7 @@ public DownloadValidationErrorFromCrr downloadValidationErrorFromCrr()
108108
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
109109
public StoreValidationErrorForDic storeValidationErrorForDic()
110110
{
111-
return new StoreValidationErrorForDic(api);
111+
return new StoreValidationErrorForDic(api, transferDataConfig.dataLogger());
112112
}
113113

114114
@Bean

codex-process-data-transfer/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/data_transfer/validation/PluginSnapshotGeneratorWithFileSystemCache.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ private SnapshotWithValidationMessages generateSnapshotAndWriteToCache(Structure
105105

106106
if (PublicationStatus.DRAFT.equals(snapshot.getSnapshot().getStatus()))
107107
{
108-
logger.info("Not writing StructureDefinition {}|{} with snapshot and status {} to cache",
108+
logger.warn("Not writing StructureDefinition {}|{} with snapshot and status {} to cache",
109109
snapshot.getSnapshot().getUrl(), snapshot.getSnapshot().getVersion(),
110110
snapshot.getSnapshot().getStatus());
111111
return snapshot;

codex-process-data-transfer/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/data_transfer/validation/ValidationPackageManagerImpl.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.hl7.fhir.common.hapi.validation.support.InMemoryTerminologyServerValidationSupport;
1818
import org.hl7.fhir.common.hapi.validation.support.ValidationSupportChain;
1919
import org.hl7.fhir.r4.model.Enumerations.BindingStrength;
20+
import org.hl7.fhir.r4.model.Enumerations.PublicationStatus;
2021
import org.hl7.fhir.r4.model.StructureDefinition;
2122
import org.hl7.fhir.r4.model.ValueSet;
2223
import org.hl7.fhir.r4.model.ValueSet.ConceptSetComponent;
@@ -367,9 +368,22 @@ private void createSnapshot(ValidationPackageWithDepedencies packageWithDependen
367368
definitions.stream()
368369
.filter(sd -> !sd.equals(diff) && !sd.getUrl().equals(diff.getBaseDefinition())
369370
&& !(sd.getUrl() + "|" + sd.getVersion()).equals(diff.getBaseDefinition()))
370-
.map(sd -> sd.getUrl() + "|" + sd.getVersion()).sorted()
371+
.map(sd -> sd.getUrl() + "|" + sd.getVersion()).distinct().sorted()
371372
.collect(Collectors.joining(", ", "[", "]")));
372373

374+
String dependenciesWithDifferentStatus = definitions.stream()
375+
.filter(sd -> !sd.equals(diff) && !sd.getUrl().equals(diff.getBaseDefinition())
376+
&& !(sd.getUrl() + "|" + sd.getVersion()).equals(diff.getBaseDefinition()))
377+
.filter(sd -> !sd.getStatus().equals(diff.getStatus()))
378+
.map(sd -> sd.getUrl() + "|" + sd.getVersion() + ": " + sd.getStatus().toCode()).distinct().sorted()
379+
.collect(Collectors.joining(", "));
380+
381+
if (PublicationStatus.ACTIVE.equals(diff.getStatus()) && !dependenciesWithDifferentStatus.isEmpty())
382+
{
383+
logger.warn("StructureDefinition {}|{}, has dependencies with no active status [{}]", diff.getUrl(),
384+
diff.getVersion(), dependenciesWithDifferentStatus);
385+
}
386+
373387
definitions.stream().filter(sd -> sd.hasDifferential() && !sd.hasSnapshot()
374388
&& !snapshots.containsKey(sd.getUrl() + "|" + sd.getVersion())).forEach(sd ->
375389
{

0 commit comments

Comments
 (0)