Larkspur Health — product requirements
Larkspur Health is a patient portal for a regional health system. Patients sign in to see a Home summary, book visits through a five-step wizard, reschedule or cancel them (with a 24-hour online lock), request medication refills, read lab results with high/low flags, exchange secure messages with attachments and keep their profile current. The portal clock is fixed at Monday 19 Oct 2026, 10:30 Pacific Time.
Problem. Patients want to manage routine care without phoning the clinic, and must be able to trust that what the portal shows (flags, refills, unread counts, open slots) is accurate and safe to act on.
Users
- Established patient — Book, move and cancel visits, request refills and read results at any hour.
- New patient — Understand an almost-empty record through clear empty states.
- Care-team staff — Receive well-formed messages and requests, and avoid double-booked slots.
Goals
- A time slot can be booked once; a visit inside 24 hours is never changed online.
- Lab values are flagged H when above the reference range and L when below.
- A refill is only possible when refills remain, and counts always reflect requests made.
- Unread counts agree everywhere they are shown.
Out of scope
- Real telehealth video
- Payments and statements
- File upload contents (only name and size are checked)
Contents
Sign-in
Username and password sign-in for two seeded patients.
- Greeting "Good morning, Maya"
- Messages badge shows 3 for the seeded record
- Alert "The username or password is incorrect." and the Sign in screen stays open
- Opening /clinic/appointments signed out returns to Sign in
Home
Tiles, next visit, alerts and medications needing attention.
- Tiles: Upcoming visits 3, Unread messages 3, Active medications 7, "Results to review since Oct 14" 4
- Next visit: Tue, Oct 20 at 9:00 AM with Dr. Priya Raman, Primary Care, Annual checkup, Larkspur Central
- Needing attention: Lisinopril 10 mg "1 refill left" and Metformin 500 mg "0 refills left"
- Three alerts at start; two after dismissing the first, also after a reload
- Home: "Good morning, Sam" and "No upcoming visits."
- Appointments: "You have no upcoming visits." with a Book a visit button; Past shows one visit
- Medications: "No medications on file."; Messages: "No messages yet. Write to your care team any time." with New message; Lab results: "No lab results yet."
Appointments
Upcoming and past visits.
- Tabs "Upcoming (3)" and "Past (4)"
- APT-20481: Tue, Oct 20, 2026 at 9:00 AM, Dr. Priya Raman, Confirmed
- APT-20482 and APT-20483 have enabled Reschedule and Cancel buttons
- APT-19990 Cancelled "Reason: Schedule conflict"; APT-19907, APT-19211 and APT-18650 Completed
Book a visit
Five steps: specialty, provider, time, details, review.
- Step 1 offers seven specialties; Primary Care lists Dr. Priya Raman, Hannah Voss and Dr. Marcus Ellery
- Slots are 15 minutes; the review shows provider, time with time zone, visit type, reason and notes
- "You are booked." with a confirmation number starting "APT-"; Upcoming count increases to 4
- Cardiology Top rated: Dr. Tomas Beaulieu (4.8) then Dr. Aiyana Whitecloud (4.5)
- Cardiology Soonest: Dr. Aiyana Whitecloud (Mon, Oct 19, 11:30 AM) then Dr. Tomas Beaulieu (Wed, Oct 21, 9:45 AM)
- Dermatology Soonest: Dr. Rafael Duarte (Mon, Oct 19, 11:30 AM) before Dr. Lena Koistinen (Tue, Oct 20, 9:00 AM)
- Primary Care + Spanish: only Dr. Marcus Ellery
- Primary Care + German: only Hannah Voss with the badge "Existing patients only"
- Dr. Kwame Asante (Orthopedics): "In person" selected and "Video" disabled
- Day strip starts Mon, Oct 19; Oct 24 and 25 show no open times
- Mon Oct 19: earliest slot 11:30 AM
- Dr. Priya Raman: 13 open slots on Oct 20 (9:00 AM already booked) and 14 on Oct 21
- "Tell us how long you have had this symptom"; with "Less than 1 week" the review lists "Symptom duration: Less than 1 week"
- "Describe the reason for your visit" under Notes for Other
- "Are you having chest pain right now?" with No and Yes; continuing unanswered shows "Answer the chest pain question"
- Yes shows "If this is an emergency, call 911 now. Do not wait for an appointment."
- No leads to a review listing "Chest pain: No"
- Counter "0 / 300", "300 / 300"; 301 characters shows "Notes can be at most 300 characters"
- The booked time is no longer offered for that provider
- A forced second attempt shows "That time was just taken. Choose another slot." and Upcoming never lists two visits at the same time
Reschedule and cancel
Change or cancel upcoming visits, subject to a 24-hour lock.
- Dialog "Reschedule appointment"; picking Wed, Oct 21 at 10:30 AM shows "New time: Wed, Oct 21 at 10:30 AM"
- After "Confirm new time" APT-20482 reads Wed, Oct 21, 2026 at 10:30 AM with Dr. Tomas Beaulieu; Upcoming stays 3
- Dialog "Cancel this appointment?" with a Reason list
- Cancelling APT-20483 with "Feeling better": Upcoming (2), Past (5), "Reason: Feeling better"; Home tile shows 2
- APT-20481 (Tue Oct 20, 9:00 AM, 22.5 hours away): Reschedule and Cancel disabled with "Visits within 24 hours can't be changed online. Call (503) 555-0100."
Medications and refills
Medication list with refill rules.
- Seven active: Atorvastatin 3, Lisinopril 1, Metformin 0, Levothyroxine 5, Albuterol inhaler 2, Vitamin D3 0, Sertraline 2 refills
- Vitamin D3: badge "Over the counter", "Over-the-counter item — no refill needed"
- Sertraline: status "Refill requested", "Refill already requested"
- Amoxicillin 500 mg appears with the badge "Discontinued"
- Dialog "Request a refill" shows "3 refills left" and a pharmacy list
- After "Send request" Atorvastatin shows "Refill requested", "2 refills left" and Request refill disabled
- Metformin 500 mg: Request refill disabled with "No refills left — message your provider to renew"
- The count never goes below 0
Lab results
Reports with reference ranges and H/L flags.
- "8 of 18 results out of range"; Lipid panel and Basic metabolic panel marked "New"
- Lipid: Total cholesterol 214 (< 200), LDL cholesterol 138 (< 100), HDL cholesterol 52 (≥ 40), Triglycerides 118 (< 150)
- Basic metabolic: Glucose, fasting 104 (70–99), Potassium 3.4 (3.5–5.1); Sodium, Creatinine, BUN and Calcium normal
- Total cholesterol 214 H, Glucose 104 H, TSH 4.9 (0.4–4.0) H, Hemoglobin A1c 6.9 (4.0–5.6) H
- Potassium 3.4 L, Hemoglobin 11.8 (12.0–15.5) L, Vitamin D, 25-hydroxy 28 (30–100) L
- "Out of range only" keeps only flagged rows; summary still "8 of 18 results out of range"
- Panel "Thyroid panel" shows only TSH and Free T4; "All panels" restores all
Secure messages
Threads with the care team and attachments.
- Six threads, "3 unread", badge 3
- After opening "Lipid results and next steps": "2 unread", badge 2, Home tile 2
- Dialog "New message" with To, Subject, Message (counter out of 1000) and an attachment picker
- Toast "Message sent"; the thread opens with chip "referral.pdf · 200 KB"
- "Choose who to message"
- "Enter a subject"
- "Subject can be at most 80 characters"
- "Attach a PDF, JPG or PNG file"
- "Attachments can be at most 5 MB"
Profile
Contact details, emergency contact and pharmacy.
- Phone: "Enter a 10-digit phone number, for example (503) 555-0147"
- Email: "Enter a valid email address"
- ZIP: "ZIP code must be 5 digits"
- Emergency contact: "Enter a contact name"
- "All changes saved."
- Entering 5035550199 shows "(503) 555-0199" after reload; the chosen pharmacy is kept
Non-functional requirements
- At 390 px the four tiles wrap two per row
Glossary and rules
| H / L flag | H = result above the reference range, L = result below it. |
|---|---|
| 24-hour lock | Visits starting less than 24 hours from the portal clock cannot be changed online. |
| Lead time | Slots are offered only if they start at least 60 minutes from the portal clock. |