Immunizations & Vaccination Schedule in O3 (GSOC 2025)
Status: In Progress
Technical Complexity: Easy
Summary:
Immunization Schedules (timings) are a key feature to make sure people (especially children) get the right vaccinations, at the right times, and enough of them, so that they are safely covered from diseases.
This visual project will make it easier for clinicians to see how many doses a child/person has had, and what immunizations they are due for.
O3 currently has a way of entering Immunization
Priority User Stories / Goals
See status: where they are with what’s been given
Remind about what’s due, what’s missing
See what’s upcoming: Is there something due I can give them, even if they’re here for something else? Do I need to book an appointment or remind them to come in for an upcoming dose?
See standards/best practice recommendations: Via a link or picture of the latest guidance.
Context
Immunization “schedules” are like “Timings”: A place’s immunization schedule shows “when a certain immunization is meant to be given, and how many times, after how long of intervals.” They also help to:
Show a record of what & when things were given
Prompt a provider to remember that something else is due
Guide a provider in cases that are not clear (e.g. catch-up, medical risk factors, and more). → EMR Scope: Because this gets so complicated, EMR will not replace the detailed guidance/documentation for providers on schedules and caveats.
Differences: These Schedules are often different by country or region. Just look at the WHO’s records to see comparisons showing how many countries have different timings for different types of immunizations.
Key Concepts:
Children: Babies, toddlers, and school-aged children are high-priorities for vaccination because they are the most vulnerable to infectious diseases. If you like cartoons, these visuals are a fun way to learn how certain immunizations at particular ages protect kids from certain diseases.
Adults: Adults need regular vaccinations too. So there are usually different Vaccination Schedules for Adults as well.
People with Risk Factors or Medical Conditions: These people
“Catch-Up Immunization”: It is very common for a child (or adult!) to receive a vaccination late, for many legitimate reasons. When this happens, there is often guidance for clinicians about the time-range of the patient’s age or time-range after the last dose for when the next immunization should be given.
Series vs Series re-start: _____
Examples from around the world
Vertical charts like this one from India also show time/patient age along an axis, but include more detailed remarks. (Source).
Electronic Examples from other Systems
Important Requirements
To do: Review FHIR requirements & considerations / insights https://www.hl7.org/fhir/immunization.html
Concept-driven: For example, Partners In Health uses these CIEL concepts (obsgroup with obs for immunizations, immunization sequence number, and vaccination date): https://www.openconceptlab.org/orgs/CIEL/sources/CIEL/concepts/1421/
Configurability. These Schedules are often different by country, state/province, region, or even organization (I know, it’s surprising it’s not the same world-wide!). This means this feature would either need to be very configurable or avoid over-configuration as much as possible. We decided to focus on showing information rather than giving timing advice about what is due when - our goal is not to replace the complicated guidance books/posters that providers have at their desks (at least not yet).
🎨 Designs
What PIH Learned Already
Challenge: Immunization schedule for children goes beyond Booster 1, 2 → e.g. 5+ doses of deworming. May not be part of immunization schedule but ARE a part of their immunization history. And, handling how you capture Catch-up / Off-Schedule and Series re-start.
Configuration logic is a lot. e.g. Vitamin A: If they don’t get BCG at birth, but at 6 weeks, do you enter it in the “Birth” column? Too inflexible.
Easier to just allow people to enter in the individual immunizations, then display.
Allows for Past Data Entry:
So: Made changes to visual layout. Want to focus on showing info (display), rather than for data entry or CDS.
Doesn’t show “Next due”, Series, etc etc. Alert for “Third dose due on XX date”?
Why not editable in dashboard? Didn’t want someone entering from dashboard because want it to be recorded within a Visit’s Encounter. But, want something easy to enter.
Key for pregnancy
View only chart:
Next steps / V2 suggestions:
From PIH: Bulk Vaccination e.g. 100 Polio vaccine day.
From Palladium:
1. I've noted the alerts are tied to the next appointment (not sure though), can we have the validation done using the age of the patient and when the vaccine should be administered as per the schedule? For example if the polio vaccine is offered at birth, at 10 weeks and at 14 weeks.. could the alerts pop up based on the age and the doses received?
2. Could we have this integrated with the stock module so that the manufacturer, batch number and expiry date are populated from the stock available instead of a user having to manually input the information? This would also ensure that the vaccines are also managed from the stock module