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 des messages HL7v2 de manière groupée vers Cloud Storage pour le traitement en aval.

Avant de commencer

Consultez Exporter des messages HL7v2 depuis Cloud Storage pour connaître les rôles que vous devez attribuer 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 ligne dans un fichier NDJSON .ndjson. Les messages HL7v2 sont classés chronologiquement en fonction de leur valeur sendTime.

Exportez vers un bucket ou un dossier Cloud Storage plutôt que vers un objet, car l'API Cloud Healthcare peut créer plusieurs fichiers NDJSON lorsqu'il y a de nombreux 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 comme critères de filtrage dans le champ filter. Pour connaître la syntaxe des filtres et créer des requêtes, consultez la section Chaînes de requête.

  • message_type: à partir 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 du 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 dont provient le message, provenant 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 Google Cloud projet
    • 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 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 Google Cloud projet
    • 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

    Explorateur 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).

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

Exporter des messages HL7v2 par champ Message

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

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

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 Google Cloud projet
    • 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 Google Cloud projet
    • 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

    Explorateur 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).

    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.