FHIR-Profile aktivieren

Auf dieser Seite wird erläutert, wie Sie FHIR-Implementierungsleitfäden und Profile in FHIR-Speicher importieren und aktivieren.

Damit FHIR-Ressourcen in einem FHIR-Speicher bestimmte Kriterien für die Ressourcenstruktur und die erfassten Informationen erfüllen, verwenden Sie FHIR-Implementierungsleitfäden und -profile. Wenn eine FHIR-Ressource die in einem Profil angegebenen Regeln erfüllt, entspricht die FHIR-Ressource dem Profil.

Übersicht

FHIR-Profile sind eine Reihe zusätzlicher Regeln, die zusätzlich zur FHIR-Basisspezifikation definiert werden und die Verarbeitung verschiedener Ressourcen durch Gesundheitssysteme steuern. Sie können FHIR-Profile in einen FHIR-Speicher importieren und aktivieren, um sicherzustellen, dass alle Ressourcen in einem FHIR-Speicher bestimmte Kriterien für die Ressourcenstruktur und die erfassten Informationen erfüllen.

Strukturdefinitionen und Implementierungsleitfäden

Sie können FHIR-Profile für Ihren FHIR-Speicher importieren, indem Sie eine oder mehrere Strukturdefinitionen zusammengefasst in einen oder mehrere Implementierungsleitfäden einfügen. Mit einer Strukturdefinition können Sie Folgendes tun:

  • Definieren Sie die Einschränkung für ein Feld in einer FHIR-Ressource.
  • Referenzwertsätze, die Codesysteme und FHIR-Ressourcen verknüpfen.

Sie verwenden einen Implementierungsleitfaden mit Strukturdefinitionen, um Ressourcen zu validieren, damit sie mit dem Anwendungsfall Ihrer Drittanbieter-Software übereinstimmen.

Angenommen, Ihre Drittanbieter-Software muss den Interoperabilität von Centers for Medicare & Medicaid Services (CMS) und der endgültigen Regel für Patientenzugriff in den USA entsprechen. Die Drittanbietersoftware muss eine Patienten-Zugriffs-API bereitstellen, die den CARIN-Profilen entspricht. Sie können den CARIN-Implementierungsleitfaden in Ihren FHIR-Speicher importieren und aktivieren, um die Ressourcen anhand der CARIN-Profile zu validieren. In den folgenden Abschnitten dieser Seite wird beschrieben, wie Implementierungsleitfäden importiert und aktiviert werden.

Nachdem Sie den Implementierungsleitfaden importiert haben, können Sie ihn in Ihrem FHIR-Speicher für die FHIR-Ressourcenvalidierung aktivieren. Wenn eine FHIR-Ressource aktualisiert oder dem Speicher hinzugefügt wird, überprüft die Cloud Healthcare API, ob sie mit einer Strukturdefinition im Implementierungsleitfaden übereinstimmt. Wenn die FHIR-Ressource übereinstimmt, wird die FHIR-Ressource zum Speicher hinzugefügt. Wenn die FHIR-Ressource nicht den Strukturdefinitionen im Implementierungsleitfaden entspricht, wird eine Fehlermeldung zurückgegeben und die FHIR-Ressource abgelehnt.

Erzwingung der Datenvalidierung

Die Cloud Healthcare API erzwingt die Datenvalidierung, wenn die folgenden Methoden verwendet werden:

Workflow zur Profilvalidierung

Das folgende Diagramm zeigt den Validierungsworkflow zum Hinzufügen oder Aktualisieren von FHIR-Ressourcen:

fhir-Profile

FHIR-Profile definieren

In den folgenden Abschnitten wird beschrieben, wie Sie Strukturdefinitionen aus Ihrer Drittanbieter-Software herunterladen und einen Implementierungsleitfaden konfigurieren.

Strukturdefinitionen herunterladen

