diff --git a/admin/generation-documents.md b/admin/generation-documents.md index 238cdcd..677574e 100644 --- a/admin/generation-documents.md +++ b/admin/generation-documents.md @@ -1,8 +1,46 @@ # Génération de documents +L'administrateur fonctionnel prépare la génération des documents: + + + +## 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]: -#### 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