# Meduvo Missing Modules Plan

Living tracker for unfinished, missing, or currently not-working Meduvo modules.

Sources reviewed:
- `meduvo-health-phased-prompts.md`
- `Meduvo_CoCM_Complete_Master_Analysis (2).md`

Status key:
- `[ ]` Planned / not started
- `[~]` In progress
- `[x]` Completed and verified
- `[!]` Blocked / needs external input

Last reviewed: 2026-07-21

## Priority 1: Fix Broken Flows

1. [x] Patient assessment start is broken in Flutter patient app
   - Wire patient app to backend `POST /api/v1/assessments/start`.
   - Use `/api/v1/kiosk/assessments/start` in kiosk mode.
   - Remove stale "backend gap" blocking code from the patient app.
   - Completed 2026-07-21: patient app now creates assessment responses before streaming answers.

2. [x] Fix kiosk token scoping for streamed answers
   - `stream-answer` accepts only `assessment_response_id`, so handover middleware cannot verify patient ownership.
   - Add `patient_profile_id` to the request or verify the assessment response belongs to the token-scoped patient.
   - Completed 2026-07-21: handover middleware now resolves `assessment_response_id` to its patient and rejects mismatched handover tokens.

3. [x] Fix kiosk eConsent witness issue
   - Backend handover should return `witnessing_provider_id`, or backend should infer it from the handover token owner.
   - Unblock kiosk consent submission in the patient app.
   - Completed 2026-07-21: backend handover returns witness id, kiosk consent infers authoritative witness from token owner, and patient app can submit kiosk consent without blocking on a missing witness field.

4. [x] Fix patient incoming telehealth signal
   - Add a backend event such as `warm-handoff.patient-invited`.
   - Broadcast it to the patient's private user channel.
   - Patient app should listen and auto-open the incoming call screen.
   - Completed 2026-07-21: backend dispatches `warm-handoff.patient-invited` after BHM join, and the patient app root listens on the patient's user channel and opens `/telehealth/incoming/{sessionId}`.

## Priority 2: Compliance and Security Gaps

5. [x] Add full PHI audit logging
   - Log reads, writes, and exports for patient profiles, consents, SDOH, messages, assessments, care goals, recommendations, billing, and alerts.
   - Current audit table exists, but coverage is incomplete.
   - Completed 2026-07-21: added shared PHI audit helper, write observer coverage for PHI-bearing models, read logging across API/web PHI surfaces, and regression tests that inspect decrypted audit payloads.

6. [!] Add DB-level append-only protection for audit logs
   - Current Eloquent guard protects app code.
   - Production needs a DB user without `UPDATE` / `DELETE` grants on `audit_logs`.
   - Prepared 2026-07-21: added `database/sql/audit_logs_append_only_mysql.sql` and README instructions. Blocked until production/staging DB admin applies the grants for the real app DB user.

7. [x] Add MFA and remember-device flow
   - Master analysis includes MFA on provider sign-in.
   - Current implementation has login/password reset but no MFA workflow.
   - Completed 2026-07-21: added encrypted TOTP secrets, MFA setup/enable/disable/status APIs, short-lived challenge tokens, remembered-device records, provider Flutter challenge UI, secure remembered-device storage, and session-based web MFA challenge/remember-device flow.

8. [x] Add real push/device-token infrastructure
   - Flutter apps mention Firebase/CallKit.
   - Backend still needs device-token registration and push dispatch.
   - Completed 2026-07-21: added encrypted device-token registry, role-scoped token registration/revocation API, FCM HTTP v1 dispatcher with local log fallback, safe push dispatch for warm handoffs, patient invites, secure messages, and safety alerts, plus provider/patient Flutter FCM token sync and logout revocation.

## Priority 3: Missing Web/Desktop Product Modules

9. [x] Public marketing/provider signup site
   - Website home, "CoCM for Providers", register practice, BAA/eSign intake.
   - Completed 2026-07-21: replaced root redirect with public Meduvo home, added provider overview, public practice intake, pending-review tenant creation with BAA/eSign intake acknowledgements, and surfaced intake details in SuperAdmin activation review without marking compliance verified.
   - Expanded 2026-07-21: added and polished an interactive animated provider system-flow page that walks practices through intake, screening, safety routing, warm handoff, psychiatric review, and claim readiness.
   - Expanded 2026-07-21: replaced the placeholder staff invite surface with a dedicated Care Team management page, staff invitation email, web invitation acceptance/password setup, BHCM default capacity assignment, and editable BHCM caseload/status controls.

