medium complexity extracted Relatives Database Confidence: 100%
3
Components
18
Shared
0
User Stories
Yes
Analyzed

Description

Relative Contact Registration allows peer mentors and coordinators to register family members and caregivers of primary contacts as independent contact subjects within the system. Designed for Barnekreftforeningen, where peer mentor support extends to entire families surrounding a child with cancer, each relative is stored as a first-class record with their own profile, contact details, and communication preferences. Records are kept in a dedicated relatives table separate from the main contacts table, preserving clean data boundaries while enabling holistic family-level case views. This separation ensures that relative records do not pollute the contacts namespace while remaining fully navigable from both sides of the relationship.

Sources & reasoning

Barnekreftforeningen explicitly requires registering relatives as independent contact subjects (line 121). Priority matrix confirms MUST with Phase 1 placement (line 161) and the note at line 438 reinforces the Fase 1 mandate. Blueprint marks this feature [MVP]. All downstream relatives-database features depend on this registration capability existing first.

  • Barnekreftforeningen jobber primært med familier rundt barn med kreft, ikke kun med de berørte selv. Appen mĂĄ støtte registrering av pĂĄrørende (foreldre, søsken, nærmeste omsorgsperson) som egne kontaktsubjekter
  • PĂĄrørende database | âś“ | - | - | - | âś“ | MUST (Barnekreft) | 1
  • PĂĄrørende-database er Fase 1 MUST for Barnekreftforeningen (se §4 matrisen).

Analysis

Business Value

Barnekreftforeningen's peer mentors support entire family units around children with cancer - parents, siblings, and primary caregivers all need attention and follow-up. Without structured relative registration, these relationships exist only in unstructured notes, creating gaps in care delivery and making it impossible for coordinators to verify which family members have received support. This feature is explicitly a Phase 1 MUST-HAVE for Barnekreftforeningen, meaning the platform cannot serve this organization without it. It is foundational infrastructure for the entire Relatives Database module: case linking and role tagging both depend on relative records existing as proper first-class entities rather than free-text annotations on a contact record.

Implementation Notes

Relatives are stored in a dedicated relatives table sharing the same address and communication field schema as contacts. Riverpod providers manage relative state with Drift for offline-first persistence, following the same architecture as the contacts module. The RelativeRegistrationScreen presents a multi-field form with name, contact details, and a provisional relationship note. All form controls must meet WCAG 2.2 AA: semantic labels, 4.5:1 contrast ratio, and minimum 24px touch targets. The REST API validates organization membership before persisting a relative, enforcing tenant isolation. Offline mutations queue via the mutation outbox and sync with retry/backoff on reconnect. ID mapping handles offline-created relative IDs when the server assigns canonical IDs after sync.

Quality Assurance

Peer Mentor · Coordinator (same flow)
1
Scenarios
5
UAT Steps
21
A11y Annotations
2
Role Boundaries
Peer Mentor

Peer Mentor

Quick UAT

  1. Logg inn i Meander-appen og åpne Kontakter via bunnavigasjonen. Finn og velg ønsket kontakt fra listen.
  2. Trykk på «Pårørende»-fanen på kontaktdetaljsiden, deretter «Legg til pårørende»-knappen.
  3. Fyll inn pårørendes navn, relasjonstype (f.eks. forelder, søsken, omsorgsperson) og kontaktopplysninger (telefon og/eller e-post).
  4. Velg kommunikasjonsinnstillinger for pårørende (foretrukket kanal) og bekreft at alle obligatoriske felt er fylt ut.
  5. Trykk «Lagre» og bekreft at den nye pårørende vises i pårørende-listen på kontaktsiden med korrekt navn og relasjonstype.

