Bhima is a free, open source accounting and hospital information management system (HIMS) tailored for rural hospitals in Africa. We are an international team based in the Democratic Republic of the Congo.
NB: ce sont les instructions pour installer l’environnement de développement BHIMA. Si vous souhaitez déployer BHIMA en production, consultez nos instructions de déploiement pour Digital Ocean.
Le logiciel BHIMA peut être complexe à installer. Nous ne prenons officiellement en charge que Linux. Le guide suivant suppose donc que vous configurez BHIMA dans un environnement Linux basé sur Debian.
Ce guide vous permettra de vous familiariser avec bhima localement. Veuillez noter que bhima est en développement actif et a tendance à aller vite et à casser des choses. Si vous êtes intéressé par les progrès du développement, envoyez-nous une ligne à developers@imaworldhealth.org.
Avant de commencer le processus d’installation, assurez-vous que toutes les dépendances bhima sont installées localement. Nous ne testons que sous Linux. Il est donc préférable d’utiliser une version de Linux que vous connaissez bien. Assurez-vous d’avoir la version récente de:
# Exécutez la commande suivante pour mettre à jour les listes de paquets:
sudo apt-get update
#Installer MySQL avec la commande suivante:
sudo apt-get install mysql-server
# Exécutez les commandes suivantes pour installer Redis:
sudo apt-get install redis-server
# Exécutez les commandes suivantes pour installer curl:
sudo apt-get install curl
#Installer le gestionnaire de version de noeud localement
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | frapper
# Configurez les variables d'environnement pour le gestionnaire de version de noeud
export NVM_DIR = "$ HOME/.nvm"
[-s "$ NVM_DIR/nvm.sh"] && \. "$ NVM_DIR \ nvm.sh" # Ceci charge nvm
#Téléchargez NodeJS LTS
nvm install lts/*
# Exécutez la commande suivante pour installer git:
sudo apt-get install git
Clonez la source à l’aide de git à partir du référentiel github à l’aide des commandes suivantes:
git clone https://github.com/IMA-WorldHealth/bhima.git bhima
cd bhima
Tous nos scripts de construction se trouvent dans le fichier package.json
. Nous utilisons gulpjs en interne, mais vous ne devriez jamais avoir besoin d’appeler explicitement gulp.
Pour exécuter les scripts de construction, vous pouvez utiliser yarn
ou npm
. Nous utiliserons npm
pour le reste de ce guide.
# Dans le répertoire bhima /
# installer tous les modules de noeuds
npm run install
# Si cette commande vous donne une erreur (par exemple, si vous utilisez Parallels), essayez d’exécuter la commande suivante:
git config -global url. "https: //" .insteadOf git: //
Les dépendances devraient maintenant être définies!
BHIMA utilise des variables d’environnement pour se connecter à la base de données et basculer entre des fonctionnalités. Ceux-ci se trouvent dans le fichier .env.sample
inclus dans le niveau supérieur du référentiel. Copiez les elements vers une fichier .env
avec vos propres variables.
Avant de construire, éditez votre .env
pour configurer vos paramètres de connexion à la base de données MySQL. Leurs variables doivent être explicites.
Utilisez la commande suivante pour modifier le fichier .env si vous le souhaitez (apportez vos modifications, puis tapez ctrl + x pour quitter et enregistrer ):
cp .env.sample .env
nano .env
# Exécutez les commandes suivantes pour créer l'utilisateur bhima dans MySQL afin qu'il puisse construire la base de données (assurez-vous que l'utilisateur et #password correspondent tous les deux à ce que vous avez défini dans le fichier .env):
sudo mysql -u root -p
CREATE USER 'bhima'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'mot de passe';
Accordez tous les privilèges sur *. * TO 'bhima'@'localhost';
#Utilisez ctrl + z pour revenir à l'invite du terminal principal
Ensuite, construisez l’application avec
# construire l'application
NODE_ENV="development" npm run build
NOTE: BHIMA s’exécute dans _sql_mode = 'STRICT_ALL_TABLES,NO_UNSIGNED_SUBTRACTION'
. Bien qu’il ne soit pas nécessaire que cette option soit définie pour générer la base de données, les tests ne seront pas validés à moins que le code SQL correct _MODE soit défini._
#Pour configurer MySQL avec ce paramètre, exécutez les commandes suivantes:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
# dans la section [mysqld], ajoutez le texte suivant:
sql-mode="STRICT_ALL_TABLES,NO_UNSIGNED_SUBTRACTION"
# sauvegarder, puis redémarrez mysql avec la commande suivante:
sudo systemctl restart mysql
Tu peux aussi utiliser docker avec mysql. Le command pour le lancer est:
# demarrer docker sur port 3306
docker run --name mysql -p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=<MyPassword> \
-e MYSQL_ROOT_HOST=% \
-d mysql:9.1 \
--sql-mode='STRICT_ALL_TABLES,NO_UNSIGNED_SUBTRACTION'
Il faut changer le fichier .env
pour mettre DB_HOST
a 127.0.0.1
.
La structure de la base de données est contenue dans les fichiers server/models/*.sql
. Vous pouvez les exécuter un par un dans l’ordre ci-dessous ou simplement lancer npm run build: db
.
server/models/01-schema.sql
server/models/04-triggers.sql
server/models/02-functions.sql
server/models/03-procedures.sql
server/models/98-admin.sql
Ceci configure le schéma de base, les déclencheurs et les routines. Les scripts suivants créeront un ensemble de données de base avec lequel commencer à jouer:
server/models/05-icd10.sql
server/models/06-bhima.sql
test/data.sql
Vous pouvez exécuter tout cela en utilisant la commande suivante: npm run build:db
Vous pouvez également utiliser le script./sh/build-database.sh
, personnalisé à l’aide de vos variables d’environnement, comme indiqué ci-dessous:
# installer la base de données
DB_USER='moi' DB_PASS='MonPassword' DB_NAME='bhima' ./sh/build-database.sh
Exécuter l’application est super facile! Tapez simplement npm run dev
dans le répertoire racine de l’application.
Si vous avez modifié la variable $PORT
dans le fichier.env
, votre application écoutera sur ce port. Par défaut, il est 8080
.
Accédez à https://localhost:8080 dans le navigateur pour vérifier l’installation. Vous devriez être accueilli avec une page de connexion.
Nos tests sont répartis en tests unitaires, tests de bout en bout et tests d’intégration. Il y a plus d’informations sur les tests dans le wiki.
test de fil: intégration
.test de fil: unité-serveur.
test de fil: unité-client
.npm run test:e2e
.Vous pouvez exécuter tous les tests en tapant simplement npm run test
.
Profitez de l’aide bhima!