summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2025-10-28 09:38:30 +0100
committerGitHub2025-10-28 09:38:30 +0100
commit8ef93e3f06f40b739adffca79156ecd1cbf3c504 (patch)
treeaa5db74b4ca512ce9552d2d0063d67259f8a5133 /src/main/java
parenteb16683e19522e224648acab82f651244d9f3f86 (diff)
feat: do not convert MII consent again (#169)
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/dev/dnpm/etl/processor/consent/GicsConsentService.java18
1 files changed, 18 insertions, 0 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 a1a613e..9b785ab 100644
--- a/src/main/java/dev/dnpm/etl/processor/consent/GicsConsentService.java
+++ b/src/main/java/dev/dnpm/etl/processor/consent/GicsConsentService.java
@@ -307,6 +307,11 @@ public class GicsConsentService implements IConsentService {
Bundle.BundleEntryComponent bundleEntryComponent = gIcsResultBundle.getEntry().getFirst();
var consentAsOne = (Consent) bundleEntryComponent.getResource();
+
+ if (isMiiConsent(consentAsOne)) {
+ return gIcsResultBundle;
+ }
+
if (consentAsOne.getPolicy().stream().noneMatch(p -> p.getUri().equals(BROAD_CONSENT_POLICY))) {
consentAsOne.addPolicy(new Consent.ConsentPolicyComponent().setUri(BROAD_CONSENT_POLICY));
}
@@ -347,6 +352,19 @@ public class GicsConsentService implements IConsentService {
return gIcsResultBundle;
}
+ private static boolean isMiiConsent(Consent consent) {
+ for (var category : consent.getCategory()) {
+ for (var categoryCoding : category.getCoding()) {
+ if ("https://www.medizininformatik-initiative.de/fhir/modul-consent/CodeSystem/mii-cs-consent-consent_category"
+ .equals(categoryCoding.getSystem())
+ && "2.16.840.1.113883.3.1937.777.24.2.184".equals(categoryCoding.getCode())) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
protected Bundle anonymizeBroadConsent(Bundle bundle) {
Bundle.BundleEntryComponent bundleEntryComponent = bundle.getEntry().getFirst();
hashBundleEntry(bundleEntryComponent);