Quick UAT — Accessibility

  1. Logg inn i Meander-appen og åpne Kontakter via bunnavigasjonen. Finn og velg ønsket kontakt fra listen.
    • Screen reader Bunnavigasjon annonseres med rolle 'navigasjonslinje'; aktiv fane leses som 'Kontakter, valgt'. Kontaktnavn og rolle leses per listeelement.
    • Keyboard / focus Tab navigerer mellom bunnavigasjonsfaner; Enter ĂĄpner Kontakter. Piltaster navigerer kontaktlisten; Enter ĂĄpner valgt kontakt.
    • Focus visibility Synlig fokusring pĂĄ aktiv fane og valgt listeelement.
    • Touch target Fane-knapper og listeelementer ≥ 44Ă—44 CSS px.
  2. Trykk på «Pårørende»-fanen på kontaktdetaljsiden, deretter «Legg til pårørende»-knappen.
    • Screen reader Faneavsnitt annonseres med antall faner; aktiv fane leses som 'PĂĄrørende, valgt'. «Legg til pĂĄrørende»-knapp annonseres med rolle 'knapp'.
    • Keyboard / focus Tab-rekkefølge: faneliste → fane-innhold → «Legg til pĂĄrørende»-knapp. Enter aktiverer knappen og ĂĄpner skjema.
    • Focus visibility Fokus flyttes automatisk til skjemaets første felt etter aktivering.
    • Touch target «Legg til pĂĄrørende»-knapp ≥ 44Ă—44 CSS px.
  3. Fyll inn pårørendes navn, relasjonstype (f.eks. forelder, søsken, omsorgsperson) og kontaktopplysninger (telefon og/eller e-post).
    • Screen reader Hvert felt leses med label og gjeldende verdi. Nedtrekksliste for relasjonstype annonserer antall valg. Feilmeldinger leses umiddelbart via live region.
    • Keyboard / focus Tab navigerer mellom felt i logisk rekkefølge. Piltaster navigerer nedtrekksliste for relasjonstype. Escape lukker nedtrekksliste uten valg.
    • Focus visibility Synlig fokusring pĂĄ aktivt felt; obligatoriske felt merket 'obligatorisk' i label.
    • Zoom Alle felt og labels synlige og brukbare ved 200 % zoom uten horisontal rulling.
    • Contrast Feltlabels og plassholdertekst: minimum 4,5:1. Valideringsfeil vises ikke kun med rødfarge — ikon og tekstmelding supplerer.
  4. Velg kommunikasjonsinnstillinger for pårørende (foretrukket kanal) og bekreft at alle obligatoriske felt er fylt ut.
    • Screen reader Radioknapper eller avkrysningsbokser for kommunikasjonskanal annonseres med rolle, label og tilstand (valgt/ikke valgt).
    • Keyboard / focus Piltaster navigerer mellom radioknapper. Space velger avkrysningsboks. Tab hopper til neste feltgruppe.
    • Focus visibility Fokusring synlig pĂĄ aktiv radioknapp / avkrysningsboks.
    • Touch target Interaktive kontroller ≥ 24Ă—24 CSS px.
  5. Trykk «Lagre» og bekreft at den nye pårørende vises i pårørende-listen på kontaktsiden med korrekt navn og relasjonstype.
    • Screen reader 'PĂĄrørende lagret' annonseres via polite live region. Fokus returnerer til pĂĄrørende-listen; nytt element leses med navn og relasjonstype.
    • Keyboard / focus Tab navigerer til «Lagre»-knapp; Enter sender skjema. Fokus returnerer til pĂĄrørende-listen etter vellykket lagring.
    • Focus visibility Fokus plasseres pĂĄ det nylig opprettede pĂĄrørende-elementet i listen etter lagring.
    • Live region 'PĂĄrørende lagret. [Navn] er lagt til som [relasjonstype].'

Role Boundaries

2 role(s) must NOT access this feature
  • Organization Administrator

    Organisasjonsadministrator har kun tilgang til Admin Web Portal. Relatives Database-skjermen finnes ikke i admin-portalens navigasjon; forsøk på deep-link til mobilapp-rute returnerer 403.

  • Global Administrator

    Global Administrator omdirigeres til Admin Web Portal ved innlogging på mobilappen; pårørende-registreringsskjermen er ikke tilgjengelig og deep-link returnerer 403.

Expected End State

Den nye pårørende er lagret som en selvstendig post i relatives-tabellen, koblet til primærkontakten via relatives_case_links, og vises umiddelbart i pårørende-listen på kontaktdetaljsiden med korrekt navn, relasjonstype og kommunikasjonsinnstillinger.

User Stories

No user stories have been generated for this feature yet.