feat: Add Hope Integrative Health tenant, schedule, patients, and pre-launch BAA workflow
This commit is contained in:
@@ -64,6 +64,7 @@ import {
|
|||||||
Sparkles,
|
Sparkles,
|
||||||
Scale,
|
Scale,
|
||||||
Lock,
|
Lock,
|
||||||
|
ShieldCheck,
|
||||||
} from 'lucide-react';
|
} from 'lucide-react';
|
||||||
|
|
||||||
export default function Home() {
|
export default function Home() {
|
||||||
@@ -595,6 +596,29 @@ export default function Home() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{/* Pre-Launch / Pending BAA Banner */}
|
||||||
|
{portalMode === 'clinic' && activeTenant.baaStatus === 'pending' && (
|
||||||
|
<div className="max-w-7xl mx-auto mt-2.5 p-2.5 bg-emerald-50 border border-emerald-200/90 rounded-xl flex flex-col sm:flex-row items-center justify-between gap-2 text-xs">
|
||||||
|
<div className="flex items-center gap-2 text-emerald-950">
|
||||||
|
<span className="w-2.5 h-2.5 rounded-full bg-emerald-500 animate-pulse shrink-0" />
|
||||||
|
<span className="font-bold">{activeTenant.name}:</span>
|
||||||
|
<span className="text-emerald-800">
|
||||||
|
Scheduling, calendars, and digital intake are active for testing. Ready for doctor BAA sign-off on go-live!
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onClick={() => {
|
||||||
|
clinicalAudio.playClick();
|
||||||
|
setPortalMode('onboarding');
|
||||||
|
}}
|
||||||
|
className="px-3 py-1 bg-emerald-700 hover:bg-emerald-800 text-white font-bold rounded-lg transition shadow-xs flex items-center gap-1.5 shrink-0"
|
||||||
|
>
|
||||||
|
<ShieldCheck className="w-3.5 h-3.5" /> Sign BAA to Go Live
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
{/* Sub-Tabs for Doctor Clinic OS */}
|
{/* Sub-Tabs for Doctor Clinic OS */}
|
||||||
{portalMode === 'clinic' && (
|
{portalMode === 'clinic' && (
|
||||||
<div className="max-w-7xl mx-auto flex items-center gap-2 mt-3 pt-2.5 border-t border-slate-100 overflow-x-auto text-xs">
|
<div className="max-w-7xl mx-auto flex items-center gap-2 mt-3 pt-2.5 border-t border-slate-100 overflow-x-auto text-xs">
|
||||||
|
|||||||
+162
-1
@@ -81,7 +81,7 @@ export const INITIAL_TENANTS: ClinicTenant[] = [
|
|||||||
id: 'tenant-3',
|
id: 'tenant-3',
|
||||||
name: 'Elevate Sports & Spine Rehab',
|
name: 'Elevate Sports & Spine Rehab',
|
||||||
slug: 'elevate-rehab',
|
slug: 'elevate-rehab',
|
||||||
domain: 'elevate.mediusa.app',
|
domain: 'elevate.mediusaos.com',
|
||||||
phone: '(555) 441-9022',
|
phone: '(555) 441-9022',
|
||||||
email: 'team@elevatespine.com',
|
email: 'team@elevatespine.com',
|
||||||
address: '420 Olympic Blvd',
|
address: '420 Olympic Blvd',
|
||||||
@@ -95,6 +95,27 @@ export const INITIAL_TENANTS: ClinicTenant[] = [
|
|||||||
mrr: 199,
|
mrr: 199,
|
||||||
stripeConnected: true,
|
stripeConnected: true,
|
||||||
createdAt: '2026-02-18',
|
createdAt: '2026-02-18',
|
||||||
|
baaStatus: 'executed',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'tenant-hope',
|
||||||
|
name: 'Hope Integrative Health & Chiropractic',
|
||||||
|
slug: 'hope',
|
||||||
|
domain: 'hope.mediusaos.com',
|
||||||
|
phone: '(555) 472-8833',
|
||||||
|
email: 'contact@hopehealth.clinic',
|
||||||
|
address: '1250 Hope Valley Road, Suite 100',
|
||||||
|
cityStateZip: 'Richmond, VA 23219',
|
||||||
|
npi: '1982736450',
|
||||||
|
taxId: '54-9812734',
|
||||||
|
logoText: 'HOPE HEALTH',
|
||||||
|
brandColor: '#059669', // Emerald Green
|
||||||
|
accentColor: '#10b981',
|
||||||
|
plan: 'Pro Clinic',
|
||||||
|
mrr: 149,
|
||||||
|
stripeConnected: true,
|
||||||
|
createdAt: '2026-03-01',
|
||||||
|
baaStatus: 'pending', // Ready for doctor sign-off on go-live!
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -125,6 +146,19 @@ export const INITIAL_PROVIDERS: Provider[] = [
|
|||||||
avatarUrl: 'https://images.unsplash.com/photo-1594824813571-638f026385a8?w=150&auto=format&fit=crop&q=80',
|
avatarUrl: 'https://images.unsplash.com/photo-1594824813571-638f026385a8?w=150&auto=format&fit=crop&q=80',
|
||||||
color: '#0369a1',
|
color: '#0369a1',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: 'prov-hope-1',
|
||||||
|
tenantId: 'tenant-hope',
|
||||||
|
name: 'Dr. Hope Sullivan',
|
||||||
|
title: 'Medical Director & Chiropractic Physician',
|
||||||
|
credentials: 'D.C., MS, DACBSP',
|
||||||
|
specialty: 'Integrative Spine Care & Functional Rehabilitation',
|
||||||
|
npi: '1982736450',
|
||||||
|
email: 'dr.hope@hopehealth.clinic',
|
||||||
|
phone: '(555) 472-8834',
|
||||||
|
avatarUrl: 'https://images.unsplash.com/photo-1559839734-2b71ea197ec2?w=150&auto=format&fit=crop&q=80',
|
||||||
|
color: '#059669',
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
export const INITIAL_PATIENTS: Patient[] = [
|
export const INITIAL_PATIENTS: Patient[] = [
|
||||||
@@ -307,6 +341,81 @@ export const INITIAL_PATIENTS: Patient[] = [
|
|||||||
status: 'at_risk',
|
status: 'at_risk',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: 'pat-hope-1',
|
||||||
|
tenantId: 'tenant-hope',
|
||||||
|
firstName: 'Chloe',
|
||||||
|
lastName: 'Adams',
|
||||||
|
email: 'chloe.adams@example.com',
|
||||||
|
phone: '(555) 412-9988',
|
||||||
|
dob: '1993-11-22',
|
||||||
|
gender: 'Female',
|
||||||
|
address: '450 Monument Ave, Richmond, VA',
|
||||||
|
insuranceName: 'CareFirst BlueCross BlueShield',
|
||||||
|
insuranceId: 'BCBS-88301',
|
||||||
|
chiefComplaint: 'Chronic cervical tension and bilateral trap spasm from long desk hours',
|
||||||
|
lastVisitDate: '2026-09-04',
|
||||||
|
nextAppointmentDate: '2026-09-08',
|
||||||
|
daysSinceLastVisit: 2,
|
||||||
|
status: 'active',
|
||||||
|
activeMembership: 'Spine & Posture Monthly Club',
|
||||||
|
vitals: {
|
||||||
|
bloodPressure: '116/74',
|
||||||
|
heartRate: 64,
|
||||||
|
temperature: '98.6 °F',
|
||||||
|
oxygenSat: 99,
|
||||||
|
painLevel: 4,
|
||||||
|
bmi: '21.5',
|
||||||
|
allergies: ['None known'],
|
||||||
|
contraindications: ['None'],
|
||||||
|
},
|
||||||
|
carePlan: {
|
||||||
|
title: 'Cervicothoracic Stabilization & Ergonomics Protocol',
|
||||||
|
totalVisits: 8,
|
||||||
|
completedVisits: 2,
|
||||||
|
frequency: '1x / week for 6 weeks',
|
||||||
|
targetCondition: 'Cervical Subluxation & Upper Cross Syndrome',
|
||||||
|
startDate: '2026-08-20',
|
||||||
|
status: 'on_track',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'pat-hope-2',
|
||||||
|
tenantId: 'tenant-hope',
|
||||||
|
firstName: 'David',
|
||||||
|
lastName: 'Miller',
|
||||||
|
email: 'david.miller@example.com',
|
||||||
|
phone: '(555) 723-5501',
|
||||||
|
dob: '1981-03-15',
|
||||||
|
gender: 'Male',
|
||||||
|
address: '890 Broad St, Richmond, VA',
|
||||||
|
insuranceName: 'Aetna Open Access',
|
||||||
|
insuranceId: 'AET-49102',
|
||||||
|
chiefComplaint: 'Acute lumbo-sacral strain after weekend athletic training',
|
||||||
|
lastVisitDate: '2026-09-05',
|
||||||
|
nextAppointmentDate: '2026-09-09',
|
||||||
|
daysSinceLastVisit: 1,
|
||||||
|
status: 'active',
|
||||||
|
vitals: {
|
||||||
|
bloodPressure: '124/80',
|
||||||
|
heartRate: 72,
|
||||||
|
temperature: '98.2 °F',
|
||||||
|
oxygenSat: 98,
|
||||||
|
painLevel: 6,
|
||||||
|
bmi: '26.1',
|
||||||
|
allergies: ['Sulfa drugs'],
|
||||||
|
contraindications: ['Avoid heavy flexion-distraction without warm-up'],
|
||||||
|
},
|
||||||
|
carePlan: {
|
||||||
|
title: 'Lumbar Spine Rehabilitation & Core Decompression',
|
||||||
|
totalVisits: 10,
|
||||||
|
completedVisits: 3,
|
||||||
|
frequency: '2x / week for 4 weeks',
|
||||||
|
targetCondition: 'Lumbar Segmental Dysfunction (L4-L5)',
|
||||||
|
startDate: '2026-08-25',
|
||||||
|
status: 'on_track',
|
||||||
|
},
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
export const INITIAL_APPOINTMENTS: Appointment[] = [
|
export const INITIAL_APPOINTMENTS: Appointment[] = [
|
||||||
@@ -379,6 +488,58 @@ export const INITIAL_APPOINTMENTS: Appointment[] = [
|
|||||||
isTelehealth: true,
|
isTelehealth: true,
|
||||||
notes: 'Virtual consult: evaluate ergonomic workstation setup and review suboccipital stretches.',
|
notes: 'Virtual consult: evaluate ergonomic workstation setup and review suboccipital stretches.',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: 'apt-hope-1',
|
||||||
|
tenantId: 'tenant-hope',
|
||||||
|
patientId: 'pat-hope-1',
|
||||||
|
patientName: 'Chloe Adams',
|
||||||
|
patientPhone: '(555) 412-9988',
|
||||||
|
providerId: 'prov-hope-1',
|
||||||
|
providerName: 'Dr. Hope Sullivan',
|
||||||
|
date: '2026-09-08',
|
||||||
|
time: '09:00 AM',
|
||||||
|
durationMinutes: 30,
|
||||||
|
serviceType: 'Cervical Spinal Adjustment & Myofascial Release',
|
||||||
|
status: 'confirmed',
|
||||||
|
room: 'Adjusting Suite 1',
|
||||||
|
fee: 85,
|
||||||
|
notes: 'Follow-up visit 3/8. Re-check upper cervical alignment and trapezius trigger points.',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'apt-hope-2',
|
||||||
|
tenantId: 'tenant-hope',
|
||||||
|
patientId: 'pat-hope-2',
|
||||||
|
patientName: 'David Miller',
|
||||||
|
patientPhone: '(555) 723-5501',
|
||||||
|
providerId: 'prov-hope-1',
|
||||||
|
providerName: 'Dr. Hope Sullivan',
|
||||||
|
date: '2026-09-08',
|
||||||
|
time: '10:00 AM',
|
||||||
|
durationMinutes: 45,
|
||||||
|
serviceType: 'Initial Examination & Lumbar Decompression',
|
||||||
|
status: 'in_room',
|
||||||
|
room: 'Decompression Suite',
|
||||||
|
fee: 145,
|
||||||
|
notes: 'Acute lumbosacral pain onset. Patient arrived and completed paperless digital intake.',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'apt-hope-3',
|
||||||
|
tenantId: 'tenant-hope',
|
||||||
|
patientId: 'pat-hope-3',
|
||||||
|
patientName: 'Samantha Brooks',
|
||||||
|
patientPhone: '(555) 881-2244',
|
||||||
|
providerId: 'prov-hope-1',
|
||||||
|
providerName: 'Dr. Hope Sullivan',
|
||||||
|
date: '2026-09-08',
|
||||||
|
time: '11:15 AM',
|
||||||
|
durationMinutes: 30,
|
||||||
|
serviceType: 'Virtual Telehealth Ergonomic Consult',
|
||||||
|
status: 'booked',
|
||||||
|
room: 'Telehealth Room',
|
||||||
|
fee: 65,
|
||||||
|
isTelehealth: true,
|
||||||
|
notes: 'Remote workstation evaluation and home exercise protocol.',
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
export const INITIAL_SOAP_NOTES: SoapNote[] = [
|
export const INITIAL_SOAP_NOTES: SoapNote[] = [
|
||||||
|
|||||||
Reference in New Issue
Block a user