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.
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.
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.
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:
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.
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.
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.
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…
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!