Author: lkaufmann Date: 2014-01-20 16:12:33 +0100 (Mon, 20 Jan 2014) New Revision: 1513 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1513 Log: Refs #4138. Add screen/database mappings into help Added: trunk/tutti-ui-swing/src/main/help/fr/dbMapping.html Modified: trunk/tutti-ui-swing/src/main/help/fr/genericExport.html trunk/tutti-ui-swing/src/main/help/fr/index.html trunk/tutti-ui-swing/src/main/help/fr/navbar.js Added: trunk/tutti-ui-swing/src/main/help/fr/dbMapping.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/fr/dbMapping.html (rev 0) +++ trunk/tutti-ui-swing/src/main/help/fr/dbMapping.html 2014-01-20 15:12:33 UTC (rev 1513) @@ -0,0 +1,2418 @@ +<!DOCTYPE html> +<html lang="fr"> +<head> + <!-- + #%L + Tutti :: UI + $Id: dbManager.html 1487 2014-01-15 12:45:59Z lkaufmann $ + $HeadURL: http://svn.forge.codelutin.com/svn/tutti/trunk/tutti-ui-swing/src/main/help/... $ + %% + Copyright (C) 2012 - 2013 Ifremer + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public + License along with this program. If not, see + <http://www.gnu.org/licenses/gpl-3.0.html>. + #L% + --> + <meta charset="utf-8"> + + <title>Allegro Campagne - Gérer la base de données</title> + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/style.css" rel="stylesheet"> + <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> + <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> +</head> +<body> + + <div class="container"> + <div class="page-header"> + <h1>Gérer la base de données</h1> + </div> + + <p>Cette page décrit comment sont stockées les informations visibles dans les écrans de l'application.</p> + + <h2>Série de campagnes</h2> + + <table class='table table-bordered table-striped table-hover table-condensed'> + <thead> + <tr> + <th>Libellé de l'élément</th> + <th>Obligatoire</th> + <th>Type</th> + <th>Correspondance en base de données</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p>Nom</p> + </td> + <td> + <p>X</p> + </td> + <td> + <p>Texte libre</p> + </td> + <td> + <p>Program.name (PROGRAM.NAME)</p> + </td> + </tr> + <tr> + <td> + <p>Zone</p> + </td> + <td> + <p>X</p> + </td> + <td> + <p>Liste.</p> + <p>Provenant d'un référentiel des zones d'études des campagnes halieutiques.</p> + </td> + <td> + <p>Program.locations (PROGRAM2LOCATION.LOCATION_FK)</p> + </td> + </tr> + <tr> + <td> + <p>Description</p> + </td> + <td> + <p>X</p> + </td> + <td> + <p>Texte libre</p> + </td> + <td> + <p>Program.description (PROGRAM.DESCRIPTION)</p> + </td> + </tr> + </tbody> + </table> + + <h2>Campagne</h2> + + <table class='table table-bordered table-striped table-hover table-condensed'> + <thead> + <tr> + <th>Libellé de l'élément</th> + <th>Obligatoire</th> + <th>Type</th> + <th colspan="2">Correspondance en base de données</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p>Série</p> + </td> + <td> + <p>X</p> + </td> + <td> + <p>Liste.</p> + <p>Choix parmi les séries de campagne existantes dans la base.</p> + </td> + <td colspan="2"> + <p>ScientificCruise.program (SCIENTIFIC_CRUISE.PROGRAM_FK)</p> + </td> + </tr> + <tr> + <td rowspan="2"> + <p>Année</p> + </td> + <td rowspan="2"> + <p> </p> + </td> + <td rowspan="2"> + <p> </p> + </td> + <td> + <p>En lecture</p> + </td> + <td > + <p>year(ScientificCruise.departureDateTime) (SCIENTIFIC_CRUISE.DEPARTURE_DATE_TIME) </p> + </td> + </tr> + <tr> + <td> + <p>En écriture</p> + </td> + <td > + <p>pas de stockage (car doit logiquement être compatible avec ScientificCruise.departureDateTime)</p> + </td> + </tr> + <tr> + <td> + <p>Série partielle</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Texte libre</p> + </td> + <td colspan="2"> + <p>ScientificCruise.fishingTrip.surveyMeasurement (SURVEY_MEASUREMENT.ALPHA_NUMERICAL_VALUE, avec PMFM_FK=<PmfmId.SURVEY_PART>)</p> + </td> + </tr> + <tr> + <td> + <p>Name</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td colspan="2"> + <p>ScientificCruise.name (SCIENTIFIC_CRUISE.NAME)</p> + </td> + </tr> + <tr> + <td rowspan="2"> + <p>Nombre de poches</p> + </td> + <td rowspan="2"> + <p>X</p> + </td> + <td rowspan="2"> + <p>Numérique</p> + </td> + <td> + <p>En lecture</p> + </td> + <td> + <p>récupération de la plus grande valeur dans ScientificCruise.fishingTrip.gearPhysicalFeatures.gearPhysicalMeasurement.numericalvalue (GEAR_PHYSICAL_MEASURMENT.NUMERICAL_VALUE avec PMFM_FK=<PMFM_ID_MULTIRIG_NUMBER>)</p> + </td> + </tr> + <tr> + <td> + <p>En écriture</p> + </td> + <td> + <p>valeur dupliquée pour chaque engin (voir "Engin(s)" ci-dessous) dans ScientificCruise.fishingTrip.gearPhysicalFeatures.gearPhysicalMeasurement.numericalvalue (GEAR_PHYSICAL_MEASURMENT.NUMERICAL_VALUE avec PMFM_FK=<PMFM_ID_MULTIRIG_NUMBER>)</p> + </td> + </tr> + <tr> + <td> + <p>Port de départ</p> + </td> + <td> + <p>X</p> + </td> + <td> + <p>Liste.</p> + <p>Choix parmi une liste finie provenant d'un référentiel d'Harmonie.</p> + </td> + <td colspan="2"> + <p>ScientificCruise.fishingTrip.departureLocation (FISHING_TRIP.DEPARTURE_LOCATION_FK) avec le lien avec la campagne via SCIENTIFIC_CRUISE_FK)</p> + </td> + </tr> + <tr> + <td> + <p>Port d'arrivée</p> + </td> + <td> + <p>X</p> + </td> + <td> + <p>Liste.</p> + <p>Choix parmi une liste finie provenant d'un référentiel d'Harmonie.</p> + </td> + <td colspan="2"> + <p>ScientificCruise.fishingTrip.returnLocation (FISHING_TRIP.RETURN_LOCATION_FK) avec le lien avec la campagne via SCIENTIFIC_CRUISE_FK)</p> + </td> + </tr> + <tr> + <td> + <p>Date de début</p> + </td> + <td> + <p>X</p> + </td> + <td> + <p>Date (JJ/MM/AAAA)</p> + </td> + <td colspan="2"> + <p>ScientificCruise.departureDateTime (SCIENTIFIC_CRUISE.DEPARTURE_DATE_TIME)</p> + </td> + </tr> + <tr> + <td> + <p>Date de fin</p> + </td> + <td> + <p>X</p> + </td> + <td> + <p>Date (JJ/MM/AAAA)</p> + </td> + <td colspan="2"> + <p>ScientificCruise.returnDateTime (SCIENTIFIC_CRUISE.RETURN_DATE_TIME)</p> + </td> + </tr> + <tr> + <td> + <p>Navire</p> + </td> + <td> + <p>X</p> + </td> + <td> + <p>Liste.</p> + <p>Choix parmi les navires existants en base</p> + </td> + <td colspan="2"> + <p>ScientificCruise.vessel (SCIENTIFIC_CRUISE.VESSEL_FK)</p> + </td> + </tr> + <tr> + <td> + <p>Engin(s)</p> + </td> + <td> + <p>X</p> + </td> + <td> + <p>Liste.</p> + <p>Fonctionnement via le principe de la double liste. Les éléments sont à sélectionner parmi la première liste, et sont ajoutés dans la seconde liste à leur sélection.</p> + </td> + <td colspan="2"> + <p>ScientificCruise.fishingTrip.gearPhysicalFeatures.gear (GEAR_PHYSICAL_FEATURES.GEAR_FK avec RANK_ORDER=<n° d'ordre dans la liste>)</p> + </td> + </tr> + <tr> + <td> + <p>Chef(s) de mission</p> + </td> + <td> + <p>X</p> + </td> + <td> + <p>Liste.</p> + <p>Fonctionnement via le principe de la double liste. Les éléments sont à sélectionner parmi la première liste, et sont ajoutés dans la seconde liste à leur sélection.</p> + </td> + <td colspan="2"> + <p>La première personne de la liste est stockée sous ScientificCruise.manager (SCIENTIFIC_CRUISE.MANAGER_PERSON_FK) Pour les autres personnes, ScientificCruise.fishingTrip.vesselPersonFeatures avec un VesselPersonRole.id=<responsable_de_campagne></p> + </td> + </tr> + <tr> + <td> + <p>Responsable(s) de salle de tri</p> + </td> + <td> + <p>X</p> + </td> + <td> + <p>Liste.</p> + <p>Fonctionnement via le principe de la double liste. Les éléments sont à sélectionner parmi la première liste, et sont ajoutés dans la seconde liste à leur sélection.</p> + </td> + <td colspan="2"> + <p>ScientificCruise.fishingTrip.vesselPersonFeatures avec un VesselPersonRole.id=<responsable_salle_de_tri></p> + </td> + </tr> + <tr> + <td> + <p>Commentaire</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Texte libre</p> + </td> + <td colspan="2"> + <p>ScientificCruise.comments (SCIENTIFIC_CRUISE.COMMENTS)</p> + </td> + </tr> + </tbody> + </table> + + <h2>Protocole</h2> + + <table class='table table-bordered table-striped table-hover table-condensed'> + <thead> + <tr> + <th>Libellé de l'élément</th> + <th>Obligatoire</th> + <th>Type</th> + <th>Correspondance en base de données</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p>Nom</p> + </td> + <td> + <p>X</p> + </td> + <td> + <p>Texte libre</p> + </td> + <td> + <p>TuttiProtocol.name (persisté dans le fichier)</p> + </td> + </tr> + <tr> + <td> + <p>Commentaire</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Texte libre</p> + </td> + <td> + <p>TuttiProtocol.comment (persisté dans le fichier)</p> + </td> + </tr> + </tbody> + </table> + + <h3>Protocoles - Caractéristiques</h3> + <table class='table table-bordered table-striped table-hover table-condensed'> + <thead> + <tr> + <th>Libellé de l'élément</th> + <th>Obligatoire</th> + <th>Type</th> + <th>Correspondance en base de données</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p>Classes de taille</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste.</p> + <p>Fonctionnement via le principe de la double liste. Les éléments sont à sélectionner parmi la première liste, et sont ajoutés dans la seconde liste à leur sélection.</p> + </td> + <td rowspan="4"> + <p>On récupère la liste de tous les pmfm que l'on répartit dans les différents onglets. Chaque pmfm ne peut être sélectionné que dans une seule liste.</p> + </td> + </tr> + <tr> + <td> + <p>Mise en œuvre de l'engin</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste.</p> + <p>Fonctionnement via le principe de la double liste. Les éléments sont à sélectionner parmi la première liste, et sont ajoutés dans la seconde liste à leur sélection.</p> + </td> + </tr> + <tr> + <td> + <p>Observations individuelles</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste.</p> + <p>Fonctionnement via le principe de la double liste. Les éléments sont à sélectionner parmi la première liste, et sont ajoutés dans la seconde liste à leur sélection.</p> + </td> + </tr> + <tr> + <td> + <p>Autres caractéristiques</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste.</p> + <p>Fonctionnement via le principe de la double liste. Les éléments sont à sélectionner parmi la première liste, et sont ajoutés dans la seconde liste à leur sélection.</p> + </td> + </tr> + </tbody> + </table> + + <h3>Espèces</h3> + + <table class='table table-bordered table-striped table-hover table-condensed'> + <thead> + <tr> + <th colspan="2">Libellé de l'élément</th> + <th>Obligatoire</th> + <th>Type</th> + <th>Correspondance en base de données</th> + </tr> + </thead> + <tbody> + <tr> + <td colspan="2"> + <p>Espèce sélectionné</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste</p> + </td> + <td> + <p>La liste des espèces référent non encore utilisés. Note: cette liste est partagée sur les deux onglets espèces - benthos).</p> + </td> + </tr> + <tr> + <td rowspan="10"> + <p>Tableau</p> + </td> + <td> + <p>Espèce</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Lecture seule</p> + </td> + <td rowspan="10"> + <p>Chaque ligne du tableau est stockée sous la forme d'un SpeciesProtocol : TuttiProtocol.species.</p> + </td> + </tr> + <tr> + <td> + <p>Code campagne</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Texte libre</p> + </td> + </tr> + <tr> + <td> + <p>Mode de mensuration</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste</p> + </td> + </tr> + <tr> + <td> + <p>Pesée</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Booléen (Case à cocher)</p> + </td> + </tr> + <tr> + <td> + <p>Dénombrement</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Booléen (Case à cocher)</p> + </td> + </tr> + <tr> + <td> + <p>Class Tri.</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Booléen (Case à cocher)</p> + </td> + </tr> + <tr> + <td> + <p>Sexe</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Booléen (Case à cocher)</p> + </td> + </tr> + <tr> + <td> + <p>Maturité</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Booléen (Case à cocher)</p> + </td> + </tr> + <tr> + <td> + <p>Age</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Booléen (Case à cocher)</p> + </td> + </tr> + <tr> + <td> + <p>Prélèvement de pièces calcaires</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Booléen (Case à cocher)</p> + </td> + </tr> + </tbody> + </table> + + <h3>Benthos</h3> + + <table class='table table-bordered table-striped table-hover table-condensed'> + <thead> + <tr> + <th colspan="2" >Libellé de l'élément</th> + <th>Obligatoire</th> + <th>Type</th> + <th colspan="2">Correspondance en base de données</th> + </tr> + </thead> + <tbody> + <tr> + <td colspan="2"> + <p>Espèce sélectionné</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste</p> + </td> + <td> + <p>La liste des espèces référent non encore utilisés. Note: cette liste est partagée sur les deux onglets espèces - benthos).</p> + </td> + </tr> + <tr> + <td rowspan="10"> + <p>Tableau</p> + </td> + <td> + <p>Espèce</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Lecture seule</p> + </td> + <td rowspan="10"> + <p>Chaque ligne du tableau est stockée sous la forme d'un SpeciesProtocol : TuttiProtocol.species.</p> + </td> + </tr> + <tr> + <td> + <p>Code campagne</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Texte libre</p> + </td> + </tr> + <tr> + <td> + <p>Mode de mensuration</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste</p> + </td> + </tr> + <tr> + <td> + <p>Pesée</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Booléen (Case à cocher)</p> + </td> + </tr> + <tr> + <td> + <p>Dénombrement</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Booléen (Case à cocher)</p> + </td> + </tr> + <tr> + <td> + <p>Class Tri.</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Booléen (Case à cocher)</p> + </td> + </tr> + <tr> + <td> + <p>Sexe</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Booléen (Case à cocher)</p> + </td> + </tr> + <tr> + <td> + <p>Maturité</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Booléen (Case à cocher)</p> + </td> + </tr> + <tr> + <td> + <p>Age</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Booléen (Case à cocher)</p> + </td> + </tr> + <tr> + <td> + <p>Prélèvement de pièces calcaires</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Booléen (Case à cocher)</p> + </td> + </tr> + </tbody> + </table> + + <h2>Trait</h2> + + <table class='table table-bordered table-striped table-hover table-condensed'> + <thead> + <tr> + <th>Libellé de l'élément</th> + <th>Obligatoire</th> + <th>Type</th> + <th>Correspondance en base de données</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p>Code Station</p> + </td> + <td> + <p>X</p> + </td> + <td> + <p>Texte libre</p> + </td> + <td> + <p>Operation.vesselUseFeatures.vesselUseMeasurement (VESSEL_USE_MEASUREMENT.ALPHANUMERICAL_VALUE avec PMFM_FK=<PmfmId.STATION_NUMBER>)</p> + </td> + </tr> + <tr> + <td> + <p>Numéro de Trait</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p>Operation.name (OPERATION.NAME) : ajouté à la fin du "name", derrière le code de l'engin, pour rester compatible avec le format des données historiques.</p> + </td> + </tr> + <tr> + <td> + <p>Numéro de poche</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p>Liste des poches observées Operation.gearUseFeatures.gearUseMeasurement (GEAR_USE_MEASUREMENT.ALPHANUMERICAL_VALUE avec PMFM_FK=<PmfmId.MULTIRIG_AGGREGATION>)</p> + </td> + </tr> + <tr> + <td> + <p>Strate</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste.</p> + <p>Les valeurs de ce champ sont issues d'un référentiel.</p> + </td> + <td> + <p>Operation.gearUseFeatures.fishingArea.regulationLocation (FISHING_AREA2REG_LOCATION.LOCATION_FK associé au FISHING_AREA de l'opération) En lecture : sélection en tant que localité à partir du locationLevel (LOCATION.LOCATION_LEVEL_FK=<LocationLevelId.STRATA>)</p> + </td> + </tr> + <tr> + <td> + <p>Sous strate</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste.</p> + <p>Les valeurs de ce champ sont issues d'un référentiel.</p> + </td> + <td> + <p>Operation.gearUseFeatures.fishingArea.regulationLocation (FISHING_AREA2REG_LOCATION.LOCATION_FK associé au FISHING_AREA de l'opération) En lecture : sélection en tant que localité à partir du locationLevel (LOCATION.LOCATION_LEVEL_FK=<LocationLevelId.SUB_STRATA>)</p> + </td> + </tr> + <tr> + <td> + <p>Localité</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste.</p> + <p>Les valeurs de ce champ sont issues d'un référentiel.</p> + </td> + <td> + <p>operation.gearUseFeatures.fishingArea.regulationLocation (FISHING_AREA2REG_LOCATION.LOCATION_FK associé au FISHING_AREA de l'opération) En lecture : sélection en tant que localité à partir du locationLevel (LOCATION.LOCATION_LEVEL_FK=<LocationLevelId.LOCALITE>)</p> + </td> + </tr> + <tr> + <td> + <p>Latitude et Longitude de début de traîne</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Cordonnées.</p> + <p>Le format de saisie peut être modifié dans la configuration.</p> + </td> + <td> + <p>Operation.vesselPosition (VESSEL_POSITION.LATITUDE et VESSEL_POSITION.LONGITUDE), avec startDateTime = "Début de traine > Date et heure"</p> + </td> + </tr> + <tr> + <td> + <p>Latitude et Longitude de fin de traîne</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Cordonnées.</p> + <p>Le format de saisie peut être modifié dans la configuration.</p> + </td> + <td> + <p>Operation.vesselPosition (VESSEL_POSITION.LATITUDE et VESSEL_POSITION.LONGITUDE), avec startDateTime = "Fin de traine > Date et heure"</p> + </td> + </tr> + <tr> + <td> + <p>Date et Heure de début de traîne</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Date (JJ/MM/AAAA)</p> + </td> + <td> + <p>Operation.startDateTime et Operation.fishingStartDateTime (OPERATION.START_DATE_TIME et OPERATION.FISHING_START_DATE_TIME)</p> + </td> + </tr> + <tr> + <td> + <p>Date et Heure de fin de traîne</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Date (JJ/MM/AAAA)</p> + </td> + <td> + <p>Operation.endDateTime et Operation.fishingEndDateTime (OPERATION.END_DATE_TIME et OPERATION.FISHING_END_DATE_TIME)</p> + </td> + </tr> + <tr> + <td> + <p>Trait rectiligne</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Booléen (Case à cocher)</p> + </td> + <td> + <p>Operation.vesselUseFeatures.vesselUseMeasurement (VESSEL_USE_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.RECTILINEAR_OPERATION>)</p> + </td> + </tr> + <tr> + <td> + <p>Distance chalutée</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p>Operation.vesselUseFeatures.vesselUseMeasurement (VESSEL_USE_MEASUREMENT.NUMERICAL_VALUE avec PMFM_FK=<PmfmId.TRAWL_DISTANCE>)</p> + </td> + </tr> + <tr> + <td> + <p>Durée</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p> </p> + </td> + </tr> + <tr> + <td> + <p>Trait valide/invalide</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Booléen (Case à cocher)</p> + </td> + <td> + <p>Operation.vesselUseFeatures.vesselUseMeasurement (VESSEL_USE_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.HAUL_VALID>)</p> + </td> + </tr> + <tr> + <td> + <p>Saisisseur(s)</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste.</p> + <p>Fonctionnement via le principe de la double liste. Les éléments sont à sélectionner parmi la première liste, et sont ajoutés dans la seconde liste à leur sélection.</p> + </td> + <td> + <p>Operation.vesselPersonFeatures avec un VesselPersonRole.id=<responsable_de_campagne></p> + </td> + </tr> + <tr> + <td> + <p>Autres caractéristiques du Navire</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Lecture seule</p> + </td> + <td> + <p>Operation.vessel (OPERATION.VESSEL_FK)</p> + </td> + </tr> + <tr> + <td> + <p>Autres caractéristiques Engin</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste.</p> + <p>Choix parmi les engins de la campagne</p> + </td> + <td> + <p>Operation.gearPhysicialFeatures (OPERATION.GEAR_PHYSCIAL_FEATURES_FK) : lien vers un engin déjà déclaré au niveau de la campagne. Le code de l'engin est également dupliqué au début de Operation.name (OPERATION.NAME), devant le numéro du trait, pour rester compatible avec le format des données historiques.</p> + </td> + </tr> + <tr> + <td> + <p>Navire(s) associé(s)</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste.</p> + <p>Choix parmi les navires existants en base</p> + </td> + <td> + <p> </p> + </td> + </tr> + <tr> + <td> + <p>Commentaire</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Operation.comments (OPERATION.COMMENTS)</p> + </td> + </tr> + <tr> + <td> + <p>Pièces Jointes</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Chaque pièce jointes est stockée dans MeasurementFile (MEASUREMENT_FILE avec PMFM_FK=null, OBJECT_TYPE_FK='OPERATION' et OBJECT_ID=<ID du trait>) MeasurementFile.path : chemin du fichier (copier dans un répertoire, puis stocké en relatif) MeasurementFile.name : nom MeasurementFile.comments : commentaire</p> + </td> + </tr> + </tbody> + </table> + + + + <h3>Trait > Mise en oeuvre de l'engin</h3> + + <table class='table table-bordered table-striped table-hover table-condensed'> + <thead> + <tr> + <th>Libellé de l'élément</th> + <th>Obligatoire</th> + <th>Type</th> + <th>Correspondance en base de données</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p>Valeur</p> + </td> + <td> + <p>X</p> + </td> + <td> + <p>Type de la caractéristique issu d'un référentiel</p> + </td> + <td> + <p>Operation.gearUseFeatures.gearUseMeasurement (GEAR_USE_MEASUREMENT.xxx - en fonction du type de PSFM : NUMERICAL_VALUE, ALPHANUMERICAL_VALUE ou QUALITATIVE_VALUE_FK)</p> + </td> + </tr> + </tbody> + </table> + + + <h3>Hydrologie et paramètres environnementaux</h3> + + <table class='table table-bordered table-striped table-hover table-condensed'> + <thead> + <tr> + <th>Libellé de l'élément</th> + <th>Obligatoire</th> + <th>Type</th> + <th>Correspondance en base de données</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p>Valeur</p> + </td> + <td> + <p>X</p> + </td> + <td> + <p>Type de la caractéristique issu d'un référentiel</p> + </td> + <td> + <p>Operation.gearUseFeatures.vesselUseMeasurement (GEAR_USE_MEASUREMENT.xxx - en fonction du type de PSFM : NUMERICAL_VALUE, ALPHANUMERICAL_VALUE ou QUALITATIVE_VALUE_FK</p> + </td> + </tr> + </tbody> + </table> + + <h2>Captures</h2> + + <h3>Captures > Résumé</h3> + + <table class='table table-bordered table-striped table-hover table-condensed'> + <thead> + <tr> + <th>Libellé de l'élément</th> + <th>Obligatoire</th> + <th>Type</th> + <th>Correspondance en base de données</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p>Poids TOTAL</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p>Lot "Capture" (BATCH avec IS_CATCH_BATCH=1) Stocké uniquement si non calculé CatchBatch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1 et PMFM_FK=<PmfmId.WEIGHT_OBSERVED>)</p> + </td> + </tr> + <tr> + <td> + <p>Poids total VRAC</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p>Lot "Capture > Vrac" Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1 et PMFM_FK=<PmfmId.WEIGHT_OBSERVED>)</p> + </td> + </tr> + <tr> + <td> + <p>Poids total HORS VRAC</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p>Lot "Capture > Hors Vrac" Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1 et PMFM_FK=<PmfmId.WEIGHT_OBSERVED>)</p> + </td> + </tr> + <tr> + <td> + <p>Poids total NON TRIE</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p>Lot "Capture > Non trié" Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1 et PMFM_FK=<PmfmId.WEIGHT_OBSERVED>)</p> + </td> + </tr> + <tr> + <td> + <p>Espèce > Poids TOTAL</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p>Sommme des poids des lots "Capture > xxx > Espèce" Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1 et PMFM_FK=<PmfmId.WEIGHT_OBSERVED>)</p> + </td> + </tr> + <tr> + <td> + <p>Espèce > Poids total VRAC</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p>Lot "Capture > Vrac > Espèce" Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1 et PMFM_FK=<PmfmId.WEIGHT_OBSERVED>)</p> + </td> + </tr> + <tr> + <td> + <p>Espèce > Poids total VRAC trié</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p> </p> + </td> + </tr> + <tr> + <td> + <p>Espèce > Poids total HORS VRAC</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p> </p> + </td> + </tr> + <tr> + <td> + <p>Benthos > Poids TOTAL</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p>Somme des poids des lots "Capture > xxx > Benthos" Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1 et PMFM_FK=<PmfmId.WEIGHT_OBSERVED>)</p> + </td> + </tr> + <tr> + <td> + <p>Benthos > Poids total VRAC</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p>Lot "Capture > Vrac > Benthos" Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1 et PMFM_FK=<PmfmId.WEIGHT_OBSERVED>)</p> + </td> + </tr> + <tr> + <td> + <p>Benthos > Poids total VRAC trié</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p> </p> + </td> + </tr> + <tr> + <td> + <p>Benthos > Poids total HORS VRAC TRIE</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p>Lot "Capture > Hors Vrac > Benthos" Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1 et PMFM_FK=<PmfmId.WEIGHT_OBSERVED>)</p> + </td> + </tr> + <tr> + <td> + <p>Pièces Jointes</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Chaque pièce jointes est stockée dans MeasurementFile (MEASUREMENT_FILE avec PMFM_FK=null, OBJECT_TYPE_FK='CATCH_BATCH' et OBJECT_ID=<ID du lot de la capture>) MeasurementFile.path : chemin du fichier (copier dans un répertoire, puis stocké en relatif) MeasurementFile.name : nom MeasurementFile.comments : commentaire</p> + </td> + </tr> + </tbody> + </table> + + <h3>Captures > Espèces</h3> + + <table class='table table-bordered table-striped table-hover table-condensed'> + <thead> + <tr> + <th>Libellé de l'élément</th> + <th>Obligatoire</th> + <th>Type</th> + <th colspan="2">Correspondance en base de données</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p>Espèce > Poids total VRAC</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique.</p> + <p>Le plus souvent, ce poids sera similaire au poids VRAC trié Espèces et sera donc calculé. Cependant, si seule une fraction des espèces est observée, renseigner ici le poids d'élévation.</p> + </td> + <td colspan="2"> + <p>Lot "Capture > Vrac > Espèce" Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1 et PMFM_FK=<PmfmId.WEIGHT_OBSERVED>)</p> + </td> + </tr> + <tr> + <td> + <p>Poids inerte trié</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td colspan="2"> + <p>Lot "Capture > Vrac > Espèce > [TAXON_INERT]" Batch.referenceTaxon = [TAXON_INERT] (BATCH.REFERENCE_TAXON_FK=<ReferenceTaxonId.INERT>) Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1 et PMFM_FK=<PmfmId.WEIGHT_OBSERVED>)</p> + </td> + </tr> + <tr> + <td> + <p>Poids vivant non détaillé trié</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td colspan="2"> + <p>Lot "Capture > Vrac > Espèce > Biota" Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1 et PMFM_FK=<PmfmId.WEIGHT_OBSERVED>)</p> + </td> + </tr> + <tr> + <td> + <p>Pièces Jointes</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td colspan="2"> + <p>Chaque pièce jointes est stockée dans MeasurementFile (MEASUREMENT_FILE avec PMFM_FK=null, OBJECT_TYPE_FK='CATCH_BATCH' et OBJECT_ID=<ID du lot VRAC > ESPECES>) MeasurementFile.path : chemin du fichier (copier dans un répertoire, puis stocké en relatif) MeasurementFile.name : nom MeasurementFile.comments : commentaire</p> + </td> + </tr> + <tr> + <td> + <p>Tableau</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td colspan="2"> + <p>Chaque ligne du tableau est stockée sous la forme d'un lot (Batch) positionné soit sous le lot "Capture > Vrac > Espèce" soit sous "Capture > Hors Vrac > Espèce"</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Espèce</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td colspan="2"> + <p>stockage de l'espèce uniquement pour les lot parent Batch.referenceTaxon (BATCH.REFERENCE_TAXON_FK)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > V/HV</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste.</p> + <p>Choix entre Vrac et Hors Vrac</p> + </td> + <td colspan="2"> + <p>Vrac ou Hors Vrac : Batch.sortingMeasurement.qualitativeValue (SORTING_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.SORTED_UNSORTED>) Poids : Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1 et PMFM_FK=<PmfmId.WEIGHT_OBSERVED>)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Class. Tri</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td colspan="2"> + <p>Batch.sortingMeasurement.qualitativeValue (SORTING_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.SIZE_CATEGORY>)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Sexe</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td colspan="2"> + <p>Batch.sortingMeasurement.qualitativeValue (SORTING_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.SEX>)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Maturité</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td colspan="2"> + <p>Batch.sortingMeasurement.qualitativeValue (SORTING_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.MATURITY>)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Age</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td colspan="2"> + <p>Batch.sortingMeasurement.numericalValue (SORTING_MEASUREMENT.NUMERICAL_VALUE avec PMFM_FK=<PmfmId.AGE>)</p> + </td> + </tr> + <tr> + <td rowspan="2"> + <p>Tableau > Poids sous-échantillonné</p> + </td> + <td rowspan="2"> + <p> </p> + </td> + <td rowspan="2"> + <p>Numérique</p> + </td> + <td> + <p>En lecture</p> + </td> + <td> + <p>on parse samplingRatioText pour récupérer le poids sous-échantillonné. si absent on le calculé à partir de samplingRatio (moins précis car perte possible de précision)</p> + </td> + </tr> + <tr> + <td> + <p>En écriture</p> + </td> + <td> + <p>Si vide Batch.samplingRatio = 1</p> + <p>Sinon</p> + <p> Batch.samplingRatioText (BATCH.SAMPLING_RATIO_TEXT) concaténé à partir des chaines : "<Poids sous-échantillonné>" + "/" + "<Poids V/HV>"</p> + <p> Batch.samplingRatio (BATCH.SAMPLING_RATIO) calculé par le division : <Poids sous-échantillonné> / <Poids V/HV></p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Nombre</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td colspan="2"> + <p>Calculé à partir de la somme du nombre d'individus des lots fils (BATCH.INDIVIDUAL_COUNT avec PARENT_BATCH_FK=<ID du lot de la ligne du tableau>) (voir ci-dessous "Mensuration > Tableau")</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Commentaire</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Texte libre</p> + </td> + <td colspan="2"> + <p>Batch.comments</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Pièces Jointes</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Fichier</p> + </td> + <td colspan="2"> + <p>Chaque pièce jointes est stockée dans MeasurementFile (MEASUREMENT_FILE avec PMFM_FK=null, OBJECT_TYPE_FK='SAMPLE' et OBJECT_ID=<ID du lot de la ligne du tableau>) MeasurementFile.path : chemin du fichier (copier dans un répertoire, puis stocké en relatif ?) MeasurementFile.name : nom MeasurementFile.comments : commentaire</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > A confirmer</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Booléen (Case à cocher)</p> + </td> + <td colspan="2"> + <p> + + </p> + </td> + </tr> + <tr> + <td> + <p>Mensuration > Type de mesure</p> + </td> + <td></td> + <td></td> + <td colspan="2"> + <p>Dupliqué pour chaque lot de mensuration créé (un lot pour chaque taille saisie) Batch.sortingMeasurement.pmfm (SORTING_MEASUREMENT.PMFM_FK)</p> + </td> + </tr> + <tr> + <td> + <p>Mensuration > Pas de la classe de taille</p> + </td> + <td></td> + <td></td> + + <td colspan="2"> + <p> </p> + </td> + </tr> + <tr> + <td> + <p>Mensuration > Tableau</p> + </td> + <td></td> + <td></td> + + <td colspan="2"> + <p>Chaque ligne du tableau de mensuration est stocké sous la forme d'un lot relié au lot correspondant à la ligne parent du tableau des espèces. (BATCH avec PARENT_BATCH_FK=<ID du lot parent dans le tableau des espèces>)</p> + </td> + </tr> + <tr> + <td> + <p>Mensuration > Tableau > Classe de taille</p> + </td> + <td></td> + <td></td> + + <td colspan="2"> + <p>Batch.sortingMeasurement.numericalValue (SORTING_MEASUREMENT.NUMERICAL_VALUE avec PMFM_FK=<ID correspondant au "Type de mesure">)</p> + </td> + </tr> + <tr> + <td> + <p>Mensuration > Tableau > Nombre</p> + </td> + <td></td> + <td></td> + + <td colspan="2"> + <p>Batch.individualCount (BATCH.INDIVIDUAL_COUNT)</p> + </td> + </tr> + <tr> + <td> + <p>Mensuration > Tableau > Poids observé</p> + </td> + <td></td> + <td></td> + + <td colspan="2"> + <p>Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1)</p> + </td> + </tr> + </tbody> + </table> + + <h3>Captures > Benthos</h3> + + <table class='table table-bordered table-striped table-hover table-condensed'> + <thead> + <tr> + <th>Libellé de l'élément</th> + <th>Obligatoire</th> + <th>Type</th> + <th colspan="2">Correspondance en base de données</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p>Benthos > Poids total VRAC</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique.</p> + <p>Le plus souvent, ce poids sera similaire au poids VRAC trié Espèces et sera donc calculé. Cependant, si seule une fraction des espèces est observée, renseigner ici le poids d'élévation.</p> + </td> + <td colspan="2"> + <p>Lot "Capture > Vrac > Benthos" Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1 et PMFM_FK=<PmfmId.WEIGHT_OBSERVED>)</p> + </td> + </tr> + <tr> + <td> + <p>Poids inerte trié</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td colspan="2"> + <p>Lot "Capture > Vrac > Benthos > [TAXON_INERT]" Batch.referenceTaxon = [TAXON_INERT] (BATCH.REFERENCE_TAXON_FK=<ReferenceTaxonId.INERT>) Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1 et PMFM_FK=<PmfmId.WEIGHT_OBSERVED>)</p> + </td> + </tr> + <tr> + <td> + <p>Poids vivant non détaillé trié</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td colspan="2"> + <p>Lot "Capture > Vrac > Benthos > Biota" Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1 et PMFM_FK=<PmfmId.WEIGHT_OBSERVED>)</p> + </td> + </tr> + <tr> + <td> + <p>Pièces Jointes</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td colspan="2"> + <p>Chaque pièce jointes est stockée dans MeasurementFile (MEASUREMENT_FILE avec PMFM_FK=null, OBJECT_TYPE_FK='CATCH_BATCH' et OBJECT_ID=<ID du lot VRAC > BENTHOS>) MeasurementFile.path : chemin du fichier (copier dans un répertoire, puis stocké en relatif) MeasurementFile.name : nom MeasurementFile.comments : commentaire</p> + </td> + </tr> + <tr> + <td> + <p>Tableau</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td colspan="2"> + <p>Chaque ligne du tableau est stockée sous la forme d'un lot (Batch) positionné soit sous le lot "Capture > Vrac > Benthos" soit sous "Capture > Hors Vrac > Benthos"</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Benthos</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td colspan="2"> + <p>stockage de l'espèce uniquement pour les lot parent Batch.referenceTaxon (BATCH.REFERENCE_TAXON_FK)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > V/HV</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste.</p> + <p>Choix entre Vrac et Hors Vrac</p> + </td> + <td colspan="2"> + <p>Vrac ou Hors Vrac : Batch.sortingMeasurement.qualitativeValue (SORTING_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.SORTED_UNSORTED>) Poids : Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1 et PMFM_FK=<PmfmId.WEIGHT_OBSERVED>)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Class. Tri</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td colspan="2"> + <p>Batch.sortingMeasurement.qualitativeValue (SORTING_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.SIZE_CATEGORY>)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Sexe</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td colspan="2"> + <p>Batch.sortingMeasurement.qualitativeValue (SORTING_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.SEX>)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Maturité</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td colspan="2"> + <p>Batch.sortingMeasurement.qualitativeValue (SORTING_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.MATURITY>)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Age</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td colspan="2"> + <p>Batch.sortingMeasurement.numericalValue (SORTING_MEASUREMENT.NUMERICAL_VALUE avec PMFM_FK=<PmfmId.AGE>)</p> + </td> + </tr> + <tr> + <td rowspan="2"> + <p>Tableau > Poids sous-échantillonné</p> + </td> + <td rowspan="2"> + <p> </p> + </td> + <td rowspan="2"> + <p>Numérique</p> + </td> + <td> + <p>En lecture</p> + </td> + <td> + <p>on parse samplingRatioText pour récupérer le poids sous-échantillonné. si absent on le calculé à partir de samplingRatio (moins précis car perte possible de précision)</p> + </td> + </tr> + <tr> + <td> + <p>En écriture</p> + </td> + <td> + <p>Si vide Batch.samplingRatio = 1</p> + <p>Sinon :</p> + <p> Batch.samplingRatioText (BATCH.SAMPLING_RATIO_TEXT) concaténé à partir des chaines : "<Poids sous-échantillonné>" + "/" + "<Poids V/HV>"</p> + <p> Batch.samplingRatio (BATCH.SAMPLING_RATIO) calculé par le division : <Poids sous-échantillonné> / <Poids V/HV></p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Nombre</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td colspan="2"> + <p>Calculé à partir de la somme du nombre d'individus des lots fils (BATCH.INDIVIDUAL_COUNT avec PARENT_BATCH_FK=<ID du lot de la ligne du tableau>) (voir ci-dessous "Mensuration > Tableau")</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Commentaire</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Texte libre</p> + </td> + <td colspan="2"> + <p>Batch.comments</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Pièces Jointes</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Fichier</p> + </td> + <td colspan="2"> + <p>Chaque pièce jointes est stockée dans MeasurementFile (MEASUREMENT_FILE avec PMFM_FK=null, OBJECT_TYPE_FK='SAMPLE' et OBJECT_ID=<ID du lot de la ligne du tableau>) MeasurementFile.path : chemin du fichier (copier dans un répertoire, puis stocké en relatif) MeasurementFile.name : nom MeasurementFile.comments : commentaire</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > A confirmer</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Booléen (Case à cocher)</p> + </td> + <td colspan="2"> + <p> + + </p> + </td> + </tr> + <tr> + <td> + <p>Mensuration > Type de mesure</p> + </td> + <td></td> + <td></td> + <td colspan="2"> + <p>Dupliqué pour chaque lot de mensuration créé (un lot pour chaque taille saisie) Batch.sortingMeasurement.pmfm (SORTING_MEASUREMENT.PMFM_FK)</p> + </td> + </tr> + <tr> + <td> + <p>Mensuration > Pas de la classe de taille</p> + </td> + <td></td> + <td></td> + <td colspan="2"> + <p> </p> + </td> + </tr> + <tr> + <td> + <p>Mensuration > Tableau</p> + </td> + <td></td> + <td></td> + <td colspan="2"> + <p>Chaque ligne du tableau de mensuration est stocké sous la forme d'un lot relié au lot correspondant à la ligne parent du tableau des espèces. (BATCH avec PARENT_BATCH_FK=<ID du lot parent dans le tableau des espèces>)</p> + </td> + </tr> + <tr> + <td> + <p>Mensuration > Tableau > Classe de taille</p> + </td> + <td></td> + <td></td> + <td colspan="2"> + <p>Batch.sortingMeasurement.numericalValue (SORTING_MEASUREMENT.NUMERICAL_VALUE avec PMFM_FK=<ID correspondant au "Type de mesure">)</p> + </td> + </tr> + <tr> + <td> + <p>Mensuration > Tableau > Nombre</p> + </td> + <td></td> + <td></td> + <td colspan="2"> + <p>Batch.individualCount (BATCH.INDIVIDUAL_COUNT)</p> + </td> + </tr> + <tr> + <td> + <p>Mensuration > Tableau > Poids observé</p> + </td> + <td></td> + <td></td> + <td colspan="2"> + <p>Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1)</p> + </td> + </tr> + </tbody> + </table> + + + <h3>Captures > Macro déchets</h3> + + <table class='table table-bordered table-striped table-hover table-condensed'> + <thead> + <tr> + <th>Libellé de l'élément</th> + <th>Obligatoire</th> + <th>Type</th> + <th>Correspondance en base de données</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p>Macro-dechets > Poids total</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p>Lot "Capture > Hors Vrac > Macro déchets" Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1 et PMFM_FK=<PmfmId.WEIGHT_OBSERVED>)</p> + </td> + </tr> + <tr> + <td> + <p>Pièces Jointes</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Chaque pièce jointes est stockée dans MeasurementFile (MEASUREMENT_FILE avec PMFM_FK=null, OBJECT_TYPE_FK='CATCH_BATCH' et OBJECT_ID=<ID du lot HORS VRAC > Macro déchets>) MeasurementFile.path : chemin du fichier (copier dans un répertoire, puis stocké en relatif) MeasurementFile.name : nom MeasurementFile.comments : commentaire</p> + </td> + </tr> + <tr> + <td> + <p>Tableau</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Chaque ligne du tableau est stockée sous la forme d'un lot (Batch) positionné soit sous le lot "Capture > Vrac > Benthos" soit sous "Capture > Hors Vrac > Benthos"</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Catégorie</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Choix parmi les valeurs issues d'un référentiel</p> + </td> + <td> + <p>Batch.sortingMeasurement.qualitativeValue (SORTING_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.MARINE_LITTER_TYPE>)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Catégorie de taille</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Choix parmi les valeurs issues d'un référentiel</p> + </td> + <td> + <p>Batch.sortingMeasurement.qualitativeValue (SORTING_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.MARINE_LITTER_SIZE_CATEGORY>)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Nombre</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p>Batch.quantificationMeasurement.qualitativeValue (QUANTIFICATION_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.SIZE_CATEGORY>)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Poids</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p>Batch.individualCount</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Commentaire</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Texte libre</p> + </td> + <td> + <p>Batch.comments</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Pièces Jointes</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Fichier</p> + </td> + <td> + <p>Chaque pièce jointes est stockée dans MeasurementFile (MEASUREMENT_FILE avec PMFM_FK=null, OBJECT_TYPE_FK='SAMPLE' et OBJECT_ID=<ID du lot de la ligne du tableau>) MeasurementFile.path : chemin du fichier (copier dans un répertoire, puis stocké en relatif) MeasurementFile.name : nom MeasurementFile.comments : commentaire</p> + </td> + </tr> + </tbody> + </table> + + <h3>Captures > Captures accidentelles</h3> + + <table class='table table-bordered table-striped table-hover table-condensed'> + <thead> + <tr> + <th>Libellé de l'élément</th> + <th>Obligatoire</th> + <th>Type</th> + <th>Correspondance en base de données</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p>Tableau</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Chaque ligne du tableau est stockée sous la forme d'un prélèvement (Sample).</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Espèce</p> + </td> + <td> + <p>X</p> + </td> + <td> + <p>Liste.</p> + <p>Choix parmi les valeurs issues d'un référentiel</p> + </td> + <td> + <p>Sample.referenceTaxon</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Sexe</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Sample.sampleMeasurements.qualitativeValue (SAMPLE_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.SEX>)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Poids (kg)</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p>Sample.sampleMeasurements.numericalValue (SAMPLE_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.WEIGHT_OBSERVED>)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Taille</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p>Sample.sampleMeasurements.numericalValue (SAMPLE_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.>)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Classe de taille</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste.</p> + <p>Choix parmi les caractéristiques du protocole</p> + </td> + <td> + <p>Sample.sampleMeasurements.qualitativeValue (SAMPLE_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.>)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Mort ou vivant</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste.</p> + <p>Choix parmi les valeurs issues d'un référentiel</p> + </td> + <td> + <p>Sample.sampleMeasurements.qualitativeValue (SAMPLE_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.>)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Autres caractéristiques</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste</p> + <p>Choix parmi les caractéristiques existantes en base</p> + </td> + <td> + <p>Tableau avec une entrée dans Sample.sampleMeasurements pour le pmfm choisi</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Commentaire</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Texte libre</p> + </td> + <td> + <p>Batch.comments</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Pièces Jointes</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Fichier</p> + </td> + <td> + <p>Chaque pièce jointes est stockée dans MeasurementFile (MEASUREMENT_FILE avec PMFM_FK=null, OBJECT_TYPE_FK='SAMPLE' et OBJECT_ID=<ID du lot de la ligne du tableau>) MeasurementFile.path : chemin du fichier (copier dans un répertoire, puis stocké en relatif) MeasurementFile.name : nom MeasurementFile.comments : commentaire</p> + </td> + </tr> + </tbody> + </table> + + <h3>Captures > Données individuelles</h3> + + <table class='table table-bordered table-striped table-hover table-condensed'> + <thead> + <tr> + <th>Libellé de l'élément</th> + <th>Obligatoire</th> + <th>Type</th> + <th>Correspondance en base de données</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p>Tableau</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Chaque ligne du tableau est stockée sous la forme d'un prélèvement (Sample).</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Espèce</p> + </td> + <td> + <p>X</p> + </td> + <td> + <p>Liste.</p> + <p>Choix parmi les valeurs issues d'un référentiel</p> + </td> + <td> + <p>Sample.referenceTaxon</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Poids (kg)</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p>Sample.sampleMeasurements.numericalValue (SAMPLE_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.WEIGHT_OBSERVED>)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Taille</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Numérique</p> + </td> + <td> + <p>Sample.sampleMeasurements.numericalValue (SAMPLE_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.SEX>)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Classe de taille</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste.</p> + <p>Choix parmi les caractéristiques du protocole</p> + </td> + <td> + <p>Sample.sampleMeasurements.qualitativeValue (SAMPLE_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=(celui choisi))</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Mort ou vivant</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste.</p> + <p>Choix parmi les valeurs issues d'un référentiel</p> + </td> + <td> + <p>Sample.sampleMeasurements.qualitativeValue (SAMPLE_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.DEAD_OR_ALIVE>)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Autres caractéristiques</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Liste</p> + <p>Choix parmi les caractéristiques existantes en base</p> + </td> + <td> + <p>Tableau avec une entrée dans Sample.sampleMeasurements pour le pmfm choisi</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Code prélèvement pièce calcifiée</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Sample.sampleMeasurements.alphanumericalValue (SAMPLE_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.OTOLITHE_ID>)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Code prélèvement autre</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Sample.sampleMeasurements.alphanumericalValue (SAMPLE_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.SAMPLE_ID>)</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Commentaire</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Texte libre</p> + </td> + <td> + <p>Batch.comments</p> + </td> + </tr> + <tr> + <td> + <p>Tableau > Pièces Jointes</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Fichier</p> + </td> + <td> + <p>Chaque pièce jointes est stockée dans MeasurementFile (MEASUREMENT_FILE avec PMFM_FK=null, OBJECT_TYPE_FK='SAMPLE' et OBJECT_ID=<ID du lot de la ligne du tableau>) MeasurementFile.path : chemin du fichier (copier dans un répertoire, puis stocké en relatif) MeasurementFile.name : nom MeasurementFile.comments : commentaire</p> + </td> + </tr> + </tbody> + </table> + + </div> +</body> \ No newline at end of file Modified: trunk/tutti-ui-swing/src/main/help/fr/genericExport.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/fr/genericExport.html 2014-01-20 13:54:38 UTC (rev 1512) +++ trunk/tutti-ui-swing/src/main/help/fr/genericExport.html 2014-01-20 15:12:33 UTC (rev 1513) @@ -259,7 +259,7 @@ des colonnes du tableau avanat <i>Autres caractéristiques</i></p> <h2>Fichier marineLitter.csv</h2> <p> - Ce fichier contient les données de <strong>Macro dechêts</strong>. + Ce fichier contient les données de <strong>Macro déchets</strong>. </p> <h3>Entête du fichier</h3> <pre> @@ -374,8 +374,8 @@ <tr><td>Poids_Total_Benthos_Inerte_Trie_Calcule</td><td>Opération > Capture > Benthos</td><td>Poids total interte trié calculé</td><td>(4)</td></tr> <tr><td>Poids_Total_Benthos_Vivant_non_detaille_trie</td><td>Opération > Capture > Benthos</td><td>Poids total non détaillé trié</td><td>(3)</td></tr> <tr><td>Poids_Total_Benthos_Vivant_non_detaille_trie_Calcule</td><td>Opération > Capture > Benthos</td><td>Poids total non détaillé trié calculé</td><td>(4)</td></tr> - <tr><td>Poids_Total_Macro_Dechet</td><td>Opération > Capture > Macro déchêt</td><td>Poids total</td><td>(3)</td></tr> - <tr><td>Poids_Total_Macro_Dechet_Calcule</td><td>Opération > Capture > Macro déchêt</td><td>Poids total calculé</td><td>(4)</td></tr> + <tr><td>Poids_Total_Macro_Dechet</td><td>Opération > Capture > Macro déchet</td><td>Poids total</td><td>(3)</td></tr> + <tr><td>Poids_Total_Macro_Dechet_Calcule</td><td>Opération > Capture > Macro déchet</td><td>Poids total calculé</td><td>(4)</td></tr> </tbody> </table> <p><strong>(1)</strong> : <strong>NA</strong> si pas de valeur</p> Modified: trunk/tutti-ui-swing/src/main/help/fr/index.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/fr/index.html 2014-01-20 13:54:38 UTC (rev 1512) +++ trunk/tutti-ui-swing/src/main/help/fr/index.html 2014-01-20 15:12:33 UTC (rev 1513) @@ -147,6 +147,7 @@ référentiels temporaires</a></li> <li><a href="report.html">Générer des rapports</a></li> <li><a href="genericExport.html">Export générique</a></li> + <li><a href="dbMapping.html">Mapping des écrans / base de données</a></li> </ul> </li> <li> Modified: trunk/tutti-ui-swing/src/main/help/fr/navbar.js =================================================================== --- trunk/tutti-ui-swing/src/main/help/fr/navbar.js 2014-01-20 13:54:38 UTC (rev 1512) +++ trunk/tutti-ui-swing/src/main/help/fr/navbar.js 2014-01-20 15:12:33 UTC (rev 1513) @@ -100,6 +100,7 @@ document.write(' <li><a href="manageTemporaryReferential.html">Gestionnaire de référentiels temporaires</a></li>'); document.write(' <li><a href="report.html">Générer des rapports</a></li>'); document.write(' <li><a href="genericExport.html">Export générique</a></li>'); +document.write(' <li><a href="dbMapping.html">Mapping des écrans / base de données</a></li>'); document.write(' </ul>'); document.write(' </li>'); document.write(' <li class="dropdown-submenu">');