Outils pour utilisateurs

Outils du site


fr:manuals:xmlforms:widgets

Items disponibles pour les formulaires patient

  • Les formulaires sont constitués d'items.
  • Les items de formulaires peuvent correspondre à :
    • des éléments graphiques de présentation (item formulaires ou regroupement d'items)
    • des éléments graphiques de saisie (cases à cocher, zones de texte…)
  • Les formulaires sont codés dans un ou plusieurs fichiers XML dont la structure doit répondre à des règles précises.
  • Il est nécessaire de définir au moins un item formulaire (cf infra).
  • Les valeurs de ces items sont automatiquement sauvegardées en base de données pour les restituer sans code supplémentaire.

Créer des formulaire : présentation du code XML

  • Les items de formulaire peuvent être déclarés avec ou sans l'utilisation des attributs XML.
  • La déclaration du type form n'est pas obligatoire.
  • Vous pouvez inclure des sous-formulaires au sein de vos formulaires en utilisant l'inclusion de fichier (tag file).
  • Il est possible d'associer des scripts aux formulaires.
  <!-- Déclaration d'un formulaire sans utilisation des attributs -->
  <MedForm>
    <type>form</type>
    <name>Unique::Identifiant</name>
    [...]
  </MedForm>
 
  <!-- Déclaration d'un formulaire avec utilisation des attributs -->
  <MedForm type="form" name="Unique::Identifiant">
    [...]
  </MedForm>
 
  <!-- Inclusion de fichier XML -->
  <file>__subforms__/machin/truc/central.xml</file>
 
  <!-- Inclusion de fichier de script -->
  <file type="script" name="onload">./scripts/xx/script.js</file>
  <!-- Déclaration d'items sans utilisation des attributs -->
  <Item>
    <type>check</type>
    <name>Unique::Identifiant</name>
    [...]
  </Item>
 
  <!-- Déclaration d'items avec utilisation des attributs -->
  <Item type="check" name="Unique::Identifiant">
    [...]
  </Item>

Attribuer les identifiants aux items

  • Tous les formulaires et items de formulaires doivent être identifiés par un identifiant unique.
  • Ces identifiants doivent être persistants dans le temps (dans le cas de mise à jour du formulaire). Ils sont utilisés pour le stockage des données dans la base de données.
  • Il est préférable, pour éviter les conflits de nommage, d'utiliser des espaces de nommage. Les espaces de nommage peuvent être séparés par : '::', ':', '.', '__'.

Créer des formulaire : utiliser le designer de Qt

  • Vous pouvez utiliser le designer de Qt pour créer des formulaires de présentation complexe.
  • Il vous faudra alors deux fichiers (au moins), le descripteur XML et l'interface (fichier *.ui créé par le designer).
  • Pour plus d'information sur cette fonctionnalité, reportez-vous à la création d'item formulaire.

Les options génériques

Code XML

  • Tag: <options></options>
  • Les options doivent être séparées par un point-virgule ;

Options communes

  • labelonleft : le libellé de l'item sera intégré à gauche de l'item dans le formulaire (valeur par défaut)
  • labelontop : le libellé de l'item sera intégré au-dessus de l'item dans le formulaire
  • compact : vues compactes (limite l'espace utilisé par l'item)
  • notprintable : par défaut tous les items seront inclus lors d'une demande d'impression. Utilisez cette option pour faire disparaître de l'impression un item (ou plusieurs si il s'agit d'un conteneur).

Les regroupements (formulaires, pages et groupes)

Les items formulaire

  • Les items formulaire définissent les différents formulaires patient.
  • Ils peuvent contenir plusieurs items voire même des items formulaires (formulaires imbriqués).
  • Il est indispensable de définir au moins un item formulaire.
  • Vous pouvez définir la hauteur en pixel dans la vue des formulaire (l'arborescence des différents formulaires) pour les items à la racine de l'arborescence avec rootitemextraheight. Vous pouvez utilisez ce tag dans le tag FreeMedForms pour qu'il s'applique à tous les formulaires racine. La hauteur par défaut est 10. Vous pouvez mettre en évidence certains formulaires en indiquant une valeur supérieure.
  <MedForm name="GP::Basic::IdentityForm" uifilename="v0.6.2+">
    <label lang="xx">Identity</label>
    <label lang="fr">Identité</label>
    <options>unique</options>
   <icon>__theme__/identity.png</icon>
  </MedForm>
  • Options disponibles :
    • Vous pouvez définir le nombre de colonnes à l'aide du tag column
      <column>2</column>
    • unique : un seul enregistrement dans la base de données. Il n'est pas possible de créer plusieurs épisodes pour ce formulaire (identité par exemple).
    • noepisode : aucun enregistrement ne sera créé dans la base de données pour les items et sous-items du formulaire. Vous pouvez utiliser cet option pour regrouper dans l'arborescence plusieurs items formulaire (exemple page médicaments du formulaire médecine générale).
    • HideHeaderOnUniqueEpisode (0.8.0) : cache l'entête du formulaire si le formulaire est limité à un épisode (voir aussi l'option : unique)
    • UseFormNameAsNameSpace (0.6.2), vous pouvez simplifier l'écriture de vos formulaires en attribuant à tous les items du formulaire un espace de nommage correspondant au nom du formulaire. Par exemple, le nom complet de l'item One sera Form::Test::BlaBla::One et non One.
        <MedForm name="Form::Test::BlaBla">
         <options>UseFormNameAsNameSpace</options>
         <Item name="One>...</Item>
       </MedForm>

Les pages

code en cours

Les groupes

  • Vous pouvez regrouper des items pour améliorer la lisibilité de vos formulaires. 
  • Les groupes possèdent une entête et un encadrement pour ses sous-items.
  • Vous pouvez définir des groupes spécifiques aux pays à l'aide du tag country suivi de la liste des codes ISO des pays séparés par un point-virgule. Par exemple, pour créer un groupe spécifique à la France, le code serait <country>FR</country>.
  • Options (non implémenté) :
    • Vous pouvez définir le nombre de colonnes à l'aide du tag column
      <column>2</column>
    • Grid : utilise une grille pour ranger les éléments
    • FormGrid : utilise une grille formulaire pour ranger les éléments (non disponible)
    • NoGrid : les éléments sont affichés tel quel les uns à la suite des autres (non disponible)
    • DontPrintTitle : n'ajoute pas le titre du groupe au moment de l'impression (à partir de la v0.6.2)
    • DontPrintEmptyValues : n'imprime pas si le contenu du groupe est vide
    • checkable : ajoute une case à cocher au groupe
    • collapsible : le group devient alors 'pliant'/'dépliant'
  • Exemple complet sur le git du projet
  <Item type="group" name="sampleGroup">
    <country>FR</country>
    <option>compact</option>
    <label>Intitulé</label>
    [... Sous-items ...]
  </Item>

Les groupes extensibles avec bouton 'details'

  • Vous pouvez regrouper des items dans des groupes ou à l'intérieur de groupes “extensible”.
  • Ces items possèdent un libellé, un libellé supplémentaire, un bouton permettant de cacher/montrer le contenu du groupe et son contenu.
  • Pour définir le contenu de ces items, vous devez obligatoirement utiliser des formulaires d'interface QtUI (fichiers *.ui).
  • Ces items peuvent être inclus dans les vues en utilisant des “layouts”.
  • Options :
    • SummaryFontBold : le libellé est présenté en gras (par défaut il ne l'est pas)
    • DontPrintEmptyValues : n'imprime pas si le contenu du groupe est vide
    • expanded : ajoute une case à cocher au groupe
  <Item type="detailswidget" name="sampleGroup" uifilename="./ui/xx/file.ui">
    <uilink label="" widget="" layout="identityLayout"/>
    <option>SummaryFontBold;expanded</option>
    <label lang="fr">Intitulé</label>
    <extralabel lang="fr">Extension de libellé</label>
    [... Sous-items ...]
  </Item>

Les items simples

Les textes d'aide

  • Les textes d'aide sont des zones de texte inertes du point de vue de la saisie.
  • Il peuvent être intégrés à l'impression ou non grâce à l'utilisation des options :
    • printable pour l'intégrer à l'impression (valeur par défaut)
    • notprintable pour ne pas l'intégrer à l'impression
    <Item name="HelpText" type="helptext">
      <label lang="xx">This a simple help text</label>
      <label lang="fr">Ceci est texte d'aide</label>
      <options>printable</options>
   </Item>

Les zones de saisie textuelle

Lignes de texte

  • Options disponibles :
    • DontPrintEmptyValues : n'imprime pas si l'éditeur de texte est vide
  • Vous pouvez ajouter des validateurs basés sur des expressions régulières (regexp, voir l'équivalent Qt) en utilisant le tag validator. FreeHealth offre par défaut un validateur pour les courriels, saisissez mail ou email ou e-mail comme validateur.
  • Vous pouvez aussi définir un masque de saisie (voir l'équivalent Qt) avec le tag inputmask.
  • Les lignes de saisie supporte les placeHolders (textes affichés en grisé lorsque la zone de saisie est vide).
    <Item name="ShortText" type="shorttext">
      <label lang="xx">This a sample of a line edit</label>
      <label lang="fr">Exemple de zone de saisie sur une ligne</label>
      <placeholder lang="xx">My placeholder</placeholder>
      <placeholder lang="fr">Saisissez qqchose</placeholder>
      <value>
        <default lang="xx">The default value</default>
        <default lang="fr">La valeur par défaut</default>
      </value>
      <validator>email</validator>
      <inputmask>A999A99</inputmask>
   </Item>

Bloc de texte brute

  • Options disponibles :
    • DontPrintEmptyValues : n'imprime pas si l'éditeur de texte est vide
    <Item name="LongText" type="longtext">
      <label lang="xx">This a simple text edit without complex formatting</label>
      <label lang="fr">Exemple de zone de saisie textuelle brute et multi-ligne</label>
      <value>
        <default lang="xx">The default value</default>
        <default lang="fr">La valeur par défaut</default>
      </value>
   </Item>

Bloc de texte enrichi

  • Correspond à une zone de saisie multi-ligne avec possibilité de mise en forme des caractères, ajout de tableau, ajout d'images, sauvegarde et lecture de fichier html…
  • Options disponibles :
    • FullEditor : éditeur complet (avec impression, tableaux, fichiers…)
    • WithTable : éditeur basique avec manipulation de tableaux activée
    • WithIO : éditeur basique avec manipulation de fichiers activée
    • DontPrintEmptyValues : n'imprime pas si l'éditeur de texte est vide
    • Expanded : Étend la zone de texte en hauteur à 1000 pixels
    • PrintDuplicata (v0.8.2+) : Au moment de l'impression prépare un duplicata (pratique pour les ordonnances textuelles)
  • Les documents utilisateur (entête, pied de page, filigrane) pour l'impression peuvent être définis grâce au tag papers et peuvent être (une seule des trois options) (v0.8.2+):
    • Generic : jeux de documents pour l'impression de documents génériques
    • Administrative : jeux de documents pour l'impression de documents administratifs
    • Prescription : jeux de documents pour l'impression de prescriptions
  • Lors de l'impression du contenu de la zone de texte, le libellé défini dans le code XML sera utilisé comme titre de document.
    <Item name="GP::Basic::SOAP::S" type="texteditor">
      <label lang="xx">Subjective</label>
      <label lang="fr">Subjectif</label>
      <options>FullEditor</options>
      <papers>Prescription</papers>
    </Item>

Les valeurs numériques

Les spins

  • Options disponibles :
    • min : borne inférieure
    • max : borne supérieure
    • step : pas
     <Item name="Spin1" type="spin">
       <label lang="xx">Spin</label>
     </Item>
 
     <Item name="doublespin1" type="doublespin">
       <label lang="xx">Double Spin</label>
       <min>2</min>
       <max>1324</max>
       <step>0.1</step>
     </Item>

Les cases à cocher

Les cases à cocher simples

  • Peuvent être liées à une QCheckBox de la vue (définir le widget)
  • Options disponibles :
    • printonlychecked : ajoute à l'impression uniquement si cochée
    • onright : dispose la case à cocher à droite du texte (par défaut la case à cocher se trouve à gauche)
    • labelastooltip : utilise le libellé comme texte de bulle d'aide
  <Item name="CheckBox" type="check">
    <uilink widget="sampleQtUiCheckBox"/>
    <label lang="xx">This is a simple scripted checkbox sample</label>
    <label lang="fr">Exemple de case à cocher simple</label>
    <tooltip lang="xx">My tooltip</tooltip>
    <options>printonlychecked</options>
    <value>
      <numerical id="0">1</numerical>
      <numerical id="1">2</numerical>
    </value>
  </Item>

Les cases à cocher exclusives

  • Les cases à cocher exclusives sont regroupées entre elles. Une seule case peut être cochée à la fois. Si une case est déjà cochée, le fait d'en cocher une autre décochera toutes les autres.
  • Peuvent être intégrées dans vos interfaces QtUi en utilisant des Layouts. Attention le layout doit dériver d'une QBoxLayout. Vous pouvez aussi lui associer un libellé (QLabel) qui sera différent des libellés de chacune des cases.
  • Options disponibles :
    • compact: crée une vue compacte des cases à cocher (elles seront plus proches les unes des autres). Depuis v0.9.2.
  • Options d'impression : Depuis la v0.9.2, lorsque la liste est analysée pour l'impression, vous pouvez définir le séparateur a utiliser entre chaque éléments sélectionnés. Par défaut, le séparateur est un saut de ligne html.
    • htmllinebreakseparator: par défaut. Saut de ligne codé en HTML '<br/>'
    • plaintextlinebreakseparator : Saut de ligne en format textuel '\r\n' sous windows, '\n' pour tout autre système
    • spaceseparator : espace simple
    • semicolonseparator : point-virgule (sans espace préalable)
    • commaseparator : virgule
    • htmlsemicolonseparator : point-virgule avec espace insécable avant
  <Item name="RadioBoxes" type="radio">
    <uilink label="radioLabel" widget="" layout="radioLayout"/>
    <label lang="xx">There are the radio buttons</label>
    <label lang="fr">Exemple de cases à cocher multiples auto-exclusives</label>
    <value>
      <uuid id="0">first</uuid>
      <uuid id="1">second</uuid>
      <uuid id="2">third</uuid>
 
      <possible id="0" lang="xx">The first value</possible>
      <possible id="1" lang="xx">The second value</possible>
      <possible id="2" lang="xx">The third value</possible>
 
      <possible id="0" lang="fr">Première valeur</possible>
      <possible id="1" lang="fr">Seconde valeur</possible>
      <possible id="2" lang="fr">Troisième valeur</possible>
 
      <numerical id="0">1</numerical>
      <numerical id="1">2</numerical>
      <numerical id="2">4</numerical>
    </value>
  </Item>

Les dates

  • Il existe deux types d'éditeur de date:
    • la version avec des +- à droite et un calendrier en “popup” : date
    • la version où vous pouvez saisir naturellement la date sans calendrier : moderndate
  • Avec ces deux widgets, vous pouvez définir le format d'affichage à l'aide de la balise XML DateFormat.

date

  • Vous pouvez utiliser ce widget dans une interface QtUi grâce au tag uilink et son attribut widget. Le widget doit être du type QDateEdit.
  • Options disponibles:
    • now: défini la valeur par défaut au jour de la création de l'éditeur
    • patientLimits: utilise les données patient (date de naissance et date de décès) pour définir les bornes de l'éditeur (date minimale, date maximale)
   <Item name="SampleDateEdit" type="date">
     <dateformat>dd MM yyyy</dateformat>
     <label lang="xx">This a date editor</label>
     <label lang="fr">Exemple d'éditeur de date et heure</label>
     <options>now;patientLimits</options>
  </Item>

moderndate

  • Vous pouvez utiliser ce widget dans une interface QtUi grâce au tag uilink et son attribut layout. Le widget sera alors créé et insérer dans ce layout.
   <Item name="SampleDateEdit" type="moderndate">
     <dateformat>dd MM yyyy</dateformat>
     <label lang="xx">This a date editor</label>
     <label lang="fr">Exemple d'éditeur de date et heure</label>
     <options>now;patientLimits</options>
  </Item>

Les listes non-modifiables et sélecteur de liste

Les sélecteurs déroulants

  • (0.6.2) Vous pouvez spécifier une valeur par défaut qui sera activée lors de chaque création de formulaire grâce à la valeur default. Spécifiez le nom de l'uuid par défaut.
  • (0.8.2) Vous pouvez peupler le combo avec des valeurs traduites par défaut comme :
    • les périodes (minutes, secondes, jours, semaines, mois, trimestres, années, décennies) avec l'option PopulateWithPeriods. Vous pouvez alors définir la valeur par défaut parmi les identifiants suivants : second, minute, day, week, month, quarter, year, decade.
      <options>PopulateWithPeriods</options>
      <default>year</default>
   <Item>
     <name>sampleCombo</name>
     <type>combo</type>
     <label>This a simple combo from the BaseWidgetsForm plugins</label>
     <value>
       <uuid id="0">firstcombo</uuid>
       <uuid id="1">secondcombo</uuid>
       <uuid id="2">thirdcombo</uuid>
       <possible id="0" lang="xx">First Combo's Element</possible>
       <possible id="1" lang="xx">Second Combo's Element</possible>
       <possible id="2" lang="xx">Third Combo's Element</possible>
       <possible id="0" lang="fr">Premier élément</possible>
       <possible id="1" lang="fr">Deuxième élément</possible>
       <possible id="2" lang="fr">Troisième élément</possible>
     </value>
     <default>secondcombo</default> <!-- the default tag must be outside the value tags -->
  </Item>
Pour l'item combo, la définition d'un élèment par défault ne fonctionnera qu'à partir de la version 0.9.9, de plus, veillez à définir la valeur par défaut en dehors des tags <value></value>

Les listes à sélectionner

  • Listes à choix multiple : multilist
  • Listes à choix simple : uniquelist
  • (0.8.2) Les listes à choix simple ou multiple peuvent être définies dans des fichiers QtUi en utilisant des QListView et en identifiant les widgets dans le tag uilink l'attribut widget.
  • Options
    • (0.8.2) Vous pouvez re-dimensionner la hauteur de la vue de sorte que tous les items soient visibles avec l'option resizeToContent.
   <Item name="sampleList" type="multilist">
     <label>This a simple MutliList Selector from the BaseWidgetsForm plugins</label>
     <value>
       <uuid id="0">firstitem</uuid>
       <uuid id="1">seconditem</uuid>
       <uuid id="2">thirditem</uuid>
       <possible id="0">First Element</possible>
       <possible id="1">Second Element</possible>
       <possible id="2">Third Element</possible>
     </value>
  </Item>

Les listes modifiables

Les listes simples

  • Liste éditable de type: editableList
  • Options XML:
    • maxrow: ce tag XML permet de définir le nombre maximal de ligne pour la liste
   <Item name="editableListSample" type="editableList">
     <label lang="xx">This a simple of editable list limited to 10 lines</label>
     <maxrow>10</maxrow>
  </Item>

Utilisation d'1 fichier UI: la liste éditable peut-être intégrée via 1 layout (vertical)

   <Item name="editableListSample" type="editableList">
     <uilink layout="editableListLayout"/>
     <label lang="xx">This a simple of editable list limited to 10 lines</label>
     <maxrow>10</maxrow>
  </Item>

Les boutons

  • (0.7.6) Vous pouvez créer des boutons ou les lier à une interface QtUi.
  • Il est possible de lui attribuer
    • des libellés traduits
    • une icône du thème
    • un script à exécuter lorsque le bouton est cliqué
   <Item name="sampleButton" type="button">
     <uilink widget="sendMailButton"/>
     <label lang="fr">Ceci est un bouton</label>
     <label lang="en">This a simple button</label>
     <icon>__theme__/icon.png</icon>
     <scripts>
       <onclicked>...script executed when button is clicked by the user...</onclicked>
       <onload>...</onload>
       [...] Read doc about scripts in forms
     </scripts>
  </Item>

Les items complexes

Le 'bouton menu' navigateur de fichier

  • A partir de la v0.8.4
  • Cet élément se présente comme un bouton. Lorsqu'il est cliqué un menu apparait. Ce menu permet de naviguer dans les fichiers présents sur le disque dur local. Lorsqu'un fichier est sélectionné le contenu peut être inséré dans un éditeur de texte.
  • Il est possible de définir plusieurs options :
    • WithoutConfirmation : insère le texte dans l'éditeur sans demander de confirmation à l'utilisateur (attention le texte déjà présent dans l'éditeur sera écrasé). Pour définir cette option utilisez le tag options.
    • path : le répertoire de départ du menu (tag spécifique).
    • filter : le filtre à appliquer sur les fichiers (tag spécifique). Les filtres sont à séparer par un point virgule.
    • populate : spécifie l'uuid de l'éditeur lié.
  • Actuellement, le script onClick n'est pas pris en charge.
      <Item name="FileNavigationButton" type="buttonmenupath">
        <label lang="xx">Select a file (replacement with confirmation)</label>
        <label lang="fr">Sélectionnez un fichier (replacement avec confirmation)</label>
        <tooltip lang="xx">Select a file and the its content will be included in the text editor</tooltip>
        <tooltip lang="fr">Sélectionnez un fichier et son contenu sera insérer dans l'éditeur de texte</tooltip>
        <icon>__theme__/fileopen.png</icon>
        <path>__userDocuments__</path>
        <filter>*.htm;*.html;*.txt;*.rtf</filter>
        <populate>GP::Basic::Prescr::Text::Content</populate>
      </Item>

Les mesures

  • A partir de la version 0.8.2.
  • Ces éléments comprennent une zone de saisie numérique (décimal) et une liste déroulante (pour les unités).
  • Vous pouvez définir les unités de mesure avec le tag options, la valeur par défaut avec le tag default.
  • La valeur par défaut peut être différente selon la langue de l'application. Vous pouvez choisir parmi :
    • centimeter
    • meter
    • inch
    • foot
  • Vous pouvez peupler automatiquement les unités de mesures en précisant dans le tag options
    • Weight pour les poids (les valeurs transmises seront alors automatiquement traduites en grammes)
    • Length pour les longueurs (les valeurs transmises seront alors automatiquement traduites en centimètres)
    <Item type="measurement" name="Height">
      <label lang="xx">Height (widgets)</label>
      <label lang="fr">Taille (widgets)</label>
      <options>DontPrintEmptyValues;Length</options>
      <default>meter</default>
    </Item>

Le gestionnaire d'identité

  • Le gestionnaire d'identité présente tous les éléments liés à une identité:
    • un état civil basique
    • une adresse
    • des données de connexion (identifiant, mot de passe)
  • Vous pouvez définir plusieurs options:
    • pour définir le contenu de la vue:
      • par défaut, la vue n'inclut que les données d'état civil de base
      • with-photo: inclut une photographie
      • with-address: inclut les données d'adresse
      • with-login: inclut les données de connexion
    • pour définir l'origine des données
      • par défaut, l'item présente les données du patient courant. Il se mettra à jour à chaque fois qu'un nouveau patient courant sera activé.
      • xml: sauvegardera les données sous forme XML et ne sera pas lié au patient courant (pratique pour les formulaires type “personne de confiance”).
    • pour définir les possibilités d'interaction
      • read-only: en lecture uniquement
    <Item name="GP::Basic::IdentityItem" type="identity">
      <label lang="xx">Full Identity</label>
      <label lang="fr">Identité</label>
      <options>with-address</options>
    </Item>

Les médications

  • L'item médication ajoute au formulaire une vue ressemblant à celle de FreeDiams. Il est possible de définir plusieurs type :
    • sélecteur uniquement : drugselector
    • prescription complète : prescriptor, prescription
  • Options disponibles :
    • NoInteractionChecking : Annule les moteurs d'interaction pour cet item seulement
    • WithPrescribing : Ajoute aux fonctionnalités de l'item la prescription complète
    • HideSelector : Cache par défaut le sélecteur de médicaments
    • AddChronicTherapyButton : ajoute un bouton cliquable qui ajoute le traitement chronique à l'item
  • L'item médication vous permet
    • d'éditer une liste de thérapeutiques, ou une prescription complète
    • de l'imprimer
    • de la sauvegarder et/ou de la charger
  • Une documentation plus complète se trouve dans la rubrique prescrire avec FreeHealth
      <Item name="GP::Basic::Prescr::Drugs::Content" type="prescriptor">
        <label lang="xx">Therapeutic prescription</label>
        <label lang="fr">Prescription médicamenteuse</label>
      </Item>

L'assistant CIM10

  • L'item CIM10 est un assistant de codage utilisant la classification internationale des maladies version 10 publiée par l'OMS.
  • Cet item vous permet :
    • de créer des “collections de codages” avec gestion des inclusions et exclusions de codes ainsi qu'avec gestion du système dague/étoile
    • de définir des “collections de codages” avec diagnostic principal et associés
    • de définir une liste de codes sans interaction de codage (pour les antécédents par exemple)
    • d'imprimer la “collection”
  • Options disponibles :
    • DontPrintEmptyValues : n'imprime pas l'assistant si aucun code n'est saisi
    <Item name="GP::Basic::ICD10::Content" type="icd">
      <label lang="xx">ICD10 coding</label>
      <label lang="fr">Codes CIM10</label>
    </Item>

La grille d'autonomie AGGIR

  • La grille AGGIR est une grille utilisée pour mesurer l'autonomie générale d'un sujet âgé. Est elle spécifique à la France.
  • L'item AGGIR vous permet :
    • de coder un état d'autonomie selon les dernières recommandations
    • de calculer de façon automatique le Groupe Iso-Ressources
    • d'imprimer la grille ainsi que son résultat
  • Ses données sont stockées en format XML dans la base de données
  • Options à venir
    • Gir moyen pondéré
    • répartition des patients selon le score AGGIR
    • diverses statistiques
    <Item name="girSample" type="gir">
      <label lang="xx">Gir sample</label>
      <label lang="fr">Exemple de grille AGGIR</label>
    </Item>

Les auto-calculateurs

Les additionneurs

    <Item name="fagerstromScore" type="sum">
      <label lang="fr">Score</label>
      <label lang="xx">Score</label>
      <sumof>cig_reveil;fum_interdit;cig_indispensable;cig_par_jour;premiere_heure;maladie</sumof>
      <option>changeepisodelabel</option>
    </Item>
  • options disponibles :
    • changeepisodelabel : ajoute au libellé de l'épisode le libellé de l'item suivi du score calculé. Ex : Épisode (Score = 5)
  • précisez les items à inclure dans le calcul dans le tag sumof en les séparant par un ;
  • le calcul se fait en temps réel à chaque modification des items spécifiés
  • les valeurs utilisées pour le calcul sont les numerical.
  • (0.6.2) Vous pouvez utiliser une interface UI, pour ce faire spécifier la QLineEdit dans le code xml
    <uilink label="myQLabelFromUi" widget="myQLineEditFromUi"/>
  • exemple d'utilisation :
    • addictology/Fagerström
    • geriatrics/iadl
  • Variante, avec utilisation des regexp et wildcards
    <Item name="fagerstromScore" type="sum">
      <label lang="fr">Score</label>
      <label lang="xx">Score</label>
      <sumof_regexp>Subs:Psychiatry::Depression::Hamilton::*</sumof_regexp>
      <option>changeepisodelabel</option>
    </Item>

Le script calculator

    <Item name="Total" type="scriptcalculation">
      <label lang="xx">Result</label>
      <options>vertical;labelontop;changeepisodelabel;DontPrintEmptyValues</options>
      <connect_regexp>Test::Calculation::Script::*</connect_regexp>
      <calcScript>
        var s = "Script test: ";
        forms.namespaceInUse = "Test::Calculation::Script";
        var first = forms.item("First").currentValue;
        var second = forms.item("Second").currentValue;
        var calc = forms.item("Formula").currentText;
        var tmp = calc;
        tmp = tmp.replace(/first/g, first.toString());
        tmp = tmp.replace(/second/g, second.toString());
        s += "(Formula:"+calc+"="+tmp+") = " + eval(calc);
        s;  // Result to show in the lineedit: "Script test: (Formula:first*second=2*3) = 6"
      </calcScript>
    </Item>
  • options disponibles :
    • changeepisodelabel : ajoute au libellé de l'épisode le libellé de l'item suivi du score calculé. Ex : Épisode (Score = 5)
    • showintexteditor : affiche le résultat dans un éditeur de texte enrichi (sinon affiche dans une line edit)
  • Précisez les items à inclure dans le calcul dans le tag connect en les séparant par un ; ou dans le tag connect_regexp en utilisant une expression.
  • Le script sera exécuté en temps réel à chaque modification des items spécifiés.
fr/manuals/xmlforms/widgets.txt · Dernière modification: 2016/12/10 04:14 par Jérôme Pinguet