Informationen zum Datenzugriff

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:

  1. Practitioner/12942879-f89f-41ae-aa80-0b911b649833 mit dem Zweck v3/ETREAT in allen Umgebungen, die durch die Einwilligung des Patienten erteilt wurde.
  2. Practitioner/12942879-f89f-41ae-aa80-0b911b649833 mit allen Zwecken in der App/123-Umgebung, die durch die Einwilligung des Patienten gewährt wurde.
  3. Practitioner/12942879-f89f-41ae-aa80-0b911b649833 mit dem Zweck v3/BIORCH in der Umgebung App/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 .