Case Study · Concept & Design Strategy
MediTag 2.0 — consent-first, role-based access in healthcare (speculative)
A modern pattern for fast, safe access to the right patient data at the right moment — scoped by role, time-boxed, and fully auditable. Public-safe overview (no confidential details).
Overview — What is MediTag?
MediTag is a tap-to-act pattern for hospitals. A short-range NFC wristband or ID lets authorised staff start the right task instantly — without hunting records or typing long passwords.
How it works — in plain English
- Close range by design (a deliberate tap). NFC only works within a few centimetres.
- The tag itself holds no medical data — it carries a secure reference recognised by the hospital system.
- On tap, the system issues a time-limited, role-scoped access token (for example, 30–120 minutes).
- Every action creates an audit entry. Emergency overrides are documented, require a reason and auto-expire.
What a tap can do
- Open the right patient record at the right point in the workflow
- Confirm a medication match before administration (with a documented override)
- Unlock authorised doors or cabinets (e.g., pharmacy, controlled stores)
- Speed up check-in/out and other routine tasks
- Optionally initiate simple payments where appropriate
Benefits we aim to measure in pilots
- Time-to-access: scan → consent → view in under 30 seconds on ward
- Medication safety: patient-tag match required before administration; override rate and reasons reviewed
- Fewer missed appointments: clearer check-in/out and reminders
Privacy & security
- Data minimisation: tags hold only a random ID; clinical data stays in the hospital system
- Challenge–response: tokens are short-lived and specific to role and task
- Anti-clone posture: rate-limit taps, detect duplicates, require step-up auth for sensitive scopes
- Lost or stolen: tags can be revoked immediately; staff devices use passcode/biometric and remote-wipe
Offline & resilience
If connectivity drops, the app can cache the last valid consent until a stated time and queue audit events to sync later. Clear banners make status obvious and fallback steps are documented.
Problem & why now
Hospitals juggle speed, privacy and safety. Access is often all-or-nothing, consent can be invisible, and staff lose time to logins and lookups. We explore a minimal, tap-to-act model that reduces friction while strengthening consent and auditability.
Concept (at a glance)
- Tap-to-start: a short-range NFC wristband/ID triggers the right flow on staff devices.
- Role-scoped access: what you see/do matches your role, and is time-boxed.
- Audit & override: every action creates a receipt; emergencies have a documented break-glass path with auto-expiry.
- Beyond records: the same tap can handle doors, meds, check-in, and simple payments where appropriate.
How it works (journey)
Key screens (spec)
A. Scan & identify
Partial identity until consent; clear “Confirm patient” affordance.
B. Consent & role
Request shows role, scope, time window, and purpose. Approve/Decline.
C. Emergency override
Reason required; automatic notifications; tight auto-expiry (e.g., 30 mins).
D. Audit trail
Readable log with export; shows role, scope, timestamp, and basis.
Risks & mitigations
Safety & duty of care
Clear scopes, opt-outs, escalation guidance; override is rare and time-limited.
Privacy & security
Encrypt data; minimise on-device storage; strict role-based access; immediate tag revoke if lost.
Change impact
Hands-on training; staggered rollout; fallback paths for downtime.
MVP experiments
- Time-to-access: scan → consent → view in < 30 seconds on ward
- Comprehension: do patients/staff understand the role + time model?
- Process fit: validate doors/meds/check-in flows in controlled pilots
What I did
- Framed problem, consent model and role-scoped flow
- Drafted UI, service blueprint, risk analysis
- Planned MVP experiments and measures
What’s next
- Export 4 UI screens and a one-page blueprint; embed above
- Run concierge pilot with frontline roles; measure time-to-access & clarity
- Iterate consent copy, expiry defaults and audit views
Public-safe: this page intentionally omits confidential data, partner details and implementation specifics; available privately on request.
UI Copy · MediTag 2.0
Key screens — exact microcopy
A) Scan & Identify
Primary layout
- Title: Confirm patient
- Patient preview (masked):
{PatientInitial}
.{PatientLastName}
· DOB{DOBDay}
{DOBMonthShort}
(partial) · Ward{Ward}
· Bed{Bed}
- Helper line: Please confirm with the patient or check the wristband digits.
- Chip (ID fragment): Tag • ****
{Last4OfTag}
- Primary button: Confirm with patient
- Secondary link: Not my patient
- Tertiary link: Need emergency access?
Full details are shown only after consent or emergency override.
Short variant
Line: {PatientInitial}
. {PatientLastName}
· Ward {Ward}
· Bed {Bed}
— Buttons: Confirm · Not mine · Emergency
ARIA
- aria-label: Confirm patient — masked details
- aria-description: Only partial identity shown until consent or override
Errors / edge
- Tag not recognised: Couldn’t read this tag. Try again or use patient search.
- Revoked tag: This tag has been revoked. Issue a new wristband and re-scan.
- Multiple matches: Multiple matches found — confirm with patient and select from list.
B) Consent & Role
Primary layout
- Title: Allow access?
- Requester card:
{RequesterName}
({RequesterRole}
) is requesting access to: •{ScopeShort}
— For:{Duration}
— Why:{PurposeShort}
- Explainer (muted): You stay in control. You can stop access at any time.
- Primary: Allow for
{Duration}
- Secondary: Allow for 30 minutes
- Tertiary (outline): Decline
- Info link: Why is role-based access safer?
Post-consent banner (staff UI)
Chip: {RequesterRole}
access · {TimeLeft}
left — Action: Stop access
Short variant
Title: Allow {RequesterRole}
? — Lines: {ScopeShort}
· {Duration}
— Buttons: Allow · 30 min · Decline
ARIA
- aria-label: Consent dialog
- aria-description: Approve role-scoped access for a limited time
Errors / edge
- Patient declines: Access not granted. You can request again or use emergency override if clinically necessary.
- Expired before use: Consent expired. Request access again.
C) Emergency Override (Break glass)
Primary layout
- Title: Emergency override
- Warning: This action is logged and reviewed. Use only when consent is impractical.
- Reason (required): Tell us why access is needed now… e.g., Patient unconscious / time-critical intervention
- Role & scope: Your role:
{RequesterRole}
• Scope:{ScopeShort}
- Expiry: Expires in
{OverrideDuration}
(default 30 minutes) - Primary (destructive): Proceed with override
- Secondary: Cancel
After activation (staff UI)
Banner: Override active · {TimeLeft}
— Reason: {Reason}
— Actions: End now · Add note
Short variant
Lines: Logged • Reviewed • Auto-expires {OverrideDuration}
— Buttons: Proceed · Cancel
ARIA
- aria-label: Emergency override
- aria-description: Logged access with reason, limited time, and audit
Errors / edge
- No reason entered: Please add a short reason for the override.
- Override limit reached: Maximum override window reached. Seek senior authorisation.
D) Audit Trail
Primary layout
- Title: Access log
- Filters: All • Consent • Override • Last 24h • Last 7d
- Row:
{DateShort}
{Time24}
—{RequesterName}
({RequesterRole}
) viewed{ScopeShort}
via{Basis}
({Duration}
) - Details (expand): Purpose:
{PurposeShort}
• Location:{LocationShort}
• Consent ID:{ConsentIdShort}
• Tag: ****{Last4OfTag}
- CTAs: Export PDF • Share with patient • Report an issue
Empty state
No access recorded in this period.
ARIA
- role="table" • aria-label="Access log"
- aria-description="Chronological list of access events with basis and scope"
Placeholder glossary
{PatientInitial}
first initial only (e.g., M.){PatientLastName}
surname (e.g., Ellis){DOBDay}
/{DOBMonthShort}
day / abbreviated month (e.g., 14 / Apr){Ward}
/{Bed}
ward / bed (e.g., B3 / 12){Last4OfTag}
last 4 characters of tag UID{RequesterName}
e.g., Dr S Khan{RequesterRole}
Doctor / Nurse / Porter / Pharmacist{ScopeShort}
e.g., Observations, Meds & Allergies{Duration}
e.g., 2 hours / 30 minutes{PurposeShort}
e.g., Ward round / Medication administration / Transfer{TimeLeft}
time remaining (e.g., 1h 47m){OverrideDuration}
default 30 minutes{Reason}
free-text reason captured at override{Basis}
Consent / Override{LocationShort}
e.g., Ward B3{ConsentIdShort}
short token (e.g., CN-9K3X){DateShort}
/{Time24}
e.g., 12 Oct / 09:42{DateTimeShort}
e.g., 12 Oct 09:42