Immunization & Vaccination Schedule App Resource Gathering

Hello everyone,

I am currently working on the Immunization & Vaccination Schedule App for O3 as part of GSoC 2025. As we move forward with the project, I am in the process of gathering resources, understanding existing implementations, and aligning with OpenMRS standards to ensure seamless integration.

I would appreciate any guidance, suggestions, or relevant documentation that could help in shaping the app effectively. If there are any existing modules, workflows, or best practices that I should consider, please feel free to share them.

Looking forward to collaborating and learning from the community. And any insights from @grace @dkigen @beryl @jayasanka @fanderson

Thanks!:blush:

Current ui

One thing to keep in mind is that immunization schedules are often presented something like this:

And might be recorded in a form like this:

We probably want to present something like the second table there, since it can help providers see at a glance what vaccinations haven’t been administered.

1 Like

Thank you so much, @ibacher sir, for sharing this resource! This will be really helpful in aligning the project accordingly. I’ll go through it and reach out if I have any questions.:blush:

Also see this thread.

1 Like

Sure sir I will

@ibacher Hi sir, even I’m interested to work on this project as I’m new to open source could you tell me steps to work on this project !

@lingaraj this is wiki page for this project https://openmrs.atlassian.net/wiki/spaces/projects/pages/355008710/Immunizations+Vaccination+Schedule+in+O3+GSOC+2025 and Contributing – O3 Docs and this super useful guide . go through it

1 Like

okay dude!

1 Like

Hi everyone,

Thanks for the earlier input on immunization and vaccination schedule app! I’ve been digging deeper into the concept dictionary used by OpenMRS, which leverages Open Concept Lab (OCL) and the CIEL dictionary. The current dictionary includes 20 immunization concepts, plus “none” and “other,” but I’ve noticed some gaps and have questions I’d love your advice on.

Here’s the CIEL-based dictionary OpenMRS is currently using:

  • Bacillus Calmette–GuĂ©rin vaccine (CIEL 886)
  • Polio vaccination, oral (CIEL 781)
  • Diphtheria tetanus and pertussis vaccination (CIEL 1107)
  • None (CIEL 782 – note: listed as 1107 earlier, possibly a typo?)
  • Hepatitis B vaccination (CIEL 782 – possible duplicate with “None”?)
  • Hemophilus influenza B vaccine (CIEL 36)
  • Measles vaccination (CIEL 1422)
  • Polio vaccination, inactivated (CIEL 1423)
  • Pentavalent pneumovax (CIEL 5864)
  • Yellow fever vaccination (CIEL 54)
  • Tetanus booster (CIEL 159701)
  • Measles Virus Vaccine Live, Enders’ attenuated Edmonston strain / Mumps Virus Vaccine Live, Jeryl Lynn Strain / Rubella Virus Vaccine Live (CIEL 86339)
  • Vitamin A (CIEL 17 – note: not a vaccine, should it be separate?)
  • Diphtheria tetanus booster (CIEL 83531)
  • Rotavirus vaccine, live (CIEL 5622)
  • Other (CIEL 162586)
  • Measles-rubella vaccine (CIEL 162339)
  • Diphtheria/Tetanus/Hib/Hep B/Whole-cell Pertussis (CIEL 84879)
  • Tetanus toxoid (CIEL 82215)
  • Pneumococcal vaccine (CIEL 82215 – possible duplicate with Tetanus toxoid?)
  • RTS,S/AS01 vaccine (CIEL 166703)
  • Why “None” and “Other”?: I understand that “none” (CIEL 782) and “other” (CIEL 162586) are part of the list, but why are they included as immunization concepts? Are they meant for cases where no vaccine is given or for unlisted vaccines?
  • Missing New Concepts: The dictionary is missing newer vaccines like COVID-19, Influenza, HPV, Chickenpox (Varicella), Hepatitis A, Tdap, Meningococcal, Mpox, and Dengue, which are critical for a comprehensive app covering ages 0–18 years.

@ibacher @grace @dkigen

  • Don’t know how to fix it . Can any one guide

I’m not sure about “None”, but “Other” is there to allow an option where a user can provide a free-text description of the immunization given.

I think the list is based on what people have requested. It’s not intended to be comprehensive per se. Development-wise, implementations should be able to specify which concept or concept set has the list of immunizations they wish to use.

Changes to CIEL content itself are @akanter’s role.

1 Like

The concept set hasn’t been updated for some time. I think folks were using COVID separately but happy to add more to this list for your project. None is 1107 and DPT is 781.

1 Like

I would point out that the classification of “1st” dose given and “2nd” dose given is problematic… that this form might not know all the vaccines given and so they are off, or if one of the vaccines is given at the wrong time (not in the correct window) it is invalid and should not be counted as part of the series. That is why we did not model it that way in CIEL. There is the vaccine, the date and a sequence number, which might be corrected based on an algorithm like the EzVac module did. We deprecated concepts for DPT1, DPT2, DPT3…

2 Likes

Thank you so much to everyone who joined the BA Discussion for the Immunization Schedule feature!

:video_camera: Recording:

:artist_palette: Design Mockups we looked at and talked through: Immunization Widget v2 - design whiteboard - Google Slides

:books: Detailed Wiki Page for this project (which considers the design shared by Ian above as well as many others, and the findings from PIH’s own experiments and challenges with the original layout in O2): https://openmrs.atlassian.net/wiki/x/xgApFQ?atlOrigin=eyJpIjoiMjk5OTU5NGUxMmQ5NDdmZjhiNzlhMjU3N2FmZGFlMTgiLCJwIjoiYyJ9

tl;dr: The goal of this project is to add a view-only, card-based view of Immunization History.

Screenshot of rough mockup here:

3 Likes

Thank you @grace, @dkigen, @fanderson ,@beryl, and everyone for an amazing session! I truly loved it. :blush:

1 Like

Sorry to have missed it! Some additional points we might want to consider: 1) The schedule is really different from the actual immunizations provided. For example, immunizations might be provided as part of a campaign off schedule. There are only certain windows of when vaccines are acceptable, and so if there is a vaccination off schedule, outside the window, then it can be recorded but doesn’t count as a valid vaccination for the schedule. How to show this?

Vaccine components may be present in different combinations… so although it is possible to view vaccinations based on their formulation (DTaP, etc.) it might also be useful to see vaccinations based on component… for example, when was the tetanus (regardless of what formulation). Definitely interested in following this discussion!

1 Like