SORMAS-Project
SORMAS-Project copied to clipboard
Update vaccination module for PCV/PPV history
Feature Description
This task updates the vaccination module to track Pneumococcal Conjugate Vaccine (PCV) and Pneumococcal Polysaccharide Vaccine (PPV) history for IPI cases.
Added Value/Benefit
- Enables tracking of vaccine-induced immunity for breakthrough infection analysis
Acceptance Criteria
Entities, DTOs, and Enums
- [ ] Use the existing
Vaccinationentity and DTOs, leveraging these fields:-
vaccineName(Vaccineenum): Use for commercial/generic vaccine product (e.g., PREVENAR_13, VAXNEUVANCE, PREVNAR_20, PNEUMOVAX_23) -
vaccineType(String): Store PCV/PPV type (e.g., "PCV13", "PCV15", "PCV20", "PPV23", "PCV7", "PCV10") -
vaccinationDate(Date): Date of administration -
vaccineDose(String): Store number of doses received (as string for compatibility) -
vaccineManufacturer(VaccineManufacturerenum) andotherVaccineManufacturer(String): Manufacturer -
otherVaccineName(String): For non-listed vaccines or free text
-
- [ ] Use the existing
VaccinationStatusenum:-
VACCINATED -
UNVACCINATED -
UNKNOWN
-
Case Form Updates
- [ ] Add or update the "Vaccination" tab in the case form to use the following fields and widgets, matching the SORMAS UI conventions:
- Dropdown for
vaccineName(populated from theVaccineenum; e.g., PREVENAR_13, VAXNEUVANCE, PREVNAR_20, PNEUMOVAX_23, OTHER) - Text field for
vaccineType(for PCV/PPV type, e.g., "PCV13", "PCV15", "PCV20", "PPV23", "PCV7", "PCV10") - Date picker for
vaccinationDate - Numeric/text field for
vaccineDose(number of doses received) - Dropdown for
vaccineManufacturer(fromVaccineManufacturerenum) and text field forotherVaccineManufacturer(shown if manufacturer is OTHER) - Text field for
otherVaccineName(shown if vaccineName is OTHER)
- Dropdown for
- [ ] ~~Validation rules:~~
- ~~If
vaccineTypeis PCV, require at least 3 doses for pediatric cases (<5 years)~~ - ~~If
vaccineTypeis PPV, allow only 1 dose unless medically indicated~~ As per latest discussion with Chris this validation rules are not required.
- ~~If
- [ ] Display and store all data using the existing DTO/entity fields; do not introduce new fields or enums
Implementation Details
-
Backend:
- Use the existing
Vaccinationentity and DTOs; do not introduce new enums or fields unless necessary. - Populate
vaccineTypeas a string for PCV/PPV type, and usevaccineNamefor the product. - Use
vaccineDoseas string for dose count (to match DTO/entity). - Use
vaccineManufacturerandotherVaccineManufacturerfor manufacturer info. - Use
otherVaccineNamefor free-text/foreign vaccines.
- Use the existing
Mockups
No Response
Additional Information
- Dependencies: Requires #13339 (IPI Disease Enum)
- Linked Issue and subtask: #13377
- Testing: Verify vaccination data is saved correctly and displayed.
@xavcol
@SORMAS-EmelineJanigan
The VaccinationStatus is not present (with VACCINATED, UNVACCINATED, UNKNOWN)
I don't know if it is on purpose ?
#13377 - vaccination status not present as changes need to be made to vaccination form