|
<!DOCTYPE html> |
|
<html lang="en"> |
|
<head> |
|
<meta charset="UTF-8"> |
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
<title>MedFlow AI - Healthcare Portal</title> |
|
<script src="https://cdn.tailwindcss.com"></script> |
|
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script> |
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> |
|
<style> |
|
.gradient-bg { |
|
background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%); |
|
} |
|
.card-hover:hover { |
|
transform: translateY(-5px); |
|
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); |
|
} |
|
.transition-all { |
|
transition: all 0.3s ease; |
|
} |
|
</style> |
|
</head> |
|
<body class="bg-gray-50 min-h-screen"> |
|
|
|
<div class="container mx-auto px-4 py-8"> |
|
|
|
<header class="text-center mb-12"> |
|
<h1 class="text-4xl md:text-5xl font-bold text-blue-800 mb-4">MedFlow AI</h1> |
|
<p class="text-xl text-gray-600 max-w-2xl mx-auto">Smart healthcare solutions for patients and providers</p> |
|
</header> |
|
|
|
|
|
<div class="max-w-4xl mx-auto"> |
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-8"> |
|
|
|
<div id="patientCard" class="bg-white rounded-xl shadow-lg overflow-hidden transition-all card-hover cursor-pointer"> |
|
<div class="gradient-bg p-6 text-white"> |
|
<div class="flex items-center justify-center mb-4"> |
|
<i class="fas fa-user-injured text-4xl mr-4"></i> |
|
<h2 class="text-2xl font-bold">Patient Portal</h2> |
|
</div> |
|
<p class="text-blue-100">Get personalized health insights and appointment scheduling powered by AI.</p> |
|
</div> |
|
<div class="p-6"> |
|
<button onclick="showPatientForm()" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-bold py-3 px-4 rounded-lg transition-all"> |
|
Access as Patient |
|
</button> |
|
</div> |
|
</div> |
|
|
|
|
|
<div id="hospitalCard" class="bg-white rounded-xl shadow-lg overflow-hidden transition-all card-hover cursor-pointer"> |
|
<div class="gradient-bg p-6 text-white"> |
|
<div class="flex items-center justify-center mb-4"> |
|
<i class="fas fa-hospital text-4xl mr-4"></i> |
|
<h2 class="text-2xl font-bold">Hospital Dashboard</h2> |
|
</div> |
|
<p class="text-blue-100">AI-powered insights for hospital management and patient flow optimization.</p> |
|
</div> |
|
<div class="p-6"> |
|
<button onclick="showHospitalLogin()" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-bold py-3 px-4 rounded-lg transition-all"> |
|
Access as Provider |
|
</button> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div id="patientForm" class="hidden max-w-2xl mx-auto mt-12 bg-white rounded-xl shadow-lg p-8"> |
|
<div class="flex justify-between items-center mb-6"> |
|
<h2 class="text-2xl font-bold text-blue-800">Patient Information</h2> |
|
<button onclick="hidePatientForm()" class="text-gray-500 hover:text-gray-700"> |
|
<i class="fas fa-times"></i> |
|
</button> |
|
</div> |
|
|
|
<form id="medForm" class="space-y-4"> |
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-4"> |
|
<div> |
|
<label for="name" class="block text-sm font-medium text-gray-700 mb-1">Full Name</label> |
|
<input type="text" id="name" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" required> |
|
</div> |
|
<div> |
|
<label for="phone" class="block text-sm font-medium text-gray-700 mb-1">Phone Number</label> |
|
<input type="tel" id="phone" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" required> |
|
</div> |
|
</div> |
|
|
|
<div> |
|
<label for="email" class="block text-sm font-medium text-gray-700 mb-1">Email Address</label> |
|
<input type="email" id="email" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" required> |
|
</div> |
|
|
|
<div> |
|
<label for="address" class="block text-sm font-medium text-gray-700 mb-1">Address</label> |
|
<input type="text" id="address" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" required> |
|
</div> |
|
|
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-4"> |
|
<div> |
|
<label for="bloodPressure" class="block text-sm font-medium text-gray-700 mb-1">Blood Pressure</label> |
|
<input type="text" id="bloodPressure" placeholder="e.g. 120/80" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" required> |
|
</div> |
|
<div> |
|
<label for="height" class="block text-sm font-medium text-gray-700 mb-1">Height (cm)</label> |
|
<input type="number" id="height" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" required> |
|
</div> |
|
<div> |
|
<label for="weight" class="block text-sm font-medium text-gray-700 mb-1">Weight (kg)</label> |
|
<input type="number" id="weight" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" required> |
|
</div> |
|
</div> |
|
|
|
<div> |
|
<label for="symptoms" class="block text-sm font-medium text-gray-700 mb-1">Describe Your Symptoms</label> |
|
<textarea id="symptoms" rows="3" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" required></textarea> |
|
</div> |
|
|
|
<div class="pt-4"> |
|
<button type="button" onclick="submitPatientForm()" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-bold py-3 px-4 rounded-lg transition-all"> |
|
Submit Information |
|
</button> |
|
</div> |
|
</form> |
|
</div> |
|
|
|
|
|
<div id="patientResults" class="hidden max-w-2xl mx-auto mt-12 bg-white rounded-xl shadow-lg p-8"> |
|
<div class="flex justify-between items-center mb-6"> |
|
<h2 class="text-2xl font-bold text-blue-800">Your Health Assessment</h2> |
|
<button onclick="hidePatientResults()" class="text-gray-500 hover:text-gray-700"> |
|
<i class="fas fa-times"></i> |
|
</button> |
|
</div> |
|
|
|
<div class="space-y-6"> |
|
<div class="bg-blue-50 rounded-lg p-4"> |
|
<div class="flex items-center"> |
|
<div class="bg-blue-100 p-3 rounded-full mr-4"> |
|
<i class="fas fa-exclamation-triangle text-blue-600"></i> |
|
</div> |
|
<div> |
|
<h3 class="font-bold text-blue-800">Priority Level: <span id="priorityLevel" class="text-2xl">3</span>/5</h3> |
|
<p class="text-sm text-gray-600">Based on your symptoms and vitals</p> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
<div> |
|
<h3 class="font-bold text-lg text-gray-800 mb-2">Recommended Actions</h3> |
|
<ul class="list-disc pl-5 space-y-2 text-gray-700"> |
|
<li>Rest and stay hydrated</li> |
|
<li>Monitor your temperature every 4 hours</li> |
|
<li>Avoid strenuous activity for the next 48 hours</li> |
|
<li>Limit caffeine and alcohol intake</li> |
|
</ul> |
|
</div> |
|
|
|
<div> |
|
<h3 class="font-bold text-lg text-gray-800 mb-2">Potential Conditions</h3> |
|
<p class="text-gray-700">Based on your symptoms, you may be experiencing a mild viral infection or seasonal allergies. However, if symptoms worsen or persist beyond 3 days, seek immediate medical attention.</p> |
|
</div> |
|
|
|
<div class="bg-yellow-50 rounded-lg p-4 border border-yellow-200"> |
|
<h3 class="font-bold text-lg text-yellow-800 mb-2">When to Seek Immediate Care</h3> |
|
<ul class="list-disc pl-5 space-y-1 text-yellow-700"> |
|
<li>Difficulty breathing</li> |
|
<li>Chest pain or pressure</li> |
|
<li>Severe headache with vision changes</li> |
|
<li>Fever above 39°C (102°F) that doesn't respond to medication</li> |
|
</ul> |
|
</div> |
|
|
|
<div class="bg-green-50 rounded-lg p-4"> |
|
<div class="flex items-center"> |
|
<div class="bg-green-100 p-3 rounded-full mr-4"> |
|
<i class="fas fa-calendar-check text-green-600"></i> |
|
</div> |
|
<div> |
|
<h3 class="font-bold text-green-800">Appointment Options</h3> |
|
<p class="text-gray-700 mt-1">You are currently <span class="font-bold">8th</span> in the queue.</p> |
|
<div class="mt-3 space-y-2"> |
|
<div class="flex items-center"> |
|
<input type="radio" id="waitOption" name="appointment" class="mr-2" checked> |
|
<label for="waitOption">Wait for current appointment (~1 hour)</label> |
|
</div> |
|
<div class="flex items-center"> |
|
<input type="radio" id="laterOption" name="appointment" class="mr-2"> |
|
<label for="laterOption">Schedule for tomorrow at 2:30 PM</label> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
<div class="pt-2"> |
|
<button onclick="confirmAppointment()" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-bold py-3 px-4 rounded-lg transition-all"> |
|
Confirm My Choice |
|
</button> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div id="hospitalLogin" class="hidden max-w-md mx-auto mt-12 bg-white rounded-xl shadow-lg p-8"> |
|
<div class="flex justify-between items-center mb-6"> |
|
<h2 class="text-2xl font-bold text-blue-800">Hospital Staff Login</h2> |
|
<button onclick="hideHospitalLogin()" class="text-gray-500 hover:text-gray-700"> |
|
<i class="fas fa-times"></i> |
|
</button> |
|
</div> |
|
|
|
<form class="space-y-4"> |
|
<div> |
|
<label for="username" class="block text-sm font-medium text-gray-700 mb-1">Username</label> |
|
<input type="text" id="username" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" required> |
|
</div> |
|
|
|
<div> |
|
<label for="password" class="block text-sm font-medium text-gray-700 mb-1">Password</label> |
|
<input type="password" id="password" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" required> |
|
</div> |
|
|
|
<div class="pt-4"> |
|
<button type="button" onclick="loginAsDoctor()" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-bold py-3 px-4 rounded-lg transition-all"> |
|
Sign In |
|
</button> |
|
</div> |
|
</form> |
|
</div> |
|
|
|
|
|
<div id="hospitalDashboard" class="hidden max-w-6xl mx-auto mt-12"> |
|
<div class="flex justify-between items-center mb-8"> |
|
<div> |
|
<h2 class="text-2xl font-bold text-blue-800">Healthcare Dashboard</h2> |
|
<p class="text-gray-600">AI-powered insights for Toronto General Hospital</p> |
|
</div> |
|
<div class="flex space-x-3"> |
|
<button class="bg-blue-100 hover:bg-blue-200 text-blue-800 font-medium py-2 px-4 rounded-lg transition-all"> |
|
Refresh Data |
|
</button> |
|
<button class="bg-blue-100 hover:bg-blue-200 text-blue-800 font-medium py-2 px-4 rounded-lg transition-all"> |
|
Export Report |
|
</button> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mb-8"> |
|
<div class="bg-white rounded-xl shadow p-6"> |
|
<div class="flex justify-between"> |
|
<div> |
|
<p class="text-sm font-medium text-gray-500">Average Wait Time</p> |
|
<h3 class="text-2xl font-bold mt-1">14.2 days</h3> |
|
</div> |
|
<div class="bg-red-100 text-red-800 px-3 py-1 rounded-full text-sm font-medium flex items-center"> |
|
<i class="fas fa-arrow-down mr-1"></i> 2.3 days |
|
</div> |
|
</div> |
|
<p class="text-xs text-gray-500 mt-2">from last week</p> |
|
</div> |
|
|
|
<div class="bg-white rounded-xl shadow p-6"> |
|
<div class="flex justify-between"> |
|
<div> |
|
<p class="text-sm font-medium text-gray-500">Patients Scheduled Today</p> |
|
<h3 class="text-2xl font-bold mt-1">1,247</h3> |
|
</div> |
|
<div class="bg-green-100 text-green-800 px-3 py-1 rounded-full text-sm font-medium flex items-center"> |
|
<i class="fas fa-arrow-up mr-1"></i> 156 |
|
</div> |
|
</div> |
|
<p class="text-xs text-gray-500 mt-2">from last week</p> |
|
</div> |
|
|
|
<div class="bg-white rounded-xl shadow p-6"> |
|
<div class="flex justify-between"> |
|
<div> |
|
<p class="text-sm font-medium text-gray-500">System Efficiency</p> |
|
<h3 class="text-2xl font-bold mt-1">87.4%</h3> |
|
</div> |
|
<div class="bg-green-100 text-green-800 px-3 py-1 rounded-full text-sm font-medium flex items-center"> |
|
<i class="fas fa-arrow-up mr-1"></i> 5.2% |
|
</div> |
|
</div> |
|
<p class="text-xs text-gray-500 mt-2">from last week</p> |
|
</div> |
|
|
|
<div class="bg-white rounded-xl shadow p-6"> |
|
<div class="flex justify-between"> |
|
<div> |
|
<p class="text-sm font-medium text-gray-500">Active Bottlenecks</p> |
|
<h3 class="text-2xl font-bold mt-1">3</h3> |
|
</div> |
|
<div class="bg-green-100 text-green-800 px-3 py-1 rounded-full text-sm font-medium flex items-center"> |
|
<i class="fas fa-arrow-down mr-1"></i> 2 |
|
</div> |
|
</div> |
|
<p class="text-xs text-gray-500 mt-2">from last week</p> |
|
</div> |
|
|
|
<div class="bg-white rounded-xl shadow p-6"> |
|
<div class="flex justify-between"> |
|
<div> |
|
<p class="text-sm font-medium text-gray-500">AI Predictions</p> |
|
<h3 class="text-2xl font-bold mt-1">94.7%</h3> |
|
</div> |
|
<div class="bg-green-100 text-green-800 px-3 py-1 rounded-full text-sm font-medium flex items-center"> |
|
<i class="fas fa-arrow-up mr-1"></i> 1.2% |
|
</div> |
|
</div> |
|
<p class="text-xs text-gray-500 mt-2">from last week</p> |
|
</div> |
|
|
|
<div class="bg-white rounded-xl shadow p-6"> |
|
<div class="flex justify-between"> |
|
<div> |
|
<p class="text-sm font-medium text-gray-500">Rescheduled Appointments</p> |
|
<h3 class="text-2xl font-bold mt-1">23</h3> |
|
</div> |
|
<div class="bg-green-100 text-green-800 px-3 py-1 rounded-full text-sm font-medium flex items-center"> |
|
<i class="fas fa-arrow-down mr-1"></i> 12 |
|
</div> |
|
</div> |
|
<p class="text-xs text-gray-500 mt-2">from last week</p> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6 mb-8"> |
|
<div class="bg-white rounded-xl shadow p-6"> |
|
<h3 class="font-bold text-gray-800 mb-4">Patient Flow Today</h3> |
|
<p class="text-sm text-gray-500 mb-4">Real-time admissions and discharges</p> |
|
<div class="h-64"> |
|
<canvas id="patientFlowChart"></canvas> |
|
</div> |
|
</div> |
|
|
|
<div class="bg-white rounded-xl shadow p-6"> |
|
<h3 class="font-bold text-gray-800 mb-4">Capacity Utilization</h3> |
|
<p class="text-sm text-gray-500 mb-4">Hospital capacity throughout the day</p> |
|
<div class="h-64"> |
|
<canvas id="capacityChart"></canvas> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="bg-white rounded-xl shadow overflow-hidden mb-8"> |
|
<div class="px-6 py-4 border-b border-gray-200"> |
|
<h3 class="font-bold text-gray-800">Real-time Alerts & Bottlenecks</h3> |
|
</div> |
|
<div class="divide-y divide-gray-200"> |
|
<div class="p-4 hover:bg-gray-50 transition-all"> |
|
<div class="flex items-start"> |
|
<div class="bg-red-100 p-2 rounded-full mr-4 mt-1"> |
|
<i class="fas fa-exclamation-circle text-red-600"></i> |
|
</div> |
|
<div class="flex-1"> |
|
<h4 class="font-medium">OR Suite 3 - Surgical Backlog</h4> |
|
<p class="text-sm text-gray-600">12 affected</p> |
|
<p class="text-sm mt-1">Expected 4-hour delay due to emergency surgery</p> |
|
<p class="text-xs text-gray-500 mt-1">5 minutes ago</p> |
|
</div> |
|
<button class="text-blue-600 hover:text-blue-800 text-sm font-medium"> |
|
View Details |
|
</button> |
|
</div> |
|
</div> |
|
|
|
<div class="p-4 hover:bg-gray-50 transition-all"> |
|
<div class="flex items-start"> |
|
<div class="bg-yellow-100 p-2 rounded-full mr-4 mt-1"> |
|
<i class="fas fa-user-md text-yellow-600"></i> |
|
</div> |
|
<div class="flex-1"> |
|
<h4 class="font-medium">Cardiology Clinic - Staff Shortage</h4> |
|
<p class="text-sm text-gray-600">18 affected</p> |
|
<p class="text-sm mt-1">Dr. Martinez called in sick, 18 appointments need rescheduling</p> |
|
<p class="text-xs text-gray-500 mt-1">12 minutes ago</p> |
|
</div> |
|
<button class="text-blue-600 hover:text-blue-800 text-sm font-medium"> |
|
View Details |
|
</button> |
|
</div> |
|
</div> |
|
|
|
<div class="p-4 hover:bg-gray-50 transition-all"> |
|
<div class="flex items-start"> |
|
<div class="bg-blue-100 p-2 rounded-full mr-4 mt-1"> |
|
<i class="fas fa-brain text-blue-600"></i> |
|
</div> |
|
<div class="flex-1"> |
|
<h4 class="font-medium">MRI Department - High Demand</h4> |
|
<p class="text-sm text-gray-600">7 affected</p> |
|
<p class="text-sm mt-1">AI recommends adding evening slots for next week</p> |
|
<p class="text-xs text-gray-500 mt-1">25 minutes ago</p> |
|
</div> |
|
<button class="text-blue-600 hover:text-blue-800 text-sm font-medium"> |
|
View Details |
|
</button> |
|
</div> |
|
</div> |
|
|
|
<div class="p-4 hover:bg-gray-50 transition-all"> |
|
<div class="flex items-start"> |
|
<div class="bg-red-100 p-2 rounded-full mr-4 mt-1"> |
|
<i class="fas fa-ambulance text-red-600"></i> |
|
</div> |
|
<div class="flex-1"> |
|
<h4 class="font-medium">Emergency Department - Capacity Alert</h4> |
|
<p class="text-sm text-gray-600">23 affected</p> |
|
<p class="text-sm mt-1">Approaching 95% capacity, consider patient redistribution</p> |
|
<p class="text-xs text-gray-500 mt-1">1 hour ago</p> |
|
</div> |
|
<button class="text-blue-600 hover:text-blue-800 text-sm font-medium"> |
|
View Details |
|
</button> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6"> |
|
<div class="bg-white rounded-xl shadow p-6"> |
|
<h3 class="font-bold text-gray-800 mb-4">AI Confidence Level</h3> |
|
<div class="flex items-center justify-center"> |
|
<div class="relative w-32 h-32"> |
|
<svg class="w-full h-full" viewBox="0 0 36 36"> |
|
<path |
|
d="M18 2.0845 |
|
a 15.9155 15.9155 0 0 1 0 31.831 |
|
a 15.9155 15.9155 0 0 1 0 -31.831" |
|
fill="none" |
|
stroke="#E5E7EB" |
|
stroke-width="3" |
|
/> |
|
<path |
|
d="M18 2.0845 |
|
a 15.9155 15.9155 0 0 1 0 31.831 |
|
a 15.9155 15.9155 0 0 1 0 -31.831" |
|
fill="none" |
|
stroke="#3B82F6" |
|
stroke-width="3" |
|
stroke-dasharray="94.7, 100" |
|
/> |
|
</svg> |
|
<div class="absolute inset-0 flex items-center justify-center"> |
|
<span class="text-3xl font-bold">94.7%</span> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
<div class="bg-white rounded-xl shadow p-6"> |
|
<h3 class="font-bold text-gray-800 mb-4">Quick Actions</h3> |
|
<div class="grid grid-cols-2 gap-3"> |
|
<button class="bg-blue-50 hover:bg-blue-100 text-blue-800 py-2 px-3 rounded-lg text-sm font-medium transition-all"> |
|
Schedule Emergency Surgery |
|
</button> |
|
<button class="bg-blue-50 hover:bg-blue-100 text-blue-800 py-2 px-3 rounded-lg text-sm font-medium transition-all"> |
|
Manage Staff Allocation |
|
</button> |
|
<button class="bg-blue-50 hover:bg-blue-100 text-blue-800 py-2 px-3 rounded-lg text-sm font-medium transition-all"> |
|
View Patient Queue |
|
</button> |
|
<button class="bg-blue-50 hover:bg-blue-100 text-blue-800 py-2 px-3 rounded-lg text-sm font-medium transition-all"> |
|
Generate Reports |
|
</button> |
|
</div> |
|
</div> |
|
|
|
<div class="bg-white rounded-xl shadow p-6"> |
|
<h3 class="font-bold text-gray-800 mb-4">System Status</h3> |
|
<div class="space-y-3"> |
|
<div class="flex items-center"> |
|
<div class="w-3 h-3 bg-green-500 rounded-full mr-2"></div> |
|
<span class="text-sm">API Status: Operational</span> |
|
</div> |
|
<div class="flex items-center"> |
|
<div class="w-3 h-3 bg-green-500 rounded-full mr-2"></div> |
|
<span class="text-sm">AI Models: Processing Data</span> |
|
</div> |
|
<div class="flex items-center"> |
|
<div class="w-3 h-3 bg-green-500 rounded-full mr-2"></div> |
|
<span class="text-sm">Database: Online</span> |
|
</div> |
|
<div class="flex items-center"> |
|
<div class="w-3 h-3 bg-green-500 rounded-full mr-2"></div> |
|
<span class="text-sm">Security: Active</span> |
|
</div> |
|
</div> |
|
|
|
<div class="mt-6"> |
|
<h4 class="font-medium text-sm text-gray-700 mb-2">Follow Up Deployment</h4> |
|
<div class="bg-gray-100 rounded-lg p-3"> |
|
<p class="text-sm">Next deployment scheduled for tonight at 2:00 AM</p> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
<script> |
|
|
|
function showPatientForm() { |
|
document.getElementById('patientCard').classList.add('hidden'); |
|
document.getElementById('hospitalCard').classList.add('hidden'); |
|
document.getElementById('patientForm').classList.remove('hidden'); |
|
} |
|
|
|
function hidePatientForm() { |
|
document.getElementById('patientForm').classList.add('hidden'); |
|
document.getElementById('patientCard').classList.remove('hidden'); |
|
document.getElementById('hospitalCard').classList.remove('hidden'); |
|
} |
|
|
|
|
|
function submitPatientForm() { |
|
|
|
|
|
document.getElementById('patientForm').classList.add('hidden'); |
|
document.getElementById('patientResults').classList.remove('hidden'); |
|
} |
|
|
|
function hidePatientResults() { |
|
document.getElementById('patientResults').classList.add('hidden'); |
|
document.getElementById('patientCard').classList.remove('hidden'); |
|
document.getElementById('hospitalCard').classList.remove('hidden'); |
|
} |
|
|
|
function confirmAppointment() { |
|
alert('Your appointment choice has been confirmed!'); |
|
hidePatientResults(); |
|
} |
|
|
|
|
|
function showHospitalLogin() { |
|
document.getElementById('patientCard').classList.add('hidden'); |
|
document.getElementById('hospitalCard').classList.add('hidden'); |
|
document.getElementById('hospitalLogin').classList.remove('hidden'); |
|
} |
|
|
|
function hideHospitalLogin() { |
|
document.getElementById('hospitalLogin').classList.add('hidden'); |
|
document.getElementById('patientCard').classList.remove('hidden'); |
|
document.getElementById('hospitalCard').classList.remove('hidden'); |
|
} |
|
|
|
|
|
function loginAsDoctor() { |
|
const username = document.getElementById('username').value; |
|
const password = document.getElementById('password').value; |
|
|
|
|
|
if (username === 'doctor' && password === 'timotee') { |
|
document.getElementById('hospitalLogin').classList.add('hidden'); |
|
document.getElementById('hospitalDashboard').classList.remove('hidden'); |
|
} else { |
|
alert('Invalid credentials. For this demo, use username: doctor, password: timotee'); |
|
} |
|
} |
|
|
|
|
|
function loginAsDoctor() { |
|
const username = document.getElementById('username').value; |
|
const password = document.getElementById('password').value; |
|
|
|
|
|
if (username === 'doctor' && password === 'timotee') { |
|
document.getElementById('hospitalLogin').classList.add('hidden'); |
|
document.getElementById('hospitalDashboard').classList.remove('hidden'); |
|
|
|
|
|
const patientFlowCtx = document.getElementById('patientFlowChart').getContext('2d'); |
|
new Chart(patientFlowCtx, { |
|
type: 'line', |
|
data: { |
|
labels: ['6 AM', '8 AM', '10 AM', '12 PM', '2 PM', '4 PM', '6 PM', '8 PM'], |
|
datasets: [{ |
|
label: 'Admissions', |
|
data: [12, 19, 28, 42, 36, 29, 18, 8], |
|
borderColor: '#3B82F6', |
|
backgroundColor: 'rgba(59, 130, 246, 0.1)', |
|
tension: 0.3, |
|
fill: true |
|
}, { |
|
label: 'Discharges', |
|
data: [5, 12, 18, 24, 32, 28, 22, 15], |
|
borderColor: '#10B981', |
|
backgroundColor: 'rgba(16, 185, 129, 0.1)', |
|
tension: 0.3, |
|
fill: true |
|
}] |
|
}, |
|
options: { |
|
responsive: true, |
|
maintainAspectRatio: false, |
|
scales: { |
|
y: { |
|
beginAtZero: true |
|
} |
|
} |
|
} |
|
}); |
|
|
|
|
|
const capacityCtx = document.getElementById('capacityChart').getContext('2d'); |
|
new Chart(capacityCtx, { |
|
type: 'bar', |
|
data: { |
|
labels: ['ER', 'ICU', 'Ward A', 'Ward B', 'OR', 'Clinic'], |
|
datasets: [{ |
|
label: 'Capacity Utilization (%)', |
|
data: [92, 85, 78, 65, 88, 72], |
|
backgroundColor: [ |
|
'rgba(239, 68, 68, 0.7)', |
|
'rgba(249, 115, 22, 0.7)', |
|
'rgba(234, 179, 8, 0.7)', |
|
'rgba(16, 185, 129, 0.7)', |
|
'rgba(59, 130, 246, 0.7)', |
|
'rgba(139, 92, 246, 0.7)' |
|
], |
|
borderColor: [ |
|
'rgba(239, 68, 68, 1)', |
|
'rgba(249, 115, 22, 1)', |
|
'rgba(234, 179, 8, 1)', |
|
'rgba(16, 185, 129, 1)', |
|
'rgba(59, 130, 246, 1)', |
|
'rgba(139, 92, 246, 1)' |
|
], |
|
borderWidth: 1 |
|
}] |
|
}, |
|
options: { |
|
responsive: true, |
|
maintainAspectRatio: false, |
|
scales: { |
|
y: { |
|
beginAtZero: true, |
|
max: 100 |
|
} |
|
} |
|
} |
|
}); |
|
} else { |
|
alert('Invalid credentials. For this demo, use username: doctor, password: timotee'); |
|
} |
|
} |
|
</script> |
|
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=dcrey7/medflowai" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> |
|
</html> |