ajouts variables suite réunion 22/09

This commit is contained in:
Julien Fastré 2021-09-23 11:36:42 +02:00
parent cb47265e16
commit 9f6bd99e13

View File

@ -1,8 +1,46 @@
# Génération de documents
L'administrateur fonctionnel prépare la génération des documents:
<!--
1. A partir d'un document Word (format docx), un document est préparé par
1. Une première étape est un formulaire qui demande des précisions à l'utilisateur.
Il s'agit, par exemple, d'indiquer la localisation précise pour la génération du document, d'indiquer un "usager principal" pour le document, etc.
La plupart de ces informations peuvent être configurées par
Si aucune précision n'est nécessaire, cette étape n'est pas affichée à l'utilisateur.
-->
## Parcours des utilisateurs
Lors de la génération de document, les utilisateurs parcourrent trois étapes:
1. un formulaire, optionnel, demande des précisions à l'utilisateur.
Il peut s'agir, par exemple, de préciser les destinataires du document, de choisir un signataire, etc.
Ce formulaire est soit:
* natif au nœud. Dans ce cas, il apparait systématiquement ou dans certaines conditions;
* configuré par l'admnistrateur fonctionnel parmi des options disponibles;
2. le document est effectivement généré en arrière-plan. Cela peut nécessiter éventuellement quelques minutes;
3. le document est ouvert pour édition dans un éditeur en ligne. L'enregistrement est automatique. Lorsqu'ils ferment l'éditeur **depuis l'interface de l'éditeur**, l'utilisateur est redirigé vers la page principale, généralement la page de génération du document.
Notez que, pour que la redirection soit effective, l'utilisateur doit fermer **dans l'interface de l'éditeur**: fermer la fenêtre ou l'onglet fait perdre les informations de redirection - cependant, le document est normalement enregistré.
## Syntaxe de génération d'un document
Les documents sont préparés par l'administrateur fonctionnel.
Aux endroits où cela est nécessaire, l'administrateur indique un texte qui débute par `${` et se termine par `}`. Ce texte, depuis le signe `$` initial jusqu'à la balise fermante finale (`}`) est remplacé par le texte contenu dans la variable.
## Principes liés au variables
### Nommage de variables
@ -28,7 +66,7 @@ Pour nommer les variables et les concaténer, nous utilisons la syntaxe camelcas
[^camelcase]: <https://fr.wikipedia.org/wiki/Camel_case>
#### Application aux variable date
#### Exemple: application aux objets "date"
Les dates sont disponibles dans deux formats:
@ -68,18 +106,40 @@ type=Médecin
job=Assistant social
```
### Cas où une variable est optionnelle
Lorsqu'une variable est optionnelle, si sa valeur est inconnue ou vide, alors tout ses champs apparaissent avec une chaine de caractère vide.
## Variables disponibles par document
Lorsqu'une variable n'est pas de type "texte", ses champs sont complétés par ceux décrits [dans la section suivante](#sec:gendoc-champs-objets).
### Pour chaque document
#### Paramètres pour l'administrateur fonctionnel
Les administrateurs fonctionnels peuvent activer les paramètres suivants:
* un champ "lieu", qui permettra de choisir parmi les lieux pré-enregistrés. Le lieu pré-sélectionné sera celui choisi par l'utilisateur;
#### Variables
* `creator`: (User) le créateur;
* `createdAt` (Date): la date de création;
* `locate`: le lieu sélectionné par le créateur, au moment de la génération;
* `locate`: le lieu sélectionné par le créateur, au moment de la génération **ou** celui choisi par l'étape 1.
### Document générés pour un parcours
#### Paramètres pour l'administrateur fonctionnel
Les administrateurs fonctionnels peuvent activer les paramètres suivants:
* un champ "usager 1", qui permet ensuite à l'utilisateur de choisir un usager parmi ceux concernés par le parcours;
* un champ "usager 2", qui permet aux utilisateurs de choisir un deuxième usager parmis ceux concernés par le parcours;
* un champ "usager principal du parcours", qui permet, cette fois, de choisir parmi les usagers concernés par le parcours, mais également parmi les interlocuteurs privilégiés.
#### Variables
Le document hérite de toutes les variables disponibles pour chaque document, à laquelle vient s'ajouter la variable suivante et tout ses champs:
* `courseId` (texte): l'identifiant du parcours
@ -90,28 +150,36 @@ Le document hérite de toutes les variables disponibles pour chaque document, à
* `courseRef`: (User): le référent du parcours;
* `courseLocation` (Adresse): l'adresse de localisation du parcours
* `coursePersonLocation` (Person): l'utilisateur qui localise le parcours (s'il y en a un, peut être vide);
* `courseTitulaire1` (Person): le premier titulaire du parcours, déterminé comme étant le plus âgé parmi les personnes qui sont titulaires d'un ménage;
* `courseTitulaire2` (Person): le second titulaire du parcours, déterminé comme étant le deuxième plus âgé parmi les personnes qui sont titulaires d'un ménage;
* `coursePerson1` (Person): le premier usager du parcours, choisi par l'étape 1;
* `coursePerson1Household` (Ménage): les informations du ménage de la personne 1;
* `coursePerson2` (Person): le premier usager du parcours, choisi par l'étape 2;
* `coursePerson2Household` (Ménage): les informations du ménage de la personne 2;
* `courseMainPerson` (Person): l'usager principal du document;
* `courseMainPersonHousehold` (Ménage): les informations du ménage de l'usager "principal du document";
* `courseEmergency` (texte): la chaine "Urgent" si le parcours est urgent, chaine vide sinon;
* `courseConfidential` (texte): "Confidentiel" si le parcours est confidentiel, chaine vide sinon;
* `courseOrigin` (texte): l'appellation de l'origine du parcours;
* `courseClosingMotive` (texte): l'appellation du motif de clotûre du parcours;
Les titulaires 1 et 2 sont déterminés par leur âge de cette manière:
1. Parmi toutes les personnes associées au parcours au moment de la génération du document, le logiciel sélectionne tout ceux qui sont actuellement titulaire d'un ménage;
2. Les deux plus âgés sont choisis dans cette liste. Le plus âgé sera le `titulaire1`, et le suivant sera le `titulaire2`
Par ailleurs, les listes suivantes sont disponibles:
* `coursePersons` (liste de Person): une liste des personnes du parcours
Par ailleurs, pour chaque personne membre de la liste, deux champs sont ajoutés et indiquent le lien de parenté avec le titulaire 1 et le titulaire 2 (à condition que ce lien soit effectivement renseigné).
Par ailleurs, pour chaque personne présente dans cette liste, les deux variables suivantes sont ajoutées:
* `familylink1` (texte): un lien de parenté avec l'usager 1, si renseigné;
* `familylink2` (texte): un lien de parenté avec l'usager 2, si renseigné;
* `familylinkmain` (texte): un lien de parenté avec l'usager principal du document, si renseigné;
* `courseRequestor` (liste de Person ou ThirdParty): le demandeur. Peut être vide.
* `courseResources` (liste de Person ou ThirdParty): une liste des interlocuteurs privilégiés
* `courseSocialIssues` (liste de SocialIssues): la liste des problématiques d'accompagnement
::: { .info }
Les objets "Ménage" contiennent les liste des membres du ménage associés aux `person1`, `person2` ou `mainPerson`.
:::
Exemple d'utilisation:
```
@ -201,6 +269,15 @@ ${courseStartDateShort} // 15/01/2021
* `mother` (Person): les champs de la mère de la personne, si elle est renseignée dans le module "filiation";
* `father` (Person): les champs du père de la personne, s'il est renseigné dans le module "filiation";
::: { .vendee }
* `numCaf` (texte): le numéro CAF;
* `numSS` (texte): le numéro de sécurité sociale;
* `numMSA` (texte): le numéro MSA;
* `doctor` (ThirdParty): le médecin traitant;
* `situationProf` (texte): la situation professionnelle;
* `niveauEtude` (texte): le niveau d''étude;
:::
Exemple d'utilisation:
```
@ -213,6 +290,23 @@ Téléphone du père: ${personFatherFirstphonenumber} // 01 23 45 67 89
```
### Household
Les informations sont les suivantes:
* `childToBorn` (texte): contient "Oui" si un enfant est à naitre, ou "Non" si aucun enfant n'est à naitre;
* `childToBornDate` (Date): contient la date à laquelle un enfant est à naitre;
* `familyComposition` (texte): la composition familiale, valable au moment de la génération;
* `nbOfChild` (texte): le nombre d'enfants du ménage, au moment de la génération du document.
Les listes suivantes sont associées au ménage:
* `members` (Liste de Person): la liste de tous les membres du ménage;
* `membersAtPositionx`: la list des membres à la position `x`, où `x` est l'identifiant de la position. Cet identifiant est visualisable dans l'interface d'administration.
Ainsi, si les "enfants hors ménage" est la position `3`, alors la liste des usagers "Enfant hors ménage" est présente sous la variable `membersAtPosition3`.
### ThirdParty
TODO