Les importations de masse

Les importations de masse

Si le logiciel permet de créer manuellement des échantillons ou des contenants, l’opération est souvent fastidieuse et longue. Pour simplifier le travail, deux mécanismes d’importation sont disponibles.

Le premier, l’importation de masse, a été créé pour initialiser la base de données avec une liste d’échantillons pré-existants, en général décrits dans un tableur. Le second a été pensé pour importer des échantillons provenant d’une autre base de données, en permettant d’associer les différentes tables de référence (un échantillon de type sachet 1 litre pourra être associé, dans la base cible, avec le type d’échantillon sachet 1L).

Quel que soit le type d’importation, l’application réalise des contrôles complexes pour limiter les risques de corruption de la base de données. Vous devrez ainsi préfixer chaque colonne (la première ligne du fichier) par le nom décrit dans le masque d’importation. Si d’autre colonnes que celles décrites figurent dans le fichier, la procédure de contrôle échouera.

Si des anomalies sont détectées lors des contrôles, l’importation ne sera pas possible, et vous devrez recommencer toute l’opération. Un tableau présentant les anomalies détectées sera affiché.

Après importation, les UID générés sont affichés (premier – dernier).

L’importation de masse

Ce module permet d’importer des échantillons ou des contenants, et de créer le cas échéant les mouvements d’entrée.
Il n’accepte que des fichiers au format CSV. La ligne d’en-tête doit comprendre exclusivement les colonnes suivantes :

  • sample_identifier : l’identifiant de l’échantillon (obligatoire)
  • collection_id : le numéro informatique de la collection (obligatoire)
  • sample_type_id : le numéro informatique du type d’échantillon (obligatoire)
  • sample_status_id : le numéro du statut de l’échantillon (obligatoire)
  • sampling_place_id : le numéro informatique de l’endroit où l’échantillon a été prélevé
  • wgs84_x : la longitude GPS en WGS84 (degrés décimaux)
  • wgs84_y : la latitude GPS en WGS84 (degrés décimaux)
  • sampling_date : la date de création/échantillonnage de l’échantillon, au format dd/mm/yyyy
  • expiration_date : la date d’expiration de l’échantillon, au format dd/mm/yyyy
  • sample_location : l’emplacement de rangement de l’échantillon dans le contenant (texte libre)
  • sample_column : n° de la colonne de stockage dans le contenant
  • sample_line : n° de la ligne de stockage dans le contenant
  • sample_multiple_value : le nombre total de sous-échantillons (ou le volume total, ou le pourcentage…) contenu dans l’échantillon
    si le type d’échantillons utilisé le permet (valeur numérique, séparateur décimal : point)
  • sample_parent_uid : UID du parent (création d’échantillons rattachés)
  • sample_metadata_json : les métadonnées rattachées à l’échantillon (au format json, p. e. : {« taxon »: »Alosa alosa »})
    • il est également possible de définir les métadonnées avec un attribut par colonne. Dans ce cas, la colonne doit être nommée md_nomAttribut, par exemple : md_taxon. La valeur de la colonne md_xxx écrasera celle de l’attribut xxx présent dans la colonne sample_metadata_json
  • container_identifier : l’identifiant du contenant (obligatoire)
  • container_type_id : le numéro informatique du type de contenant (obligatoire)
  • container_status_id : le numéro informatique du statut du contenant (obligatoire)
  • container_location : l’emplacement de rangement du contenant dans son parent (texte libre)
  • container_column : n° de la colonne de stockage dans le contenant parent
  • container_line : n° de la ligne de stockage dans le contenant parent
  • container_parent_uid : l’UID du contenant parent

Les codes informatiques peuvent être consultés à partir du menu Paramètres.

Pour les identifiants complémentaires :

  • repérez les codes dans le menu des paramètres > Types d’identifiants
  • vous ne pouvez indiquer qu’un code par ligne (mais plusieurs types de codes possibles)
  • ils seront associés à l’échantillon et au contenant, si les deux sont indiqués dans la même ligne

