Procédure pour exploiter une relation 1-1 dans des formulaires avec le système de source de données.

Edit me

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 l’interface des sources de données d’Epicraft. Un article sur le même sujet mais utilisant des ressources XML 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.

Objectif

L’objectif est de créer une relation 1-1 entre patient et deces (un patient a 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.
  • Sur la page Décès :
    • l’affichage de certains champs du patient ;
    • un bouton pour aller vers le patient.

Schéma cible Patient-Décès

Etape 1 : Créer la relation dans Epicraft

Créer la relation dans Epicraft via l’interface dédiée puis publier les actions :

Relation Patient-Décès dans Epicraft

Pour information, cela ajoute automatiquement une nouvelle variable dans le varset deces :

<var uid="1" id="id_patient" type="fkey_varset" default_label="Patient" editor_relation_id="avscxhrerm1570873788169">
  <fkey_varset varset_name="patient" max_occurence="1"/>
</var>

Etape 2 : Exploiter la relation dans les formulaires

Etape 2.1 : Afficher un bouton d’ajout ou de consultation de la fiche décès sur la page Patient

Créer une source de données pour récupérer la potentielle unique fiche décès du patient

Premièrement, créer une source de données sur la page patient pour récupérer la potentielle unique fiche décès du patient.

  1. Page Patient > Sources de données icon sources de données
  2. Ajout > Source de données basée sur une relation > Relation Un patient peut décéder une fois
  3. Libellé : Get the patient’s death information
  4. Nom technique : deces qui sera utilisé par le tableau sur la page
  5. Ajouter les champs id_patient et date.

Ainsi, le dataset deces contient une ligne si le patient a une fiche décès et aucune s’il n’en a pas.

Ajout dataquery deces dans formulaire patient Epicraft

Créer le bouton

Ajouter le composant bouton sur la page. button icon

Donner lui un libellé et la redirection “Aller à la page…” puis sélectionner la page de destination Décès. Vous remarquerez que le fait d’avoir une relation entre ces deux varsets (Etape 1) fait apparaître un nouveau menu déroulant. Ici, nous allons sélectionner la relation Patient - Décès.

exploit relationship

Envoyer les bons paramètres

Il existe désormais deux paramètre pour ce bouton.

un parametre

En ouvrant les paramètres du bouton, nous pouvons voir que la valeur du sys_id du patient cible la variable id_patient du décès. Cette valeur a pour alias id_patient.

passage parametre

On note que l’on passe id_patient en paramètre pour qu’il soit utilisé dans la page Décès (en cas de création de fiche).

On ajoute également la valeur sys_id de la fiche décès du patient, afin d’arriver sur la bonne fiche patient, si celle existe. Le paramètre sys_id cible la main condition de la source de données principale de la page Décès, pour arriver directement sur le bon patient.

Etape 2.2 : Afficher des champs du patient sur la page Décès

Créer une source de données pour récupérer les champs du patient

Premièrement, il faut créer une source de données pour récupérer les informations du patient sur la page décès :

  1. Page Décès > Sources de données icon sources de données
  2. Ajout > Source de données basée sur une relation > Relation Un patient peut décéder une fois
  3. Libellé : Get patient’s information
  4. Nom technique : patient_info qui sera utilisé par le tableau sur la page
  5. Ajouter les champs nom et prenom.
  6. Mettre 1 comme Intervalle sous la colonne contrôle.

Ajout dataquery patient dans formulaire deces Epicraft

Disposer les champs dans la page

Il est maintenant possible d’afficher les champs du patient sur la page Décès. Dans les images d’exemple, un groupe a été ajouté pour distinguer les infos du patient.

  1. Ajouter un champ texte.
  2. Il y a deux sources de données pour cette page, il est maintenant possible de choisir la source de données d’une variable. Sélectionner la source de données que nous venons de créer, pour la variable, patient_info. selectionner un autre varset
  3. Sélectionner la variable nom choose the var nom
  4. Répeter ces mêmes actions pour afficher le prenom du patient.

Il est également possible d’afficher le nom et prénom du patient avec le composant Texte de la manière suivante :

show with static text

Etape 2.3 : Afficher un bouton vers le patient sur la page Décès

La source de données de l’étape 2.2 est nécessaire, afin de récupérer le sys_id du patient.

Il suffit alors d’ajouter le composant bouton et avec la redirection “Aller à la page…” puis sélectionner la page de destination Patient.

Ensuite, il faut choisir la relation Un patient peut décéder une fois dans “Exploitation d’une relation existante”.

relation

Il existe désormais un paramètre pour ce bouton.

un parametre_2

En ouvrant les paramètres du bouton, nous pouvons voir que la valeur d’id_patient de la page Décès cible la main condition de la source de données principale de la page patient. Cette valeur a pour alias sys_id.

retour a la page patient

Cette condition sys_id sera traité dans la page patient pour arriver sur le bon patient.