Le logiciel MedShakeEHR est conçu pour être modulaire : sur une base commune de codes et de fonctionnalités, on vient déposer les fichiers composant un module spécifique à un type d’exercice ou de profession.
La base de MedShakeEHR peut aussi (à partir de la v6.6.0) se voir greffer sous forme de plugins des fonctionnalités transverses, communes à l’ensemble des modules installés.
Il s’agit le plus souvent de fonctionnalités techniques, par exemple d’une méthode complémentaire d’envoi de message ou d’une tâche planifiée spécifique.
La base de MedShakeEHR est disponible dans le repository Github MedShake/MedShakeEHR-base
Depuis la version 2.0.0, la base est capable de fonctionner seule. Elle offre un point de départ commun pour le développement de modules spécifiques.
Sa mise en oeuvre sera possible en consultant les articles suivants de la rubrique Documentation technique.
Les différents modules existants sont répertoriés dans le menu déroulant du même nom accessible en haut de cette page. Ils sont, sauf mention contraire, eux aussi disponibles sur Github.
Un module est complémentaire de la base. Il vient amender ou étendre le comportement des scripts pour adapter les actions et la mise en page.
Il apporte également un modèle de données qui vient compléter celui de la base via un dump MySQL.
Depuis la version 3.0.0, il est possible d’installer plusieurs modules sur la même base patients sans conflit entre fichiers. Le module utilisé est spécifique à la configuration de l’utilisateur.
Le système de plugins est introduit depuis la version 6.6.0 de MedShakeEHR.
Son but est double :
– ne plus distribuer systématiquement des fonctionnalités qui ne seraient pas utiles à tous
– versionner ces composants spécifiques
Ce système encore jeune a vocation à se déployer le plus possible dans les versions futures. Des évolutions techniques sont donc à prévoir.
La mécanique qui gouverne le fonctionnement conjoint de la base et du module se fait sur les principes suivants :
/controlers/module/
puis dans une arborescence comparable à celle de controlers
. Par exemple, s’il faut amender /controlers/patient/patient.php
, il convient de créer /controlers/module/patient/patient.php
. NB : les instructions du fichier de module sont exécutées après celles du fichier de la base.En conséquence des règles énoncées ici, l’installation de MedShakeEHR doit commencer par celle de la base puis il convient ensuite d’installer les modules.
Comme il a été dit plus haut, les templates servant à générer les pages vues par l’utilisateur fonctionnent en mode cohabitation / substitution.
À nom identique, les templates du module sont utilisés prioritairement à ceux de la base.
On peut définir (version MedShakeEHR > 2.3.1) un niveau supplémentaire se trouvant en tête des priorités : les templates spécifiques à l’utilisateur identifié. Ces templates sont à stocker aux côtés de ceux de la base et des modules dans un dossier dont le nom contient l’identifiant numérique de l’utilisateur templates/templatesUser*ID*/
.
La liste des priorités finales s’établit ainsi à : template utilisateur > template module > template base
NB : cette hiérarchie ne concerne en rien les templates nécessaires à l’impression de PDF dont l’emplacement est lui géré par une variable de configuration qui peut être surchargée utilisateur par utilisateur.
L’article Création d’un nouveau module indique les bases pour la conception d’un module à partir de zéro.
L’article Création d’un nouveau plugin indique les bases pour la conception d’un plugin à partir de zéro.
Article précédent