10. [x] PCP operational dashboard
   - Patient registry, alerts/tasks, assessment-ready notification, recent activity.
   - Completed 2026-07-21: upgraded the web overview with registry snapshot, active alerts/tasks, assessment-ready queue, recent warm-handoff activity, and PHI audit reads for dashboard queues.
   - Expanded 2026-07-21: fixed the emergency alert notification confirmation UI so the alert drawer closes before acknowledgement, the confirmation modal is rendered outside the sticky header stack, and the dialog is centered and readable on desktop/mobile.

11. [x] Patient search/register and assign assessment
   - Search by name/DOB/MRN.
   - Register new patient.
   - Choose PHQ-9/GAD-7/custom instruments.
   - Send to kiosk/tablet.
   - Completed 2026-07-21: added patient registry/search, encrypted MRN with exact-match hash lookup, patient registration with PCP/BHCM assignment, assessment packet assignment, and kiosk launch entry from the patient chart.

12. [x] PCP result review and in-room discussion
   - Score summary.
   - Severity/risk bands.
   - Trend vs prior screening.
   - Patient-friendly discussion view.
   - Accept/decline CoCM flow.
   - Completed 2026-07-21: added patient chart review with pending/completed assessment summary, risk bands, recent alerts/tasks, CoCM accept flow, and decline flow that records encrypted reason plus 30-day follow-up.

13. [x] Referral workflow
   - Create referral bundle.
   - Assign/auto-assign BHM.
   - Availability check.
   - Start live call or schedule follow-up.
   - Completed 2026-07-21: patient registration/assignment captures BHM ownership; chart referral action checks BHCM online/capacity, starts a warm-handoff session when available, or creates a referral scheduling follow-up task when not.

14. [x] BHM dashboard
   - Referral queue.
   - Patient chart review.
   - Outreach/engagement log.
   - Care plan creation.
   - Ongoing case-management loop.
   - Completed 2026-07-21: added BHM worklist with assigned caseload, pending warm handoffs, referral/follow-up queue, recent engagement logs, open care goals, plus patient-chart care goal creation and billable outreach time logging.

15. [x] Psychiatrist weekly review portal
   - Case review list.
   - Recommendation form.
   - Send recommendation back to BHM/PCP.
   - Keep Triad rule: no direct patient channel.
   - Completed 2026-07-21: added web psychiatry review portal, case-review queue, encrypted recommendation authoring, BHM/PCP-only recipient validation, care-team push/broadcast notification, navigation entry, and focused feature tests.

16. [x] Reporting/outcomes/claim export
   - Outcome reports.
   - Quality metrics.
   - Claim-ready export.
   - Documentation completeness checks.
   - Completed 2026-07-21: added Reports dashboard with outcome deltas, quality metrics, per-patient documentation completeness gaps, claim-ready status, clinic-admin/super-admin CSV export, export audit logging, and focused feature tests.

## Priority 4: Provider Flutter App

17. [x] Create real patient chart/care encounter screens
   - Current session timer exists but is not mounted in a meaningful workflow.
   - Add chart route and wrap it in `SessionTimerScope`.
   - Completed 2026-07-21: provider registry cards now open a patient chart route that fetches patient/care-goal data, wraps the chart in `SessionTimerScope`, shows timer state, captures an encounter note, and queues the finished session for secure sync.

18. [x] Complete warm handoff UX
   - Listen to CallKit accept/decline events.
   - Navigate to incoming session screen automatically.
   - Replace raw patient ID input with patient/context-driven launch.
   - Completed 2026-07-21: provider warm handoff now launches from patient chart or registry-backed patient picker, removes raw ID entry, listens to CallKit accept/decline/timeout events, routes accepted calls into the incoming session screen, and calls backend decline on declined/timed-out calls.

19. [!] Add real native permissions/config
   - Android foreground service permissions.
   - Notification permissions.
   - iOS CallKit/PushKit/Firebase setup.
   - Current manifests are mostly default.
   - Blocked 2026-07-21: implementation attempt requires expanding Android permissions and iOS entitlements/background modes for notifications, foreground service, camera/mic, full-screen call UI, and push. The safety reviewer rejected this as security-sensitive without explicit user approval. Resume when the user explicitly approves native permission/entitlement changes for the provider app.

