Questa pagina descrive come importare i messaggi HL7v2 da Cloud Storage in un archivio HL7v2. L'importazione collettiva di messaggi HL7v2 è più rapida e semplice rispetto allo stoccaggio dei messaggi singolarmente utilizzando l'API REST.
Prima di iniziare
Consulta Importare messaggi HL7v2 da Cloud Storage per conoscere i ruoli che devi concedere all'account di servizio Agente di servizio Cloud Healthcare.
Requisiti per i formati dei file di input
Per importare i messaggi HL7v2, devi prima creare uno o più file JSON (.ndjson
) delimitati da nuova riga in Cloud Storage contenenti uno o più messaggi. Ogni riga del file è una singola risorsa Message
che contiene un messaggio HL7v2 codificato in base64. La risorsa Message
può includere anche etichette facoltative.
Ad esempio, il seguente file, denominato messages.ndjson
, contiene due messaggi HL7v2. Un'etichetta è definita nel secondo messaggio.
{"data" :"TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZXzF8QXxBfDIwMTgwMTAxMDAwMDAwfHxUWVBFXkF8MjAxODAxMDEwMDAwMDB8VHwwLjB8fHxBQXx8MDB8QVNDSUkNRVZOfEEwMHwyMDE4MDEwMTA0MDAwMA1QSUR8fDE0ATExMV5eXl5NUk58MTExMTExMTFeXl5eTVJOfjExMTExMTExMTFeXl5eT1JHTk1CUg=="}
{"data" :"TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZXzJ8QXxBfDIwMTgwMTAxMDAwMDAwfHxUWVBFXkF8MjAxODAxMDEwMDAwMDB8VHwwLjB8fHxBQXx8MDB8QVNDSUkNRVZOfEEwMHwyMDE4MDEwMTA0MDAwMA1QSUR8fDE0ATExMV5eXl5NUk58MTExMTExMTFeXl5eTVJOfjExMTExMTExMTFeXl5eT1JHTk1CUg==","labels":{"foo":"bar"}}
Importa i messaggi HL7v2
Console
Per importare i messaggi HL7v2 da un bucket Cloud Storage, completa i seguenti passaggi:
Nella console Google Cloud, vai alla pagina Set di dati.
Fai clic sul set di dati contenente l'archivio HL7v2 in cui stai importando i messaggi HL7v2.
Nell'elenco dei datastore, scegli Importa dall'elenco Azioni per l'archivio HL7v2.
Viene visualizzata la pagina Importa nel datastore HL7v2.
Nell'elenco Progetto, seleziona un progetto Cloud Storage.
Nell'elenco Posizione, seleziona un bucket Cloud Storage.
Per impostare una posizione specifica per l'importazione dei file:
- Espandi Opzioni avanzate.
- Seleziona Override del percorso di Cloud Storage.
Per impostare un'origine specifica per l'importazione dei file, definisci il percorso nella casella di testo Posizione. Puoi utilizzare i caratteri jolly per importare più file da una o più directory. Per ulteriori informazioni sulla denominazione degli oggetti, consulta le linee guida per la denominazione degli oggetti.
Sono supportati i seguenti caratteri jolly:- Utilizza
*
per trovare una corrispondenza con nessuno o più caratteri non separatori. Ad esempio,gs://BUCKET/DIRECTORY/Example*.ndjson
corrisponde a Example.ndjson ed Example22.ndjson in DIRECTORY. - Utilizza
**
per trovare una corrispondenza con nessuno o più caratteri (inclusi i separatori). Deve essere utilizzato alla fine di un percorso e senza altri caratteri jolly nel percorso. Può essere utilizzato anche con un'estensione di nome file (ad esempio .ndjson), che importa tutti i file con l'estensione di nome file nella directory specificata e nelle relative sottodirectory. Ad esempio,gs://BUCKET/DIRECTORY/**.ndjson
importa tutti i file con l'estensione del nome file .ndjson in DIRECTORY e nelle relative sottodirectory. - Utilizza
?
per trovare la corrispondenza di un solo carattere. Ad esempio,gs://BUCKET/DIRECTORY/Example?.ndjson
corrisponde a Example1.ndjson, ma non a Example.ndjson o Example01.ndjson.
- Utilizza
Fai clic su Importa per importare i messaggi HL7v2 dall'origine definita.
- Per monitorare lo stato dell'operazione, fai clic sulla scheda Operazioni. Al termine dell'operazione, vengono visualizzate le seguenti indicazioni:
- La sezione Stato operazione a lunga esecuzione presenta un segno di spunta verde sotto la voce OK.
- Nella sezione Panoramica è presente un segno di spunta verde e un indicatore OK nella stessa riga dell'ID operazione.
API
Gli esempi riportati di seguito mostrano come importare i messaggi HL7v2 da Cloud Storage utilizzando il metodo projects.locations.datasets.hl7V2Stores.import
.
Tieni presente quanto segue quando chiami l'operazione di importazione:
- La posizione del file all'interno del bucket è arbitraria e non deve necessariamente corrispondere esattamente al formato specificato nei seguenti esempi.
- Al momento di specificare la posizione dei messaggi HL7v2 in Cloud Storage, puoi utilizzare i caratteri jolly per importare più file da una o più directory.
Sono supportati i seguenti caratteri jolly:
- Utilizza
*
per trovare una corrispondenza con nessuno o più caratteri non separatori. Ad esempio,gs://BUCKET/DIRECTORY/Example*.ndjson
corrisponde a Example.ndjson ed Example22.ndjson in DIRECTORY. - Utilizza
**
per trovare una corrispondenza con nessuno o più caratteri (inclusi i separatori). Deve essere utilizzato alla fine di un percorso e senza altri caratteri jolly nel percorso. Può essere utilizzato anche con un'estensione di nome file (ad esempio .ndjson), che importa tutti i file con l'estensione di nome file nella directory specificata e nelle relative sottodirectory. Ad esempio,gs://BUCKET/DIRECTORY/**.ndjson
importa tutti i file con l'estensione del nome file .ndjson in DIRECTORY e nelle relative sottodirectory. - Utilizza
?
per trovare la corrispondenza di un solo carattere. Ad esempio,gs://BUCKET/DIRECTORY/Example?.ndjson
corrisponde a Example1.ndjson, ma non a Example.ndjson o Example01.ndjson.
- Utilizza
curl
Per importare i messaggi HL7v2 in un archivio HL7v2, effettua una richiesta POST
e specifica
le seguenti informazioni:
- Il nome del set di dati principale
- Il nome dell'archivio HL7v2
- La posizione dell'oggetto in un bucket Cloud Storage
- Un token di accesso
L'esempio seguente mostra come importare un singolo file utilizzando una richiesta POST
con curl
.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'gcsSource': { 'uri': 'gs://BUCKET/DIRECTORY/HL7V2_MESSAGE_FILE' } }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:import"
Se la richiesta riesce, il server restituisce la risposta in formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" }
La risposta contiene il nome di un'operazione. Per monitorare lo stato dell'operazione,
puoi utilizzare il
metodo Operation get
:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
Se la richiesta riesce, il server restituisce una risposta con lo stato dell'operazione in formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata", "apiMethodName": "google.cloud.healthcare.v1.hl7v2.Hl7V2Service.ImportMessages", "createTime": "CREATE_TIME", "endTime": "END_TIME" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.hl7v2.ImportMessagesResponse" } }
PowerShell
Per importare i messaggi HL7v2 in un archivio HL7v2, effettua una richiesta POST
e specifica
le seguenti informazioni:
- Il nome del set di dati principale
- Il nome dell'archivio HL7v2
- La posizione dell'oggetto in un bucket Cloud Storage
- Un token di accesso
Il seguente esempio mostra come importare un singolo file utilizzando una richiesta POST
con Windows PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body "{ 'gcsSource': { 'uri': 'gs://BUCKET/DIRECTORY/HL7V2_MESSAGE_FILE' } }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:import" | Select-Object -Expand Content
Se la richiesta riesce, il server restituisce la risposta in formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" }
La risposta contiene il nome di un'operazione. Per monitorare lo stato dell'operazione,
puoi utilizzare il
metodo Operation get
:
$cred = gcloud auth application-default 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
Se la richiesta riesce, il server restituisce una risposta con lo stato dell'operazione in formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata", "apiMethodName": "google.cloud.healthcare.v1.hl7v2.Hl7V2Service.ImportMessages", "createTime": "CREATE_TIME", "endTime": "END_TIME" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.hl7v2.ImportMessagesResponse" } }
Risolvere i problemi relativi alle richieste di importazione HL7v2
Se si verificano errori durante l'importazione dei messaggi HL7v2, questi vengono registrati in Cloud Logging. Per ulteriori informazioni, consulta 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.