List of Repositories needed for Development on Bahmni

Development

This document lists the various GitHub code repositories that you might need to check out into your PROJECT folder for development on Bahmni (depending on which implementation / sub-project you are working on).

Clone Bahmni Code (Bash Script)

You can use this bash script to clone all the code quickly to your local machine: clone_bahmni_code.sh

NameGitHub URLFolder nameDescriptionTechnologies





Bahmni EMR Core
Bahmni UIhttps://github.com/Bahmni/openmrs-module-bahmniapps.gitopenmrs-module-bahmniappsAngular JS based Bahmni UI.Angular.JS
Bahmni Corehttps://github.com/Bahmni/bahmni-core.gitbahmni-coreCore bahmni backend (and Atom feed client for OpenELIS)Java, Hibernate, REST
Utilshttps://github.com/Bahmni/bahmni-java-utils.gitbahmni-java-utilsSome common classes needed by bahmni-coreJava
Implementer Interfacehttps://github.com/Bahmni/implementer-interface.gitimplementer-interfaceA repository for implementer-interfaces like form-builder, reporting, dashboard etc.ReactJS
Bahmni Scriptshttps://github.com/Bahmni/bahmni-scripts.gitbahmni-scriptsUtility scripts used by Bahmni like anonymizing, Branching, Deleting Patient Data..etc.Shell Scripting
Form Controlshttps://github.com/Bahmni/form-controls.gitform-controls

Repository of reusable custom ReactJS components

ReactJS
Bahmni Reportshttps://github.com/Bahmni/bahmni-reports.gitbahmni-reportsRepository to host the Reports web application for the BahmniJava
Appointment Scheduling UIhttps://github.com/Bahmni/openmrs-module-appointments-frontendopenmrs-module-appointments-frontendUI for Appointment Scheduling in BahmniAnglar.js + React
Lab Litehttps://github.com/Bahmni/bahmni-lab-frontendbahmni-lab-frontendNew Lab Module for uploading Patient Lab reports (using O3 design system).React, Micro-frontends, TypeScript
Bahmni Modules



Bacteriologyhttps://github.com/Bahmni/bacteriology.gitbacteriologyOpenMRS module for bacteriology - Specimen, Culture, DST and SmearJava
Two Factor Authenticationhttps://github.com/Bahmni/two-factor-auth.gittwo-factor-authApplication to handle two factor authentication in BahmniJava
Audit Log Servicehttps://github.com/Bahmni/audit-logaudit-logAudit logging of bahmni-core and bahmni-uiJava
Appointment Schedulinghttps://github.com/Bahmni/openmrs-module-appointmentsopenmrs-module-appointmentsBackend for appointment schedulingJava
Fhir2 extension modulehttps://github.com/Bahmni/openmrs-module-fhir2Extensionopenmrs-module-fhir2ExtensionExtension module for updating implementation of openmrs fhir2 apis. Currently it has  the overridden implementation of DiagnosticReport resourceJava
Episodes Modulehttps://github.com/Bahmni/openmrs-module-episodesopenmrs-module-episodesDemonstrates the use of Episodes of Care for OpenMRS.Java
Bahmni QA & Automation



Bahmni Gaugehttps://github.com/Bahmni/bahmni-gauge.gitbahmni-gaugeBahmni Automation Test SuiteJava, ThoughtWorks Gauge
Functional Testshttps://github.com/Bahmni/emr-functional-tests.gitemr-functional-testsFunctional tests suit for EMR appsShell Scripting
Performance Testshttps://github.com/Bahmni/performance-testperformance-testPerformance Test Suite for BahmniScala, Gatling
Test Data Generatorhttps://github.com/Bahmni/bahmni-test-data-generatorbahmni-test-data-generatorPatients and Encounters test data generator for BahmniJava, REST
Performance Tests (Community Repo)https://github.com/albionshala/asha-bahmni-performanceasha-bahmni-performancePerformance tests written by Albion Shala (Deactivated) in his personal repo for Bahmni performance testing using JMeter and Blazemeter. These have not been run by Product Team.JMeter, Blazemeter.
Bahmni Connect (Offline App)
Bahmni Connecthttps://github.com/Bahmni/bahmni-offline.gitbahmni-offlineRepository of Bahmni Connect code. This supports Android and Chromium apps.AngularJS
Bahmni Connect Synchttps://github.com/Bahmni/bahmni-offline-sync.gitbahmni-offline-syncBahmni Connect omod for Android and Chrome extensionJava, Shell Scripting
Event Log Servicehttps://github.com/Bahmni/event-log-service.gitevent-log-serviceService which provides data to offline devicesJava





