French
Nouvelles
Pages à mettre à jour
Documentation à mettre à jour
English
Drafts, concepts
News
Pages to update
Documentation to update
Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
|
fr:manuals:freemedforms:xmlforms:widgets [2012/08/23 20:42] Eric Maeker, MD [Les listes et sélecteur de liste] |
fr:manuals:freemedforms:xmlforms:widgets [2013/05/15 19:13] (Version actuelle) Eric Maeker, MD [Les mesures] |
||
|---|---|---|---|
| Ligne 87: | Ligne 87: | ||
| * Ils peuvent contenir plusieurs items voire même des items formulaires (formulaires imbriqués). | * 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. | * 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. | ||
| <code xml> | <code xml> | ||
| Ligne 101: | Ligne 102: | ||
| * **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). | * **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). | * **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//. <code xml> | * **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//. <code xml> | ||
| <MedForm name="Form::Test::BlaBla"> | <MedForm name="Form::Test::BlaBla"> | ||
| Ligne 127: | Ligne 129: | ||
| * **checkable** : ajoute une case à cocher au groupe | * **checkable** : ajoute une case à cocher au groupe | ||
| * **collapsible** : le group devient alors 'pliant'/'dépliant' | * **collapsible** : le group devient alors 'pliant'/'dépliant' | ||
| - | * Exemple complet sur le [[http://code.google.com/p/freemedforms/source/browse/trunk/global_resources/forms/subforms/fortestonly/grouptest/central.xml|SVN du projet]] | + | * Exemple complet sur le [[http://code.google.com/p/freemedforms/source/browse/global_resources/forms/subforms/fortestonly/grouptest/central.xml|git du projet]] |
| <code xml> | <code xml> | ||
| Ligne 134: | Ligne 136: | ||
| <option>compact</option> | <option>compact</option> | ||
| <label>Intitulé</label> | <label>Intitulé</label> | ||
| + | [... Sous-items ...] | ||
| + | </Item> | ||
| + | </code> | ||
| + | |||
| + | ==== 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 | ||
| + | |||
| + | <code xml> | ||
| + | <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 ...] | [... Sous-items ...] | ||
| </Item> | </Item> | ||
| Ligne 165: | Ligne 188: | ||
| * Options disponibles : | * Options disponibles : | ||
| * **DontPrintEmptyValues** : n'imprime pas si l'éditeur de texte est vide | * **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, [[http://qt-project.org/doc/qt-5.0/qtgui/qregexpvalidator.html|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 ([[http://qt-project.org/doc/qt-5.0/qtwidgets/qlineedit.html#inputMask-prop|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). | ||
| <code XML> | <code XML> | ||
| Ligne 170: | Ligne 196: | ||
| <label lang="xx">This a sample of a line edit</label> | <label lang="xx">This a sample of a line edit</label> | ||
| <label lang="fr">Exemple de zone de saisie sur une ligne</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> | <value> | ||
| <default lang="xx">The default value</default> | <default lang="xx">The default value</default> | ||
| <default lang="fr">La valeur par défaut</default> | <default lang="fr">La valeur par défaut</default> | ||
| </value> | </value> | ||
| + | <validator>email</validator> | ||
| + | <inputmask>A999A99</inputmask> | ||
| </Item> | </Item> | ||
| </code> | </code> | ||
| Ligne 203: | Ligne 233: | ||
| * **DontPrintEmptyValues** : n'imprime pas si l'éditeur de texte est vide | * **DontPrintEmptyValues** : n'imprime pas si l'éditeur de texte est vide | ||
| * **Expanded** : Étend la zone de texte en hauteur à 1000 pixels | * **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. | ||
| <code XML> | <code XML> | ||
| Ligne 209: | Ligne 245: | ||
| <label lang="fr">Subjectif</label> | <label lang="fr">Subjectif</label> | ||
| <options>FullEditor</options> | <options>FullEditor</options> | ||
| + | <papers>Prescription</papers> | ||
| </Item> | </Item> | ||
| </code> | </code> | ||
| Ligne 289: | Ligne 326: | ||
| ==== Les dates ==== | ==== Les dates ==== | ||
| - | * Vous pouvez définir le format d'affichage à l'aide de la balise XML **DateFormat** | + | * Il existe deux types d'éditeur de date: |
| - | * Options disponibles : | + | * la version avec des +- à droite et un calendrier en "popup" : **date** |
| - | * **now** : défini la valeur par défaut au jour de la création de l'éditeur | + | * la version où vous pouvez saisir naturellement la date sans calendrier : **moderndate** |
| - | * **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) | + | * 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) | ||
| <code XML> | <code XML> | ||
| Ligne 303: | Ligne 347: | ||
| </code> | </code> | ||
| - | ==== Les listes et sélecteur de liste ==== | + | === 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. | ||
| + | |||
| + | <code XML> | ||
| + | <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> | ||
| + | |||
| + | </code> | ||
| + | |||
| + | ==== Les listes non-modifiables et sélecteur de liste ==== | ||
| === Les sélecteurs déroulants === | === 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.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. <code xml><options>PopulateWithPeriods</options> | ||
| + | <default>year</default></code> | ||
| <code XML> | <code XML> | ||
| Ligne 334: | Ligne 394: | ||
| * Listes à choix multiple : //multilist// | * Listes à choix multiple : //multilist// | ||
| * Listes à choix simple : //uniquelist// | * 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**. | ||
| <code XML> | <code XML> | ||
| - | <Item name="sampleCombo" type="multilist"> | + | <Item name="sampleList" type="multilist"> |
| <label>This a simple MutliList Selector from the BaseWidgetsForm plugins</label> | <label>This a simple MutliList Selector from the BaseWidgetsForm plugins</label> | ||
| <value> | <value> | ||
| Ligne 346: | Ligne 409: | ||
| <possible id="2">Third Element</possible> | <possible id="2">Third Element</possible> | ||
| </value> | </value> | ||
| + | </Item> | ||
| + | </code> | ||
| + | |||
| + | |||
| + | ==== 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 | ||
| + | |||
| + | <code XML> | ||
| + | <Item name="editableListSample" type="editableList"> | ||
| + | <label lang="xx">This a simple of editable list limited to 10 lines</label> | ||
| + | <maxrow>10</maxrow> | ||
| </Item> | </Item> | ||
| </code> | </code> | ||
| Ligne 362: | Ligne 442: | ||
| <label lang="fr">Ceci est un bouton</label> | <label lang="fr">Ceci est un bouton</label> | ||
| <label lang="en">This a simple button</label> | <label lang="en">This a simple button</label> | ||
| + | <icon>__theme__/icon.png</icon> | ||
| <scripts> | <scripts> | ||
| + | <onclicked>...script executed when button is clicked by the user...</onclicked> | ||
| + | <onload>...</onload> | ||
| [...] Read doc about scripts in forms | [...] Read doc about scripts in forms | ||
| </scripts> | </scripts> | ||
| Ligne 370: | Ligne 453: | ||
| ===== Les items complexes ===== | ===== 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. | ||
| + | * [[http://code.google.com/p/freemedforms/source/browse/#git%2Fglobal_resources%2Fforms%2Fsubforms%2Ffortestonly%2Fbuttonpath|Sous-Formulaire de test]] | ||
| + | |||
| + | <code xml> | ||
| + | <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> | ||
| + | </code> | ||
| + | |||
| + | |||
| + | ==== 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//) | ||
| + | |||
| + | <code xml> | ||
| + | <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> | ||
| + | </code> | ||
| ==== Le gestionnaire d'identité ==== | ==== 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 | ||
| <code XML> | <code XML> | ||
| Ligne 377: | Ligne 525: | ||
| <label lang="xx">Full Identity</label> | <label lang="xx">Full Identity</label> | ||
| <label lang="fr">Identité</label> | <label lang="fr">Identité</label> | ||
| + | <options>with-address</options> | ||
| </Item> | </Item> | ||
| </code> | </code> | ||