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

Commit 4e07a83

Browse files
committed
Merge remote-tracking branch 'origin/hotfix/106_DSF_0.9.0_Backport' into
release/0.6.0.1
2 parents d1b1868 + 315fb57 commit 4e07a83

File tree

62 files changed

+228
-203
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+228
-203
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ codex-processes-ap1-test-data-generator/rsa/*.pem
2828
###
2929
codex-processes-ap1-docker-test-setup/**/bpe/log/*.log
3030
codex-processes-ap1-docker-test-setup/**/bpe/log/*.log.gz
31-
codex-processes-ap1-docker-test-setup/**/bpe/last_event/time.file
3231
codex-processes-ap1-docker-test-setup/**/bpe/plugin/*.jar
3332
codex-processes-ap1-docker-test-setup/**/bpe/process/*.jar
3433

codex-process-data-transfer/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>de.netzwerk-universitaetsmedizin.codex</groupId>
88
<artifactId>codex-processes-ap1</artifactId>
9-
<version>0.6.0</version>
9+
<version>0.6.0.1</version>
1010
</parent>
1111

1212
<properties>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public class DataTransferProcessPluginDefinition implements ProcessPluginDefinit
3737
private static final Logger logger = LoggerFactory.getLogger(DataTransferProcessPluginDefinition.class);
3838

3939
public static final String VERSION = "0.6.0";
40-
public static final LocalDate DATE = LocalDate.of(2022, 7, 12);
40+
public static final LocalDate DATE = LocalDate.of(2022, 10, 18);
4141

4242
@Override
4343
public String getName()

codex-process-data-transfer/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/data_transfer/client/fhir/GeccoFhirClientStub.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public final class GeccoFhirClientStub implements GeccoFhirClient
3333
private static final Logger logger = LoggerFactory.getLogger(GeccoFhirClientStub.class);
3434

3535
private static final String condition = "{\"resourceType\":\"Condition\",\"meta\":{\"profile\":[\"https://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/chronic-lung-diseases\"]},\"clinicalStatus\":{\"coding\":[{\"system\":\"http://terminology.hl7.org/CodeSystem/condition-clinical\",\"code\":\"active\",\"display\":\"Active\"}]},\"verificationStatus\":{\"coding\":[{\"system\":\"http://terminology.hl7.org/CodeSystem/condition-ver-status\",\"code\":\"confirmed\",\"display\":\"Confirmed\"},{\"system\":\"http://snomed.info/sct\",\"code\":\"410605003\",\"display\":\"Confirmed present (qualifier value)\"}]},\"category\":[{\"coding\":[{\"system\":\"http://snomed.info/sct\",\"code\":\"418112009\",\"display\":\"Pulmonary medicine\"}]}],\"code\":{\"coding\":[{\"system\":\"http://snomed.info/sct\",\"code\":\"413839001\",\"display\":\"Chronic lung disease\"}]},\"recordedDate\":\"2020-11-10T15:50:41.000+01:00\"}";
36-
private static final String patient = "{\"resourceType\":\"Patient\",\"meta\":{\"profile\":[\"https://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/Patient\"]},\"extension\":[{\"url\":\"https://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/ethnic-group\",\"valueCoding\":{\"system\":\"http://snomed.info/sct\",\"code\":\"186019001\",\"display\":\"Other ethnic, mixed origin\"}},{\"url\":\"https://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/age\",\"extension\":[{\"url\":\"dateTimeOfDocumentation\",\"valueDateTime\":\"2020-10-01\"},{\"url\":\"age\",\"valueAge\":{\"value\":67,\"unit\":\"years\",\"system\":\"http://unitsofmeasure.org\",\"code\":\"a\"}}]}],\"birthDate\":\"1953-09-30\"}";
36+
private static final String patient = "{\"resourceType\":\"Patient\",\"meta\":{\"profile\":[\"https://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/Patient\"]},\"extension\":[{\"url\":\"https://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/ethnic-group\",\"valueCoding\":{\"system\":\"http://snomed.info/sct\",\"code\":\"26242008\",\"display\":\"Mixed (qualifier value)\"}},{\"url\":\"https://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/age\",\"extension\":[{\"url\":\"dateTimeOfDocumentation\",\"valueDateTime\":\"2020-10-01\"},{\"url\":\"age\",\"valueAge\":{\"value\":67,\"unit\":\"years\",\"system\":\"http://unitsofmeasure.org\",\"code\":\"a\"}}]}],\"birthDate\":\"1953-09-30\"}";
3737
private static final String observation = "{\"resourceType\":\"Observation\",\"meta\":{\"profile\":[\"https://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/sars-cov-2-rt-pcr\"]},\"identifier\":[{\"type\":{\"coding\":[{\"system\":\"http://terminology.hl7.org/CodeSystem/v2-0203\",\"code\":\"OBI\"}]}}],\"status\":\"final\",\"category\":[{\"coding\":[{\"system\":\"http://loinc.org\",\"code\":\"26436-6\"},{\"system\":\"http://terminology.hl7.org/CodeSystem/observation-category\",\"code\":\"laboratory\"}]}],\"code\":{\"coding\":[{\"system\":\"http://loinc.org\",\"code\":\"94500-6\",\"display\":\"SARS-CoV-2 (COVID-19) RNA [Presence] in Respiratory specimen by NAA with probe detection\"}],\"text\":\"SARS-CoV-2-RNA (PCR)\"},\"effectiveDateTime\":\"2020-11-10T15:50:41.000+01:00\",\"valueCodeableConcept\":{\"coding\":[{\"system\":\"http://snomed.info/sct\",\"code\":\"260373001\",\"display\":\"Detected (qualifier value)\"}],\"text\":\"SARS-CoV-2-RNA positiv\"}}";
3838

3939
private final GeccoClient geccoClient;
@@ -82,15 +82,18 @@ public Stream<DomainResource> getNewData(String pseudonym, DateWithPrecision exp
8282
logger.warn("Returning demo resources for {}", pseudonym);
8383

8484
Patient p = geccoClient.getFhirContext().newJsonParser().parseResource(Patient.class, patient);
85+
p.setIdElement(new IdType(UUID.randomUUID().toString()));
8586
p.addIdentifier().setSystem(NAMING_SYSTEM_NUM_CODEX_DIC_PSEUDONYM).setValue(pseudonym).getType()
8687
.getCodingFirstRep().setSystem(IDENTIFIER_NUM_CODEX_DIC_PSEUDONYM_TYPE_SYSTEM)
8788
.setCode(IDENTIFIER_NUM_CODEX_DIC_PSEUDONYM_TYPE_CODE);
8889
p.setIdElement(new IdType("Patient", UUID.randomUUID().toString()));
8990

9091
Condition c = geccoClient.getFhirContext().newJsonParser().parseResource(Condition.class, condition);
92+
c.setIdElement(new IdType(UUID.randomUUID().toString()));
9193
c.setSubject(new Reference(p.getIdElement()));
9294

9395
Observation o = geccoClient.getFhirContext().newJsonParser().parseResource(Observation.class, observation);
96+
o.setIdElement(new IdType(UUID.randomUUID().toString()));
9497
o.setSubject(new Reference(p.getIdElement()));
9598

9699
return Stream.of(p, c, o);

codex-process-data-transfer/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/data_transfer/crypto/CrrKeyProviderImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public class CrrKeyProviderImpl implements CrrKeyProvider
2626

2727
/**
2828
* One or both parameters should be <code>null</code>
29-
*
29+
*
3030
* @param crrPrivateKeyFile
3131
* @param crrPublicKeyFile
3232
* @return
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,90 @@
11
package de.netzwerk_universitaetsmedizin.codex.processes.data_transfer.logging;
22

3+
import java.util.Objects;
4+
5+
import org.highmed.dsf.bpe.service.MailService;
36
import org.hl7.fhir.r4.model.IdType;
47
import org.slf4j.Logger;
58
import org.slf4j.LoggerFactory;
9+
import org.springframework.beans.factory.InitializingBean;
610

7-
public class ErrorLogger
11+
public class ErrorLogger implements InitializingBean
812
{
913
private static final Logger validationLogger = LoggerFactory.getLogger("validation-error-logger");
1014
private static final Logger errorLogger = LoggerFactory.getLogger("error-logger");
1115

16+
private final MailService mailService;
17+
18+
private final boolean sendValidationFailedMail;
19+
private final boolean sendProcessFailedMail;
20+
21+
public ErrorLogger(MailService mailService, boolean sendValidationFailedMail, boolean sendProcessFailedMail)
22+
{
23+
this.mailService = mailService;
24+
25+
this.sendValidationFailedMail = sendValidationFailedMail;
26+
this.sendProcessFailedMail = sendProcessFailedMail;
27+
}
28+
29+
@Override
30+
public void afterPropertiesSet() throws Exception
31+
{
32+
Objects.requireNonNull(mailService, "mailService");
33+
}
34+
1235
public void logValidationFailed(IdType taskId)
1336
{
14-
validationLogger.debug("Validation of FHIR resources failed, started by Task {}", taskId.getValue());
37+
validationLogger.debug("Validation of FHIR resources failed in process started by {}",
38+
taskId.toVersionless().getValue());
39+
40+
if (sendValidationFailedMail)
41+
mailService.send("Validation Error",
42+
"Validation of FHIR resources failed in process started by " + taskId.toVersionless().getValue());
1543
}
1644

1745
public void logValidationFailedLocal(IdType taskId)
1846
{
19-
validationLogger.debug("Local validation of FHIR resources failed, started by Task {}", taskId.getValue());
47+
validationLogger.debug("Local validation of FHIR resources failed in process started by {}",
48+
taskId.toVersionless().getValue());
49+
50+
if (sendValidationFailedMail)
51+
mailService.send("Validation Error", "Local validation of FHIR resources failed in process started by "
52+
+ taskId.toVersionless().getValue());
2053
}
2154

2255
public void logValidationFailedRemote(IdType taskId)
2356
{
24-
validationLogger.debug("Remote validation of FHIR resources failed, started by Task {}", taskId.getValue());
57+
validationLogger.debug("Remote validation of FHIR resources failed in process started by {}",
58+
taskId.toVersionless().getValue());
59+
60+
if (sendValidationFailedMail)
61+
mailService.send("Validation Error", "Remote validation of FHIR resources failed in process started by "
62+
+ taskId.toVersionless().getValue());
2563
}
2664

2765
public void logDataSendFailed(IdType taskId)
2866
{
29-
errorLogger.debug("Send process failed, started by Task {}", taskId.getValue());
67+
errorLogger.debug("Send process failed started by {}", taskId.toVersionless().getValue());
68+
69+
if (sendProcessFailedMail)
70+
mailService.send("Proccess Failed", "Send process failed started by " + taskId.toVersionless().getValue());
3071
}
3172

3273
public void logDataTranslateFailed(IdType taskId)
3374
{
34-
errorLogger.debug("Translate process failed, started by Task {}", taskId.getValue());
75+
errorLogger.debug("Translate process failed started by {}", taskId.toVersionless().getValue());
76+
77+
if (sendProcessFailedMail)
78+
mailService.send("Proccess Failed",
79+
"Translate process failed started by " + taskId.toVersionless().getValue());
3580
}
3681

3782
public void logDataReceiveFailed(IdType taskId)
3883
{
39-
errorLogger.debug("Receive process failed, started by Task {}", taskId.getValue());
84+
errorLogger.debug("Receive process failed started by {}", taskId.toVersionless().getValue());
85+
86+
if (sendProcessFailedMail)
87+
mailService.send("Proccess Failed",
88+
"Receive process failed started by " + taskId.toVersionless().getValue());
4089
}
4190
}

codex-process-data-transfer/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/data_transfer/message/ContinueSendProcess.java

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,43 +2,27 @@
22

33
import static de.netzwerk_universitaetsmedizin.codex.processes.data_transfer.ConstantsDataTransfer.BPMN_EXECUTION_VARIABLE_RETURN_TARGET;
44

5-
import java.util.stream.Stream;
6-
5+
import org.camunda.bpm.engine.delegate.DelegateExecution;
76
import org.highmed.dsf.fhir.authorization.read.ReadAccessHelper;
87
import org.highmed.dsf.fhir.client.FhirWebserviceClientProvider;
98
import org.highmed.dsf.fhir.organization.OrganizationProvider;
109
import org.highmed.dsf.fhir.task.AbstractTaskMessageSend;
1110
import org.highmed.dsf.fhir.task.TaskHelper;
1211
import org.highmed.dsf.fhir.variables.Target;
13-
import org.hl7.fhir.r4.model.Task.ParameterComponent;
14-
import org.slf4j.Logger;
15-
import org.slf4j.LoggerFactory;
1612

1713
import ca.uhn.fhir.context.FhirContext;
1814

1915
public class ContinueSendProcess extends AbstractTaskMessageSend
2016
{
21-
private static final Logger logger = LoggerFactory.getLogger(ContinueSendProcess.class);
22-
2317
public ContinueSendProcess(FhirWebserviceClientProvider clientProvider, TaskHelper taskHelper,
2418
ReadAccessHelper readAccessHelper, OrganizationProvider organizationProvider, FhirContext fhirContext)
2519
{
2620
super(clientProvider, taskHelper, readAccessHelper, organizationProvider, fhirContext);
2721
}
2822

2923
@Override
30-
protected Target getTarget()
24+
protected Target getTarget(DelegateExecution execution)
3125
{
3226
return (Target) execution.getVariable(BPMN_EXECUTION_VARIABLE_RETURN_TARGET);
3327
}
34-
35-
@Override
36-
protected void sendTask(Target target, String instantiatesUri, String messageName, String businessKey,
37-
String profile, Stream<ParameterComponent> additionalInputParameters)
38-
{
39-
// TODO implement continue send
40-
logger.debug("implement continue send");
41-
42-
super.sendTask(target, instantiatesUri, messageName, businessKey, profile, additionalInputParameters);
43-
}
4428
}

codex-process-data-transfer/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/data_transfer/message/ContinueSendProcessWithError.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public void afterPropertiesSet() throws Exception
4343
}
4444

4545
@Override
46-
protected Target getTarget()
46+
protected Target getTarget(DelegateExecution execution)
4747
{
4848
return (Target) execution.getVariable(BPMN_EXECUTION_VARIABLE_RETURN_TARGET);
4949
}

codex-process-data-transfer/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/data_transfer/message/ContinueSendProcessWithValidationError.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public ContinueSendProcessWithValidationError(FhirWebserviceClientProvider clien
2929
}
3030

3131
@Override
32-
protected Target getTarget()
32+
protected Target getTarget(DelegateExecution execution)
3333
{
3434
return (Target) execution.getVariable(BPMN_EXECUTION_VARIABLE_RETURN_TARGET);
3535
}

codex-process-data-transfer/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/data_transfer/message/ContinueTranslateProcess.java

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,44 +2,27 @@
22

33
import static de.netzwerk_universitaetsmedizin.codex.processes.data_transfer.ConstantsDataTransfer.BPMN_EXECUTION_VARIABLE_RETURN_TARGET;
44

5-
import java.util.stream.Stream;
6-
5+
import org.camunda.bpm.engine.delegate.DelegateExecution;
76
import org.highmed.dsf.fhir.authorization.read.ReadAccessHelper;
87
import org.highmed.dsf.fhir.client.FhirWebserviceClientProvider;
98
import org.highmed.dsf.fhir.organization.OrganizationProvider;
109
import org.highmed.dsf.fhir.task.AbstractTaskMessageSend;
1110
import org.highmed.dsf.fhir.task.TaskHelper;
1211
import org.highmed.dsf.fhir.variables.Target;
13-
import org.hl7.fhir.r4.model.Task.ParameterComponent;
14-
import org.slf4j.Logger;
15-
import org.slf4j.LoggerFactory;
1612

1713
import ca.uhn.fhir.context.FhirContext;
1814

1915
public class ContinueTranslateProcess extends AbstractTaskMessageSend
2016
{
21-
private static final Logger logger = LoggerFactory.getLogger(ContinueTranslateProcess.class);
22-
2317
public ContinueTranslateProcess(FhirWebserviceClientProvider clientProvider, TaskHelper taskHelper,
2418
ReadAccessHelper readAccessHelper, OrganizationProvider organizationProvider, FhirContext fhirContext)
2519
{
2620
super(clientProvider, taskHelper, readAccessHelper, organizationProvider, fhirContext);
2721
}
2822

2923
@Override
30-
protected Target getTarget()
24+
protected Target getTarget(DelegateExecution execution)
3125
{
3226
return (Target) execution.getVariable(BPMN_EXECUTION_VARIABLE_RETURN_TARGET);
3327
}
34-
35-
@Override
36-
protected void sendTask(Target target, String instantiatesUri, String messageName, String businessKey,
37-
String profile, Stream<ParameterComponent> additionalInputParameters)
38-
{
39-
40-
// TODO implement continue translate
41-
logger.debug("implement continue translate");
42-
43-
super.sendTask(target, instantiatesUri, messageName, businessKey, profile, additionalInputParameters);
44-
}
4528
}

0 commit comments

Comments
 (0)