[Epic] Connect the end-to-end patient journey (request → intake → evaluator → referral → session → notes)
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 30/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Quiet
- Domain
- full-stack
Research direction
Start with the stage-status table and work breakdown, then read the linked child issues (#287–#300) rather than treating this epic as one change. The mentioned entry points include createAccount.vue, contactForm.vue, prisma/seed.ts, and the session appointment and referral endpoints. Done means the documented patient journey works end to end without manual database edits.
Written by the indexing model from the issue text.
Description
The intended user journey
The core business flow the app exists to support:
- A patient/guardian submits a request form.
- USER_SERVICE reviews it and creates the patient record (intake).
- USER_SERVICE sets up an appointment between the patient and a neurodeveloper (EVALUATOR).
- The evaluator sends therapist referrals.
- USER_SERVICE books therapy sessions with the referred therapists.
- Therapists and patients attend those sessions.
- Therapists take notes for those sessions.
…plus the prerequisite: adding the staff users (therapists, evaluators, user-service, etc.) into the system in the first place.
Current verdict
Each stage largely works in isolation, but the journey is a chain and the links between stages are missing — the stages are disconnected islands that each re-key or re-create data. Two foundational problems sit underneath: you cannot add any user through the UI, and patients/guardians effectively cannot log in. A real patient cannot travel from "submitted a request" to "therapist wrote a note" without someone editing the database in the middle.
This epic tracks the work to connect the journey end-to-end.
Stage status (from the analysis)
| # | Stage | Status | The catch |
|---|---|---|---|
| 0 | Add users | 🔴 Broken | createAccount.vue is a dead stub; no endpoint. Only prisma/seed.ts makes login-capable typed users. |
| 1 | Request form | 🟢 Works | Public form → Request row. |
| 2 | Intake → create patient | 🟡 Partial | Works via intake; no dedupe; never creates a ContactForm. |
| 2→3 | Handoff | 🔴 Missing | Intake never creates an AppointmentRequest. |
| 3 | Assign evaluator + book eval appt | 🔴 Dead | Machinery works, but operates on rows nothing creates; evaluator picked by raw UUID. |
| 4 | Therapist referrals | 🟢 Works | Create + review + assign-therapist all wired. |
| 4→5 | Handoff | 🔴 Missing | Assigning a therapist to a referral creates no session; no referral→session link. |
| 5 | Book therapy sessions | 🟡 Partial | Works, but purely manual; blocked on empty SessionType (fresh DB). |
| 6 | Attend sessions | 🟡 Partial | Therapist side works; patient side coded but unreachable (no patient login). |
| 7 | Session notes | 🟡 Partial | Works from patient profile; but per-patient not per-session, and author never recorded. |
The broken seams (the heart of the problem)
- Intake → evaluator queue: completing intake creates a
Patientand setsRequest.status = SCHEDULING, but creates noAppointmentRequest. The onlyappointmentRequest.create(server/api/session/appointments/index.post.ts) has no caller anywhere, so the evaluator-assignment screen is always empty. - Referral → therapy booking:
server/api/session/referrals/index.put.tsconnects a therapist to a referral and stops — noSession, andTherapistReferralhas no FK toSession. Referrals never become booked sessions. - Patient identity is re-created at each step: the public
contactForm.vue, intake, and the appointment endpoint each create their ownPatientwith no shared dedupe.
Work breakdown
A — Account foundation (unblocks everything):
- #286 — Build account-creation endpoint + fix
createAccount.vue - #287 — First-login / invite path (OTP +
disableSignUpblocks new users) - #288 — Patient/guardian login capability
B — Reconnect the pipeline:
- #289 — Intake → create
AppointmentRequest(evaluator queue) - #290 — Referral → create bookable therapy
Session - #291 — Single
Patientidentity + dedupe across paths - #292 — Replace raw-UUID evaluator/therapist pickers with real lists
C — Notes correctness:
- #293 — Tie
TherapyNoteto a session (sessionId) - #294 — Record note authorship (
submitterIdfix) - #295 — Align note edit (PUT) validation with create (POST)
D — Robustness / cleanup:
- #296 — Guarantee
SessionTyperows (seed/UI) - #297 — Access-control inconsistencies
- #298 — Orphaned progress-report feature (
Report) - #299 — Misleading component/route names
- #300 — Scheduling edge cases (past-session attendance, edit-time unique collision)
🤖 Generated with Claude Code
- Dominant language
- Vue
- Stars
- 0
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from UTDallasEPICS/connected-care
-
area: auth enhancement P2: medium security
Difficulty 5/5 Over a week Newbie friendliness 35/100
UTDallasEPICS/connected-care#309 ·
-
area: auth enhancement P1: high security
Difficulty 5/5 Over a week Newbie friendliness 25/100
UTDallasEPICS/connected-care#308 ·
-
area: auth enhancement P1: high security
Difficulty 5/5 Over a week Newbie friendliness 38/100
UTDallasEPICS/connected-care#307 ·
-
area: auth enhancement P1: high security
Difficulty 5/5 Over a week Newbie friendliness 25/100
UTDallasEPICS/connected-care#306 ·
-
area: patient area: schedule enhancement P2: medium
Difficulty 5/5 Over a week Newbie friendliness 35/100
UTDallasEPICS/connected-care#305 ·
All issues in UTDallasEPICS/connected-care
Similar issues
-
bug ui
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
hashtopolis/server#2614 ·
Maintainers usually reply within 1 day
-
要トリアージ
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
VictorKildahl/cra#192 ·
Maintainers usually reply within 1 day
-
vaadin-map
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
vaadin/flow-components#10586 ·
Maintainers usually reply within 1 day
-
S: Untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Trauma-Station/Trauma-Station#5285 ·
Maintainers usually reply within 1 day