Esportazione di messaggi HL7v2 in Cloud Storage

Questa pagina descrive come esportare i messaggi HL7v2 da un datastore HL7v2 in Cloud Storage. Puoi esportare in blocco i messaggi HL7v2 in Cloud Storage per l'elaborazione a valle.

Prima di iniziare

Consulta Esportare i messaggi HL7v2 da Cloud Storage per conoscere i ruoli che devi concedere all'account di servizio Agente di servizio Cloud Healthcare.

Esportazione di messaggi HL7v2 in Cloud Storage

L'API Cloud Healthcare esporta ogni messaggio HL7v2 come in un file .ndjson NDJSON. I messaggi HL7v2 sono ordinati cronologicamente in base a sendTime valore.

Esporta in un bucket o una cartella Cloud Storage, anziché in un oggetto, poiché l'API Cloud Healthcare potrebbe creare più file NDJSON quando ci sono molti messaggi HL7v2.

Se esporti in una cartella Cloud Storage che non esiste, la cartella viene creato.

Console

Per esportare i messaggi HL7v2 in Cloud Storage, completa i seguenti passaggi:

  1. Nella console Google Cloud, vai alla pagina Set di dati.

    Vai a Set di dati

  2. Fai clic sul set di dati che contiene l'archivio HL7v2 da cui sei esportando i messaggi HL7v2.

  3. Nell'elenco dei datastore, scegli Esporta dal menu a discesa Azioni. per l'archivio HL7v2.

    Viene visualizzata la pagina Esporta messaggi HL7v2.

  4. Nell'elenco Progetto, seleziona un progetto Cloud Storage.

  5. Nell'elenco Località, seleziona un bucket Cloud Storage.

  6. Fai clic su Esporta per esportare le istanze HL7v2 nella posizione definita in Cloud Storage.

  7. Per monitorare lo stato dell'operazione, fai clic sulla scheda Operazioni. Al termine dell'operazione, vengono visualizzate le seguenti indicazioni:
    • La sezione Stato dell'operazione a lunga esecuzione ha un segno di spunta verde sotto la Intestazione OK.
    • Nella sezione Panoramica è presente un segno di spunta verde e un indicatore OK nella stessa riga dell'ID operazione.
    In caso di errori, fai clic su Azioni e poi su Visualizza dettagli in Cloud Logging,

Esportare messaggi HL7v2 in Cloud Storage utilizzando i filtri

Per impostazione predefinita, l'esportazione dei messaggi HL7v2 in Cloud Storage include tutti i messaggi HL7v2 messaggi in un archivio HL7v2 e tutti i campi in ogni Message .

Puoi filtrare i messaggi HL7v2 esportati come segue:

Esportare un sottoinsieme di messaggi HL7v2 utilizzando un filtro

Nei criteri di filtro puoi utilizzare i seguenti campi:

Puoi specificare i seguenti parametri di filtro come criteri di filtro nella filter . Per conoscere la sintassi dei filtri e creare query, consulta Stringhe di query.

  • message_type: dal campo MSH.9.1. Ad esempio, NOT message_type = "ADT".
  • send_date: la data YYYY-MM-DD in cui il messaggio è stato inviato dal segmento MSH.7, specificata nel fuso orario del set di dati. Ad esempio: send_date < "2017-01-02".
  • send_time: il timestamp di invio del messaggio. Questo parametro proviene dal segmento MSH.7 del messaggio. Questo parametro utilizza il parametro Formato ora RFC 3339 per i confronti. Ad esempio: send_time < "2017-01-02T00:00:00-05:00".
  • create_time: il timestamp della creazione del messaggio nell'API Cloud Healthcare, utilizzando il formato orario RFC 3339 per i confronti. Ad esempio: create_time < "2017-01-02T00:00:00-05:00".
  • send_facility: il centro di assistenza da cui proviene il messaggio, dal segmento MSH.4. Ad esempio, send_facility = "ABC".

Gli esempi riportati di seguito mostrano come specificare un filtro per esportare solo i messaggi HL7v2 di tipo ADT.