Laden Sie die Strukturdefinitionen, Implementierungsleitfäden und Wertsätze Ihres externen Softwareanbieters herunter, damit Ihre Strukturdefinitionen mit der autoritativen Quelle übereinstimmen.

Wenn Ihr System beispielsweise das Patientenprofil Blue Button verwendet, können Sie die von Blue Button verwendeten Strukturdefinitionen und den Implementierungsleitfaden herunterladen.

Die Cloud Healthcare API ermöglicht die Validierung der folgenden Arten von Strukturdefinitionsregeln:

  • slicing (für den Typ value oder pattern)
  • min/max
  • type
  • fixed
  • pattern
  • minValue
  • maxValue
  • maxLength
  • binding

Implementierungsleitfaden konfigurieren

Nachdem Sie die Strukturdefinitionen, den Implementierungsleitfaden und den Wert heruntergeladen haben, müssen Sie die Profile hinzufügen, die im Implementierungsleitfaden zur Validierung von FHIR-Ressourcen verwendet werden.

Führen Sie die folgenden Schritte aus, um den Implementierungsleitfaden einem FHIR-Speicher hinzuzufügen:

  1. Öffnen Sie die Datei mit dem Implementierungsleitfadens, die Sie von Ihrem Softwareanbieter heruntergeladen haben.

  2. Fügen Sie den folgenden Abschnitt hinzu, um die Strukturdefinitionen anzugeben, die Sie in Ihrem Implementierungsleitfaden validieren möchten:

    {
        "resourceType": "ImplementationGuide",
        ...
        "global": [
            {
            "type": "RESOURCE_TYPE",
            "profile": "STRUCTURE_DEFINITION_URL"
            }
        ]
        ...
    }
    

    Dabei gilt:

    • RESOURCE_TYPE: der FHIR-Ressourcentyp
    • STRUCTURE_DEFINITION_URL: die URL zur Definition der Quellstruktur des Profils.
  3. Speichern Sie die Datei mit dem Implementierungsleitfaden.

Implementierungsleitfaden in Cloud Storage hochladen

Nachdem Sie den Implementierungsleitfaden bearbeitet haben, müssen Sie die folgenden Dateien in Cloud Storage hochladen:

  • Implementierungsleitfaden
  • Strukturdefinitionen
  • Wertesätze

Nach dem Hochladen können Sie diese Dateien verwenden, um Ressourcen in Ihrem FHIR-Speicher zu validieren.

Führen Sie die folgenden Befehle aus, um den Implementierungsleitfaden, Strukturdefinitionen und Wertsätze in Cloud Storage hinzuzufügen:

gsutil cp -r \
   PATH_TO_IMPLEMENTATION_GUIDE \
   gs://BUCKET/IMPLEMENTATION_GUIDE

Ersetzen Sie

  • PATH_TO_IMPLEMENTATION_GUIDE: der Pfad zum Implementierungsleitfaden auf Ihrem lokalen Computer
  • BUCKET/IMPLEMENTATION_GUIDE: Bucket und Verzeichnis, in dem Sie den Implementierungsleitfaden in Cloud Storage speichern

Implementierungsleitfaden importieren

Wenn Sie den Implementierungsleitfaden verwenden möchten, um Profile in Ihrem FHIR-Speicher zu validieren, importieren Sie ihn als FHIR-Ressource in Ihren FHIR-Speicher.

Die folgenden Beispiele zeigen, wie Sie den Implementierungsleitfaden in einen FHIR-Speicher importieren:

gcloud

Führen Sie den Befehl gcloud healthcare fhir-stores import gcs aus, um Ihren Implementierungsleitfaden als Ressource einem FHIR-Speicher hinzuzufügen:

gcloud healthcare fhir-stores import gcs FHIR_STORE_ID \
  --dataset=DATASET_ID \
  --gcs-uri=gs://BUCKET/DIRECTORY
  --content-structure=RESOURCE_PRETTY

