The person's own way into their record — appointments, medications, results, communication needs, proxy access and research transparency — with the two access controls that are demonstrated rather than enforcing named on the face of this document.
The patient portal is the person's own way into their record and into the services around it. It is separately authenticated — a portal session is not a staff session and carries none of a staff account's reach — and it is jurisdiction-branded, so it wears the health system's identity, its colours and its identifier label, with commvita™ named as the platform underneath rather than over the top.
Appointments can be booked against real slots, rescheduled and cancelled; a repeat prescription can be requested against a specific medication with a note; messages go to and from the practice; test results, the care plan and its open tasks are readable. An appointment request that has no bookable slot becomes a request rather than a dead end.
Alongside that sit preventive nudges — a vaccination due, a screening invitation, an annual review, a medication review. Each carries three answers, not one: book it, remind me later, or decline with a reason. The reason matters: a decline recorded with its reason is clinical information, and a decline recorded as silence is a person who looks like they were never asked.
The portal also carries a self-declared family history — “my mother had breast cancer” — which can open earlier screening. It is explicitly non-genomic, and that separation is deliberate: collapsing a family-history statement into genomic data would drag the heaviest consent regime on the platform onto a screening reminder, for no benefit to anyone.
Secondary use of health data is the thing patients are least often told about and most often surprised by. The portal names each study the person's pseudonymised or anonymised data feeds into, with the organisation, the lead researcher, the approval reference, the data categories used, the anonymisation applied and the lawful basis — and it says, per study, whether opting out is possible at all, because for a fully anonymised dataset it often is not.
Where nothing is recorded for that person, the population transparency list is shown rather than an empty page — an empty page would imply no research is happening, which is a stronger claim than the absence of a row supports.
The opt-out controls do not persist. Read this before demonstrating them. The per-study research opt-out and the National Data Opt-out switch both change on-screen state and post to nothing. The database column exists; the portal never writes it. A person who used these would believe they had opted out and would not have. Until they are wired, an opt-out must be recorded through the service in the normal way, and the toggles should not be presented to a real patient population.
This is one question in ordinary language and three different questions in a health record system, and conflating them is how a portal comes to claim transparency it does not deliver.
Where the real access record lives. Every staff access to a record carries a legitimate relationship justification, anomalous patterns — out-of-area, bulk, cross-organisation — are flagged for investigation, and the log is append-only and hash-chained so it is tamper-evident. A person can challenge a justification, and a per-person Article 15 view can be produced. All of that is real. None of it is currently a tab in the portal, and closing that gap is a wiring job, not a build.
| Function | Endpoint | Status |
|---|---|---|
| Sign in, profile, care plan, medications, test results | /portal/auth, /me, /care-plan,
/medications, /test-results |
Live |
| Appointments — book against real slots, reschedule, cancel, request | /portal/appointments, /available-slots,
/appointment-request | Live |
| Messages and repeat prescription requests | /portal/messages, /repeat-request |
Live |
| Preventive nudges — book, defer, decline with reason | /portal/nudges + three actions |
Live |
| Communication needs and reasonable adjustments | /portal/comm-needs | Live |
| Self-declared family history (non-genomic) | /portal/family-history | Live |
| Vaccinations, read from the immunisation spine | /portal/vaccinations | Live |
| Research participation — transparency view | /portal/research |
Live |
| Research and national opt-out — controls not wired | — | Not wired |
| Portal activity log (the person's own actions) | /portal/access-log | Live |
| Granted access list — held in memory, does not gate staff access | /portal/record-access | Demonstrated |
| Who has read my record — staff and IG surface, not in the portal | /legitimate-access-log | Live elsewhere |
| Care feed for family and carers | /portal/care-feed |
Live |
| Rapid review — patient- or family-initiated escalation | /portal/rapid-review | Live |
| Patient transport request · firearms medical request | /portal/patient-transport/request, /firearms-request |
Live |
| Data portability export — returns a fixed example bundle | /portal/fhir-export | Demonstrated |
| Maternity and baby · specialist services · goals · linked accounts | — | Demonstrated |
The portability export is a shape, not a record.
/portal/fhir-export returns a fixed FHIR bundle — the same
date of birth, the same condition, the same medication and the same vaccination
— whatever patient asks for it. It demonstrates the resource structure a real
export would take. It must not be offered to a patient as their data portability
response under Article 20, because it is not their data.
The granted-access list does not gate anything. It is held in a process-local store, so a grant is lost when the service restarts and is invisible to the other replica, and an empty list falls back to a shared example containing a fictional practice, nurse and pharmacy. Revoking a row removes the row. Staff access is governed by role and organisation scope, and revoking here does not change it.
What the portal is not. It is not a clinical decision-support tool and carries no medical-device claim. It does not diagnose, triage or advise. A nudge is an invitation, not an instruction, and every clinical action it can start — a booking, a repeat request, a rapid review — lands on a human being.