• English
  • Français (French)

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ègle précises.
  • Il est nécessaire de définir au moins un item formulaire (cf infra).
  • Les valeurs de ces items sont automatiquement sauvegardés 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 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 espace 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 pour FreeMedForms 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 une hauteur supplémentaire dans la vue 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.
  <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 inclues dans les vues en utilisant des “layouts”.
  • Options :
    • SummaryFontBold : le libellé est présenté en gras (par défaut il ne l'ai 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 inherte 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>
      <value>
        <default>The default value</default>
      </value>
   </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. FreeMedForms 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">
    <label lang="xx">This is a simple scripted checkbox sample</label>
    <label lang="fr">Exemple de case à cocher simple</label>
    <tooltip lang="xx">My tootip</tooltip>
    <options>printonlychecked</options>
    <value>
      <numerical id="0">1</numerical>
      <numerical id="1">2</numerical>
    </value>
  </Item>

Les cases à cocher exclusives

  <Item name="RadioBoxes" type="radio">
    <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 QDateTimeEdit.
  • 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 demander à FreeMedForms de 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>
       <default>secondcombo</default>
     </value>
  </Item>

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

  • A partir de la version 0.8.2+
  • 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>

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 prit 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'inclue que les données d'état civil de base
      • with-photo: inclue une photographie
      • with-address: inclue les données d'adresse
      • with-login: inclue 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 FreeMedForms
      <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 de FreeMedForms
  • 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, à partir de la version 0.6.2 de FreeMedForms, 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/freemedforms/xmlforms/widgets.txt · Dernière modification: 2013/05/15 19:13 par Eric Maeker, MD
Recent changes RSS feed Valid XHTML 1.0 Valid CSS Driven by DokuWiki FreeMedForms © Eric Maeker, MD