Le module doit être désigné en interne par un nom court de 20 caractères maximum, sans lettre accentuée ou caractère spécifique ( ce qui peut être résumé ainsi [a-z0-9]{1,20}
).
Ce nom ne doit pas être redondant avec un autre et être le plus informatif possible sur le contenu du module.
Le module doit être enregistré dans la table system
de la base de données. Cela peut être fait par la commande SQL suivante :
INSERT INTO <span class="base64" title="PGNvZGUgY2xhc3M9J3NwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lJyBkaXI9J2x0cic+c3lzdGVtPC9jb2RlPg=="></span> ( <span class="base64" title="PGNvZGUgY2xhc3M9J3NwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lJyBkaXI9J2x0cic+bmFtZTwvY29kZT4="></span>, <span class="base64" title="PGNvZGUgY2xhc3M9J3NwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lJyBkaXI9J2x0cic+Z3JvdXBlPC9jb2RlPg=="></span>, <span class="base64" title="PGNvZGUgY2xhc3M9J3NwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lJyBkaXI9J2x0cic+dmFsdWU8L2NvZGU+"></span>) VALUES ( 'nomDuModule', 'module', 'v0.0.0');
Cette étape effectuée, le module existe dans le logiciel et est accessible en particulier dans tous les outils de conception et de configuration.
Il convient de s’inspirer des repositories existant pour déterminer l’arborescence à mettre en place pour le module.
/upgrade/nomDuModule/sqlInstall.sql
/.MedShakeEHR
/COPYING.txt
/versionMedShakeEHR-nomDuModule.txt
C’est un dump SQL qui comprend l’intégralité des données en base nécessaire à l’exécution du module. Son contenu peut être récupéré automatiquement en zone de configuration dans le listing des modules installés et en demandant les détails spécifiques au module désiré.
Si des données spécifiques sont à intégrer au dump, il convient de créer une class msModNomDuModuleSqlGenerate
qui étendra la class msSqlGenerate
(voir exemple pour les modules gynécologie obstétrique et médecine générale).
Fichier caché vide qui permet d’identifier un zip valide au moment de l’installation du module par glisser-déposer.
Copie de la licence de distribution, a priori GPL v3.
Version du module exprimé de la façon suivante v1.0.0
.
Les autres fichiers sont à déployer suivant les besoins et selon les recommandations de l’article Base, modules et plugins : principes et fonctionnement, en considérant comme exemple les repositories des modules déjà existants.
Les différents processus dans MedShakeEHR peuvent être amendés ou complétés en employant des class et méthodes particulières qui permettent principalement de transformer ou compléter les données aux étapes cruciales.
Dans les lignes suivantes *Name* représente le nom du module en minuscules, sauf première lettre en majuscule.
Cette class permet d’ajouter des méthodes nécessaires aux calculs médicaux demandés par le module.
Il est fortement conseillé que la class créée étende msModBaseCalcMed
qui comporte elle des calculs génériques, par exemple l’IMC ou les calculs nécessaires à la grossesse.
Cette class est en quelque sorte l’équivalent du fichier JavaScript commonName.js
qui comporte lui les fonctions identiques nécessaires quand l’interactivité avec l’utilisateur l’exige.
Cette class permet d’extraire des informations préalablement à la génération d’un PDF (ou d’un courrier édité avant impression).
Les méthodes qui s’y trouvent doivent répondre à un nommage précis afin de pouvoir agir. Elles ne reçoivent qu’un argument : le tableau de données déjà retrouvées en fonction du type de document considéré.
Les appels sont faits par msCourrier::getCrData() à l’impression d’un formulaire de consultation ou d’examen complémentaire.
msMod*Name*DataCourrier::getCrDataCompleteModule($array)
: cette méthode est appelée systématiquement.msMod*Name*DataCourrier::getCrDataCompleteModuleForm_*nomDuFormulaire*($array)
: cette méthode est appelée contextuellement en fonction de nom du formulaire courant.msMod*Name*DataCourrier::type_*nomDuType*_CompleteData($array)
: cette méthode est appelée quand un type de data (identifié par son nom interne) est présent antérieurement dans le tableau.Les appels sont faits par msCourrier::getReglementData() à l’impression d’un document de type règlement.
msMod*Name*DataCourrier::type_*nomDuType*_CompleteData($array)
: fonctionnement identique à celui décrit au paragraphe précédent.
Les appels sont faits par msCourrier::getCourrierData() avant la présentation dans l’éditeur de courrier.
msMod*Name*DataCourrier::getCourrierDataCompleteModule($array)
: cette méthode est appelée systématiquement.msMod*Name*DataCourrier::getCourrierDataCompleteModuleModele_*nomDuModele*($array)
: cette méthode est appelée contextuellement en fonction de nom du modèle de courrier courant.msMod*Name*DataCourrier::type_*nomDuType*_CompleteData($array)
: fonctionnement identique à celui décrit au paragraphe précédent.Les appels sont fait par msCourrier::getOrdoData() à l’impression d’un document de type ordonnance.
msMod*Name*DataCourrier::getOrdoDataCompleteModule($array)
: cette méthode est appelée systématiquement.msMod*Name*DataCourrier::type_*nomDuType*_CompleteData($array)
: fonctionnement identique à celui décrit au paragraphe précédent.Cette class permet d’ajouter des méthodes nécessaires à la transformation des données avant insertion en base (par exemple la mise en majuscule ou le formatage d’un numéro de téléphone). Attention, cette class ne doit pas servir pour la validation de la donnée.
Il est fortement conseillé que la class créée étende msModBaseDataSave
qui comporte des méthodes génériques réutilisables.
Les méthodes à créer dans la class doivent être nommées tbs_*nomDuType*($value)
et doivent retourner la $valeur passée transformée.
Cette class permet de spécifier des méthodes qui pourront agir antérieurement à l’affichage du formulaire à l’écran ou postérieurement à la validation du formulaire par l’utilisateur.
Cette class doit étendre msForm.
Elles sont possibles via 2 méthodes :
doPreGetForm_**nomDuForm**
: agit avant getForms()
doPostGetForm_**nomDuForm**
: agit après getForms()
La méthode doPostPostFormGeneric()
est exécutée après insertion des datas en base des données.
Cette class permet de définir l’aperçu des objets figurants dans les historiques du dossier patient.
Elle étend la class msModBaseObjetPreview
Les méthodes présentes doivent renvoyer le html à inclure comme aperçu. Elles doivent être nommées getPreview*ModuleName**ObjetName*()
où *ModuleName* est le nom court du module et *ObjetName* le nom unique de l’objet, typiquement le nom unique utilisé pour le type de la consultation qui génère la ligne d’historique.
Article précédent
Article suivant