Advises/examples of how Immunizations can be handled in Bahmni?

Hi !

As part of our current implementation for small primary care clinics in Cambodia, I am looking for a way to record immunizations in Bahmni. Past and future immunizations. Has anyone used Programs to do this? Or should I rather use Observations?

Is there any implementation out there that could share how they handle recording Immunizations in Bahmni? Haven’t really find a good way to do it yet.

Thanks a lot


I don’t know about Bahmni, but I would direct people to the EzVac module for OpenMRS which handles immunization history/administration/reporting/Decision support.

Thanks @akanter. Trying to look at it, I have trouble to find this online. Would you have a link to this module repo or documentation?

@mogoodrich, how do you record immunizations at PIH?

@mksrom did you manage to find the module @akanter is talking about? If not did adapt an approach that you could share here?

As @mksrom pointed out I am facing the same problem regarding EzVac module, that is, I haven’t been able to find it anywhere on the webspace. Also I am guessing that you might have forgotten or not seen the question. In either case could you shed some light as to where one could locate this module. A link or something like that could be very helpful.

Thank you Andy

@ben_rukundo Can you help here? I was surprised not to see anything on the wiki or Talk with details of the module or its design. I know we put together a package to send to Tanzania. Can you take on getting some documentation up on the wiki with a link to the module code? Thanks!

Hi @willa,

I ended up using a combination of 2 forms and a custom “Immunization” display control: customControl.js#L4-L130 dashboard.json#L21-L73

The behavior of this display control may not be obvious at the first look so let me explain it to you.

We have a Past Medical History form in which Past Immunizations are recorded. Those are recorded as a Concept Set:

For example:

PCV1 Immunization Set |-- PCV1, Given (yes/no) |-- PCV1, Date Given (date)

And we also have an “Immunizations” form to record new immunizations (immunizations just given during the visit). The user only have to select which immunization has been given. The date will be the Obs date.

The display control will aggregate these 2 types of Immunizations and display them.

I know this is not a perfect solution but that is sufficient for the scope of the project. I am still wondering how people achieve this in bigger setups. We should definitely add/design a complete feature in OpenMRS/Bahmni.

Thank you so much for this. It might not be a perfect solution but it is a good start. I have a few questions below (bear with me, they may be very dumb at worst)

  1. In the immunization history display, the PCV is ordered as 1, 2 and 3. I suppose these are numbered based on date. Is it possible that a patient will have PCV1 & PCV3 administered but not PCV2.
  2. From the code it appears that this is only a front to conveniently display the immunizations. Just to confirm, Is there any work required on the backend, or is it already done in bahmni?
  3. Since I haven’t really dealt with the bahmni distribution, do you think this can easily be adapted for OpenMRS ref app?

If I recall correctly, these are sorted based on the array order provided in the Bahmni Config:

Patient can have PCV 1 and 3 without 2.

No work is required on the back end. The back end is already providing the needed services with the REST API. And all the AngularJS services are already built. Though there is one file (still front end) that I have changed and forgot to mention to you and that is obviously the view itself: immunization.html

Sure, all the logic is written with AngularJS framework which is supported by the Ref App. So there shouldn’t be any blocker. Most of the code should be reusable in your Ref App dashboard extension. And UI Commons module is bringing all the needed JavaScript services I think. One thing will differ though is the way the config is brought and used in the directive (this section here, used here for instance) but I don’t think that will be a big problem.

1 Like

I would love to have a birds of a feather or unconference session around immunization documentation within OpenMRS/Bahmni at the Malawi implementers meeting. I don’t think it is possible to have a PCV1 and PCV3 without a PCV2. It is possible that the 2nd immunization was not done during a valid time, but the sequence of the immunizations is still the sequence. I’d like to have someone with expertise in immunization documentation along with users to discuss the role OpenMRS/CIEL/Bahmni should have in proper immunization service. The EzVac module produced for TZ appropriately interoperated with US immunization registries, so that is at least one data point. @ben.rukundo FYI.