Hinweise
Richten Sie die erforderlichen FHIR-Speicherkonfigurationen und ‑ressourcen ein und erzwingen Sie die Zugriffssteuerung. Weitere Informationen finden Sie unter Zugriff auf FHIR-Ressourcen steuern.
Übersicht
Mit der Methode ExplainDataAccess
können Sie anhand der erzwungenen Richtlinien und Einwilligungen herausfinden, welche Akteure welchen Zugriff auf eine bestimmte Ressource haben.
Mit der Methode ExplainDataAccess
können Sie Fragen wie diese beantworten:
- Wer kann auf eine bestimmte Ressource zugreifen?
- Zu welchem Zweck können diese Akteure auf diese Ressource zugreifen?
- Welche Einwilligungsressourcen erzwingen den Zugriff?
Informationen zum Datenzugriff
Wenn Sie ExplainDataAccess
verwenden möchten, geben Sie die Kennung der gewünschten Ressource an. Die Antwort enthält eine Liste der Gültigkeitsbereiche der Einwilligung (Akteur, Zweck, Umgebung), die den Zugriff auf die bereitgestellte Ressource zulassen oder verweigern. Die Ausnahmen für Einwilligungsbereiche sind im Feld ExplainDataAccessConsentScope.exceptions aufgeführt. Ausnahmen können auftreten, wenn eine Richtlinie actor
den Zugriff auf Observation/ob1
zu beliebigen Zwecken erlaubt, während eine Ablehnungsrichtlinie actor
den Zugriff auf diese Ressource zu dem Zweck research
untersagt. Jeder Einwilligungsumfang enthält Informationen dazu, mit welcher Einwilligungsressource dieser Zugriff erzwungen wurde. Sie finden diese Informationen unter ExplainDataAccessConsentScope.enforcing_consents. So können Sie die Details der erzwungenen und anwendbaren Einwilligungen für diese Ressource nachvollziehen.
Es gilt ein Limit von 1.000 Zulassungsanweisungen und 1.000 Ablehnungsanweisungen. Mit diesem Limit wird die Anzahl der Einwilligungsbereiche eingeschränkt, die auf eine bestimmte Ressource angewendet werden. Wenn die Anzahl der Einwilligungsbereiche das Limit überschreitet, enthält das Feld ExplainDataAccessResponse.warning eine entsprechende Meldung.
Im Folgenden finden Sie ein Beispiel für eine Anfrage, in der der Datenzugriff für eine bestimmte Ressource erläutert wird:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:explainDataAccess?resource_id=Observation/7473784b-46a8-470c-b9a6-fe38a01025aa"
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "consentScopes":[ { "decision":"CONSENT_DECISION_TYPE_PERMIT", "enforcingConsents":[ { "consentResource":"projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Consent/73c54e8d-2789-403b-9dee-13085c5d5e34", "type":"CONSENT_POLICY_TYPE_PATIENT", "enforcementTime":"2024-02-09T02:48:02.721589Z", "patientConsentOwner":"projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/3c6aa096-c054-4c22-b2b4-1e4a4d203de2", "matchingAccessorScopes":[ { "actor":"Practitioner/12942879-f89f-41ae-aa80-0b911b649833", "purpose":"v3/ETREAT", "environment":"*" } ] } ], "accessorScope":{ "actor":"Practitioner/12942879-f89f-41ae-aa80-0b911b649833", "purpose":"v3/ETREAT", "environment":"*" } }, { "decision":"CONSENT_DECISION_TYPE_PERMIT", "enforcingConsents":[ { "consentResource":"projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Consent/10998b60-a252-405f-aa47-0702554ddc8e", "type":"CONSENT_POLICY_TYPE_PATIENT", "enforcementTime":"2024-02-09T02:48:02.721589Z", "patientConsentOwner":"projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/3c6aa096-c054-4c22-b2b4-1e4a4d203de2", "matchingAccessorScopes":[ { "actor":"Practitioner/12942879-f89f-41ae-aa80-0b911b649833", "purpose":"*", "environment":"App/123" } ] } ], "accessorScope":{ "actor":"Practitioner/12942879-f89f-41ae-aa80-0b911b649833", "purpose":"*", "environment":"App/123" } }, { "decision":"CONSENT_DECISION_TYPE_PERMIT", "enforcingConsents":[ { "consentResource":"projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Consent/5c8e3f8a-9fd5-480d-a08e-f29b89feccde", "type":"CONSENT_POLICY_TYPE_ADMIN", "enforcementTime":"2024-02-09T02:50:03.973252Z", "matchingAccessorScopes":[ { "actor":"Practitioner/12942879-f89f-41ae-aa80-0b911b649833", "purpose":"v3/BIORCH", "environment":"App/golden" } ] } ], "accessorScope":{ "actor":"Practitioner/12942879-f89f-41ae-aa80-0b911b649833", "purpose":"v3/BIORCH", "environment":"App/golden" } } ] }
In diesem Beispiel wurde der folgende Zugriff zugelassen:
Practitioner/12942879-f89f-41ae-aa80-0b911b649833
mit dem Zweckv3/ETREAT
in allen Umgebungen, die durch die Einwilligung des Patienten erteilt wurde.Practitioner/12942879-f89f-41ae-aa80-0b911b649833
mit allen Zwecken in derApp/123
-Umgebung, die durch die Einwilligung des Patienten gewährt wurde.Practitioner/12942879-f89f-41ae-aa80-0b911b649833
mit dem Zweckv3/BIORCH
in der UmgebungApp/golden
, gewährt durch Administratoreinwilligung.
Zusätzliches Beispiel für eine Antwort von ExplainDataAccess
{ "consentScopes":[ { "decision":"CONSENT_DECISION_TYPE_PERMIT", "accessorScope":{ "actor":"Practitioner/doctor", "purpose":"*", "environment":"*" }, "enforcingConsents":[ { "consentResource":"projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Consent/pc1", "type":"CONSENT_POLICY_TYPE_PATIENT", "enforcementTime":"2024-01-02T14:10:55.271144Z", "patientConsentOwner":"projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/p1", "matchingAccessorScopes":[ { "actor":"Practitioner/doctor", "purpose":"*", "environment":"*" } ] } ], "exceptions":[ { "decision":"CONSENT_DECISION_TYPE_DENY", "accessorScope":{ "actor":"Practitioner/doctor", "purpose":"v3/TREAT", "environment":"*" }, "enforcingConsents":[ { "consentResource":"projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Consent/ac1", "type":"CONSENT_POLICY_TYPE_ADMIN", "enforcementTime":"2024-01-02T14:10:55.229196Z", "matchingAccessorScopes":[ { "actor":"Practitioner/doctor", "purpose":"v3/TREAT", "environment":"*" } ] }, { "consentResource":"projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Consent/ac1-dup", "type":"CONSENT_POLICY_TYPE_ADMIN", "variants":["CONSENT_VARIANT_CASCADE"], "enforcementTime":"2024-01-02T14:10:55.229196Z", "cascadeOrigins":[ "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/p1" ], "matchingAccessorScopes":[ { "actor":"Practitioner/doctor", "purpose":"v3/TREAT", "environment":"*" } ] } ] } ] }, { "decision":"CONSENT_DECISION_TYPE_DENY", "accessorScope":{ "actor":"Practitioner/doctor", "purpose":"v3/TREAT", "environment":"*" }, "enforcingConsents":[ { "consentResource":"projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Consent/ac1", "type":"CONSENT_POLICY_TYPE_ADMIN", "enforcementTime":"2024-01-02T14:10:55.229196Z", "matchingAccessorScopes":[ { "actor":"Practitioner/doctor", "purpose":"v3/TREAT", "environment":"*" } ] }, { "consentResource":"projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Consent/ac1-dup", "type":"CONSENT_POLICY_TYPE_ADMIN", "variants":["CONSENT_VARIANT_CASCADE"], "enforcementTime":"2024-01-02T14:10:55.229196Z", "cascadeOrigins":[ "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/p1" ], "matchingAccessorScopes":[ { "actor":"Practitioner/doctor", "purpose":"v3/TREAT", "environment":"*" } ] } ] } ] }
In diesem Beispiel darf Practitioner/doctor
in allen Umgebungen und zu allen Zwecken auf die Ressource zugreifen, mit Ausnahme von v3/TREAT
. Die Richtlinie zur Einwilligungsdurchsetzung ist eine Patienteneinwilligung Consent/pc1
und die Richtlinie zur Einwilligungsdurchsetzung sind Administratorrichtlinien (Consent/ac1
und Consent/ac1-dup
). Consent/ac1-dup
ist eine abgeleitete Administratorrichtlinie , die mit dem Eigentümer der Ressource Patient/p1
übereinstimmt .