Téléchargement csv HD4DP v2

Téléchargement csv HD4DP v2

Dernière mise à jour: 2022-08-09 19:03

Introduction

Cette page explique le fonctionnement de la fonction CSVUploader. La fonction CSVUploader a pour but d'effectuer un téléchargement en masse d'enregistrements : en remplissant un fichier csv, un enregistrement par ligne représente une soumission, de sorte qu'un utilisateur peut remplir autant d'enregistrements que nécessaire.

Architecture

Le CSVUploader est situé sous hd-connect/csvuploader. Il utilise les modules hd-connect-csvuploader et hd-connect-proxy.

L'architecture globale de CSVUploader est expliquée dans le diagramme de séquence ci-dessous.

Bibliothèques et frameworks tiers

  • Apache Camel : https://camel.apache.org/
  • Spring Boot :

Test et fonctionnement

  • Le CSVUploader crée au niveau de la racine (SFTP pour l'utilisateur final, ou hd-all pour le développeur) un dossier qui contient un sous-dossier par organisation existante.
  • Dans chaque dossier d'organisation, un dossier par DCD est créé.
  • Pour tester le CSVUploader, le testeur doit placer un fichier de test csv dans le dossier approprié, concernant l'organisation et la DCD concerné.
  • Le CSVUploader fera un sondage avec un délai de 1 min, traitera le fichier csv et créera ensuite 3 dossiers :
    • Dossier ARCHIVE : contient le fichier csv source.
    • Dossier RESULTS : contient les résultats du traitement du fichier csv. Ce dossier rappelle les données spécifiées, et le statut final du traitement : Success ou Error. Si une erreur s'est produite, le message d'erreur est affiché. Pour plusieurs téléchargements, le résultat est ajouté à chaque fois à la fin du fichier résultat.
    • Dossier ERROR : ce dossier est créé si le fichier de test csv n'a pas été analysé, en raison d'une erreur d'entrée/sortie (fichier corrompu, non trouvé, etc.). Pour l'instant, seules les erreurs techniques sont détectées et le fichier csv source est déplacé dans ce dossier au lieu du dossier ARCHIVE. A terme, ce dossier devrait contenir tous les résultats qui sont des erreurs. Le dossier RESULT devrait contenir uniquement les résultats qui se terminent par un statut SUCCESS.
  • Des exemples de fichiers de test sont disponibles :
  • dwhTestDCD.csv
  • eHealthTestDCD_with_repeatables.csv
  • eHealthTestDCD.csv

Un fichier de test est défini avec cette structure :

  • première ligne : les colonnes de la DCD. Chaque colonne correspond à un champ de la DCD.
  • ligne 2 -> N : un enregistrement par ligne. Chaque cellule contient la valeur de l'enregistrement courant concernant l'en-tête de la colonne.

Formats

Certains formats sont spécifiques :

  • Dates : doit être jj/mm/aaaa
  • Booléens : vrai / faux
  • Codes : la valeur du code (pas la traduction)
  • Codes multiples : il n'y a qu'une seule colonne par champ. Ainsi, lorsqu'une boîte de sélection est définie comme multiple, les valeurs doivent être séparées par un « | ». Par exemple : 68452|68453|68454
  • Blocs répétables : dans certaines DCDs, un bloc complet de champs est répétable. Dans ce cas, les valeurs doivent être séparées par un « ; »
    • Par exemple : Un bloc contient 3 champs : A (Lob), B (Type valve) et C (Nombre de valves).

Le bloc est répété une fois en cliquant sur le bouton « Add another ». Dans le CSV, il y a toujours une colonne pour chaque champ.

Si pour le premier bloc, les valeurs sont :

  • A -> 68545 (=RLL)
  • B -> 13245 (=38101000053)
  • C -> 1

et pour le second bloc, les valeurs sont :

  • A -> 68548 (=LLL)
  • B -> 13245 (=38101000053)
  • C -> 1

Dans le fichier CSV, le résultat sera le suivant :

  • Colonne A : 68545;68548
  • Colonne B : 13245;13245
  • Colonne C : 1;1

Il est possible de mélanger des valeurs de sélection multiple et des blocs répétables (si une boîte de sélection multiple est à l'intérieur d'un composant de bloc qui pourrait être répété). Cela se terminera par :

Si pour le premier bloc, les valeurs sont :

  • A -> 68545|68944|68946
  • B -> 1
  • C -> 2

et pour le second bloc, les valeurs sont :

  • A -> 78945|78950
  • B -> 3
  • C -> 4

Dans le fichier CSV, le résultat sera le suivant :

  • Colonne A : 68545|68944|68946;78945|78950
  • Colonne B : 1;3
  • Colonne C : 2;4

Traduit avec https://www.deepl.com/Translator. Vous avez remarqué une erreur ? Contactez-nous via https://docs.healthdata.be/contact