Logiciel Open Source libre de gestion du dossier médical
Vue générale de DrTux

Auteur et administrateur principal du projet :

- Roland SEVIN roland-sevin@medintux.org

Contributeurs actuels :

- Gérard Delafond gerard@delafond.org
- Christian ZABALETA christian.zabaleta@orange.fr
- Marc Vigreux marc.vigreux@aixact.com
- Sébastien SIVERA sebastien@clinique-marignane.com
- Damien HENRY dhenry@albatros-info.fr

Sommaire du DrTux

Retour au menu principal

1 Apports de DrTux au sein d'un service d'urgences
2 DESCRIPTION DES RUBRIQUES PRINCIPALES

2.1 Module de saisie de l'identité du patient
2.2 Module de recherche patients
2.3 Module de saisie des dossiers
2.4 Module des prescriptions
2.5 Module du terrain
2.6 Module du Glossaire

2.6.1 Changer l'emplacement du répertoire du Glossaire
2.6.2 Répertoires importants du Glossaire
2.6.3 Sélectionner et importer un document du Glossaire
2.6.4 Le menu contextuel du Glossaire

2.7 Principe des modèles et maquettes de documents

3 DESCRIPTION DES ASSISTANTS

3.1 ASSISTANT D'AIDE À LA PRESCRIPTION

3.1.1 GÉNÉRALITÉS
3.1.2 RECHERCHE D'UN PRODUIT

3.1.2.1 Recherche d'un produit par son nom commercial
3.1.2.2 Recherche d'un produit par sa substance
3.1.2.3 Recherche d'un produit par une indication

3.1.3 PRESCRIPTIONS et INFORMATIONS d'un PRODUIT

3.1.3.1 Monographie du produit
3.1.3.2 Posologies et sélection d'un produit pour l'ordonnance
3.1.3.3 Etablissement d'une ordonnance et prescription structurée

3.1.3.3.1 L'ordonnance
3.1.3.3.2 Ajustement de la posologie

3.1.4 MODIFIER LES POSOLOGIES D'UN PRODUIT

3.2 ASSISTANT DE CODAGE CIM 10

3.2.1 Sélectionner un code Cim10 à l'aide de la liste Simplifiée Urgences
3.2.2 Sélectionner un code Cim10 à l'aide de la liste Hiérarchisée
3.2.3 Sélectionner un code Cim10 à l'aide de la liste Globale
3.2.4 Sélectionner un code Cim10 à l'aide de la liste HTML

3.3 ASSISTANT DE CODAGE CCAM

3.3.1 ccamview : outil de recherche des codes CCAM
3.3.1.1 Démarrer CCAMView
3.3.1.1.1 Définition des modes de démarrage
3.3.1.1.2 On distingue deux types d'utilisateurs
3.3.1.1.3 Création et gestion des identités
3.3.1.2 Présentation de l'interface utilisateur
3.3.2 Rechercher un code dans la CCAM
3.3.3 Le Thésaurus
3.3.3.1 Trier les actes du thesaurus et Filtrer par catégorie
3.3.3.2 Ajout d'un acte au thesaurus
3.3.3.3 Modification du libelle usuel et catégorie d'un acte du thesaurus
3.3.3.4 Suppression d'un acte du thesaurus
3.3.3.5 Impression du thesaurus
3.3.4 Le Résumé des actes Patient
3.3.5 L'impression du résumé
3.3.5.1 Généralités
3.3.5.2 Paramétrage des marges et résolution d'impression
3.3.5.3 Personnalisation des entêtes et pieds de page
3.3.5.4 Personnalisation du corps du document
3.3.6 A propos de CCAM View

3.4 ASSISTANT DE GESTION DES MENUS CONTEXTUELS

3.4.1 Le principe des menus contextuels
3.4.2 Créer un nouveau menu contextuel
3.4.3 Modifier les menus contextuels

3.4.3.1 Ajouter une option
3.4.3.2 Effacer un menu contextuel
3.4.3.3 Les autres options du menu
3.4.3.4 Transformer un item de la liste en Item texte
3.4.3.5 Trucs et astuces du texte d'une option
3.4.3.6 Installer une liste d'options permanente dans le menu déroulant
3.4.3.7 Installer un plugin dans une option du menu déroulant
3.4.3.8 La Gestion des librairies de macro
3.4.3.9 Un tutoriel vaut mieux qu'un long discours.

4 Description des fonctions en relation avec le langage de script

4.1 Exemple avancé d'utilisation du scanner et des menus de MedinTux
4.2 Exemple avancé d'un menu de retouche d'images avec The Gimp et MedinTux
4.3 Exemple avancé de menu d'OCR (reconnaissance de caractères) avec Xsane Tesseract et MedinTux
4.4 Les menus utilisateurs
4.5 Le Langage de Script de MedinTuxI Apports de DrTux au sein d'un service d'urgences

5 Un puissant système de classement intelligent : LA VIGIE

5.1 Une règle très simple pour beaucoup de puissance :

5.2.1 Placement et disposit i on de la vigie
5.2.2 La vigie se divise en deux parties
5.3 La Vigie par l'exemple : réalisation d'un classeur de Vaccinations
5.3.1 - Élaboration et édition du document insérant automatiquement le classeur Vaccinations

6 Définir et créer des rubriques supplémentaires
7 Le module résumé dossier
8 Gestion des formulaires PDF
9 Les courbes de croissance

1 Apports de DrTux au sein d'un service d'urgences :

Retour au menu principal

Rigueur des prises en charge avec :

- la protocolisation des Observations types ;
- le contrôle temps réel de la validité du dossier ;
- Codage CIM 10, CCAM, GEMSA, CCMU temps réel.

Réduction considérable des tâches de secrétariat par :

- Recherche et classement des dossiers ;
- Lisibilité typographique parfaite par rapport à une écriture manuelle ;
- L'automatisation des documents types (certificats etc.) ;
- Élaboration automatique des statistiques avec production automatisée des fichiers RPU.

Réduction du temps de prise en charge médicale par :

- Historique des passages aux urgences ;
- Protocolisation des prises en charge ;
- L'outil d'aide à la prescription demi-automatisée ;
- Élaboration des prescriptions et documents types (information au patient etc.).

