Ethiopia Travel Health Declaration Form new web portal
# Traveler Health Declaration Web (DHIS2‑Powered)
This repository contains a single‑page web portal for collecting **Traveler Health Declarations** and syncing them with **DHIS2 Tracker**. The portal is a thin client: it reads/writes travelers (TEIs), enrollments, and events directly to DHIS2 via the Tracker API v40. All analytics and risk classification logic live in DHIS2.
Here’s a clean, fixed snippet you can paste in:
* **New submission:** create or update a traveler, then post Travel + Clinical events.
* **Edit a current declaration:** find and update an in-progress declaration.
* **Get my QR code:** render a QR with traveler identifiers and risk classification (optionally signed & compressed).
* **Powered by DHIS2:** the UI and logic are driven by DHIS2 metadata, and all data is stored in DHIS2 (which also powers analytics).
* “Countries visited in the last 21 days” comes from a DHIS2 **Option Group**.
* The **Clinical** step maps to the **Pre-Clinical Data** program stage.
* **Risk classification** is assigned by three DHIS2 **Program Rules** (GREEN / YELLOW / RED).
* **Duplicate protection:** blocks new submissions when a current/future arrival already exists, and offers to continue in **Edit**.
---
## Table of Contents
- What this web is
- User options
- New submission
- Edit a current declaration
- Get my QR code
- End‑to‑end flow
- Validation & UX
- Identity search & de‑duplication
- Duplicate submission blocker
- Edit retrieval blocker
- Powered by DHIS2
- Configurable metadata
- DHIS2 as backend + analytics
- Data mapping (TEAs & DEs)
- API patterns
- QR code (current & signed plan)
- Admin cookbook
- Appendix: IDs to configure
---
## What this web is
A guided, mobile‑friendly portal where travelers provide **Personal**, **Travel**, and **Clinical** information. The app writes everything to **DHIS2 Tracker**:
- **TEI (Tracked Entity Instance)** → the traveler (names, passport, phone, sex, DOB, nationality, guardians).
- **Program** → the Tra …