Auf dieser Seite wird erläutert, wie Sie FHIR-Ressourcen erstellen, aktualisieren, patchen, ansehen, auflisten, abrufen und löschen.
Eine FHIR-Ressource kann Daten zu einem Patienten, einem Gerät, einer Beobachtung und mehr enthalten. Eine vollständige Liste der FHIR-Ressourcen finden Sie im FHIR-Ressourcenindex (DSTU2, STU3 oder R4).
Die curl
- und PowerShell-Beispiele auf dieser Seite funktionieren mit einem R4 FHIR-Speicher und funktionieren nicht unbedingt, wenn Sie einen DSTU2- oder STU3 FHIR-Speicher verwenden.
Wenn Sie einen DSTU2- oder STU3 FHIR-Speicher verwenden, finden Sie in der offiziellen FHIR-Dokumentation Informationen zum Konvertieren der Beispiele in die von Ihnen verwendete FHIR-Version.
Die Go-, Java-, Node.js- und Python-Beispiele funktionieren mit einem STU3-FHIR-Speicher.
FHIR-Ressourcen erstellen
Bevor Sie FHIR-Ressourcen erstellen können, müssen Sie einen FHIR-Speicher erstellen.
Die Beispiele curl
, PowerShell und Python zeigen, wie die folgenden FHIR-Ressourcen erstellt werden:
- Eine Patientenressource (DSTU2, STU3 und R4)
- Eine Encounter-Ressource (DSTU2, STU3 und R4) für den Patienten
- Eine Beobachtungsressource (DSTU2, STU3 und R4) für den Typ "Encounter"
Die Beispiele für alle anderen Sprachen zeigen, wie eine allgemeine FHIR-Ressource erstellt wird.
Weitere Informationen finden Sie unter projects.locations.datasets.fhirStores.fhir.create
.
Die folgenden Beispiele für curl
und PowerShell funktionieren mit R4-FHIR-Speichern. Die Go-, Java-, Node.js- und Python-Beispiele funktionieren mit STU3-FHIR-Speichern.
REST
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
- FHIR_STORE_ID: die FHIR-Speicher-ID
JSON-Text anfordern:
{ "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
cat > request.json << 'EOF' { "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" } EOF
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
@' { "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" } '@ | Out-File -FilePath request.json -Encoding utf8
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
Go
Java
Node.js
Python
Nachdem Sie die Patientenressource erstellt haben, erstellen Sie eine Encounter-Ressource zur Beschreibung einer Interaktion zwischen dem Patienten und einem Arzt.
Ersetzen Sie im Feld PATIENT_ID die ID aus der Antwort, die vom Server zurückgegeben wurde, als Sie die Patientenressource erstellt haben.
Die folgenden Beispiele für curl
und PowerShell funktionieren mit R4-FHIR-Speichern. Das Python-Beispiel funktioniert mit STU3-FHIR-Speichern.
REST
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
- FHIR_STORE_ID: die FHIR-Speicher-ID
- PATIENT_ID: die Antwort, die vom Server zurückgegeben wurde, als Sie die Patientenressource erstellt haben
JSON-Text anfordern:
{ "status": "finished", "class": { "system": "http://hl7.org/fhir/v3/ActCode", "code": "IMP", "display": "inpatient encounter" }, "reasonCode": [ { "text": "The patient had an abnormal heart rate. She was concerned about this." } ], "subject": { "reference": "Patient/PATIENT_ID" }, "resourceType": "Encounter" }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
cat > request.json << 'EOF' { "status": "finished", "class": { "system": "http://hl7.org/fhir/v3/ActCode", "code": "IMP", "display": "inpatient encounter" }, "reasonCode": [ { "text": "The patient had an abnormal heart rate. She was concerned about this." } ], "subject": { "reference": "Patient/PATIENT_ID" }, "resourceType": "Encounter" } EOF
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Encounter"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
@' { "status": "finished", "class": { "system": "http://hl7.org/fhir/v3/ActCode", "code": "IMP", "display": "inpatient encounter" }, "reasonCode": [ { "text": "The patient had an abnormal heart rate. She was concerned about this." } ], "subject": { "reference": "Patient/PATIENT_ID" }, "resourceType": "Encounter" } '@ | Out-File -FilePath request.json -Encoding utf8
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Encounter" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
Python
Folgen Sie der Einrichtungsanleitung für Python in der Cloud Healthcare API-Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Python API-Referenzdokumentation für die Cloud Healthcare API.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei der Cloud Healthcare API zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Erstellen Sie nach der Erstellung der Ressource „Encounter” eine Beobachtungsressource, die der Ressource „Encounter” zugeordnet ist. Die Beobachtungsressource liefert eine Messung der Herzfrequenz des Patienten in Schlägen pro Minute (BPM) (80
in bpm
).
Die folgenden Beispiele für curl
und PowerShell funktionieren mit R4-FHIR-Speichern. Das Python-Beispiel funktioniert mit STU3-FHIR-Speichern.
REST
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
- FHIR_STORE_ID: die FHIR-Speicher-ID
- PATIENT_ID: die ID in der Antwort, die vom Server zurückgegeben wurde, als Sie die Patientenressource erstellt haben
- ENCOUNTER_ID: die ID in der Antwort, die vom Server zurückgegeben wurde, als Sie die Ressource „Encounter” erstellt haben
JSON-Text anfordern:
{ "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": 80, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
cat > request.json << 'EOF' { "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": 80, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } EOF
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
@' { "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": 80, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } '@ | Out-File -FilePath request.json -Encoding utf8
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
Python
Folgen Sie der Einrichtungsanleitung für Python in der Cloud Healthcare API-Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Python API-Referenzdokumentation für die Cloud Healthcare API.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei der Cloud Healthcare API zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Bedingte Erstellung einer FHIR-Ressource
Das folgende curl
-Beispiel zeigt, wie Sie mit der Methode projects.locations.datasets.fhirStores.fhir.create
eine FHIR-Ressource bedingt erstellen können. Die Methode implementiert die bedingte FHIR-Interaktion create
(DSTU2, STU3, R4).
Verwenden Sie die bedingte Erstellung, um doppelte FHIR-Ressourcen zu vermeiden. Beispielsweise hat jede Patientenressource auf einem FHIR-Server eine eindeutige Kennung, z. B. eine Krankenaktennummer (MRN). Wenn Sie eine neue Patientenressource erstellen und verifizieren möchten, dass keine Patientenressource mit derselben MRN bereits vorhanden ist, erstellen Sie die neue Ressource bedingt. Die Cloud Healthcare API erstellt die neue Ressource nur, wenn es keine Übereinstimmungen für die Suchanfrage gibt.
Die Antwort des Servers hängt davon ab, wie viele Ressourcen mit der Suchanfrage übereinstimmen:
Stimmt überein mit | HTTP-Antwortcode | Verhalten |
---|---|---|
Null | 200 OK |
Erstellt die neue Ressource. |
Eins | 200 OK |
Erstellt keine neue Ressource. |
Mehrere | 412 Precondition Failed |
Erstellt keine neue Ressource und gibt den Fehler "search criteria are not selective enough" zurück. |
Wenn Sie die bedingte create
-Interaktion anstelle der create
-Interaktion verwenden möchten, geben Sie in der Anfrage einen If-None-Exist
-HTTP-Header an, der eine FHIR-Suchabfrage enthält:
If-None-Exist: FHIR_SEARCH_QUERY
In der Cloud Healthcare API v1 verwenden bedingte Vorgänge ausschließlich den Suchparameter identifier
, wenn dieser für den FHIR-Ressourcentyp vorhanden ist, um zu bestimmen, welche FHIR-Ressourcen einer bedingten Suchanfrage entsprechen.
REST
Das folgende Beispiel zeigt, wie Sie eine Beobachtungsressource mit einem If-None-Exist: identifier=my-code-system|ABC-12345
-HTTP-Header erstellen. Die Cloud Healthcare API erstellt die Ressource nur dann, wenn keine vorhandene Beobachtungsressource mit der Abfrage identifier=my-code-system|ABC-12345
übereinstimmt.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/fhir+json" \ -H "If-None-Exist: identifier=my-code-system|ABC-12345" \ -d @request.json \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation"
Die folgende Beispielausgabe zeigt absichtlich eine fehlgeschlagene Anfrage. Informationen zum Anzeigen der Antwort einer erfolgreichen Anfrage finden Sie unter FHIR-Ressource erstellen.
Wenn mehrere Beobachtungsressourcen mit der Abfrage übereinstimmen, gibt die Cloud Healthcare API die folgende Antwort zurück und die Anfrage zum Erstellen einer bedingten Erstellung schlägt fehl:
{
"issue": [
{
"code": "conflict",
"details": {
"text": "ambiguous_query"
},
"diagnostics": "search criteria are not selective enough",
"severity": "error"
}
],
"resourceType": "OperationOutcome"
}
Eine FHIR-Ressource aktualisieren
Die folgenden Beispiele zeigen, wie die Methode projects.locations.datasets.fhirStores.fhir.update
verwendet wird, um eine FHIR-Ressource zu aktualisieren. Die Methode implementiert die FHIR-Standardaktualisierungsinteraktion (DSTU2, STU3 und R4).
Wenn Sie eine Ressource aktualisieren, aktualisieren Sie den gesamten Inhalt der Ressource. Dies steht im Gegensatz zum Patchen einer Ressource, bei dem nur ein Teil einer Ressource aktualisiert wird.
Wenn für den FHIR-Speicher enableUpdateCreate
festgelegt ist, wird die Anfrage als Upsert (Aktualisieren oder Einfügen) behandelt, das die Ressource aktualisiert, falls sie vorhanden ist, oder sie mit der angegebenen Anfrage einfügt, falls sie nicht vorhanden ist.
Der Anfragetext muss eine JSON-codierte FHIR-Ressource enthalten und die Anfrageheader müssen Content-Type: application/fhir+json
enthalten. Die Ressource muss ein id
-Element enthalten, dessen Wert mit der ID im REST-Pfad der Anfrage identisch ist.
Die folgenden Beispiele für curl
und PowerShell funktionieren mit R4-FHIR-Speichern. Die Go-, Java-, Node.js- und Python-Beispiele funktionieren mit STU3-FHIR-Speichern.
REST
Die folgenden Beispiele zeigen, wie die Schläge pro Minute (SpM) in einer Beobachtungsressource aktualisiert werden.
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
- FHIR_STORE_ID: die FHIR-Speicher-ID
- OBSERVATION_ID: die ID der Beobachtungsressource
- PATIENT_ID: die Patientenressourcen-ID
- ENCOUNTER_ID: die ID der Ressource „Encounter“
- BPM_VALUE: der Wert der Schläge pro Minute (SpM) in der aktualisierten Beobachtungsressource
JSON-Text anfordern:
{ "resourceType": "Observation", "id": "OBSERVATION_ID", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
cat > request.json << 'EOF' { "resourceType": "Observation", "id": "OBSERVATION_ID", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } EOF
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
curl -X PUT \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
@' { "resourceType": "Observation", "id": "OBSERVATION_ID", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } '@ | Out-File -FilePath request.json -Encoding utf8
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PUT `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID" | Select-Object -Expand Content
APIs Explorer
Kopieren Sie den Anfragetext und öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Fügen Sie den Anfragetext in dieses Tool ein, füllen Sie alle Pflichtfelder aus und klicken Sie auf Ausführen.
Sie sollten in etwa folgende JSON-Antwort erhalten:
Go
Node.js
Python
Eine FHIR-Ressource bedingt aktualisieren
Die folgenden Beispiele zeigen, wie die Methode projects.locations.datasets.fhirStores.fhir.conditionalUpdate
aufgerufen wird, um eine FHIR-Ressource, die mit einer Suchanfrage übereinstimmt, zu aktualisieren, anstatt die Ressource anhand ihrer ID zu identifizieren. Die Methode implementiert die bedingte Aktualisierungsinteraktion des FHIR-Standards (DSTU2, STU3 und R4).
Ein bedingtes Update kann jeweils nur auf eine FHIR-Ressource angewendet werden.
Die vom Server zurückgegebene Antwort hängt davon ab, wie viele Übereinstimmungen basierend auf den Suchkriterien auftreten:
- Eine Übereinstimmung: Die Ressource wurde erfolgreich aktualisiert oder ein Fehler wird zurückgegeben.
- Mehr als eine Übereinstimmung: Die Anfrage gibt einen
412 Precondition Failed
-Fehler zurück. - Keine Übereinstimmungen mit einem
id
: Wenn die Suchkriterien keine Übereinstimmungen identifizieren, der bereitgestellte Anfragetext einenid
enthält und der FHIR-SpeicherenableUpdateCreate
auftrue
gesetzt ist, wird die FHIR-Ressource mit derid
im Anfragetext erstellt. - Keine Übereinstimmungen ohne
id
: Wenn die Suchkriterien keine Übereinstimmungen identifizieren und der angegebene Anfragetext keinid
enthält, wird die FHIR-Ressource mit einer vom Server zugewiesenen ID erstellt, als ob die Ressource mitprojects.locations.datasets.fhirStores.fhir.create
erstellt worden wäre.
Der Anfragetext muss eine JSON-codierte FHIR-Ressource enthalten und die Anfrageheader müssen Content-Type: application/fhir+json
enthalten.
In der Cloud Healthcare API v1 verwenden bedingte Vorgänge ausschließlich den Suchparameter identifier
, wenn dieser für den FHIR-Ressourcentyp vorhanden ist, um zu bestimmen, welche FHIR-Ressourcen einer bedingten Suchanfrage entsprechen.
REST
Im folgenden Beispiel wird gezeigt, wie Sie eine PUT
-Anfrage mit curl
und PowerShell senden, um eine Beobachtungsressource mit der Beobachtungs-ID (ABC-12345
in my-code-system
) zu bearbeiten. Die Beobachtung liefert eine Messung der Herzschläge eines Patienten pro Minute (SpM).
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
- FHIR_STORE_ID: die FHIR-Speicher-ID
- PATIENT_ID: die Patientenressourcen-ID
- ENCOUNTER_ID: die ID der Ressource „Encounter“
- BPM_VALUE: der Wert der Schläge pro Minute (SpM) in der Beobachtungsressource
JSON-Text anfordern:
{ "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
cat > request.json << 'EOF' { "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } EOF
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
curl -X PUT \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
@' { "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } '@ | Out-File -FilePath request.json -Encoding utf8
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PUT `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345" | Select-Object -Expand Content
APIs Explorer
Kopieren Sie den Anfragetext und öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Fügen Sie den Anfragetext in dieses Tool ein, füllen Sie alle Pflichtfelder aus und klicken Sie auf Ausführen.
Sie sollten in etwa folgende JSON-Antwort erhalten:
Eine FHIR-Ressource patchen
In den folgenden Beispielen wird gezeigt, wie Sie die Methode projects.locations.datasets.fhirStores.fhir.patch
zum Patchen einer FHIR-Ressource aufrufen. Die Methode implementiert die FHIR-Standardpatch-Interaktion (DSTU2, STU3 und R4).
Beim Patchen einer Ressource aktualisieren Sie einen Teil der Ressource, indem Sie die in einem JSON Patch-Dokument angegebenen Vorgänge anwenden.
Die Anfrage muss ein JSON-Patchdokument enthalten und die Anfrageheader müssen Content-Type: application/json-patch+json
enthalten.
Die folgenden Beispiele zeigen, wie eine Beobachtungsressource gepatcht werden kann. Die Beobachtung der Herzschläge eines Patienten pro Minute (SpM) wird mit dem replace
-Patch-Vorgang aktualisiert.
Die folgenden Beispiele für curl
und PowerShell funktionieren mit R4-FHIR-Speichern. Die Go-, Java-, Node.js- und Python-Beispiele funktionieren mit STU3-FHIR-Speichern.
REST
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
- FHIR_STORE_ID: die FHIR-Speicher-ID
- OBSERVATION_ID: die ID der Beobachtungsressource
- BPM_VALUE: der Wert der Schläge pro Minute (SpM) in der gepatchten Beobachtungsressource
JSON-Text anfordern:
[ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ]
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
cat > request.json << 'EOF' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] EOF
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json-patch+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
@' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] '@ | Out-File -FilePath request.json -Encoding utf8
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json-patch+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
Go
Java
Node.js
Python
PATCH
-Anfrage in einem FHIR-Bundle ausführen
Sie können eine PATCH
-Anfrage in einem FHIR-Bundle (nur FHIR R4) angeben.
Wenn Sie eine PATCH
-Anfrage in einem FHIR-Bundle ausführen, können Sie viele FHIR-Ressourcen gleichzeitig patchen. So müssen Sie nicht für jede FHIR-Ressource einzelne Patchanfragen stellen.
Wenn Sie eine PATCH
-Anfrage in einem Bundle stellen möchten, geben Sie die folgenden Informationen in einem resource
-Objekt in der Anfrage an:
- Das Feld
resourceType
ist aufBinary
festgelegt - Das Feld
contentType
ist aufapplication/json-patch+json
festgelegt - Der in base64-codierte Patchtext
Das resource
-Objekt sollte so aussehen:
"resource": {
"resourceType": "Binary",
"contentType": "application/json-patch+json",
"data": "WyB7ICJvcCI6ICJyZXBsYWNlIiwgInBhdGgiOiAiL2JpcnRoRGF0ZSIsICJ2YWx1ZSI6ICIxOTkwLTAxLTAxIiB9IF0K"
}
Das folgende Beispiel zeigt den Patchtext, der im Feld data
in base64 codiert wurde:
[
{
"op": "replace",
"path": "/birthdate",
"value": "1990-01-01"
}
]
Die folgenden Beispiele zeigen, wie Sie mit einer PATCH
-Anfrage in einem Bundle die Patientenressource aktualisieren, die Sie unter Eine FHIR-Ressource erstellen erstellt haben, mit einem birthDate
-Wert von 1990-01-01
patchen:
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- PROJECT_ID: Ihre Google Cloud-Projekt-ID
- LOCATION: der Speicherort des übergeordneten Datasets
- DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
- FHIR_STORE_ID: die FHIR-Speicher-ID
- PATIENT_ID: die ID einer vorhandenen Patientenressource
JSON-Text anfordern:
{ "type": "transaction", "resourceType": "Bundle", "entry": [ { "request": { "method": "PATCH", "url": "Patient/PATIENT_ID" }, "resource": { "resourceType": "Binary", "contentType": "application/json-patch+json", "data": "WyB7ICJvcCI6ICJyZXBsYWNlIiwgInBhdGgiOiAiL2JpcnRoRGF0ZSIsICJ2YWx1ZSI6ICIxOTkwLTAxLTAxIiB9IF0K" } } ] }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
cat > request.json << 'EOF' { "type": "transaction", "resourceType": "Bundle", "entry": [ { "request": { "method": "PATCH", "url": "Patient/PATIENT_ID" }, "resource": { "resourceType": "Binary", "contentType": "application/json-patch+json", "data": "WyB7ICJvcCI6ICJyZXBsYWNlIiwgInBhdGgiOiAiL2JpcnRoRGF0ZSIsICJ2YWx1ZSI6ICIxOTkwLTAxLTAxIiB9IF0K" } } ] } EOF
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
@' { "type": "transaction", "resourceType": "Bundle", "entry": [ { "request": { "method": "PATCH", "url": "Patient/PATIENT_ID" }, "resource": { "resourceType": "Binary", "contentType": "application/json-patch+json", "data": "WyB7ICJvcCI6ICJyZXBsYWNlIiwgInBhdGgiOiAiL2JpcnRoRGF0ZSIsICJ2YWx1ZSI6ICIxOTkwLTAxLTAxIiB9IF0K" } } ] } '@ | Out-File -FilePath request.json -Encoding utf8
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
Eine FHIR-Ressource bedingt patchen
Die folgenden Beispiele zeigen, wie die Methode projects.locations.datasets.fhirStores.fhir.conditionalPatch
aufgerufen wird, um eine FHIR-Ressource, die mit einer Suchanfrage übereinstimmt, zu korrigieren, anstatt die Ressource anhand ihrer ID zu identifizieren. Die Methode implementiert die bedingte Patch-Interaktion des FHIR-Standards (DSTU2, STU3 und R4).
Ein bedingter Patch kann jeweils nur auf eine Ressource angewendet werden. Wenn die Suchkriterien mehr als eine Übereinstimmung identifizieren, gibt die Anfrage den Fehler 412 Precondition Failed
zurück.
In der Cloud Healthcare API v1 verwenden bedingte Vorgänge ausschließlich den Suchparameter identifier
, wenn dieser für den FHIR-Ressourcentyp vorhanden ist, um zu bestimmen, welche FHIR-Ressourcen einer bedingten Suchanfrage entsprechen.
REST
Das folgende Beispiel zeigt, wie Sie eine PATCH
-Anfrage mit curl
und PowerShell senden, um eine Beobachtungsressource zu bearbeiten, wenn die ID der Beobachtung in my-code-system
ABC-12345
ist.
Die Beobachtung der Herzschläge eines Patienten pro Minute (BPM) wird mit dem replace
-Patch-Vorgang aktualisiert.
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
- FHIR_STORE_ID: die FHIR-Speicher-ID
- BPM_VALUE: der Wert der Schläge pro Minute (SpM) in der Beobachtungsressource
JSON-Text anfordern:
[ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ]
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
cat > request.json << 'EOF' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] EOF
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json-patch+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
@' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] '@ | Out-File -FilePath request.json -Encoding utf8
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json-patch+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345" | Select-Object -Expand Content
APIs Explorer
Kopieren Sie den Anfragetext und öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Fügen Sie den Anfragetext in dieses Tool ein, füllen Sie alle Pflichtfelder aus und klicken Sie auf Ausführen.
Sie sollten in etwa folgende JSON-Antwort erhalten:
Eine FHIR-Ressource erhalten
Die folgenden Beispiele zeigen, wie Sie mit der Methode projects.locations.datasets.fhirStores.fhir.read
den Inhalt einer FHIR-Ressource abrufen.
Die folgenden Beispiele für curl
und PowerShell funktionieren mit R4-FHIR-Speichern.
Die Go-, Java-, Node.js- und Python-Beispiele funktionieren mit STU3-FHIR-Speichern.
Console
So rufen Sie den Inhalt einer FHIR-Ressource ab:
Rufen Sie in der Google Cloud Console die Seite FHIR-Betrachter auf.
Wählen Sie in der Drop-down-Liste FHIR-Speicher ein Dataset und dann einen FHIR-Speicher im Dataset aus.
Suchen Sie nach den Ressourcentypen, die Sie anzeigen möchten, um die Liste der Ressourcentypen zu filtern.
Klicken Sie auf das Feld Ressourcentyp.
Wählen Sie in der nun angezeigten Drop-down-Liste Attribute die Option Ressourcentyp aus.
Geben Sie einen Ressourcentyp ein.
Wenn Sie nach einem anderen Ressourcentyp suchen möchten, wählen Sie aus der nun angezeigten Drop-down-Liste Operatoren OR aus und geben einen anderen Ressourcentyp ein.
Wählen Sie in der Liste der Ressourcentypen den Typ der Ressource aus, für die Sie Inhalte abrufen möchten.
Wählen Sie in der angezeigten Tabelle eine Ressource aus oder suchen Sie nach einer Ressource.
REST
Die folgenden Beispiele zeigen, wie Sie die Details der in einem vorherigen Abschnitt erstellten Beobachtungsressource abrufen können.
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
- FHIR_STORE_ID: die FHIR-Speicher-ID
- OBSERVATION_ID: die ID der Beobachtungsressource
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Führen Sie folgenden Befehl aus:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID"
PowerShell
Führen Sie folgenden Befehl aus:
$cred = gcloud auth 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/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID" | Select-Object -Expand Content
APIs Explorer
Öffnen Sie die Methodenreferenzseite. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.
Sie sollten in etwa folgende JSON-Antwort erhalten:
Go
Java
Node.js
Python
Alle Ressourcen für den Patientenbereich abrufen
Die folgenden Beispiele zeigen, wie Sie alle Ressourcen abrufen, die mit einem bestimmten Patientenbereich (DSTU2, STU3 und R4) verknüpft sind.
Weitere Informationen finden Sie unter projects.locations.datasets.fhirStores.fhir.Patient-everything
.
Die folgenden Beispiele für curl
und PowerShell funktionieren mit R4-FHIR-Speichern. Die Go-, Java-, Node.js- und Python-Beispiele funktionieren mit STU3-FHIR-Speichern.
curl
Wenn Sie die Ressourcen in einem Patientenbereich abrufen möchten, senden Sie eine GET
-Anfrage und geben Sie die folgenden Informationen an:
- Der Name des übergeordneten Datasets
- Der Name des FHIR-Speichers
- Die Patienten-ID
- Ein Zugriffstoken
Das folgende Beispiel zeigt eine GET
-Anfrage mit curl
.
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/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID/\$everything"
Wenn die Anfrage erfolgreich ist, gibt der Server eine Antwort wie die folgende im JSON-Format zurück:
{ "entry": [ { "resource": { "birthDate": "1970-01-01", "gender": "female", "id": "PATIENT_ID", "name": [ { "family": "Smith", "given": [ "Darcy" ], "use": "official" } ], "resourceType": "Patient" } }, { "resource": { "class": { "code": "IMP", "display": "inpatient encounter", "system": "http://hl7.org/fhir/v3/ActCode" }, "id": "ENCOUNTER_ID", "reasonCode": [ { "text": "The patient had an abnormal heart rate. She was concerned about this." } ], "resourceType": "Encounter", "status": "finished", "subject": { "reference": "Patient/PATIENT_ID" } } }, { "resource": { "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": BPM_VALUE } } } ], "resourceType": "Bundle", "type": "searchset" }
PowerShell
Wenn Sie die Ressourcen in einem Patientenbereich abrufen möchten, senden Sie eine GET
-Anfrage und geben Sie die folgenden Informationen an:
- Der Name des übergeordneten Datasets
- Der Name des FHIR-Speichers
- Die Patienten-ID
- Ein Zugriffstoken
Das folgende Beispiel zeigt eine GET
-Anfrage mit PowerShell:
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-RestMethod ` -Method Get ` -Headers $headers ` -Uri 'https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/RESOURCE_ID/$everything' | ConvertTo-Json
Wenn die Anfrage erfolgreich ist, gibt der Server eine Antwort wie diese im JSON-Format zurück:
{ "entry": [ { "resource": { "birthDate": "1970-01-01", "gender": "female", "id": "PATIENT_ID", "name": [ { "family": "Smith", "given": [ "Darcy" ], "use": "official" } ], "resourceType": "Patient" } }, { "resource": { "class": { "code": "IMP", "display": "inpatient encounter", "system": "http://hl7.org/fhir/v3/ActCode" }, "id": "ENCOUNTER_ID", "reasonCode": [ { "text": "The patient had an abnormal heart rate. She was concerned about this." } ], "resourceType": "Encounter", "status": "finished", "subject": { "reference": "Patient/PATIENT_ID" } } }, { "resource": { "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": BPM_VALUE } } } ], "resourceType": "Bundle", "type": "searchset" }
Go
Java
Node.js
Python
Ressourcen für Patientenbereich, gefiltert nach Typ oder Datum
In den folgenden Beispielen wird gezeigt, wie Sie alle Ressourcen seit einem bestimmten Datum und einer bestimmten Uhrzeit abrufen, die mit einem bestimmten Patientenbereich (R4) verbunden und nach einer Liste von Typen gefiltert sind.
Weitere Informationen finden Sie unter projects.locations.datasets.fhirStores.fhir.Patient-everything
.
Die folgenden Beispiele für curl
und PowerShell funktionieren mit R4-FHIR-Speichern.
curl
Wenn Sie die Ressourcen in einem Patientenbereich eines angegebenen Typs und seit einem bestimmten Datum benötigen, stellen Sie eine GET
-Anfrage und geben Sie die folgenden Informationen an:
- Der Name des übergeordneten Datasets
- Der Name des FHIR-Speichers
- Die Patienten-ID
- Ein Abfragestring, der eine kommagetrennte Liste von Ressourcentypen und das Startdatum enthält
- Ein Zugriffstoken
Das folgende Beispiel zeigt eine GET
-Anfrage mit curl
.
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/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID/\$everything?_type=RESOURCE_TYPES&_since=DATE"
Wenn die Anfrage erfolgreich ist, gibt der Server alle Ressourcen zurück, die die angegebenen Kriterien im JSON-Format erfüllen.
PowerShell
Wenn Sie die Ressourcen in einem Patientenbereich eines angegebenen Typs und seit einem bestimmten Datum benötigen, stellen Sie eine GET
-Anfrage und geben Sie die folgenden Informationen an:
- Der Name des übergeordneten Datasets
- Der Name des FHIR-Speichers
- Die Patienten-ID
- Ein Abfragestring, der eine kommagetrennte Liste von Ressourcentypen und das Startdatum enthält
- Ein Zugriffstoken
Das folgende Beispiel zeigt eine GET
-Anfrage mit PowerShell:
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-RestMethod ` -Method Get ` -Headers $headers ` -Uri 'https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/RESOURCE_ID/$everything?_type=RESOURCE_TYPES&_since=DATE' | ConvertTo-Json
Wenn die Anfrage erfolgreich ist, gibt der Server alle Ressourcen zurück, die die angegebenen Kriterien im JSON-Format erfüllen.
FHIR-Ressourcen-Versionen auflisten
Die folgenden Beispiele zeigen, wie alle historischen Versionen einer FHIR-Ressource aufgelistet werden. Weitere Informationen finden Sie unter projects.locations.datasets.fhirStores.fhir.history
.
Die Beispiele verwenden die in Erstellen einer FHIR-Ressource erstellten Ressourcen und zeigen, wie die Versionen einer Beobachtungsressource aufgelistet werden.
Die folgenden Beispiele für curl
und PowerShell funktionieren mit R4-FHIR-Speichern. Die Go-, Java-, Node.js- und Python-Beispiele funktionieren mit STU3-FHIR-Speichern.
curl
Das folgende Beispiel zeigt, wie alle Versionen einer Beobachtungsressource aufgelistet werden. Die Beobachtung wurde einmal nach der ursprünglichen Erstellung aktualisiert, um die Herzschläge des Patienten pro Minute zu ändern.
Wenn Sie alle Versionen einer FHIR-Ressource auflisten möchten, einschließlich der aktuellen und aller gelöschten Versionen, stellen Sie eine GET
-Anfrage und geben Sie die folgenden Informationen an:
- Der Name des übergeordneten Datasets
- Der Name des FHIR-Speichers
- Ressourcentyp und ID
- Ein Zugriffstoken
Das folgende Beispiel zeigt eine GET
-Anfrage mit curl
.
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/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/_history"
Wenn die Anfrage erfolgreich ist, gibt der Server die Antwort im JSON-Format zurück: In diesem Beispiel werden zwei Versionen der Beobachtung zurückgegeben. In der ersten Version betrug die Herzfrequenz des Patienten 75 Schläge pro Minute. In der zweiten Version lag die Herzfrequenz des Patienten bei 85 Schlägen pro Minute.
{ "entry": [ { "resource": { "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-02T00:00:00+00:00", "versionId": "MTU0MTE5MDk5Mzk2ODcyODAwMA" }, "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": 85 } } }, { "resource": { "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-01T00:00:00+00:00", "versionId": "MTU0MTE5MDg4MTY0MzQ3MjAwMA" }, "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": 75 } } } ], "resourceType": "Bundle", "type": "history" }
PowerShell
Das folgende Beispiel zeigt, wie alle Versionen einer Beobachtungsressource aufgelistet werden. Die Beobachtung wurde einmal nach der ursprünglichen Erstellung aktualisiert, um die Herzschläge des Patienten pro Minute zu ändern.
Wenn Sie alle Versionen einer FHIR-Ressource auflisten möchten, einschließlich der aktuellen und aller gelöschten Versionen, stellen Sie eine GET
-Anfrage und geben Sie die folgenden Informationen an:
- Der Name des übergeordneten Datasets
- Der Name des FHIR-Speichers
- Ressourcentyp und ID
- Ein Zugriffstoken
Das folgende Beispiel zeigt eine GET
-Anfrage mit PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-RestMethod ` -Method Get ` -Headers $headers ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/_history" | Select-Object -Expand Content
Wenn die Anfrage erfolgreich ist, gibt der Server die Antwort im JSON-Format zurück: In diesem Beispiel werden zwei Versionen der Beobachtung zurückgegeben. In der ersten Version betrug die Herzfrequenz des Patienten 75 Schläge pro Minute. In der zweiten Version lag die Herzfrequenz des Patienten bei 85 Schlägen pro Minute.
{ "entry": [ { "resource": { "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-02T00:00:00+00:00", "versionId": "MTU0MTE5MDk5Mzk2ODcyODAwMA" }, "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": 85 } } }, { "resource": { "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-01T00:00:00+00:00", "versionId": "MTU0MTE5MDg4MTY0MzQ3MjAwMA" }, "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": 75 } } } ], "resourceType": "Bundle", "type": "history" }
Go
Java
Node.js
Python
Eine FHIR-Ressourcenversion abrufen
Die folgenden Beispiele zeigen, wie Sie eine bestimmte Version einer Ressource abrufen können.
Weitere Informationen finden Sie unter projects.locations.datasets.fhirStores.fhir.vread
.
Die Versions-IDs für die Beobachtungsressource aus der Liste der FHIR-Ressourcenversionen sind unten hervorgehoben:
{ "entry": [ { "resource": { "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-02T00:00:00+00:00", "versionId": "MTU0MTE5MDk5Mzk2ODcyODAwMA" }, ... { "resource": { "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-01T00:00:00+00:00", "versionId": "MTU0MTE5MDg4MTY0MzQ3MjAwMA" }, ... }
In den folgenden Beispielen werden die unter Erstellen einer FHIR-Ressource erstellten Ressourcen verwendet und es wird gezeigt, wie eine Beobachtungsressource angezeigt wird.
Die folgenden Beispiele für curl
und PowerShell funktionieren mit R4-FHIR-Speichern. Die Go-, Node.js- und Python-Beispiele funktionieren mit STU3 FHIR-Speichern.
curl
Um eine bestimmte Version einer FHIR-Ressource abzurufen, senden Sie eine GET
-Anfrage und geben Sie die folgenden Informationen an:
- Der Name des übergeordneten Datasets
- Der Name des FHIR-Speichers
- Ressourcentyp und ID
- Die Ressourcenversion
- Ein Zugriffstoken
Das folgende Beispiel zeigt eine GET
-Anfrage mit curl
.
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/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/_history/RESOURCE_VERSION"
Wenn die Anfrage erfolgreich ist, gibt der Server die Antwort im JSON-Format zurück: In diesem Beispiel wird die erste Version der Beobachtung zurückgegeben, bei der die Herzfrequenz des Patienten 75 Schlägen pro Minute entspricht.
{ "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-01T00:00:00+00:00", "versionId": "MTU0MTE5MDg4MTY0MzQ3MjAwMA" }, "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": 75 } }
PowerShell
Um eine bestimmte Version einer FHIR-Ressource abzurufen, senden Sie eine GET
-Anfrage und geben Sie die folgenden Informationen an:
- Der Name des übergeordneten Datasets
- Der Name des FHIR-Speichers
- Ressourcentyp und ID
- Die Ressourcenversion
- Ein Zugriffstoken
Das folgende Beispiel zeigt eine GET
-Anfrage mit curl
.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-RestMethod ` -Method Get ` -Headers $headers ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/RESOURCE_VERSION/_history" | Select-Object -Expand Content
Wenn die Anfrage erfolgreich ist, gibt der Server die Antwort im JSON-Format zurück: In diesem Beispiel wird die erste Version der Beobachtung zurückgegeben, bei der die Herzfrequenz des Patienten 75 Schlägen pro Minute entspricht.
{ "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-01T00:00:00+00:00", "versionId": "MTU0MTE5MDg4MTY0MzQ3MjAwMA" }, "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": 75 } }
Go
Java
Node.js
Python
Eine FHIR-Ressource löschen
Die folgenden Beispiele zeigen, wie die Methode projects.locations.datasets.fhirStores.fhir.delete
aufgerufen wird, um eine Beobachtungs-FHIR-Ressource zu löschen.
Unabhängig davon, ob der Vorgang erfolgreich ist oder nicht, gibt der Server den HTTP-Statuscode 200 OK
zurück. Wenn Sie prüfen möchten, ob die Ressource erfolgreich gelöscht wurde, suchen oder holen Sie die Ressource und prüfen Sie, ob sie vorhanden ist.
Die folgenden Beispiele für curl
und PowerShell funktionieren mit R4-FHIR-Speichern. Die Go-, Java-, Node.js- und Python-Beispiele funktionieren mit STU3-FHIR-Speichern.
REST
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
- FHIR_STORE_ID: die FHIR-Speicher-ID
- OBSERVATION_ID: die ID der Beobachtungsressource
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Führen Sie folgenden Befehl aus:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID"
PowerShell
Führen Sie folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID" | Select-Object -Expand Content
APIs Explorer
Öffnen Sie die Methodenreferenzseite. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.
Sie sollten in etwa folgende JSON-Antwort erhalten:
Go
Java
Node.js
Python
Eine FHIR-Ressource unter Bedingungen löschen
In der Cloud Healthcare API v1 verwenden bedingte Vorgänge ausschließlich den Suchparameter identifier
, wenn dieser für den FHIR-Ressourcentyp vorhanden ist, um zu bestimmen, welche FHIR-Ressourcen einer bedingten Suchanfrage entsprechen.
Eine FHIR-Ressource stimmt nur dann mit der Abfrage ?identifier=my-code-system|ABC-12345
überein, wenn die identifier.system
der Ressource my-code-system
und ihr identifier.value
ABC-12345
ist. Wenn eine FHIR-Ressource mit der Abfrage übereinstimmt, löscht die Cloud Healthcare API die Ressource.
Wenn die Abfrage den Suchparameter identifier
verwendet und mit mehreren FHIR-Ressourcen übereinstimmt, gibt die Cloud Healthcare API den Fehler "412 - Condition not selective enough"
zurück.
So löschen Sie die Ressourcen einzeln:
- Suchen Sie nach jeder Ressource, um ihre eindeutige, vom Server zugewiesene ID zu erhalten.
- Löschen Sie jede Ressource einzeln anhand der ID.
In den folgenden Beispielen wird gezeigt, wie Sie eine FHIR-Ressource, die mit einer Suchanfrage übereinstimmt, bedingt löschen, anstatt die FHIR-Ressource anhand ihrer ID zu identifizieren.
Bei der Suchanfrage wird eine Beobachtungsressource anhand der ID der Beobachtung (ABC-12345
in my-code-system
) abgeglichen und gelöscht.
REST
Verwenden Sie die Methode projects.locations.datasets.fhirStores.fhir.conditionalDelete
.
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
PROJECT_ID
ist die ID Ihres Google Cloud-ProjektsLOCATION
ist der Standort des DatasetsDATASET_ID
: das übergeordnete Dataset des FHIR-SpeichersFHIR_STORE_ID
ist die FHIR-Speicher-ID
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Führen Sie folgenden Befehl aus:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345"
PowerShell
Führen Sie folgenden Befehl aus:
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345" | Select-Object -Expand Content
APIs Explorer
Öffnen Sie die Methodenreferenzseite. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die erforderlichen Felder aus und klicken Sie auf Ausführen.
Sie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort als Ausgabe erhalten.
Historische Versionen einer FHIR-Ressource löschen
In den folgenden Beispielen wird gezeigt, wie Sie alle Verlaufsversionen einer FHIR-Ressource löschen. Weitere Informationen finden Sie unter projects.locations.datasets.fhirStores.fhir.Resource-purge
.
Der Aufruf der Methode projects.locations.datasets.fhirStores.fhir.Resource-purge
ist auf Nutzer (Aufrufer) mit der Rolle roles/healthcare.fhirStoreAdmin
beschränkt. Nutzer mit der Rolle roles/healthcare.fhirResourceEditor
können die Methode nicht aufrufen. So lassen Sie zu, dass ein Aufrufer historische Versionen einer FHIR-Ressource löscht:
- Stellen Sie sicher, dass der Aufrufer die Rolle
roles/healthcare.fhirStoreAdmin
hat. - Erstellen Sie eine benutzerdefinierte IAM-Rolle mit der Berechtigung
healthcare.fhirResources.purge
und weisen Sie dem Aufrufer die Rolle zu.
Die Beispiele verwenden die unter FHIR-Ressource erstellen erstellten Ressourcen und zeigen, wie die Verlaufsversionen einer Beobachtungsressource gelöscht werden.
Die folgenden Beispiele für curl
und PowerShell funktionieren mit R4-FHIR-Speichern. Die Go-, Java-, Node.js- und Python-Beispiele funktionieren mit STU3-FHIR-Speichern.
curl
Wenn Sie alle historischen Versionen einer FHIR-Ressource löschen möchten, senden Sie eine DELETE
-Anfrage und geben Sie die folgenden Informationen an:
- Der Name des übergeordneten Datasets
- Der Name des FHIR-Speichers
- Ressourcentyp und ID
- Ein Zugriffstoken
Das folgende Beispiel zeigt eine DELETE
-Anfrage mit curl
.
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/fhir+json; charset=utf-8" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/\$purge"
Wenn die Anfrage erfolgreich ist, gibt der Server den leeren Antworttext im JSON-Format zurück:
{}
PowerShell
Wenn Sie alle historischen Versionen einer FHIR-Ressource löschen möchten, senden Sie eine DELETE
-Anfrage und geben Sie die folgenden Informationen an:
- Der Name des übergeordneten Datasets
- Der Name des FHIR-Speichers
- Ressourcentyp und ID
- Ein Zugriffstoken
Das folgende Beispiel zeigt eine DELETE
-Anfrage mit PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-RestMethod ` -Method Delete ` -Headers $headers ` -ContentType: "application/fhir+json; charset=utf-8" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/$purge" | ConvertTo-Json
Wenn die Anfrage erfolgreich ist, gibt der Server den leeren Antworttext im JSON-Format zurück:
{}