OpenMRS & Modules
OpenMRS Corehttps://github.com/openmrs/openmrs-core.gitopenmrs-coreCore OpenMRS codebase.Java, Spring, Hibernate, MySQL, REST
ID Genhttps://github.com/openmrs/openmrs-module-idgenopenmrs-module-idgenPatient Identifier generation moduleJava
ID Gen Webserviceshttps://github.com/Bahmni/openmrs-module-idgen-webservices.gitopenmrs-module-idgen-webservicesID Gen Webservices moduleJava
EMR APIhttps://github.com/openmrs/openmrs-module-emrapi.gitopenmrs-module-emrapiEMR API maintained by OpenMRS communityJava, Spring, REST
REST Webserviceshttps://github.com/openmrs/openmrs-module-webservices.rest.gitopenmrs-module-webservices.restOpenMRS REST Webservices ModuleJava, REST
Address Hierarchy Modulehttps://github.com/openmrs/openmrs-module-addresshierarchy.gitopenmrs-module-addresshierarchyAddress Hierarchy Module for managing locations and patient address levelsJava
Operation Theatrehttps://github.com/openmrs/openmrs-module-operationtheateropenmrs-module-operationtheaterOperation Theatre backend module (frontend is in bahmniapps)Java
Bed Management Modulehttps://github.com/openmrs/openmrs-module-bedmanagementopenmrs-module-bedmanagementIPD Bed / Ward Management (frontend is in bahmniapps)Java





OpenELIS
OpenELIShttps://github.com/Bahmni/OpenElis.gitOpenElisLab system (OpenELIS). + AtomFeed for Lab.Java, JSP, Struts, PostGRES





OpenERP / ODOO
Bahmni OpenERP moduleshttps://github.com/bahmni/openerp-modules.gitopenerp-modulesBahmni modules on OpenERPPython
Bahmni ODOO moduleshttps://github.com/Bahmni/odoo-modulesodoo-modulesBahmni 0.92+ modules on Odoo V10Python
JSS Custom OpenERP moduleshttps://github.com/JanSwasthyaSahyog/openerp-modulesopenerp-modulesJSS Specific customisations to OpenERPPython
ATOM Feed
ICT4H Atom Feedhttps://github.com/ICT4H/atomfeed.gitatomfeedMain Atom Feed InfrastructureJava, ATOM
OpenERP Atom Feedhttps://github.com/bahmni/openerp-atomfeed-service.gitopenerp-atomfeed-serviceGateway service for OpenERP Atom Feed synchronizationJava, ATOM, REST
OpenMRS Atom Feedhttps://github.com/ICT4H/openmrs-atomfeedopenmrs-atomfeedOpenMRS Atom Feed SynchronizationJava, ATOM, REST
Atomfeed consolehttps://github.com/ICT4H/atomfeed-consoleatomfeed-consoleUI to view atomfeed consoleJava, Server-Side UI
Example Atomfeed for Bahmnihttps://github.com/Bahmni/bahmni-feed-integration-examplebahmni-feed-integration-exampleExample code for Atom Feed Integration with Bahmni, that can be used as a starting point.Java, Spring, REST, ATOM





PACS / DCM4Chee / Radiology


DCM4cheehttps://sourceforge.net/projects/dcm4che/files/dcm4che2/2.0.28/
PACS Server (dcm4chee)Java
pacs-integrationhttps://github.com/Bahmni/pacs-integrationpacs-integrationATOM Feed based service that integrates Bahmni/OpenMRS with DCM4cheeJava
Bahmni MART / Analytics
Bahmni Marthttps://github.com/Bahmni/bahmni-martbahmni-martCreate various tables in analytics DB like Patient Information, Program Enrollment Information, Drug Orders, etc.Java, Spring Batch
Bahmni Mart Playbookshttps://github.com/Bahmni/bahmni-mart-playbookbahmni-mart-playbookAutomated ansible playbook to deploy bahmni-mart along with metabase(docker container) and spring cloud data flow server(docker container)Ansible, Docker





