Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/issues/96_dsf_upgrade' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
hhund committed Oct 12, 2022
2 parents a5a13dc + 818ba36 commit 0e9b00d
Show file tree
Hide file tree
Showing 34 changed files with 132 additions and 80 deletions.
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ codex-processes-ap1-test-data-generator/rsa/*.pem
###
codex-processes-ap1-docker-test-setup/**/bpe/log/*.log
codex-processes-ap1-docker-test-setup/**/bpe/log/*.log.gz
codex-processes-ap1-docker-test-setup/**/bpe/last_event/time.file
codex-processes-ap1-docker-test-setup/**/bpe/plugin/*.jar
codex-processes-ap1-docker-test-setup/**/bpe/process/*.jar

Expand Down
2 changes: 1 addition & 1 deletion codex-process-data-transfer/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>de.netzwerk-universitaetsmedizin.codex</groupId>
<artifactId>codex-processes-ap1</artifactId>
<version>0.6.0-SNAPSHOT</version>
<version>0.7.0-SNAPSHOT</version>
</parent>

<properties>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ public class DataTransferProcessPluginDefinition implements ProcessPluginDefinit
{
private static final Logger logger = LoggerFactory.getLogger(DataTransferProcessPluginDefinition.class);

public static final String VERSION = "0.6.0";
public static final LocalDate DATE = LocalDate.of(2022, 7, 12);
public static final String VERSION = "0.7.0";
public static final LocalDate DATE = LocalDate.of(2022, 10, 13);

@Override
public String getName()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,41 +1,90 @@
package de.netzwerk_universitaetsmedizin.codex.processes.data_transfer.logging;

import java.util.Objects;

import org.highmed.dsf.bpe.service.MailService;
import org.hl7.fhir.r4.model.IdType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;

public class ErrorLogger
public class ErrorLogger implements InitializingBean
{
private static final Logger validationLogger = LoggerFactory.getLogger("validation-error-logger");
private static final Logger errorLogger = LoggerFactory.getLogger("error-logger");

private final MailService mailService;

private final boolean sendValidationFailedMail;
private final boolean sendProcessFailedMail;

public ErrorLogger(MailService mailService, boolean sendValidationFailedMail, boolean sendProcessFailedMail)
{
this.mailService = mailService;

this.sendValidationFailedMail = sendValidationFailedMail;
this.sendProcessFailedMail = sendProcessFailedMail;
}

@Override
public void afterPropertiesSet() throws Exception
{
Objects.requireNonNull(mailService, "mailService");
}

public void logValidationFailed(IdType taskId)
{
validationLogger.debug("Validation of FHIR resources failed, started by Task {}", taskId.getValue());
validationLogger.debug("Validation of FHIR resources failed in process started by {}",
taskId.toVersionless().getValue());

if (sendValidationFailedMail)
mailService.send("Validation Error",
"Validation of FHIR resources failed in process started by " + taskId.toVersionless().getValue());
}

public void logValidationFailedLocal(IdType taskId)
{
validationLogger.debug("Local validation of FHIR resources failed, started by Task {}", taskId.getValue());
validationLogger.debug("Local validation of FHIR resources failed in process started by {}",
taskId.toVersionless().getValue());

if (sendValidationFailedMail)
mailService.send("Validation Error", "Local validation of FHIR resources failed in process started by "
+ taskId.toVersionless().getValue());
}

public void logValidationFailedRemote(IdType taskId)
{
validationLogger.debug("Remote validation of FHIR resources failed, started by Task {}", taskId.getValue());
validationLogger.debug("Remote validation of FHIR resources failed in process started by {}",
taskId.toVersionless().getValue());

if (sendValidationFailedMail)
mailService.send("Validation Error", "Remote validation of FHIR resources failed in process started by "
+ taskId.toVersionless().getValue());
}

public void logDataSendFailed(IdType taskId)
{
errorLogger.debug("Send process failed, started by Task {}", taskId.getValue());
errorLogger.debug("Send process failed started by {}", taskId.toVersionless().getValue());

if (sendProcessFailedMail)
mailService.send("Proccess Failed", "Send process failed started by " + taskId.toVersionless().getValue());
}

public void logDataTranslateFailed(IdType taskId)
{
errorLogger.debug("Translate process failed, started by Task {}", taskId.getValue());
errorLogger.debug("Translate process failed started by {}", taskId.toVersionless().getValue());

if (sendProcessFailedMail)
mailService.send("Proccess Failed",
"Translate process failed started by " + taskId.toVersionless().getValue());
}

public void logDataReceiveFailed(IdType taskId)
{
errorLogger.debug("Receive process failed, started by Task {}", taskId.getValue());
errorLogger.debug("Receive process failed started by {}", taskId.toVersionless().getValue());

if (sendProcessFailedMail)
mailService.send("Proccess Failed",
"Receive process failed started by " + taskId.toVersionless().getValue());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public ContinueSendProcess(FhirWebserviceClientProvider clientProvider, TaskHelp
@Override
protected Target getTarget()
{
return (Target) execution.getVariable(BPMN_EXECUTION_VARIABLE_RETURN_TARGET);
return (Target) getExecution().getVariable(BPMN_EXECUTION_VARIABLE_RETURN_TARGET);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public void afterPropertiesSet() throws Exception
@Override
protected Target getTarget()
{
return (Target) execution.getVariable(BPMN_EXECUTION_VARIABLE_RETURN_TARGET);
return (Target) getExecution().getVariable(BPMN_EXECUTION_VARIABLE_RETURN_TARGET);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public ContinueSendProcessWithValidationError(FhirWebserviceClientProvider clien
@Override
protected Target getTarget()
{
return (Target) execution.getVariable(BPMN_EXECUTION_VARIABLE_RETURN_TARGET);
return (Target) getExecution().getVariable(BPMN_EXECUTION_VARIABLE_RETURN_TARGET);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public ContinueTranslateProcess(FhirWebserviceClientProvider clientProvider, Tas
@Override
protected Target getTarget()
{
return (Target) execution.getVariable(BPMN_EXECUTION_VARIABLE_RETURN_TARGET);
return (Target) getExecution().getVariable(BPMN_EXECUTION_VARIABLE_RETURN_TARGET);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public void afterPropertiesSet() throws Exception
@Override
protected Target getTarget()
{
return (Target) execution.getVariable(BPMN_EXECUTION_VARIABLE_RETURN_TARGET);
return (Target) getExecution().getVariable(BPMN_EXECUTION_VARIABLE_RETURN_TARGET);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public ContinueTranslateProcessWithValidationError(FhirWebserviceClientProvider
@Override
protected Target getTarget()
{
return (Target) execution.getVariable(BPMN_EXECUTION_VARIABLE_RETURN_TARGET);
return (Target) getExecution().getVariable(BPMN_EXECUTION_VARIABLE_RETURN_TARGET);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ protected void doExecute(DelegateExecution execution) throws BpmnError, Exceptio
logger.error("Error while executing process at {}; code: '{}', message: {}", errorSource, errorCode,
errorMessage);

errorLogger.logDataReceiveFailed(getLeadingTaskFromExecutionVariables().getIdElement()
errorLogger.logDataSendFailed(getLeadingTaskFromExecutionVariables().getIdElement()
.withServerBase(getFhirWebserviceClientProvider().getLocalBaseUrl(), ResourceType.Task.name()));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ private Map<String, String> removeValidationResultsCollectSourceIdsIntoMap(Bundl
e.clearUserData(HAPI_USER_DATA_SOURCE_ID_ELEMENT);
e.setResponse(null);
});
execution.setVariable(BPMN_EXECUTION_VARIABLE_BUNDLE, FhirResourceValues.create(bundle));
getExecution().setVariable(BPMN_EXECUTION_VARIABLE_BUNDLE, FhirResourceValues.create(bundle));

return sourceIdByBundleUuid;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ protected void doExecute(DelegateExecution execution) throws BpmnError, Exceptio
logger.warn("Error while executing process at {}; code: '{}', message: {}", errorSource, errorCode,
errorMessage);

errorLogger.logDataReceiveFailed(getLeadingTaskFromExecutionVariables().getIdElement()
errorLogger.logDataTranslateFailed(getLeadingTaskFromExecutionVariables().getIdElement()
.withServerBase(getFhirWebserviceClientProvider().getLocalBaseUrl(), ResourceType.Task.name()));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.nio.file.Paths;
import java.util.List;

import org.highmed.dsf.bpe.service.MailService;
import org.highmed.dsf.fhir.authorization.read.ReadAccessHelper;
import org.highmed.dsf.fhir.client.FhirWebserviceClientProvider;
import org.highmed.dsf.fhir.organization.EndpointProvider;
Expand Down Expand Up @@ -53,6 +54,9 @@ public class TransferDataConfig
@Autowired
private BundleValidatorFactory bundleValidatorFactory;

@Autowired
private MailService mailService;

@ProcessDocumentation(description = "PEM encoded file with trusted certificates to validate the server-certificate of the GECCO FHIR server", processNames = {
"wwwnetzwerk-universitaetsmedizinde_dataSend",
"wwwnetzwerk-universitaetsmedizinde_dataReceive" }, recommendation = "Use docker secret file to configure", example = "/run/secrets/gecco_fhir_server_ca.pem")
Expand Down Expand Up @@ -278,6 +282,18 @@ public class TransferDataConfig
@Value("${de.netzwerk.universitaetsmedizin.codex.fttp.proxy.password:#{null}}")
private String fttpProxyPassword;

@ProcessDocumentation(description = "To enable mails being send on validation errors, set to 'true'. This requires the SMPT mail service client to be configured in the DSF", processNames = {
"wwwnetzwerk-universitaetsmedizinde_dataSend", "wwwnetzwerk-universitaetsmedizinde_dataTranslate",
"wwwnetzwerk-universitaetsmedizinde_dataReceive" })
@Value("${de.netzwerk.universitaetsmedizin.codex.mail.sendValidationFailedMails:false}")
private boolean sendValidationFailedMail;

@ProcessDocumentation(description = "To enable a mail being send if a 'send', 'translate' or 'receive' process instance fails, set to 'true'. This requires the SMPT mail service client to be configured in the DSF", processNames = {
"wwwnetzwerk-universitaetsmedizinde_dataSend", "wwwnetzwerk-universitaetsmedizinde_dataTranslate",
"wwwnetzwerk-universitaetsmedizinde_dataReceive" })
@Value("${de.netzwerk.universitaetsmedizin.codex.mail.sendProcessFailedMails:false}")
private boolean sendProcessFailedMail;

@Value("${org.highmed.dsf.bpe.fhir.server.organization.identifier.value}")
private String localIdentifierValue;

Expand Down Expand Up @@ -422,6 +438,6 @@ public ErrorOutputParameterGenerator errorOutputParameterGenerator()
@Bean
public ErrorLogger errorLogger()
{
return new ErrorLogger();
return new ErrorLogger(mailService, sendValidationFailedMail, sendProcessFailedMail);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
<max value="1" />
<binding>
<strength value="required" />
<valueSet value="http://www.netzwerk-universitaetsmedizin.de/fhir/ValueSet/data-transfer-error" />
<valueSet value="http://www.netzwerk-universitaetsmedizin.de/fhir/ValueSet/data-transfer-error|#{version}" />
</binding>
</element>
<element id="Extension.extension:type.url">
Expand Down Expand Up @@ -81,7 +81,7 @@
<max value="1" />
<binding>
<strength value="required" />
<valueSet value="http://www.netzwerk-universitaetsmedizin.de/fhir/ValueSet/data-transfer-error-source" />
<valueSet value="http://www.netzwerk-universitaetsmedizin.de/fhir/ValueSet/data-transfer-error-source|#{version}" />
</binding>
</element>
<element id="Extension.extension:source.url">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
<max value="1" />
<type>
<code value="Extension" />
<profile value="https://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/error-metadata" />
<profile value="https://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/error-metadata|#{version}" />
</type>
<isModifier value="false" />
</element>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
<path value="Task.input.type" />
<binding>
<strength value="required" />
<valueSet value="http://www.netzwerk-universitaetsmedizin.de/fhir/ValueSet/data-transfer" />
<valueSet value="http://www.netzwerk-universitaetsmedizin.de/fhir/ValueSet/data-transfer|#{version}" />
</binding>
</element>
<element id="Task.input:data.type.coding">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
<max value="1" />
<type>
<code value="Extension" />
<profile value="https://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/error-metadata" />
<profile value="https://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/error-metadata|#{version}" />
</type>
<isModifier value="false" />
</element>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
<path value="Task.input.type" />
<binding>
<strength value="required" />
<valueSet value="http://www.netzwerk-universitaetsmedizin.de/fhir/ValueSet/data-transfer" />
<valueSet value="http://www.netzwerk-universitaetsmedizin.de/fhir/ValueSet/data-transfer|#{version}" />
</binding>
</element>
<element id="Task.input:data.type.coding">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
<path value="Task.input.type" />
<binding>
<strength value="required" />
<valueSet value="http://www.netzwerk-universitaetsmedizin.de/fhir/ValueSet/data-transfer" />
<valueSet value="http://www.netzwerk-universitaetsmedizin.de/fhir/ValueSet/data-transfer|#{version}" />
</binding>
</element>
<element id="Task.input:pseudonym.type.coding">
Expand Down Expand Up @@ -101,7 +101,7 @@
<path value="Task.input.type" />
<binding>
<strength value="required" />
<valueSet value="http://www.netzwerk-universitaetsmedizin.de/fhir/ValueSet/data-transfer" />
<valueSet value="http://www.netzwerk-universitaetsmedizin.de/fhir/ValueSet/data-transfer|#{version}" />
</binding>
</element>
<element id="Task.input:data.type.coding">
Expand Down Expand Up @@ -155,7 +155,7 @@
<min value="0" />
<type>
<code value="Extension" />
<profile value="https://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/error-metadata" />
<profile value="https://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/error-metadata|#{version}" />
</type>
<isModifier value="false" />
</element>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
<path value="Task.input.type" />
<binding>
<strength value="required" />
<valueSet value="http://www.netzwerk-universitaetsmedizin.de/fhir/ValueSet/data-transfer" />
<valueSet value="http://www.netzwerk-universitaetsmedizin.de/fhir/ValueSet/data-transfer|#{version}" />
</binding>
</element>
<element id="Task.input:patient.type.coding">
Expand Down Expand Up @@ -86,7 +86,7 @@
<path value="Task.input.type" />
<binding>
<strength value="required" />
<valueSet value="http://www.netzwerk-universitaetsmedizin.de/fhir/ValueSet/data-transfer" />
<valueSet value="http://www.netzwerk-universitaetsmedizin.de/fhir/ValueSet/data-transfer|#{version}" />
</binding>
</element>
<element id="Task.input:export-from.type.coding">
Expand Down Expand Up @@ -120,7 +120,7 @@
<path value="Task.input.type" />
<binding>
<strength value="required" />
<valueSet value="http://www.netzwerk-universitaetsmedizin.de/fhir/ValueSet/data-transfer" />
<valueSet value="http://www.netzwerk-universitaetsmedizin.de/fhir/ValueSet/data-transfer|#{version}" />
</binding>
</element>
<element id="Task.input:export-to.type.coding">
Expand Down Expand Up @@ -154,7 +154,7 @@
<path value="Task.input.type" />
<binding>
<strength value="required" />
<valueSet value="http://www.netzwerk-universitaetsmedizin.de/fhir/ValueSet/data-transfer" />
<valueSet value="http://www.netzwerk-universitaetsmedizin.de/fhir/ValueSet/data-transfer|#{version}" />
</binding>
</element>
<element id="Task.input:dry-run.type.coding">
Expand Down Expand Up @@ -199,7 +199,7 @@
<min value="0" />
<type>
<code value="Extension" />
<profile value="https://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/error-metadata" />
<profile value="https://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/error-metadata|#{version}" />
</type>
<isModifier value="false" />
</element>
Expand Down
Loading

0 comments on commit 0e9b00d

Please sign in to comment.