A branded end-to-end guide to practice onboarding, staff registration, patient intake,
assessment scoring, safety alerts, care-team roles, psychiatric review, billing, and reporting.
Starts WithPractice intake
Public signup, compliance verification, and SuperAdmin approval before PHI access opens.
Patient JourneyScreening to care plan
Patient registration, consent, SDOH, assessments, alerts, triage, and follow-up.
Care TeamPCP, BHCM, psychiatrist
Role-specific responsibilities across warm handoff, care goals, recommendations, and billing.
Meduvo Health System Flow
Meduvo Health System Flow
Last reviewed: 2026-07-21
This document describes the current Meduvo Health flow from practice
signup through patient care, alerts, psychiatric review, billing, and
reporting. It is based on the current Laravel backend implementation,
public/web routes, API routes, policies, and recently completed
assessment/kiosk work.
1. Big Picture
Meduvo Health is a multi-tenant Collaborative Care Management
platform. A practice registers publicly, Meduvo SuperAdmin reviews
compliance, approved practice staff are invited into the system, clinic
staff register patients, patients complete intake and assessments, the
care team reviews risk and decides next steps, and billing/reporting
dashboards track care delivery and claim readiness.
Core flow:
Practice submits public registration.
SuperAdmin reviews BAA/eSign compliance.
SuperAdmin approves the practice.
Clinic Admin or SuperAdmin invites staff users.
Staff accept secure invitation links and create accounts.
Staff register a patient and assign PCP/BHCM.
Staff assign assessments and launch kiosk/tablet or patient app
flow.
Patient signs CoCM consent, completes SDOH, and answers
assessments.
Assessment answers are streamed one question at a time.
Scores are calculated automatically when required questions are
complete.
Care team reviews results and decides CoCM accept, decline,
referral, warm handoff, care plan, or psychiatric review.
BHCM manages follow-up tasks, care goals, outreach, and patient
communication.
Psychiatrist reviews elevated cases and routes recommendations to
BHCM or PCP.
Billing engine computes CoCM billing status from time logs and rule
sets.
Reports show outcomes, documentation gaps, and claim readiness.
2. Practice Registration Flow
Public entry points:
/
/providers
/providers/flow
/providers/register
How a practice registers:
A practice opens /providers/register.
The practice submits:
practice name
primary contact name
primary contact email
phone
website
address
operational timezone
estimated monthly CoCM patients
BAA intake acknowledgement
eSign intake acknowledgement
optional signup notes
The system creates a tenants row with:
status = pending_review
public intake/contact fields
BAA/eSign acknowledgement timestamps
The practice sees a confirmation message that the practice is queued
for compliance review.
Email notifications are sent:
SuperAdmins or configured system admin email get a new-practice
registration email.
The practice primary contact gets a registration-received
email.
Important behavior:
A newly registered practice does not immediately get PHI
access.
The tenant remains blocked until SuperAdmin compliance verification
and approval are complete.
3. Practice Compliance And
Approval
Admin route:
/admin/tenants
/admin/tenants/{tenant}
Who can manage this:
SuperAdmin only.
Flow:
SuperAdmin opens Practice Activation.
SuperAdmin reviews the pending tenant.
SuperAdmin marks:
BAA executed
eSign compliance verified
The system audit-logs the compliance update.
When both compliance items are verified, the practice contact
receives a compliance-completed email.
SuperAdmin approves the tenant.
The tenant changes from pending_review to
approved.
The system audit-logs the approval.
The practice contact receives a practice-approved email.
PHI access is unblocked for users in that tenant.
Protection:
Pending or suspended tenants are blocked from normal API and web PHI
access.
SuperAdmin can still access tenant activation routes so they can
approve or manage pending practices.
4. System User Registration
Flow
System users do not self-register publicly. Staff accounts are
created by secure invitation.
Staff management route:
/admin/staff
Invitation acceptance route:
/invitations/{token}/accept
Roles that can be invited:
Clinic Admin
PCP
BHCM
Psychiatrist
Who can invite:
SuperAdmin can invite users into any tenant.
Clinic Admin can invite staff into their own tenant.
Clinic Admin cannot invite SuperAdmin users.
Flow:
Clinic Admin or SuperAdmin opens Care Team/Staff Management.
They enter the staff member’s email and select a role.
The system creates an invitations row with:
tenant id
email
role
hashed token
invited by user id
7-day expiry
The raw token is only shown/sent once and is not stored.
The invited staff member receives an email with a secure setup
link.
The staff member opens the link, enters name and password, and
activates the account.
The system creates a users row with:
assigned tenant
invited role
active status
verified email timestamp
If the role is BHCM, default max caseload is assigned.
The invitation is marked accepted.
The user is logged in and marked online.
Login and MFA:
Web users sign in at /login.
API/mobile users sign in with /api/v1/login.
MFA can be enabled for provider sign-in.
Successful login marks the user online.
Logout marks the user offline.
5. Role Responsibilities
SuperAdmin
Primary job: platform administration and tenant activation.
Can:
Review practice registrations.
Verify BAA/eSign compliance.
Approve practices.
Enter tenant workspace when needed.
Invite users broadly.
View administrative audit and compliance areas.
Should not be part of normal day-to-day patient care unless acting in
an administrative/support capacity.
Clinic Admin
Primary job: tenant-level operations.
Can:
Manage staff for the practice.
Invite PCP, BHCM, psychiatrist, and clinic admin users.
Register patients.
View patient registry and dashboards.
Assign assessments.
Monitor alerts.
View billing and reports.
Export claim-ready report data.
View audit trail.
PCP
Primary job: lead medical care and in-room clinical
decision-making.
Can:
View and create patient profiles.
Assign assessments.
Review patient chart and scores.
Accept or decline patient into CoCM workflow.
Trigger referral or warm handoff to BHCM.
Acknowledge/respond to emergency safety alerts.
Log clinical/outreach time.
Review psychiatric recommendations routed to them.
BHCM
Primary job: coordinate behavioral health care.
Can:
View assigned caseload.
Manage BHCM worklist.
Review assessment results.
Handle referral scheduling tasks.
Join warm handoffs.
Create care goals.
Communicate with patient through patient/BHCM message thread.
Log direct/indirect care time.
Acknowledge/respond to emergency safety alerts.
Review psychiatric recommendations routed to them.
Capacity:
BHCM users have a max caseload.
Registry/capacity endpoints show caseload, maximum caseload, and
whether the BHCM is at capacity.
Warm handoff/referral logic uses online status and caseload
capacity.
Psychiatrist
Primary job: consultant/advisor to the care team.
Can:
Open the psychiatrist review portal.
See active CoCM cases, elevated scores, safety-risk cases, and
pending recommendations.
Create recommendations.
Route recommendations only to BHCM or PCP.
Cannot:
Route recommendations directly to patients.
Act as direct patient-facing warm handoff participant.
Acknowledge emergency alerts as a physical responder.
Patient
Primary job: complete intake, consent, assessments, and participate
in care.
Can:
Sign CoCM consent.
Complete SDOH intake.
Complete PHQ/GAD assessments from app or kiosk.
Join a secure warm handoff video session after BHCM joins.
Message assigned BHCM through the patient/BHCM thread.
View care goals scoped to their own profile.
Patient access is always restricted to their own patient profile.
6. Patient Registration Flow
Main web route:
/admin/patients
Who can create patients:
SuperAdmin
Clinic Admin
PCP
BHCM
Patient registration fields:
name
email
medical record number
date of birth
sex
phone
address
payer type
PCP
BHCM
What happens when staff registers a patient:
Staff opens Patient Registry.
Staff enters patient demographics and selects assigned PCP and
BHCM.
The system creates a users row:
role patient
status invited
random generated password
The system creates a patient_profiles row:
tenant id
user id
encrypted MRN
MRN hash for exact search
PCP assignment
BHCM assignment
DOB, sex, phone, address
enrollment date
co_cm_status = prospect
payer type
Staff is redirected to the patient chart.
The patient is ready for assessment assignment and kiosk/tablet
handoff.
Patient search:
Staff can search by name, email, DOB, or exact MRN hash.
PHI reads are audit-logged.
Current implementation note:
The web registration flow creates a patient user with status
invited, but the currently inspected web flow does not send
a patient password setup email at the moment of patient creation.
Patient app access may require a separate operational
setup/reset-password process unless a patient-invite email flow is
added.
7. Assessment Assignment
And Kiosk Flow
Patient chart route:
/admin/patients/{patientProfile}
Kiosk launch routes:
/admin/kiosk/{patientProfile}/launch
/kiosk/terminal
Assessment APIs:
/api/v1/assessments/templates
/api/v1/assessments/start
/api/v1/assessments/stream-answer
/api/v1/kiosk/assessments/templates
/api/v1/kiosk/assessments/start
/api/v1/kiosk/assessments/stream-answer
Assessment templates currently include:
PHQ-2
PHQ-9
GAD-7
Staff assignment flow:
Staff opens patient chart.
Staff selects one or more active assessment templates.
The system creates pending patient_assessment_responses
rows.
Staff clicks send/launch to kiosk.
Staff chooses the exact assessment for the kiosk session.
The system creates a short-lived Sanctum token:
name kiosk-handover
ability kiosk:screening
expires in 30 minutes
scoped to one patient
scoped to selected assessment/template context
includes witnessing provider id
Staff opens the generated kiosk link or QR code on the
patient-facing tablet.
Patient confirms identity using first name and masked DOB.
Patient completes consent, SDOH, and assessment screens.
Kiosk security:
Kiosk tokens cannot access normal provider API routes.
Kiosk routes verify that the token’s patient id matches the
route/body/assessment response patient.
The kiosk shows only the selected assigned questionnaire.
If PHQ-2 is positive and creates a PHQ-9 follow-up, the kiosk may
continue into that generated PHQ-9 without exposing unrelated stale
questionnaires.
8. CoCM Consent And SDOH
Intake
Consent endpoint:
/api/v1/co-cm-consents
/api/v1/kiosk/co-cm-consents
Consent behavior:
Patient signs CoCM consent from app or kiosk.
Consent stores:
tenant id
patient profile id
witnessing provider id
signature image
consent version
server-side signed timestamp
In kiosk mode, the witnessing provider is inferred from the staff
member who issued the handover token.
Consent rows are treated as immutable signed records.
SDOH endpoint:
/api/v1/patient-sdoh-records
/api/v1/kiosk/patient-sdoh-records
SDOH behavior:
Patient answers housing, food, and transportation questions.
Each step can be submitted independently.
The system upserts one SDOH record per patient.
Missing later steps do not erase earlier saved SDOH values.
9.
Assessment Scoring And Need-For-Care Identification
Assessments stream answers one question at a time. The system does
not wait until the end to receive a full survey payload.
Streaming behavior:
Client sends:
assessment response id
question key
answer value
whether the question is a critical safety item
The backend merges the answer into the response’s
answers JSON.
The backend checks whether required questions are complete.
If all required questions are complete and answers are scoreable,
the backend saves total_score.
Until completion, score remains pending.
PHQ-2 behavior:
PHQ-2 has two questions.
Score range is 0-6.
If PHQ-2 total score is 3 or higher, the system automatically
creates a pending PHQ-9 follow-up assessment.
If PHQ-2 score is below 3, no automatic PHQ-9 follow-up is
created.
PHQ-9/GAD-7 behavior:
PHQ-9 and GAD-7 are scored from their answer options.
PHQ-9 question 9 is a safety-risk item.
GAD-7 has a configured risk indicator on its final item according to
the current seeded reference data.
How the system identifies patients who may need care:
Basic CoCM status:
prospect
active
declined
Scored assessment results:
completed PHQ/GAD scores
latest score
score delta compared with prior assessment
PHQ-2 positive screen:
score 3 or higher creates PHQ-9 follow-up
Safety-risk flags:
critical item positive answer marks
has_safety_risk = true
Registry risk engine:
compares recent assessment scores
checks missing care milestones
checks safety-risk flags in the configured window
applies active risk stratification rule-set weights
marks whether psychiatric review is needed
Psychiatrist review portal:
shows active CoCM cases
shows safety-risk cases
shows cases with assessment score 10 or higher
shows pending psychiatric recommendations
Important note:
The safety-positive evaluator is currently simple/configurable:
boolean true, numeric value greater than 0, or string yes/true/1 counts
as positive for a critical item. This should be clinically reviewed
before production clinical use.
10. Emergency Safety Alert
Flow
Alert trigger:
An alert is generated when an answer is submitted for a question
marked as a critical safety item and the answer is positive.
What happens immediately:
Backend saves the answer into the assessment response.
Backend marks the assessment response with
has_safety_risk = true.
If the response is complete and scoreable, total score is
saved.
Backend snapshots the question text for audit/clinical history.
Backend creates an emergency_safety_alerts row with:
tenant id
patient profile id
assessment response id
question key
question text
answer value
triggered timestamp
Backend broadcasts a safety-alert event.
Backend sends push notification to:
assigned PCP
assigned BHCM
all Clinic Admin users in the tenant
Patient/kiosk receives action = halt_survey.
Patient-facing screen moves to a non-dismissable safety-halt
state.
Staff see the alert in the global emergency alert
widget/drawer.
Alert acknowledgement:
PCP, BHCM, Clinic Admin, or SuperAdmin opens/receives the
alert.
Reports show outcomes, documentation gaps, and claim readiness.
Clinic Admin exports claim-ready CSV when appropriate.
17. Current Operational Notes
The following are important for product/operations planning:
Practice self-registration is implemented and emails are wired.
Staff self-registration is invitation-only, not public
self-signup.
Patient creation exists in the web portal, but patient password
setup/email invitation is not currently part of the inspected web
patient creation flow.
PHQ-2 prescreen is implemented with automatic PHQ-9 follow-up at
score 3 or higher.
Assessment scoring is automatic once all required scoreable
questions are answered.
Safety alerts are immediate and interrupt the assessment flow.
The current safety-positive evaluator is intentionally simple and
should be reviewed by a clinical lead before production clinical
reliance.
Kiosk device lockdown has a separate runbook in
docs/kiosk-device-lockdown.md; actual MDM/device
enforcement is an external clinic IT step.
Firebase/native push configuration depends on real project
credentials and mobile platform configuration.
Billing and risk rule sets are data-driven and should be
reviewed/approved before real claims or clinical escalation use.