summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/dev/dnpm/etl/processor/consent/GicsConsentService.java15
-rw-r--r--src/main/java/dev/dnpm/etl/processor/consent/IConsentService.java2
-rw-r--r--src/main/java/dev/dnpm/etl/processor/consent/MtbFileConsentService.java9
-rw-r--r--src/main/java/dev/dnpm/etl/processor/pseudonym/Generator.java3
-rw-r--r--src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java23
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/pseudonym/AnonymizingGenerator.kt2
6 files changed, 38 insertions, 16 deletions
diff --git a/src/main/java/dev/dnpm/etl/processor/consent/GicsConsentService.java b/src/main/java/dev/dnpm/etl/processor/consent/GicsConsentService.java
index 03348ff..7ffd3e0 100644
--- a/src/main/java/dev/dnpm/etl/processor/consent/GicsConsentService.java
+++ b/src/main/java/dev/dnpm/etl/processor/consent/GicsConsentService.java
@@ -11,7 +11,8 @@ import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils;
import org.hl7.fhir.r4.model.*;
import org.hl7.fhir.r4.model.Parameters.ParametersParameterComponent;
-import org.jetbrains.annotations.NotNull;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpEntity;
@@ -135,6 +136,7 @@ public class GicsConsentService implements IConsentService {
return headers;
}
+ @Nullable
protected String callGicsApi(Parameters parameter, String endpoint) {
var parameterAsXml = fhirContext.newXmlParser().encodeResourceToString(parameter);
HttpEntity<String> requestEntity =
@@ -172,7 +174,8 @@ public class GicsConsentService implements IConsentService {
}
@Override
- public TtpConsentStatus getTtpBroadConsentStatus(String personIdentifierValue) {
+ @NonNull
+ public TtpConsentStatus getTtpBroadConsentStatus(@NonNull String personIdentifierValue) {
var consentStatusResponse =
callGicsApi(
getFhirRequestParameters(personIdentifierValue),
@@ -211,7 +214,7 @@ public class GicsConsentService implements IConsentService {
}
}
- @NotNull
+ @NonNull
private String getConsentDomainName(ConsentDomain targetConsentDomain) {
return switch (targetConsentDomain) {
case BROAD_CONSENT -> gIcsConfigProperties.getBroadConsentDomainName();
@@ -257,7 +260,7 @@ public class GicsConsentService implements IConsentService {
return requestParameter;
}
- private TtpConsentStatus evaluateConsentResponse(String consentStatusResponse) {
+ private TtpConsentStatus evaluateConsentResponse(@Nullable String consentStatusResponse) {
if (consentStatusResponse == null) {
return TtpConsentStatus.FAILED_TO_ASK;
}
@@ -289,7 +292,9 @@ public class GicsConsentService implements IConsentService {
}
@Override
- public Bundle getConsent(String patientId, Date requestDate, ConsentDomain consentDomain) {
+ @NonNull
+ public Bundle getConsent(
+ @NonNull String patientId, @NonNull Date requestDate, @NonNull ConsentDomain consentDomain) {
Bundle gIcsResultBundle =
currentConsentForPersonAndTemplate(patientId, consentDomain, requestDate);
if (ConsentDomain.BROAD_CONSENT == consentDomain) {
diff --git a/src/main/java/dev/dnpm/etl/processor/consent/IConsentService.java b/src/main/java/dev/dnpm/etl/processor/consent/IConsentService.java
index 148592e..f9230ec 100644
--- a/src/main/java/dev/dnpm/etl/processor/consent/IConsentService.java
+++ b/src/main/java/dev/dnpm/etl/processor/consent/IConsentService.java
@@ -2,7 +2,9 @@ package dev.dnpm.etl.processor.consent;
import java.util.Date;
import org.hl7.fhir.r4.model.Bundle;
+import org.jspecify.annotations.NullMarked;
+@NullMarked
public interface IConsentService {
/**
diff --git a/src/main/java/dev/dnpm/etl/processor/consent/MtbFileConsentService.java b/src/main/java/dev/dnpm/etl/processor/consent/MtbFileConsentService.java
index a126a51..cc8107f 100644
--- a/src/main/java/dev/dnpm/etl/processor/consent/MtbFileConsentService.java
+++ b/src/main/java/dev/dnpm/etl/processor/consent/MtbFileConsentService.java
@@ -2,6 +2,7 @@ package dev.dnpm.etl.processor.consent;
import java.util.Date;
import org.hl7.fhir.r4.model.Bundle;
+import org.jspecify.annotations.NonNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -14,7 +15,8 @@ public class MtbFileConsentService implements IConsentService {
}
@Override
- public TtpConsentStatus getTtpBroadConsentStatus(String personIdentifierValue) {
+ @NonNull
+ public TtpConsentStatus getTtpBroadConsentStatus(@NonNull String personIdentifierValue) {
return TtpConsentStatus.UNKNOWN_CHECK_FILE;
}
@@ -24,8 +26,11 @@ public class MtbFileConsentService implements IConsentService {
* @return empty bundle
*/
@Override
+ @NonNull
public Bundle getConsent(
- String personIdentifierValue, Date requestDate, ConsentDomain consentDomain) {
+ @NonNull String personIdentifierValue,
+ @NonNull Date requestDate,
+ @NonNull ConsentDomain consentDomain) {
return new Bundle();
}
}
diff --git a/src/main/java/dev/dnpm/etl/processor/pseudonym/Generator.java b/src/main/java/dev/dnpm/etl/processor/pseudonym/Generator.java
index fce8146..e72a8f8 100644
--- a/src/main/java/dev/dnpm/etl/processor/pseudonym/Generator.java
+++ b/src/main/java/dev/dnpm/etl/processor/pseudonym/Generator.java
@@ -19,6 +19,9 @@
package dev.dnpm.etl.processor.pseudonym;
+import org.jspecify.annotations.NullMarked;
+
+@NullMarked
public interface Generator {
String generate(String id);
diff --git a/src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java b/src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java
index 48cdc67..6d1e36b 100644
--- a/src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java
+++ b/src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java
@@ -32,7 +32,8 @@ import org.hl7.fhir.r4.model.Identifier;
import org.hl7.fhir.r4.model.Parameters;
import org.hl7.fhir.r4.model.Parameters.ParametersParameterComponent;
import org.hl7.fhir.r4.model.StringType;
-import org.jetbrains.annotations.NotNull;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.*;
@@ -44,13 +45,13 @@ import org.springframework.web.client.RestTemplate;
public class GpasPseudonymGenerator implements Generator {
private final FhirContext r4Context;
- private final String gPasUrl;
+ private final @Nullable String gPasUrl;
private final HttpHeaders httpHeader;
private final RetryTemplate retryTemplate;
private final Logger log = LoggerFactory.getLogger(GpasPseudonymGenerator.class);
private final RestTemplate restTemplate;
- private final @NotNull String genomDeTanDomain;
- private final @NotNull String pidPsnDomain;
+ private final @NonNull String genomDeTanDomain;
+ private final @NonNull String pidPsnDomain;
protected static final String CREATE_OR_GET_PSN = "$pseudonymizeAllowCreate";
protected static final String CREATE_MULTI_DOMAIN_PSN = "$pseudonymize-secondary";
private static final String SINGLE_PSN_PART_NAME = "pseudonym";
@@ -73,11 +74,13 @@ public class GpasPseudonymGenerator implements Generator {
}
@Override
+ @NonNull
public String generate(String id) {
return generate(id, PsnDomainType.SINGLE_PSN_DOMAIN);
}
@Override
+ @NonNull
public String generateGenomDeTan(String id) {
return generate(id, PsnDomainType.MULTI_PSN_DOMAIN);
}
@@ -106,7 +109,7 @@ public class GpasPseudonymGenerator implements Generator {
.formatted(domainType));
}
- @NotNull
+ @NonNull
public static String unwrapPseudonym(Parameters gPasPseudonymResult, String targetPartName) {
final var parameters = gPasPseudonymResult.getParameter().stream().findFirst();
@@ -140,7 +143,7 @@ public class GpasPseudonymGenerator implements Generator {
return psnValue.replaceAll(forbiddenCharsRegex, "_");
}
- @NotNull
+ @NonNull
protected ResponseEntity<String> getGpasPseudonym(String gPasRequestBody, String apiEndpoint) {
HttpEntity<String> requestEntity = new HttpEntity<>(gPasRequestBody, this.httpHeader);
@@ -175,6 +178,9 @@ public class GpasPseudonymGenerator implements Generator {
}
protected URI buildRequestUrl(String apiEndpoint) throws URISyntaxException {
+ if (null == gPasUrl) {
+ throw new URISyntaxException("null", "URI must not be null");
+ }
var gPasUrl1 = gPasUrl;
if (gPasUrl.lastIndexOf("/") == gPasUrl.length() - 1) {
gPasUrl1 = gPasUrl.substring(0, gPasUrl.length() - 1);
@@ -211,8 +217,9 @@ public class GpasPseudonymGenerator implements Generator {
return iParser.encodeResourceToString(param);
}
- @NotNull
- protected HttpHeaders getHttpHeaders(String gPasUserName, String gPasPassword) {
+ @NonNull
+ protected HttpHeaders getHttpHeaders(
+ @Nullable String gPasUserName, @Nullable String gPasPassword) {
var headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/pseudonym/AnonymizingGenerator.kt b/src/main/kotlin/dev/dnpm/etl/processor/pseudonym/AnonymizingGenerator.kt
index 0537cbb..dcb438f 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/pseudonym/AnonymizingGenerator.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/pseudonym/AnonymizingGenerator.kt
@@ -35,7 +35,7 @@ class AnonymizingGenerator : Generator {
}
@OptIn(ExperimentalStdlibApi::class)
- override fun generateGenomDeTan(id: String?): String {
+ override fun generateGenomDeTan(id: String): String {
val bytes = ByteArray(64 / 2)
getSecureRandom().nextBytes(bytes)