20. [x] Fix provider analyze lint
   - `didChangeAppLifecycleState` parameter name currently triggers `avoid_renaming_method_parameters`.
   - Completed 2026-07-21: parameter now follows Flutter's override name and provider analysis is clean.

## Priority 5: Patient Flutter App

21. [x] Repair assessment/kiosk flow
   - Start endpoint exists; patient app must use it.
   - This overlaps with item 1 but remains tracked here because it is the patient app's largest functional blocker.
   - Completed 2026-07-21: normal and kiosk assessment start/stream paths are wired in the patient app.
   - Expanded 2026-07-21: added backend auto-scoring for streamed answers, including safety-halt answers, so PHQ-9/GAD-7 totals persist automatically when required questions are complete.

22. [x] Add handover activation UI
   - QR scan/manual code/deep-link intake is described, but no complete user-facing activation screen exists.
   - Completed 2026-07-21: added pre-login `/handover` activation route, login entry point, deep-link/query/manual payload parsing, secure activation through `KioskSessionController`, and automatic routing into identity confirmation.
   - Expanded 2026-07-21: redesigned the patient-facing kiosk terminal with calmer copy, softer visual treatment, clearer identity confirmation, reassuring question flow, and gentler completion/safety states.

23. [x] Complete telehealth realtime entry
   - Patient can join by direct route, but no real incoming signal opens it.
   - Completed 2026-07-21: real-time patient invite listener navigates into the incoming call route.

24. [x] Fix patient analyze config
   - Add `build/**` exclude to `analysis_options.yaml`.
   - Completed 2026-07-21: analyzer excludes generated build output.

25. [!] Add Firebase/native notification setup
   - Add `firebase_options.dart`, native config files, and notification permissions.
   - Blocked 2026-07-21: no real Firebase project config exists in the patient or provider app (`firebase_options.dart`, app `google-services.json`, and app `GoogleService-Info.plist` are absent outside build dependency examples). Native notification permission/entitlement edits are also security-sensitive and need explicit user approval after the provider permission patch was rejected by the safety reviewer.

## Priority 6: Kiosk Hardening

26. [!] Device-level kiosk lockdown
   - Web fullscreen is not enough.
   - Need MDM, Guided Access, or single-app mode policy for clinic tablets.
   - Prepared 2026-07-21: added `docs/kiosk-device-lockdown.md` with iPadOS MDM, iPadOS Guided Access pilot, Android Enterprise dedicated-device mode, clinic handoff procedure, and acceptance checks. Blocked until clinic IT applies the policy to real devices.

27. [x] Standardize assessment API names
   - Plan mentions `/api/v1/assessments/templates`.
   - Implementation uses `/api/v1/assessment-templates`.
   - Pick one contract and update apps/docs.
   - Completed 2026-07-21: standardized on `/api/v1/assessments/templates` and `/api/v1/kiosk/assessments/templates`, kept legacy `/assessment-templates` aliases for old clients, updated patient Flutter calls/docs, and added regression coverage for canonical plus legacy routes.

## Suggested Build Order

1. Fix broken patient assessment and kiosk scoping.
2. Fix kiosk eConsent witness and patient telehealth signal.
3. Add PHI audit coverage.
4. Complete PCP desktop workflow.
5. Complete BHM workflow.
6. Complete provider Flutter chart/timer/warm-handoff UX.
7. Finish patient app telehealth, consent, kiosk activation.
8. Add MFA, push infrastructure, and native app permissions.
9. Build psychiatrist portal and reports.
10. Do final HIPAA/security/deployment hardening.

## Verification Log

