Cette page explique comment créer, mettre à jour, corriger, afficher, répertorier, récupérer et supprimer des ressources FHIR.
Une ressource FHIR peut contenir des données sur un patient, un appareil, une observation, etc. Pour obtenir la liste complète des ressources FHIR, consultez l'index des ressources FHIR (DSTU2, STU3 ou R4).
Les exemples curl
et PowerShell de cette page fonctionnent avec un store FHIR R4. Leur fonctionnement n'est pas garanti si vous utilisez un store FHIR DSTU2 ou STU3.
Si vous utilisez un magasin FHIR DSTU2 ou STU3, consultez la documentation FHIR officielle pour en savoir plus sur la conversion des exemples vers la version FHIR que vous utilisez.
Les exemples Go, Java, Node.js et Python fonctionnent avec un magasin FHIR STU3.
Créer une ressource FHIR
Pour pouvoir créer des ressources FHIR, vous devez créer un magasin FHIR.
Les exemples curl
, PowerShell et Python montrent comment créer les ressources FHIR suivantes :
- Une ressource Patient (DSTU2, STU3 et R4)
- Une ressource "Encounter" (DSTU2, STU3 et R4) pour le patient
- Une ressource Observation (DSTU2, STU3 et R4) pour la rencontre
Les exemples pour toutes les autres langues montrent comment créer une ressource FHIR générique.
Pour en savoir plus, consultez les sections sur projects.locations.datasets.fhirStores.fhir.create
Les exemples curl
et PowerShell suivants fonctionnent avec les stores FHIR R4. Les exemples Go, Java, Node.js et Python fonctionnent avec les magasins FHIR STU3.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- LOCATION : emplacement de l'ensemble de données
- DATASET_ID : ensemble de données parent du magasin FHIR.
- FHIR_STORE_ID : ID du magasin FHIR.
Corps JSON de la requête :
{ "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
cat > request.json << 'EOF' { "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" } EOF
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
@' { "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" } '@ | Out-File -FilePath request.json -Encoding utf8
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
$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
Vous devriez recevoir une réponse JSON de ce type :
Go
Java
Node.js
Python
Après avoir créé la ressource Patient, créez une ressource Encounter pour décrire une interaction entre le patient et un professionnel.
Dans le champ PATIENT_ID, remplacez l'ID de la réponse renvoyée par le serveur lors de la création de la ressource Patient.
Les exemples curl
et PowerShell suivants fonctionnent avec les stores FHIR R4. L'exemple Python fonctionne avec les magasins FHIR STU3.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- LOCATION : emplacement de l'ensemble de données
- DATASET_ID : ensemble de données parent du magasin FHIR.
- FHIR_STORE_ID : ID du magasin FHIR.
- PATIENT_ID : réponse renvoyée par le serveur lors de la création de la ressource Patient
Corps JSON de la requête :
{ "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" }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
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
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
@' { "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
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
$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
Vous devriez recevoir une réponse JSON de ce type :
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de l'API Cloud Healthcare à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud Healthcare Python.
Pour vous authentifier auprès de l'API Cloud Healthcare, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Après avoir créé la ressource Encounter, créez une ressource Observation associée à la ressource Encounter. La ressource Observation fournit une mesure de la fréquence cardiaque du patient en battements par minute (80
dans bpm
).
Les exemples curl
et PowerShell suivants fonctionnent avec les stores FHIR R4. L'exemple Python fonctionne avec les magasins FHIR STU3.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- LOCATION : emplacement de l'ensemble de données
- DATASET_ID : ensemble de données parent du magasin FHIR.
- FHIR_STORE_ID : ID du magasin FHIR.
- PATIENT_ID : ID de la réponse renvoyée par le serveur lors de la création de la ressource Patient
- ENCOUNTER_ID : ID de la réponse renvoyée par le serveur lors de la création de la ressource Encounter
Corps JSON de la requête :
{ "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" } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
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
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
@' { "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
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
$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
Vous devriez recevoir une réponse JSON de ce type :
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de l'API Cloud Healthcare à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud Healthcare Python.
Pour vous authentifier auprès de l'API Cloud Healthcare, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Créer une ressource FHIR de manière conditionnelle
L'exemple curl
suivant montre comment utiliser la méthode projects.locations.datasets.fhirStores.fhir.create
pour créer une ressource FHIR de manière conditionnelle. Cette méthode met en œuvre l'interaction create
conditionnelle FHIR (DSTU2, STU3, R4).
Vous pouvez utiliser la création conditionnelle pour éviter de créer des ressources FHIR en double. Par exemple, chaque ressource Patient d'un serveur FHIR possède généralement un identifiant unique, tel qu'un numéro de dossier médical (MRN). Pour créer une ressource Patient et vous assurer qu'aucune ressource Patient n'existe avec le même numéro MRN, créez la ressource de manière conditionnelle à l'aide d'une requête de recherche. L'API Cloud Healthcare ne crée la nouvelle ressource que si aucune correspondance n'est trouvée pour la requête de recherche.
La réponse du serveur dépend du nombre de ressources correspondant à la requête de recherche:
Correspondance établie | Code de réponse HTTP | Comportement |
---|---|---|
Zéro | 201 CREATED |
Crée la ressource. |
Une | 200 OK |
Ne crée pas de ressource. |
Plus d'un | 412 Precondition Failed |
Ne crée pas de ressource et renvoie une erreur "search criteria are not selective enough" . |
Pour utiliser l'interaction create
conditionnelle au lieu de l'interaction create
, spécifiez un en-tête HTTP If-None-Exist
contenant une requête de recherche FHIR dans votre requête:
If-None-Exist: FHIR_SEARCH_QUERY
Dans la version 1 de l'API Cloud Healthcare, les opérations conditionnelles utilisent exclusivement le paramètre de recherche identifier
, s'il existe pour le type de ressource FHIR, pour déterminer quelles ressources FHIR correspondent à une requête de recherche conditionnelle.
REST
L'exemple suivant montre comment créer une ressource Observation à l'aide d'un en-tête HTTP If-None-Exist: identifier=my-code-system|ABC-12345
. L'API Cloud Healthcare crée la ressource si et seulement si aucune ressource Observation existante ne correspond à la requête identifier=my-code-system|ABC-12345
.
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"
L'exemple de sortie suivant montre intentionnellement une requête échouée. Pour afficher la réponse d'une requête réussie, consultez la section Créer une ressource FHIR.
Si plusieurs ressources Observation correspondent à la requête, l'API Cloud Healthcare renvoie la réponse suivante, et la requête de création conditionnelle échoue:
{
"issue": [
{
"code": "conflict",
"details": {
"text": "ambiguous_query"
},
"diagnostics": "search criteria are not selective enough",
"severity": "error"
}
],
"resourceType": "OperationOutcome"
}
Mettre à jour une ressource FHIR
Les exemples suivants montrent comment appeler la méthode projects.locations.datasets.fhirStores.fhir.update
pour mettre à jour une ressource FHIR. Cette méthode met en œuvre l'interaction de mise à jour standard FHIR (DSTU2, STU3 et R4).
Lorsque vous mettez à jour une ressource, vous mettez à jour l'intégralité de son contenu. Cette démarche diffère de la section Corriger une ressource, qui ne met à jour qu'une partie d'une ressource.
Si enableUpdateCreate
est défini pour le magasin FHIR, la requête est traitée comme une mise à jour ou une insertion, qui met à jour la ressource si elle existe ou l'insère à l'aide de l'ID spécifié si elle n'existe pas.
Le corps de la requête doit contenir une ressource FHIR encodée au format JSON et les en-têtes de la requête doivent contenir Content-Type: application/fhir+json
. La ressource doit contenir un élément id
ayant une valeur identique à l'ID dans le chemin REST de la requête.
Les exemples curl
et PowerShell suivants fonctionnent avec les stores FHIR R4. Les exemples Go, Java, Node.js et Python fonctionnent avec les magasins FHIR STU3.
REST
Les exemples suivants montrent comment mettre à jour les battements par minute (BPM) dans une ressource Observation.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- LOCATION : emplacement de l'ensemble de données
- DATASET_ID : ensemble de données parent du magasin FHIR.
- FHIR_STORE_ID : ID du magasin FHIR.
- OBSERVATION_ID : ID de la ressource Observation
- PATIENT_ID : ID de la ressource Patient
- ENCOUNTER_ID : ID de la ressource Encounter
- BPM_VALUE : valeur du battement par minute (BPM) dans la ressource Observation mise à jour
Corps JSON de la requête :
{ "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" } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
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
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
@' { "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
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
$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
API Explorer
Copiez le corps de la requête et ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Collez le corps de la requête dans cet outil, renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
Vous devriez recevoir une réponse JSON de ce type :
Go
Node.js
Python
Mettre à jour une ressource FHIR de manière conditionnelle
Les exemples suivants montrent comment appeler la méthode projects.locations.datasets.fhirStores.fhir.conditionalUpdate
pour mettre à jour une ressource FHIR correspondant à une requête de recherche, plutôt que d'identifier la ressource à l'aide de son ID. Cette méthode met en œuvre l'interaction de mise à jour conditionnelle standard FHIR (DSTU2, STU3 et R4).
Une mise à jour conditionnelle ne peut être appliquée qu'à une seule ressource FHIR à la fois.
La réponse renvoyée par le serveur dépend du nombre de correspondances trouvées en fonction des critères de recherche :
- Une correspondance : la ressource a bien été mise à jour ou une erreur est renvoyée.
- Plusieurs correspondances : la requête renvoie une erreur
412 Precondition Failed
. - Aucune correspondance avec un
id
: si les critères de recherche n'identifient aucune correspondance, le corps de la requête fournie contient unid
et le magasin FHIR a définienableUpdateCreate
surtrue
, la ressource FHIR est créée avec leid
dans le corps de la requête. - Aucune correspondance sans
id
: si les critères de recherche identifient zéro correspondance et que le corps de la requête fournie ne contient pas deid
, la ressource FHIR est créée avec un ID attribué par le serveur, comme si elle avait été créée avecprojects.locations.datasets.fhirStores.fhir.create
.
Le corps de la requête doit contenir une ressource FHIR encodée au format JSON et les en-têtes de la requête doivent contenir Content-Type: application/fhir+json
.
Dans la version 1 de l'API Cloud Healthcare, les opérations conditionnelles utilisent exclusivement le paramètre de recherche identifier
, s'il existe pour le type de ressource FHIR, pour déterminer quelles ressources FHIR correspondent à une requête de recherche conditionnelle.
REST
L'exemple suivant montre comment envoyer une requête PUT
avec curl
et PowerShell pour modifier une ressource Observation à l'aide de son identifiant (ABC-12345
dans my-code-system
). La ressource Observation fournit une mesure des battements par minute (BPM) d'un patient.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- LOCATION : emplacement de l'ensemble de données
- DATASET_ID : ensemble de données parent du magasin FHIR.
- FHIR_STORE_ID : ID du magasin FHIR.
- PATIENT_ID : ID de la ressource Patient
- ENCOUNTER_ID : ID de la ressource Encounter
- BPM_VALUE : valeur du battement par minute (BPM) dans la ressource Observation mise à jour
Corps JSON de la requête :
{ "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" } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
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
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
@' { "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
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
$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
API Explorer
Copiez le corps de la requête et ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Collez le corps de la requête dans cet outil, renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
Vous devriez recevoir une réponse JSON de ce type :
Corriger une ressource FHIR
Les exemples suivants montrent comment appeler la méthode projects.locations.datasets.fhirStores.fhir.patch
pour corriger une ressource FHIR. Cette méthode met en œuvre l'interaction de correction standard FHIR (DSTU2, STU3 et R4).
Lorsque vous appliquez un correctif à une ressource, vous mettez à jour une partie de celle-ci en appliquant les opérations spécifiées dans un document de correctif JSON.
La requête doit contenir un document de correctif JSON et ses en-têtes doivent contenir Content-Type: application/json-patch+json
.
Les exemples suivants montrent comment corriger une ressource Observation. La ressource Observation des battements par minute (BPM) d'un patient est mise à jour à l'aide de l'opération de correctif replace
.
Les exemples curl
et PowerShell suivants fonctionnent avec les stores FHIR R4. Les exemples Go, Java, Node.js et Python fonctionnent avec les magasins FHIR STU3.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- LOCATION : emplacement de l'ensemble de données
- DATASET_ID : ensemble de données parent du magasin FHIR.
- FHIR_STORE_ID : ID du magasin FHIR.
- OBSERVATION_ID : ID de la ressource Observation
- BPM_VALUE : valeur de battements par minute (BPM) dans la ressource Observation corrigée
Corps JSON de la requête :
[ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ]
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
cat > request.json << 'EOF' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] EOF
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
@' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] '@ | Out-File -FilePath request.json -Encoding utf8
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
$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
Vous devriez recevoir une réponse JSON de ce type :
Go
Java
Node.js
Python
Exécuter une requête PATCH
dans un groupe FHIR
Vous pouvez spécifier une requête PATCH
dans un groupe FHIR (FHIR R4 uniquement).
L'exécution d'une requête PATCH
dans un lot FHIR vous permet de corriger plusieurs ressources FHIR à la fois, au lieu d'avoir à effectuer des requêtes de correction individuelles pour chaque ressource FHIR.
Pour effectuer une requête PATCH
dans un groupe, spécifiez les informations suivantes dans un objet resource
de la requête :
- Un champ
resourceType
défini surBinary
- Un champ
contentType
défini surapplication/json-patch+json
- Corps du correctif encodé en base64
Assurez-vous que l'objet resource
ressemble à ceci :
"resource": {
"resourceType": "Binary",
"contentType": "application/json-patch+json",
"data": "WyB7ICJvcCI6ICJyZXBsYWNlIiwgInBhdGgiOiAiL2JpcnRoRGF0ZSIsICJ2YWx1ZSI6ICIxOTkwLTAxLTAxIiB9IF0K"
}
Voici le corps du correctif qui a été encodé en base64 dans le champ data
:
[
{
"op": "replace",
"path": "/birthdate",
"value": "1990-01-01"
}
]
Les exemples suivants montrent comment utiliser une requêtePATCH
dans un lot pour corriger la ressource Patient que vous avez créée dans Créer une ressource FHIR et que la valeur de birthDate
soit 1990-01-01
:
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- LOCATION : emplacement de l'ensemble de données parent.
- DATASET_ID : ensemble de données parent du magasin FHIR.
- FHIR_STORE_ID : ID du magasin FHIR.
- PATIENT_ID : ID d'une ressource Patient existante
Corps JSON de la requête :
{ "type": "transaction", "resourceType": "Bundle", "entry": [ { "request": { "method": "PATCH", "url": "Patient/PATIENT_ID" }, "resource": { "resourceType": "Binary", "contentType": "application/json-patch+json", "data": "WyB7ICJvcCI6ICJyZXBsYWNlIiwgInBhdGgiOiAiL2JpcnRoRGF0ZSIsICJ2YWx1ZSI6ICIxOTkwLTAxLTAxIiB9IF0K" } } ] }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
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
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
@' { "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
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
$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
Vous devriez recevoir une réponse JSON de ce type :
Appliquer un correctif conditionnel à une ressource FHIR
Les exemples suivants montrent comment appeler la méthode projects.locations.datasets.fhirStores.fhir.conditionalPatch
pour corriger une ressource FHIR correspondant à une requête de recherche, plutôt que d'identifier la ressource à l'aide de son ID. Cette méthode met en œuvre l'interaction de correction conditionnelle standard FHIR (DSTU2, STU3 et R4).
Une correction conditionnelle ne peut être appliquée qu'à une seule ressource à la fois. Si les critères de recherche identifient plusieurs correspondances, la requête renvoie une erreur 412 Precondition Failed
.
Dans la version 1 de l'API Cloud Healthcare, les opérations conditionnelles utilisent exclusivement le paramètre de recherche identifier
, s'il existe pour le type de ressource FHIR, pour déterminer quelles ressources FHIR correspondent à une requête de recherche conditionnelle.
REST
L'exemple suivant montre comment envoyer une requête PATCH
avec curl
et PowerShell pour modifier une ressource Observation si son identifiant est ABC-12345
dans my-code-system
.
La ressource Observation des battements par minute (BPM) d'un patient est mise à jour à l'aide de l'opération de correctif replace
.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- LOCATION : emplacement de l'ensemble de données
- DATASET_ID : ensemble de données parent du magasin FHIR.
- FHIR_STORE_ID : ID du magasin FHIR.
- BPM_VALUE : valeur du battement par minute (BPM) dans la ressource Observation mise à jour
Corps JSON de la requête :
[ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ]
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
cat > request.json << 'EOF' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] EOF
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
@' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] '@ | Out-File -FilePath request.json -Encoding utf8
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
$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
API Explorer
Copiez le corps de la requête et ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Collez le corps de la requête dans cet outil, renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
Vous devriez recevoir une réponse JSON de ce type :
Obtenir une ressource FHIR
Les exemples suivants montrent comment utiliser la méthode projects.locations.datasets.fhirStores.fhir.read
pour obtenir le contenu d'une ressource FHIR.
Les exemples curl
et PowerShell suivants fonctionnent avec les stores FHIR R4.
Les exemples Go, Java, Node.js et Python fonctionnent avec les magasins FHIR STU3.
Console
Pour obtenir le contenu d'une ressource FHIR, procédez comme suit :
Dans la console Google Cloud, accédez à la page Visionneuse FHIR.
Dans la liste déroulante Magasin FHIR, sélectionnez un ensemble de données, puis sélectionnez un magasin FHIR dans l'ensemble de données.
Pour filtrer la liste des types de ressources, recherchez les types de ressources que vous souhaitez afficher.
Cliquez sur le champ Type de ressource.
Dans la liste déroulante Propriétés qui s'affiche, sélectionnez Type de ressource.
Saisissez un type de ressource.
Pour rechercher un autre type de ressource, sélectionnez OU dans la liste déroulante Opérateurs qui s'affiche, puis saisissez un autre type de ressource.
Dans la liste des types de ressources, sélectionnez le type de la ressource dont vous souhaitez obtenir le contenu.
Dans le tableau des ressources qui s'affiche, sélectionnez ou recherchez une ressource.
REST
Les exemples suivants montrent comment obtenir les détails de la ressource Observation créée dans une section précédente.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- LOCATION : emplacement de l'ensemble de données
- DATASET_ID : ensemble de données parent du magasin FHIR.
- FHIR_STORE_ID : ID du magasin FHIR.
- OBSERVATION_ID : ID de la ressource Observation
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
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
Exécutez la commande suivante :
$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
API Explorer
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Exécuter.
Vous devriez recevoir une réponse JSON de ce type :
Go
Java
Node.js
Python
Obtenir tous les détails de la ressource "Encounter"
Les exemples suivants montrent comment utiliser la méthode projects.locations.datasets.fhirStores.fhir.Encounter-everything
pour afficher les détails d'une ressource Encounter et toutes les ressources associées à l'Encounter.
La méthode implémente l'opération Encounter-everything
étendue FHIR définie dans les versions FHIR suivantes:
REST
Utilisez la méthode projects.locations.datasets.fhirStores.fhir.Encounter-everything
.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
PROJECT_ID
: ID de votre projet Google CloudLOCATION
: emplacement de l'ensemble de donnéesDATASET_ID
: ID de l'ensemble de donnéesFHIR_STORE_ID
: ID du magasin FHIR.ENCOUNTER_ID
: ID de la ressource Encounter
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Encounter/ENCOUNTER_ID/\$everything"
PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Encounter/ENCOUNTER_ID/\$everything" | Select-Object -Expand Content
c427ce3e-7677-400e-bc06-33a8cecfdd77
, qui est une ressource synthétique dans le bucket Cloud Storage public gs://gcp-public-data--synthea-fhir-data-10-patients/fhir_r4_ndjson/
.
Obtenir toutes les ressources de compartiment de patient
Les exemples suivants montrent comment obtenir toutes les ressources associées à un compartiment de patient particulier (DSTU2, STU3 et R4).
Pour en savoir plus, consultez la page concernant projects.locations.datasets.fhirStores.fhir.Patient-everything
Les exemples curl
et PowerShell suivants fonctionnent avec les stores FHIR R4. Les exemples Go, Java, Node.js et Python fonctionnent avec les magasins FHIR STU3.
curl
Pour obtenir les ressources d'un compartiment de patient, exécutez une requête GET
et spécifiez les informations suivantes :
- Le nom de l'ensemble de données parent
- Le nom du magasin FHIR
- L'ID du patient
- Un jeton d'accès
L'exemple suivant montre une requête GET
utilisant 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"
Si la requête aboutit, le serveur affiche une réponse semblable à l'exemple suivant au format JSON :
{ "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
Pour obtenir les ressources d'un compartiment de patient, exécutez une requête GET
et spécifiez les informations suivantes :
- Le nom de l'ensemble de données parent
- Le nom du magasin FHIR
- L'ID du patient
- Un jeton d'accès
L'exemple suivant montre une requête GET
utilisant 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
Si la requête aboutit, le serveur affiche une réponse semblable à l'exemple suivant au format JSON :
{ "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
Obtenir des ressources de compartiment de patient par type ou par date
Les exemples suivants montrent comment obtenir toutes les ressources associées à un compartiment patient (R4) particulier, filtré en fonction d'une liste de types, à partir d'une date et d'une heure spécifiées.
Pour en savoir plus, consultez la page sur la méthode projects.locations.datasets.fhirStores.fhir.Patient-everything
.
Les exemples curl
et PowerShell suivants fonctionnent avec les stores FHIR R4.
curl
Pour obtenir les ressources dans un compartiment de patient d'un type spécifié et depuis une date spécifiée, envoyez une requête GET
et spécifiez les informations suivantes :
- Nom de l'ensemble de données parent
- Le nom du magasin FHIR
- L'ID du patient
- Chaîne de requête contenant une liste de types de ressources séparés par une virgule et une date de début
- Un jeton d'accès
L'exemple suivant montre une requête GET
utilisant 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"
Si la requête aboutit, le serveur renvoie toutes les ressources correspondant aux critères spécifiés au format JSON.
PowerShell
Pour obtenir les ressources dans un compartiment de patient d'un type spécifié et depuis une date spécifiée, envoyez une requête GET
et spécifiez les informations suivantes :
- Nom de l'ensemble de données parent
- Le nom du magasin FHIR
- L'ID du patient
- Chaîne de requête contenant une liste de types de ressources séparés par une virgule et une date de début
- Un jeton d'accès
L'exemple suivant montre une requête GET
utilisant 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
Si la requête aboutit, le serveur renvoie toutes les ressources correspondant aux critères spécifiés au format JSON.
Répertorier des versions de ressource FHIR
Les exemples suivants montrent comment répertorier toutes les versions historiques d'une ressource FHIR. Pour en savoir plus, consultez les sections sur projects.locations.datasets.fhirStores.fhir.history
Les exemples utilisent les ressources créées dans la section Créer une ressource FHIR et montrent comment répertorier les versions d'une ressource Observation.
Les exemples curl
et PowerShell suivants fonctionnent avec les stores FHIR R4. Les exemples Go, Java, Node.js et Python fonctionnent avec les magasins FHIR STU3.
curl
L'exemple suivant montre comment répertorier toutes les versions d'une ressource Observation. La ressource Observation a été mise à jour une fois après sa création initiale afin de changer les battements par minute (BPM) du patient.
Pour répertorier toutes les versions d'une ressource FHIR, y compris la version actuelle et les versions supprimées, exécutez une requête GET
et spécifiez les informations suivantes :
- Le nom de l'ensemble de données parent
- Le nom du magasin FHIR
- Le type et l'ID de ressource
- Un jeton d'accès
L'exemple suivant montre une requête GET
utilisant 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"
Si la requête aboutit, le serveur renvoie la réponse au format JSON. Dans cet exemple, il renvoie deux versions de l'observation. Dans la première version, la fréquence cardiaque du patient était de 75 BPM. Dans la deuxième version, la fréquence cardiaque du patient était de 85 BPM.
{ "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
L'exemple suivant montre comment répertorier toutes les versions d'une ressource Observation. La ressource Observation a été mise à jour une fois après sa création initiale afin de changer les battements par minute (BPM) du patient.
Pour répertorier toutes les versions d'une ressource FHIR, y compris la version actuelle et les versions supprimées, exécutez une requête GET
et spécifiez les informations suivantes :
- Le nom de l'ensemble de données parent
- Le nom du magasin FHIR
- Le type et l'ID de ressource
- Un jeton d'accès
L'exemple suivant montre une requête GET
utilisant 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
Si la requête aboutit, le serveur renvoie la réponse au format JSON. Dans cet exemple, il renvoie deux versions de l'observation. Dans la première version, la fréquence cardiaque du patient était de 75 BPM. Dans la deuxième version, la fréquence cardiaque du patient était de 85 BPM.
{ "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
Récupérer une version de ressource FHIR
Les exemples suivants montrent comment récupérer une version spécifique d'une ressource.
Pour en savoir plus, consultez les sections sur projects.locations.datasets.fhirStores.fhir.vread
Les ID de version de la ressource Observation de la section Répertorier les versions des ressources FHIR sont mis en surbrillance ci-dessous :
{ "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" }, ... }
Les exemples suivants utilisent les ressources créées dans la section Créer une ressource FHIR et montrent comment afficher une ressource Observation.
Les exemples curl
et PowerShell suivants fonctionnent avec les stores FHIR R4. Les exemples Go, Node.js et Python fonctionnent avec les magasins FHIR STU3.
curl
Pour obtenir une version spécifique d'une ressource FHIR, exécutez une requête GET
et spécifiez les informations suivantes :
- Le nom de l'ensemble de données parent
- Le nom du magasin FHIR
- Le type et l'ID de ressource
- La version de la ressource
- Un jeton d'accès
L'exemple suivant montre une requête GET
utilisant 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"
Si la requête aboutit, le serveur renvoie la réponse au format JSON. Dans cet exemple, la première version de l'observation, où le rythme cardiaque du patient était de 75 BPM, est renvoyée.
{ "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
Pour obtenir une version spécifique d'une ressource FHIR, exécutez une requête GET
et spécifiez les informations suivantes :
- Le nom de l'ensemble de données parent
- Le nom du magasin FHIR
- Le type et l'ID de ressource
- La version de la ressource
- Un jeton d'accès
L'exemple suivant montre une requête GET
utilisant 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
Si la requête aboutit, le serveur renvoie la réponse au format JSON. Dans cet exemple, la première version de l'observation, où le rythme cardiaque du patient était de 75 BPM, est renvoyée.
{ "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
Supprimer une ressource FHIR
Les exemples suivants montrent comment appeler la méthode projects.locations.datasets.fhirStores.fhir.delete
pour supprimer une ressource FHIR Observation.
Quelle que soit l'opération réussie, le serveur renvoie un code d'état HTTP 200 OK
. Pour vérifier que la ressource a bien été supprimée, recherchez ou obtenez la ressource et vérifiez si elle existe.
Les exemples curl
et PowerShell suivants fonctionnent avec les stores FHIR R4. Les exemples Go, Java, Node.js et Python fonctionnent avec les magasins FHIR STU3.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- LOCATION : emplacement de l'ensemble de données
- DATASET_ID : ensemble de données parent du magasin FHIR.
- FHIR_STORE_ID : ID du magasin FHIR.
- OBSERVATION_ID : ID de la ressource Observation
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
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
Exécutez la commande suivante :
$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
API Explorer
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Exécuter.
Vous devriez recevoir une réponse JSON de ce type :
Go
Java
Node.js
Python
Supprimer une ressource FHIR de manière conditionnelle
Dans la version 1 de l'API Cloud Healthcare, les opérations conditionnelles utilisent exclusivement le paramètre de recherche identifier
, s'il existe pour le type de ressource FHIR, pour déterminer quelles ressources FHIR correspondent à une requête de recherche conditionnelle.
Une ressource FHIR correspond à la requête ?identifier=my-code-system|ABC-12345
si et seulement si le identifier.system
de la ressource est my-code-system
et son identifier.value
est ABC-12345
. Si une ressource FHIR correspond à la requête, l'API Cloud Healthcare la supprime.
Si la requête utilise le paramètre de recherche identifier
et correspond à plusieurs ressources FHIR, l'API Cloud Healthcare renvoie une erreur "412 - Condition not selective enough"
.
Pour supprimer les ressources individuellement, procédez comme suit:
- Recherchez chaque ressource pour obtenir son ID unique attribué par le serveur.
- Supprimez individuellement chaque ressource à l'aide de l'ID.
Les exemples suivants montrent comment supprimer de manière conditionnelle une ressource FHIR correspondant à une requête de recherche, plutôt que d'identifier la ressource FHIR à l'aide de son ID.
La requête de recherche correspond à une ressource Observation et la supprime à l'aide de son identifiant (ABC-12345
dans my-code-system
).
REST
Utilisez la méthode projects.locations.datasets.fhirStores.fhir.conditionalDelete
.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
PROJECT_ID
: ID de votre projet Google CloudLOCATION
: emplacement de l'ensemble de donnéesDATASET_ID
: ensemble de données parent du magasin FHIR.FHIR_STORE_ID
: ID du magasin FHIR.
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
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?identifier=my-code-system|ABC-12345"
PowerShell
Exécutez la commande suivante :
$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?identifier=my-code-system|ABC-12345" | Select-Object -Expand Content
API Explorer
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Exécuter.
Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.
Supprimer des versions historiques d'une ressource FHIR
Les exemples suivants montrent comment supprimer toutes les versions historiques d'une ressource FHIR. Pour en savoir plus, consultez les sections sur projects.locations.datasets.fhirStores.fhir.Resource-purge
L'appel de la méthode projects.locations.datasets.fhirStores.fhir.Resource-purge
est limité aux utilisateurs (appelants) dotés du rôle roles/healthcare.fhirStoreAdmin
. Les utilisateurs dotés du rôle roles/healthcare.fhirResourceEditor
ne peuvent pas appeler la méthode. Pour autoriser un appelant à supprimer des versions historiques d'une ressource FHIR, utilisez l'une des méthodes suivantes :
- Assurez-vous que l'appelant dispose du rôle
roles/healthcare.fhirStoreAdmin
. - Créez un rôle IAM personnalisé avec l'autorisation
healthcare.fhirResources.purge
et attribuez le rôle à l'appelant.
Les exemples utilisent les ressources créées dans la section Créer une ressource FHIR et montrent comment supprimer les versions historiques d'une ressource Observation.
Les exemples curl
et PowerShell suivants fonctionnent avec les stores FHIR R4. Les exemples Go, Java, Node.js et Python fonctionnent avec les magasins FHIR STU3.
curl
Pour supprimer toutes les versions historiques d'une ressource FHIR, exécutez une requête DELETE
et spécifiez les informations suivantes :
- Le nom de l'ensemble de données parent
- Le nom du magasin FHIR
- Le type et l'ID de ressource
- Un jeton d'accès
L'exemple suivant montre une requête DELETE
utilisant 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"
Si la requête aboutit, le serveur renvoie le corps de réponse vide au format JSON :
{}
PowerShell
Pour supprimer toutes les versions historiques d'une ressource FHIR, exécutez une requête DELETE
et spécifiez les informations suivantes :
- Le nom de l'ensemble de données parent
- Le nom du magasin FHIR
- Le type et l'ID de ressource
- Un jeton d'accès
L'exemple suivant montre une requête DELETE
utilisant 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
Si la requête aboutit, le serveur renvoie le corps de réponse vide au format JSON :
{}