Procédure pour exploiter une relation 1-1 dans des formulaires.
Introduction
Cet article vise à expliquer comment exploiter l’interface des relations entre varsets d’Epicraft pour créer une relation de type un 1-1 dans une application Voozanoo 4.
Dans cet article, tous les dataqueries sont créés via des ressources XML. Un article sur le même sujet mais utilisant l’interface des sources de données pour la création des dataqueries existe ici.
Pré-requis
Voici les prérequis :
- Un projet dans EpiCraft associé à un projet Voozanoo 4.
- Dans ce projet :
- Une page Patient associée au varset
patient
. - Une page Décès associée au varset
deces
.
- Une page Patient associée au varset
Objectif
L’objectif est de créer une relation 1-1 entre patient
et deces
(un patient au maximum un décès) et de l’exploiter avec :
- Sur la page Patient :
- un bouton pour :
- soit aller sur la fiche décès existante ;
- soit ajouter une fiche décès pour le patient.
- un bouton pour :
- Sur la page Décès :
- l’affichage de certains champ du patient ;
- un bouton pour aller vers le patient.
Etape 1 : Créer la relation dans EpiCraft
Créer la relation dans EpiCraft via l’interface dédiée puis publier les actions :
Juste pour information, ceci automatiquement crée une nouvelle variable dans le varset deces
:
Etape 2 : Exploiter la relation dans les formulaires
Etape 2.1 : Afficher un bouton d’ajout ou de consultation de la la fiche décès sur la page Patient
Créer un dataquery pour récupérer la potentielle unique fiche décès du patient
Premièrement, créer un dataquery sur la page patient pour récupérer la potentielle unique fiche décès du patient (à l’aide d’une propriété personnalisée form.dataquery) :
Ainsi, le dataset deces
contient une ligne si le patient a une fiche décès et aucune s’il n’en a pas.
Créer le bouton
Créer un bouton à l’aide d’un bulk dans EpiCraft :
Ici, la valeur de paramètre sid
doit encore être celui du formulaire Décès (la page de destination).
On note que :
- on passe un
id_patient
en paramètre pour qu’il soit utilisé dans la page Décès (en cas de création de fiche) ; - on passe aussi l’
id_data
de la fiche décès si elle existe pour arriver sur la bonne fiche décès (en cas d’édition de la fiche).
Récupérer le paramètre passé pour lier la future fiche décès à son patient
Deuxièmement, récupérer le paramètre passé pour lier la future fiche décès à son patient :
D’abord avec une propriété personnalisée form.dataquery.main.column_simple sur la page décès :
Ensuite avec un propriété personnalisée form.dataquery.main.variable toujours sur la page décès :
Ceci va alimenter automatiquement la colonne deces.id_patient
avec le paramètre envoyé par le bouton.
Etape 2.2 : Afficher des champs du patient sur la page Décès
Créer un dataquery pour récupérer les champs du patient
Premièrement, il faut créer un dataquery pour récupérer les informations sur le patient sur la page décès :
On note ici que la variable id_patient
peut provenir de la base de données ou bien d’un paramètre.
Disposer les champs dans la page
Deuxièmement, afficher les champs du patient à l’aide d’un bulk dans EpiCraft :
Etape 2.4 : Afficher un bouton vers le patient sur la page Décès
Ici, on suppose que le dataquery créé à l’étape 2.2 existe déjà (on a besoin de son id_data
).
Il suffit alors de créer un bouton à l’aide d’un bulk :
Ici, la valeur de paramètre sid
doit encore être celui du formulaire Patient (la page de destination).
On note que l’on passe un id_data
en paramètre pour arriver sur le bon patient.