Environnement de production nécessaire à MedShakeEHR

Préambule et avertissements

Ce logiciel ne doit pas être utilisé en l’état pour le stockage de données patient sur un réseau ouvert, par exemple Internet.
Son utilisation doit être exclusivement limitée à un réseau privé sans utilisateur potentiellement hostile.
Il est rappelé d’autre part que, quel que soit le scénario utilisé, il convient de respecter la législation en matière d’hébergement de données santé en vigueur dans votre pays.
Enfin, conformément à la licence GPL v3 sous laquelle ce logiciel est livré ici, il est fourni sans aucune garantie.

Bases de l’installation

Mise en production avec Docker

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 !

Si vous ne souhaitez pas utiliser Docker et préférez mettre en place votre propre infrastructure logicielle, poursuivez plus bas et consultez également les articles suivants.

Environnement de départ

MedShakeEHR fonctionne sur un serveur LAMP.

Nous vous encourageons très fortement à chiffrer dans leur intégralité vos disques durs et vos sauvegardes. Cela se fait très simplement pendant le processus d’installation de bon nombre de distributions Linux. Ainsi en cas de vol du matériel, il sera parfaitement impossible pour un tiers de parcourir ou de reconstituer vos dossiers médicaux.

Nous l’utilisons sur une Debian 11 avec :
 Apache 2
 PHP 8.2
 MariaDB

L’adapter à un autre environnement ne devrait pas poser de problème majeur.

Installez aussi sur votre serveur GhostScript, ImageMagick, pdftk et git.
Concernant PHP, n’oubliez pas les packages concernant PDO, intl, curl, zip, xml, imagick, imap, soap, bcmath, yaml. Vérifiez et upgradez si besoin les paramètres de limite d’upload et de timeout assez largement pour ne plus y penser ensuite (upload_max_filesize et post_max_size du php.ini recommandés à au moins 20Mo).
Assurez-vous aussi que max_input_vars de PHP est au moins à 10 000, cela est nécessaire en particulier si vous utilisez le LAP.
Concernant apache, n’oubliez pas mod_rewrite et mod_headers. Assurez-vous que le .htaccess est bien interprété dans la configuration du virtual host apache ( AllowOverride All et pas None, ou valeur plus restrictive du type Fileinfo par exemple).

Composant Installer / configurer
Utilitaires - base
  • GhostScript
  • ImageMagick
  • pdftk (paquet pdftk-java)
  • git
  • binaires Apicrypt si besoin (+ sudo)
Utilitaires - DICOM / Phonecapture
  • Orthanc
  • DCMTK
Apache
  • mod_rewrite actif (url rewriting), mod_headers
  • virtual host : AllowOverride All (interprétation du .htaccess)
PHP
  • packages notables : PDO, bcmath, gd, intl, curl, zip, xml, imagick, imap, soap, dom, mbstring, yaml
  • paramètres à ajuster : upload_max_filesize, post_max_size, max_input_vars

Exemple de mise en œuvre sur serveur Debian

Attention, cet exemple n’est pas un tutoriel détaillé permettant d’aboutir à une installation sécurisée du logiciel.
  • Installation de Debian
  • Installation des paquets Apache / MariaDB / PHP (une astuce peut être de faire un apt-get install phpmyadmin ce qui par le jeu de dépendances va permettre d’aboutir simplement)
  • Installation des autres paquets spécifiques pour les logiciels et modules indiqués plus haut.
  • Création de l’arborescence /home/ehr/public_html/
  • Rapatriement dans /home/ehr/public_html/ du script PHP qui aide à l’installation : wget https://raw.githubusercontent.com/MedShake/MedShakeEHR-base/master/installer/self-installer.php
  • Ajustement des bons droits sur les répertoires et fichiers :
    • chmod -R 775 /home/ehr
    • chown -R www-data:www-data /home/ehr (ici le groupe peut être avantageusement positionné sur celui de l’utilisateur qui accède par SSH)
  • Pointer le virtual host apache désiré sur /home/ehr/public_html/
  • S’assurer d’avoir un couple login/password valide pour la connexion SQL avec les droits complets
  • Accéder par le navigateur au fichier self-installer.php : http://hostOuIP/self-installer.php. Indiquer /home/ehr comme répertoire d’installation. Dérouler ensuite le processus d’installation.
  • Supprimer le fichier self-installer.php rm /home/ehr/public_html/self-installer.php

Nous recommandons aussi l’installation de webmin qui est un outil intéressant pour ceux qui ne sont pas familiarisés totalement à la configuration d’un LAMP en ligne de commande.

Exemple de mise en œuvre complète sur serveur Ubuntu

GB diffuse sur la liste de discussion MedShakeEHR un tuto complet d’installation agrémenté d’astuces et de conseils divers. Vous trouverez ce tuto dans ce fil de discussion. Assurez-vous de bien en lire la dernière version.

Packages tiers

Depuis la version 3.1.0 nous utilisons exclusivement Composer pour la gestion des packages back-end et front-end (auparavant nous utilisions Bower en front-end). Les fichiers /composer.json et /public_html/composer.json vous renseigneront sur les paquets utilisés.
Notez que lors de l’installation automatique, les paquets tiers sont installés sans besoin d’intervention manuelle. Quand une mise à jour de MedShakeEHR nécessite l’ upgrade d’un ou plusieurs paquets, alors une commande composer update est lancée en fin de processus.

Fonctions DICOM

MedShakeEHR s’est tourné vers Orthanc, incroyable serveur DICOM open source (made in Belgium !), pour pouvoir interagir avec les appareils d’imagerie. MedShakeEHR utilise l’API REST d’Orthanc pour rapatrier des images et des données de type DICOM SR (données numériques ou textuelles structurées).

Orthanc doit donc être disponible sur le réseau et fonctionnel pour que MedShakeEHR puisse interagir avec les appareils d’imagerie.
Voyez l’article Principes de mise en oeuvre des fonctions DICOM pour plus d’informations à ce sujet.

Utilisation de la messagerie sécurisée Apicrypt

Consultez maintenant l’article Mise en oeuvre de la messagerie sécurisée Apicrypt.

Prérequis pour l’utilisateur final

MedShakeEHR n’utilise aucune particularité HTML ou JS qui nécessite à notre connaissance l’emploi d’un navigateur plutôt qu’un autre.
Il a été testé en phase de développement sur Firefox. Il ne devrait poser aucun problème sur le navigateur webkit (Safari, Chrome ...).
Il n’a pas même été ouvert sur les navigateurs de Microsoft.

Les modules existants sont basés sur une résolution d’écran minimale Full HD (1920 x 1080 pixels). En dessous, la qualité de la mise en page peut être altérée.

 
 
 

Article suivant