- 2026-07-21: Backend verified with `php artisan test` after local MySQL access was allowed: 161 passed, 334 assertions.
- 2026-07-21: Backend web assets verified with `npm run build`.
- 2026-07-21: Provider Flutter `flutter test` passed; `flutter analyze` failed on one lint in `session_timer_controller.dart`.
- 2026-07-21: Patient Flutter `flutter test` passed; `flutter analyze` failed because build output is not excluded from analysis.
- 2026-07-21: Backend assessment regression suite passed with `php artisan test tests/Feature/Api/AssessmentStartTest.php`: 9 passed, 18 assertions.
- 2026-07-21: Full backend suite passed with `php artisan test`: 163 passed, 338 assertions.
- 2026-07-21: Patient Flutter passed `flutter analyze`: no issues found.
- 2026-07-21: Patient Flutter passed `flutter test`: 2 tests passed.
- 2026-07-21: Backend kiosk consent/handover regression suites passed with `php artisan test tests/Feature/Api/DeviceHandoverScopeTest.php tests/Feature/Api/CoCmConsentTest.php`: 18 passed, 37 assertions.
- 2026-07-21: Full backend suite passed with `php artisan test`: 167 passed, 349 assertions.
- 2026-07-21: Patient Flutter passed `flutter analyze` after kiosk consent updates: no issues found.
- 2026-07-21: Patient Flutter `flutter test` initially hit an ephemeral iOS package cleanup conflict when run parallel with analyze; serial rerun passed: 2 tests passed.
- 2026-07-21: Backend warm-handoff regression suites passed with `php artisan test tests/Feature/Api/WarmHandoffSessionTest.php tests/Feature/Api/WarmHandoffPatientTokenTest.php`: 13 passed, 33 assertions.
- 2026-07-21: Full backend suite passed with `php artisan test`: 168 passed, 351 assertions.
- 2026-07-21: Patient Flutter passed `flutter analyze` after telehealth invite listener: no issues found.
- 2026-07-21: Patient Flutter passed `flutter test`: 2 tests passed.
- 2026-07-21: Provider Flutter passed `flutter analyze` after session timer lint fix: no issues found.
- 2026-07-21: Provider Flutter passed `flutter test`: 1 test passed.
- 2026-07-21: Backend PHI audit regression suite passed with `php artisan test tests/Feature/Api/PhiAuditLoggingTest.php`: 2 passed, 34 assertions.
- 2026-07-21: Full backend suite passed with `php artisan test`: 170 passed, 385 assertions.
- 2026-07-21: Audit-log DB append-only runbook added at `database/sql/audit_logs_append_only_mysql.sql`; local execution intentionally not performed because XAMPP uses root and production DB user/host are external deployment inputs.
- 2026-07-21: Backend MFA API/web auth suites passed with `php artisan test tests/Feature/Web/AuthMfaTest.php tests/Feature/Api/AuthFlowTest.php`: 11 passed, 58 assertions.
- 2026-07-21: Provider Flutter passed `flutter analyze` after MFA login challenge UI: no issues found.
- 2026-07-21: Provider Flutter passed `flutter test` after MFA login challenge UI: 1 test passed.
- 2026-07-21: Backend web assets passed `npm run build` after adding the MFA challenge page.
- 2026-07-21: Full backend suite passed with `php artisan test` after MFA/API/web changes: 176 passed, 430 assertions.
- 2026-07-21: Backend push/token suites passed with `php artisan test tests/Feature/Api/DeviceTokenTest.php tests/Unit/Notifications/PushNotificationServiceTest.php`: 5 passed, 18 assertions.
- 2026-07-21: Provider Flutter passed `flutter analyze` after push-token sync: no issues found.
- 2026-07-21: Provider Flutter passed `flutter test` after push-token sync: 1 test passed.
- 2026-07-21: Patient Flutter passed `flutter analyze` after push-token sync: no issues found.
- 2026-07-21: Patient Flutter passed `flutter test` after push-token sync: 2 tests passed.
- 2026-07-21: Full backend suite passed with `php artisan test` after push/device-token infrastructure: 181 passed, 448 assertions.
- 2026-07-21: Public signup suite passed with `php artisan test tests/Feature/ExampleTest.php tests/Feature/Web/PublicPracticeSignupTest.php`: 4 passed, 22 assertions.
- 2026-07-21: Backend web assets passed `npm run build` after public marketing/provider signup pages.
- 2026-07-21: Local `meduvo` database migrations applied after provider registration hit missing tenant intake columns; focused signup suite passed with `php artisan test tests/Feature/Web/PublicPracticeSignupTest.php`: 3 passed, 20 assertions.
- 2026-07-21: Practice onboarding email notifications added for SuperAdmin registration alerts, practice registration receipt, compliance verification completion, and final approval. Focused web suites passed with `php artisan test tests/Feature/Web/PublicPracticeSignupTest.php tests/Feature/Web/TenantActivationTest.php`: 8 passed, 37 assertions.
- 2026-07-21: Public support/legal pages added for Privacy Policy, Terms and Conditions, Contact Us, and FAQs. Focused public suite passed with `php artisan test tests/Feature/Web/PublicPracticeSignupTest.php`: 4 passed, 36 assertions. Backend web assets passed `npm run build`.
- 2026-07-21: Interactive provider system-flow page added at `/providers/flow` with auto-playing/clickable workflow animation and registration CTAs. Focused public suite passed with `php artisan test tests/Feature/Web/PublicPracticeSignupTest.php`: 4 passed, 39 assertions. Backend web assets passed `npm run build`; Blade compile check passed with `php artisan view:cache` followed by `php artisan view:clear`.
- 2026-07-21: Provider system-flow page polished into a stronger interactive demo story with stage rail, moving signal indicator, role ownership, live operations preview, practice-objection answers, and clearer registration path. Focused public suite still passes with `php artisan test tests/Feature/Web/PublicPracticeSignupTest.php`: 4 passed, 39 assertions. Backend web assets passed `npm run build`; Blade compile check passed with `php artisan view:cache` followed by `php artisan view:clear`.
- 2026-07-21: Kiosk terminal redesigned for a calmer patient-facing experience and kiosk handover fixed to lock the tablet session to the staff-selected questionnaire. Existing stale pending packets no longer leak extra questionnaires into a selected kiosk session. Focused suites passed with `php artisan test tests/Feature/Api/AssessmentTemplateTest.php tests/Feature/Api/AssessmentStartTest.php tests/Feature/Web/KioskLaunchTest.php`: 21 passed, 79 assertions. Backend web assets passed `npm run build`; Blade compile check passed with `php artisan view:cache` followed by `php artisan view:clear`.
- 2026-07-21: Emergency alert notification confirmation UI fixed in the web admin header. Blade compile check passed with `php artisan view:cache` followed by `php artisan view:clear`; backend web assets passed `npm run build`; targeted alert acknowledgement regression passed with `php artisan test tests/Feature/Api/PhiAuditLoggingTest.php --filter=test_consent_sdoh_care_recommendation_billing_and_alert_phi_access_is_audited`: 1 passed, 20 assertions.
- 2026-07-21: Assessment auto-scoring implemented for streamed answers and safety-halt answers. Focused suites passed with `php artisan test tests/Feature/Api/AssessmentStartTest.php tests/Feature/Api/SafetyAlertInterceptTest.php tests/Feature/Web/PatientWorkflowTest.php`: 25 passed, 107 assertions. Backend web assets passed `npm run build`; Blade compile check passed with `php artisan view:cache` followed by `php artisan view:clear`. Local patient profile 1 backfill ran with `php artisan assessments:score 1`: processed 15 responses, updated 2 recoverable snapshot-backed scores.
- 2026-07-21: PHQ-2 prescreen implemented as shared assessment reference data with two 0-3 scored questions. Positive PHQ-2 completion at score 3+ now auto-creates a pending PHQ-9 follow-up packet, and selected kiosk handovers can continue from PHQ-2 into that generated PHQ-9 without exposing unrelated stale questionnaires. Focused suites passed with `php artisan test tests/Feature/Api/AssessmentStartTest.php tests/Feature/Api/AssessmentTemplateTest.php tests/Feature/Api/SafetyAlertInterceptTest.php`: 29 passed, 141 assertions. Local database seeded with `php artisan db:seed --class=AssessmentTemplateSeeder`; frontend assets passed `npm run build`; Blade compile check passed.
- 2026-07-21: Dedicated Care Team staff management added at `/admin/staff` with BHCM/PCP/psychiatrist/clinic-admin invites, invitation email notification, one-time local setup link, web invitation acceptance, and BHCM capacity editing. Focused suites passed with `php artisan test tests/Feature/Web/StaffManagementTest.php tests/Feature/Api/AuthFlowTest.php`: 13 passed, 71 assertions. Route checks passed for `admin/staff` and `invitations`; Blade compile check and `npm run build` passed.
- 2026-07-21: Care Team page refined so active staff accounts and pending invitations are clearly separated. Inline staff editing was replaced with compact member rows and an update modal for name, access status, and BHCM capacity. Focused suite passed with `php artisan test tests/Feature/Web/StaffManagementTest.php`: 5 passed, 35 assertions. Blade compile check and `npm run build` passed.
- 2026-07-21: Public homepage redesigned into a Meduvo command-center landing page with the updated navigation, hero CTAs, product dashboard preview, feature band, and compliance-focused footer. Focused public suite passed with `php artisan test tests/Feature/Web/PublicPracticeSignupTest.php`: 4 passed, 39 assertions. Blade compile check and `npm run build` passed.
- 2026-07-21: Public homepage and shared public layout restored to the attached original version: simple header/footer, dark Meduvo Health hero, plus-mark visual, and three CoCM feature cards. Focused public suite passed with `php artisan test tests/Feature/Web/PublicPracticeSignupTest.php`: 4 passed, 39 assertions. Blade compile check and `npm run build` passed.
- 2026-07-21: Separate homepage redesign added at `/home-command-center` without replacing the original `/` homepage. The new standalone view matches the requested command-center concept with its own header, dashboard preview, feature strip, and dark compliance footer. Focused public suite passed with `php artisan test tests/Feature/Web/PublicPracticeSignupTest.php`: 4 passed, 43 assertions. Route check, Blade compile check, and `npm run build` passed.
- 2026-07-21: `/home-command-center` hero refined with smaller heading scale and a reduced dashboard mockup size so the first viewport feels less oversized. Focused public suite passed with `php artisan test tests/Feature/Web/PublicPracticeSignupTest.php`: 4 passed, 43 assertions. Blade compile check and `npm run build` passed.
- 2026-07-21: Patient desktop workflow suite passed with `php artisan test tests/Feature/Web/PatientWorkflowTest.php`: 6 passed, 26 assertions.
- 2026-07-21: Backend web assets passed `npm run build` after PCP dashboard/patient workflow pages.
- 2026-07-21: Expanded patient/BHM workflow suite passed with `php artisan test tests/Feature/Web/PatientWorkflowTest.php`: 8 passed, 36 assertions.
- 2026-07-21: Backend web assets passed `npm run build` after BHM dashboard/care-plan/outreach panels.
- 2026-07-21: Psychiatry portal static checks passed: `php -l` on new/changed PHP files, `php artisan route:list --name=admin.psychiatry`, and `npm run build`. DB-backed verification later passed in the combined focused run below.
- 2026-07-21: Reports/outcomes static checks passed: `php -l` on reporting controller/policy/test, `php artisan route:list --name=admin.reports`, and `npm run build`. DB-backed verification later passed in the combined focused run below.
- 2026-07-21: Backend focused verification passed from user terminal: `php artisan test tests/Feature/Web/PsychiatristReviewPortalTest.php tests/Feature/Web/ReportingDashboardTest.php tests/Feature/Api/AssessmentTemplateTest.php`: 14 passed, 56 assertions.
- 2026-07-21: Provider Flutter passed `flutter analyze` after patient chart/session-timer and warm-handoff UX updates: no issues found.
- 2026-07-21: Provider Flutter passed `flutter test` after patient chart/session-timer and warm-handoff UX updates: 1 test passed.
- 2026-07-21: Patient Flutter passed `flutter analyze` after handover activation UI: no issues found.
- 2026-07-21: Patient Flutter passed `flutter test` after handover activation UI: 2 tests passed.
- 2026-07-21: Kiosk device lockdown runbook added at `docs/kiosk-device-lockdown.md`; actual single-app/MDM enforcement remains an external clinic IT deployment task.
- 2026-07-21: Assessment-template API route static checks passed: `php -l routes/api_v1.php`, `php -l tests/Feature/Api/AssessmentTemplateTest.php`, and `php artisan route:list --path=assessments/templates`. DB-backed verification later passed in the combined focused run above.
- 2026-07-21: Patient Flutter passed `flutter analyze` after switching to `/assessments/templates`: no issues found.
- 2026-07-21: Patient Flutter passed `flutter test` after switching to `/assessments/templates`: 2 tests passed.
- 2026-07-21: End-to-end Meduvo system-flow documentation added at `docs/meduvo-system-flow.md`, covering practice signup, tenant approval, staff invitation, patient registration, kiosk intake, assessment scoring, safety alerts, role responsibilities, care-team journey, psychiatric review, billing, reporting, and current operational notes.
- 2026-07-21: Branded Meduvo PDF version generated at `docs/meduvo-system-flow.pdf` with cover page, table of contents, navy/orange print styling, header/footer, and reusable PDF assets under `docs/pdf-assets/`. Verified with `pdfinfo` and rendered page previews.

## Update Rule

After finishing any module:
1. Change that checklist item to `[x]`.
2. Add the verification command/result under "Verification Log".
3. If an item is partially done, change it to `[~]` and add what remains.
4. If external setup is required, change it to `[!]` and note the blocker.