Setup, Config and Environment / DevOps
Reference Datahttps://github.com/bahmni/reference-data.gitreference-dataReference data setup for BahmniGroovy / Grails
OpenMRS-Distro-Bahmnihttps://github.com/bahmni/openmrs-distro-bahmni.gitopenmrs-distro-bahmniCollects OpenMRS mods, and publishes Bahmni mods to bahmni repo.Maven
Bahmni Packagehttps://github.com/Bahmni/bahmni-package.gitbahmni-packageBahmni deployment and RPMsGradle, Java, Shell scripting
Bahmni Vagranthttps://github.com/Bahmni/bahmni-vagrant.gitbahmni-vagrantManagement of vagrant box using packer. It comes with Bahmni on CentOS 6.8JSON, Shell Scripting
Bahmni Playbookshttps://github.com/Bahmni/bahmni-playbooks.gitbahmni-playbooksAnsible playbooks used for deploymentsShell Scripting
Bahmni on Kuberneteshttps://github.com/Bahmni/bahmni-k8s.gitbahmni-k8sKubernetes Configuration for Bahmni ComponentsYAML, Kubernetes Config
Bahmni Infrahttps://github.com/Bahmni/bahmni-infra.gitbahmni-infraTerraform configuration for provisioning resources for Bahmni on Cloud.Terraform
Helm Chartshttps://github.com/Bahmni/helm-charts.githelm-chartsRepository to store helm charts of Bahmni components. The artifacts are served using github pages .Helm Repsitory





Hospital / Implementation Specific
Demo Confighttps://github.com/Bahmni/default-config.gitdefault-configDemo based configurationJSON, SQL, Liquibase, Scripts
JSS (Jasper Reports)https://github.com/jss-emr/jss-reports.gitjss-reportsJasper Reports specific to JSS Hospital implementationJasper
JSS-Confighttps://github.com/JanSwasthyaSahyog/jss-config.gitjss-configJSS (Chattisgarh) Hospital based configurationJSON, SQL, Liquibase, Scripts
Search-Confighttps://github.com/searchgadchiroli/search-configsearch-configSEARCH (Gadchiroli) Hospital based configurationJSON, SQL, Liquibase, Scripts
Search Reportshttps://github.com/searchgadchiroli/search-reportssearch-reportsSEARCH (Gadchiroli) specific Jasper ReportsJasper
Amman Confighttps://github.com/bahmni-msf/amman-config.gitamman-configBahmni Configuration for AmmanJSON, SQL, Liquibase, Scripts
Possible Health Confighttps://github.com/Possiblehealth/possible-config.gitpossible-configBahmni Configuration for Possible HealthJSON, SQL, Liquibase, Scripts
Banyan Confighttps://github.com/Bahmni/banyan-config.gitbanyan-configBahmni Configuration for BanyanJSON, SQL, Liquibase, Scripts
Bangladesh Confighttps://github.com/SharedHealth/bd-uhc-config.gitbd-uhc-configBahmni Configuration for Bangladesh Upazilla Health Centers

JSON, SQL, Liquibase, Scripts

Bangladesh Master Datahttps://github.com/SharedHealth/HIE-Data/tree/master/src/main/resources/data/openmrs-concept/trHIE-DataBangladesh Master Data for OpenMRS Shared Health records
Hemalkasa Confighttps://github.com/Bahmni/lokbiradari-config.gitlokbiradari-configBahmni Configuration for Lok Biradari Parakalp (Hemalkasa)JSON, SQL, Liquibase, Scripts
EndTB Confighttps://github.com/Bahmni/endtb-config.gitendtb-configBahmni Configuration for EndTB ProjectJSON, SQL, Liquibase, Scripts
Bahmni EndTB Modulehttps://github.com/Bahmni/openmrs-module-bahmniendtb.gitopenmrs-module-bahmniendtbBahmni module for EndTBJava
Bahmni EndTB Batchhttps://github.com/Bahmni/bahmni-endtb-batch.gitbahmni-endtb-batchStandalone Application for full data export based on spring-batch for endTBJava
Gudalur Confighttps://github.com/Bahmni/ashwini-gudalur-config.gitashwini-gudalur-configBahmni Configuration for Gudalur Adivasi HospitalJSON, SQL, Liquibase, Scripts
Bhutan ePIS Confighttp://github.com/ePISBhutan/bhutan-configbhutan-configBahmni Configuration for Bhutan hospitalsJson, SQL, Liquibase, Scripts
PIH Confighttps://github.com/PIH/pih-bahmni-configpih-bahmni-configVarious Bahmni configurations done by PIH for facilities like wellbody clinic, endTB, Liberia, Compañeros En Salud (Mexico), etc.
Lesotho Country Wide eRegisterhttps://github.com/eRegisterbahmni_configs
  1. Lesotho country wide implementation of Bahmni, called eRegister. Read more here and here.
  2. Lesotho concept dictionary of terms. And here.

