Cette page explique comment utiliser la récupération à un moment précis (PITR) pour récupérer les messages HL7v2 d'un magasin HL7v2 à un état datant des 21 derniers jours. Vous pouvez utiliser la récupération PITR pour récupérer des modifications indésirables, telles que la suppression accidentelle de messages HL7v2.
Avant de commencer
Les requêtes PITR sont classées comme des requêtes d'opérations avancées et sont facturées en conséquence. Avant d'utiliser la récupération PITR, consultez les tarifs des requêtes d'opérations avancées.
Workflow de récupération
Pour vous assurer qu'une récupération en production s'exécute comme prévu, effectuez d'abord un essai. 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 en fonction de critères de filtrage, spécifiez un filtre.
Effectuer une simulation
Avant de récupérer des messages HL7v2 en production, effectuez un test.
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 un dry run, 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 vers un dossier ou 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 ContentAPI 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).
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 ContentAPI 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 Execute (Exécuter).
"done": true
, l'opération de longue durée est terminée.
Afficher les fichiers de sortie du dry run
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 de l'ordre de traitement de la demande renvoyé dans la réponse hl7V2Stores.rollback
. Pour afficher les fichiers et vous assurer que la récupération fonctionne comme prévu, consultez la section Afficher les métadonnées d'objet.
Le nombre de fichiers est proportionnel au nombre de messages HL7v2 récupérés.
Les noms de fichiers suivent le format trial-NUMBER-of-TOTAL_NUMBER.txt
, où NUMBER
est le numéro de fichier et TOTAL_NUMBER
le nombre total de fichiers.
Schéma du fichier de sortie du dry run
Les fichiers de sortie d'une récupération à blanc utilisent le schéma présenté 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ération en production
Avant de récupérer en production, effectuez un essai et inspectez les fichiers de sortie de l'essai pour vous assurer que la récupération en production s'exécute 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
esttrue
.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 vers un dossier ou 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 ContentAPI 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).
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 ContentAPI 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 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 production
Une récupération de 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 de l'ordre de traitement de la demande renvoyé dans la réponse hl7V2Stores.rollback
. Pour afficher les fichiers, consultez la section Afficher les métadonnées d'objets.
success-NUMBER-of-TOTAL_NUMBER.txt
: contient les messages HL7v2 récupérés avec succè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 de 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 en production utilisent le schéma suivant. Les fichiers d'erreur contiennent une colonne ERROR_MESSAGE
supplémentaire.
MESSAGE_ID |
ERROR_MESSAGE (Fichiers d'erreur uniquement) |
---|---|
ID du message HL7v2. | Fichiers d'erreur uniquement. Indique pourquoi la récupération du message HL7v2 a échoué. |
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 (LRO), vous pouvez spécifier les ID de LRO dans un filtre pour restaurer le magasin HL7v2 à 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 de LRO dans l'objet RollbackHL7MessagesFilteringFields
lorsque vous envoyez une requête hl7V2Stores.rollback
.
Pour en savoir plus sur la liste et l'affichage des ID d'opérations de longue durée dans un ensemble de données de l'API Cloud Healthcare, consultez Liste des opérations de longue durée.