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.
Überblick
Mit der Methode ExplainDataAccess
können Sie anhand der erzwungenen Richtlinien und Einwilligungen herausfinden, welche Akteure welchen Zugriff auf welche Ressource haben.
Mit der Methode ExplainDataAccess
können Sie folgende Fragen beantworten:
- Wer kann auf eine bestimmte Ressource zugreifen?
- Zu welchem Zweck können diese Akteure auf diese Ressource zugreifen?
- Welche Einwilligungsressourcen erzwingen den genannten Zugriff?
Informationen zum Datenzugriff
Zur Verwendung von ExplainDataAccess
müssen Sie die ID der betreffenden Ressource übergeben. Die Antwort enthält eine Liste der Einwilligungsbereiche (Akteur, Zweck, Umgebung), die auf die bereitgestellte Ressource zugreifen dürfen oder die nicht zugelassen sind. 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
für beliebige Zwecke ermöglicht, während es eine Ablehnungsrichtlinie gibt, die actor
den Zugriff auf diese Ressource mit dem Zweck research
verweigert. Jeder Einwilligungsbereich enthält Informationen dazu, welche Einwilligungsressource einen solchen Zugriff über ExplainDataAccessConsentScope.enforcing_consents erzwungen hat. So können Sie die Details der erzwungenen und anwendbaren Einwilligungen für diese Ressource nachvollziehen.
Es gibt ein Limit von 1.000 Genehmigungsrichtlinien und 1.000 Richtlinien zum Ablehnen von Einwilligungen. Dieses Limit schränkt die Anzahl der Einwilligungsbereiche ein, die auf eine bestimmte Ressource angewendet werden. Wenn die Anzahl der Einwilligungsbereiche das Limit überschreitet, enthält das Feld ExplainDataAccessResponse.warning eine relevante Nachricht.
Im Folgenden finden Sie eine Beispielanfrage, 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" \ "http://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 gewährt:
Practitioner/12942879-f89f-41ae-aa80-0b911b649833
mit dem Zweckv3/ETREAT
in allen Umgebungen, mit Einwilligung des Patienten.Practitioner/12942879-f89f-41ae-aa80-0b911b649833
mit jeglichem Zweck in einerApp/123
-Umgebung, erteilt durch Einwilligung des Patienten.Practitioner/12942879-f89f-41ae-aa80-0b911b649833
mit dem Zweckv3/BIORCH
in derApp/golden
-Umgebung, durch die Einwilligung des Administrators gewährt.
Zusätzliche Beispielantwort für 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 für alle Zwecke mit Ausnahme von v3/TREAT
auf die Ressource zugreifen . Die Richtlinie zum Erzwingen der Einwilligung ist eine Richtlinie zur Einwilligung des Patienten Consent/pc1
und die Richtlinie zur Erzwingung der Einwilligung sind Administratorrichtlinien (Consent/ac1
und Consent/ac1-dup
).
Consent/ac1-dup
ist eine Kaskadierungsrichtlinie für Administratoren , die dem Inhaber der Ressource zugeordnet wurde
Patient/p1
.