2 DESCRIPTION DES RUBRIQUES PRINCIPALES: (d'autres spécialisées sont à venir)

Retour au menu principal

2.1 Module de saisie de l'identité du patient
2.2 Module de recherche patients
2.3 Module de saisie des dossiers
2.4 Module des prescriptions
2.5 Module du terrain
2.6 Module du Glossaire

DrTux est divisé en plusieurs rubriques ou modules fonctionnels (nous emploieront soit un terme, soit l'autre),
réunis au sein d'un cadre principal ( Vue générale de DrTux )
Voici les descriptions et vues de chacune d'elles.

2.1 Module de saisie de l'identité du patient:

Retour au menu principal

sans particularité, avec les classiques :

- calcul automatique de la clef du numéro de sécurité sociale ;
- contrôle de la validité et cohérence de la saisie : exemple un patient assuré de sexe masculin ne peut avoir
  un numéro de sécurité sociale commençant par 2, de même pour l'année de naissance etc.
- Liste des intervenants sur ce patient: médecin traitant, médecins spécialistes, paramédical etc.
- Une zone texte libre où il est possible de saisir une courte note d'ordre général sur ce patient ;
- Ville automatiquement inscrite après saisie du code postal, liste de tous les codes postaux Français
  et menu de choix lors des ambiguïtés (plusieurs noms de villes pour un même code postal ou
  plusieurs codes postaux pour la même ville).

2.2 Module de recherche patients :

Retour au menu principal

Pas de grande particularité non plus, il faut saisir le nom et prénom séparés
par un point virgule et la liste s'affinera au fur et mesure de la saisie jusqu'à
votre convenance.
Pour séparer les homonymies il suffit de cliquer sur un des éléments de la
liste et de regarder dans le module d'identité si c'est bien le patient
recherché.
Si la case à cocher autre est cochée, alors le patient sélectionné s'ouvrira
dans une autre instance de DrTux. (il est possible d'avoir ainsi plusieurs
dossiers ouverts)
Le Symbole pour cent % placé avant ou après le nom ou prénom permet de faire une recherche sur tout ce qui contient l'expression.

Exemple : %MART;%JE cherchera toutes les personnes dont le nom contient : MART et dont le prénom contient : JE
Le bouton Nouveau permet de créer un nouveau dossier et fait apparaître
le module de saisie de l'identité pour le compléter et l'enregistrer

2.3 Module de saisie des dossiers:

Retour au menu principal

Tout d'abord, une vue générale d'une observation établie à partir d'un protocole type.
Ce module observation n'est rien d'autre qu'un éditeur de texte avec des aides à la saisie
permettant d'ajouter du texte formaté à partir :

- Soit d'assistants, avec boîte de dialogue, tels que la saisie des codes CCAM, CIM 10, Actes Classants RPU,
  accessibles dans les menus et la barre d'outils, et par le menu déroulant contextuel s'il y est indiqué d'accéder
  à un assistant, il est aussi possible d'indiquer un programme externe, comme assistant.
- Soit à l'aide du Glossaire par l'importation directe de blocs de texte provenant des différents protocoles, accessibles
  avec ce fabuleux outil qu'est le glossaire.
- Soit à l'aide d'un système de menus déroulants contextuels en cascades accessibles avec le bouton
  droit de la souris ou la touche F2. Le type menu contextuel dépend d'un mot clef de couleur bleue situé
  dans les 5 lignes précédant le curseur texte.
  Il est, bien sûr, possible de créer, modifier, ces menus contextuels au sein des protocoles types, par l'intermédiaire
  d'un assistant de la barre d'outils.

La puissance de ces trois outils d'aide à la saisie permet d'accélérer considérablement la saisie,
et surtout d'homogénéiser les termes et formes des documents afin d'en améliorer la cohérence.
Une liste déroulante permet d'accéder à tout l'historique des observations de ce patient
avec mise à jour temps réel et automatique des contenus des observation lors du parcours
de cette liste déroulante.
Il est possible d'effacer une observation, de l'enregistrer, et de l'imprimer, de l'exporter
sous le format html.

2.4 Module des prescriptions :

Retour au menu principal

Le mot prescription est pris au sens large du terme. Sont considérés comme prescriptions
tous les documents suivants remis au patient, c'est-à-dire : certificats, bons de passage,
prescriptions pharmaceutiques, informations au patient, examens complémentaires.
Il existe deux formes de prescription :

Les prescriptions textuelles types (avec leur masques et champs de fusion ou d'importations de données),
qui vont, une fois importées dans le dossier du patient, se comporter comme un banal document texte.
Elles peuvent aussi comporter comme les Observations, des zones de menu contextuel.
Elles sont présentes et à rechercher dans le chapitre prescriptions du Glossaire
(DrTux positionne automatiquement le Glossaire dessus lorsque le module prescriptions est actif)
Les prescriptions médicamenteuses structurées qui sont établies à partir de l'assistant
d'aide à la prescription médicamenteuse, et qui peuvent à tout moment êtres modifiées
par cet assistant. Ces prescriptions sont signalées par un petit Logo : emprunté à la base
thérapeutique Vidal, dont les données sont à la base de l'assistant d'aide à la prescription.

ATTENTION S.V.P
La CRÉATION d'une nouvelle ordonnance structurée, se fait en cliquant sur le
logo Vidal situé au niveau de la barre d'outils GENERALE de DrTuX.
La MODIFICATION d'une ordonnance structurée, déjà existante se fait en cliquant
sur le logo Vidal situé au niveau de la barre d'outils DU MODULE DE PRESCRIPTION de DrTuX.

Un petit aperçu de ce module avec une ordonnance structurée par l'outil d'aide à la saisie.

2.5 Module du terrain :

Retour au menu principal

Le terrain rassemble toutes les données et variables fixes ou peu changeantes,
caractérisant le dernier état de santé du patient.
Le terrain est divisé en trois parties :
-A- Liste des Antécédents et allergies du patient, à saisir soit à l'aide :

- de l'assistant de saisie des allergies, fondé sur la base thérapeutique Vidal
- de l'assistant de saisie CIM 10

-B- Traitement en cours : du patient, à saisir à l'aide

- de l'assistant d'aide à la prescription structurée Vidal qui s'ouvre en double cliquant
  sur la liste, ou en cliquant sur l'icône :

-C- Liste des variables de surveillance du patient

- Cette zone comporte la possibilité de définir, pour un patient donné, des variables
  dont la saisie à intervalles datés permet d'obtenir un profil sur un état précis.
  La tension artérielle, le poids, le pouls sont des exemples de variables.
  La présentation et la saisie se font sous forme d'un tableau daté, à plusieurs colonnes,
  chacune d'elles étant la valeur d'une variable à un instant donné.
  La définition d'un tableau de variable se fait très facilement à l'aide d'un
  éditeur de texte, et est à placer dans le chapitre Terrain du Glossaire.
  Les différents modèle de tableau de variable sont présentés et à rechercher dans le chapitre
  Terrain du Glossaire (DrTux positionne automatiquement le Glossaire dessus lorsque le module Terrain est actif)
- Exemple de Modèle de tableau de variable :
  [VAR Constantes de Base]
Modèle = Date, Pouls, 31536000, 130, 40, pps, Tachycardie, Bradycardie
Modèle = Date, SAO², 31536000, 0, 92, %, , Hypoxie
Modèle = Date, T°, 31536000, 40.5, 35, °, Hypothermie, Hyperthermie
[VAR Poids]
Modèle = Date, Poids, 31536000, 100, 50, Kg(s), Obésité, Amaigrissement
=> Nous voyons que chaque tableau est introduit par la mention : [VAR
suivie d'un espace puis du nom du tableau : Constantes de Base]
=> Nous voyons que chaque colonne du tableau représentant une variable (prenons par exemple la première) est
° introduite par la mention : Modèle =s
° suivie de la mention obligatoire Date , indiquant que la date de la variable doit être saisie, puis
° suit séparé par une virgule, Pouls, indiquant le nom de la variable à afficher en titre de colonne, puis
° suit séparé par une virgule, 31536000, valeur indiquant en secondes la période entre deux acquisitions puis
° suit séparé par une virgule, 130, valeur maximale avant alerte, puis
° suit séparé par une virgule, 40, valeur minimale avant alerte, puis
° suit séparé par une virgule, pps, unité de mesure de la variable, puis
° suit séparé par une virgule, Tachycardie, Libellé texte de l'alerte maximum, puis
° suit séparé par une virgule, Bradycardie, Libellé texte de l'alerte minimum.
Dans cet exemple la valeur très grande 31536000 permet de bloquer l'automatisme d'acquisition qui est réservé
pour des usages futurs.

2.6 Module du Glossaire:

Retour au menu principal

Le Glossaire .... ou sac à malice de DrTux, est une sorte de stockage hiérarchisé
dans lequel il vous faudra placer tous les modèles, protocoles, prescriptions, informations
et documents types que vous aurez élaborés.
Le Glossaire est un répertoire disque situé dans le répertoire de DrTux exemple : drtux/Glossaire
2.6.1 Changer l'emplacement du répertoire du Glossaire :

Il tout de même possible en modifiant l'entrée suivante du fichier : DrTux.ini
[Glossaire]
PathGlossaire = //pathQueVousVoulez
de changer l'emplacement du Glossaire en précisant le nouvel emplacement après la mention : PathGlossaire =
Cela peut se faire aussi en cliquant sur le bouton : qui vous propose à l'aide du
sélecteur de fichiers, de relocaliser et choisir un répertoire différent où se trouve un
autre glossaire.

2.6.2 Répertoires importants du Glossaire :
DrTux se réfère à plusieurs répertoires critiques, dont il ne convient pas
de modifier la hiérarchie par rapport au répertoire de base du Glossaire.

Ces répertoires sont les suivants :

Glossaire/Observation contient tous les modèles et protocoles types des observations
Glossaire/Terrain contient tous les modèles types des variables de terrain
Glossaire/Champs d'insertions contient tous les éléments constitutifs des menus contextuels
Glossaire/Prescription contient toutes les prescriptions types
Glossaire/Documents contient toutes les modèle d'insertion types des documents

l'intérieur de chacun de ces répertoires, il vous est possible et même
conseillé d'organiser la hiérarchie que vous souhaitez pour classer
vos documents types protocoles etc. exemple :

Glossaire/Prescription/Certificats types
Glossaire/Prescription/Ordonnances types
Glossaire/Prescription/Info Au Patient

2.6.3 Sélectionner et importer un document du Glossaire:
Lors de l'activation des différentes rubriques de DrTux, le Glossaire se positionne
sur le répertoire racine de la rubrique concernée, présentant ainsi tous les documents et la
hiérarchie de documents relatifs à la rubrique. L'exemple ci-dessous montre le glossaire positionné
sur le répertoire des prescriptions.
Simple clic pour: afficher/copier/coller :
Le simple clic sur un document provoquera son affichage
dans la fenêtre de visualisation en dessous.
Il est alors possible de sélectionner simplement un bloc
de texte et le copier/coller dans le document déjà présent.
Double clic pour : création et importer directement dans un nouveau document
de la rubrique:

° Nouvelle observation ajoutée au patient
° Nouvelle prescription ajoutée au patient
° Nouvelle variable de terrain ajoutée au terrain

2.6.4 Le menu contextuel du Glossaire:
Ce menu est accessible en cliquant avec le bouton droit
de la souris, celle-ci au-dessus d'un des documents
du glossaire.
Les options de ce menu sont les suivantes :

° Créer un nouveau document

Crée un nouveau document (observation ou prescription) à
partir de celui sélectionné dans le glossaire.

° Ajouter ce document au curseur

Insère le document sélectionné dans le Glossaire à l'emplacement
du curseur texte.

° Remplacer tout par ce document

Remplace tout le contenu d'une prescription ou
observation par le document sélectionné dans le Glossaire.

° Modifier et éditer ce document

Ouvre QLightPad (un éditeur de texte .html) afin de
pouvoir modifier le document sélectionné dans le Glossaire.
un deuxième document présentant la liste des champs
de fusion (pouvant importer les données de la base de données) possibles
est aussi ouvert simultanément afin que vous puissiez, par copier coller,
les placer dans votre document.

° Renommer ce document

Changer le nom du document sélectionné dans le Glossaire.

° Détruire ce document

Détruire le document sélectionné dans le Glossaire.

2.7 Principe des modèles et maquettes de document :

Retour au menu principal

Principe des modèles de documents :
Les Observations et Prescriptions de MedinTux ne sont
rien d'autre que des textes HTML, intégrant un mécanisme puissant
de menus déroulants hiérarchiques dynamiques, permettant de faire des saisies
formatées.
Cette particularité innovante et puissante de MedinTux mérite vraiment
que l'on se penche dessus. Le petit (vraiment petit!!) effort d'apprentissage
nécessaire pour en comprendre les mécanismes vous permettra de bâtir toute
une collection de modèles de documents types protocolisés et parfaitement adaptés
à votre pratique. Le temps gagné, la précision de vos observations, la sécurité de
votre pratique seront exceptionnelles.
Vous pouvez imaginer un document type général, comme celui
livré avec MedinTux : OBSERVATION_STANDARD.html
puis toute une collection de modèles et documents types, adaptés à chaque
situation courante que votre exercice rencontrera. Chacun de ses documents
et modèles peut avoir sa propre mécanique de menus déroulants avec les items
et propositions précisément adaptées à la situation en question.

Où se trouvent les modèles de documents :
À gauche du dossier patient, se trouve le Glossaire de MedinTux.
Celui-ci présente une liste de documents types et modèles organisés et rangés dans
une arborescence de répertoires, qu'il vous est libre d'imaginer
selon vos besoins.
Le Glossaire se positionne automatiquement sur un répertoire
principal de base, selon la fenêtre activée :
Ci-dessous, voici le Glossaire positionné sur le
répertoire des Observations lorsque la fenêtre
Observation est activée.
Ci-dessous voici le Glossaire positionné sur le
répertoire des Prescriptions lorsque la fenêtre
Prescriptions est activée.

Modifier et éditer les modèles de documents :
Ces documents ne sont rien d'autre que de simples textes HTML.
qu'il vous est possible de modifier, à l'aide du petit éditeur de texte
dédié à cet usage : QLightPad
Pour éditer et modifier un document du Glossaire , positionnez la souris au-dessus
de son libellé, sélectionnez-le avec un clic de souris, et cliquez sur l'icône
suivante : Cela lancera le programme QLightPad avec le document
sélectionné .
vous pouvez aussi cliquer dessus à l'aide du bouton droit de la souris,
cela fera apparaître le menu déroulant suivant :
Où il vous faudra cliquer sur l'option : Modifier et éditer ce modèle

3 DESCRIPTION DES ASSISTANTS :

3.1 Assistant d'aide à la prescription :

Retour au menu principal

Les possibilités fonctionnelles de cet assistant étant riches et nombreuses,
il fait l'objet d'un chapitre à part : ASSISTANT D'AIDE A LA PRESCRIPTION

3.2 ASSISTANT DE CODAGE CIM 10:

Retour au menu principal

L'assistant d'aide au codage CIM10 se présente sous forme d'un dialogue
divisé en deux parties :

une partie à droite, destinée à recevoir l'ensemble des codes sélectionnés pour ce dossier.
L'appui sur le bouton OK, valide les items présents dans liste de droite, et les
ajoute à l'observation en cours.
Pour retirer un item de cette liste, sélectionnez-le et appuyez sur le bouton
une partie à gauche, destinée à la recherche des libellés des codes. Celle-ci peut
se faire de trois manières différentes :

noter :

Après validation du choix des codes CIM10, le premier code de cette liste sera
placé comme intitulé du nom de l'observation en cours.

3.2.1 Sélectionner un code Cim10 à l'aide de la liste Simplifiée Urgences

Retour au menu principal

Cette liste simplifiée spéciale urgences est celle établie et recommandée
pour l'établissement des fichiers RPU, telle qu'elle a été définie par les
organismes de tutelle.
Lors de la saisie de mots clefs dans les zones de recherche un et deux
l'affichage des intitulés s'affine au fur et à mesure de leur présence
dans la liste.
Dès que vous êtes satisfait, cliquez sur l'un des intitulés et
cliquez sur le bouton afin de l'ajouter dans la liste de
sélection (partie droite de l'assistant)

3.2.2 Sélectionner un code Cim10 à l'aide de la liste Hiérarchisée

Retour au menu principal

Cette liste contient tout le Cim10 et expose la hiérarchie de
ses chapitres sous forme hiérarchisée.
Pour afficher les items d'un chapitre , cliquez dessus.
Lorsque le clic ne dévoile plus de sous-chapitres, c'est
que vous êtes au niveau le plus bas.
Sélectionnez alors l'item qui vous convient et cliquez sur
le bouton afin de l'ajouter à la liste de sélection à
droite.

3.2.3 Sélectionner un code Cim10 à l'aide de la liste Globale

Retour au menu principal

Dans ce mode, tous les items de la liste CIM10 sont
présents.
Saisissez un mot clef, la liste s'affinera et affichera tous
les items contenant ce mot clef.
Sélectionnez alors l'item qui vous convient et cliquez sur
le bouton afin de l'ajouter à la liste de sélection à
droite.

3.2.4 Sélectionner un code Cim10 à l'aide de la liste HTML

Retour au menu principal

Ce mode simplifié pour les urgences présente une liste à gauche
avec les chapitres généraux. Lors d'un clic sur l'un des chapitres,
son contenu s'affichera dans la liste du milieu, le choix d'un code
CIM10 se fait alors simplement en cliquant sur l'un des items
de la liste du milieu.

3.3 Assistant de codage CCAM :

Retour au menu principal

Les possibilités fonctionnelles de cet assistant étant riches et nombreuses,
il fait l'objet d'un chapitre à part : ASSISTANT DE CODAGE CCAM

3.4 ASSISTANT DE GESTION DES MENUS CONTEXTUELS :

Retour au menu principal

La puissance des menus contextuels mérite vraiment d'en maîtriser le
fonctionnement. Le concept des menus contextuels est un des éléments clefs
dans le mode de saisie du texte dans DrTux et en font un outils d'aide
à la saisie extrêmement puissant et souple sans équivalent dans le monde
du logiciel médical. De telles possibilités ne peuvent pas êtres mises en
oeuvre sans un assistant d'aide à la gestion que nous allons voir ci-après.

3.4.1 Le principe des menus contextuels (ou listes d'insertion) dans DrTux:

Retour au menu principal

Comme vous pouvez le voir sur la figure ci-après, un clic souris ou un appui de la touche F2
à droite le la zone texte bleue : « plaie » a fait apparaître un menu surgissant avec les
propositions textuelles suivantes

avec lambeau cutané
avec lésion tendineuse
avec perte de substance
avec dermabrasion
risque tétanigène
souillée par

qui sont en rapport avec le mot « plaie ».
Le choix de l'une des propositions se fait en cliquant sur l'une d'elles, ce qui
aura pour effet de l'ajouter à l'emplacement du curseur texte.
Cette insertion de texte peut très bien être aussi une autre
zone de menu déroulant (cas des propositions dont l'icône
a la forme d'un dossier : ) qui s'affichera alors en bleu
comme par exemple la proposition « avec dermabrasion »,
qui permet aussi un menu contextuel, et ainsi de suite.
Il est donc possible de créer des documents types possédant déjà une
véritable architecture de menus contextuels dont la mise en oeuvre permet
de saisir très rapidement le dossier. C'est de cette façon qu'il est possible
de protocoliser la saisie avec des propositions homogènes et cohérentes.
Nous verrons qu'il est aussi possible d'appeler avec un menu contextuel,
les dialogues et assistants de DrTux, ainsi que des programmes externes.

3.4.2 Créer un nouveau menu contextuel (ou listes d'insertion) :

Retour au menu principal

Pour comprendre, rien de mieux qu'un petit exemple :
Dans un des éditeurs de DrTux (Observation par exemple), saisissez le texte suivant
(sans les guillemets bien sûr !!) :
« Essai de création d'un menu contextuel »
puis sélectionnez-le à la souris ou au clavier :
puis cliquez sur l'icône : dans la barre d'outils de DrTux.
Désélectionnez le texte en cliquant à sa droite. Le texte devrait être
alors en bleu comme ceci : Essai de création d'un menu contextuel.
Puis, cliquez avec le bouton droit de la souris, avec toujours le curseur texte et la souris
positionnés à droite du texte, le menu suivant devrait apparaître :
Sélectionnez l'option: « Modifier cette liste »
qui devrait faire apparaître l'assistant de gestion des
menus contextuels, que nous allons voir dans le paragraphe
suivant.

3.4.3 Modifier les menus contextuels avec l'assistant :

Retour au menu principal

Si vous avez suivi l'exemple précédent vous devriez avoir
la boîte de dialogue suivante (réduite pour des raisons de mise en page)
positionnée sur la liste que vous venez de créer :
Comme vous venez de créer cette liste, elle ne contient rien. Aussi, si vous cliquez dessus il
ne se passera rien.
Cette boîte de dialogue est aussi accessible à l'aide de l'entrée de menu ci-dessous.

3.4.3.1 Ajouter une option
Retour au menu principal
positionnez la souris au-dessus de : « Essai de création d'un menu contextuel »
et cliquez avec le bouton droit. Vous devriez voir apparaître le menu suivant :
listant les options suivantes :

° Créer et Ajouter un Nouvel élément à une liste
° Créer et Ajouter une référence à une autre liste
° Choisir une liste déjà existante, comme référence
° Créer une Nouvelle liste déroulante
° Renommer cet élément ou liste
° Effacer cet élément ou liste
° Vérifier si cette liste est référencée par d'autres
° Placer ce menu '.....' comme menu fixe d'une rubrique.

Cliquez sur l'option : « Créer et Ajouter un Nouvel élément à une liste »
le dialogue suivant vous invite alors à saisir le texte d'une nouvelle option de
votre menu contextuel.
Saisissez par exemple : « Option numéro 1 »,
puis répétez pour ajouter d'autres options à votre menu la procédure
précédente décrite en : « -a- Ajouter une option »
exemple : « Option numéro 2 » , « Option numéro 3 »
La liste devrait alors se présenter comme suit, avec les nouvelles options saisies :
Fermez à présent l'assistant de gestion des menus contextuels
en cliquant sur la case de fermeture de la fenêtre,
puis positionnez dans le texte, la souris à droite du texte de
couleur bleue : Essai de création d'un menu contextuel,
et cliquez sur le bouton droit de la souris ou appuyez sur la
touche F2 le menu suivant devrait apparaître :
Bravo !!! vous avez créé un nouveau menu contextuel.

3.4.3.2 Effacer un menu contextuel (ou liste d'insertion)
Retour au menu principal
Sélectionnez la liste à effacer, cliquez avec le bouton droit de la souris
pour afficher le menu, et cliquez sur l'option : « Effacer cet élément ou liste »

3.4.3.3 Les autres options du menu du gestionnaire de liste déroulante
Retour au menu principal
Le menu du gestionnaire de liste déroulante s'obtient en cliquant avec le
bouton droit de la souris, celle-ci placée au-dessus d'un élément de la liste
d'insertion.
listant les options suivantes :

° Créer et Ajouter un Nouvel élément à une liste

Ajoute un nouvel item à la liste déroulante

° Créer et Ajouter une référence à une autre liste

Ajoute une nouvelle référence à une autre liste :
si cette référence indique une liste non existante,
une nouvelle liste vide sera créée.
Les références aux autres listes ont pour symbole
un petit dossier :

° Choisir une liste déjà existante, comme référence

Permet d'ajouter une référence à une autre liste,
en la choisissant dans une liste de liste (heu !!! un dessin S.V.P.)
Les références aux autres listes ont pour symbole
un petit dossier :

° Créer une Nouvelle liste déroulante

Comme son nom l'indique, cette option crée
simplement une nouvelle liste déroulante sans
ajouter de référence à une autre liste

° Renommer cet élément ou liste

permet de renommer un élément de la liste

.
° Effacer cet élément ou liste

Efface un élément de la liste

° Vérifier si cette liste est référencée par d'autres

Option très utile pour vérifier avant de renommer
ou effacer une liste, si celle-ci n'est pas déjà référencée
par une autre liste, auquel cas la référence deviendrait
fausse.

° Placer ce menu 'Menu Document' comme menu fixe d'une rubrique

Chaque rubrique peut avoir un menu déroulant ne dépendant pas du
contexte textuel de l'éditeur de texte. Cette option permet d'attribuer la
liste déroulante au-dessus de laquelle la souris se trouve, comme menu
déroulant fixe d'une rubrique à choisir dans la liste d'options présentée par
le sous menu :
Placer ce menu 'nom de la rubrique' comme menu fixe d'une rubrique.

3.4.3.4 Transformer un item simple de la liste en item texte :
Retour au menu principal
Parfois vous souhaiterez qu'une option soit plus qu'une simple
ligne de texte, par exemple un bloc de texte complet.
Pour cela vous disposez à la droite de la boîte listant les listes d'insertion,
d'une petit éditeur de texte très simple,
Sélectionnez un élément d'une liste, cliquez sur l'éditeur de texte, et vous
remarquerez que, dès que vous commencez à saisir des caractères
le symbole s'affiche vous signalant une modification du contenu
textuel de l'option.
Cliquez ensuite sur ce symbole pour enregistrer les modifications.
Toute option de liste, qui représente un texte est signalée par le symbole :

3.4.3.5 Trucs et astuces du texte d'une option :
Retour au menu principal

° Les modificateurs $start_title et $end_title pour afficher le titre d'une option en masquant le reste de l'option :

Cette possibilité est utile par exemple pour les menus comportant des macros très longues qu'il n'est
pas utile de montrer. Pour cela vous placez au début du texte de l'option les modificateurs : $start_title et $end_title
encadrant le titre de l'option, puis à la suite le reste du texte devant être masqué.
Exemple :
$start_title Numérisation et OCR avec Xsane et tesseract$end_title très très longue macro à masquer........

° Le modificateur # indique que seul ce qui le suit doit être inséré :

Ce modificateur permet de n'insérer que la dernière option d'un menu cascadé, sans les items précédents liés à la hiérarchie du menu.

° Le modificateur $NoInsert pour empêcher l'insertion de texte lors de l'exécution d'une option de menu :

Ce modificateur : $NoInsert fait en sorte qu'aucun texte ne sera inséré lors du choix de cette option.
Cela est utile par exemple pour des options ne devant pas insérér de texte mais juste exxécuter une macro.
Exemple :
$start_title Appel Google avec une sélection de texte $end_title $noInsert{{\
{{:: VAR_SET(selection,{{GET_SELECTION}})}}\
{{:: exe_process ( , C:/Program Files/Mozilla Firefox/firefox, http://www.google.fr/search?q={{VAR=selection}}&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:fr:official&client=firefox-a )}}}}

° Insérer une image dans le texte d'une option :

Cliquez sur l'icône en forme de fleur : et, à l'aide du sélecteur de fichiers, choisissez l'image
à insérer. Celle-ci se placera à l'emplacement du curseur texte. Il est à noter que l'image sera
recopiée dans le répertoire suivant : ImagesFolder, situé lui-même dans le même
répertoire de votre Glossaire.

° Placer une référence à une autre liste, dans le texte :

Cliquez sur l'icône d'insertion de liste , ce qui fera apparaître le menu déroulant suivant :
La première option : « Insérer au curseur une référence à une liste déroulante existante »
vous présentera la liste de toutes les listes d'insertion comme ci-dessous :
il suffit alors de cliquer sur celle dont on veut que la référence
soit indiquée dans le texte.
La deuxième option : « Insérer au curseur une nouvelle liste déroulante à créer »
vous proposera, à partir du texte sélectionné auparavant,
de saisir le libellé ou intitulé d'une nouvelle liste à créer.

° Appel d'un assistant de DrTux et insertions de formules préétablies:

Il est possible de créer des options qui activent un assistant d'aide à la saisie,
pour cela le texte de l'option doit être entre {{ ouvrants et }} fermants.
{{ActesClassants}} cet exemple est pour l'assistant d'aide à la saisie des actes classants
les assistants possibles pour l'instant sont :
{{ActesClassants}} Pour l'assistant d'aide à la saisie des actes classants
{{CIM10Urg}} Pour l'assistant d'aide à la saisie des codes CIM 10
{{CCAM_View}} Pour l'assistant d'aide à la saisie des codes CCAM
les formules préétablies sont :
{{PlacerPathologies}} Pour insérer la liste des antécédents
{{TraitementCourant}} Pour insérer la liste des prescriptions du traitement courant
{{TraitementHabituel}} Pour insérer la liste des prescriptions du traitement habituel
{{InsérerOrdo}} Pour insérer la liste des prescriptions de l'ordonnance structurée en cours d'affichage
{{HeureCourante}} Pour insérer l'heure courante
{{DateCourante}} Pour insérer la date courante
{{DT=expression}} Pour insérer la date et l'heure courantes. expression est une chaîne de caractères
avec la syntaxe suivante : (format des dates).
Format des dates :

Expression | Résultat
d | le jour sans placer les zéros (1-31)
dd | le jour en plaçant les zéros (01-31)
ddd | le jour en mode abrégé (e.g. 'Lun'..'Sam')
dddd | le jour en mode long (e.g. 'Lundi'..'Mardi').
M | le mois sans placer les zéros (1-12)
MM | le mois en plaçant les zéros (01-12)
MMM | le mois en mode abrégé (e.g. 'Jan'..'Déc').
MMMM | le mois en mode long (e.g. 'Janvier'..'Décembre').
yy | l'année avec deux chiffres (00-99)
yyyy | l'année avec quatre chiffres (1752-8000)
h | l'heure sans tenir compte des zéros (0..23 ou 1..12 si AM/PM affiché)
hh | l'heure en tenant compte des zéros (00..23 ou 01..12 si AM/PM affiché)
m | Les minutes sans tenir compte des zéros (0..59)
mm | Les minutes en tenant compte des zéros (00..59)
s | Les secondes sans tenir compte des zéros (0..59)
ss | Les secondes en tenant compte des zéros (00..59)
z | Les milli-secondes sans tenir compte des zéros (0..999)
zzz | Les milli-secondes en tenant compte des zéros (000..999)
AP | utilise l'affichage AM/PM. AP devra être remplacé soit par "AM" soit par "PM"
ap | utilise l'affichage am/pm. AP devra être remplacé soit par "am" soit par "pm"

Tous les autres caractères sont ignorés.
Si vous voulez afficher le caractère h , placez le symbole |
Exemples d'expressions possibles
(suppose que la Date est le 20 Juillet 1969):

Format | Résultat
dd.MM.yyyy | 20.07.1969
ddd MMMM d yy | Sam Juillet 20 69

3.4.3.6 Installer une liste d'options permanente dans le menu déroulant :

Retour au menu principal

3.4.3.6.1 Accés par le gestionnaire de menus :
Chaque rubrique peut avoir un menu déroulant ne dépendant pas du
contexte textuel de l'éditeur de texte. L'option :
Placer ce menu...comme menu fixe d'une rubrique
permet d'attribuer la liste déroulante au-dessus de laquelle la souris se
trouve, comme menu déroulant fixe d'une rubrique à choisir dans la
liste d'options présentée par le sous menu.
3.4.3.6.2 Accés en éditant les fichiers Manager.ini et drtux.ini
Dans les fichiers :
MedinTux/drtux/bin/DrTux.ini et
MedinTux/Manager/bin/Manager.ini
vous trouverez l'entrée ou section suivante : [MenuContextuel]
suivie de diverses mentions ou options.
La règle des menus permanents ou fixes est la suivante : pour toute rubrique 'RubriqueXXX' il peut exister dans la section [MenuContextuel]
une entrée du nom de la rubrique, suivi du signe égal, lui-même suivi de la liste permanente correspondant à
cette rubrique. Une entrée spéciale ListImages concerne le menus dédiés aux images.
[MenuContextuel]

Observation = Date SU
Prescription = pendant
Documents = Gestion des documents
Identification = Gestion des documents
ListImages = Gestion des images

la mention : Observation = est suivie de la liste d'options à installer comme options permanentes du menu
de la rubrique : Observation. Dans l'exemple ci-dessus, les options de la liste Date SU seront rajoutées
au menu contextuel.
la mention : Prescription = est suivie de la liste d'options à installer comme options permanentes du menu
de la rubrique : Prescription. Dans l'exemple ci-dessus, les options de la liste pendant seront rajoutées
au menu contextuel.
la mention : Documents = est suivie de la liste d'options à installer comme options permanentes du menu
de la rubrique : Documents. Dans l'exemple ci-dessus, les options de la liste Gestion des documents seront rajoutées
au menu contextuel.
la mention : ListImages = est suivie de la liste d'options à installer comme options lors d'un clic droit sur une image,
quelle que soit la rubrique. Dans l'exemple ci-dessus, les options de la liste Gestion des Images seront rajoutées
au menu contextuel.
3.4.3.6.3 EXEMPLES :
Option de liste déroulante appelant le numérisateur d'images
à placer par exemple dans toutes les listes permanentes.

° Numériser une image.html dont le contenu est
{{:: exe_process (WaitEnd , /usr/bin/kooka) }}

Liste déroulante lors d'un clic droit sur une image telle que appelée par la mention : ListImages = Gestion des images
Cette liste contient deux options qui permettent d'enregistrer la dernière image visualisée sous le curseur texte et de l'envoyer sur un visualisateur ou éditeur d'images :

° Editer l'image avec kuickshow.html (visualisateur) dont le contenu est
{{SAVE LAST IMAGE NAME = ../../tmp/ }}\
{{:: exe_process (noWaitEnd , /usr/bin/kuickshow ,$ToAbsPath ../../tmp/{{GET LAST IMAGE NAME}}) }}
° Editer l'image avec The Gimp.html (éditeur) dont le contenu est
{{SAVE LAST IMAGE NAME =../../tmp/}}\
{{:: exe_process (noWaitEnd , /usr/bin/gimp ,$ToAbsPath ../../tmp/{{GET LAST IMAGE NAME}}) }}

Notez l'instruction d'attente de ::exe_process
si noWaitEnd qui signifie 'ne pas attendre la fin du plugin' et revient tout de suite dans MedinTux.
si WaitEnd qui signifie ' attendre la fin du plugin' avant de revenir dans MedinTux.
Notez l'instruction de formatage du path de ::exe_process
$ToAbsPath considère l'argument qui suit comme un chemin de fichier relatif et le transforme en chemin absolu.

Le gestionnaire de listes déroulantes positionné sur la liste déroulante 'Gestion des images'

3.4.3.7 Installer un plugin dans une option du menu déroulant :

Retour au menu principal

Un plugin est un programme pouvant être appelé à partir du menu contextuel des rubriques,
Observation et Prescription de MedinTux.
Ce programme reçoit en entrée les éléments du contexte actuel de MedinTux et, en retour, il
fournit un texte s'insérant à l'emplacement du curseur texte. Par exemple, on peut imaginer
un plugin présentant une image anatomique, sur laquelle un clic souris permettrait de retourner
un texte affecté à une zone de l'image.
Il faut donc trois conditions :

1) Que le plugin existe et réponde aux conditions d'appel fixées par MedinTux
Le plugin reçoit sur sa ligne d'arguments plusieurs paramètres décrits ci-après:

argv[0]; // chemin et nom du plugin lui-même
argv[1]; // chemin d'un éventuel fichier ini ou "****" si absent
argv[2]; // chemin et nom du programme appelant (parent)
argv[3]; // chemin et nom du fichier où le résultat doit être retourné
argv[4]; // GUID identificateur unique du dossier en cours
argv[5]; // clef primaire de l'observation en cours
argv[6]; // clef primaire du terrain en cours
argv[7]; // clef primaire de la prescription en cours
argv[8]; // réservé pour un usage futur
argv[9]; // réservé pour un usage futur
argv[10]; // réservé pour un usage futur
argv[11]; // réservé pour un usage futur
argv[12]; // nb (Nombre des paramètres suivants)
argv[13 + 0]; // 1er paramètre (12 + 1)
.
.
argv[13 + nb -1 ]; // nème paramètre (12 + nb)

2) Que le plugin retourne un texte récupérable par MedinTux.

Le plugin doit écrire son résultat dans le fichier indiqué par :
argv[3]; // chemin et nom du fichier où le résultat doit être retourné

3) Qu'il existe dans le système de menu déroulant un appel au plugin.
pour cela placer une option de menu de type item texte avec un texte
dont la syntaxe particulière permet l'appel du plugin.
l'exemple ci-dessous permet de comprendre la syntaxe à employer pour
actionner le plugin. Cet exemple ci permet d'appeler le programme de lecture
des informations de la carte Sesam-Vitale (pour des raisons didactiques
certaines portions de l'exemple ont été mises en couleur et gras) :

3.4.3.8 La Gestion des librairies de macro. :
Retour au menu principal
Il est désormais possible de se constituer des bibliothèques de macro, et modèles. avec tout ce qu'il faut pour qu'elles fonctionnent. Puis à l'aide du gestionnaire de liste en un clic tous les éléments concernant par exemple un test, un score, un modèle avec tous les menus correspondants à ce modèle, seront intégrés à votre menu.
Pour accéder au gestionnaire de liste activez l'option de menu comme indiqué ci-dessous.
Cela ouvre le dialogue de gestion des listes déroulantes,
dans lequel nous voyons un bouton qui lorsqu'il est cliqué affiche une liste de choix,
qui présente les composants disponibles, et vous permet de choisir un composant à installer en double cliquant dessus.
Cette bibliothèque de macro. est par défaut positionnée dans le répertoire : Programmes/Librairie de menus.Il est possible de modifier cet emplacement à l'aide du bouton : .
3.4.3.9 Un tutoriel vaut mieux qu'un long discours. pour comprendre l'organisation d'un composant de bibliothèque et vous permettre d'en fabriquer.

4 Description des fonctions en relation avec le langage de script
4.1 Exemple avancé d'utilisation du scanner et des menus de MedinTux
4.2 Exemple avancé de menu de retouche d'images avec The Gimp et MedinTux
4.3 Exemple avancé de menu d'OCR (reconnaissance de caractères) avec Xsane Tesseract et MedinTux
4.4 Les menus utilisateurs
4.5 Le Langage de Script de MedinTux

4.1 Exemple avancé d'utilisation du scanner et des menus de MedinTux :

Retour au menu principal

Nous allons voir dans cet exemple les différentes étapes permettant la mise en oeuvre de Xsane
(programme de scaner sous Linux) directement à partir de MedinTux avec insertion directe de l'image où se trouve le curseur
de la souris.
4.1.1 Préalables :
° Il faut, bien sûr, que Xsane soit installé.
° Il faut aussi que les fichiers drtux.ini et Manager.ini comportent dans la section :[MenuContextuel]
l'entrée suivante : Documents = Gestion des documents désignant la liste déroulante
Gestion des documents comme liste permanente du menu contextuel de la rubrique 'Documents'
La règle des menus permanents ou fixes est la suivante : pour toute rubrique 'RubriqueXXX' il peut exister dans la section [MenuContextuel]
une entrée du nom de la rubrique , suivi du signe égal, lui même suivi de la liste permanente correspondant à
cette rubrique. Une entrée spéciale ListImages concerne le menus dédiés aux images.
[MenuContextuel]

Observation = Date SU
Prescription = pendant
Documents = Gestion des documents
Identification = Gestion des documents
ListImages = Gestion des images

4.1.2 Définir l'option de menu d'appel de Xsane :
L'objectif est d'ajouter à ma liste déroulante permanente : Gestion des documents l'option de menu
permettant d'appeler et d'accéder à Xsane, avec les bons paramètres d'appel.
Pour cela, cliquez sur ou touche F8 pour accéder au gestionnaire de menus déroulants.
Sélectionnez le menu permanent : Gestion des documents de la rubrique 'Documents' et,
s'il n'y a pas cette liste déroulante créez-la.
Ajoutez-y et créez l'option de menu : 'Numériser et insérer.html'
et saisissez pour cette option sur une ligne le texte suivant (vous pouvez copier coller).
$start_title Numérisation avec Xsane$end_title\
{{::Intitule ( Image scannée ) }}\
{{::exe_process (WaitEnd ,/usr/bin/xsane,--save,-N$ToAbsPath../../tmp/LastScanned.png)}}\
{{::insert_image (../../tmp/LastScanned.png , 550 , 500, clear_src remove_src,../../ImagesScanner)}}
Pour des raisons didactiques le texte est présenté ici sur trois lignes, mais il faut qu'il soit sur une ligne
sinon tous les retours à la ligne et espaces inutiles seront insérés.
Enregistrez votre magnifique texte.
4.1.3 Créer dans la rubrique 'Documents' un document vide pour y insérer une numérisation :
C'est ce document vide qui recevra l'image numérisée.
Pour cela, sélectionnez et double cliquez dans le Glossaire sur le fichier VIDE.html
4.1.4 Actionnez le menu déroulant en cliquant avec le bouton droit de la souris :
Cliquez sur l'option précédemment définie : Numériser et insérer
4.1.5 Numériser l'image dans Xsane :
Xsane s'ouvre placez le document à numériser dans le scanner.
Sélectionnez l'option : pour faire apparaître un aperçu de l'ensemble du document.
Encadrez dans l'aperçu avec la souris la zone du document que vous désirez numériser.
Quand votre cadre vous semble correct, cliquez sur l'option : attendez la fin des opérations...
Fermez la fenêtre de Xsane ou cliquez sur l'option Quitter du menu déroulant de la fenêtre de Xsane.
4.1.6 Résultat de la numérisation dans MedinTux :
Simple non ?

4.2 Exemple avancé de menu de retouche d'images avec The Gimp et MedinTux :

Retour au menu principal

Nous allons voir dans cet exemple les différentes étapes permettant la mise en oeuvre de The Gimp
directement à partir de MedinTux avec retouche directe de l'image où se trouve le curseur
de la souris et mise à jour automatique de l'image modifiée.
4.2.1 Préalables The Gimp et le Menu d'appel :
° Il faut bien sûr que The Gimp soit installé.
° Il faut aussi que les fichiers drtux.ini et Manager.ini comportent dans la section :[MenuContextuel]
l'entrée suivante : ListDocuments = Gestion des images désignant la liste déroulante
Gestion des images comme liste permanente du menu contextuel de la rubrique 'Documents'
[MenuContextuel]

Observation = Date SU
Prescription = pendant
Documents = Gestion des documents
Identification = Gestion des documents
ListImages = Gestion des images

4.2.2 Définir l'option de menu d'appel de The Gimp :
L'objectif est d'ajouter à ma liste déroulante permanente : Gestion des images l'option de menu
permettant d'appeler et d'accéder à The Gimp, avec les bons paramètres d'appel.
Pour cela, cliquez sur ou touche F8 pour accéder au gestionnaire de menus déroulants.
sélectionner le menu permanent : Gestion des images de la rubrique 'Documents' et,
s'il n'y a pas cette liste déroulante, créez-la.
Ajoutez-y et créez l'option de menu : 'Modifier l'image avec The Gimp.html'
et saisissez pour cette option sur une ligne le texte suivant (vous pouvez copier coller).
$start_title Mofifier l'image avec The Gimp$end_title\
{{SAVE LAST IMAGE NAME=../../tmp/}}\
{{:: exe_process (WaitEnd , /usr/bin/gimp ,$ToAbsPath ../../tmp/{{GET LAST IMAGE NAME}})}}\
{{:: replace_image ({{GET LAST IMAGE NAME}}, ../../tmp/{{GET LAST IMAGE NAME}},-1,-1,keep_src_file_Name remove_src ) }}
Pour des raisons didactiques, le texte est présenté ici sur trois lignes, mais il faut qu'il soit sur une ligne,
sinon tous les retours à la ligne et espaces inutiles seront insérés.
Enregistrez votre magnifique texte.
4.2.3 Actionnez le menu déroulant en cliquant avec le bouton droit de la souris :
Cliquez sur l'option précédemment définie 'Modifier l'image avec The Gimp' avec la souris au dessus de l'image
à modifier.
4.2.4 Modifier l'image dans The Gimp :
The Gimp s'ouvre et par exemple rajoutez un texte annotant une partie remarquable, ici il
s'agit d'une lésion cérébrale hémorragique :
Une fois votre texte et vos modifications apportées, sauvegardez votre travail en
cliquant sur l'option Enregistrer du menu Fichier ou plus simplement en appuyant
simultanément sur les touches Control et S
Si le dialogue suivant s'ouvre cliquez sur l'option Exporter ou appuyez
plus simplement sur la touche Return ou Enter de votre clavier :
Fermez la fenêtre de The Gimp ou cliquez sur l'option Quitter du menu déroulant Fichier de la fenêtre de The Gimp.
ou plus simplement en appuyant simultanément sur les touches Control et Q
4.2.5 Résultat des modifications intégrées dans MedinTux :
Simple et efficace non ?

4.3 Exemple avancé de menu d'OCR (reconnaissance de caractères) avec Xsane Tesseract et MedinTux :

Retour au menu principal

Nous allons voir dans cet exemple les différentes étapes permettant la mise en oeuvre de L'OCR directement à partir de MedinTux. Cet exemple est donné à titre didactique pour que vous puissiez en comprendre le fonctionnement. MedinTux est déjà pré-paramétré et fourni avec tout ce qu'il faut pour que vous n'ayez pas à faire tout ce qui est décrit ci-dessous. Pour juste utiliser le menu allez au paragraphe : -C-
4.3.1 Préalables d'installations des divers utilitaires nécessaires et le Menu d'appel :
° Il faut bien sûr que Xsane le logiciel de numérisation d'images soit installé. http://www.xsane.org/
paramétrer lors de la première utilisation de Xsane l'absence de compression pour les images.tif
et une résolution de numérisation de 400 DPI.
° Il faut bien sûr que Tesseract, le logiciel de reconnaissance de caractères, soit installé. http://code.google.com/p/tesseract-ocr/
il faut aussi installer l'adaptateur : medintux2tess.sh de Tesseract pour MedinTux dans le répertoire /Plug/OCR/
ci dessous le script l'adaptateur medintux2tess.sh :
#!/bin/bash
##############################################################################
# medintux2tess
##############################################################################
# medintux2tess is a TesseractOCR wrapper to be able to use tesseract with
# xsane and MedinTux

ERRORLOG="medintux2tess.log" # file where STDERR goes
TEMP_DIR=$4

#............... redirect STDOUT to FILE_OUT ................
exec 1>>$FILE_OUT

#............... redirect STDERR to ERRORLOG ...............
exec 2>>$TEMP_DIR$ERRORLOG

TIF_FILE=$1
TXT_FILE=$2
TES_LANG=$3
FILE_OUT="medintux2tess.out"

if [ $5 == 'debug' ]; then
echo "=========================================">&2
echo " medintux2tess">&2
echo "=========================================">&2
echo "------------ arguments-------------------">&2
echo $1>&2
echo $2>&2
echo $3>&2
echo $4>&2
echo "------------ fichiers--------------------">&2
echo "Rep. Temp : "$TEMP_DIR>&2
echo "Fichier tif : "$TEMP_DIR""$TIF_FILE>&2
echo "Fichier txt : "$TEMP_DIR""$TXT_FILE>&2
echo "Langage : "$TES_LANG>&2
echo "-----------------------------------------">&2
fi

# ............... converting image into TIFF (ImageMagick) ...............
convert -compress none "$TEMP_DIR""$TIF_FILE" "$TEMP_DIR""$TIF_FILE" 1>&2

#............... start OCR (tesseract expands output with *.txt) ...............
tesseract $TEMP_DIR$TIF_FILE $TEMP_DIR$TXT_FILE $TES_LANG 1>&2

#............... STDOUT scanned text => FILE_OUT ...............
cat "$TEMP_DIR""$TXT_FILE".txt
° Il faut aussi que ImageMagick soit installé.
http://www.imagemagick.org/
° Il faut aussi que les fichiers drtux.ini et Manager.ini comportent dans la section :[MenuContextuel]
l'entrée suivante : ListDocuments = Gestion des images désignant la liste déroulante
Gestion des images comme liste permanente du menu contextuel de la rubrique 'Documents'
[MenuContextuel]

Observation = Date SU
Prescription = pendant
Documents = Gestion des documents
Identification = Gestion des documents
ListImages = Gestion des images

4.3.2 Définir l'option de menu d'appel de l'OCR (MedinTuxScript):
L'objectif est d'ajouter à ma liste déroulante pemanente : Gestion des images l'option de menu permettant d'appeler et d'accéder aux fonctions de l'OCR, avec les bons paramètres d'appel.
Pour cela, cliquez sur ou touche F8 pour accéder au gestionnaire de menus déroulants.
Sélectionner le menu permanent : Gestion des images de la rubrique 'Documents' et,
s'il n'y a pas cette liste déroulante, créez-la.
Ajoutez-y et créez l'option de menu : 'Numérisation et OCR avec Xsane et tesseract.html'
et saisissez pour cette option le Script MedinTux suivant (vous pouvez copier coller).
$start_title Numérisation et OCR avec Xsane et tesseract$end_title\
\
{{::delete_file (../../tmp/LastScanned.tif)}}\
{{::delete_file (../../tmp/LastScanned.txt, clear)}}\
{{::delete_file (../../tmp/medintux2tess.log)}}\
{{::exe_process (WaitEnd ,/usr/bin/xsane,--save,-N$ToAbsPath../../tmp/LastScanned.tif)}}\
{{::exe_process (WaitEnd,../../Plug/OCR/medintux2tess.sh,LastScanned.tif,LastScanned,-l fra,$ToAbsPath../../tmp$EndToAbsPath/,nodebug)}}\
{{::import (../../tmp/LastScanned.txt , insert)}}
Rappel sur la mise en lignes d'un Script MedinTux :
un Script MedinTux est un texte qui comporte des instructions situées entre doubles crochets pouvant se trouver dans les documents d'en-tête et de pied de pages,
dans les modèles et maquettes du Glossaire, dans les menus déroulants
Nous appellerons et désignerons ce bloc de texte par les termes suivants (équivalents) : champs de fusion ou champs d'extraction ou champs d'insertion.
Exemple :{{::Intitule ( Importation Texte OCR ) }}.
Ces instructions seront exécutées
Tout texte situé en dehors des doubles crochets {{ }} ou situé en dehors des deux balises $start_title et $end_title est ajouté au résultat .
Le texte d'un script peut être sur plusieurs lignes, et si vous ne voulez pas que les retours à la ligne du script soient ajoutés lors de l'insertion du texte résultant de la résolution de ce script, il faut les invalider par le caractère \ placé en fin de ligne.
Enregistrez votre magnifique texte de script.
4.3.3 Actionnez le menu déroulant en cliquant avec le bouton droit de la souris :
Cliquez sur l'option précédemment définie 'Numérisation et OCR avec Xsane et tesseract' avec le bouton droit de la souris ou la touche F2 au-dessus de la rubrique 'Documents' .
cela doit faire apparaître la fenêtre suivante ci-dessous.
4.3.4 Numériser l'image, en sélectionnant la zone d'image avec le texte :
Cliquez sur le bouton 'Acquisition de l'aperçu' : afin d'afficher l'aperçu du document dont il faut sélectionner la zone d'image pour laquelle il faut faire une reconnaissance de caractères.
Encadrez à l'aide de la souris la zone d'image pour laquelle il faut faire une reconnaissance de caractères et, une fois celle-ci définie, cliquez sur le bouton 'Numériser' . Lorsque la numérisation est finie, fermez la fenêtre en cliquant sur la case de fermeture,
et après un petit instant pendant lequel la reconnaissance opère ...
4.3.5 Résultat de l'OCR (reconnaissance de caractères) intégré dans MedinTux :
vous aurez la surprise de voir s'insérer à l'emplacement du curseur texte, le résultat de la reconnaissance dont Il vous faudra probablement corriger les approximations et erreurs.
Simple et efficace non ?

4.4 Les menus utilisateurs :
Retour au menu principal
MedinTux offre la possibilité de créer autant de menus supplémentaires que l'utilisateur le désire. Chaque option du menu permettant d'activer un Script MedinTux qu'il vous est laissé libre de définir. Cela peut être l'appel d'un programme externe ou toute action de votre choix. Ces menus se placent automatiquement dans la barre d'outils de menus. La figure ci-dessous montre (encadrés en rouge) trois options supplémentaires.
Une option de menu est un répertoire contenant deux fichiers :
° une icône,
° un script XML très simple devant être appelé : definition.txt
Ce répertoire peut porter un nom quelconque (choisissez tout de même un nom en rapport avec le contenu), et doit être situé dans le répertoire : MedinTux/Programmes/drtux/bin/Ressources/Menus de MedinTux.
ci-dessous l'endroit où doivent être placés les menus utilisateurs.
° Exemple de script XML d'un fichier de définition d'un menu
<!DOCTYPE CMenu><CMenu version="0.0" stdsetdef="1">
<actions>
<action>
<property name="name">
<cstring>OCR avec Xsane et Tesseract</cstring>
</property>
<property name="iconSet">
<iconset>ocr.png</iconset>
</property>
<property name="text">
<string>OCR avec Xsane et Tesseract</string>
</property>
<property name="menuText">
<string>OCR avec Xsane et Tesseract</string>
</property>
<property name="accel">
<string>Ctrl+=</string>
</property>
<property name="script">
<string>{{::delete_file (../../tmp/LastScanned.tif)}}\
{{::delete_file (../../tmp/LastScanned.txt, clear)}}\
{{::delete_file (../../tmp/medintux2tess.log)}}\
{{::exe_process (WaitEnd ,/usr/bin/xsane,--save,-N$ToAbsPath../../tmp/LastScanned.tif)}}\
{{::exe_process (WaitEnd,../../Plug/OCR/medintux2tess.sh,LastScanned.tif,LastScanned,-l fra,$ToAbsPath../../tmp$EndToAbsPath/,nodebug)}}\
{{::import (../../tmp/LastScanned.txt , new crlf2html)}}</string>
</property>
<property name="period">
<string>0</string>
</property>
</action>
</actions>
</CMenu>
dans lequel nous pouvons voir :
° le nom de l'option texte à afficher : OCR avec Xsane et Tesseract
° le nom de l'icône ocr.png
° le raccourci clavier à associer à cette option Ctrl+=
° le script que l'option doit actionner

{{::delete_file (../../tmp/LastScanned.tif)}}\
{{::delete_file (../../tmp/LastScanned.txt, clear)}}\
{{::delete_file (../../tmp/medintux2tess.log)}}\
{{::exe_process (WaitEnd ,/usr/bin/xsane,--save,-N$ToAbsPath../../tmp/LastScanned.tif)}}\
{{::exe_process (WaitEnd,../../Plug/OCR/medintux2tess.sh,LastScanned.tif,LastScanned,-l fra,$ToAbsPath../../tmp$EndToAbsPath/,nodebug)}}\
{{::import (../../tmp/LastScanned.txt , new crlf2html)}}
Si le script commence par la mention {{EXECUTE_ON_EXIT}} alors le script s'exécutera lorsque une demande de fermeture de MedinTux est demandée.

° la période en millisecondes de déclenchement du script.

Si cette valeur est négative, alors le timer de lancement du script ne s'exécutera qu'une fois.
Si cette valeur est positive, alors le timer de lancement du script s'exécutera à chaque période écoulée.
Si cette valeur est à zéro, le script n'aura pas de timer et ne s'exécutera que lors de l'action sur le menu.
Si après exécution, un script de menu retourne la mention suivante dans son texte :
$setMenuTimer=[1000] alors le Timer sera réinitialisé sur la valeur entre crochets ici 1000 millisecondes :

si positive l'action se répètera à chaque période écoulée.
si négative l'action s'exécutera qu'une seule fois, après la période écoulée.
si zéro le timer sera détruit et l'action non répétée.

Créer un menu dont le script se lance au démarrage de MedinTux : pour cela placez la valeur -100 (soit 1/10 ème de seconde) comme période.
<property name="period">
<string>-100</string>
</property>
ce qui lancera le script 1 fois après la période de 1/10 ème de seconde
Créer un menu dont le script se lance à la fin de MedinTux :
pour cela placez la la mention {{EXECUTE_ON_EXIT}} en début de script.
Désactiver une option de menu :
Si un répertoire de définition de menu commence par le signe moins alors il ne sera plus évalué et cela désactivera l'option.

4.5 Le Langage de Script de MedinTux :

Retour au menu principal

4.5.1 - Définition :
Un Script MedinTux est un bloc de texte qui comporte des instructions situées entre deux doubles crochets, exemple :{{::Intitule ( Importation Texte OCR ) }} qui seront exécutées ou résolues et remplacées par le texte résultant de leur exécution. Si le texte résultant est vide alors l'instruction sera effacée ne modifiant pas alors le texte où elle est insérée.
Ces scripts servent à effectuer toutes sortes d'opérations, comme produire des documents automatisés ou des menus intelligents.
Les scripts de MedinTux sont un vrai langage de Macros, et permettent à l'utilisateur d'inventer les fonctions dont il a besoin et qui ne sont pas présentes dans le programme.
Nous appellerons et désignerons ces blocs de texte par les termes suivants (équivalents) :

instructions ou
champs de fusion ou
champs d'extraction ou
champs d'insertion

Les Script MedinTux sont récursifs, ce qui signifie qu'il est possible d'imbriquer plusieurs champs de fusion, les instructions les plus imbriquées seront résolues avant les autres.
Dans l'exemple suivant :
$start_title Modifier l'image avec The Gimp$end_title\
{{SAVE LAST IMAGE NAME=../../tmp/}}\
{{:: exe_process (WaitEnd , /usr/bin/gimp ,$ToAbsPath ../../tmp/{{GET LAST IMAGE NAME}})}}\
{{:: replace_image ({{GET LAST IMAGE NAME}}, ../../tmp/{{GET LAST IMAGE NAME}},-1,-1,keep_src_file_Name remove_src ) }}
Le champ de fusion {{GET LAST IMAGE NAME}} sera résolu avant les autres, et remplacé par le nom de la dernière image enregistrée.
Les Script MedinTux sont orientés texte tout le texte situé en dehors des doubles crochets {{ }} ou situé en dehors des deux balises $start_title et $end_title est conservé et sera ajouté au résultat final y compris les retours à la ligne (la partie située entre $start_title et $end_title sera affichée comme infobulle).
Exemple :
Nom : {{NOM PRENOM PATIENT}} Sexe: {{SEXE PATIENT}}
Né(e) : {{DATE NAISSANCE PATIENT}} Age : {{AGE PATIENT ABREGE}} ans
pourra ressembler à cela après résolution ou exécution des macros.
Nom : TARTEMPION MARCEL Sexe: Masculin
Né(e) : 01-01-2001 Age : 7 ans
Invalidation des fins de lignes Si le caractère \ est placé en fin de ligne, le retour chariot suivant cette ligne sera ignoré. Cela permet d'écrire sur plusieurs lignes un script long pour lequel l'on ne veut pas insérer de retours à la ligne.
Caractère d'échappement Si le caractère \ est placé avant un caractère, exemple \(, le caractère le suivant sera interprété comme un caractère de texte et non comme un caractère de structure d'instruction. Dans notre exemple, la parenthèse ouvrante ne sera pas interprétée comme un début de liste de paramètres de fonction.
4.5.2 Où se situent et se cachent les Scripts MedinTux ? dans :
Les en-têtes et de pieds de pages d'impression accessibles par le gestionnaire d'utilisateurs gest_user, les instructions contenues dans ces documents sont résolues lors de l'incorporation des en-têtes et de pieds de pages au cours d'une impression.
VARIABLES ET MENTIONS PARTICULIERES :

- Si lors d'une résolution ou exécution de script ou de macro, le texte généré, contient la mention $PRINT_STOP alors l'impression du document sera interrompue.
- Lors de la résolution et exécution d'un script la variable $SCRIPT_STATUS accessible dans un script avec {{VAR=$SCRIPT_STATUS}} peut prendre les valeurs suivantes :
  nom de la rubrique_$FUSION_ADD_Tout lors du remplacement d'un document déjà existant d'une rubrique de MedinTux par un modèle ou document-type du Glossaire.
  nom de la rubrique_$FUSION_ADD_Ajouter lors de l'ajout à un document déjà existant d'une rubrique de MedinTux, d'un modèle ou document-type du Glossaire.
  nom de la rubrique_$FUSION_CREATE lors de la création d'un nouveau document d'une rubrique de MedinTux à partir d'un modèle ou document-type du Glossaire.
  nom de la rubrique_$FUSION_END lorsque l'exécution d'une macro ou script a été opéré est est terminé (vous ne devriez pas avoir à vous en servir).
  nom de la rubrique peut prendre les valeurs suivantes selon la rubrique dans laquelle st exécutée la macro :
  Observation, Prescription, Documents, Identification.
  $PREVISUALISATION lorsque l'exécution d'une macro ou script est en train de se faire dans le cadre de la fenêtre de prévisualisation du Glossaire.
  $PREVISUALISATION_END lorsque l'exécution d'une macro ou script vient de se terminer dans le cadre de la fenêtre de prévisualisation du Glossaire.
  $PRINT_SCRIPT_BEFORE Lorsque lors d'une impression aucune exécution de script d'en-tête et de pied de page n'a encore été réalisée cette valeur est retournée (script exécuté la première fois).
  $PRINT_HEADER_CHANGED Cette valeur est positionnée si dans le dialogue d'impression le modèle d'impression a été changé, et que l'éventuel script de l'en-tête et du pied de page de ce modèle va être exécuté.
  $PRINT_SCRIPT_END Cette valeur est positionnée après la résolution et exécution lors d'une impression d'un script de l'en-tête et du pied de page.

Les modèles de documents types ou maquettes du Glossaire.
les instructions contenues dans ces documents sont résolues lors de l'incorporation du document
dans une rubrique de MedinTux.
Le système de Menus déroulants de MedinTux accessible par le bouton dans le gestionnaire de dossier médical drtux.
Les instructions contenues dans ces documents sont résolues lors de l'incorporation dans un document après exécution de l'option de menu correspondant au script.
Le système de Menus utilisateur de la barre de menu de MedinTux (options encadrées en rouge)
Ces instructions seront exécutées et résolues lors du clic sur une des options.
Les fichiers de configuration se trouvent dans drtux/bin/Ressources/Menus

Le menu d'entrée (actionné lors du démarrage du programme après le chargement des documents) est un script, programmable comme les autres. Cela permet d'ajouter de nombreuses fonctions intelligentes à effectuer lors du démarrage du programme, comme :

Positionnement de variables par extraction de données dans des fiches
lancement de programmes tiers
positionnement de diverses valeurs
informations personnalisées dans la zone d'affichage
etc.

Il se situe dans drtux/bin/Ressources/Macro de debut. Si ce répertoire n'existe pas, il n'y aura pas de menu d'entrée.
(par exemple pour le désactiver, renommer le répertoire Macro de debut en Macro de debut_0)
Le menu de sortie (actionné par toute action de sortie du programme, comme Alt+F4, Fichier-> Quitter, etc.) est un script, programmable comme les autres. Cela permet d'ajouter de nombreuses fonctions intelligentes à la sortie du programme, comme :

vérification du contenu des observations
lancement de la comptabilité
envoi d'une copie de l'observation par mail à l'utilisateur
informations personnalisées dans la zone d'affichage
etc.

Il se situe dans drtux/bin/Ressources/Macro de sortie. Si ce répertoire n'existe pas, il n'y aura pas de menu de sortie.
(par exemple, pour le désactiver, renommer le répertoire Macro de sortie en Macro de sortie_0)

4.5.3 Inventaire des instructions :
Retour au menu principal
NOTE : toutes les instructions commençant par {{:: sont épurées, et les attributs html de styles sont retirés.
Si elles contiennent juste après les doubles deux points le caractère # comme ci après :
{{::# Extract_ATCD (
<b><u>° ::TYPE:: :</u></b> ,\
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ::LIBELLE:: ::MEDCHIR:: ::ETAT:: ::CODE:: ::NOTE:: ::DATE:: ::ALD:: ,\
en date du :,\
en rapport avec une pathologie ALD) }}
il ne sera pas opéré d'épurage du code html afin de conserver les attributs html pouvant
être nécessaires à la mise en page comme dans l'instruction montrée en exemple
le paramètre : <b><u>° ::TYPE:: :</u></b>
comporte des attributs de mise en gras : <b></b> et souligné <u> </u>
servant à positionner le style des titres des antécédents.

4.5.3.1 |==> {{:: Extract (Observation | Fiche initiale, après , avant , tester , mettre, mode de conversion numérique)}}
Ces instructions ont pour objectif d'aller récupérer et mettre en
forme des données appartenant à une rubrique.
Paramètre N° 1 (rubrique) :
Le premier paramètre est la rubrique où aller chercher les données.
le paramètre rubrique peut être :
Observation, Prescription, Ordonnance, Ordonnance Vidal , Certificat , Courrier
ou vide auquel cas c'est dans la rubrique courante où seront extraites les données.
Un paramètre vide est composé d'espaces uniquement comme dans l'exemple en rouge : {{:: Extract ( , apres , avant , tester , mettre )}}

IMPORTANTE SUBTILITE : à la suite de ce paramètre vous pouvez indiquer séparé par le caractère '|' le titre précis d'un document dans lequel l'extraction doit se faire.
{{:: Extract (Observation | Fiche initiale , après , avant , tester , mettre )}}

Paramètre N° 2 (délimiteur d'extraction de début) :
Terme après lequel la donnée doit être extraite.
Paramètre N° 3 (délimiteur d'extraction de fin) :
Terme avant lequel la donnée doit être extraite.
Paramètre N° 4 (facultatif opérateur de comparaison) :
Terme avec lequel doit être comparé le texte extrait.
La comparaison est dite vraie si le terme est contenu dans le texte extrait.
Paramètre N° 5 (facultatif terme de remplacement) :
Résultat à placer à la place du texte extrait si la comparaison est vraie.
Paramètre N° 5 (facultatif terme de remplacement) :
Résultat à placer à la place du texte extrait si la comparaison est vraie.
Paramètre N° 6 (modificateur de conversion et extraction ) facultatif et par défaut si non positionné ou absent il n'en sera pas tenu compte.
SI contient $stopIfNotNum la conversion numérique s'arrête au premier caractère non numérique.
SI contient $allString tous les caractères numériques de la chaîne seront retenus.
SI contient $toInt la conversion numérique ne conservera que la partie entière.
SI contient $keepHtml l'extraction conservera les attributs html.
SI toute autre valeur, la conversion s'arrêtera à la première occurrence de cette valeur.
exemples concernant le mode de conversion voir la macro : TO_NUM :
Exemple pour mieux comprendre :
Installation d'une automatisation de la mention AT lors de l'impression d'une ordonnance .
Placez le texte suivant ,
Circonstances : Heure d'Arrivée SU: {{DT=hh|mm}}
dans tous vos modèles de documents d'observations et est donc il sera présent dans toutes vos observations.
À la droite du terme : 'Circonstances :' un menu permet de saisir entre autres choix, le texte suivant : 'AT (sur les lieux du travail)' ce qui donne après sélection de l'option, le texte suivant :
Circonstances : AT (sur les lieux du travail) Heure d'Arrivée SU: 08h30
S élection de l'option AT (sur les lieux du travail) du menu déroulant d'une observation.
L'en-tête des ordonnances contient le champ d'extraction suivant :
{{:: Extract (Observation , Circonstances : , Heure d'Arrivée SU: , AT ,AT )}}
que va-t-il se passer ?
Lors de l'impression d'une ordonnance, son en-tête va être utilisé avec le champ d'extraction ci-dessus, et il va être extrait de l'observation en cours, la portion de texte située entre le terme délimiteur d'extraction de début Circonstances : et le terme délimiteur d'extraction de fin Heure d'Arrivée SU: soit le texte suivant : AT (sur les lieux du travail) comme l'imposent les paramètres N° 1 et le N°2.
il sera vérifié dans le texte extrait AT (sur les lieux du travail) si la mention AT y est présente comme l'impose le paramètre N° 3 et si c'est le cas, le paramètre N°4 : AT remplacera {{:: Extract (Observation , Circonstances : , Heure d'Arrivée SU: , AT ,AT )}} dans le texte de l'en-tête.
Cela aboutit à une automatisation de l'inscription de la mention AT sur les ordonnances.
De même, il est possible d'imaginer un courrier automatisé qui va extraire des documents, des données situées entres deux titres balises constants sur vos modèles, séparant des zones clefs de vos observations.

4.5.3.2 |==> {{::# Extract_ATCD ( <b><u>° ::TYPE:: :</u></b>,\
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ::LIBELLE:: ::MEDCHIR:: ::ETAT:: ::CODE:: ::NOTE:: ::DATE:: ::ALD:: ,\
en date du :,\
en rapport avec une pathologie ALD) }}
Cette instruction a pour objectif de mettre en forme les données appartenant aux antécédents de la rubrique terrain de façon à inclure les antécédents d'un patient dans vos documents.
la liste sera classée et triée selon les familles positionées lors de la définition de l'antécédent.
Paramètre N° 1 (titre de la liste des antécédents médicaux) :
Inscrivez dans ce paramètre le motif HTML devant servir de titre aux antécédents médicaux.
Exemple : <b><u>::TYPE:: :</u></b>
si ce paramètre est égal à la valeur : lineaire alors, la présentation ne tiendra pas compte des autres paramètres et sera de type textuel, avec les antécédents ajoutés les uns à la suite des autres.
le paramètre ::TYPE:: sera remplacé par la famille et le genre de l'antécédent.
Paramètre N° 2 (sélecteur de présentation des propriétés des antécédents) :
Ce paramètre permet de déterminer l'affichage d'une ligne d'antécédent en indiquant au sein d'une ligne html l'emplacement et les attribut d'affichage de chaque propriété.
Exemple : &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ::LIBELLE:: ::MEDCHIR:: ::ETAT:: ::CODE:: ::NOTE:: ::DATE:: ::ALD::
::LIBELLE:: sera remplacé par le libellé de l'antécédent.
::MEDCHIR:: sera remplacé par la catégorie de l'antécédent (Médical chirurgical etc..).
::\(MEDCHIR\):: sera remplacé par la catégorie de l'antécédent (Médical chirurgical etc..) entre parenthèses.
::ETAT:: sera remplacé par l'état de l'antécédent (Actif, Passé).
::CODE:: sera remplacé par le code CIM10 de l'antécédent.
::NOTE:: sera remplacé par le commentaire de l'antécédent.
::DATE:: sera remplacé par la date de l'antécédent avec la formule d'introduction indiquée dans le paramètre N°3.
::ALD:: sera remplacé par la formule indiquée dans le paramètre N°4 si l'antécédent est placé en ALD.
Paramètre N° 3 (formule d'introduction de la date) :
formule d'introduction de la date
Exemple : en date du :
Paramètre N° 4 (formule ALD) :
qui si l'antécédent est en ALD remplacera le motif : ::ALD::
Exemple : est en rapport avec une pathologie ALD
Quelques exemples :
{{::#Extract_ATCD (
<b><u>° Antécédents ::TYPE:: :</u></b> ,\
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;::LIBELLE:: ::MEDCHIR:: ::NOTE:: ::DATE:: ,\
en date du :,\
est en rapport avec une pathologie ALD) }}
produira l'affichage suivant :
° Antécédents allergiques :
pénicilline G Gynécologiques Actif (6106A)
pollen Méd Passé (2530L)
° Antécédents divers :
Problème de dépendance à la cocaïne Passé ~F14.2~
ascite maligne Passé ~C78~
Asthme sai Facteurs de risque familiaux Passé ~J45.9~ en date du :24-01-2008 est en rapport avec une pathologie ALD
ne se lave pas Facteurs de risque hygiène Passé

4.5.3.3 |==> {{:: Extract_Table (
VAR Constantes de Base ,\
Pouls = 20 ; SAO2 = 80 ; Temp = 30 ,\
DATE VISITE ,\
2008/12/24,\
100, 20, 1, 200 ,\
dd-MM-yyyy hh:mm=Dates de prises,\
50) }}
Cette instruction a pour objectif de mettre en forme des données provenant d'une table ou tableau de variable du terrain de façon à les inclure dans vos documents .
Paramètre N° 1 (Nom du tableau ou de la table à afficher) :
VAR Constantes de Base
Nom du tableau ou de la table tel qu'indiqué dans le modèle du tableau après la mention VAR
exemple : Constantes de Base dans le modèle ci-dessous
Exemple de modèle :
[VAR Constantes de Base]
Modèle = Date, Pouls, 31536000, 130, 40, pps, Tachycardie, Bradycardie
Modèle = Date, SAO2, 31536000, 0, 92, %, , Hypoxie
Modèle = Date, Temp, 31536000, 40.5, 35, ?, Hypothermie, Hyperthermie
[VAR Poids]
Modèle = Date, Poids, 31536000, 100, 50, Kg(s), Obésité, Amaigrissement
Modèle = Date, Taille, 31536000, 0, 0, cm(s), ,
Paramètre N° 2 (liste des variables à afficher) :
Pouls = 20 ; SAO2 = 80 ; Temp = 30
Cette liste présente chaque variable dont on désire afficher les valeurs, séparées par un point virgule.
suit ensuite après le signe =
soit le nombre de pixels aloués pour la largeur d'affichage,
soit si le signe % suit cette valeur, le pourcentage de largeur d'affichage.
Paramètre N° 3 (première date à partir de laquelle afficher les données) :
° soit la date est exprimée sous la forme : YYYY-MM-DD où YYYY est l'année, MM est le mois de l'année (entre 01 et 12), et DD est le jour du mois (entre 01 et 31).
° soit la date est exprimée sous la forme des formules préétablies suivantes :
TOUTE DATE pas de limite inférieure.
DATE VISITE date de l'observation en cours.
DATE ACTUELLE date du jour en cours.
Paramètre N° 4 (date de fin pour afficher les données) :
° soit la date est exprimée sous la forme : YYYY-MM-DD où YYYY est l'année, MM est le mois de l'année (entre 01 et 12), et DD est le jour du mois (entre 01 et 31).
° soit la date est exprimée sous les formes suivantes :
+ suivi d'une valeur correspondant au nombre d'heures à rajouter à la date de début pour faire la date de fin. Expl : +24
+- ou -+ suivi d'une valeur correspondant au nombre d'heures à enlever à la date de début et à rajouter à la date de début pour faire la date de fin. Expl : +-24
- suivi d'une valeur correspondant au nombre d'heures à enlever à la date de début pour faire la date de fin. Expl : -24
chiffre 0 ou vide, alors la date de fin est la date de début à laquelle est ajouté 24 heures.
° soit la date est exprimée sous la forme des formules préétablies suivantes :
TOUTE DATE pas de limite inférieure.
DATE VISITE date de l'observation en cours.
DATE ACTUELLE date du jour en cours.
Paramètre N° 5 (Largeur de la cellule) :
si exprimé en pourcentage se sera le pourcentage de la largeur totale.
Paramètre N° 6 (Hauteur de la cellule) :
si exprimé en pourcentage se sera le pourcentage de la largeur totale.
Paramètre N° 7 (Largeur de la ligne de séparation) :
Paramètre N° 8 (Largeur totale du tableau) :
si exprimé en pourcentage se sera le pourcentage de la largeur totale de la page.
Paramètre N° 9 (format d'affichage des dates) :
exprimé selon la règle suivante : format des dates
ce paramètre peut être suivi (séparé par le signe = ) du titre de la colonne des dates.
Paramètre N° 10 (largeur de la colonne des dates) :
si exprimé en pourcentage se sera le pourcentage de la largeur totale.
Quelques exemples :
{{:: Extract_Table (VAR Constantes de Base , Pouls = 20 ; SAO2 = 80 ; Temp = 30 , TOUTE DATE , DATE VISITE, 100, 20, 1, 200 ,dd-MM-yyyy hh:mm=Dates de prises, 50)}}
{{:: Extract_Table (VAR Constantes de Base , Pouls = 20 ; SAO2 = 80 ; Temp = 30 , TOUTE DATE , TOUTE DATE, 100, 20, 1, 200 ,dd-MM-yyyy hh:mm=Dates de prises, 50)}}
{{:: Extract_Table (VAR Constantes de Base , Pouls = 20 ; SAO2 = 80 ; Temp = 30 , DATE VISITE , +24 , 100, 20, 1, 200 ,dd-MM-yyyy hh:mm=Dates de prises, 50)}}
{{:: Extract_Table (VAR Constantes de Base , Pouls = 20 ; SAO2 = 80 ; Temp = 30 , DATE VISITE , +-24 , 100, 20, 1, 200 ,dd-MM-yyyy hh:mm=Dates de prises, 50)}}
{{:: Extract_Table (VAR Constantes de Base , Pouls = 20 ; SAO2 = 80 ; Temp = 30 , DATE VISITE , -24 , 100, 20, 1, 200 ,dd-MM-yyyy hh:mm=Dates de prises, 50)}}
{{:: Extract_Table (VAR Constantes de Base , Pouls = 20 ; SAO2 = 80 ; Temp = 30 , DATE ACTUELLE , +24 , 100, 20, 1, 200 ,dd-MM-yyyy hh:mm=Dates de prises, 50)}}

4.5.3.4 |==> {{:: Extract_VAR (VAR Constantes de Base , SAO2 , DATE VISITE , 0 , TOUTES )}}
{{:: Extract_VAR (VAR Constantes de Base , SAO2 , DATE VISITE , -24 , PREMIERE )}}
{{:: Extract_VAR (VAR Constantes de Base , SAO2 , DATE VISITE , +24 , DERNIERE )}}
{{:: Extract_VAR (VAR Constantes de Base , SAO2 , DATE VISITE , +-24 , PLUS PROCHE )}}

4.5.3.5 |==> {{\t*20}} cette instruction sera remplacée par 20 tabulations
de même : {{\r*15}} sera remplacée par 15 caractères retour chariot,
de même : {{\\*10}} sera remplacée par 10 caractères \ ,
de même : {{\n*25}} sera remplacée par 25 caractères fin de ligne,
de même {{D*30}} sera remplacée par 30 caractères D

4.5.3.6 |==> {{:: exe_process ( WaitEnd , ../../QLightPad/bin/QLightPad) }}
Exécute sans sommation le processus ou programme dont le chemin est désigné par le deuxième argument.
Paramètre N° 1 (option d'attente) :
peut prendre les valeurs suivantes :
WaitEnd et alors il sera attendu la fin du processus.
NoWaitEnd et alors la fin du processus n'est pas attendue.
Paramètre N° 2 (chemin du processus ou programme à exécuter) :
Terme désignant le processus ou programme devant être exécuté.
° ce chemin peut être exprimé en chemin relatif lorsqu'il commence par deux points ..
les deux points signifient alors de remonter d'un répertoire à partir du répertoire appelant (en général le répertoire appelant est : /MedinTux/Programmes/drtux/bin )
exemple le chemin relatif suivant ../.. fera remonter dans le répertoire /MedinTux/Programmes. La conversion en chemin absolu est inhibée si la mention $IsAbsPath est présente dans le chemin.
° Pour les MacOsX ce chemin peut être précédé de la mention $IsBinPath et alors le chemin sera considéré comme le binaire direct à exécuter et non comme une simple application( à laquelle sans cette mention il est ajouté le chemin vrai du binaire : .app/Contents/MacOS/ )
exemple : {{:: exe_process ( NoWaitEnd , $IsBinPath../../QLightPad/bin/QLightPad.app/Contents/MacOS/QLightPad)}}
pour les autres Os, cette mention est ignorée.
° Si la mention $IsAbsPath est présente dans le chemin, la conversion en chemin absolu est inhibée.
° Si la mention $NoAddExe est présente dans le chemin, l'extension .exe n'est pas ajoutée. Cela est utile pour l'appel de script exemple lors de l'appel direct d'un script PHP il ne faut pas ajouter l'extension .exe au nom de l'exécutable qui est ici le script.
Paramètre N° 3 (premier argument du programme) :
Paramètre N° N (nième argument du programme) :
° Si un argument commence par le modificateur $File alors ce qui suit la suite de $File sera considéré comme le chemin d'un fichier dont le contenu sera placé dans l'argument, et alors le nom de ce fichier peut contenir les mentions suivantes :
$Glossaire qui sera remplacée par le chemin du Glossaire.
$Vigie qui sera remplacée par le chemin de la Vigie.
° Si un argument commence par le modificateur [$File] alors il sera transformé en $File après interprétation et remplacement par le contenu des $File normaux, cela permet de protéger la mention $File dans une ligne d'arguments dans laquelle il est nécessaire de la placer, et éviter que le terme soit interprété et remplacé par le contenu.
exemple : {{::exe_process ( NoWaitEnd,../../APropos/bin/APropos,MailOnly,roland-sevin@medintux.org?subject=Salut tout le monde&body=[$File]../../fichierDuCorpsDuMail.txt)}}
° Mentions de conversion de chemins : il est parfois nécessaire de convertir en chemin absolu certaines parties des arguments, il faut alors encadrer la partie à convertir par les mentions suivantes :
$ToAbsPath et $EndToAbsPath .
° Mentions de direction d'un agument : Si un argument commence par la mention $toStdIn (qui peut être suivie de la mention $File) alors il sera écrit sur l'entrée standard du processus.
exemple : {{::exe_process ( WaitEnd, ../../Plug/OCR/medintux2tess.sh, LastScanned.tif, LastScanned, -l fra, $ToAbsPath../../tmp$EndToAbsPath/, nodebug)}}\
convertira le texte ../../tmp en chemin absolu comme par exemple /MedinTux/Programmes/tmp .
cette fonctionnalité est très utile, car elle permet d'exprimer des arguments de chemins en chemins relatifs afin de rendre le script indépendant de la localisation.

4.5.3.7 |==> {{::import ( ../../tmp/LastScanned.txt , insert , Observation , destPath, title )}}
Paramètre N° 1 (chemin du fichier à importer) :
peut contenir les mentions suivantes :
$Glossaire qui sera remplacée par le chemin du Glossaire.
$Theme qui sera remplacée par le chemin du Thème.
Paramètre N° 2 (modificateurs de comportement) :
peut contenir, séparées par un espace, les valeurs suivantes :
° insert et alors le contenu du fichier sera ajouté au curseur texte.
° new et alors il sera crée une nouvelle rubrique avec le contenu du fichier .
° print en cas de création de nouveau document avec new une impression directe sera aussi effectuée.
° replace et alors le contenu de la rubrique actuelle sera remplacé avec le contenu du fichier.
° crlf2html et alors les retours chariot seront convertis en retours html <br />.
° remove_src et alors le fichier d'origine est détruit.
° clear_src et alors le fichier d'origine est effacé mais non détruit.
° no_html et alors lors du mode insert seulement, le contenu du fichier sera débarrassé des tag html, et ne sera inséré que si il contient du texte significatif,.
° verbose et alors, s'il y a des erreurs, elles seront retournées dans le texte à la place du fichier à importer.
° noInquire et alors, s'il y a des boîtes de confirmation de choix, elles seront ignorées et le fichier importé.
Paramètre N° 3 (rubrique de destination) :
peut contenir le nom de la rubrique de destination, si omis alors c'est la rubrique active qui recevra le contenu du fichier.
Paramètre N° 4 (facultatif : répertoire de copie du document) :
si indiqué et non vide alors le document sera copié le répertoire indiqué par ce paramètre.
Paramètre N° 5 (facultatif : titre du document) :
peut contenir le titre du document.
exemple : {{::import ( $Glossaire/Vigie/Classeurs/Hospitalisation.html , new noInquire , Observation )}}\
créera une nouvelle rubrique Observation avec le fichier : $Glossaire/Vigie/Classeurs/Hospitalisation.html .
$Glossaire sera remplacé par le chemin du glossaire. Il ne sera pas demandé de confirmation si un même fichier du même jour existe déjà.
Cette instruction est utile, car permet de réaliser des scripts d'insertion de plusieurs documents à la fois sous forme de liasse de documents :
exemple : Création d'une liasse de documents. J'ai un protocole de prise en charge d'une entorse de la cheville. Lors d'une immobilisation plâtrée, il est utile de produire plusieurs documents :
° une ordonnance de médicaments avec notamment une injection d'HBPM.
° une prescription d'injections destinée à l'infirmière qui fera les injections.
° une prescription de surveillance des plaquettes deux fois par semaine.
° un document d'information au patient concernant la surveillance plâtrée.
° éventuellement un courrier au médecin qui va suivre ce patient.
Il suffit alors de placer dans un script de menu déroulant plusieurs instructions d'importation qui chacune importeront un des documents ci-dessus, et en un clic ils seront tous créés.
Il n'y a plus qu'à imprimer.

4.5.3.8 |==> {{::delete_file (../../tmp/LastScanned.txt, clear)}}

4.5.3.9 |==> {{::copy_file($ToAbsPath ../../tmp/{{GET LAST IMAGE NAME}} , $ToAbsPath ../../tmp/NewName.png, $remove_src_file)}}

4.5.3.10 |==> {{SAVE CURRENT DOC=../../tmp/exemple.text}}

4.5.3.11 |==> {{GET SAVE FILE NAME = ../../tmp/}}

4.5.3.12 |==> {{GET LAST IMAGE NAME}}

4.5.3.13 |==> {{GET LAST IMAGE SRC_NAME}}

4.5.3.14 |==> {{SAVE LAST IMAGE NAME== ../../tmp/ }}
{{SAVE LAST IMAGE NAME=../../tmp/ }}{{:: copy_files ($ToAbsPath ../../tmp/{{GET LAST IMAGE NAME}} ,
$ToAbsPath ../../tmp/NewName.png, $remove_src_file)}}

4.5.3.15 |==> {{::insert_image (./Ressources/icones/PingouinsSimple.png , 300 , 500) }}
{{SAVE LAST IMAGE NAME=../../tmp/}}{{:: exe_process (WaitEnd , /usr/bin/gimp ,$ToAbsPath ../../tmp/{{GET LAST IMAGE
NAME}})}}{{:: replace_image ({{GET LAST IMAGE NAME}}, ../../tmp/{{GET LAST IMAGE NAME}},-1,-1,$keep_src_name
$remove_src_file)}}

4.5.3.16 |==> {{:: replace_image ({{GET LAST IMAGE NAME}}, ../../tmp/{{GET LAST IMAGE NAME}},-1,-1, $keep_src_name
$remove_src_file) }}

4.5.3.17 |==> {{:: OPEN_FILE_NAME(Fichiers IMAGE [*.jpg *.jpeg *.png *.PNG *.gif *.GIF *.JPEG *.JPG];;Tous les fichiers [*], $ToAbsPath../../tmp$EndToAbsPath/}}
Cette instruction permet d'ouvrir le sélecteur de fichiers afin de sélectionner un fichier.
Paramètre N° 1 (filtre de sélection).
Paramètre N° 2 ( facultatif : prépositionne le répertoire avec lequel s'ouvrira le sélecteur de fichier )
{{:: replace_image ({{GET LAST IMAGE NAME}}, {{OPEN_FILE_NAME}}, -1, -1, $keep_Original_W $keep_Original_H) }}
{{:: replace_image ({{GET LAST IMAGE NAME}}, {{OPEN_FILE_NAME}}, 600, -1) }}

4.5.3.18 |==> {{IF {{SEXE PATIENT}} = F | e | |}}
{{IF {{::Upper ( {{ADRESSE COMPLETE MEDECIN}} ) }} %= MARS | commence par MARS | ne commence pas par MARS|}}
{{IF {{::Upper ( {{ADRESSE COMPLETE MEDECIN}} ) }} =% EILLE | finit par EILLE | ne finit pas par EILLE|}}
{{IF {{::Upper ( {{ADRESSE COMPLETE MEDECIN}} ) }} %% SEIL | contient SEIL | ne contient pas SEIL|}}
{{IF {{::Lower ( {{ADRESSE COMPLETE MEDECIN}} ) }} %% seil | contient seil | ne contient pas seil|}}
{{IF {{::DaysTo( {{DATE OBSERVATION}},{{CURRENT DATE}} ) }} > 30 | Observation datant de plus de 30 jours ||}}
{{IF {{AGE PATIENT ANNEE ABREGE}} >= 18 | Majeur | Mineur|}}

4.5.3.19 |==> {{:: Intitule ( Intitule du document , add ) }}
{{:: Intitule ( Intitule du document , change ) }}
{{:: Intitule ( Intitule du document ) }}

4.5.3.20 |==> {{:: sous_type ( sous_type du document , add ) }}
{{:: sous_type ( sous_type du document , change ) }}
{{:: sous_type ( sous_type du document ) }}

4.5.3.21 |==> {{::Calc (25 , * , POIDS) }}
{{::Calc (25 , x , POIDS) }}
{{::Calc (25 , + , POIDS) }}
{{::Calc (25 , / , POIDS) }}
{{::Calc (25 , - , POIDS) }}
{{::Calc (25 , * , TAILLE) }}
{{::Calc (25 , * , SURFACE) }}
{{::Calc (25 , * , BMI) }}
{{::Calc (25 , * , {{AGE PATIENT ANNEE ABREGE}}) }}

4.5.3.22 |==> {{INTERVENANT = Médecine générale CHAMPS DESIRES = TNP,S,A,CV DECALAGE= }}
{{INTERVENANT = Médecine générale CHAMPS DESIRES = TNP,S,A,CV DECALAGE= SEP=<hr>}}

4.5.3.23 |==> {{INTERV_STRUCT_XXX = Médecine generale STYLE = liste CHAMPS DESIRES = TNPSACV DECALAGE= }}
{{INTERV_STRUCT_XXX = Médecine generale STYLE = noms CHAMPS DESIRES = TNPSACV DECALAGE= }}
{{INTERV_CHAMP_XXX_TITRE}}
{{INTERV_CHAMP_XXX_SPECIALITE}}
{{INTERV_CHAMP_XXX_NOM}}
{{INTERV_CHAMP_XXX_PRENOM}}
{{INTERV_CHAMP_XXX_ADR_1}}
{{INTERV_CHAMP_XXX_ADR_2}}
{{INTERV_CHAMP_XXX_ADR_3}}
{{INTERV_CHAMP_XXX_CODE_POST}}
{{INTERV_CHAMP_XXX_VILLE}}
{{INTERV_CHAMP_XXX_NOM}}
{{INTERV_CHAMP_XXX_NOM}}

4.5.3.24 |==> {{DATE TIRET}}

4.5.3.25 |==> {{dd-MM-yyyy}}

4.5.3.26 |==> {{date}}

4.5.3.27 |==> {{HHHMM}}

4.5.3.28 |==> {{DT=expression}}

4.5.3.29 |==> {{hh:mm}}

4.5.3.30 |==> {{DATE DOCUMENT=Prescription FORMAT=dd-MM-yyyy}}

4.5.3.31 |==> {{DATE VISITE}}

4.5.3.32 |==> {{DATE OBSERVATION}}

4.5.3.33 |==> {{USER TITRE PS}}

4.5.3.34 |==> {{USER ADRESSE COMPLETE MEDECIN}}

4.5.3.35 |==> {{USER ADRESSE MEDECIN}}

4.5.3.36 |==> {{USER VILLE MEDECIN}}

4.5.3.37 |==> {{USER CP MEDECIN}}

4.5.3.38 |==> {{USER SEXE MEDECIN}}

4.5.3.39 |==> {{USER SPECIALITE MEDECIN}}

4.5.3.40 |==> {{USER IDENTIFICATION MEDECIN}}

4.5.3.41 |==> {{USER CONVENTION MEDECIN}}

4.5.3.42 |==> {{USER NOM PRENOM MEDECIN}}

4.5.3.43 |==> {{USER NOM MEDECIN}}

4.5.3.44 |==> {{USER PRENOM MEDECIN}}

4.5.3.45 |==> {{USER LOGIN MEDECIN}}

4.5.3.46 |==> {{TITRE PS}}

4.5.3.47 |==> {{ADRESSE COMPLETE MEDECIN}}

4.5.3.48 |==> {{ADRESSE MEDECIN}}

4.5.3.49 |==> {{VILLE MEDECIN}}

4.5.3.50 |==> {{CP MEDECIN}}

4.5.3.51 |==> {{SEXE MEDECIN}}

4.5.3.52 |==> {{SPECIALITE MEDECIN}}

4.5.3.53 |==> {{IDENTIFICATION MEDECIN}}

4.5.3.54 |==> {{CONVENTION MEDECIN}}

4.5.3.55 |==> {{NOM PRENOM MEDECIN}}

4.5.3.56 |==> {{NOM MEDECIN}}

4.5.3.57 |==> {{PRENOM MEDECIN}}

4.5.3.58 |==> {{AGE PATIENT ABREGE}}

4.5.3.59 |==> {{AGE PATIENT ANNEE ABREGE}}

4.5.3.60 |==> {{AGE PATIENT}}

4.5.3.61 |==> {{NUM. TEL1 PATIENT}}
Cette instruction retourne le premier numéro de téléphone du patient.
Variantes : {{NUM TEL1 PATIENT}}

4.5.3.62 |==> {{NUM. TEL2 PATIENT}}
Cette instruction retourne le deuxième numéro de téléphone du patient.
Variantes : {{NUM TEL2 PATIENT}}

4.5.3.63 |==> {{NUM. TEL3 PATIENT}}
Cette instruction retourne le troisième numéro de téléphone du patient.
Variantes : {{NUM TEL3 PATIENT}}

4.5.3.64 |==> {{EMAIL PATIENT}}

4.5.3.65 |==> {{DATE NAISSANCE PATIENT=format de la date}}
retourne la date de naissance de l'assuré selon le format spécifié dans le paramètre facultatif N°1
Paramètre N° 1 (format de retour pour la date : facultatif et par défaut dd-MM-yyyy) voir en paragraphe 3.4.3.5

4.5.3.66 |==> {{SEXE PATIENT}}

4.5.3.67 |==> {{TITRE PATIENT}}

4.5.3.68 |==> {{PROFESSION PATIENT}}

4.5.3.69 |==> {{NOMBRE D'ENFANT PATIENT}}

4.5.3.70 |==> {{VILLE PATIENT}}

4.5.3.71 |==> {{CODE POSTAL PATIENT}}

4.5.3.72 |==> {{ADRESSE PATIENT}}

4.5.3.73 |==> {{ADRESSE COMPLETE PATIENT}}

4.5.3.74 |==> {{ADRESSE PATIENT UNE LIGNE}}

4.5.3.75 |==> {{NUM. SECU PATIENT = separateur}}
Cette instruction retourne le numéro de sécurité sociale du patient.
Paramètre N° 1 ( séparateur de clef facultatif). si indiqué alors la clef du numéro de sécurité sociale est rajoutée avec l'éventuel séparateur indiqué dans le paramètre N°1.
Si la valeur du séparateur est égale à $no key , le numéro de sécurité sociale du patient est retourné sans la clef.
Variantes : {{NUM SECU PATIENT}}

4.5.3.76 |==> {{NOM PRENOM ASSURE}}

4.5.3.77 |==> {{NOM PRENOM INTERVENANT=Médecine générale}}

4.5.3.78 |==> {{NOM PATIENT}}

4.5.3.79 |==> {{PRENOM PATIENT}}

4.5.3.80 |==> {{NOM PRENOM PATIENT}}

4.5.3.81 |==> {{POIDS PATIENT}}

4.5.3.82 |==> {{BMI PATIENT}}

4.5.3.83 |==> {{SURFACE PATIENT}}

4.5.3.84|==> {{::Nouveau Document (nom rubrique)}}
Cette instruction permet de créer un nouveau document avec pour nom de la rubrique, un des types suivants : Observation Prescription Documents Terrain.
Variantes : {{Nouveau Document = nom rubrique}}

4.5.3.85 |==> {{:: TEST(String, Valeur1, = ,Valeur2, c'est vrai, c'est faux )}}
Variantes : {{:: SI (String, Valeur1, = ,Valeur2, c'est vrai, c'est faux )}}
Cette instruction de type opérateur ternaire, permet de faire des tests conditionnels.
Paramètre N° 1 (type de test).

° Si S les valeurs testées seront des chaînes.
° Si N les valeurs comparées sont des valeurs numériques

Paramètre N° 2 (première valeur à tester )
Paramètre N° 3 (opérateur de test à effectuer)

° Si = teste l'égalité.
° Si > vrai si Valeur1 supérieure à Valeur2
° Si < vrai si Valeur1 inférieure à Valeur2
° Si >= vrai si Valeur1 supérieure ou égale à Valeur2
° Si <= vrai si Valeur1 inférieure ou égale à Valeur2
° Si != vrai si Valeur1 différente de Valeur2
° Si %= vrai si Valeur1 commence par Valeur2
° Si =% vrai si Valeur1 finit par Valeur2
° Si %=% vrai si Valeur1 contient de Valeur2

Paramètre N° 4 (deuxième valeur à tester).
Paramètre N° 5 (données à placer si vrai).
Paramètre N° 6 (données à placer si faux).
{{:: TEST(Numérique, Valeur1, = ,Valeur2, c'est vrai, c'est faux )}}
{{:: SI (S,{{SEXE MEDECIN}},=,F,e)}}
{{:: Si (N,{{AGE PATIENT}},>=,18,majeur,mineur)}}

4.5.3.86 |==> {{::Fill ( 38 , --- )}}
Paramètre N° 1 (nombre de répétitions) :
Paramètre N° 2 (motif à répéter) :
Peut contenir la valeur suivante spc qui sera remplacée par un espace.
Si le deuxième paramètre est absent, le motif par défaut à répéter sera un espace.

4.5.3.87 |==> {{:: DO_LISTE (Bernard|Bruno|Jean|Vincent|Paul , Choix d'un prénom , | , retour, nbr de champs à afficher, mode multi ou simple sélection)}}
Cette instruction permet d'afficher un dialogue de liste de choix d'items.
Paramètre N° 1 (liste des items séparés par le séparateur indiqué en paramètre N°3 ou | si celui-ci est absent) .
Facilité : si, dans un item, est présent le motif ::, il sera affiché à la place le caractère espace.
Cette facilité permet d'afficher des items constitués eux-mêmes d'un ensemble d'éléments
séparés par un séparateur que l'on ne veut pas rendre visible lors de l'affichage.
Exemple : {{:: DO_LISTE (TARTEMPION::Bernard|COEUR::Bruno|AYMARD::Jean|MAUVE::Guy , Choix d'un prénom ,|, retour_de_liste,-1, S )}}
{{VAR=retour_de_liste}}
Affichera la liste suivante:
affichera : Rejected si vous cliquez sur le bouton de fermeture sans avoir cliqué sur un item de la liste.
affichera : Accepted si vous cliquez sur le bouton de fermeture après avoir cliqué sur un item de la liste.
Paramètre N° 2 (titre du dialogue) ce paramètre est facultatif.
Paramètre N° 3 (séparateur d'items) ce paramètre est facultatif et alors le séparateur par défaut sera | si EOL se sera les fins de lignes .
Paramètre N° 4 (variable de retour) ce paramètre est facultatif et, si indiqué, est le nom d'une variable dans laquelle sera retourné : 'Rejected' si la fenêtre a été fermée sans qu'un choix ait été fait . 'Accepted' si un des éléments de la liste a été cliqué. La valeur de cette variable peut être obtenue par la suite en faisant comme dans l'exemple ci-dessus {{VAR=retour_de_liste}} .
Paramètre N° 5 (nombre de champs à afficher par item) paramètre facultatif qui permet de limiter l'affichage d'un item composé de plusieurs champs à seulement certains champs. Ce nombre est le nombre de champs séparés par :: qu'il conviendra d'afficher par item. Cela permet de cacher par exemple lors du retour d'une requête SQL, une clef primaire. Le séparateur de champs composant l'item doit être obligatoirement :: lors de l'affichage il sera remplacé par un espace, lors de la sélection d'un item, le texte retourné, contient lui l'entière liste des champs séparés par ::, comme lors de l'appel.
Si -1 alors tous les champs sont à afficher.
Paramètre N° 6 (mode multisélection) paramètre facultatif qui permet de limiter de spécifier le mode de sélection simple 'S' ou multi 'M'.
Exemple : {{:: DO_LISTE (TARTEMPION::Bernard::103|COEUR::Bruno::105|AYMARD::Jean::110|MAUVE::Guy::140 , Choix d'un prénom ,|, retour,2)}}
Affichera la liste suivante:
et retournera : AYMARD::Jean::110 si vous cliquez sur la ligne correspondante. Nous voyons que l'affichage dans la liste remplace :: par un espace et que la liste n'affiche que les deux premiers champs séparés par :: comme indiqué par le paramètre N° 5 et cache donc le dernier champ qui est un nombre.
Exemple sophistiqué : permettant le choix d'un correspondant et d'affecter la clef primaire de ce correspondant à une variable, pouvant être utilisée par la suite pour récupérer son adresse postale ou autres renseignements, pour automatiser l'en-tête d'un courrier.
{{\
{{:: SET_VAR(resultat,{{::DO_LISTE({{::#SQL_SELECT (Personnes , Nom |Prenom|ID_PrimKey,WHERE NumOrdre!='' , 30,::,|) }},Nom du médecin,|,retourAdressePar,2)}})}}\
{{:: VAR_SPLIT(AdressePar_,{{VAR=resultat}},::)}}\
}}\
{{REM= -------------- utilisation par la suite des renseignements du choix --------------}}\
{{::#TEST(S,{{VAR=retourAdressePar}},=,Accepted,
Nom : {{VAR=AdressePar_0}}
Prénom : {{VAR=AdressePar_1}}
Clef primaire : {{VAR=AdressePar_2}},)}}

4.5.3.88 |==> {{::SQL_EXEC( requete sql )}}
Cette instruction exécute une requête SQL sur la base DrTuxTest . Une requête SQL contient souvent des parenthèses et des virgules qui seraient interprétées de façon inappropriée par le langage de macro, il convient donc d'écrire la requête en plaçant :
- la mention : &#44; à la place d'une virgule ,
- la mention : &#40; à la place d'une parenthèse ouvrante (
- la mention : &#41; à la place d'une parenthèse fermante )

4.5.3.89 |==> {{::SQL_GET_RUB_HEAD_PK ( Observation) }}
Cette instruction affiche la clef primaire de la rubrique en cours d'affichage, instruction utile pour les appels aux programmes externes et instructions SQL.
Paramètre N° 1 (nom de la rubrique) .
Paramètre facultatif. Si le nom de la rubrique n'est pas précisé, c'est la rubrique courante en cours d'affichage qui est concernée
Variantes : {{SQL_GET_RUB_HEAD_PK = nom rubrique}}

4.5.3.90 |==> {{::SQL_SELECT ( table , nom|prenom|sexe , WHERE nom=paul , 1000 , % , | , &nbsp;&nbsp;&nbsp;° Nom : %0 Prénom : %1 Sexe : %2 )}}
Cette instruction permet d'exécuter une requête SQL et de formater le retour par exemple pour l'afficher avec la liste de choix d'items {{:: DO_LISTE}}.
Paramètre N° 1 (nom de la table sur laquelle la requête s'exécute) .
Paramètre N° 2 (nom des champs à retourner séparés par | )
Paramètre N° 3 (condition SQL de la requête).
Une requête SQL et donc la condition SQL contient souvent des parenthèses et des virgules qui seraient interprétées de façon inappropriée par le langage de macro, il convient donc d'écrire la condition SQL en plaçant :
- la mention : &#44; à la place d'une virgule ,
- la mention : &#40; à la place d'une parenthèse ouvrante (
- la mention : &#41; à la place d'une parenthèse fermante )
Paramètre N° 4 (nombre maximum de réponses par défaut 20, facultatif).
Paramètre N° 5 (séparateur de champs lors du retour, par défaut un espace, facultatif).
si ce séparateur prend la valeur : $SET_VAR alors chaque champ retourné après exécution de la requête SQL
le sera dans une variable dont le nom aura la forme suivante nomdelatable.nomduchamp 0
où 0 sera l'occurrence du retour soit le numéro de la rangée (notez que cela peut créer beaucoup de variables).
Paramètre N° 6 (séparateur de lignes lors du retour, par défaut un retour chariot, facultatif).
Paramètre N° 7 (Masque d'intégration des données facultatif).

Si, dans ce paramètre, vous placez une chaîne de caractères contenant : le séparateur de champ donné en paramètre N°5 auquel vous accolez le numéro d'ordre du champ tel qu'il apparaît dans le paramètre N°2, comme par exemple %0 pour nom %1 pour prénom %2 pour le sexe, alors, pour chaque réponse de la requête, la sortie se fera en ajoutant cette chaîne avec les motifs %0 %1 %2 remplacés par la valeur du champ correspondant suivie du séparateur de lignes. Cela permet d'envisager des sorties avec la présentation de votre choix.

exemple : {{::Do_liste(\
{{::#SQL_SELECT ( Personnes , Nom|Prenom , WHERE Qualite='Maintenance informatique' , 300 , &nbsp; , | ) }},\
Nom du médecin
)}}
affichera la liste des intervenants limitée à 300 lignes, ayant pour qualité Maintenance informatique.
exemple : {{::DO_LISTE({{::#SQL_SELECT (Personnes , Nom |Prenom,WHERE NumOrdre!='' , 30,&nbsp;,| ) }}, Nom du médecin)}}
affichera la liste des intervenants médecins limitée à 30 lignes de résultats.
exemple :
{{::#SQL_SELECT ( fchpat_Intervenants INNER JOIN Personnes ON fchpat_Intervenants.fchpat_Intervenants_IntervPK=Personnes.ID_PrimKey ,
Personnes.Qualite|Personnes.Nom|Personnes.Prenom|Personnes.Tel_1 ,
WHERE fchpat_Intervenants.fchpat_Intervenants_PatPK = '{{SQL_GET_DOSS_PK}}' , 300,%,<br>,&nbsp;&nbsp;&nbsp;° %0 : %1 %2 Tél. %3) }}
affichera la liste des intervenants limitée à 300 lignes, concernant le patient en cours.
exemple :

Correspondants du patient :
{{::#SQL_SELECT ( fchpat_Intervenants INNER JOIN Personnes ON fchpat_Intervenants.fchpat_Intervenants_IntervPK=Personnes.ID_PrimKey , Personnes.Qualite|Personnes.Nom|Personnes.Prenom|Personnes.Tel_1 , WHERE fchpat_Intervenants.fchpat_Intervenants_PatPK = '{{SQL_GET_DOSS_PK}}' , 300 ,%,<br>,&nbsp;&nbsp;&nbsp;° %0 : %1 %2 Tél. %3) }}
produira l'affichage suivant :
Correspondants du patient :
° Infirmière : DUPOND Béatrice Tél. 1212121234
° Maintenance informatique : GERMAIN Pascal Tél. 1212121234
° Cardiologue : DUCOEUR Bertrand Tél. 1212121234

4.5.3.91 |==> {{:: LINE_EDIT (texte, title, texte d'information)}}
Cette instruction affiche un dialogue simple d'édition de texte vous permettant de saisir un petit texte.
Paramètre N° 1 (chaîne pour préremplir la ligne d'édition)
Paramètre N° 2 (titre du dialogue d'édition)
Paramètre N° 3 (facultatif : texte d'information sur la nature de al saisie) peut contenir les mentions suivantes :
$File sera considéré comme le chemin d'un fichier à charger et alors le nom de ce fichier peut contenir les mentions suivantes.
$Glossaire qui sera remplacée par le chemin du Glossaire.
$Vigie qui sera remplacée par le chemin de la Vigie.
Paramètre N° 4 (facultatif : répertoire où se trouvent les images) peut contenir les mentions suivantes :
$Glossaire qui sera remplacée par le chemin du Glossaire.
$Vigie qui sera remplacée par le chemin de la Vigie.
par défaut, le répertoire des images est celui de l'éventuel fichier indiqué à la suite de $File du Paramètre N° 1.
Exemple : {{:: LINE_EDIT (Ligne de texte en édition, test de l'édition)}} affichera le dialogue suivant :
Exemple :
{{:: LINE_EDIT (Ligne de texte en édition, test de l'édition,$File../../Doc/index.html)}}
affichera le dialogue suivant :
Exemple :
{{:: LINE_EDIT (3000, Période du timer, Nouvelle période pour le timer : <br>* si négatif le timer sera activé juste une fois pour la période définie.<br>* si positif le timer sera activé à chaque période.<br>* zéro le timer s'arrête et n'est plus actif., paramétrage d'un menu timer)}}
affichera le dialogue suivant :

4.5.3.92 |==> {{SQL_GET_DOSS_GUID}}
Cette instruction affiche le GUID (identifiant unique) du dossier en cours, instruction utile pour les appels aux programmes externes et instructions SQL.
Variantes : {{GET_DOSS_GUID}} {{GET_DOSS_GUID}} {{GUID}}

4.5.3.93 |==> {{SQL_GET_DOSS_PK}}
Cette instruction affiche la clef primaire du dossier en cours, instruction utile pour les appels aux programmes externes et instructions SQL.

4.5.3.94 |==> {{OS}}
Cette instruction, utile pour les possesseurs de chien, retourne L'OS en cours.

W si W indows
M Si M acOS
L Si L inux

4.5.3.95 |==> {{:: APPEND_DOC_IN_CLASSEUR (hierarchie, forcerInsertion)}}
Cette instruction de classement automatique est celle qui va permettre à un document d'indiquer lors de sa création
et insertion par l'utilisateur, l'endroit où il doit être classé dans la Vigie.
Paramètre N° 1 (hiérarchie de classeurs indiquant le classeur final où doit être classé le document) .
Paramètre N° 2 (ce paramètre détermine le devenir d'un document si il n'a pas pu être classé dans la Vigie)

Lorsque le classeur de destination indiqué par le paramètre N°1 (hiérarchie de classeurs de destination)
n'est pas accessible (n'existe pas, inaccessible pour ce profil ou ce filtre, etc ...)
° si ce paramètre est supérieur à 0 (zéro), le document sera ajouté et créé mais non classé dans la Vigie.
° si ce paramètre est à zéro, le document ne sera ni classé ni ajouté ou créé.

Exemple :
dans cet exemple, le document ayant ces macros-instructions sera classé dans deux classeurs à la fois.
Si le classement dans un des classeurs échoue, le document sera tout de même créé (forcerInsertion à 1).
{{\
{{::Append_doc_in_classeur (Classeur_Médecine_Générale/Non classés, 1)}}\
{{::Append_doc_in_classeur (Historique du dossier, 1)}}\
}}

4.5.3.96 |==> {{DOC_TYPE=Prescription, 1}}
Cette instruction placée en début de document indique et force une rubrique de destination dans laquelle le document doit être placé lors de son chargement.
Paramètre N° 1 (Rubrique de destination du document)
Paramètre N° 2 (facultatif) si 1, il n'est pas posé de question au cas où un document est déjà existant à cette date.

4.5.3.97 |==> {{GET_SELECTION=Nom de la variable}}
Cette instruction retourne le texte sélectionné dans le texte en cours.
Paramètre N° 1 (facultatif) modificateur de méthode
Si ce paramètre est égal à la valeur $File alors la sélection sera écrite sur le disque dans le fichier indiqué à la suite de $File .
Si ce paramètre est égal à la valeur $Paste alors la méthode de sélection sera un copy/paste (parfois meilleurs résultats) .
Sinon ce paramètre indique le nom d'une variable à initialiser avec le contenu de la sélection. Idem à {{:: VAR_SET(Nom de la variable, $Selection}}

4.5.3.98 |==> {{:: VAR_SET(Nom de la variable, valeur de la variable)}}
Cette instruction positionne la variable 'Nom de la variable' indiquée par le premier paramètre, sur la valeur indiqué dans le deuxième paramètre. Cette instruction est utile pour stocker un résultat provenant d'une série de macro complexes. Par la suite, il suffira juste d'utiliser {{VAR=Nom de la variable}} pour récupérer la valeur sans avoir à effectuer ni réécrire la macro complexe.
Paramètre N° 1 (nom de la variable)
Paramètre N° 2 (valeur de la variable)
si cette valeur commence par le modificateur $Selection alors elle sera initialisée avec le contenu du texte sélectionné dans l'éditeur de texte courant idem à {{GET_SELECTION=Nom de la variable}}
si cette valeur commence par le modificateur $File alors ce qui suit la suite de $File sera considéré comme le chemin d'un fichier à charger et alors le nom de ce fichier peut contenir les mentions suivantes :
$Glossaire qui sera remplacée par le chemin du Glossaire.
$Vigie qui sera remplacée par le chemin de la Vigie.
Variantes : {{:: SET_VAR(nom de la variable, valeur de la variable)}}

4.5.3.99 |==> {{VAR=Nom de la variable}}
Cette instruction place le contenu de la variable dont le nom est indiqué par le paramètre : Nom de la variable.
Paramètre N° 1 (nom de la variable)
Variantes : {{PUT_VAR=nom de la variable}}

4.5.3.100 |==> {{:: LIST_DIR (repertoire, filtre, extension, sep, 1) }}
Cette instruction crée une chaîne constituée de tous les éléments trouvés dans le répertoire spécifié dans le paramètre N° 1 , séparés par le séparateur indiqué par le terme sep.
La liste peut être filtrée par un filtre sur les extensions et sur les nom des fichiers.
Paramètre N° 1 (nom du répertoire dont il faut lister le contenu)
Paramètre N° 2 (liste de chaînes validantes : facultative)
Liste des chaînes validantes séparées par le séparateur sep, qui, si une est contenue dans le nom d'un des éléments du répertoire, retient cet élément comme à inclure dans la liste.
Si cette liste est vide, il ne sera pas tenu compte de cette liste.
Paramètre N° 3 (liste des extensions validantes : facultative)
Liste des extensions validantes séparées par le séparateur sep, qui si une est contenue dans l'extension d'un des éléments du répertoire, retient cet élément comme à inclure dans la liste.
Si cette liste est vide, il ne sera pas tenu compte de cette liste.
Paramètre N° 4 (séparateur : falcultatif)
si non indiqué par défaut, est égal à |
Paramètre N° 5 (nature de la liste : falcultatif)
si non indiqué par défaut, est égal à 0
si à 1 alors il sera listé les répertoires.

4.5.3.101 |==> {{:: MESSAGE_ALERT (message, titre, bouton1, bouton2, bouton3, bouton4, hauteur, largeur, chemin des images) }}
variante {{:: FORM_MESSAGE (message, titre, bouton1, bouton2, bouton3, bouton4, hauteur, largeur, chemin des images) }}
Cette instruction affiche un dialogue à choix multiples constitué d'un texte d'information et d'un maximum de quatre boutons de choix.
Le texte retourné est celui du bouton cliqué.
Paramètre N° 1 (message du texte d'information) qui, si commence par
$File sera considéré comme le chemin d'un fichier à charger et alors le nom de ce fichier peut contenir les mentions suivantes.
$Glossaire qui sera remplacée par le chemin du Glossaire.
$Vigie qui sera remplacée par le chemin de la Vigie.
Paramètre N° 2 (titre du dialogue : facultatif)
Paramètre N° 3 à 6 (texte des boutons : facultatif) si aucun bouton n'est défini, le bouton par défaut ok est activé. Cela permet d'afficher très simplement un texte d'information.
Paramètre N° 7 (largeur du dialogue : facultatif)
Paramètre N° 8 (hauteur du dialogue : facultatif)
Paramètre N° 9 (répertoire où se trouvent les images : facultatif) peut contenir les mentions suivantes :
$Glossaire qui sera remplacée par le chemin du Glossaire.
$Vigie qui sera remplacée par le chemin de la Vigie.
par défaut, le répertoire des images est celui de l'éventuel fichier indiqué à la suite de $File du Paramètre N° 1.
Exemple :
{{::#MESSAGE_ALERT (message de test pour vous pour démonstration de l'instruction \
MESSAGE_ALERT il est même possible d'y placer des images\
,\
exemple MESSAGE ALERT, bouton1, bouton2, bouton3, bouton4, 450, 250) }}
affichera la boîte de dialogue suivante :
Exemple :
{{::#MESSAGE_ALERT ($File../../Doc/index.html,exemple MESSAGE ALERT, bouton1,,,, 470,220,../../Doc) }}
ou la variante (alors le répertoire des images sera déduit de ../../Doc/index.html )
{{::#MESSAGE_ALERT ($File../../Doc/index.html, exemple MESSAGE ALERT, bouton1,,,, 470,220) }}
affichera la boîte de dialogue suivante :

4.5.3.102 |==> {{:: MESSAGE_POPUP (message, chemin bitmap, tempo) }}
variante {{:: FORM_POPUP_MESSAGE (message, chemin bitmap, tempo) }}
Cette instruction affiche un petit texte dans un popup surgissant en bas à droite de l'écran, pour par exemple signaler pourquoi une action est sans effet.
Paramètre N° 1 (texte du message à afficher)
Paramètre N° 2 (chemin du bitmap à afficher : facultatif)
Paramètre N° 3 (temps de persistance du popup à l'écran en milli secondes : facultatif et alors par défaut 1000 ms soit 1 seconde)

4.5.3.103 |==> {{:: FORM_DATE (05-06-1956, titre du dialogue , format de retour, liste de présélection de dates}}
Paramètre N° 1 (date à prépositionner) format dd-MM-yyyy
Paramètre N° 2 (titre du dialogue : facultatif et par défaut Choix dans la date)
Paramètre N° 3 (format de retour : facultatif et par défaut dd-MM-yyyy) voir en paragraphe 3.4.3.5
Paramètre N° 4 (menu de présélection des dates: facultatif) ce paramètree permet de positionner un bouton de menu avec une présélection de dates
chacune des options de ce menu est séparée de l'autre par le séparateur '|' . La syntaxe d'une option est la suivante :
Ce jour à 8:00 h pour une option repositionnant à la date du jour
Ce jour à 8:00 h + 1 jour pour une option repositionnant à la date du jour plus un jour
Ce jour à 8:00 h + 8 jours pour une option repositionnant à la date du jour plus huit jours
Ce jour à 8:00 h - 8 jours pour une option repositionnant à la date du jour moins huit jours etc ....
exemple : {{:: FORM_DATE ({{dd-MM-yyyy}}, titre du dialogue ,dd-MM-yyyy, Ce jour à 8:00 h|Ce jour à 8:00 h + 1 jour|Ce jour à 8:00 h + 2 jours|Ce jour à 8:00 h + 3 jours|Ce jour à 8:00 h + 4 jours|Ce jour à 8:00 h + 6 jours|Ce jour à 8:00 h + 8 jours|Ce jour à 8:00 h + 15 jours)}}
exemple de menu avec les jours mois et années et heures prépositionnées :
Ce jour à 8:00 h - 2 jours|Ce jour à 8:00 h - 1 jour|Ce jour à 8:00 h - 24 h|Ce mois à 0:00 h|Ce mois à 0:00 h - 1 mois|Cette année à 0:00 h|Cette année à 0:00 h - 1 an

4.5.3.104 |==> {{:: FORM_HEURE (12:45:32, format de retour}}}
Cette instruction affiche le dialogue de choix de l'heure et en retourne l'heure saisie selon le paramètre : format de retour .
Paramètre N° 1 (heure à prépositionner : facultatif et par défaut l'heure courante) format hh:mm:ss
Paramètre N° 2 (format de retour : facultatif et par défaut hh:mm:ss) voir en paragraphe 3.4.3.5

4.5.3.105 |==> {{:: FORM_DATE_HEURE (05-06-1956, 12:30:45, titre du dialogue , format de retour date, format de retour heure, séparation, , liste de présélection de dates}}
Cette instruction affiche le calendrier et l'heure pour choisir une date et une heure et en retourne la valeur saisie selon le format indiqué dans le quatrième et cinquième paramètre : format de retour .
Paramètre N° 1 (date à prépositionner : facultatif et par défaut la date courante) format dd-MM-yyyy
Paramètre N° 2 (heure à prépositionner : facultatif et par défaut l'heure courante) format hh:mm:ss
Paramètre N° 3 (titre du dialogue : facultatif et par défaut saisie de la date et de l'heure)
Paramètre N° 4 (format de retour pour la date : facultatif et par défaut dd-MM-yyyy) voir en paragraphe 3.4.3.5
Paramètre N° 5 (format de retour pour l'heure : facultatif et par défaut hh:mm:ss) voir en paragraphe 3.4.3.5
Paramètre N° 6 (texte à placer entre la date et l'heure : facultatif et par défaut un espace)
Paramètre N° 7 (menu de présélection des dates: facultatif) ce paramètre permet de positionner un bouton de menu avec une présélection de dates
chacune des options de ce menu est séparée de l'autre par le paramètre '|' . La syntaxe d'une option est la suivante :
Ce jour à 8:00 h pour une option repositionnant à la date du jour
Ce jour à 8:00 h + 1 jour pour une option repositionnant à la date du jour plus un jour
Ce jour à 8:00 h + 8 jours pour une option repositionnant à la date du jour plus huit jours
Ce jour à 8:00 h - 8 jours pour une option repositionnant à la date du jour moins huit jours etc ....
exemple : {{:: FORM_DATE_HEURE ( {{dd-MM-yyyy}}, 08:00:00,saisie de l'heure et de la date,dd-MM-yyyy, hh:mm, à , Ce jour à 8:00 h|Ce jour à 8:00 h + 24 hr|Ce jour à 8:00 h + 2 jours|Ce jour à 8:00 h + 3 jours|Ce jour à 8:00 h + 4 jours|Ce jour à 8:00 h + 6 jours|Ce jour à 8:00 h + 8 jours|Ce jour à 8:00 h + 15 jours)}}
exemple de menu avec les jours mois et années et heures prépositionnées :
Ce jour à 8:00 h - 2 jours|Ce jour à 8:00 h - 1 jour|Ce jour à 8:00 h - 24 h|Ce mois à 0:00 h|Ce mois à 0:00 h - 1 mois|Cette année à 0:00 h|Cette année à 0:00 h - 1 an
exemple :
en date du {{:: FORM_DATE_HEURE (05-06-1956, 12:30:45, saisie de l'heure et de la date,dd-MM-yyyy, hh:mm, à ) }}
affichera le dialogue suivant :

qui après saisie donnera : en date du 05-06-1956 à 12:30

4.5.3.106 |==> {{REM= texte de votre choix }}
Cette instruction ne fait rien, et permet d'afficher un commentaire dans le texte de la macro .

4.5.3.107 |==> {{:: INCLUDE( chemin du fichier, modificateur ) }}
Cette instruction charge un fichier et en retourne le contenu.
Paramètre N° 1 (chemin du fichier à charger) peut contenir les mentions suivantes :
$Glossaire qui sera remplacée par le chemin du Glossaire.
$Vigie qui sera remplacée par le chemin de la Vigie.
Paramètre N° 2 (modificateur : facultatif) si contient : crlf2html alors les retours chariots seront conservés et convertis en <br>

4.5.3.108 |==> {{:: VAR_SPLIT( prefix, string to split , séparateur, allowEmptyEntries) }}
Cette instruction distribue les segments d'une chaîne séparés par un séparateur indiqué par le troisième argument : séparateur,
en plusieurs variables dont le nom est constitué par : le deuxième argument auquel est ajouté l'occurrence du segment dans la chaîne.
Paramètre N° 1 (nom préfixé de la variable) préfixe du nom de la variable auquel sera ajoutée l'occurrence du segment dans la chaîne.
Paramètre N° 2 (chaîne de caractères à séparer) exemple 'premier segment | deuxième segment | troisième segment'.
Paramètre N° 3 (séparateur facultatif) contient le séparateur. Si vide il sera pris par défaut le séparateur |
Paramètre N° 4 (entrées vides autorisées facultatif par defaut TRUE)
si valeur = FALSE, si un segment est vide, il n'y aura pas de variable affectée.
si valeur = TRUE (valeur par défaut) , si un segment est vide il y aura une variable vide affectée.

4.5.3.109 |==> {{VAR_LIST_CLEAR}} Cette instruction détruit toutes les variables afin de réinitialiser la liste des variables.

4.5.3.110 |==> {{USER_EMAIL_MEDECIN}} Retourne l'email du médecin en cours d'utilisation du programme.

4.5.3.111 |==> {{USER_TEL_1_MEDECIN}} Retourne le premier numéro de téléphone du médecin en cours d'utilisation du programme.

4.5.3.112 |==> {{USER_TEL_2_MEDECIN}} Retourne le deuxième numéro de téléphone du médecin en cours d'utilisation du programme.

4.5.3.113 |==> {{USER_TEL_3_MEDECIN}} Retourne le troisième numéro de téléphone du médecin en cours d'utilisation du programme.

4.5.3.114 |==> {{EMAIL_MEDECIN}} Cette instruction retourne l'email du médecin auteur du document en cours.

4.5.3.115 |==> {{TEL_1_MEDECIN}} Cette instruction retourne le premier numéro de téléphone du médecin auteur du document en cours.

4.5.3.116 |==> {{TEL_2_MEDECIN}} Cette instruction retourne le deuxième numéro de téléphone du médecin auteur du document en cours.

4.5.3.117 |==> {{TEL_3_MEDECIN}} Cette instruction retourne le troisième numéro de téléphone du médecin auteur du document en cours.

4.5.3.118 |==> {{::#CADRE(largeur, epaisseur du bord, marge, espace entre cellules, justification, séparateur de ligne, cadre N°1, cadre N°2, cadre N°2, ....)}}
Cette instruction permet de présenter un affichage sous forme de cadres horizontaux. Elle est utile par exemple dans les documents types pour afficher un cadre gauche avec les coordonnées du médecin, un cadre central avec les caractéristiques du documents, un cadre droit avec les coordonnées du destinataire.
Paramètre N° 1 (largeur totale du cadre) est exprimé en pixels mais peut être exprimé en % de la largeur totale alors il faut faire suivre la valeur par le caractère % exemple 100% .
Paramètre N° 2 (épaisseur du cadre) si zéro, le cadre ne sera pas dessiné.
Paramètre N° 3 (marge interne) marge interne au cadre en pixels.
Paramètre N° 4 (espace entre cellules) en pixels.
Paramètre N° 5 (justification du cadre général) left, center, right.
Paramètre N° 6 (motif à utiliser à la place des retours chariots \r\n ) en général <br> .
Paramètre N° 7 à 7+N (contenu de chaque cadre) chacun de ces paramètres sera considéré comme un cadre, par défaut la largeur de chaque cadre sera celle générale définie par le paramètre N°1 divisé par le nombre de cadres. Cependant, si la définition d'un cadre comporte le motif suivant : $WIDTH 30% $END_WIDTH encadrant une valeur, celle-ci sera utilisée à la place de celle par défaut.
Exemple avancé de macro à placer dans l'en-tête d'un document pour choisir et afficher l'adresse d'un médecin correspondant lors d'une impression :
Lors d'une impression avec cet en-tête, il est demandé de choisir le médecin auquel est destiné le document dans une liste DO_LISTE qui présente le résultat d'une requête SQL SQL_SELECT listant tous les médecins correspondants.
Si la liste est quittée sans choix {{VAR=retour}} = Rejected l'impression sera annulée car il sera placé la mention $PRINT_STOP
Si il est choisi un correspondant, ses coordonnées postales seront affichées dans un cadre en haut à droite du document afin de pouvoir poster directement le document dans une enveloppe à fenêtre.
Remarquez l'astuce qui consiste a créer une variable actionDoListe contenant elle même l'instruction DO_LISTE (présente une liste) ou M_NOP (ne fait rien) selon le résultat du test du statut d'exécution de la macro.
Remarquez le choix du séparateur de champ particulier :: pour que DO_LISTE puisse afficher les items composés de plusieurs champs, avec masquage de la dernière donnée (ID_PrimKey).
La Macro :
{{\
{{REM= ---------------------- test du statut d'impression -----------------------------}}\
{{REM= ne faire appel à la liste des medecins }}\
{{REM= que si il n'y a pas encore eu de resolution }}\
{{REM= de macro lors de l'impression }}\
{{REM= sous Mac DO_LISTE ne doit pas etre re-executee lors }}\
{{REM= d'un changement d'en-tete }}\
{{:: SET_VAR(actionDoListe,{{:: TEST(S,{{VAR=$SCRIPT_STATUS}},=,$PRINT_SCRIPT_END,M_NOP,DO_LISTE)}})}}\
{{:: SET_VAR(actionDoListe,{{:: TEST(S,{{OS}},=,M,{{:: TEST(S,{{VAR=$SCRIPT_STATUS}},=,$PRINT_HEADER_CHANGED,M_NOP,{{VAR=actionDoListe}})}},{{VAR=actionDoListe}})}})}}
{{:: SET_VAR(resultatDoListeEnteteCourrier,{{::{{VAR=actionDoListe}}({{::#SQL_SELECT (Personnes , Nom |Prenom|ID_PrimKey,WHERE NumOrdre!='' , 30,::,|) }},Choix du mécecin destinataire,|,retourChoixMedecinPrint,2)}})}}\
{{:: VAR_SPLIT(AdressePar_,{{VAR=resultatDoListeEnteteCourrier}},::)}}\

{{REM= -------------- utilisation par la suite des renseigments du choix --------------}}\
{{REM= pour selectionner les renseignements du destinataire }}\
{{:: SQL_SELECT (Personnes,Nom|Prenom|Adresse|CodePostal|Ville|ID_PrimKey,WHERE ID_PrimKey='{{VAR=AdressePar_2}}',1,$SET_VAR)}}\

{{REM= -------------- creation des variables des contenus des cadres -----------------}}\
{{::#SET_VAR(cadreGauche,<center>{{TITRE PS}} {{NOM PRENOM MEDECIN}}<br>{{IDENTIFICATION MEDECIN}}<br>{{CONVENTION MEDECIN}}<br>{{USER ADRESSE COMPLETE MEDECIN}}<br>Tél. {{TEL_1_MEDECIN}})}}\
{{::#SET_VAR(cadreCentral, )}}\
{{::#SET_VAR(cadreDestinataire,<br><br><br><br>{{VAR=Personnes.Nom0}} {{VAR=Personnes.Prenom0}}<br>{{VAR=Personnes.Adresse0}}<br>{{VAR=Personnes.CodePostal0}} {{VAR=Personnes.Ville0}})}}\
{{REM= -------------- si choix annuler stocker la mention $PRINT_STOP ----------------}}\
{{REM= d'annulation de l'impression dans retourChoixMedecinPrint }}\
{{::#SET_VAR(retourChoixMedecinPrint,{{::#TEST(S,{{VAR=retourChoixMedecinPrint}},=,Rejected,$PRINT_STOP,)}})}}\
}}
{{REM= -------------- affichage des cadres -------------------------------------------}}
{{::#CADRE(100%,0, 0 ,0 ,right,<br>,$WIDTH 25% $END_WIDTH{{VAR=cadreGauche}},$WIDTH 45% $END_WIDTH{{VAR=cadreCentral}},$WIDTH 30% $END_WIDTH{{VAR=cadreDestinataire}})}}
{{REM= ----------------------- si choix annuler afficher $PRINT_STOP -----------------}}
{{REM= que si il n'ya pas de changement d'entete }}
{{:: TEST(S,{{VAR=$SCRIPT_STATUS}},=,$PRINT_HEADER_CHANGED, ,{{VAR=retourChoixMedecinPrint}})}}
Exemple avancé de macro à placer dans un modèle de document pour choisir un médecin correspondant destinataire :
Lors du double clic d'un document dans le Glossaire, cette macro propose et affiche la liste des médecins correspondants et après choix positionne un cadre texte avec les coordonnées du médecin auteur du courrier ou document et dans un autre cadre les coordonnées du destinataire du document dans un cade prêt à poster.
S'il est choisi un correspondant, ses coordonnées postales seront affichées dans un cadre en haut à droite du document afin de pouvoir poster directement le document dans une enveloppe à fenêtre.
Remarquez l'astuce qui consiste a créer une variable actionDoListe contenant elle même l'instruction DO_LISTE (présente une liste) ou M_NOP (ne fait rien) selon le résultat du test du statut d'exécution de la macro.
Remarquez les doubles tests imbriqués pour tester une valeur ou l'autre.
Remarquez le retour de la mention particulière __ERREUR Fusion :__ lorsque la liste de choix a été quittée sans choix {{VAR=retour}} = Rejected, ayant pour conséquence la non incorporation du document dans MedinTux.
Remarquez le choix du séparateur de champ particulier :: pour que DO_LISTE puisse afficher les items composés de plusieurs champs, avec masquage de la dernière donnée (ID_PrimKey).
La Macro :
{{\
{{REM= ---------------------- LA MACRO QUI TUE ----------------------------------------}}\
{{REM= test du statut du document pour }}\
{{REM= ne faire appel à la liste des medecins }}\
{{REM= que lors de l'incorporation du document et non }}\
{{REM= lors de la prévisualisation }}\
{{:: SET_VAR(actionDoListe,{{:: TEST(S,{{VAR=$SCRIPT_STATUS}},%%,$FUSION_ADD,DO_LISTE,{{:: TEST(S,{{VAR=$SCRIPT_STATUS}},%%,$FUSION_CREATE,DO_LISTE,M_NOP)}})}})}}\
{{:: SET_VAR(resultatDoListeEnteteCourrier,{{::{{VAR=actionDoListe}}({{::#SQL_SELECT (Personnes , Nom |Prenom|ID_PrimKey,WHERE NumOrdre!='' , 30,::,|) }},Choix du mécecin destinataire,|,retourChoixMedecin,2)}})}}\
{{:: VAR_SPLIT(AdressePar_,{{VAR=resultatDoListeEnteteCourrier}},::)}}\
{{REM= -------------- utilisation par la suite des renseigments du choix --------------}}\
{{REM= pour selectionner les renseignements du destinataire }}\
{{:: SQL_SELECT (Personnes,Nom|Prenom|Adresse|CodePostal|Ville|ID_PrimKey,WHERE ID_PrimKey='{{VAR=AdressePar_2}}',1,$SET_VAR)}}\
{{REM= -------------- creation des variables des contenus des cadres -----------------}}\
{{::#SET_VAR(cadreGauche,<center>{{TITRE PS}} {{NOM PRENOM MEDECIN}}<br>N° Adeli {{IDENTIFICATION MEDECIN}}<br>{{CONVENTION MEDECIN}}</center><p>{{USER ADRESSE COMPLETE MEDECIN}}<br>Tél. {{TEL_1_MEDECIN}}</p>)}}\
{{::#SET_VAR(cadreCentral, )}}\
{{::#SET_VAR(cadreDestinataire,<br><br><br><br>{{VAR=Personnes.Nom0}} {{VAR=Personnes.Prenom0}}<br>{{VAR=Personnes.Adresse0}}<br>{{VAR=Personnes.CodePostal0}} {{VAR=Personnes.Ville0}})}}\
}}
{{REM= -------------- affichage des cadres -------------------------------------------}}\
{{::#CADRE(100%,0, 0 ,0 ,right,<br>,$WIDTH 25% $END_WIDTH{{VAR=cadreGauche}},$WIDTH 45% $END_WIDTH{{VAR=cadreCentral}},$WIDTH 30% $END_WIDTH{{VAR=cadreDestinataire}})}}
{{::#TEST(S,{{VAR=retourChoixMedecin}},=,Rejected,__ERREUR Fusion :__,)}}

4.5.3.119 |==> {{NUM. CLEF PATIENT}}
Cette instruction retourne la clef du numéro de sécurité sociale du patient.
Variantes : {{NUM CLEF PATIENT}}

4.5.3.120 |==> {{USER_POLITESSE_MEDECIN}} retourne la mention indiquée dans le champ Politesse dans l'annuaire des utilisateurs, pour l'utilisateur en cours.

4.5.3.121 |==> {{POLITESSE_MEDECIN}} retourne la mention indiquée dans le champ Politesse dans l'annuaire des utilisateurs, pour l'utilisateur de l'observation en cours d'affichage.

4.5.3.122 |==> {{:: LEFT( chaîne à traiter, nombre de caractères)}}
Paramètre N° 1 (chaîne de caractères à traiter) chaîne de caractères à traiter.
Paramètre N° 2 (nombre ce caractères) nombre de caractères
retourne la partie gauche de la chaîne coupée au nombre de caractères indiqués dans le premier paramètre.

4.5.3.123 |==> {{:: MID(chaîne à traiter, position , nombre de caractères) }}
retourne une partie de chaîne débutant à la position (comptée à partir de zéro) indiquée par le premier paramètre coupée au nombre de caractères indiqués dans le deuxième paramètre.
Paramètre N° 1 (chaîne de caractères à traiter) chaîne de caractères à traiter.
Paramètre N° 2 (position) position à partir de laaquelle il faut couper la chaîne
Paramètre N° 3 (nombre ce caractères) nombre de caractères à retenir à partir de la position indiquée dans le premier paramètre.
ce paramètre est facultatif, si il est omis alors tous les caractères à partir de la position indiquée dans le premier paramètre seront retenus.

4.5.3.124 |==> {{:: RIGHT(chaîne à traiter, nombre de caractères ) }}
retourne la partie droite de la chaîne coupée au nombre de caractères indiqués dans le premier paramètre.
Paramètre N° 1 (chaîne de caractères à traiter) chaîne de caractères à traiter.
Paramètre N° 2 (nombre ce caractères) nombre de caractères

4.5.3.125 |==> {{:: REMOVE( chaîne à traiter , élément à retirer ) }}
Variante : {{:: RM( chaîne à traiter , élément à retirer ) }}
retire toutes les occurrences d'une chaîne de caractères d'une autre chaîne.
Paramètre N° 1 (chaîne de caractères à traiter) chaîne de caractères à traiter.
Paramètre N° 2 (facultatif élément à retirer) chaîne de caractères à retirer, si non précisé par défaut espace.
exemple : {{:: REMOVE(tralala itou, a ) }} deviendra trllt itou

4.5.3.126 |==> {{:: CLEAR_SPACES(chaîne à traiter) }}
Variante : {{:: CS(chaîne à traiter) }}
retire tous les espaces, tabulations de début et de fin d'une chaîne de caractères.
Paramètre N° 1 (chaîne de caractères à traiter) chaîne de caractères à traiter.
exemple : {{:: CS( texte ) }} deviendra 'texte'

4.5.3.127 |==> {{:: T0_NUM( chaîne à traiter , mode) }}
Variante : {{:: TN( chaîne à traiter , mode ) }}
Tente de transformer en nombre une chaîne de caractères.
Paramètre N° 1 (chaîne de caractères à traiter) chaîne de caractères à traiter.
Paramètre N° 2 (mode de conversion) facultatif et par défaut positionné à $stopIfNotNum
SI contient $stopIfNotNum la conversion s'arrête au premier caractère non numérique.
SI contient $allString tous les caractères numériques de la chaîne seront retenus.
SI contient $toInt la conversion ne conservera que la partie entière.
SI toute autre valeur, la conversion s'arrêtera à la première occurrence de cette valeur.
exemples :
{{:: TN ( 1234.34 ce texte suit la valeur et ne sera pas évalué car par défaut le mode est stopIfNotNum) }} deviendra '1234,34 '
{{:: TN ( 1234.34 ce qui suit 56 sera retenu car le mode est : allString , $allString) }} deviendra '1234,3456 '
{{:: TN ( 1234.34 ce qui suit 56 sera retenu jusqu'à fin de la partie numérique car indiqué en 2 ème paramètre comme occurrence de fin , fin de la partie numérique) }} deviendra '1234,3456 '

4.5.3.128 |==> {{DATE NAISSANCE ASSURE=format de la date}}
retourne la date de naissance de l'assuré selon le format spécifié dans le paramètre facultatif N°1
Paramètre N° 1 (format de retour pour la date : facultatif et par défaut dd-MM-yyyy) voir en paragraphe 3.4.3.5

4.5.3.129 |==> {{EXIT}}
exécute la procédure de fin de MedinTux.

4.5.3.130 |==> {{DDR=dd-MM-yyyy}}
retourne la date des dernières règles

4.5.3.131 |==> {{TERME_GROSSESSE}}
retourne le nombre de semaines d'aménorrhée à la date courante.

4.5.3.132 |==> {{:: DAYSTO( date de départ , date de fin )}}
Variante : {{:: DT( date de départ, date de fin ) }}
retourne le nombre de jours à partir de la date placée dans le parametre N°1 et le Paramètre N°2. Le format des dates doit être xxxx dd xxxxxx MM xxxxxx yyyy xxxx hh xxxx mm xxx ss (voir : Format des dates) où x peut représenter n'importe quel caractère non numérique. Les heures minutes secondes peuvent être omises et alors elles seront en interne mises sur 00:00:00
Paramètre N° 1 (date de départ) chaîne de caractères à traiter.
Paramètre N° 2 (facultatif : date de fin) si non précisé il prend la valeur de la date courante.

4.5.3.133 |==> {{:: DATE_CALC( date de départ , valeur, operateur, valTyp, format date retour )}}
Variante : {{:: DTC( date de départ , valeur, operateur, valTyp, format date retour ) }}
retourne le nombre de jours à partir de la date placée dans le parametre N°1 et le Paramètre N°2. Le format des dates doit être xxxx dd xxxxxx MM xxxxxx yyyy xxxx hh xxxx mm xxx ss (voir : Format des dates) où x peut représenter n'importe quel caractère non numérique. Les heures minutes secondes peuvent être omises et alors elles seront en interne mises sur 00:00:00.
Paramètre N° 1 (date de départ) chaîne de caractères à traiter.
Paramètre N° 2 (valeur à ajouter ou soustraire) valeur à ajouter ou soustraire
Paramètre N° 3 (facultatif : opérateur) + - par défaut (si omis) sur +
Paramètre N° 4 (facultatif : type de valeur à ajouter ou soustraire) si non précisé il prend la valeur J (jours).
SI contient S la valeur numérique à ajouter est en secondes.
SI contient J ou D la valeur numérique à ajouter est en jours.
SI contient M la valeur numérique à ajouter est en mois.
SI contient A ou Y la valeur numérique à ajouter est en années.
Paramètre N° 5 (facultatif : format du type de date à retourner) Le format des dates. si non précisé dd-MM-yyyy (voir : Format des dates) .

4.5.3.134 |==> {{:: DATE_TONUM( date de départ , valTyp)}}
Variante : {{:: DTN( date de départ , valTyp ) }}
retourne une valeur numerique entière (nombre de secondes) à partir de la date placée dans le parametre N°1 et le 01 Janvier 1970. Le format des dates doit être xxxx dd xxxxxx MM xxxxxx yyyy xxxx hh xxxx mm xxx ss(voir : Format des dates) où x peut représenter n'importe quel caractère non numérique. Les heures minutes secondes peuvent êtres omises et alors elle seront en interne mises sur 00:00:00.
Paramètre N° 1 (date de départ) chaîne de caractères à traiter.
Paramètre N° 2 (facultatif : type de valeur numérique à retourner) si non précisé il prend la valeur S (secondes).
SI contient S la valeur numérique à retourner est en secondes.
SI contient J ou D la valeur numérique à retourner est en jours.
SI contient M la valeur numérique à retourner est en mois.
SI contient A ou Y la valeur numérique à retourner est en années.

4.5.3.135 |==> {{:: DATE_FROMNUM( num, valTyp, format date retour )}}
Variante : {{:: DTFN( num , valTyp, format date retour ) }}
retourne la date et temps depuis le nombre de secondes écoulées depuis le 01 Janvier 1970 (voir : Format des dates).
Paramètre N° 1 (nombre de secondes) chaîne de caractères à traiter soit le nombre de secondes depuis le 01 Janvier 1970.
Paramètre N° 2 (facultatif : type de valeur numérique à retourner) si non précisé il prend la valeur S (secondes).
SI contient S la valeur numérique est en secondes.
SI contient J ou D la valeur numérique est en jours.
SI contient M la valeur numérique est en mois.
SI contient A ou Y la valeur numérique est en années.
Paramètre N° 3 (facultatif : format du type de date à retourner) Le format des dates. si non précisé dd-MM-yyyy (voir : Format des dates) .

4.5.3.136 |==> {{:: ABS_PATH( chemin de fichier exprimé en relatif)}}
Variantes : {{:: AP( chemin de fichier exprimé en relatif ) }} {{AP = chemin de fichier exprimé en relatif }} {{ABS_PATH = chemin de fichier exprimé en relatif }}
Converti le chemin donné dans le paramètre N°1 en chemin absolu.
Paramètre N° 1 (chemin à convertir) chemin exprimé en relatif exemple : ../../Doc/index.html
Exemple : {{AP = ../../Doc}} devient /home/ro/MedinTux-V2.14-Synth-src/Programmes/Doc/index.html

4.5.3.137 |==> {{:: FILE_EXISTS( chemin de fichier à tester exprimé en relatif)}}
Variante s : {{:: FE( chemin de fichier à tester exprimé en relatif ) }} {{FE = chemin de fichier exprimé en relatif }} {{FILE_EXISTS = chemin de fichier à tester exprimé en relatif }}
Converti le chemin donné dans le paramètre N°1 en chemin absolu, et teste si il existe:
Si le fichier existe existe la valeur de retour est le resultat de la conversion.
Si le fichier n'existe pas la valeur de retour est une chaîne vide.
Paramètre N° 1 (chemin à convertir) chemin exprimé en relatif exemple : ../../Doc/index.html
Exemples :
{{FE = ../../Doc/index.html}} devient /home/ro/MedinTux-V2.14-Synth-src/Programmes/Doc/index.html
{{FE = ../../Doc/truc_inexistant.html}} devient une chaîne vide .

4.5.3.138 |==> {{:: REPLACE_BY( chaîne à évaluer, élément à trouver, élément de remplacement )}}
Variante : {{:: RB( chaîne à évaluer, élément à trouver, élément de remplacement ) }}
remplace les occurrences d'un motif de caractères par un autre motif de caractères.
Paramètre N° 1 (chaîne à évaluer) chaîne de caractères à traiter .
Paramètre N° 2 (occurrence à remplacer) occurrence à remplacer.
Paramètre N° 3 (motif de caractères de remplacement) motif de caractères de remplacement .

4.5.3.139 |==> {{:: INDEX_OF( chaîne à évaluer )}}
Variante : {{:: IO( chaîne à évaluer ) }}
retourne la position d'un motif de caractères dans une chaîne de caractères (-1 si pas trouvée).
Paramètre N° 1 (chaîne à évaluer) chaîne de caractères à traiter .

4.5.3.140 |==> {{:: LENGTH( chaîne à évaluer )}}
Variante : {{:: LEN( chaîne à évaluer ) }}
retourne le nombre de caractères d'une chaîne.
Paramètre N° 1 (chaîne à évaluer) chaîne de caractères à traiter .

4.5.3.141 |==> {{:: EXPORT_TABLES( date de début, date de fin, definition des tables à exporter, separateur de table, largeur cellule par defaut, hauteur cellule par defaut, largeur du tracé, largeur totale du tableau, format d'affichage des dates, largeur de la colonne des dates )}}
Cette instruction a pour objectif de mettre en forme des données provenant de tables ou tableaux de variables du terrain de façon à les inclure dans vos documents .
Paramètre N° 1 (première date à partir de laquelle afficher les données) :
° soit la date est exprimée sous la forme : YYYY-MM-DD où YYYY est l'année, MM est le mois de l'année (entre 01 et 12), et DD est le jour du mois (entre 01 et 31).
° soit la date est exprimée sous la forme des formules préétablies suivantes :
TOUTE DATE pas de limite inférieure.
DATE VISITE date de l'observation en cours.
DATE ACTUELLE date du jour en cours.
° si absent alors il prendra la valeur de "01-01-1900"
Paramètre N° 2 (date de fin pour afficher les données) :
° soit la date est exprimée sous la forme : YYYY-MM-DD où YYYY est l'année, MM est le mois de l'année (entre 01 et 12), et DD est le jour du mois (entre 01 et 31).
° soit la date est exprimée sous les formes suivantes :
+ suivi d'une valeur correspondant au nombre d'heures à rajouter à la date de début pour faire la date de fin. Expl : +24
+- ou -+ suivi d'une valeur correspondant au nombre d'heures à enlever à la date de début et à rajouter à la date de début pour faire la date de fin. Expl : +-24
- suivi d'une valeur correspondant au nombre d'heures à enlever à la date de début pour faire la date de fin. Expl : -24
chiffre 0 ou vide, alors la date de fin est la date de début à laquelle est ajouté 24 heures.
° soit la date est exprimée sous la forme des formules préétablies suivantes :
TOUTE DATE pas de limite inférieure.
DATE VISITE date de l'observation en cours.
DATE ACTUELLE date du jour en cours.
° si absent alors il prendra la valeur de "01-01-3000"
Paramètre N° 3 (liste de définition des tables à exporter) :
° Ce paramètre doit comporter une série de chaines de définition de table, déterminant quelles tables exporter, et quelles colonnes à exporter de ces tables.
Syntaxe d'une définition de table :
VAR nomDeLaTable [nomDelaColonne = largeur octroyée pour l'affichage de la colonne; nomDelaColonneSuivante = largeur octroyée pour l'affichage de la colonne]
Exemple : VAR Constantes de Base [ Pouls=50; SAO2=80; Temp=100] VAR Poids [ Poids=50; Taille=80 ]
Nom du tableau ou de la table tel qu'indiqué dans le modèle du tableau après la mention VAR
exemple : Constantes de Base dans le modèle ci-dessous
Exemple de modèle :
[VAR Constantes de Base]
Modèle = Date, Pouls, 31536000, 130, 40, pps, Tachycardie, Bradycardie
Modèle = Date, SAO2, 31536000, 0, 92, %, , Hypoxie
Modèle = Date, Temp, 31536000, 40.5, 35, ?, Hypothermie, Hyperthermie
[VAR Poids]
Modèle = Date, Poids, 31536000, 100, 50, Kg(s), Obésité, Amaigrissement
Modèle = Date, Taille, 31536000, 0, 0, cm(s), ,
Paramètre N° 4 (séparateur entre les tables) :
Ce paramètre facultatif indique un motif de séparation de tables.
Si cette valeur commence par le modificateur $File alors ce qui suit la suite de $File sera considéré comme le chemin d'un fichier à charger et alors le nom de ce fichier peut contenir les mentions suivantes :
$Glossaire qui sera remplacée par le chemin du Glossaire.
$Vigie qui sera remplacée par le chemin de la Vigie.
° si absent alors il prendra la valeur de "<br>"
Paramètre N° 5 (Largeur par défaut de la cellule si non exprimée avec la mention = ) :
si exprimé en pourcentage se sera le pourcentage de la largeur totale.
Paramètre N° 6 (Hauteur de la cellule) :
si exprimé en pourcentage se sera le pourcentage de la largeur totale.
Paramètre N° 7 (Largeur de la ligne de séparation par défaut 1) :
Paramètre N° 8 (Largeur totale du tableau par défaut 100%) :
si exprimé en pourcentage se sera le pourcentage de la largeur totale de la page.
Paramètre N° 9 (format d'affichage des dates par défaut dd-MM-yyyy hh) :
exprimé selon la règle suivante : format des dates
ce paramètre peut être suivi (séparé par le signe = ) du titre de la colonne des dates.
Paramètre N° 10 (largeur de la colonne des dates par défaut 50 ) :
si exprimé en pourcentage se sera le pourcentage de la largeur totale.
Quelques exemples :
{{:: EXPORT_TABLES( 2010-01-01 , 2010-31-12 , VAR Constantes de Base[Pouls=50; SAO2=80; Temp=100] VAR Poids[Poids=50; Taille=80] , 30%, 20, 1, 100% ,dd-MM-yyyy hh, 50)}}

4.5.3.142 |==> {{:: EXPORT( nom du fichier, source des données, ..... autres paramètres selon source de données ...... )}}
Cette instruction polymorphe très puissante a pour objectif de mettre en forme des données provenant de différentes sources de MedinTux et de les écrire sur le disque.
Paramètre N° 1 (fichier de destination) : fichier de destination dans lequel seront placées les données.
Paramètre N° 2 (source des données) :
T pour string enrichie A pour ASCII D pour dossier S pour selection
Paramètre N° 3 string a exporter string a exporter liste des rubriques séparées par | String a exporter a laquelle sera ajoutée la sélection Paramètre N° 4 mode conversion ascii mode conv. ascii date debut mode conversion ascii
Paramètre N° 5 A/alwaysWrite F/fullOnly A ou F date fin A ou F (A/alwaysWrite F/fullOnly)

Paramètre N° 6 séparation des fiches avec les
mentions possibles ci-dessous.
$NomPatient $PrenomPatient
$DateDeb $DateFin
$DateDebFiche $DateFinFiche
$HeureDeb $HeureFin $NomRub
$TitreRub $User $SignUser
$NumFicheRub $GUIDPat $PkPat
$pkFiche $Duree $NumFicheTot
si commence par la mention : $File alors c'est le fichier
mentionné qui sera utilisé comme séparateur de fiches.

Paramètre N° 7 en-tête du fichier d'exportation
peut être un fichier html avec les macros de votre choix.
si il commence par la mention : $File alors c'est le fichier
mentionné qui sera utilisé comme en-tête.

Paramètre N° 8 filtre sql where si mentionne, alors la chaîne sera utilisée en
complément du filtrage SQL habituel sur les dates.
si il commence par la mention : $File alors c'est le fichier
mentionné qui sera utilisé comme filtre sql where.

IMPORTANT : Dans le mode exportation de dossier (Paramètre N° 2 (source des données) : avec la valeur D) , un répertoire du nom du fichier est créé, et c'est à l'intérieur de ce répertoire que se trouvent : le fichier html correspondant à l'exportation, et les images nécessaires à ce fichier.

Un exemple qui exporte le dossier patient en entier, le transforme en PDF et l'envoie par kmail :
{{\
{{:: SET_VAR(FName,{{NOM PRENOM PATIENT}}-{{GUID}})}}\
{{REM=--------------------- exportation du dossier complet -------------------------------}}\
{{:: EXPORT(../../tmp/{{VAR=FName}}.html , D, Terrain|Observation|Prescription|Documents|Vigie, 1900-01-01T00:00:00, 2200-01-01T00:00:00,$File../../pdf/SeparateurEntete.html,$File../../pdf/ObservEntete.html) }}\
{{REM=--------------------- impression en PDF --------------------------------------------}}\
{{:: exe_process (WaitEnd ,../../APropos/bin/APropos,ToPDF,$ToAbsPath../../tmp/{{VAR=FName}}/{{VAR=FName}}.html)}}\
{{REM=---------------------- envoi par mail-----------------------------------------------}}\
{{:: exe_process (NoWaitEnd ,/usr/bin/kmail,-c,roland-sevin@medintux.org,-s,Dossier de {{TITRE PATIENT}} {{NOM PRENOM PATIENT}},--msg,$ToAbsPath../../pdf/TestEnvoiMail.txt,--attach,$ToAbsPath../../tmp/{{VAR=FName}}/{{VAR=FName}}.pdf)}}\
}}

4.5.3.143 |==> {{:: REPLACE_IN_FILE( nom du fichier source, nom du fichier destination, nom de la variable N°1, nom de la variable N°2, ... nom de la variable N°n )}}
Variante : {{:: RF( nom du fichier source, nom du fichier destination, nom de la variable N°1, nom de la variable N°2, ... nom de la variable N°n ) }}
Cette instruction permet de remplacer dans un fichier, des occurrences d'un motif du type {{nom de la variable N°1}}
par le contenu de cette variable.
Paramètre N° 1 (fichier source) : fichier d'origine, où se trouvent les motifs de type {{nom de la variable}}
$Glossaire qui sera remplacée par le chemin du Glossaire.
$Vigie qui sera remplacée par le chemin de la Vigie.
Paramètre N° 2 (fichier de destination) : fichier de destination créé avec les motifs de type {{nom de la variable}} remplacés par les contenus des variables correspondantes.
$Glossaire qui sera remplacée par le chemin du Glossaire.
$Vigie qui sera remplacée par le chemin de la Vigie.
Paramètre N° 3 (nom de la première variable) : dont il faudra remplacer le motif {{nom de la variable}} par son contenu.
Paramètre N° 4 (nom de la deuxième variable) : dont il faudra remplacer le motif {{nom de la variable}} par son contenu.
Paramètre N° n (nom de la nième variable) : dont il faudra remplacer le motif {{nom de la variable}} par son contenu.
Exemple : remplir des formulaires pdf avec pdftk.
Exemple de fichier XFDF déjà rempli avec des données du formulaire
à envoyer avec pdftk pour qu'il remplisse le formulaire pdf
avec la commande suivante :
pdftk document.pdf fill_form données.xfdf output document-rempli.pdf
Créer un fichier modèle avec les tags {{nom de la variable}}
Exemple :
° fichier de référence : modeleXFDF.xml (placé dans notre exemple dans le répertoire pdf de MedinTux)
<?xml version="1.0" encoding="UTF-8"?>
<xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve">
<fields>
<field name="Nom Patient">
<value>{{NomPatient}}</value>
</field>
<field name="Prenom Patient">
<value>{{PrenomPatient}}</value>
</field>
</fields>
<f href="fichier.pdf" />
</xfdf>
° Macro exploitant ce fichier en le remplissant avec les données du patient en cours, par des valeurs collectées au préalable dans les variables idoines.
{{\
{{:: REM ----------- collecte des données dans les variables idoines --------------}}\
{{:: SET_VAR(NomPatient,{{NOM PATIENT}})}}\
{{:: SET_VAR(PrenomPatient,{{PRENOM PATIENT}})}}\
{{REM=--------------------- remplacement des tags dans le fichier de réference -------------------------------}}\
{{REM= par les valeurs des variables }}\
{{:: REPLACE_IN_FILE(../../pdf/modeleXFDF.xml,../../pdf/replacedXFDF.xml,NomPatient,PrenomPatient)}}\
}}
° fichier résultat : replacedXFDF.xml où l'on voit les variables remplacées par les valeurs du patient.
<?xml version="1.0" encoding="UTF-8"?>
<xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve">
<fields>
<field name="Nom Patient">
<value>TARTEMPION</value>
</field>
<field name="Prenom Patient">
<value>MARCEL</value>
</field>
</fields>
<f href="fichier.pdf" />
</xfdf>

4.5.3.144 |==> {{:: RUBRIQUE_SHOW( nom de la rubrique, valeur )}}
Paramètre N° 1 (nom de la rubrique) : Nom de la rubrique à afficher ou cacher.
Paramètre N° 2 (valeur) : TRUE valeur par defaut, affiche la rubrique, FALSE cache la rubrique.

5 Un système de classement intelligent : LA VIGIE :
Retour au menu principal
La vigie est un système très puissant de classeurs :
dans lesquels il vous sera possible de classer tous les documents de MedinTux afin d'avoir une vision transversale du dossier patient ou de l'ensemble des dossiers.
5.1 Une règle très simple pour beaucoup de puissance :

Tout document MedinTux (Observation, prescription etc..) peut se placer dans la Vigie,
comme fils d'un autre document, et comme père d'un autre document (et il est alors classeur).
ci-dessus nous voyons que 'Photo à l'âge de 67 ans' est le fils de 'Fiche Administrative'
Dès qu'un document est père d'un fils, il devient classeur, car il en contient d'autres.
Ci-dessus nous voyons que 'Fiche Administrative' est un classeur contenant : 'Photo à l'âge de 67 ans'.
Un fils peut avoir plusieurs pères (et être classé dans deux classeurs différents).
Nous voyons dans l'exemple ci-dessus que 'Photo à l'âge de 67 ans' est classé et présent dans,
le classeur : 'Administratif_Social/Fiche Administrative' et
le classeur : 'Dermatologie' car il est intéressant d'avoir la photo du patient dans la fiche administrative
d'ailleurs la voici :
et du fait de cette curieuse lésion cutanéeque présente ce patient sur l'abdomen, il est impératif qu'elle soit aussi dans le classeur : 'Dermatologie'
Enfin ! Un fils ne peut pas être parent de son père (on n'a jamais vu ça).

5.2 Vue générale et description :
5.2.1 Placement et disposition de la vigie :
° Il est possible de la faire apparaître et disparaître à tout moment à l'aide de la touche F4 ou de l'appui et clic sur le bouton :
° La Vigie est un composant pouvant se placer n'importe où dans l'interface de MedinTux, dans les espaces de stockages latéraux, supérieurs, inférieurs de MedinTux, les mêmes espaces que le Glossaire, la Vue Rapide, les barre d'outils divers, etc.
° Il vous est possible de la déplacer où vous le souhaitez, et d'enregistrer la disposition de votre espace de travail ainsi que toute la configuration de la Vigie (filtres etc..) ,dans le profil vous concernant, en cliquant sur l'option de menu Fichier->Enregistrer les profils.
Vaccinations
(voir organisation de l'espace de travail) afin de toujours retrouver cette organisation.
5.2.2 La vigie se divise en deux parties :
° La partie haute le filtrage (encadrée en rouge) comportant tous les éléments permettant de la piloter, de la paramétrer et la commander.
° La partie basse avec la liste hiérarchique des classeurs et documents la composant.

5.2.2.1 La liste hiérarchique se présente comme suit :
5.2.2.1.1 Une ligne avec le nom du patient auquel appartient la liste des classeurs et documents sous-jacents.
5.2.2.1.2 Les lignes des classeurs et documents correspondants à ce patient
À chacune des lignes de la vigie correspond un document de MedinTux. Si vous cliquez sur une des lignes, le document lié à cette ligne est activé dans l'affichage des rubriques de MedinTux comme le montre la figure ci-dessous : la sélection de la ligne 'Fiche Administrative' affiche et active bien le document correspondant dans la rubrique 'Observation'.
5.2.2.1.3 ° Ouvrir et fermer un classeur :
Nous pouvons voir des classeurs ouverts, 'Administratif_Social/Fiche Administrative' et dont le contenu est visible. Notons le petit symbole situé à gauche d'un classeur indiquant que celui-ci est ouvert, pour le fermer il suffit de cliquer dessus.
Nous pouvons voir un classeur fermé 'Dermatologie' dont le contenu est non visible. Notons le petit symbole situé à gauche d'un classeur indiquant que celui-ci est fermé, pour l'ouvrir il suffit de cliquer dessus, ce qui donne l'affichage suivant :
5.2.2.1.4 ° Déplacer un classeur ou document d'un classeur à l'autre :
Dans le classeur 'Non classés' se trouve le document 'OBSERV_STANDARD' que vous souhaiteriez déplacer dans le classeur 'Neurologie'.
Pour cela, cliquez avec le bouton gauche de la souris sur la ligne 'OBSERV_STANDARD' et tout en maintenant le bouton gauche de la souris appuyé, déplacez la souris au-dessus du classeur 'Neurologie' et, lorsque la souris est bien au-dessus de ce classeur, relâchez le bouton gauche de la souris. Vous devriez avoir l'affichage suivant :
Lorsque le déplacement s'opère sur un classeur avec toute une hiérarchie déjà constituée, tous les descendants sont aussi déplacés et reclassés.
5.2.2.1.5 ° Placer et classer un document déjà existant d'une rubrique dans un classeur :
Pour cela, cliquez sur le bouton indiquant le nombre de documents d'une rubrique et, tout en maintenant le bouton gauche de la souris appuyé, déplacez la souris au-dessus du classeur de destination dans lequel vous désirez classer le document, et, lorsque la souris est bien au-dessus de ce classeur, relâchez le bouton gauche de la souris.
Dans l'exemple de la figure ci-dessus, nous classons le document déjà existant 'Photo à l'âge de 67 ans' dans le classeur 'Digestive' comme montré dans la figure ci-dessous, le résultat après l'opération.
5.2.2.1.6 ° Créer et classer un document du Glossaire dans un classeur :
Cette opération permet d'ajouter et de créer dans le dossier un document à partir d'un modèle du Glossaire, tout en le classant. Pour cela, cliquez avec le bouton gauche de la souris sur le modèle du Glossaire avec lequel vous désirez créer un nouveau document dans le dossier ici 'compterendu.html' et tout en maintenant le bouton gauche de la souris appuyé, déplacez la souris au-dessus du classeur de destination ici 'Non classés' et, lorsque la souris est bien au-dessus de ce classeur, relâchez le bouton gauche de la souris.
un nouveau document 'compterendu.html' sera créé dans le dossier du patient, et il sera en même temps classé dans le classeur 'Non classés'.
5.2.2.1.7 ° Ne permettre qu'une seule instance d'un classeur :
Dans notre système de classement, nous souhaitons avoir des classeurs uniques ne pouvant pas être présents plusieurs fois dans la vigie. En effet, un classeur tel que 'Administratif_Social' destiné à recevoir tous les documents administratif et sociaux, n'a pas être multiple mais unique au système de classement. Pour le rendre unique, sélectionnez-le à l'aide du bouton droit de la souris. Cela fera apparaître le menu suivant :
dans lequel vous sélectionnerez l'option 'Cet élément doit être le seul de la fratrie', une icône : indiquera que ce classeur ne peut être qu'unique et présent qu'une fois.
Pour annuler cette propriété et permettre à un classeur d'être de nouveau en plusieurs exemplaires, sélectionnez l'option 'Cet élément peut être multiple dans la fratrie'.
5.2.2.1.8 ° Placer un classeur en mode ouvert par défaut :
Il est possible de déterminer pour un classeur si il doit être ouvert ou fermé, afin que son contenu soit affiché ou non lors de l'affichage de la vigie.
Pour qu'il soit ouvert, sélectionnez à l'aide du bouton droit de la souris le classeur pour lequel vous désirez que cette propriété soit activée, et cliquez sur l'option : 'Cet élément doit être ouvert par défaut'.
Pour annuler cette propriété et permettre à un classeur d'être de nouveau fermé par défaut, sélectionnez l'option 'Cet élément doit être fermé par défaut'.
5.2.2.1.9 ° Choisir une icône pour un classeur :
Il est possible de choisir pour un classeur donné une icône le représentant.
Pour cela sélectionnez à l'aide du bouton droit de la souris le classeur pour lequel vous désirez que cette propriété soit activée, et cliquez sur l'option : 'Choisir une icône pour cet élément' et, à l'aide du sélecteur de fichiers, sélectionnez en une de votre choix.
Pour annuler cette propriété et permettre à un classeur d'être de nouveau sans icône, sélectionnez l'option 'Retirez l'icône pour cet élément'.
5.2.2.1.10 ° Retirer un document du système de classement de la vigie sans l'effacer du dossier :
Il est possible de retirer un classeur ou document du système de classement.
Pour cela sélectionnez le à l'aide du bouton droit de la souris le classeur ou le document que vous désirez retirer de la vigie, et cliquez sur l'option : 'Positionnez cet élément sur effacement' cela fera apparaître en face de l'élément sélectionné et de toute sa descendance l'icône suivante .
IMPORTANT : lors de cette opération, les documents ne sont pas effacés du dossier, ils sont seulement retirés du système de classement. Pour les effacer du dossier, il faut une autre option du menu que nous allons voir ci-dessous.
5.2.2.1.11° Retirer et effacer un document du dossier à partir du système de classement :
Il est possible de retirer un classeur et sa descendance ou document du système de classement et en même temps effacer ceux-ci du dossier patient.
Pour cela, sélectionnez à l'aide du bouton droit de la souris le classeur ou le document que vous désirez retirer de la vigie, et cliquez sur l'option : 'Positionnez cet élément et les fiches allant avec, sur effacement' cela fera apparaître en face de l'élément sélectionné et de toute sa descendance l'icône suivante .
IMPORTANT : lors de cette opération, les documents ne sont considérés comme à effacer du dossier, qu'en même temps qu'ils sont retirés du système de classement.
Tant que le dossier du patient n'est pas enregistré, cette opération est réversible en cliquant sur l'option 'Retirez cet élément et les fiches allant avec, de ceux à effacer'
5.2.2.2 ° Les commandes de filtrage :
5.2.2.2.1 Activer désactiver le filtrage :
Lors de certaines manipulations, il vous sera utile de désactiver ou activer les filtres.
Pour cela cochez ou décochez la case suivante :
Ci-dessous, l'interface de commande de la Vigie.
5.2.2.2.2 Le filtre des dates ou fenêtre de dates de la Vigie
Chaque classeur ou document de la vigie, possède une date de début et une date de fin.
Tant que la date de fin n'est pas positionnée ou renseignée, un classeur est considéré comme en cours ; dès qu'elle est renseignée, il est considéré comme plus en cours ou archivé.
dans la figure ci dessus nous pouvons voir que le Classeur_Médecine_Générale est archivé car il comporte une date et heure de fin : 03-05-2009 à 08h51
il est encore visible dans la vigie, car le filtre de date ou fenêtre de date de la vigie le permet.
En effet, les dates de début et de fin du classeur : 12-03-2009 à 15h30 et 03-05-2009 à 08h51 sont situées dans la fenêtre de dates de la vigie, comprise entre 01-01-2000 à 00h00 et de fin : 28-03-2009 à 23h59
5.2.2.2.3 Modifier le filtre des dates ou fenêtre de dates de la Vigie
Il est possible de modifier la fenêtre de dates de la vigie en cliquant sur l'icône pour modifier la date de début, et l'icône pour la date de fin, ces icônes sont situées dans le bandeau des dates de la vigie :
Ci-dessous, nous voyons que la modification de la fenêtre de dates de la vigie : 03-05-2009 à 10h30 et de fin : 06-05-2009 à 23h59 ne permet plus l'affichage du classeur Classeur_Médecine_Générale mais seulement celui de Historique du dossier qui ne possède pas de date de fin et est donc encore ouvert ou actif .
5.2.2.2.4 Qu'est un filtre de classeurs et à quoi sert-il ?
Lors de votre travail vous souhaiterez parfois ne voir que certains classeurs. Par exemple vous et plus particulièrement votre secrétaire désirera ne voir que le contenu du classeur Administratif_Social. Cela est possible à l'aide des filtres de classeurs. Un filtre de classeurs est tout simplement une liste de classeurs qui seront ceux et seulement ceux affichés lors de la sélection de ce filtre.
Chaque filtre possède un nom et peut être activé dans la liste déroulante de choix des filtres.
Ci-dessous la liste déroulante des filtres montrant le filtre Médecin en cours de sélection.
5.2.2.2.5 Créer un filtre de classeurs par l'exemple
Dans l'exemple ci-dessus nous avons vu qu'il était peut être utile de créer pour notre secrétaire, un filtre de classeurs ne permettant de rendre visible que le classeur Administratif_Social.
Nous nommerons ce filtre Secrétaire.
5.2.2.2.5.1 Ajouter un filtre de classeurs
° Désactivez le filtre de classeurs en décochant la case : afin de rendre tous les classeurs visibles.
° Cliquez sur l'icône cela fera apparaître la boîte de dialogue suivante :
° saisissez y le nom du filtre : Secrétaire et confirmez. Pour l'instant, ce filtre Secrétaire a une liste répertoires vides, donc ne sert à rien.
5.2.2.2.5.2 Ajouter un classeur au filtre de classeurs
° Sélectionnez le filtre nouvellement créé Secrétaire dans la combobox de sélection des filtres de classeurs.
° puis dans la liste des classeurs de la Vigie, positionnez vous à l'aide de la souris au dessus du classeur : Administratif_Social et cliquez à l'aide du bouton droit de la souris pour faire apparaître le menu contextuel dans lequel vous sélectionnerez avec le bouton gauche de la souris l'option : Ajouter ce classeur à la liste du filtre en cours
Il est possible de rajouter d'autres classeurs au filtre de classeurs avec la même méthode.
° Activez le filtre de classeurs en cochant la case : afin de rendre les filtres actifs.
° Sélectionnez le filtre nouvellement créé Secrétaire dans la combobox de sélection des filtres de classeurs.
vous devriez avoir l'affichage suivant, ne montrant que les classeurs Classeur_Médecine_Générale/Administratif_Social avec leurs contenus. Ici nous avons activé l'option Tous les patients pour mieux voir l'effet du filtre sur plusieurs patients.
5.2.2.2.6 Modifier le filtre de classeurs
Restons dans l'exemple ci-dessus avec le filtre de classeurs Secrétaire activé et cliquons sur l'icône cela fera apparaître la boîte de dialogue suivante :
où nous voyons bien que le Classeur_Médecine_Générale/Administratif_Social est bien présent dans la liste, cette liste peut être modifiée à la main, chaque classeur du filtre doit être sur une ligne séparée. Lisez le petit texte d'aide de ce dialogue.
5.2.2.2.7 Effacer un filtre de classeurs
° Sélectionnez le filtre à effacer dans la combobox de sélection des filtres de classeurs et cliquez sur l'icône cela effacera après confirmation le filtre de classeur en cours.
5.2.2.2.8 Voir tous les dossiers ou le dossier en cours :
La vigie permet de visualiser l'ensemble des classeurs en cours ou seulement ceux du patient en cours.
Ci-dessous une vue avec l'option : Tous les patients
5.2.2.3 ° Les cinq cases de propriétés d'un document (classeur ou document) de la Vigie :
Nous remarquerons que chaque ligne de la Vigie comporte cinq cases entourées d'un rectangle gris.
Ces cases sont appelées cases de propriétés elles servent à placer des indications de votre choix que vous jugez utiles d'indiquer. Cela est laissé libre à votre imagination.
À chacune de ces cases, il est possible d'affecter une liste déroulante de votre choix permettant d'offrir des options prédéterminées pour remplir ces cases.
Les valeurs de chacune de ces cases, peuvent faire l'objet de requêtes SQL .
5.3 La Vigie par l'exemple : réalisation d'un classeur de Vaccinations
Cet exemple va nous permettre de réaliser un Classeur de suivi des vaccinations.
5.3.1 - Élaboration et édition du document insérant automatiquement le classeur Vaccinations :
5.3.1.1 Paramétrage du document par défaut de définition des classeurs :
Lors de la création d'un dossier patient, la Vigie charge un document type qui est chargé de créer tous les classeurs par défaut que vous souhaitez voir installés lors de la création d'un nouveau dossier patient.
Le chemin de ce document type est indiqué dans le fichier Manager.ini dans la section [Vigie] au niveau de la variable Defaut comme indiqué ci-après.

[Vigie]
Defaut = $Glossaire/Vigie/Classeur_Médecine_Générale.html

Note : $Glossaire sera remplacé par le chemin réel de l'emplacement du Glossaire.
Désactivation de l'automatisme : si vous placez un signe étoile en premier caractère exemple *$Glossaire/truc/bidule le système de classeur par défaut sera désactivé et les messages d'erreurs concernant la non validité éventuelle du fichier seront aussi invalidés.
Mode silencieux de l'automatisme : si vous placez un signe deux points en premier caractère exemple :/home/toto/truc/bidule le système de classeur par défaut sera silencieux et les messages d'erreurs concernant la non validité éventuelle d'un fichier seront invalidés.
Rappel : le fichier Manager.ini se trouve au niveau du répertoire : MedinTux/Manager/bin dans notre exemple ce fichier est : Classeur_Médecine_Générale.html
Pour modifier et éditer ce fichier, placez la souris au-dessus de la Vigie afin d'activer le Glossaire sur le répertoire qui lui est affecté, puis positionnez la souris au-dessus du fichier : Classeur_Médecine_Générale.html et cliquez avec le bouton droit de la souris afin de faire apparaître le menu contextuel, et cliquez avec le bouton gauche sur l'option menu Modifier et éditer ce modèle.
Cela lancera le logiciel QLightPad avec en édition le fichier : Classeur_Médecine_Générale.html
comme nous pouvons le voir ci-dessous :
Nous pouvons voir dans ce fichier une grande macro de plusieurs lignes encadrée par {{ }}
5.3.1.2 La première ligne comporte une macro de création de classeur à partir du document où elle est présente :
{{::Append_doc_in_classeur ()}}\
Cette instruction ordonne à la Vigie de MedinTux de placer le document en cours au niveau de la hiérarchie indiquée entre parenthèses (ici en racine du système de classeurs car vide). Cela créera le classeur : Classeur_Médecine_Générale (nom du fichier où est présente la macro) en racine du système de classeurs.
Une macro Append_doc_in_classeur () avec une hiérarchie vide est une macro de création de classeur racine.
5.3.1.3 La deuxième ligne comporte une macro d'importation de document :
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/CardioVasculaire.html , new noInquire, Documents)}}\
Cette instruction ordonne simplement à MedinTux d'importer et charger le document suivant : $Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/CardioVasculaire.htm l.
Le paramètre new indique de créer un nouveau document.
Le paramètre noInquire indique de ne pas demander de confirmer au cas où il y aurait déjà un document créé à cette date.
Le paramètre Documents indique que le document doit être placé dans la rubrique Documents.
Toujours à l'aide de QLightPad éditons ce document :
nous y voyons également une macro ou instruction de création de classeur.
{{\
{{::Append_doc_in_classeur (Classeur_Médecine_Générale)}}\
}}
Mais cette fois, la hierarchie indiquée entre parenthèses n'est pas vide et indique : Classeur_Médecine_Générale
ordonnant à la Vigie de MedinTux de créer le classeur : CardioVasculaire comme classeur fils du classeur Classeur_Médecine_Générale.
cela donnera au niveau de la Vigie la structure de classeurs suivante :
5.3.1.4 En résumé avec seulement les deux instructions suivantes :
{{::Append_doc_in_classeur ()}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/CardioVasculaire.html , new noInquire, Documents)}}
il est possible d'organiser et paramètrer n'importe quel système de classeur.
5.3.1.5 Rajouter la macro important le document du classeur Vaccinations : dans le document de paramétrage du système de classeur par défaut.
- Reprenons le document qui paramètre le système de classeurs par défaut de la Vigie : Classeur_Médecine_Générale.html
{{\
{{::Append_doc_in_classeur ()}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/CardioVasculaire.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Respiratoire_ORL.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Locomoteur_Traumatismes.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Digestive.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Troubles_Mentaux.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Endocrino_Métabolisme_Nutrition.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Prévention.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Génital_Urinaire.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Infectieuse.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Dermatologie.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Neurologie.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Tumeurs.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Ophtalmologie.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Affections_rares.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Patho_en_cours_non_résolue.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Administratif_Social.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Non classés.html , new noInquire, Documents)}}\
}}
- Rajoutons la ligne suivante
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Vaccinations.html , new noInquire, Documents)}}\
juste après {{::Append_doc_in_classeur ()}}\ nous devrions avoir :
{{\
{{::Append_doc_in_classeur ()}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Vaccinations.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/CardioVasculaire.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Respiratoire_ORL.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Locomoteur_Traumatismes.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Digestive.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Troubles_Mentaux.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Endocrino_Métabolisme_Nutrition.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Prévention.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Génital_Urinaire.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Infectieuse.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Dermatologie.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Neurologie.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Tumeurs.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Ophtalmologie.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Affections_rares.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Patho_en_cours_non_résolue.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Administratif_Social.html , new noInquire, Documents)}}\
{{::import ($Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/Non classés.html , new noInquire, Documents)}}\
}}
- Enregistrons le résultat.
5.3.1.6 Créer le document du classeur Vaccinations :
Pour nous faciliter la vie, vous allez partir d'un classeur déjà existant exemple CardioVasculaire.htm l et le modifier pour en faire le classeur Vaccinations.
Toujours à l'aide de QLightPad ouvrez le document : $Glossaire/Vigie/Classeur_Médecine_Générale/Classeurs/CardioVasculaire.htm l
Son contenu est le suivant :
{{\
{{::Append_doc_in_classeur (Classeur_Médecine_Générale)}}\
}}
Ne modifiez pas le texte de ce document mais enregistrez le simplement avec l'option menu Enregistrer sous en changeant le nom par Vaccinations.html.
cela a pour effet de créer un nouveau document et fichier : Vaccinations.html qui lors du chargement dans MedinTux créera le classeur Vaccinations. (nom du ficher) fils du classeur Classeur_Médecine_Générale comme indiqué par la macro :
Append_doc_in_classeur (Classeur_Médecine_Générale) .
5.3.1.7 Créer le répertoire Vaccinations : dans lequel seront placés tous les modèles et documents types relatifs aux vaccinations (ordonnances, certificats etc...)
Lorsque la Vigie retrouve dans le Glossaire un système de répertoires reproduisant sa hiérarchie de classeurs, lors de l'activation d'un classeur elle place le Glossaire sur le répertoir e correspondant.
comme vous pouvez le voir dans les figures ci-dessus, la hiérarchie de répertoires du système de fichiers de la Vigie est superposable à la hiérarchie des classeurs. Cette disposition (facultative) permet que lors d'un clic par exemple sur le classeur Administratif_Social le Glossaire se positionne sur le répertoire Administratif_Social correspondant.
Pour respecter cette disposition créez simplement un répertoire Vaccinations dans le répertoire Classeur_Médecine_Générale de la Vigie.
5.3.1.8 Créer un document type de prescription de vaccins dans le répertoire Vaccinations :
Placez enfin dans le répertoire : Classeur_Médecine_Générale/Vaccinations/
le document suivant : Vaccination tétanos.html
{{DOC_TYPE=Prescription}}
{{\
{{::Append_doc_in_classeur (Classeur_Médecine_Générale/Vaccinations)}}\
}}
1) Anatoxine tétanique, 1 dose de 0,5 ml
5.3.2 - Paramétrage d'un classeur automatique par défaut :
Tout ce qui précédait nécessitait la mise en place dans chaque document type du Glossaire d"une macro précisant dans quel classeur devait être placé le document.
Les prescriptions faites avec la base thérapeutique n'avaient pas non plus de possibilité de classement automatique.
Pour faire face à ces situations il existe une possibilité qui est la suivante :
5.3.2.1 Création des documents Classeurs par défaut :
Créez dans le répertoire : 'Ressources/Documents par defaut' de drtux les documents suivants que vous nommez :
/Ressources/Documents par defaut/Historique des nouveaux documents.html
/Ressources/Documents par defaut/Historique des ordonnances du codex .html
Le contenu de ces documents pourra être par exemple le suivant :
..................... (début de l'exemple Historique des nouveaux documents.html à la suite de cette ligne) ..............................
{{\
{{::Append_doc_in_classeur ()}}\
}}

Classeur contenant l'historique du dossier médical de :
{{TITRE PATIENT}} {{NOM PRENOM PATIENT}}
Date de création : {{DT=dd-MM-yyyy}}

...................... (fin de l'exemple)..................................
..................... (début de l'exemple Historique des ordonnances du codex .html à la suite de cette ligne) ..............................
{{\
{{::Append_doc_in_classeur ()}}\
}}

Classeur contenant l'historique des ordonnances élaborées avec le codex Vidal Datasemp pour :
{{TITRE PATIENT}} {{NOM PRENOM PATIENT}}
Date de création : {{DT=dd-MM-yyyy}}

...................... (fin de l'exemple)..................................
ce qui est important dans ces documents sont les macros :
{{\
{{::Append_doc_in_classeur ()}}\
}}
qui permettent de faire en sorte que les classeurs : Historique des nouveaux documents et Historique des ordonnances du codex soient créés automatiquement.
5.3.2.2 Création des paramètres des fichiers Manager.ini et drtux.ini :
Rajoutez dans la section [Vigie] de vos fichiers Manager.ini et drtux.ini les lignes suivantes :
Classement par defaut = Historique des nouveaux documents
Classement Ordonnances par defaut = Historique des ordonnances du codex
pour indiquer le nom des fichiers définissant les répertoires de destination par défaut.

6 Définir et créer des rubriques supplémentaires
Si vous êtes trop à l'étroit avec les rubriques habituelles, Observation, Prescription, Terrain, Classeurs etc. proposées par défaut, il vous est possible d'en rajouter autant que vous le désirez.
6.1 Création de la rubrique :
Nous allons, dans l'exemple suivant, rajouter une rubrique : Imagerie dans laquelle nous placerons toute l'imagerie du patient.
Pour cela, activez l'assistant de configuration de DrTux, en cliquant sur l'option Préférences du Menu Fichier :
cela affiche le dialogue des Préférences dans lequel il vous faut sélectionner l'icône Rubriques de façon à avoir le gestionnaire de rubriques comme ci-dessous, que vous renseignerez avec les indications données ci-dessous, puis validerez en cliquant sur le bouton 'Sauvegarder les Modifications'.
puis cliquez sur le bouton 'Ajouter une rubrique' , il vous sera demandé le nom de la rubrique,
saisissez-le et confirmez. Vous obtenez alors une nouvelle rubrique dans la liste des rubriques.
Par la suite, il vous sera possible de modifier le nom en double cliquant sur 7-Nom de la rubrique.
Les autres paramètres de la rubrique se modifient aussi en cliquant sur une des lignes numérotées 1 à 7.
6.1 Paramétrage de l'Identificateur de de type de rubrique :
Cliquez sur la ligne '4- Identificateur de de type de rubrique' pour définir l'identificateur de de type de rubrique, et saisissez le nombre 90040000 .
Désormais, tous les documents créés avec la rubrique Imagerie le seront avec cet identificateur qui doit être unique car c'est en quelque sorte la signature du document de la rubrique, MedinTux s'en sert pour orienter l'affichage des documents dans la rubrique qui lui est affectée.
Cliquez sur la ligne '2- Document par défaut lors première création' p
6.2 Paramétrage du préfixe du droit :
Pour toute rubrique il existe un droit déterminant les modalités d'accès des utilisateurs à cette rubrique.
Le préfixe du droit d'une rubrique est une chaîne de deux caractères définissant le préfixe du droit affecté à cette rubrique.

Ce préfixe associé aux lettres suivantes c,v,p détermine les droits suivants :

- 'c' détermine et forme le droit 'peut créer ou modifier la rubrique'.
- 'v' détermine et forme le droit 'peut voir la rubrique'.
- 'p' détermine et ' détermine et forme le droit 'peut imprimer la rubrique'.

Modifier le préfixe du droit d'une rubrique peut entraîner des comportements inadaptés et rendre certains documents non visibles ou non modifiables par les utilisateurs ne possédant pas le droit correspondant à ce préfixe.

Cela est réversible si le préfixe du droit correspond de nouveau à un droit possédé par cet utilisateur.

Cliquez sur la ligne '5- Préfixe du droit' et saisissez par exemple 'im' (les deux premières lettres de imagerie)
puis validez.
Les autres paramètres de la rubrique se modifient aussi en cliquant sur une des lignes numérotées 1 à 7.
Après définition d'une nouvelle rubrique ou modification des paramètres des autres rubriques n'oubliez pas de valider en cliquant sur le bouton 'Sauvegarder les Modifications'.
6.3 Document par défaut lors de la première création d'une rubrique :
Pour toute rubrique il est possible et conseillé de définir un document par défaut se mettant en place lors de la première création d'un dossier patient.
Par exemple, pour la rubrique 'Observation' il est utile de définir une maquette et formulaire par défaut à remplir lors du premier accès au dossier patient.
Pour cela, cliquez sur la ligne '2- Document par défaut lors première création' et à l'aide du sélecteur de fichiers, sélectionnez le document à placer comme document ou formulaire par défaut à installer lors du premier accès au patient.
6.3.1 Le paramètre de ce document par défaut est indiqué dans les fichiers suivants :
(que vous pouvez éditer avec n'importe quel éditeur de texte ascii).
'MedinTux/Programmes/Manager.ini'
'MedinTux/Programmes/drtux.ini'
section : [NOM DE LA RUBRIQUE]
entree : Defaut = chemin du document par défaut
Exemple pour la rubrique Identification :
[Identification]
Defaut = $Glossaire/Identification/Fiche Administrative.html
exemple pour la rubrique Observation :
[Observation]
Defaut = $Glossaire/Observation/OBSERV_STANDARD.htm l
6.3.2 Mentions particulières :

Vous remarquerez que la mention $Glossaire sera remplacée par le chemin réel du Glossaire en cours d'utilisation. Cette facilité permet de d'indiquer un document relatif au Glossaire en cours, quel que soit sa localisation.
Si vous faites précéder le chemin par le signe *, cela déactivera le document par défaut. C'est utile, par exemple, pour les rubriques (exemple 'Prescription' ) où il n'est pas utile de créer un document lors du premier accès.
[Prescription]
Defaut = *
De même, si vous placez le signe deux points (mode bavard) en début de chemin, un menu surgissant signalera l'éventuelle erreur de chargement du document.