Dabei gilt:

  • FHIR_STORE_ID: die FHIR-Speicher-ID
  • DATASET_ID: die Dataset-ID
  • BUCKET/DIRECTORY: Speicherort des Implementierungsleitfadens in einem Cloud Storage-Bucket

Die Ausgabe sieht so aus:

Request issued for: [FHIR_STORE_ID]
Waiting for operation [OPERATION_ID] to complete...done.
name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID

In dieser Ausgabe gilt:

  • PROJECT_ID, LOCATION, DATASET_ID: die Werte, die Sie im Methodenaufruf angegeben haben
  • OPERATION_ID: eine Kennung für den lang andauernden Vorgang, der von der Cloud Healthcare API bereitgestellt wird

Führen Sie den Befehl gcloud healthcare operations describe aus und geben Sie OPERATION_ID aus der Antwort an, um weitere Details des Vorgangs anzuzeigen:

gcloud healthcare operations describe OPERATION_ID \
  --dataset=DATASET_ID

Die Ausgabe sieht so aus. Wenn die Antwort done: true enthält, ist der Vorgang abgeschlossen. Ist dies nicht der Fall, wird der Vorgang noch ausgeführt. Warten Sie einige Sekunden und führen Sie den Befehl gcloud healthcare operations describe noch einmal aus.

done: true
metadata:
  '@type': type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata
  apiMethodName: google.cloud.healthcare.v1.fhir.FhirService.ImportResources
  createTime: 'CREATE_TIME'
  endTime: 'END_TIME'
name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID
response:
  '@type': type.googleapis.com/google.cloud.healthcare.v1.fhir.rest.ImportResourcesResponse
  fhirStore: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID

API

curl

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data '{
      "contentStructure": "RESOURCE_PRETTY",
      "gcsSource": {
        "uri": "gs://BUCKET/DIRECTORY"
      }
    }' "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:import"

Dabei gilt:

  • BUCKET/DIRECTORY: Speicherort des Implementierungsleitfadens in einem Cloud Storage-Bucket
  • PROJECT_ID: ID Ihres Google Cloud-Projekts
  • LOCATION: der Speicherort des Datasets
  • DATASET_ID: die Dataset-ID
  • FHIR_STORE_ID: die FHIR-Speicher-ID

Die Antwort lautet so:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
}

In dieser Ausgabe gilt:

  • PROJECT_ID, LOCATION, DATASET_ID: die Werte, die Sie im Methodenaufruf angegeben haben
  • OPERATION_ID: eine Kennung für den lang andauernden Vorgang, der von der Cloud Healthcare API bereitgestellt wird

Verwenden Sie die Methode operations.get, um den Status des Vorgangs zu verfolgen:

curl -X GET \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"

Dabei gilt:

  • PROJECT_ID: ID Ihres Google Cloud-Projekts
  • LOCATION: der Speicherort des Datasets
  • DATASET_ID: die Dataset-ID
  • FHIR_STORE_ID: die FHIR-Speicher-ID
  • OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit zurückgegeben wurde

Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, ist der Vorgang abgeschlossen. Ist dies nicht der Fall, wird der Vorgang noch ausgeführt. Warten Sie einige Sekunden und rufen Sie dann die Methode operations.get noch einmal auf.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata",
    "apiMethodName": "google.cloud.healthcare.v1.fhir.FhirService.ImportResources",
    "createTime": "CREATE_TIME",
    "endTime": "END_TIME",
    "logsUrl": "https://console.cloud.google.com/logs/viewer/CLOUD_LOGGING_URL",
    "counter": {
      "success": "SUCCESS_COUNT"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.fhir.rest.ImportResourcesResponse",
  }
}

PowerShell

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body '{
    "contentStructure": "RESOURCE_PRETTY",
    "gcsSource": {
      "uri": "gs://BUCKET/DIRECTORY"
    }
  }' `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:import" | Select-Object -Expand Content