REST

  1. Utilizza il metodo hl7V2Stores.export per esportare i messaggi HL7v2:

    Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

    • PROJECT_ID: l'ID del tuo progetto Google Cloud
    • LOCATION: la posizione del set di dati
    • DATASET_ID: set di dati padre dell'archivio HL7v2
    • HL7V2_STORE_ID: l'ID store HL7v2
    • CLOUD_STORAGE_LOCATION: il nome di un bucket o di una cartella Cloud Storage in cui vengono scritti i messaggi HL7v2 esportati

    Corpo JSON della richiesta:

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

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:

    cat > request.json << 'EOF'
    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION"
      },
      "filter": "message_type = \"ADT\""
    }
    EOF

    Quindi, esegui questo comando per inviare la richiesta 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

    Salva il corpo della richiesta in un file denominato request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:

    @'
    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION"
      },
      "filter": "message_type = \"ADT\""
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Quindi, esegui questo comando per inviare la richiesta 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
    L'output è il seguente. La risposta contiene un identificatore per un un'operazione a lunga esecuzione (LRO). Le operazioni che richiedono molto tempo vengono restituite quando le chiamate ai metodi potrebbero richiedere ulteriore tempo per essere completate. Prendi nota del valore di OPERATION_ID. Questo valore ti servirà nel passaggio successivo.

  2. Utilizza il metodo projects.locations.datasets.operations.get per ottenere lo stato dell'operazione a lunga esecuzione.

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • PROJECT_ID: l'ID del tuo progetto Google Cloud
    • DATASET_ID: l'ID del set di dati
    • LOCATION: la posizione del set di dati
    • OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Esegui questo comando:

    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

    Esegui questo comando:

    $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

    Explorer API

    Apri l'app pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila tutti i campi obbligatori e fai clic su Esegui.

    L'output è il seguente. Quando la risposta contiene "done": true, l'operazione a lunga esecuzione è terminata.

Esporta messaggi HL7v2 per campo Message

Nell'API Cloud Healthcare, i messaggi HL7v2 vengono archiviati nelle risorse Message. Puoi utilizzare la MessageView per determinare quali campi della risorsa Message sono inclusi in ogni messaggio HL7v2 esportato.

Gli esempi riportati di seguito mostrano come utilizzare il valore BASIC in MessageView per includere solo il campo name nei messaggi HL7v2 esportati.

REST

  1. Utilizza la hl7V2Stores.export per esportare i messaggi HL7v2:

    Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

    • PROJECT_ID: l'ID del tuo progetto Google Cloud
    • LOCATION: la posizione del set di dati
    • DATASET_ID: set di dati padre dell'archivio HL7v2
    • HL7V2_STORE_ID: l'ID store HL7v2
    • CLOUD_STORAGE_LOCATION: il nome di un bucket o di una cartella Cloud Storage in cui vengono scritti i messaggi HL7v2 esportati

    Corpo JSON della richiesta:

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

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:

    cat > request.json << 'EOF'
    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION",
        "messageView": "BASIC"
      }
    }
    EOF

    Quindi, esegui questo comando per inviare la richiesta 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

    Salva il corpo della richiesta in un file denominato request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:

    @'
    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION",
        "messageView": "BASIC"
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Quindi, esegui questo comando per inviare la richiesta 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
    L'output è il seguente. La risposta contiene un identificatore per un'operazione a lunga esecuzione (LRO). Le operazioni a lunga esecuzione vengono restituite quando il completamento delle chiamate ai metodi può richiedere più tempo. Prendi nota del valore di OPERATION_ID. Questo valore ti servirà nel passaggio successivo.

  2. Utilizza il metodo projects.locations.datasets.operations.get per ottenere lo stato dell'operazione a lunga esecuzione.

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • PROJECT_ID: l'ID del tuo progetto Google Cloud
    • DATASET_ID: l'ID del set di dati
    • LOCATION: la posizione del set di dati
    • OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Esegui questo comando:

    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

    Esegui questo comando:

    $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

    Explorer API

    Apri l'app pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Esplora API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.

    L'output è il seguente. Quando la risposta contiene "done": true, l'operazione a lunga esecuzione è terminata.

Risolvere i problemi relativi alle richieste di esportazione HL7v2

Se si verificano errori durante l'esportazione dei messaggi HL7v2, questi vengono registrati in Cloud Logging. Per ulteriori informazioni, vedi Visualizzazione dei log degli errori in Cloud Logging.

Se un'operazione a lunga esecuzione restituisce un errore, consulta la sezione Risoluzione dei problemi relativi alle operazioni a lunga esecuzione.