Hinweis
Richten Sie die erforderlichen FHIR-Speicherkonfigurationen und ‑ressourcen ein und erzwingen Sie die Zugriffssteuerung. Weitere Informationen finden Sie unter Zugriff auf FHIR steuern. Ressourcen
Ü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 die folgenden 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
Um
ExplainDataAccess
,
die ID der gewünschten Ressource übergeben. 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. Eine Ausnahme kann eintreten, wenn eine Richtlinie actor
den Zugriff gewährt
Observation/ob1
für einen beliebigen Zweck, obwohl es eine Ablehnungsrichtlinie gibt, die den Zugriff verweigert.
actor
darf mit dem Zweck research
nicht auf diese Ressource zugreifen. Jede Einwilligung
Umfang
enthält Informationen dazu, welche Einwilligungsressource einen solchen Zugriff erzwungen hat
ExplainDataAccessConsentScope.enforcing_consents,
können Sie so die Details der erzwungenen und anwendbaren Einwilligungen
für diese Ressource.
Es gibt eine Limit von 1.000 Richtlinien zur Einwilligung der Nutzer in der EU und 1.000 Ablehnungsrichtlinien Dieses Limit schränkt die Anzahl der Einwilligungsbereiche ein, die auf eine bestimmte Ressource angewendet werden. Wenn der Parameter die Anzahl der Einwilligungsbereiche das Limit überschreitet, ExplainDataAccessResponse.warning enthält eine relevante Nachricht.
Im Folgenden finden Sie ein Beispiel für eine Anfrage, die den Datenzugriff für eine bestimmte Ressource erläutert:
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 inApp/123
-Umgebung, mit Einwilligung des Patienten gewährt.Practitioner/12942879-f89f-41ae-aa80-0b911b649833
mitv3/BIORCH
Zweck inApp/golden
-Umgebung, durch Administratoreinwilligung erteilt.
Zusätzliches Beispiel für ExplainDataAccess-Antwort
{ "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 Einwilligung
Die Durchsetzung der Richtlinie ist eine PatienteneinwilligungConsent/pc1
und die Einwilligung
sind Administratorrichtlinien (Consent/ac1
und Consent/ac1-dup
).
Consent/ac1-dup
ist eine kaskadierende Administratorrichtlinie, die dem Inhaber der Ressource zugeordnet wurde
Patient/p1