Bahmni Architecture

Bahmni is made up of four services which are integrated with each other. All integration happens using the atom (this RSS) feeds exposed by the individual services and consumed by the background threads in consuming processes. The first two slides below are for application and reporting architecture (This excludes all of OpenERP and canned OpenELIS reports)


Integration between application services

Each service publishes the key state changes via a RSS kind of feed (ATOM). The services also run background jobs which consume the feed published by other services. (e.g. When a patient is registered in OpenMRS then it captures the event for it. Both OpenERP and OpenELIS consume these events via the OpenMRS's change feed)

Integrations

SourceDestinationSource ResourceDestination Resource
OpenMRSOpenELISPatientPatient
OpenMRSOpenERPPatientCustomer
OpenMRSOpenELISLab OrderDraft Accession
OpenMRSOpenERPOrdersQuotation
OpenELISOpenMRSAccession, Sample & ResultsEncounter (lab results)
OpenMRSOpenELISConceptSample types, Lab Test, Panel
OpenMRSOpenERPConceptDrug

 

For Bahmni PACS design, please refer to this document: Bahmni PACS Roadmap