01 — Roles
Roles at a glance
| Role | Who | What they can do |
|---|---|---|
| SuperAdmin | Project lead | Everything. One per deployment. |
| GeneralAdmin | Senior staff | All admin pages, all sites. |
| LocationAdmin | Site lead | Their assigned site(s) only — manage staff, doses, camp days. |
| GeneralUser | Field staff (HPV) | Read-only at their site; the wizard for their assigned camp days. |
SuperAdmin
Project lead
Everything. One per deployment.
GeneralAdmin
Senior staff
All admin pages, all sites.
LocationAdmin
Site lead
Their assigned site(s) only — manage staff, doses, camp days.
GeneralUser
Field staff (HPV)
Read-only at their site; the wizard for their assigned camp days.
A user's site assignment lives in Office Staff → Edit → Assigned Camp Sites. Multiple sites are allowed.
02 — Setup
Setting up a new site
The order is Camp Site → Dose Preparation → Camp Day. Each step is linked to the next.
Create the Camp Site
- Log in as SuperAdmin or GeneralAdmin.
- Go to Admin → Camp Sites → + New.
- Fill in: Code (e.g. RC-001), Name, District / Local Level.
- Save. The site appears in the list immediately.
Assign Office Staff
- From the Camp Sites list, click into the site.
- Click Assign Office Staff.
- Tick the staff who should run camps at this site. LAs need their permissions ticked here even if their role is set elsewhere.
- Save. Staff can now log in and see this site.
Prepare a Dose
- Go to Admin → Dose Preparations → + New.
- Set the Camp Site (the dose is scoped to one site).
- Add ingredients (e.g. Swarna Bhasma, Vacha, Brahmi); each gets a quantity and unit.
- Add personnel — the staff who prepared the batch.
- Save in Draft until you've physically prepared the batch.
- Once ready, Lock the dose. A locked dose is immutable and can be assigned to a camp day. Locking is the audit-trail commitment.
Schedule a Camp Day
- Go to Admin → Camp Days → + New.
- Pick the Camp Site, Start/End date+time.
- Attach one or more locked Dose Preparations from step 3. The list filters to doses at the same site.
- Pick the staff who will run the day — only those assigned to the site appear.
- Save. The camp day shows on the dashboard for assigned staff.
03 — Wizard
Running a Prashan day
This is the wizard at Dashboard → today's camp day → Open.
Self-registration (optional, parent-driven)
Parents can pre-register via /register on their phone before arriving. They get a QR code with a UPC they can show at the site. Staff verify the registration on first interaction.
At the camp
- Scan the QR (or search by UPC / name) to pull up the participant.
- Verify the registration if it's still Self Registered — confirm name, gender, DOB, parents.
- Screen the child:
- Vitals: Height, Weight, MUAC, Head Circumference (BMI auto-calculates).
- Temp (optional).
- Underweight flag appears in red if the BMI is below the age-bucketed threshold — consider referral but not a hard block.
- Accompanying guardian — pick from the dropdown, or choose Other and enter name + relation for a one-off.
- Medical history — tick anything new; auto-fills from prior sessions if any.
- Exclusion criteria — tick if any apply; if any are ticked, the wizard switches to FilteredOut mode and requires a remark.
- Submit. The session locks; vitals cannot be edited after.
- Excluded: status becomes FilteredOut; no dose is recorded.
- Otherwise: status becomes Completed; dose count increments.
Adverse effects
If a follow-up call reveals an adverse effect, the staff opens the session via the profile and records the effect text. The session row stays locked but the AE text is appended (and audit-logged).
Hard rule
60-dose lifetime cap
Children accumulate doses across visits. Once the lifetime total (prior + system-recorded) hits 60, the wizard blocks Submit with a clear message. This is enforced server-side too — the cap can't be bypassed by retrying.
04 — Follow-up
Monthly follow-up
For months where a child didn't attend but you have a note (illness, travel, dropout), open the profile and click Add Follow-up:
- Pick the target month (defaults to the current month).
- Type the remark.
- Submit. The remark appears in the timeline immediately.
The only path that records longitudinal data without a dosing session.
05 — Reports
Reports
Admin → Reports exports the official government forms.
Form
Anusuchi-2
Register of children with their session history. XLSX (bilingual BS/AD header) or PDF. Mode A picks children from a list; Mode B filters by site + date range.
Form
Anusuchi-3
Aggregate counts (Female/Male × New/Repeat) for a campsite + date window.
Ad-hoc
Generic exports
/api/admin/exports/{children,sessions,audit} returns CSV or XLSX. LocationAdmin only sees rows from their assigned sites.
06 — Help
When something goes wrong
A request fails
Every response carries X-Trace-Id in the headers. Share that id with the project lead; the server log has full exception context against it.
A user gets the wrong row
Check their assigned camp sites in Office Staff → Edit. The wizard, the participants list and the dashboard all filter by that assignment.
A locked dose looks wrong
Locked doses are immutable on purpose. If the recipe was wrong, create a new dose, attach it to a new camp day, and delete the old camp day.
07 — Reference
Glossary
- UPC
- Unique participant code, printed on the child's QR sticker.
- Anusuchi
- Nepal-government register form (अनुसूची).
- Prashan day
- Dose-administration day at a campsite.
- HPV
- "Health Promotion Volunteer" — legacy name for what the UI now calls Office Staff. The backend tables and a few API endpoints still use the HPV identifier.
- BS / AD
- Bikram Sambat (Nepali calendar) / Anno Domini (Gregorian). The system stores AD; the UI shows BS where the form requires it.