How can I give an order to a specific laboratory and Pharmacy?

I am new to using Bahmni. Can anyone please help me by giving this information

  1. How do you plan to bring in / plug in another lab or pharmacy?
  2. Orders are created in EMR. in Bahmni, EMR does not push information to a lab or pharmacy, rather it creates an event in a feed. Anyone subscribed to the feed is free to process the event if authenticated and authorized to access info.
  3. With little bit of effort, you can write a “mediator” which can route to another system. But you need to write code, does not come out of box

Thanks for your reply.

  1. I want to choose a Laboratory for lab order from the dropdown and choose a pharmacy for Drug order in EMR.

  2. If I want to add a new lab to subscribed to EMR feed how can I do that.

If My thinking is not correct, please give me some suggestions, How can I implement this in Bahmni.


Well, you will need to enhance the frontend and backend in EMR first.

Enhance UI - to select/specify pharmacy/lab. Then you would need to record the location against the order in the backend db. I am not sure if it easily doable. I am not sure if OMRS ORDERs model support location? or if others have done differently.

Once you have that you could potentially think of allowing access by locations. You probably have to then generate events and feeds specific to labs/pharmacies based on the location … should be relatively easy.

@janflowers @ibacher have you seen this sort of implementation between OMRS and ELIS?

cc: @dkayiwa @burke @mksd @ibacher

1 Like

In the OpenELIS / iSantePlus work, rather than enhancing the order model, we had a FHIR Task resource that linked the ServiceRequest to the lab in question (via the Task.owner field). That made it fairly easy for the lab system to query the EMR for any pending orders it should handle and the EMR to query the lab system for any results related to those orders…


Thanks, Everyone for helping. But I would like to use Bahmni, I think Bahmni use Atom feed to sync data with openelis. Can I use atom feed and FHIR Task together?

Maybe I am sound like silly, I am new to all of this technology.


@angshuonline Can you Please suggest me any Tutorial, How can I customize Bahmni Atom feeds

  1. You can use the same approach that @ibacher suggested, although Bahmni does not have a related “task” resource yet. but could potentially be leveraged if its an independent module.
  2. Generating the feed should be a specific lab should be easy enough

you can start from this repo.

1 Like

Thanks @mhmasuk, that’s an interesting question!

@ibacher how is the Task.owner field filled from the service request in the first place?

@ruhanga do we leverage this mechanism as well?

1 Like

Yes we do with the SENAITE LIMS and OpenMRS/Bahmni integration.

@mhmasuk, you may want to also look into the openmrs-eip watcher middleware component that listens to the underlying openmrs database events, on orders, drug_order and/or test_order tables in particular. Then you’d create necessary routes that push the orders to the external lab/pharmacy systems and perhaps routes that poll for updates like results on those orders. See here for an example from_openmrs/bahmni to senaite scenario.


That part was all custom logic driven by the iSantePlus-specific module (IIRC it was actually using either a global property or look-up table).