Relative Role Tagging
Feature Detail
Description
Relative Role Tagging assigns a semantic role to each relative within a case link, identifying their relationship to the primary contact subject. Roles such as parent, sibling, primary caregiver, and next of kin are stored on the case link record, giving peer mentors immediate context about each family member's position without requiring them to read unstructured notes. Role display strings are configurable through the Organization Labels system, allowing organizations to adapt terminology without code changes. This ensures Barnekreftforeningen can use family-specific vocabulary while other organizations adopting the module apply their own preferred role terms.
Sources & reasoning
Line 121 enumerates distinct relative types - foreldre (parents), sĂžsken (siblings), nĂŠrmeste omsorgsperson (primary caregiver) - implying role differentiation is a first-class requirement, not just a free-text note. Phase 1/MVP is confirmed by the priority matrix (line 161). Role tagging gives structured, queryable meaning to the type enumeration and is marked [MVP] in the blueprint alongside the other relatives-database features.
-
docs/source/likeperson.md · line 121Appen mÄ stÞtte registrering av pÄrÞrende (foreldre, sÞsken, nÊrmeste omsorgsperson) som egne kontaktsubjekter knyttet til samme sak.
-
docs/source/likeperson.md · line 161PĂ„rĂžrende database | â | - | - | - | â | MUST (Barnekreft) | 1
Analysis
Knowing that a contact is a parent rather than a sibling fundamentally changes how a peer mentor structures their approach and prioritizes follow-up. Without role tagging, all relatives are undifferentiated rows that require reading unstructured notes to understand family structure - error-prone and impossible to filter or aggregate in reports. For Barnekreftforeningen, distinguishing the primary caregiver from peripheral relatives is critical to directing limited peer mentor capacity toward the people most in need of support. Role tagging also enables coordinators to generate role-segmented views and statistics, improving visibility into the support landscape across multiple active family cases simultaneously.
Role tags are stored as an enum-backed string column on the relative_case_links table with a predefined value set (parent, sibling, caregiver, next_of_kin, other) enforced by a backend CHECK constraint. The RelativeRoleTagWidget renders as a segmented button selector or bottom sheet picker, meeting WCAG 2.2 AA touch target and contrast requirements. RelativeRoleService handles assignment validation and lookup. The Organization Labels system can override display strings for each role key without changing the underlying enum value, preserving data integrity across terminology changes. Drift caches available role options and current assignments for offline use. The backend returns 422 Unprocessable Entity for invalid role values, and the Flutter client prevents invalid selections through controlled input with server-side validation as a second layer.
Quality Assurance
Peer Mentor (primary) · Coordinator (same flow)Peer Mentor
Quick UAT
- Logg inn i Meander-appen som Likeperson. Trykk pÄ 'Kontakter' i bunnnavigasjonen.
- à pne en eksisterende kontakt som har minst én pÄrÞrende registrert.
- Bla ned til 'PÄrÞrende'-seksjonen og trykk pÄ en pÄrÞrende i listen for Ä Äpne kasuslinken.
- Finn 'PÄrÞrende-rolle'-feltet pÄ kasuslinkeposten og trykk pÄ nedtrekkslisten.
- Velg en rolle fra listen (f.eks. 'Forelder' eller 'PrimĂŠr omsorgsperson') og bekreft valget.
- Bekreft at den valgte rollen vises umiddelbart pÄ pÄrÞrendeposten uten Ä navigere bort fra kontaktvisningen.
Quick UAT â Accessibility
-
Logg inn i Meander-appen som Likeperson. Trykk pÄ 'Kontakter' i bunnnavigasjonen.
- Screen reader Bunnnavigasjon annonseres med rollenavn; 'Kontakter' kunngjĂžres som valgt fane.
- Keyboard / focus Tab-rekkefĂžlge: topptekst â bunnnavigasjon; Enter aktiverer fanen.
- Focus visibility Synlig fokusring pÄ aktiv fane i bunnnavigasjonen.
-
à pne en eksisterende kontakt som har minst én pÄrÞrende registrert.
- Screen reader Kontaktnavnet og statusetiketten leses opp ved fokus pÄ listeelementet.
- Keyboard / focus Piltaster navigerer kontaktlisten; Enter Äpner kontaktdetaljsiden.
- Touch target Hvert kontaktkort er minimum 48Ă48 CSS px.
-
Bla ned til 'PÄrÞrende'-seksjonen og trykk pÄ en pÄrÞrende i listen for Ä Äpne kasuslinken.
- Screen reader Seksjonstittel 'PÄrÞrende' annonseres som overskrift; pÄrÞrendenavn og gjeldende rolle leses opp.
- Keyboard / focus Tab nÄr frem til seksjonsinnhold; Enter Äpner kasuslinken.
- Focus visibility Synlig fokusring pÄ pÄrÞrendelisteelement; seksjonsoverskrift er semantisk h2/h3.
-
Finn 'PÄrÞrende-rolle'-feltet pÄ kasuslinkeposten og trykk pÄ nedtrekkslisten.
- Screen reader Nedtrekkslisten annonseres som 'PÄrÞrende-rolle, kombinasjonsboks, [gjeldende verdi]'.
- Keyboard / focus Tab nÄr frem til nedtrekkslisten; Enter eller mellomrom Äpner den.
- Focus visibility Synlig fokusring pÄ nedtrekkskontrollen; kontrollen er merket med en synlig etikett.
- Touch target Nedtrekksknappen er minimum 44Ă44 CSS px.
-
Velg en rolle fra listen (f.eks. 'Forelder' eller 'PrimĂŠr omsorgsperson') og bekreft valget.
- Screen reader Hvert rollealternativ annonseres ved fokus; valgt alternativ bekreftes av skjermleseren.
- Keyboard / focus Piltaster navigerer rollealternativene; Enter velger og lukker listen.
- Focus visibility Fokus flyttes til valgt alternativ i listen; lukking returnerer fokus til nedtrekkskontrollen.
- Contrast Rollealternativer: 4.5:1 kontrast; valgt tilstand ikke kun indikert med farge.
-
Bekreft at den valgte rollen vises umiddelbart pÄ pÄrÞrendeposten uten Ä navigere bort fra kontaktvisningen.
- Screen reader Oppdatert rolleverdi annonseres via live-region uten at fokus flyttes.
- Live region 'PÄrÞrende-rolle oppdatert til [rollenavn].'
- Zoom Rollemerket er lesbart og ikke avskÄret ved 200 % zoom.
Role Boundaries
2 role(s) must NOT access this feature-
Global Administrator
Rollen har ingen tilgang til Meander-mobilappen; deep-link til pÄrÞrendevisning returnerer 403. Funksjonen er ikke synlig i admin-portalen.
-
Prospective Organization Representative
Rollen har ikke brukerkonto i plattformen; innlogging til mobilappen er ikke mulig.
Expected End State
Den valgte semantiske rollen er lagret pÄ kasuslinkeposten og vises umiddelbart i pÄrÞrendelisten uten sidenavigering. Rollen er skrevet av RelativeRoleService med org-konfigurert etikett og er synlig for koordinatorer i teamstatistikk.
Components (20)
Shared Components
These components are reused across multiple features
User Stories
No user stories have been generated for this feature yet.