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.

Ü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:

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