Skip to content

Exposure form redesign #13887

@obinna-h-n

Description

@obinna-h-n

Summary

Replace the current flat Exposure Form on the Epidemiological Data tab with a new category-driven, cascading form that captures structured exposure data aligned with One Health principles.

Background

The current SORMAS Exposure Form captures basic information through a flat set of fields — Type of Activity, Role, and a series of yes/no flags (indoors, outdoors, wearing mask, wearing PPE, etc.).

While functional, this design has significant limitations:

  • It cannot distinguish between fundamentally different transmission pathways (air-borne vs. water-borne vs. vector-borne, etc.)
  • It treats all exposure contexts the same regardless of the disease or mode of transmission
  • It does not support the One Health perspective, which recognizes the interconnectedness of human, animal, and environmental health

Objective

Design and implement a new Exposure Form that replaces the current one with a structured, cascading hierarchy:

Exposure CategoryExposure SettingSub-Settings / Contact Factors / Protective Measures

Each level in the hierarchy drives the options available at the next level, ensuring that users only see fields relevant to their selected transmission pathway. The form captures four dimensions of every exposure:

  1. Exposure Category — How the disease spreads (Air-Borne, Water-Borne, Vector-Borne, Direct Contact, Animal Contact, Fomite Transmission, Food-Borne, Vertical Transmission)
  2. Exposure Setting — Where or in what context the exposure occurred (Indoor, Outdoor, Drinking Water, Recreational Water, Mosquito-Borne, Tick-Borne, etc.)
  3. Contact Factors — What specifically happened that created risk (duration of exposure, skin contact, contaminated water ingestion, insect bites, etc.)
  4. Protective Measures — What precautions were or were not in place (mask, PPE, vaccination, insect repellent, etc.)

Benefits

Deeper analytical insights: Structured data fields allow correlation analysis across cases — identifying exposure pathways, vulnerability patterns, and cascading effects rather than simply logging that an exposure occurred.

One Health capability: The form captures data across human health and environmental health domains within a single framework. This enables assessment of environmental contamination events for concurrent impacts on humans and wildlife, and lays the groundwork for tracking zoonotic disease spillover risks.

Disease-specific relevance: Available exposure categories are filtered by the case's disease, ensuring investigators only see transmission pathways relevant to the disease under investigation. This is configurable in the admin disease configuration.

Scope

  • All changes apply to the Epidemiological Data tab within a case
  • The Epidata form section title remains "Exposure Investigation" and the tab label remains "Epidemiological data"
  • Existing Epi Data sections (Activity as Case, Contacts with Source Case) are retained below the new form
  • A comment field is added at the bottom of the Epidata page page
  • Other sections are retained

Sub-tasks

  • Backend: Data model, enums, and entity updates — Add new enums, database tables, and modify existing entities to support the cascading exposure data model and additional fields
  • Frontend: New Exposure Form UI — Implement the cascading form in the Vaadin UI with conditional field visibility, checkbox groups, and info tooltips
  • Frontend: Update disease configuration form — implement disease specific exposure category configuration

Acceptance Criteria

  • Selecting an exposure category shows only the relevant settings for that category
  • Selecting a setting shows only the relevant sub-settings, contact factors, and protective measures for that category/setting combination
  • Changing the category resets all downstream selections
  • Multi-select checkboxes allow multiple selections with "Other" revealing a free-text field
  • Info tooltips display correct explanatory text on hover
  • Animal Contact category shows Alive/Dead, Domestic/Wild, and animal type fields instead of enum-based settings
  • Fomite Transmission category shows Inside/Outside selector instead of enum-based settings
  • Food-Borne sub-settings (Eating at Home, Eating Outside) allow both to be selected simultaneously
  • Location section is collapsible and uses the same structure as Events location
  • Exposure category dropdown is filtered by disease configuration
  • Exposures summary table correctly displays saved entries
  • All form data is persisted and correctly restored when reopening a case

Mockup

new exposures fields

Image

exposure category disease config

Image

Metadata

Metadata

Assignees

Labels

changeA change of an existing feature (ticket type)

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions