Vous trouverez dans les sources les instructions et les scripts pour une mise en production en utilisant Docker.
Cette modalité est développée et maintenue par Marsanté que nous remercions !
Il est impératif de définir la variable d’environnement MEDSHAKEEHRPATH dans votre serveur web. Cela peut être réalisé préférentiellement au niveau de la configuration de votre virtual host apache ou dans le .htaccess en racine du dossier web. Cette seconde option implique cependant que vous éditiez à nouveau le .htaccess après chaque mise à jour. La ligne suivante est à ajouter :
SetEnv MEDSHAKEEHRPATH /chemin/vers/MedShakeEHR
NB : Le chemin à indiquer est celui qui permet l’accès aux répertoires class, controlers, templates ... pas le chemin d’accès à la racine du site web !
Il existe depuis la version 3.1.0 de MedShakeEHR un moyen automatisé d’installation de la base du logiciel. Quand votre hébergement web est opérationnel, copiez- y à la racine le fichier self-installer.php
disponible dans les sources dans le dossier /installer/. Accédez-y ensuite par votre navigateur.
Astuce : dans les versions récentes du script, vous pouvez spécifier la version à installer via l’url en indiquant en paramètre v=vX.X.X où X.X.X est la release à déployer.
Si le processus se déroule correctement, vous devriez à son terme poursuivre par la configuration expliquée au paragraphe suivant.
Notez que pour que l’installation automatique fonctionne correctement, l’utilisateur qui exécute le serveur web (en général www-data) doit avoir les droits complets sur le répertoire web racine (là où vous avez copié l’installeur) et sur le répertoire de destination où vous demanderez l’installation du logiciel.
La méthode alternative à l’installation automatique est de récupérer les sources du logiciel et de les transférer manuellement à l’emplacement prévu.
Par défaut le dossier accessible par le web est dans MedShakeEHR nommé public_html
.
À partir de la version 3.1.0, la quasi-intégralité de la configuration peut être réalisée dans le navigateur en accédant à https://localhost/install.php
.
Si vous avez opté pour une installation automatique (cf. paragraphe précédent), vous devriez avoir abouti sur cette page. Sinon, vous pouvez y accéder manuellement.
Ce script s’assurera de quelques prérequis :
– que la variable d’environnement MEDSHAKEEHRPATH est bien présente
– que les packages tiers PHP et JavaScript sont bien installés via Composer
– que les répertoires nécessaires à l’écriture du fichier de configuration sont bien accessibles
Ensuite, il vous permettra de définir précisément la configuration minimale pour rendre le logiciel opérationnel et installera la base de données.
Enfin, le processus se terminera avec la création du premier utilisateur.
La configuration globale du logiciel et la gestion des utilisateurs pourront être faites par la suite dans la zone Configuration du logiciel en fonctionnement.
Le fichier /config/config.yml
de MedShakeEHR contient historiquement l’ensemble des paramètres de la configuration, mais son rôle à diminué au fil des versions. C’est un fichier au format yaml généré lors de l’installation. Ses paramètres s’appliquent par défaut à l’ensemble des utilisateurs du logiciel. Depuis la version 3.1.0, l’édition de ce fichier se fait graphiquement dans le logiciel, en zone Configuration par l’administrateur. Depuis la version 4.0.0 ce fichier ne comporte plus que les informations de base (connexion à la base de données en particulier) et son contenu se trouve maintenant dans la table configuration de la base de données.
Chaque paramètre peut être surchargé par son équivalent spécifique à un utilisateur.
Cela s’effectue dans l’interface de Configuration > Paramètres courants > Utilisateurs et options
en cliquant sur la clef à molette en regard du nom de l’utilisateur concerné.
À noter la possibilité pour un module de fixer des paramètres spécifiques également. Ces paramètres peuvent être là encore surchargés pour un utilisateur particulier.
MedShakeEHR possède (version 5.9.0) une page Informations système qui vous permettra de vous assurer de la configuration correcte et du bon fonctionnement d’un grand nombre de services et paramètres.
La liste des paramètres est laissée ici uniquement pour référence, mais elle peut être incomplète. Depuis la version 4.0.0, les paramètres sont documentés directement dans la zone de Configuration, en regard de leur valeur respective actuelle.
protocol: 'http://'
: http:// ou https://host: 'ehr.local'
: nom de domaine utilisé pour servir les pages. Une IP fonctionne parfaitementurlHostSuffixe: ''
: chemin après l’hôte si besoin. Ne pas indiquer de / final.homeDirectory: '/home/EHR/'
: répertoire racinewebDirectory: '/home/EHR/public_html/'
: répertoire racine qui sert les pages webstockageLocation: '/home/EHR/public_html/stockage/'
: répertoire de stockage des documents (pdf, txt ...). Doit être en zone accessible par le web.workingDirectory: '/home/EHR/public_html/workingDirectory/'
: répertoire de travail, idéalement vidé toutes les nuits avant backup de l’installation. Doit être en zone accessible par le web.cookieDomain: 'ehr.local'
: a priori, identique à hostcookieDuration: 31104000
: durée de vie des cookies = durée de vie avant déconnexion de l’utilisateurfingerprint: 'dfsdjh54ezaz5'
: chaîne aléatoire pour renforcer la sécurité de l’authentification utilisateurLe nom des paramètres devrait être suffisant à la compréhension.
sqlServeur: 'localhost'
sqlBase: 'ehr'
sqlUser: 'user'
sqlPass: 'password'
sqlVarPassword: '4fd45sf78s8'
: chaine aléatoire pour renforcer la sécurité.PraticienPeutEtrePatient: true
si ’true’ alors la fiche patient et professionnelle est unique, à double entrée. Voir Gestion patients et praticiens pour tous les détails.administratifSecteurHonoraires: 1
: choix du secteur de tarification, soit 1 ou 2.administratifPeutAvoirFacturesTypes: 'false'
: possibilité pour un utilisateur d’avoir des factures types propres à lui même.administratifPeutAvoirPrescriptionsTypes: 'false'
: possibilité pour un utilisateur d’avoir des prescription types propres à lui même.administratifPeutAvoirAgenda: 'false'
: possibilité pour un utilisateur d’avoir un agenda propres à lui même.administratifPeutAvoirRecettes: 'true'
: (v2.2.0) possibilité pour un utilisateur d’encaisser des recettes pour son propre compte.administratifComptaPeutVoirRecettesDe: ''
: (v2.2.0) liste des ID utilisateur (séparés par des virgules, sans espace) pour lesquels l’utilisateur concerné par le paramètre est autorisé à parcourir les recettes.templatesPdfFolder: '/home/EHR/templates/models4print/'
: (V2 et +) répertoire des fichiers de template pour la génération de PDF. Nécessite un accès en lecture écriture si on souhaite une création / édition via l’interface web de configuration.templateDefautPage: 'base-page-headAndFoot.html.twig'
: template par défauttemplateOrdoHeadAndFoot: 'base-page-headAndFoot.html.twig'
: template pour header et footer des ordonnances standards (non ALD)templateOrdoBody: 'ordonnanceBody.html.twig'
: template pour le corps des ordonnances standardstemplateOrdoALD: 'ordonnanceALD.html.twig'
: template (complet) pour les ordonnances bizones ALDtemplateCrHeadAndFoot: 'base-page-headAndNoFoot.html.twig'
: template pour les compte-rendustemplateCourrierHeadAndFoot: 'base-page-headAndNoFoot.html.twig'
: template pour les courriersCes paramètres concerne l’expédition de messages non sécurisés. Pour les messages Apicrypt, voir plus bas.
smtpTracking: ''
: si non vide, permet d’activer le tracking des mails (état du mail : envoyé, reçu, rebond, spam ...) via un service tierssmtpFrom: 'user@domain.net'
: adresse de l’expéditeur des messagessmtpFromName: ''
: nom en clair de l’expéditeur des messagessmtpHost: 'smtp.net'
: serveur SMTPsmtpPort: 587
: port du serveur SMTPsmtpSecureType: 'tls'
: protocole ssl ou tls (ou rien)smtpOptions: 'off'
: options pour désactiver quelques options de sécurités qui peuvent empêcher la bonne communication avec un serveur SMTP.smtpUsername: 'smtpuserlogin'
: loginsmtpPassword: 'smtppassword'
: mot de passesmtpDefautSujet: 'Document vous concernant'
: titre par défaut du mail expédiéVoir aussi l’article Mise en oeuvre de la messagerie sécurisée Apicrypt.
apicryptCheminInbox: '/home/EHR/public_html/inbox/'
: chemin du répertoire qui sert de boite de réception. Doit être en zone accessible web.apicryptCheminArchivesInbox: '/home/EHR/public_html/inboxArchives/'
: répertoire qui sert à archiver par date de traitement les messages reçus, classés dans les dossiers comme non classés.apicryptInboxMailForUserID: '0'
: ID numérique qui indique pour l’utilisateur quels mails il est susceptible de pouvoir lire (utilisateur qui n’a pas de boite en propre par exemple)apicryptCheminFichierNC: '/home/EHR/public_html/workingDirectory/NC/'
: répertoire de travail pour Apicrypt, fichier non chiffrésapicryptCheminFichierC: '/home/EHR/public_html/workingDirectory/C/'
: répertoire de travail apicrypt, fichiers chiffrésapicryptCheminVersClefs: '/home/EHR/apicrypt/'
: chemin vers les répertoire Clefs Apicrypt contenant les clefs de l’utilisateur.apicryptCheminVersBinaires: '/home/EHR/apicrypt/bin/'
: répertoire contenant les programmes Apicrypt en ligne de commandeapicryptUtilisateur: 'prenom.NOM'
: nom d’utilisateur Apicrypt (portion devant le @ de l’adresse)apicryptAdresse: 'prenom.NOM@medicalXX.apicrypt.org'
: adresse complète apicryptapicryptSmtpHost: 'smtp.intermedic.org'
: smtp pour l’envoi de message Apicrypt (ne cherchez pas compliqué, utilisez intermedic.org !)apicryptSmtpPort: '25'
apicryptPopHost: 'pop.intermedic.org'
: serveur pop ApicryptapicryptPopPort: '110'
apicryptPopUser: 'prenom.NOM'
: nom d’utilisateur pour le serveur popapicryptPopPassword: 'passwordapicrypt'
: mot de passe apicryptapicryptDefautSujet: 'Document concernant votre patient'
: sujet par défaut des mails Apicrypt (attention, n’est pas chiffré : jamais d’éléments d’identité dans le sujet !)faxService: ''
: non vide, active le service tiers concernéecofaxMyNumber: '0900000000'
ecofaxPass: 'password'
Ces paramètres servent principalement à interagie avec Orthanc qui doit être installé sur le réseau (ou sur le même ordinateur que MedShakeEHR).
dicomHost: '127.0.0.1'
: IP du serveur OrthancdicomPrefixIdPatient: '1.100.100'
: prefix à appliquer à l’identifiant numérique MedShakeEHR pour en faire un identifiant DICOM unique.dicomWorkListDirectory: '/home/EHR/public_html/workingDirectory/'
: répertoire où Orthanc va récupérer le fichier dicom worklist généré par MedShakeEHR pour le passer à l’appareil d’imagerie qui sera ainsi pré configuré au nom et caractéristiques du patient.dicomWorkingDirectory: '/home/EHR/public_html/workingDirectory/'
: répertoire de travail local où on peut rapatrier des images à partir d’Orthanc pour les parcourir ou les traiter (pdf, zip ...). Utilisez le même répertoire que celui indiqué dans workingDirectory
des paramètres généraux. Doit être en zone web accessible.dicomAutoSendPatient2Echo: 'false'
: générer automatiquement le fichier worklist pour Orthanc à l’ouverture d’un dossier patient. Ne pas mettre à ’true’ pour une secrétaire par exemple !dicomDiscoverNewTags: 'true'
: enregistrer automatiquement dans la base de données les nouveaux tags dicom rencontrés lors de la visualisation d’études afin de pouvoir les associer par la suite automatiquement avec des données de formulaire MedShakeEHR (remplissage automatique de formulaire avec données DICOM SR)La configuration DICOM (cf paragraphe précédent) doit être complète et fonctionnelle pour l’utilisation de PhoneCapture.
phonecaptureFingerprint: 'xAsD3dSAZd'
: chaîne aléatoire permettant une sécurisation de l’identification des périphériques PhoneCapturephonecaptureCookieDuration: 31104000
: durée de vie d’identification d’un périphérique pour PhoneCapturephonecaptureResolutionWidth: 1920
: résolution des photos, largeur. phonecaptureResolutionHeight: 1080
: résolution des photos, hauteur.agendaDistantLink: 'http://monagenda.agenda.abc'
: lien à appliquer à Agenda sur les pages MedShakeEHRagendaDistantPatientsOfTheDay: 'http://monagenda.agenda.abc/patientsOfTheDay.json'
: url distante où l’on peut récupérer une liste horodatée des patients du jouragendaLocalPatientsOfTheDay: 'patientsOfTheDay.json'
: fichier json de la liste horodatée des patients du jouragendaNumberForPatientsOfTheDay: 1
: quel numéro d’agenda pour générer à partir de l’agenda interne concerné une liste des patients du jour pour le menu PatientsmailRappelLogCampaignDirectory: '/home/EHR/public_html/mailsRappelRdvArchives/'
: répertoire où on va loguer les rappels de rendez-vous par mailmailRappelDaysBeforeRDV: '3'
: nombre de jours avant le rendez-vous pour l’expédition du rappelsmsProvider: ''
: non vide, active le service tiers concernésmsLogCampaignDirectory: '/home/EHR/public_html/smsArchives/'
: répertoire où on va loguer les rappels de rendez-vous par SMSsmsDaysBeforeRDV: '3'
: nombre de jours avant le rendez-vous pour l’expédition du rappelsmsCreditsFile: 'creditsSMS.txt'
: fichier qui contient le nombre de SMS restantssmsSeuilCreditsAlerte: '150'
: prévenir dans l’interface du logiciel si crédit inférieur ou égale à.smsTpoa: 'Dr ....'
: nom d’expéditeur du SMStemplatesFolder: '/home/EHR/templates/'
: répertoire racine des dossiers de templates (dont base)Ces paramètres étaient utilisés dans les version < 3.0.0 et sont dépréciés : templatesBaseFolder, templatesModuleFolder, templateBaseFolder, twigPdfTemplatesDir.
Paramètres de configuration du moteur de template Twig. Ne pas modifier sans solide connaissance.
twigEnvironnementCache: false #'/tmp/templates_cache/'
: le cache twig est désactivé, pourquoi pas essayer de l’activer.twigEnvironnementAutoescape: false
: autoescape du html est off.Article précédent
Article suivant