Sélection d'objet dans Mediboard
Imprimer

Sélecteurs d'objets

Les sélecteurs d'objets de Mediboard sont des boîtes de dialogues permettant, comme leur nom l'indique de déclencher la sélection d'un objet, dont le type varie avec le sélecteur, par l'utilisateur. L'utilisation la plus courante le choix d'un objet dans le formulaire d'un autre objet, par exemple le choix d'un Patient pour une consultation, une Intervention ou un Séjour.

Fonctionnement classique

Exemple de la sélection d'un Patient pour planifier une consultation :

  1. l'utilisateur clique sur un bouton Choisir un patient
  2. Javascript initialise un sélecteur en fournissant les champ ciblés dans le formulaire de la consultation
  3. Javascript ouvre la boite de dialogue
  4. l'utilisateur valide son choix après une recherche éventuelle
  5. Javascript inscrit l'identifiant du Patient dans le champ de formulaire cible (ainsi que la vue utilisateur de cet objet dans un emplacement visible par l'utilisateur)

Liste des sélecteurs

Chaque module peut proposer un certain nombre de sélecteur, chacun d'entre eux permettant la sélection d'un type d'objet précis.

  • module Module Planning chir?
    • ccam_selector.js : codes CCAM
    • cim10_selector.js : codes CIM10
    • plage_selector.js : plages opératoires
    • protocole_selector.js : protocoles

Création d'un fichier javascript permettant de gérer un sélecteur

Exemple d'-+object_selector.js+- :

Ce fichier est constitué:

  • de la déclaration des variables ainsi que des options d'affichage

var ObjectSelector = {
  sForm     : null,   // Le nom du formulaire
  sId       : null,   // Le nom du champ identifiant
  sView     : null,   // Le nom du champ vue
  sClass    : null,   // Le nom du champ Classe
  onlyclass : null,

  options : {
    width : 600,      // largeur de la fenetre
    height: 300       // hauteur de la fenetre
  },

  • de la fonction pop qui ouvre la fenêtre d'affichage du sélecteur

pop: function() {
    var oForm = document[this.sForm];
    
    var url = new Url();
    // Appel au fichier object_selector.php qui se trouve dans le module ((Module Administration))
    url.setModuleAction("system", "object_selector");
    // onlyclass permet de définir si la classe est prédéfinie et non modifiable
    url.addParam("onlyclass", this.onlyclass);
    // permet de définir la classe de l'objet
    url.addParam("selClass", oForm[this.sClass].value);
    // Ouverture de la boite de dialogue
    url.popup(this.options.width, this.options.height, "Object Selector");
  },

  • de la fonction set qui sauvegarde la valeur choisie par l'utilisateur

set: function(oObject) {
    var oForm = document[this.sForm];
    // Les valeurs sont sauvegardées dans les variables 
    // afin d'être retransmises et affichées dans le tpl.  
    if (oForm[this.sView]) {
      oForm[this.sView].value = oObject.view;
    }
    oForm[this.sClass].value = oObject.objClass;
    // onChange sur l'id 
    Form.Element.setValue(oForm[this.sId], oObject.id);
  }

Utilisation des sélecteurs

  • Appel au script du sélecteur

Au debut d'un fichier tpl dans lequel on doit utiliser le sélecteur, il faut inclure le script adapté

// Exemple pour object_selector
// module: nom du module dans lequel est le script
// script: nom du fichier js
{{mb_include_script module="system" script="object_selector"}}

  • Appel de la fonction

<button type="button" class="search" oncliiick="ObjectSelector.init()">
Chercher un objet
</button>

ObjectSelector.init = function(){ 
  this.sForm = "editPermObj";
  this.sId = "object_id";        
  this.sView = "_object_view";
  this.sClass = "object_class";
  this.onlyclass = "false";
  this.pop();
}


Dernièrement modifié par lryo10166 points  , Basé sur le travail de mytto14499 points  et sully599 points  .
Modifiée dernièrement le mardi 17 de juillet, 2007 09h53m55.

Sponsors privilégiés

Mediboard project