Haiti (Mekom)https://github.com/mekomsolutions/openmrs-config-haiti/openmrs-config-haiti
  1. Mekom solution configuration and master data for Haiti distribution.
  2. See initialiser module setup data in configuration folder here.
  3. This configuration also contains FRENCH translations for each of the "concepts" in the initialiser module csv.
Json, SQL, Liquibase, Scripts
Cameroon (Jembi)https://github.com/jembi/cameroon-bahmni-config/tree/stagingcameroon-bahmni-configBahmni Configuration for Cameroon (HIV), maintained by Jembi. (Switch to branch = staging)JSON, SQL, Liquibase, Scripts
Other Community Repositories related to Bahmni
Bahmni INDIA Distrohttps://github.com/BahmniIndiaDistro
  1. ABDM related extensions for Bahmni
  2. Bahmni configurations for India specific distributions (master data, clinic screens, etc)

Bahmni India Helm Umbrella Charthttps://github.com/BahmniIndiaDistro/helm-umbrella-chart.githelm-umbrella-chartHelm Umbrella Chart configuration for Bahmni India Distro which includes consuming of helm charts from Bahmni Product

Helm, YAML

OpenMRS Config Initialiserhttps://github.com/mekomsolutions/openmrs-module-initializeropenmrs-module-initializerThe OpenMRS Initializer module is an API-only module that processes the content of the configuration folder when it is found inside OpenMRS' application data directory. This is useful to creating seed/configuration data for an OpenMRS instance. An example configuration folder is available here: https://github.com/mekomsolutions/openmrs-config-haiti/tree/master/configurationJava, Scripts, CSV
Initialiser CSV generatorhttps://github.com/PIH/iniz-exportersiniz-exportersUse these scripts to export OpenMRS concepts and other data into CSV, for initialiser to read/import.Python
Bahmni Mobile App (POC)https://github.com/angshu/connect2Bahmniconnect2BahmniSimple Flutter application (Mobile App) integrating with Bahmni/OpenMRS. Depending on the capability of the server, certain features may not work. As of now, this project is experimental, only a starting point and far from being used in production. See sample video here: Demo video of Doctor Mobile appFlutter
Speech Assistant (front end)https://github.com/Bahmni/speech-assistant-frontendspeech-assistant-frontendIt is an experimental Voice Assistant for Bahmni actions/data entry. This is in initial prototype mode, being developed by Prakalp team at Thoughtworks. It uses underlying opensource project Vakhyansh, which supports various Indic Languages. React, microfrontend
SenaiteLIMS integrationhttps://github.com/bgeVam/lis-integrationlis-integrationBahmni integrated with BikaLIMS/Senaite LIMS over HL-7 (as an alternative to using OpenELIS). Read discussion here: https://talk.openmrs.org/t/introducing-bahmni-hl7-lis-integration/34198. This is not currently adopted into core product by Bahmni team.Java, Mirth Connect
Krishna/Hindi Font Transformerhttps://github.com/Bahmni/bahmni-java-utils/tree/master/font-transformerbahmni-java-utilsFont transformer for converting Marathi/Hind Krishna phonetic font to Java Unicode font (for patient name data migration). Was used in SEARCH hospital migrations here.Java
Insurance Connect with openIMIShttps://github.com/Bahmni/bahmni-insurance-connect/tree/masterbahmni-insurance-connectIntegration with opensource openIMIS (for Nepal). Read more here: Bahmni and openIMIS Integration (done by PossibleHealth)Java


Coding IDEs for Bahmni Code


For Coding purposes, you can use Visual Studio Code (for UI/JS code) and IntelliJ Community Edition (for Java/Backend code)



Visual Studio Code (for UI/JS code)IntelliJ Community Edition (for Java/Backend Code)

https://code.visualstudio.com/download

Example screenshot of all bahmni-global code folders opened in Visual Studio Code

https://www.jetbrains.com/idea/download/ (Community Edition if free for use on Open Source Projects)

Example screenshot of bahmni-core folder opened as a Java Maven Project on IntelliJ:

The Bahmni documentation is licensed under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)