Dabei gilt:

  • BUCKET/DIRECTORY: Speicherort des Implementierungsleitfadens in einem Cloud Storage-Bucket
  • PROJECT_ID: ID Ihres Google Cloud-Projekts
  • LOCATION: der Speicherort des Datasets
  • DATASET_ID: die Dataset-ID
  • FHIR_STORE_ID: die FHIR-Speicher-ID

Die Antwort lautet so:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
}

In dieser Ausgabe gilt:

  • PROJECT_ID, LOCATION, DATASET_ID: die Werte, die Sie im Methodenaufruf angegeben haben
  • OPERATION_ID: eine Kennung für den lang andauernden Vorgang, der von der Cloud Healthcare API bereitgestellt wird

Verwenden Sie die Methode operations.get, um den Status des Vorgangs zu verfolgen:

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Get `
  -Headers $headers `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

Dabei gilt:

  • PROJECT_ID: ID Ihres Google Cloud-Projekts
  • LOCATION: der Speicherort des Datasets
  • DATASET_ID: die Dataset-ID
  • FHIR_STORE_ID: die FHIR-Speicher-ID
  • OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit zurückgegeben wurde

Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, ist der Vorgang abgeschlossen. Ist dies nicht der Fall, wird der Vorgang noch ausgeführt. Warten Sie einige Sekunden und rufen Sie dann die Methode operations.get noch einmal auf.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata",
    "apiMethodName": "google.cloud.healthcare.v1.fhir.FhirService.ImportResources",
    "createTime": "CREATE_TIME",
    "endTime": "END_TIME",
    "logsUrl": "https://console.cloud.google.com/logs/viewer/CLOUD_LOGGING_URL",
    "counter": {
      "success": "SUCCESS_COUNT"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.fhir.rest.ImportResourcesResponse",
  }
}

Implementierungsleitfaden aktivieren

Wenn Sie eine Ressource für den Implementierungsleitfaden zum Validieren von Profilen verwenden möchten, müssen Sie den Implementierungsleitfaden aktivieren. Wenn Sie mehr als einen Implementierungsleitfaden aktivieren, treten beide Implementierungsleitfäden in Kraft. Eine FHIR-Ressource muss nur mit einem Profil aus einem aktivierten Implementierungsleitfaden übereinstimmen.

In den folgenden Beispielen wird gezeigt, wie Sie den Implementierungsleitfaden für die Profilvalidierung für einen vorhandenen FHIR-Speicher aktivieren:

curl

curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/fhir+json; charset=utf-8" \
    --data '{
      "validationConfig": {
          "enabledImplementationGuides": ["IMPLEMENTATION_GUIDE_URL"]
      }
    }' "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=validationConfig"

Dabei gilt:

  • IMPLEMENTATION_GUIDE_URL: der Pfad zur Ressource für den Implementierungsleitfaden
  • PROJECT_ID: ID Ihres Google Cloud-Projekts
  • LOCATION: der Speicherort des Datasets
  • DATASET_ID: die Dataset-ID
  • FHIR_STORE_ID: die FHIR-Speicher-ID

Die Antwort lautet so:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
  "validationConfig": {
    "enabledImplementationGuides": ["IMPLEMENTATION_GUIDE_URL"]
  }
}

PowerShell

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Patch `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body '{
      "validationConfig": {
          "enabledImplementationGuides": ["IMPLEMENTATION_GUIDE_URL"]
      }
  }' `
  -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=validationConfig" | Select-Object -Expand Content

Dabei gilt:

  • IMPLEMENTATION_GUIDE_URL: der Pfad zur Ressource für den Implementierungsleitfaden
  • PROJECT_ID: ID Ihres Google Cloud-Projekts
  • LOCATION: der Speicherort des Datasets
  • DATASET_ID: die Dataset-ID
  • FHIR_STORE_ID: die FHIR-Speicher-ID

Die Antwort lautet so:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
  "validationConfig": {
    "enabledImplementationGuides": ["IMPLEMENTATION_GUIDE_URL"]
  },
}