Cette page explique comment utiliser la récupération à un moment précis (PITR) pour récupérer des messages HL7v2 dans un magasin HL7v2 à un état datant des 21 derniers jours. Vous pouvez utiliser la récupération PITR pour revenir en arrière après des modifications indésirables, comme la suppression accidentelle de messages HL7v2.
Avant de commencer
Les demandes de récupération à un instant donné sont classées comme des demandes d'opérations avancées et sont facturées en conséquence. Avant d'utiliser la récupération PITR, consultez la tarification des requêtes d'opération avancée.
Workflow de récupération
Pour vous assurer qu'une récupération de production s'exécute comme prévu, effectuez d'abord une simulation. L'exécution à blanc génère un ou plusieurs fichiers contenant les ID des messages HL7v2 à récupérer. Vérifiez l'exactitude des fichiers de sortie avant de relancer la récupération en production.
Pour récupérer des messages HL7v2 spécifiques ou des messages HL7v2 selon un critère de filtrage, spécifiez un filtre.
Effectuer une simulation
Avant de récupérer des messages HL7v2 en production, effectuez un test à blanc.
Les exemples suivants montrent comment effectuer un test à blanc à l'aide de la méthode hl7V2Stores.rollback
.
REST
Récupérez les messages HL7v2.
Pour effectuer une simulation, assurez-vous que le champ
force
est défini surfalse
.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 store HL7v2HL7V2_STORE_ID
: ID du store HL7v2RECOVERY_TIMESTAMP
: point de récupération au cours des 21 derniers jours. Utilisez le format RFC 3339. Spécifiez l'heure à la seconde près et incluez un fuseau horaire, par exemple2015-02-07T13:28:17.239+02:00
ou2017-01-01T00:00:00Z
.CLOUD_STORAGE_BUCKET
: URI complet d'un dossier ou d'un bucket Cloud Storage dans lequel les fichiers de sortie sont écrits.
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' { "rollbackTime": "RECOVERY_TIMESTAMP", "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET", "force": "false" } 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/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:rollback"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 :@' { "rollbackTime": "RECOVERY_TIMESTAMP", "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET", "force": "false" } '@ | 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/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:rollback" | Select-Object -Expand ContentExplorateur d'API
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).
OPERATION_ID
. Vous en aurez besoin à l'étape suivante.Utilisez la méthode
projects.locations.datasets.operations.get
pour obtenir l'état de l'opération de longue durée.Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
PROJECT_ID
: ID de votre projet Google CloudDATASET_ID
: ID de l'ensemble de donnéesLOCATION
: emplacement de l'ensemble de donnéesOPERATION_ID
: ID renvoyé par l'opération de longue durée
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/operations/OPERATION_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/operations/OPERATION_ID" | Select-Object -Expand ContentExplorateur d'API
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 Execute (Exécuter).
"done": true
, l'opération de longue durée est terminée.
Afficher les fichiers de sortie de la simulation
Chaque simulation génère un ou plusieurs fichiers contenant les ID et les types des messages HL7v2 à récupérer. Les fichiers sont créés dans un sous-dossier du dossier rollback_messages
du bucket Cloud Storage de destination. Le nom du sous-dossier correspond à l'ID LRO renvoyé dans la réponse hl7V2Stores.rollback
. Pour afficher les fichiers et vous assurer que la récupération fonctionne comme prévu, consultez Afficher les métadonnées d'objets.
Le nombre de fichiers est proportionnel au nombre de messages HL7v2 récupérés.
Les noms de fichiers utilisent le format trial-NUMBER-of-TOTAL_NUMBER.txt
, où NUMBER
est le numéro du fichier et TOTAL_NUMBER
le nombre total de fichiers.
Schéma du fichier de sortie de la simulation
Les fichiers de sortie d'une récupération à blanc utilisent le schéma indiqué dans le tableau suivant :
MESSAGE_ID |
TIMESTAMP |
---|---|
ID du message HL7v2. | Heure à laquelle le message HL7v2 a été créé ou mis à jour dans le magasin HL7v2. |
Récupérer en production
Avant de procéder à la récupération en production, effectuez un test à blanc et inspectez les fichiers de sortie du test à blanc pour vous assurer que la récupération en production se déroule comme prévu.
Les exemples suivants montrent comment restaurer des messages HL7v2 en production à l'aide de la méthode hl7V2Stores.rollback
.
REST
Récupérez les messages HL7v2.
Assurez-vous que le champ
force
est défini surtrue
.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 store HL7v2HL7V2_STORE_ID
: ID du store HL7v2RECOVERY_TIMESTAMP
: point de récupération au cours des 21 derniers jours. Utilisez le format RFC 3339. Spécifiez l'heure à la seconde près et incluez un fuseau horaire, par exemple2015-02-07T13:28:17.239+02:00
ou2017-01-01T00:00:00Z
.CLOUD_STORAGE_BUCKET
: URI complet d'un dossier ou d'un bucket Cloud Storage dans lequel les fichiers de sortie sont écrits.
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' { "rollbackTime": "RECOVERY_TIMESTAMP", "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET", "force": "true" } 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/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:rollback"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 :@' { "rollbackTime": "RECOVERY_TIMESTAMP", "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET", "force": "true" } '@ | 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/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:rollback" | Select-Object -Expand ContentExplorateur d'API
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).
OPERATION_ID
. Vous en aurez besoin à l'étape suivante.Utilisez la méthode
projects.locations.datasets.operations.get
pour obtenir l'état de l'opération de longue durée.Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
PROJECT_ID
: ID de votre projet Google CloudDATASET_ID
: ID de l'ensemble de donnéesLOCATION
: emplacement de l'ensemble de donnéesOPERATION_ID
: ID renvoyé par l'opération de longue durée
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/operations/OPERATION_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/operations/OPERATION_ID" | Select-Object -Expand ContentExplorateur d'API
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 Execute (Exécuter).
"done": true
, l'opération de longue durée est terminée.
Afficher les fichiers de sortie de la récupération de la production
Une récupération de la production génère les fichiers suivants. Les fichiers sont créés dans un sous-dossier du dossier rollback_messages
du bucket Cloud Storage de destination. Le nom du sous-dossier correspond à l'ID LRO renvoyé dans la réponse hl7V2Stores.rollback
. Pour afficher les fichiers, consultez Afficher les métadonnées d'objets.
success-NUMBER-of-TOTAL_NUMBER.txt
: contient les messages HL7v2 récupérés.fail-NUMBER-of-TOTAL_NUMBER.txt
: contient les messages HL7v2 qui n'ont pas pu être récupérés. Un fichier vide est généré même en l'absence d'échecs.
Dans les noms de fichiers, NUMBER
correspond au numéro du fichier et TOTAL_NUMBER
au nombre total de fichiers.
Schéma du fichier de sortie de production
Les fichiers de réussite et d'échec d'une récupération de production utilisent le schéma suivant. Les fichiers d'erreurs contiennent une colonne ERROR_MESSAGE
supplémentaire.
MESSAGE_ID |
ERROR_MESSAGE (Fichiers d'erreur uniquement) |
---|---|
ID du message HL7v2. | Fichiers d'erreur uniquement. Décrit pourquoi le message HL7v2 n'a pas pu être récupéré. |
Utiliser des filtres pour restaurer un magasin HL7v2 à un état antérieur
Si un magasin HL7v2 a été modifié par une ou plusieurs opérations de longue durée, vous pouvez spécifier les ID d'opération de longue durée dans un filtre pour restaurer le magasin HL7v2 dans son état précédent. Par exemple, vous pouvez restaurer un magasin HL7v2 à son état précédent avant qu'une opération d'importation n'importe des messages HL7v2.
Vous spécifiez les ID LRO dans l'objet RollbackHL7MessagesFilteringFields
lorsque vous envoyez une requête hl7V2Stores.rollback
.
Pour savoir comment lister et afficher les ID d'opérations de longue durée dans un ensemble de données de l'API Cloud Healthcare, consultez Lister les opérations de longue durée.