L’import sera réalisé ainsi :

  1. si sample_identifier est renseigné : création de l’échantillon
  2. si container_identifier est renseigné : création du contenant
  3. si container_identifier et container_parent_uid sont renseignés : création du mouvement d’entrée du contenant
  4. si l’échantillon et le contenant ont été créés, création du mouvement d’entrée de l’échantillon dans le contenant
  5. si l’échantillon est créé, que container_parent_uid est renseigné, et que container_identifier n’est pas rempli, création du mouvement d’entrée de l’échantillon dans le contenant indiqué

Un exemple de fichier est disponible ici : https://github.com/Irstea/collec/raw/master/database/import_data_structure.ods. Une fois la feuille de calcul renseignée, elle doit être enregistrée au format CSV.

Transférer des échantillons d’une base vers l’autre

Ce module permet d’importer des échantillons provenant d’une base externe, à partir d’un fichier CSV. Liste des colonnes possibles :

  • dbuid_origin (obligatoire) : identifiant unique dans la base de données d’origine, sous la forme : code_base:id
  • identifier : identifiant métier
  • sample_type_name (obligatoire) : type d’échantillon
  • collection_name (obligatoire) : nom de la collection de rattachement
  • object_status_name : statut courant
  • wgs84_x : longitude GPS en WGS84 (degrés décimaux)
  • wgs84_y : latitude GPS en WGS84 (degrés décimaux)
  • sample_creation_date : date de création de l’échantillon dans la base de données d’origine, sous la forme YYYY-MM-DD HH:MM:SS
  • sampling_date : date de référence de l’échantillon dans la base de données d’origine, sous la forme YYYY-MM-DD HH:MM:SS
  • expiration_date : date d’expiration ou de fin de validité de l’échantillon
  • multiple_value : nombre ou quantité de sous-échantillons disponibles
  • sampling_place_name : lieu de prélèvement de l’échantillon
  • metadata : liste des métadonnées associées, au format JSON. Il est également possible de définir des métadonnées au format texte, en respectant les règles suivantes :
    • un champ par métadonnée
    • chaque champ doit être préfixé par md_ pour pouvoir être reconnu comme tel par le logiciel
    • le champ ne doit pas être présent dans la colonne metadata. Dans le cas contraire, la valeur de metadata sera écrasée
  • identifiers : liste des identifiants secondaires, sous la forme : code1:val1,code2:val2
  • dbuid_parent : dans le cas d’un échantillon dérivé, identifiant du parent sous la forme code_base:identifiant. Cette valeur correspond à la valeur dbuid_origin de l’échantillon parent. Ce dernier doit avoir été importé préalablement pour que la relation puisse être créée

Quelques usages complémentaires

Comment mettre à jour les métadonnées dans une série d’échantillons ?

Dans une série d’échantillons, vous avez défini des métadonnées, dont l’un des champs correspond au référent. Vous souhaitez mettre à jour le référent, suite à un changement d’affectation dans votre laboratoire. Cette opération est facile à réaliser en exportant les données, puis en les réimportant après modification.

La structure de vos métadonnées est la suivante :

{"referent":"Jean Dupont","departement":"Doubs"}

Voici les opérations à réaliser :

  • sélectionnez l’ensemble des échantillons concernés par la modification ;
  • exportez les données en CSV en cliquant sur le bouton Export vers une autre base ;
  • ouvrez le fichier avec un tableur (LibreOffice Calc, par exemple). Rajoutez une colonne, dont le nom sera md_ suivi du nom de l’attribut. Dans notre exemple, md_referent
  • dans cette colonne, corrigez les libellés que vous souhaitez modifier
  • Une fois le fichier enregistré au format CSV, choisissez, dans Collec-Science, Objets > import d’échantillons externes
  • validez les différentes informations, puis lancez l’importation : les échantillons seront mis à jour avec les informations fournies.

Les métadonnées seront corrigées en prenant en compte la valeur présente dans la colonne md_referent.

Vous pouvez aisément utiliser cette méthode pour modifier toutes les informations des échantillons.

Méthode décrite initialement dans la forge GITHUB par Alexandre Maindron.

Date de modification : 15 mai 2023 | Date de création : 22 mars 2023 | Rédaction : Éric Quinton