Immunization Evaluation and Forecasting

I have reached out several times over the years with respect to our Open Source work, especially ICE, our immunization forecaster built on Ken Kawamoto’s OpenCDS. I have never been able to determine what capabilities OpenMRS has in this area, but we’d love to work with you guys. ICE currently supports ACIP rules from the US but could easily be modified to support the WHO rules or any other country’s rules.

You can find detailed information about ICE at:

I have never been able to discern whether OpenMRS even has a vaccine scheduler built into it, but I’d love the opportunity to discuss it with someone from the project.

Do you have some bit of details in regards to what the vaccine scheduler would do?

Well, I provided a half dozen links that explain all this fully.

In a nutshell, this is an open source immunization evaluation and forecasting service built on top of OpenCDS and released under an LGPL v3 license. We freely distribute the software and a default set of rules that support (as of now) the 15 core vaccines and their schedules as defined in the US by ACIP, a Federal advisory committee that works closely with CDC. It is loosely coupled: a system that wants an evaluation and forecast sends a web services call in HL7 vMR format with some key data (patient date of birth, gender, immunization history expressed as vaccine codes and dates of administration, and if relevant a disease indicator for something like chicken pox) and the service returns for each dose in the history whether the dose is valid according to the rules, and for each vaccine series (DTP, MMR, etc.) whether the series is complete or not. If not, the service indicates when the next dose is due.

My company supports the product and default rules which are developed with a panel of experts. For the past 4 months we have had some external support to keep the project going which has been very helpful. The rules could likely be modified pretty easily for a country-specific schedule or a WHO schedule.

It seems to me that if OpenMRS does NOT have an evaluation and forecasting system that our Open Source solution would be a good fit and consistent with the overall OpenMRS model and philosophy. Integration is not difficult.

I could go on. I have spoken to my colleagues at Regenstrief about this before but never was able to generate any interest (Shaun Grannis, Paul Biondich). Would love to see this move forward. Feel free to contact me offline ( if you’d like to discuss.

I do not think we have anything like that. Are you planning to invest resources in the integration?

Given that we already offer A LOT to the Open source community - the web service itself, the default rules, and a commitment to maintain the clinical knowledge and update the rules continuously (at least in the US) - we don’t usually get involved in the integration on the EHR side. In addition, we know nothing about OpenMRS, its architecture, and its development techniques.

Immunization tracking is a core need of preventative medicine and a core public health function. It is a core functional requirement of any EHR and should be in OpenMRS if it’s not already. We are willing to have a conversation about this with whoever is interested.

Could you be knowing any country, in the developing world, that is using this immunisation tracking system?

To our knowledge, no. But this is Open Source with no restriction (or tracking) on who downloads it. So we really have no idea who might be using it. I know that we have had downloads from India, and we are currently talking to an India-based company that is about to begin an evaluation.

Partners In Health does not use anything like this. We do capture vaccination information, so if that’s useful to others, please read on…

This is the location of (some of) the code (in the pihcore module) which was written by the awesome @darius :

This is how it appears for edit/view:

1 Like

This looks like dose counting to me. The important thing is to evaluate doses given for validity according to clinical guidelines (not just count how many doses were given) and then to forecast what is due now or in the future to prevent missed opportunities as well as over-immunization which can happen.

Our practice to integrations with external systems, has been mostly a result of implementations (end users or hospitals) using these systems, or at least expressing interest to start using them, and then come to our community with the need or requirement to integrate. So identifying such an implementation site would be a good starting point. That way, we are assured of a real implementation site that will test out the integration and avoid cases where we have invested development resources in work that no body uses (No known users).

A prudent strategy.

But potential users also need to know that such functionality is possible, and without all that much effort. Frankly, I am surprised that this has not come up as a core need before as this capability is pretty standard in the US.

I have no access to potential users. How does one expose them to this potential?

I think that could be a result of the fact that OpenMRS is mostly used in developing countries:

Posting to the implementing category could be a good starting point:

Attending any of our annual implementer conferences and you showcase or run a demo of the system could be another good one:'+Conference

Scheduling an online demo and invite all that may want to see a walk through, is another alternative.

Thanks for your insight. I will definitely repeat this post in the Implementing section - I had no idea to which group to post.

As for a conference, I think that would be a bit much for us just now being here in the US - the next one is coming up soon in December.

How does one schedule a webinar in this community?

Other OpenMRS-related tools that I know of for managing immunizations and vaccines are:

  • OpenSRP, which is built on top of OpenMRS and has been used quite extensively for immunization and vaccine scheduling.
  • OpenIZ, which isn’t built on OpenMRS but includes the OpenMRS concept dictionary in its data model and is designed to interface with EMRs like OpenMRS.

As @dkayiwa said, immunization isn’t always a core activity of clinics using OpenMRS in resource constrained settings, but where there is a need for this, it sounds like having an ICE interface in place would be another good option to have available.

Thanks so much, Dan. This is great information. We have chosen to focus JUST on the evaluation and forecasting component, no user interface or other capabilities. The idea is that our decision support engine would be incorporated into other products like OpenSRP and OpenIZ. I can’t actually find any real information on either of those two websites about the evaluation and forecasting capabilities of those products.

I also find it instructive that I could not easily identify (a polite way of saying identify at all) these potential solutions anywhere on the OpenMRS website. That may be something for the project to consider.

Before you invest time in a webinar, you may want to first ask to see if there are people who would be interested in attending.

Well, a webinar is easy. It’s attending a conference in Africa that’s not. It’s also sort of a chicken an egg: folks might attend a webinar (which is relatively easy) just to find out if they are interested in the issue, right? So is there a “way” that webinars get scheduled in this community or do I just do it myself, advertise it here, and hope for the best?

In the past, we’ve had OpenMRS University (, which started as weekly tutorials, transitioned to a “classroom” space, and eventually to a time slot available for high bandwidth knowledge sharing. While it hasn’t been used much this year, it is the closest thing we have as a convention for hosting a webinar.

We also have a community calendar at

I’d recommend:

  • Posting a Doodle poll on Talk, not expecting many participants, but giving those interested a chance to weigh in on the timing. You can use the OpenMRS University time slot, but it’s not a requirement.
  • Once timing is decided, get the event on the OpenMRS calendar.
  • Advertise on Talk (we can help you tweet as well)
  • Ideally, post recording of webinar on YouTube and post it to Talk for folks who missed it.

We currently use UberConference for most community forums. While it supports screen sharing (with a one-time Chrome plugin for the person sharing) and auto-records audio, it does not provide a way to record the screen sharing. You either need to use your own screen recording tool and manually upload to YouTube. So, you might want to consider a Hangout On Air or some other tool that is kind to low bandwidth participants … if you do use something other than our UberConference channel, make sure to make it clear when advertising and consider checking in UberConference at the beginning of the webinar in case people have shown up there by habit.

Hope this helps.

Yes, very helpful. Thanks.