Cette page explique comment importer des messages HL7v2 depuis Cloud Storage dans un entrepôt HL7v2. L'importation groupée de messages HL7v2 est plus rapide et plus simple que de les stocker individuellement à l'aide de l'API REST.
Avant de commencer
Consultez Importer 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.
Exigences concernant le format des fichiers d'entrée
Pour importer des messages HL7v2, vous devez d'abord créer un ou plusieurs fichiers JSON (.ndjson
) délimités par un retour à la ligne dans Cloud Storage, contenant un ou plusieurs messages. Chaque ligne du fichier est une ressource Message
unique contenant un message HL7v2 encodé en base64. La ressource Message
peut également inclure des libellés facultatifs.
Par exemple, le fichier suivant, nommé messages.ndjson
, contient deux messages HL7v2. Un libellé est défini dans le second message.
{"data" :"TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZXzF8QXxBfDIwMTgwMTAxMDAwMDAwfHxUWVBFXkF8MjAxODAxMDEwMDAwMDB8VHwwLjB8fHxBQXx8MDB8QVNDSUkNRVZOfEEwMHwyMDE4MDEwMTA0MDAwMA1QSUR8fDE0ATExMV5eXl5NUk58MTExMTExMTFeXl5eTVJOfjExMTExMTExMTFeXl5eT1JHTk1CUg=="}
{"data" :"TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZXzJ8QXxBfDIwMTgwMTAxMDAwMDAwfHxUWVBFXkF8MjAxODAxMDEwMDAwMDB8VHwwLjB8fHxBQXx8MDB8QVNDSUkNRVZOfEEwMHwyMDE4MDEwMTA0MDAwMA1QSUR8fDE0ATExMV5eXl5NUk58MTExMTExMTFeXl5eTVJOfjExMTExMTExMTFeXl5eT1JHTk1CUg==","labels":{"foo":"bar"}}
Importer des messages HL7v2
Console
Pour importer des messages HL7v2 à partir d'un bucket Cloud Storage, procédez comme suit :
Dans la console Google Cloud, accédez à la page Ensembles de données.
Cliquez sur l'ensemble de données contenant le store HL7v2 dans lequel vous importez des messages HL7v2.
Dans la liste des data stores, sélectionnez Importer dans la liste Actions du data store HL7v2.
La page Importer des données dans un magasin HL7v2 s'affiche.
Dans la liste Projet, sélectionnez un projet Cloud Storage.
Dans la liste Emplacement, sélectionnez un bucket Cloud Storage.
Pour définir un emplacement spécifique pour l'importation de fichiers, procédez comme suit :
- Développer les options avancées
- Sélectionnez Remplacer le chemin d'accès Cloud Storage.
Pour définir une source spécifique pour l'importation de fichiers, définissez le chemin d'accès dans la zone de texte Emplacement. Vous pouvez utiliser des caractères génériques pour importer plusieurs fichiers à partir d'un ou de plusieurs répertoires. Pour en savoir plus sur l'attribution de noms aux objets, consultez les consignes de dénomination des objets.
Les caractères génériques suivants sont acceptés :- Utilisez
*
pour correspondre à 0 ou plusieurs caractères non séparateurs. Par exemple,gs://BUCKET/DIRECTORY/Example*.ndjson
correspond à "Example.ndjson" et "Example22.ndjson" dans DIRECTORY. - Utilisez
**
pour correspondre à 0 caractère ou plus (séparateurs compris). Doit être utilisé à la fin d'un chemin d'accès et sans autres caractères génériques. Peut également être utilisé avec une extension de nom de fichier (.ndjson, par exemple), qui importe tous les fichiers portant l'extension dans le répertoire spécifié et ses sous-répertoires. Par exemple,gs://BUCKET/DIRECTORY/**.ndjson
importe tous les fichiers portant l'extension .ndjson dans DIRECTORY et ses sous-répertoires. - Utilisez
?
pour correspondre à 1 caractère. Par exemple,gs://BUCKET/DIRECTORY/Example?.ndjson
correspond à "Example1.ndjson", mais ne correspond pas à "Example.ndjson" ou "Example01.ndjson".
- Utilisez
Cliquez sur Importer pour importer les messages HL7v2 de la source définie.
- 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.
API
Les exemples suivants montrent comment importer des messages HL7v2 depuis Cloud Storage à l'aide de la méthode projects.locations.datasets.hl7V2Stores.import
.
Veuillez noter les points suivants lors de l'appel de l'opération d'importation :
- L'emplacement du fichier dans le bucket est arbitraire et ne doit pas nécessairement respecter exactement au format spécifié dans les exemples suivants.
- Lorsque vous spécifiez l'emplacement des messages HL7v2 dans Cloud Storage, vous pouvez utiliser des caractères génériques pour importer plusieurs fichiers d'un ou de plusieurs répertoires.
Les caractères génériques suivants sont acceptés :
- Utilisez
*
pour correspondre à 0 ou plusieurs caractères non séparateurs. Par exemple,gs://BUCKET/DIRECTORY/Example*.ndjson
correspond à "Example.ndjson" et "Example22.ndjson" dans DIRECTORY. - Utilisez
**
pour correspondre à 0 caractère ou plus (séparateurs compris). Doit être utilisé à la fin d'un chemin d'accès et sans autres caractères génériques. Peut également être utilisé avec une extension de nom de fichier (.ndjson, par exemple), qui importe tous les fichiers portant l'extension dans le répertoire spécifié et ses sous-répertoires. Par exemple,gs://BUCKET/DIRECTORY/**.ndjson
importe tous les fichiers portant l'extension .ndjson dans DIRECTORY et ses sous-répertoires. - Utilisez
?
pour correspondre à 1 caractère. Par exemple,gs://BUCKET/DIRECTORY/Example?.ndjson
correspond à "Example1.ndjson", mais ne correspond pas à "Example.ndjson" ou "Example01.ndjson".
- Utilisez
curl
Pour importer des messages HL7v2 dans un datastore HL7v2, envoyez une requête POST
et spécifiez les informations suivantes :
- Nom de l'ensemble de données parent
- Le nom du magasin HL7v2
- L'emplacement de l'objet dans un bucket Cloud Storage
- Un jeton d'accès
L'exemple suivant montre comment importer un seul fichier à l'aide d'une requête POST
à l'aide de 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"
Si la requête aboutit, le serveur renvoie la réponse au format JSON :
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" }
La réponse contient un nom d'opération. Pour suivre l'état de l'opération, vous pouvez utiliser la méthode 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"
Si la requête aboutit, le serveur renvoie une réponse avec l'état de l'opération au format 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
Pour importer des messages HL7v2 dans un datastore HL7v2, envoyez une requête POST
et spécifiez les informations suivantes :
- Nom de l'ensemble de données parent
- Le nom du magasin HL7v2
- L'emplacement de l'objet dans un bucket Cloud Storage
- Un jeton d'accès
L'exemple suivant montre comment importer un seul fichier à l'aide d'une requête POST
utilisant 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
Si la requête aboutit, le serveur renvoie la réponse au format JSON :
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" }
La réponse contient un nom d'opération. Pour suivre l'état de l'opération, vous pouvez utiliser la méthode 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
Si la requête aboutit, le serveur renvoie une réponse avec l'état de l'opération au format 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" } }
Résoudre les problèmes liés aux requêtes d'importation HL7v2
Si des erreurs se produisent lors de l'importation 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.