summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/dev/dnpm/etl/processor/consent/GicsGetBroadConsentService.java5
-rw-r--r--src/main/java/dev/dnpm/etl/processor/consent/MiiBroadConsentEvaluator.java78
-rw-r--r--src/test/java/dev/dnpm/etl/processor/consent/GicsGetBroadConsentServiceTest.java43
-rw-r--r--src/test/java/dev/dnpm/etl/processor/consent/MiiBroadConsentEvaluatorTest.java37
-rw-r--r--src/test/resources/fake_broadConsent_mii_response_deny.json513
5 files changed, 642 insertions, 34 deletions
diff --git a/src/main/java/dev/dnpm/etl/processor/consent/GicsGetBroadConsentService.java b/src/main/java/dev/dnpm/etl/processor/consent/GicsGetBroadConsentService.java
index 246d84c..d657306 100644
--- a/src/main/java/dev/dnpm/etl/processor/consent/GicsGetBroadConsentService.java
+++ b/src/main/java/dev/dnpm/etl/processor/consent/GicsGetBroadConsentService.java
@@ -131,4 +131,9 @@ public class GicsGetBroadConsentService extends AbstractConsentService {
return null;
}
}
+
+ @Override
+ protected TtpConsentStatus evaluateConsentResponse(@Nullable String consentStatusResponse) {
+ return MiiBroadConsentEvaluator.evaluate(this.fhirContext, consentStatusResponse);
+ }
}
diff --git a/src/main/java/dev/dnpm/etl/processor/consent/MiiBroadConsentEvaluator.java b/src/main/java/dev/dnpm/etl/processor/consent/MiiBroadConsentEvaluator.java
new file mode 100644
index 0000000..0640142
--- /dev/null
+++ b/src/main/java/dev/dnpm/etl/processor/consent/MiiBroadConsentEvaluator.java
@@ -0,0 +1,78 @@
+package dev.dnpm.etl.processor.consent;
+
+import ca.uhn.fhir.context.FhirContext;
+import ca.uhn.fhir.parser.DataFormatException;
+import org.hl7.fhir.r4.model.Bundle;
+import org.hl7.fhir.r4.model.Consent;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Evaluates MII Broad Consent
+ *
+ * @since 0.12
+ */
+@NullMarked
+public class MiiBroadConsentEvaluator {
+
+ private static final Logger log = LoggerFactory.getLogger(MiiBroadConsentEvaluator.class);
+
+ /**
+ * Evaluates MII Broad Consent
+ *
+ * @param fhirContext FHIR context
+ * @param consentStatusResponse Nullable String containing FHIR String
+ * @return consent status
+ */
+ public static TtpConsentStatus evaluate(
+ FhirContext fhirContext, @Nullable String consentStatusResponse) {
+ if (null == consentStatusResponse) {
+ return TtpConsentStatus.FAILED_TO_ASK;
+ }
+ try {
+ var response = fhirContext.newJsonParser().parseResource(consentStatusResponse);
+
+ if (response instanceof Bundle bundle) {
+ Boolean mdatStoreAndProcessGiven = null;
+ Boolean mdatResearchUse = null;
+ Boolean patdatStoreAndUse = null;
+ for (var entry : bundle.getEntry()) {
+ if (entry.getResource() instanceof Consent consent) {
+ for (var provision : consent.getProvision().getProvision()) {
+ for (var code : provision.getCode()) {
+ for (var coding : code.getCoding()) {
+ if ("2.16.840.1.113883.3.1937.777.24.5.3.7".equals(coding.getCode())) {
+ mdatStoreAndProcessGiven =
+ Consent.ConsentProvisionType.PERMIT.equals(provision.getType());
+ } else if ("2.16.840.1.113883.3.1937.777.24.5.3.8".equals(coding.getCode())) {
+ mdatResearchUse =
+ Consent.ConsentProvisionType.PERMIT.equals(provision.getType());
+ } else if ("2.16.840.1.113883.3.1937.777.24.5.3.1".equals(coding.getCode())) {
+ patdatStoreAndUse =
+ Consent.ConsentProvisionType.PERMIT.equals(provision.getType());
+ }
+ }
+ }
+ }
+ }
+ }
+ if (null != mdatStoreAndProcessGiven
+ && null != mdatResearchUse
+ && mdatStoreAndProcessGiven
+ && mdatResearchUse) {
+ return TtpConsentStatus.BROAD_CONSENT_GIVEN;
+ }
+
+ if (null != patdatStoreAndUse && patdatStoreAndUse) {
+ return TtpConsentStatus.BROAD_CONSENT_GIVEN;
+ }
+ return TtpConsentStatus.BROAD_CONSENT_MISSING_OR_REJECTED;
+ }
+ } catch (DataFormatException dfe) {
+ log.error("failed to parse response to FHIR R4 resource.", dfe);
+ }
+ return TtpConsentStatus.FAILED_TO_ASK;
+ }
+}
diff --git a/src/test/java/dev/dnpm/etl/processor/consent/GicsGetBroadConsentServiceTest.java b/src/test/java/dev/dnpm/etl/processor/consent/GicsGetBroadConsentServiceTest.java
index b3ebc08..cced1cf 100644
--- a/src/test/java/dev/dnpm/etl/processor/consent/GicsGetBroadConsentServiceTest.java
+++ b/src/test/java/dev/dnpm/etl/processor/consent/GicsGetBroadConsentServiceTest.java
@@ -10,14 +10,14 @@ import dev.dnpm.etl.processor.config.AppConfiguration;
import dev.dnpm.etl.processor.config.AppFhirConfig;
import dev.dnpm.etl.processor.config.GIcsConfigProperties;
import java.net.URI;
+import java.nio.charset.StandardCharsets;
+import java.util.Objects;
+import org.apache.commons.io.IOUtils;
import org.apache.hc.core5.net.URIBuilder;
-import org.hl7.fhir.r4.model.BooleanType;
import org.hl7.fhir.r4.model.OperationOutcome;
import org.hl7.fhir.r4.model.OperationOutcome.IssueSeverity;
import org.hl7.fhir.r4.model.OperationOutcome.IssueType;
import org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent;
-import org.hl7.fhir.r4.model.Parameters;
-import org.hl7.fhir.r4.model.Parameters.ParametersParameterComponent;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
@@ -78,48 +78,23 @@ class GicsGetBroadConsentServiceTest {
@Test
void shouldReturnTtpBroadConsentStatus() throws Exception {
- final Parameters consentedResponse =
- new Parameters()
- .addParameter(
- new ParametersParameterComponent()
- .setName("consented")
- .setValue(new BooleanType().setValue(true)));
+ var inputStream =
+ Objects.requireNonNull(
+ this.getClass()
+ .getClassLoader()
+ .getResourceAsStream("fake_broadConsent_mii_response_permit.json"));
mockRestServiceServer
.expect(requestTo(expectedGicsConsentedEndpoint()))
.andRespond(
withSuccess(
- appFhirConfig
- .fhirContext()
- .newJsonParser()
- .encodeResourceToString(consentedResponse),
- MediaType.APPLICATION_JSON));
+ IOUtils.toString(inputStream, StandardCharsets.UTF_8), MediaType.APPLICATION_JSON));
var consentStatus = service.getTtpBroadConsentStatus("123456");
assertThat(consentStatus).isEqualTo(TtpConsentStatus.BROAD_CONSENT_GIVEN);
}
@Test
- void shouldReturnRevokedConsent() throws Exception {
- final Parameters revokedResponse =
- new Parameters()
- .addParameter(
- new ParametersParameterComponent()
- .setName("consented")
- .setValue(new BooleanType().setValue(false)));
-
- mockRestServiceServer
- .expect(requestTo(expectedGicsConsentedEndpoint()))
- .andRespond(
- withSuccess(
- appFhirConfig.fhirContext().newJsonParser().encodeResourceToString(revokedResponse),
- MediaType.APPLICATION_JSON));
-
- var consentStatus = service.getTtpBroadConsentStatus("123456");
- assertThat(consentStatus).isEqualTo(TtpConsentStatus.BROAD_CONSENT_MISSING_OR_REJECTED);
- }
-
- @Test
void shouldReturnInvalidParameterResponse() throws Exception {
final OperationOutcome responseWithErrorOutcome =
new OperationOutcome()
diff --git a/src/test/java/dev/dnpm/etl/processor/consent/MiiBroadConsentEvaluatorTest.java b/src/test/java/dev/dnpm/etl/processor/consent/MiiBroadConsentEvaluatorTest.java
new file mode 100644
index 0000000..e63dddc
--- /dev/null
+++ b/src/test/java/dev/dnpm/etl/processor/consent/MiiBroadConsentEvaluatorTest.java
@@ -0,0 +1,37 @@
+package dev.dnpm.etl.processor.consent;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import ca.uhn.fhir.context.FhirContext;
+import java.nio.charset.StandardCharsets;
+import java.util.Objects;
+import java.util.stream.Stream;
+import org.apache.commons.io.IOUtils;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
+
+class MiiBroadConsentEvaluatorTest {
+
+ @ParameterizedTest
+ @MethodSource("consentData")
+ void shouldEvaluateResponse(String filename, TtpConsentStatus status) throws Exception {
+ var inputStream =
+ Objects.requireNonNull(this.getClass().getClassLoader().getResourceAsStream(filename));
+
+ var actual =
+ MiiBroadConsentEvaluator.evaluate(
+ FhirContext.forR4(), IOUtils.toString(inputStream, StandardCharsets.UTF_8));
+
+ assertThat(actual).isEqualTo(status);
+ }
+
+ public static Stream<Arguments> consentData() {
+ return Stream.of(
+ Arguments.of(
+ "fake_broadConsent_mii_response_permit.json", TtpConsentStatus.BROAD_CONSENT_GIVEN),
+ Arguments.of(
+ "fake_broadConsent_mii_response_deny.json",
+ TtpConsentStatus.BROAD_CONSENT_MISSING_OR_REJECTED));
+ }
+}
diff --git a/src/test/resources/fake_broadConsent_mii_response_deny.json b/src/test/resources/fake_broadConsent_mii_response_deny.json
new file mode 100644
index 0000000..4f2017b
--- /dev/null
+++ b/src/test/resources/fake_broadConsent_mii_response_deny.json
@@ -0,0 +1,513 @@
+{
+ "resourceType": "Bundle",
+ "type": "collection",
+ "total": 26,
+ "entry": [ {
+ "fullUrl": "http://localhost:8080/ttp-fhir/fhir/gics/Consent/7d3456c2-79b1-11f0-ab27-6ed0ed82d0fd",
+ "resource": {
+ "resourceType": "Consent",
+ "id": "7d3456c2-79b1-11f0-ab27-6ed0ed82d0fd",
+ "meta": {
+ "lastUpdated": "2025-08-15T11:13:59.143+02:00",
+ "profile": [ "http://fhir.de/ConsentManagement/StructureDefinition/Consent", "https://www.medizininformatik-initiative.de/fhir/modul-consent/StructureDefinition/mii-pr-consent-einwilligung" ]
+ },
+ "extension": [ {
+ "url": "http://fhir.de/ConsentManagement/StructureDefinition/DomainReference",
+ "extension": [ {
+ "url": "domain",
+ "valueReference": {
+ "reference": "ResearchStudy/3c3ffec5-79b1-11f0-ab27-6ed0ed82d0fd"
+ }
+ }, {
+ "url": "status",
+ "valueCoding": {
+ "system": "http://hl7.org/fhir/publication-status",
+ "code": "active"
+ }
+ } ]
+ } ],
+ "status": "active",
+ "scope": {
+ "coding": [ {
+ "system": "http://terminology.hl7.org/CodeSystem/consentscope",
+ "code": "research"
+ } ]
+ },
+ "category": [ {
+ "coding": [ {
+ "system": "http://loinc.org",
+ "code": "57016-8"
+ } ]
+ }, {
+ "coding": [ {
+ "system": "https://www.medizininformatik-initiative.de/fhir/modul-consent/CodeSystem/mii-cs-consent-consent_category",
+ "code": "2.16.840.1.113883.3.1937.777.24.2.184"
+ } ]
+ } ],
+ "patient": {
+ "reference": "Patient/7d2da57f-79b1-11f0-ab27-6ed0ed82d0fd",
+ "display": "Patienten-ID 644bae7a-56f6-4ee8-b02f-c532e65af5b1"
+ },
+ "dateTime": "2025-08-15T00:00:00+02:00",
+ "organization": [ {
+ "display": "MII"
+ } ],
+ "sourceReference": {
+ "reference": "QuestionnaireResponse/7d314bc5-79b1-11f0-ab27-6ed0ed82d0fd"
+ },
+ "policy": [ {
+ "uri": "urn:oid:2.16.840.1.113883.3.1937.777.24.2.1790"
+ } ],
+ "provision": {
+ "type": "deny",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "provision": [ {
+ "type": "deny",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy",
+ "code": "IDAT_erheben",
+ "display": "Erfassung neuer identifizierender Daten (IDAT)"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.2",
+ "display": "IDAT erheben"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy/MII",
+ "code": "KKDAT_5J_retro_speichern_verarbeiten",
+ "display": "Retrospektive Krankenkassendaten (KKDAT) aus fünf Jahren vor Einwilligung speichern und codiert verarbeiten zu Zwecken med. Forschung in der verantwortlichen Stelle"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.12",
+ "display": "KKDAT 5J retrospektiv speichern verarbeiten"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy/MII",
+ "code": "BIOMAT_wissenschaftlich_nutzen_EU_DSGVO_konform",
+ "display": "Bereitstellung umcodierter Biomaterialien (BIOMAT) für wissenschaftliche Nutzung und Analysen zu Zwecken med. Forschung an ext. Forscher"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.22",
+ "display": "BIOMAT wissenschaftlich nutzen EU DSGVO NIVEAU"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy/MII",
+ "code": "KKDAT_5J_retro_wissenschaftlich_nutzen",
+ "display": "Bereitstellung umcodierter retrospektiver Krankenkassendaten (KKDAT) für wissenschaftliche Nutzung zu Zwecken med. Forschung an externe Forscher"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.13",
+ "display": "KKDAT 5J retrospektiv wissenschaftlich nutzen"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy",
+ "code": "BIOMAT_Analysedaten_zusammenfuehren_Dritte",
+ "display": "Zusammenführen von auf Biomaterialien (BIOMAT) basierenden Analysedaten mit Analysedaten Dritter, sofern dort ebenfalls eine Einwilligung vorliegt"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.23",
+ "display": "BIOMAT Analysedaten zusammenfuehren Dritte"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy/MII",
+ "code": "Rekontaktierung_Zusatzbefund",
+ "display": "Rekontaktierung bezüglich Zusatzbefund im Rahmen der am Standort dafür entwickelten Prozesse und der im Nutzungsantrag angegebenen Bedingungen"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.31",
+ "display": "Rekontaktierung Zusatzbefund"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy/MII",
+ "code": "KKDAT_5J_pro_wissenschaftlich_nutzen",
+ "display": "Bereitstellung umcodierter prospektiver Krankenkassendaten (KKDAT) aus fünf Jahren ab Einwilligung zu Zwecken med. Forschung an ext. Forscher"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.17",
+ "display": "KKDAT 5J prospektiv wissenschaftlich nutzen"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy",
+ "code": "BIOMAT_lagern_verarbeiten",
+ "display": "Lagerung und Verarbeitung von Biomaterialien innerhalb der verantwortlichen Stelle (BIOMAT)"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.20",
+ "display": "BIOMAT lagern verarbeiten"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy/MII",
+ "code": "KKDAT_5J_retro_uebertragen",
+ "display": "Krankenkassendaten (KKDAT) der letzten fünf Kalenderjahre vor Datum Unterschrift übertragen"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.11",
+ "display": "KKDAT 5J retrospektiv uebertragen"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy/MII",
+ "code": "KKDAT_KVNR_5J_retro_uebertragen",
+ "display": "Erlaubnis zur retrospektiven Übermittlung der KVNr., MII-Pseudonym und Zeitraum Datenübermittlung (von:5 Jahre vor Datum Unterschrift; bis: Datum Unterschrift) an zuständige Stelle"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.38",
+ "display": "KKDAT 5J retrospektiv uebertragen KVNR"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2030-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy",
+ "code": "MDAT_erheben",
+ "display": "Erfassung medizinischer Daten (MDAT)"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.6",
+ "display": "MDAT erheben"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy/MII",
+ "code": "KKDAT_5J_pro_speichern_verarbeiten",
+ "display": "Prospektive Krankenkassendaten (KKDAT) aus fünf Jahren ab Einwilligung speichern und codiert verarbeiten zu Zwecken der med. Forschung in der verantwortlichen Stelle"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.16",
+ "display": "KKDAT 5J prospektiv speichern verarbeiten"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy/MII",
+ "code": "MDAT_wissenschaftlich_nutzen_EU_DSGVO_konform",
+ "display": "Bereitstellung umcodierter medizinischer Daten (MDAT) für wissenschaftliche Nutzung zu Zwecken med. Forschung an externe Forscher"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.8",
+ "display": "MDAT wissenschaftlich nutzen EU DSGVO NIVEAU"
+ } ]
+ } ]
+ }, {
+ "type": "deny",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy",
+ "code": "Rekontaktierung_Verknuepfung_Datenbanken",
+ "display": "Rekontaktierung zur Verknüpfung von Patientendaten mit Daten anderer Datenbanken"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.27",
+ "display": "Rekontaktierung Verknüpfung Datenbanken"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy",
+ "code": "Rekontaktierung_weitere_Studien",
+ "display": "Rekontaktierung bezüglich Information zu neuen Forschungsvorhaben oder Studien"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.29",
+ "display": "Rekontaktierung weitere Studien"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy/MII",
+ "code": "IDAT_bereitstellen_EU_DSGVO_konform",
+ "display": "Herausgabe identifizierender Daten (IDAT) an unabhängige Treuhandstelle zur weiteren Verarbeitung"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.5",
+ "display": "IDAT bereitstellen EU DSGVO NIVEAU"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy",
+ "code": "IDAT_speichern_verarbeiten",
+ "display": "Speicherung und Verarbeitung identifizierender Daten (IDAT) zu Zwecken med. Forschung in der verantwortlichen Stelle"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.3",
+ "display": "IDAT speichern, verarbeiten"
+ } ]
+ } ]
+ }, {
+ "type": "deny",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy",
+ "code": "MDAT_speichern_verarbeiten",
+ "display": "Speicherung und Verarbeitung von medizinischen codierten Daten zu Zwecken med. Forschung innerhalb der verantwortlichen Stelle (MDAT)"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.7",
+ "display": "MDAT speichern, verarbeiten"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2030-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy",
+ "code": "BIOMAT_erheben",
+ "display": "Gewinnung von Biomaterialien (BIOMAT)"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.19",
+ "display": "BIOMAT erheben"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy/MII",
+ "code": "Rekontaktierung_Ergebnisse_erheblicher_Bedeutung",
+ "display": "Rekontaktierung des Betroffenen bei Ergebnissen von erheblicher Bedeutung"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.37",
+ "display": "Rekontaktierung Ergebnisse erheblicher Bedeutung"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2030-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy/MII",
+ "code": "KKDAT_KVNR_5J_pro_uebertragen",
+ "display": "Erlaubnis zur prospektiven Übermittlung der KVNr., MII-Pseudonym und Zeitraum Datenübermittlung (von: Datum Unterschrift; bis: max. 5 Kalenderjahre nach Unterschrift) an zuständige Stelle"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.39",
+ "display": "KKDAT 5J prospektiv uebertragen KVNR"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2030-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy",
+ "code": "BIOMAT_Zusatzmengen_entnehmen",
+ "display": "Entnahme zusätzlicher Mengen von Biomaterialien (BIOMAT) in den in der Einwilligung beschriebenen Grenzen"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.25",
+ "display": "BIOMAT Zusatzmengen entnehmen"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy",
+ "code": "Rekontaktierung_weitere_Erhebung",
+ "display": "Rekontaktierung bezüglich Erhebung zusätzlicher Daten"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.28",
+ "display": "Rekontaktierung weitere Erhebung"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy",
+ "code": "IDAT_zusammenfuehren_Dritte",
+ "display": "Zusammenführung identifizierender Daten (IDAT) über die unabhängige Treuhandstelle mit Dritten Forschungspartnern, sofern dort eine Einwilligung vorliegt"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.4",
+ "display": "IDAT zusammenfuehren Dritte"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2055-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy",
+ "code": "MDAT_zusammenfuehren_Dritte",
+ "display": "Zusammenführung medizinischer Daten (MDAT) mit Dritten Forschungspartnern, sofern dort eine Einwilligung vorliegt"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.9",
+ "display": "MDAT zusammenfuehren Dritte"
+ } ]
+ } ]
+ }, {
+ "type": "permit",
+ "period": {
+ "start": "2025-08-15T00:00:00+02:00",
+ "end": "2030-08-15T00:00:00+02:00"
+ },
+ "code": [ {
+ "coding": [ {
+ "system": "https://ths-greifswald.de/fhir/CodeSystem/gics/Policy/MII",
+ "code": "KKDAT_5J_pro_uebertragen",
+ "display": "Prospektive Krankenkassendaten (KKDAT) für fünf Kalenderjahre nach Datum Unterschrift übertragen"
+ }, {
+ "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
+ "code": "2.16.840.1.113883.3.1937.777.24.5.3.15",
+ "display": "KKDAT 5J prospektiv uebertragen"
+ } ]
+ } ]
+ } ]
+ }
+ }
+ } ]
+} \ No newline at end of file