SORMAS-Project icon indicating copy to clipboard operation
SORMAS-Project copied to clipboard

Update vaccination module for PCV/PPV history

Open raulbob opened this issue 10 months ago • 3 comments

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 Vaccination entity and DTOs, leveraging these fields:
    • vaccineName (Vaccine enum): 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 (VaccineManufacturer enum) and otherVaccineManufacturer (String): Manufacturer
    • otherVaccineName (String): For non-listed vaccines or free text
  • [ ] Use the existing VaccinationStatus enum:
    • 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 the Vaccine enum; 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 (from VaccineManufacturer enum) and text field for otherVaccineManufacturer (shown if manufacturer is OTHER)
    • Text field for otherVaccineName (shown if vaccineName is OTHER)
  • [ ] ~~Validation rules:~~
    • ~~If vaccineType is PCV, require at least 3 doses for pediatric cases (<5 years)~~
    • ~~If vaccineType is PPV, allow only 1 dose unless medically indicated~~ As per latest discussion with Chris this validation rules are not required.
  • [ ] Display and store all data using the existing DTO/entity fields; do not introduce new fields or enums

Implementation Details

  1. Backend:
    • Use the existing Vaccination entity and DTOs; do not introduce new enums or fields unless necessary.
    • Populate vaccineType as a string for PCV/PPV type, and use vaccineName for the product.
    • Use vaccineDose as string for dose count (to match DTO/entity).
    • Use vaccineManufacturer and otherVaccineManufacturer for manufacturer info.
    • Use otherVaccineName for free-text/foreign vaccines.

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.

raulbob avatar Apr 28 '25 05:04 raulbob

@xavcol

SORMAS-EmelineJanigan avatar Jun 27 '25 08:06 SORMAS-EmelineJanigan

@SORMAS-EmelineJanigan The VaccinationStatus is not present (with VACCINATED, UNVACCINATED, UNKNOWN) I don't know if it is on purpose ?

XavCol avatar Jun 30 '25 14:06 XavCol

#13377 - vaccination status not present as changes need to be made to vaccination form

SORMAS-EmelineJanigan avatar Jun 30 '25 18:06 SORMAS-EmelineJanigan