diff options
| author | Paul-Christian Volkmer | 2025-12-04 16:02:36 +0100 |
|---|---|---|
| committer | GitHub | 2025-12-04 15:02:36 +0000 |
| commit | 0c14eefe6eb2e3b7567ce06b3118b54e1618058b (patch) | |
| tree | e139d97014d43bbea24d474353859087f1ef1cf6 | |
| parent | 9ed87d9e846c4044641c67c59a6edf3c09037479 (diff) | |
feat: check MII broad consent (#213)
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 |
