Phase: Patient Portal
| Field |
Value |
| Identifier |
healthcare-13-4 |
| Status |
Planned |
| Owner |
Platform |
| Module(s) |
healthcare.patient_portal, healthcare.patient_documents |
| Service(s) |
healthcare |
| Depends On |
healthcare-13-0, healthcare-13-1 |
| ADR(s) |
TBD |
| Manifest |
phase-manifest.yaml |
| Framework |
ADR-013 · ADR-018 · ADR-019 |
Objective
Expose patient-facing self-service APIs: profile read/update (healthcare fields only), appointment list/book/cancel via appointment engine, document download refs, and notification preferences — without Identity admin, full medical record write path, or frontend UI in this phase.
Enterprise Phase Discovery
Required before Implementation.
| Field |
Value |
| Discovery date |
TBD at implementation |
| Inputs reviewed |
Phase 13.1 appointment APIs · Identity profile refs · Communication preferences |
Target Responsibility (this phase when Complete)
- Patient-scoped API surface (authenticated patient context)
- Profile extensions: emergency contact refs, preferred clinic, language
- Appointment self-service: list upcoming/past, book (policy-aware), cancel/reschedule
- PatientDocumentRef listing (Storage refs; upload via Storage contract)
- NotificationPreference shells → Communication client
- Permissions
healthcare.patient_portal.*
- Events
healthcare.patient_portal.*
Explicitly Excluded
- Identity credential/password admin
- Loyalty campaigns and point earn
- Medical record clinical edits by patient (13.5 read-only subset may be exposed later)
- Pharmacy checkout (13.6)
- Delivery tracking UI (13.7)
- Experience public site (Experience service)
Business Analysis
| Item |
Detail |
| Actors |
Patient (authenticated end user) |
| Business capabilities |
Self-service appointments; view shared documents; manage comms prefs |
| Success metrics |
Patient can only access own tenant-scoped data |
| Non-goals |
Guest booking without auth, family proxy accounts (future) |
Scope
In Scope
- Aggregates: PatientPortalProfile (extends Patient), PatientDocumentRef, PatientNotificationPreference
- APIs under
/api/v1/patient-portal/* or patient-scoped deps on existing routes
- Integration with appointment engine commands (no duplicate appointment logic)
- Alembic
0005_phase_134_patient_portal; version 0.13.4.0
APIs (planned)
| Method |
Path |
Permission |
Notes |
| GET |
/api/v1/patient-portal/me |
patient context |
Profile |
| PATCH |
/api/v1/patient-portal/me |
patient context |
Limited fields |
| GET |
/api/v1/patient-portal/appointments |
patient context |
Own appointments |
| POST |
/api/v1/patient-portal/appointments |
patient context |
Book via engine |
| POST |
/api/v1/patient-portal/appointments/{id}/cancel |
patient context |
Cancel |
| GET |
/api/v1/patient-portal/documents |
patient context |
Storage refs |
Out of Scope
- Doctor panel (13.2)
- Clinic admin (13.3)
- Full EHR write (13.5)
- Pharmacy (13.6)
- Delivery (13.7)
- Frontend patient app
Completion Criteria
Related Documents