Téléchargement csv HD4DP v2
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
docs.healthdata.be