Exporter des messages HL7v2 vers Cloud Storage

Cette page explique comment exporter des messages HL7v2 depuis un entrepôt HL7v2 vers Cloud Storage. Vous pouvez exporter de manière groupée des messages HL7v2 vers Cloud Storage pour un traitement en aval.

Avant de commencer

Consultez Exporter des messages HL7v2 depuis Cloud Storage pour connaître les rôles que vous devez accorder au compte de service Agent de service Cloud Healthcare.

Exporter des messages HL7v2 vers Cloud Storage

L'API Cloud Healthcare exporte chaque message HL7v2 en tant que dans un fichier NDJSON .ndjson. Les messages HL7v2 sont classés chronologiquement en fonction de leur valeur sendTime.

Exporter vers un bucket ou un dossier Cloud Storage plutôt qu'un objet car l'API Cloud Healthcare peut créer plusieurs fichiers NDJSON il y a beaucoup de messages HL7v2.

Si vous exportez vers un dossier Cloud Storage qui n'existe pas, le dossier est créé.

Console

Pour exporter des messages HL7v2 vers Cloud Storage, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Ensembles de données.

    Accéder à la page "Ensembles de données"

  2. Cliquez sur l'ensemble de données contenant le store HL7v2 à partir duquel vous exportez des messages HL7v2.

  3. Dans la liste des data stores, sélectionnez Exporter dans la liste Actions du store HL7v2.

    La page Exporter des messages HL7v2 s'affiche.

  4. Dans la liste Projet, sélectionnez un projet Cloud Storage.

  5. Dans la liste Emplacement, sélectionnez un bucket Cloud Storage.

  6. Cliquez sur Exporter pour exporter des instances HL7v2 vers l'emplacement défini dans Cloud Storage.

  7. Pour suivre l'état de l'opération, cliquez sur l'onglet Opérations. Une fois l'opération terminée, les indications suivantes s'affichent :
    • La section État de l'opération de longue durée est représentée par une coche verte sous l'en-tête OK.
    • La section Présentation comporte une coche verte et un indicateur OK sur la même ligne que l'ID de l'opération.
    Si vous rencontrez des erreurs, cliquez sur Actions, puis sur Afficher les détails dans Cloud Logging.

Exporter des messages HL7v2 vers Cloud Storage à l'aide de filtres

Par défaut, l'exportation de messages HL7v2 vers Cloud Storage inclut tous les messages HL7v2 d'un magasin HL7v2 et tous les champs de chaque objet Message.

Vous pouvez filtrer les messages HL7v2 exportés comme suit :

Exporter un sous-ensemble de messages HL7v2 à l'aide d'un filtre

Vous pouvez utiliser les champs suivants dans vos critères de filtrage :

Vous pouvez spécifier les paramètres de filtre suivants en tant que critères de filtrage dans la filter . Pour connaître la syntaxe des filtres et créer des requêtes, consultez la section Chaînes de requête.

  • message_type: provenant du champ MSH.9.1. Exemple :NOT message_type = "ADT"
  • send_date: date YYYY-MM-DD à laquelle le message a été envoyé à partir du segment MSH.7, spécifiée dans le fuseau horaire de l'ensemble de données. Par exemple, send_date < "2017-01-02".
  • send_time : code temporel de l'envoi du message. Ce paramètre provient de le segment MSH.7 du message. Ce paramètre utilise le format temporel RFC 3339 pour les comparaisons. Par exemple, send_time < "2017-01-02T00:00:00-05:00".
  • create_time : horodatage de la création du message dans l'API Cloud Healthcare, en utilisant le format d'heure RFC 3339 à des fins de comparaison. Exemple : create_time < "2017-01-02T00:00:00-05:00".
  • send_facility: centre de soins d'où provient le message, du segment MSH.4. Exemple :send_facility = "ABC"

Les exemples suivants montrent comment spécifier un filtre pour n'exporter que les messages HL7v2 de type ADT.

REST

  1. Utilisez la méthode hl7V2Stores.export pour exporter les messages HL7v2 :

    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 store HL7v2
    • HL7V2_STORE_ID : ID du store HL7v2
    • CLOUD_STORAGE_LOCATION: nom d'un bucket ou d'un dossier Cloud Storage dans lequel les messages HL7v2 exportés sont écrits

    Corps JSON de la requête :

    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION"
      },
      "filter": "message_type = \"ADT\""
    }
    

    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'
    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION"
      },
      "filter": "message_type = \"ADT\""
    }
    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:export"

    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 :

    @'
    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION"
      },
      "filter": "message_type = \"ADT\""
    }
    '@  | 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:export" | Select-Object -Expand Content
    Le résultat est le suivant. La réponse contient l'identifiant d'une opération de longue durée (LRO). Les opérations de longue durée sont renvoyées lorsque les appels de méthode peuvent prendre davantage de temps. Notez la valeur de OPERATION_ID. Vous en aurez besoin à l'étape suivante.

  2. 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 Cloud
    • DATASET_ID : ID de l'ensemble de données
    • LOCATION : emplacement de l'ensemble de données
    • OPERATION_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 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 Execute (Exécuter).

    Le résultat est le suivant. Lorsque la réponse contient "done": true, l'opération de longue durée est terminée.

Exporter les messages HL7v2 via le champ Message

Dans l'API Cloud Healthcare, les messages HL7v2 sont stockés dans des ressources Message. Vous pouvez utiliser le MessageView pour déterminer quels champs de la ressource Message sont inclus dans chaque message HL7v2 exporté.

Les exemples suivants montrent comment utiliser le BASIC dans MessageView pour n'inclure que name dans les messages HL7v2 exportés.

REST

  1. Utilisez le hl7V2Stores.export pour exporter les messages HL7v2:

    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 store HL7v2
    • HL7V2_STORE_ID : ID du store HL7v2
    • CLOUD_STORAGE_LOCATION: nom d'un bucket ou d'un dossier Cloud Storage dans lequel les messages HL7v2 exportés sont écrits

    Corps JSON de la requête :

    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION",
        "messageView": "BASIC"
      }
    }
    

    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'
    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION",
        "messageView": "BASIC"
      }
    }
    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:export"

    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 :

    @'
    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION",
        "messageView": "BASIC"
      }
    }
    '@  | 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:export" | Select-Object -Expand Content
    Le résultat est le suivant. La réponse contient un identifiant pour une opération de longue durée (LRO). Les opérations de longue durée sont renvoyées lorsque les appels de méthode peuvent prendre davantage de temps. Notez la valeur de OPERATION_ID. Vous en aurez besoin à l'étape suivante.

  2. 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 Cloud
    • DATASET_ID : ID de l'ensemble de données
    • LOCATION : emplacement de l'ensemble de données
    • OPERATION_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 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 Execute (Exécuter).

    Le résultat est le suivant. Lorsque la réponse contient "done": true, l'opération de longue durée est terminée.

Résoudre les problèmes liés aux requêtes d'exportation HL7v2

Si des erreurs se produisent lors de l'exportation de messages HL7v2, elles sont consignées dans Cloud Logging. Pour en savoir plus, consultez la section Afficher les journaux d'erreurs dans Cloud Logging.

Si une opération de longue durée renvoie une erreur, consultez la section Résoudre les problèmes liés aux opérations de longue durée.