FHIR-Implementierungsleitfäden und -profile sorgen dafür, dass Ressourcen in einem FHIR-Speicher bestimmten definierten Kriterien entsprechen. Beispiele für Implementierungsleitfäden sind der US Core Implementation Guide 4.0.0 und der Carin Blue Button Implementation Guide.
Auf dieser Seite wird erläutert, wie Sie Implementierungsleitfäden und -profile in R4-FHIR-Speichern mit dem US Core Implementation Guide 4.0.0 definieren, konfigurieren und verwenden.
Überblick
FHIR-Profile sind eine Reihe zusätzlicher Regeln, die auf der Basis der FHIR-Spezifikation definiert sind, um die Verarbeitung von Ressourcen durch verschiedene Gesundheitssysteme zu verarbeiten. Sie können FHIR-Profile in einen FHIR-Speicher importieren und dort aktivieren, um sicherzustellen, dass alle Ressourcen in einem FHIR-Speicher bestimmte Kriterien in Sachen Ressourcenstruktur und erfasster 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.
- Wertsätze referieren, die Codesysteme und FHIR-Ressourcen verknüpfen.
Implementierungsleitfäden mit Strukturdefinitionen dienen dazu, Ressourcen zu validieren, damit sie mit dem Anwendungsfall Ihrer Drittanbieter-Software übereinstimmen.
Angenommen, Ihre Drittanbieter-Software muss die CMS (Centers for Medicare & Medicaid Services) Interoperability and Patient Access Final Rule in den USA erfüllen. Ihre Drittanbieter-Software müsste eine Patient Access 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. Leitfäden zum Importieren und Aktivieren finden Sie in den nachfolgenden Abschnitten auf dieser Seite.
Nachdem Sie den Implementierungsleitfaden importiert haben, können Sie ihn in Ihrem FHIR-Speicher für die Validierung der FHIR-Ressourcen aktivieren. Wenn eine FHIR-Ressource aktualisiert oder dem Speicher hinzugefügt wird, prüft die Cloud Healthcare API, ob sie mit einer Strukturdefinition im Implementierungsleitfaden übereinstimmt. Wenn die FHIR-Ressource übereinstimmt, wird sie dem Speicher hinzugefügt. Wenn die FHIR-Ressource nicht den Strukturdefinitionen im Implementierungsleitfaden entspricht, wird eine Fehlermeldung zurückgegeben und die FHIR-Ressource wird abgelehnt.
Erzwingung der Datenvalidierung
Die Cloud Healthcare API erzwingt die Datenvalidierung, wenn folgende Methoden verwendet werden:
projects.locations.datasets.fhirStores.fhir.create
projects.locations.datasets.fhirStores.fhir.update
projects.locations.datasets.fhirStores.fhir.patch
projects.locations.datasets.fhirStores.executeBundle
Workflow zur Profilvalidierung
Das folgende Diagramm zeigt den Validierungsworkflow zum Hinzufügen oder Aktualisieren von FHIR-Ressourcen:
FHIR-Profile definieren
In den folgenden Abschnitten wird beschrieben, wie Sie Strukturdefinitionen aus Ihrer Drittanbieter-Software herunterladen und einen Implementierungsleitfaden konfigurieren.
Ressourcen zur Profilbestätigung herunterladen
Damit Ihre Strukturdefinitionen mit der autoritativen Quelle übereinstimmen, müssen Sie die Ressourcen zur Profilvalidierung, z. B. Strukturdefinitionen, Implementierungsleitfäden oder Wertsätze, von einer externen Quelle herunterladen, z. B. der Implementation Guide Registry von FHIR.org. Externe Quellen enthalten ein Paket, das alle Wertesätze, Profile, Erweiterungen, eine Liste mit Seiten und URLs für jeden Implementierungsleitfaden enthält.
Wenn Ihr System beispielsweise das Patientenprofil US Core verwendet, können Sie die von US Core verwendeten Strukturdefinitionen und den Implementierungsleitfaden herunterladen.
Die Cloud Healthcare API ermöglicht die Validierung der folgenden Arten von Strukturdefinitionsregeln:
slicing
, mit Unterstützung der folgenden Discriminatoren:value
pattern
profile
min/max
type
fixed
pattern
minValue
maxValue
maxLength
binding
, mit Ausnahme der folgenden Regeln:ValueSet.compose.include.filter
ValueSet.compose.exclude
Implementierungsleitfaden konfigurieren
Nachdem Sie die Strukturdefinitionen, den Implementierungsleitfaden und den Wertsatz heruntergeladen haben, müssen Sie die Profile hinzufügen, die der Implementierungsleitfaden zum Prüfen von FHIR-Ressourcen nutzt.
So konfigurieren Sie den Implementierungsleitfaden:
Öffnen Sie die Datei mit dem Implementierungsleitfadens, die Sie von Ihrem Softwareanbieter heruntergeladen haben.
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 definiert den Ressourcentyp, auf den der Implementierungsleitfaden angewendet wird.
- STRUCTURE_DEFINITION_URL ist die URL zur Definition der Quellstruktur des Profils, z. B. das US Core-Patientenprofil.
Speichern Sie die Datei mit dem Implementierungsleitfaden.
Das folgende Beispiel zeigt die Patienten- und Organisationsprofile, die für den US Core-Implementierungsleitfaden aktiviert sind:
"global":[ { "type":"Patient", "profile":"https://hl7.org/fhir/us/core/StructureDefinition/us-core-patient" }, { "type":"Organization", "profile":"https://hl7.org/fhir/us/core/StructureDefinition/us-core-organization" }, ... ]
Implementierungsleitfaden in Cloud Storage hochladen
Nachdem Sie Ihren Implementierungsleitfaden bearbeitet haben, müssen Sie folgende Dateien in Cloud Storage hochladen:
- Implementierungsleitfaden
- Gebäudedefinitionen
- Wertesätze
Nach dem Hochladen können Sie diese Dateien verwenden, um Ressourcen in Ihrem FHIR-Speicher zu validieren.
So laden Sie Ihren Implementierungsleitfaden in Cloud Storage hoch:
Löschen Sie alle Dateien aus dem Implementierungsleitfaden, die nicht von FHIR-Profilen in der Cloud Healthcare API verwendet werden.
Wenn Sie beispielsweise den US Core-Implementierungsleitfaden implementieren, können Sie die folgenden Dateien löschen:
.DS_Store
ig-r4.json
openapi/.index.json
package.json
Führen Sie die folgenden Befehle aus, um den Implementierungsleitfaden, Strukturdefinitionen und Wertsätze in Cloud Storage hinzuzufügen:
gcloud storage cp \ PATH_TO_IMPLEMENTATION_GUIDE \ gs://BUCKET/IMPLEMENTATION_GUIDE_DIRECTORY \ --recursive
Dabei gilt:
- PATH_TO_IMPLEMENTATION_GUIDE ist der Pfad zum Implementierungsleitfaden auf Ihrem lokalen Computer
- BUCKET/IMPLEMENTATION_GUIDE_DIRECTORY ist der Bucket und das 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.
Folgende Beispiele zeigen, wie Sie den Implementierungsleitfaden in einen FHIR-Speicher importieren:
gcloud
Führen Sie den gcloud healthcare fhir-stores import gcs
-Befehl 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/IMPLEMENTATION_GUIDE_DIRECTORY/*' \ --content-structure=resource-pretty
Dabei gilt:
- FHIR_STORE_ID ist die FHIR-Speicher-ID
- DATASET_ID: Die Dataset-ID
- BUCKET/IMPLEMENTATION_GUIDE_DIRECTORY ist der 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 sind die Werte, die Sie im Methodenaufruf angegeben haben
- OPERATION_ID ist eine Kennung für den lang andauernden Vorgang, von der Cloud Healthcare API bereitgestellt
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 rufen Sie dann den Befehl gcloud healthcare operations describe
noch einmal auf.
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/IMPLEMENTATION_GUIDE_DIRECTORY/*" } }' "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:import"
Dabei gilt:
- BUCKET/IMPLEMENTATION_GUIDE_DIRECTORY ist der Speicherort des Implementierungsleitfadens in einem Cloud Storage-Bucket
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID ist die Dataset-ID
- FHIR_STORE_ID ist die FHIR-Speicher-ID
Die Antwort lautet:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" }
In dieser Ausgabe gilt:
- PROJECT_ID, LOCATION, DATASET_ID sind die Werte, die Sie im Methodenaufruf angegeben haben
- OPERATION_ID ist eine Kennung für den lang andauernden Vorgang, von der Cloud Healthcare API bereitgestellt
Mit der Methode operations.get
können Sie den Status des Vorgangs 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 ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID ist die Dataset-ID
- FHIR_STORE_ID ist die FHIR-Speicher-ID
- OPERATION_ID ist die ID, die vom lang andauernden Vorgang 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/query/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/IMPLEMENTATION_GUIDE_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/IMPLEMENTATION_GUIDE_DIRECTORY ist der Speicherort des Implementierungsleitfadens in einem Cloud Storage-Bucket
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID ist die Dataset-ID
- FHIR_STORE_ID ist die FHIR-Speicher-ID
Die Antwort lautet:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" }
In dieser Ausgabe gilt:
- PROJECT_ID, LOCATION, DATASET_ID sind die Werte, die Sie im Methodenaufruf angegeben haben
- OPERATION_ID ist eine Kennung für den lang andauernden Vorgang, von der Cloud Healthcare API bereitgestellt
Mit der Methode operations.get
können Sie den Status des Vorgangs 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 ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID ist die Dataset-ID
- FHIR_STORE_ID ist die FHIR-Speicher-ID
- OPERATION_ID ist die ID, die vom lang andauernden Vorgang 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/query/CLOUD_LOGGING_URL", "counter": { "success": "SUCCESS_COUNT" } }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.fhir.rest.ImportResourcesResponse", } }
Abhängigkeiten der Implementierung hochladen und importieren
Bevor Sie den Implementierungsleitfaden aktivieren können, müssen Sie prüfen, ob alle Abhängigkeiten des Leitfadens hochgeladen und importiert wurden. Abhängigkeiten werden durch den Parameter dependsOn
im Implementierungsleitfaden so definiert:
"dependsOn":[
{
"id":"hl7_fhir_uv_bulkdata",
"uri":"http://hl7.org/fhir/uv/bulkdata/ImplementationGuide/hl7.fhir.uv.bulkdata",
"packageId":"hl7.fhir.uv.bulkdata",
"version":"1.0.1"
},
{
"id":"vsac",
"uri":"http://fhir.org/packages/us.nlm.vsac/ImplementationGuide/us.nlm.vsac",
"packageId":"us.nlm.vsac",
"version":"0.3.0"
}
]
Folgen Sie der Anleitung unter Implementierungsleitfaden in Cloud Storage hochladen bzw. Implementierungsleitfaden importieren, um Abhängigkeiten hochzuladen und zu importieren.
Implementierungsleitfaden aktivieren
Wenn Sie eine Implementierungsleitfadenressource zum Validieren von Profilen verwenden möchten, müssen Sie den Implementierungsleitfaden aktivieren. Wenn Sie mehrere Implementierungsleitfäden aktivieren, versucht die Cloud Healthcare API, Profile anhand aller Implementierungsleitfäden zu validieren. Eine FHIR-Ressource muss nur einem Profil aus einem der aktivierten Implementierungsleitfäden entsprechen.
Die Cloud Healthcare API validiert Implementierungsleitfäden nur, wenn Sie sie aktivieren. Wenn Sie einen Implementierungsleitfaden ändern und wieder aktivieren, validiert die Cloud Healthcare API den geänderten Implementierungsleitfaden.
Wenn Sie einen Implementierungsleitfaden entfernen, nachdem er aktiviert wurde, ist der Implementierungsleitfaden nicht mehr wirksam.
In folgenden Beispielen wird gezeigt, wie Sie Ihren Implementierungsleitfaden zur Profilvalidierung für einen vorhandenen FHIR-Speicher aktivieren:
curl
Stellen Sie zum Aktivieren des Implementierungsleitfadens eine PATCH
-Anfrage und geben Sie folgenden Informationen an:
- Name und Speicherort des übergeordneten Datasets
- Der Name des FHIR-Speichers
- Das
enabledImplementationGuides
-Feld, das auf den Pfad zu Ihrer Ressource für den Implementierungsleitfaden festgelegt ist
Das folgende Beispiel zeigt eine PATCH
-Anfrage mit 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"], "disableProfileValidation": false } }' "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=validationConfig"
Ersetzen Sie Folgendes:
- IMPLEMENTATION_GUIDE_URL: die URL, die im Attribut
url
der ImplementationGuide-Ressource definiert ist, z. B.http://hl7.org/fhir/us/core/ImplementationGuide/hl7.fhir.us.core
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID ist die Dataset-ID
- FHIR_STORE_ID ist die FHIR-Speicher-ID
Die Antwort lautet:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID", "validationConfig": { "enabledImplementationGuides": ["IMPLEMENTATION_GUIDE_URL"] } }
PowerShell
Stellen Sie zum Aktivieren des Implementierungsleitfadens eine PATCH
-Anfrage und geben Sie folgenden Informationen an:
- Name und Speicherort des übergeordneten Datasets
- Der Name des FHIR-Speichers
- Das
enabledImplementationGuides
-Feld, das auf den Pfad zu Ihrer Ressource für den Implementierungsleitfaden festgelegt ist
Das folgende Beispiel zeigt eine PATCH
-Anfrage mit Windows 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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=validationConfig" | Select-Object -Expand Content
Ersetzen Sie Folgendes:
- IMPLEMENTATION_GUIDE_URL: die URL, die im Attribut
url
der ImplementationGuide-Ressource definiert ist, z. B.http://hl7.org/fhir/us/core/ImplementationGuide/hl7.fhir.us.core
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID ist die Dataset-ID
- FHIR_STORE_ID ist die FHIR-Speicher-ID
Die Antwort lautet:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID", "validationConfig": { "enabledImplementationGuides": ["IMPLEMENTATION_GUIDE_URL"], }, }
Python
Implementierungsleitfäden in der Google Cloud Console aktivieren
Wenn Sie in der Google Cloud Console einen FHIR-Speicher erstellen oder bearbeiten, haben Sie folgende Möglichkeiten:
- Wählen Sie die Standardimplementierungsleitfäden aus, die von der Cloud Healthcare API bereitgestellt werden.
- Benutzerdefinierten Implementierungsleitfaden aus Cloud Storage in Ihren FHIR-Speicher importieren
So importieren Sie einen benutzerdefinierten Implementierungsleitfaden:
Optional: Konfigurieren Sie den Implementierungsleitfaden.
Dieser Schritt ist erforderlich, um der Ressource des Implementierungsleitfadens das
global
-Array manuell hinzuzufügen. Wenn Sie diesen Schritt überspringen, müssen Sie dasglobal
-Array hinzufügen, wenn Sie im nächsten Schritt das FHIR-Transaktions-Bundle mit einer anderen Methode erstellen, z. B. mit dem Tool Bundler for FHIR profile validation resources (Bundler für Ressourcen zur Validierung von FHIR-Profilen) und dem Flaggenerate_global_array
.Erstellen Sie ein FHIR-Transaktions-Bundle mit Ihren Ressourcen zur Profilvalidierung, das den Implementierungsleitfaden, die Strukturdefinitionen und die Wertsätze enthält.
Sie können das Transaktions-Bundle mit dem Tool Bundler for FHIR profile validation resources erstellen.
Laden Sie das FHIR-Profil-Validierungspaket in einen Cloud Storage-Speicherort hoch.
gcloud storage cp \ PATH_TO_PROFILE_VALIDATION_BUNDLE \ gs://BUCKET/IMPLEMENTATION_GUIDE_DIRECTORY \ --recursive
Ersetzen Sie Folgendes:
- PATH_TO_PROFILE_VALIDATION_BUNDLE: der Pfad zum Profilvalidierungs-Bundle auf Ihrem lokalen Computer
- BUCKET/IMPLEMENTATION_GUIDE_DIRECTORY: der Cloud Storage-Speicherort, an dem das Bundle gespeichert werden muss
Importieren Sie Ihren benutzerdefinierten Implementierungsleitfaden aus dem Cloud Storage-Speicherort, wenn Sie Ihren FHIR-Speicher erstellen oder bearbeiten.
Ressourcen anhand bestimmter Profile validieren
In den folgenden Beispielen wird gezeigt, wie Sie eine FHIR-Ressource für ein bestimmtes Profil oder für alle Profile validieren, die für einen FHIR-Speicher definiert wurden. Durch die Validierung der FHIR-Ressource können Sie feststellen, ob Ihre FHIR-Ressource einem oder mehreren Profilen entspricht.
Verwenden Sie die Methode fhir.Resource-validate
, um eine FHIR-Ressource zu validieren.
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data @RESOURCE_FILE \ 'https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/$validate?profile=PROFILE_URL'
Dabei gilt:
- RESOURCE_FILE ist der Speicherort einer Datei, die die Ressource enthält
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID ist die Dataset-ID
- FHIR_STORE_ID ist die FHIR-Speicher-ID
- PROFILE_URL ist die kanonische URL des FHIR-Profils, z. B.
http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
für eine Patientenressource. In FHIR_STORE_ID muss eine Strukturdefinition mit dieser URL vorhanden sein. Wenn Sie die Ressource anhand der Profile validieren, die Sie bereits im Speicher aktiviert haben, geben Sie diesen Abfrageparameter nicht an. - RESOURCE_TYPE ist der Ressourcentyp.
Wenn eine Ressource den Profilen entspricht, wird eine Antwort wie diese zurückgegeben:
{ "issue": [ { "code": "informational", "details": { "text": "success" }, "diagnostics": "success", "severity": "information" } ], "resourceType": "OperationOutcome" }
Wenn eine Ressource keinem Profil entspricht, wird ein Fehler mit einer Antwort wie dieser zurückgegeben:
{ "issue": [ { "code": "processing", "diagnostics": "Profile http://hl7.org/fhir/StructureDefinition/AuditEvent, Element 'AuditEvent.agent.requestor': minimum required = 1, but only found 0", "location": [ "AuditEvent.agent" ], "severity": "error" } ], "resourceType": "OperationOutcome" }
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 '@RESOURCE_FILE' ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/$validate?profile=PROFILE_URL" | Select-Object -Expand Content
Dabei gilt:
- RESOURCE_FILE ist der Speicherort einer Datei, die die Ressource enthält
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID ist die Dataset-ID
- FHIR_STORE_ID ist die FHIR-Speicher-ID
- PROFILE_URL ist die kanonische URL des FHIR-Profils, z. B.
http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
für eine Patientenressource. In FHIR_STORE_ID muss eine Strukturdefinition mit dieser URL vorhanden sein. Wenn Sie die Ressource anhand der Profile validieren, die Sie bereits im Speicher aktiviert haben, geben Sie diesen Abfrageparameter nicht an. - RESOURCE_TYPE ist der Ressourcentyp.
Wenn eine Ressource für ein Profil validiert wird, wird eine Antwort wie diese zurückgegeben:
{ "issue": [ { "code": "informational", "details": { "text": "success" }, "diagnostics": "success", "severity": "information" } ], "resourceType": "OperationOutcome" }
Wenn eine Ressource nicht für ein Profil validiert wird, wird ein Fehler mit einer Antwort wie dieser zurückgegeben:
{ "issue": [ { "code": "processing", "diagnostics": "Profile http://hl7.org/fhir/StructureDefinition/AuditEvent, Element 'AuditEvent.agent.requestor': minimum required = 1, but only found 0", "location": [ "AuditEvent.agent" ], "severity": "error" } ], "resourceType": "OperationOutcome" }