Compare commits
2 Commits
5f59695122
...
96080b81a2
| Author | SHA1 | Date |
|---|---|---|
|
|
96080b81a2 | |
|
|
d26e340bd7 |
116
dashboard.css
116
dashboard.css
|
|
@ -635,16 +635,124 @@
|
||||||
border-left: 4px solid var(--secondary);
|
border-left: 4px solid var(--secondary);
|
||||||
}
|
}
|
||||||
|
|
||||||
.p-token {
|
.zen-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr 350px;
|
||||||
|
gap: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clinical-notes-card {
|
||||||
|
background: white;
|
||||||
|
border-radius: 24px;
|
||||||
|
box-shadow: 0 4px 20px rgba(0,0,0,0.05);
|
||||||
|
border: 1px solid #f1f5f9;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.zen-textarea {
|
||||||
|
width: 100%;
|
||||||
|
height: 600px;
|
||||||
|
padding: 2rem;
|
||||||
|
border: none;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
line-height: 1.6;
|
||||||
|
resize: none;
|
||||||
|
color: var(--primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.zen-textarea:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.zen-sidebar {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.insight-card, .ai-nudge-box {
|
||||||
|
background: white;
|
||||||
|
border-radius: 20px;
|
||||||
|
padding: 1.5rem;
|
||||||
|
box-shadow: 0 4px 20px rgba(0,0,0,0.05);
|
||||||
|
border: 1px solid #f1f5f9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vitals-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(3, 1fr);
|
||||||
|
gap: 1rem;
|
||||||
|
margin-top: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vital-item {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0.75rem;
|
||||||
|
background: #f8fafc;
|
||||||
|
border-radius: 12px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vital-item.warning {
|
||||||
|
background: #fef2f2;
|
||||||
|
border: 1px solid #fee2e2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vital-item.warning .value {
|
||||||
|
color: #ef4444;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vital-item .label {
|
||||||
|
font-size: 0.7rem;
|
||||||
|
color: #64748b;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.05em;
|
||||||
|
margin-bottom: 0.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vital-item .value {
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: var(--primary);
|
color: var(--primary);
|
||||||
background: white;
|
font-size: 1rem;
|
||||||
padding: 0.4rem 0.6rem;
|
}
|
||||||
|
|
||||||
|
.allergy-tag {
|
||||||
|
margin-top: 1rem;
|
||||||
|
padding: 0.5rem 1rem;
|
||||||
|
background: #fff1f2;
|
||||||
|
color: #e11d48;
|
||||||
|
border-radius: 10px;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
font-weight: 600;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ai-nudge-box p {
|
||||||
|
font-size: 0.95rem;
|
||||||
|
color: #475569;
|
||||||
|
margin: 1rem 0;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.suggested-tags {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.suggested-tags span {
|
||||||
|
padding: 0.25rem 0.75rem;
|
||||||
|
background: #f0f9ff;
|
||||||
|
color: #0369a1;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
font-size: 0.8rem;
|
font-size: 0.8rem;
|
||||||
box-shadow: 0 2px 4px rgba(0,0,0,0.05);
|
font-weight: 500;
|
||||||
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.zen-workspace {
|
.zen-workspace {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,6 @@
|
||||||
<div class="zen-grid">
|
<div class="zen-grid">
|
||||||
<div class="clinical-workspace-area">
|
<div class="clinical-workspace-area">
|
||||||
<div class="clinical-notes-card">
|
<div class="clinical-notes-card">
|
||||||
<div class="card-header">Consultation Notes</div>
|
|
||||||
<textarea id="consultationNotes" placeholder="Start typing or use Voice AI..." class="zen-textarea"></textarea>
|
<textarea id="consultationNotes" placeholder="Start typing or use Voice AI..." class="zen-textarea"></textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -120,10 +119,34 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="quick-links">
|
<div class="zen-sidebar">
|
||||||
<div class="card-header">Quick References</div>
|
<div class="insight-card">
|
||||||
<button class="btn-small secondary">Diabetes Guidelines</button>
|
<div class="card-header">🩺 Patient Insights</div>
|
||||||
<button class="btn-small secondary">Drug Interaction Checker</button>
|
<div class="vitals-grid">
|
||||||
|
<div class="vital-item">
|
||||||
|
<span class="label">Temp</span>
|
||||||
|
<span class="value">98.6°F</span>
|
||||||
|
</div>
|
||||||
|
<div class="vital-item warning">
|
||||||
|
<span class="label">BP</span>
|
||||||
|
<span class="value">140/90</span>
|
||||||
|
</div>
|
||||||
|
<div class="vital-item">
|
||||||
|
<span class="label">SpO2</span>
|
||||||
|
<span class="value">98%</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="allergy-tag">⚠️ Peanuts Allergy</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="ai-nudge-box">
|
||||||
|
<div class="card-header">✨ AI Assistant</div>
|
||||||
|
<p id="aiNudgeText">Listening for diagnosis...</p>
|
||||||
|
<div class="suggested-tags">
|
||||||
|
<span>#ViralFever</span>
|
||||||
|
<span>#FluProtocols</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
@ -397,6 +420,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="dashboard.js?v=12"></script>
|
<script src="dashboard.js?v=13"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
26
dashboard.js
26
dashboard.js
|
|
@ -44,11 +44,37 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||||
link.style.display = 'none';
|
link.style.display = 'none';
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Hide Admin Top Bar elements
|
||||||
|
const adminElements = ['.search-box', '.top-actions', '.btn-primary'];
|
||||||
|
adminElements.forEach(selector => {
|
||||||
|
const el = document.querySelector(selector);
|
||||||
|
if (el && !el.closest('.workspace-actions')) el.style.display = 'none';
|
||||||
|
});
|
||||||
|
|
||||||
showSection('zen');
|
showSection('zen');
|
||||||
} else {
|
} else {
|
||||||
showSection('overview');
|
showSection('overview');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AI Nudge Simulation Logic
|
||||||
|
const notesArea = document.getElementById("consultationNotes");
|
||||||
|
const nudgeText = document.getElementById("aiNudgeText");
|
||||||
|
const tagsContainer = document.querySelector(".suggested-tags");
|
||||||
|
|
||||||
|
if (notesArea) {
|
||||||
|
notesArea.addEventListener("input", (e) => {
|
||||||
|
const val = e.target.value.toLowerCase();
|
||||||
|
if (val.includes("fever") || val.includes("temperature")) {
|
||||||
|
nudgeText.innerText = "✨ AI suggests: Patient has elevated temp. Consider prescribing Paracetamol and checking for throat infection.";
|
||||||
|
tagsContainer.innerHTML = '<span>#ViralFever</span><span>#InfectionCheck</span>';
|
||||||
|
} else if (val.includes("cough") || val.includes("breath")) {
|
||||||
|
nudgeText.innerText = "✨ AI suggests: Respiratory symptoms detected. Check SpO2 and listen for chest congestion.";
|
||||||
|
tagsContainer.innerHTML = '<span>#AsthmaProtocol</span><span>#Bronchitis</span>';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Initialize Recognition
|
// Initialize Recognition
|
||||||
if ('webkitSpeechRecognition' in window) {
|
if ('webkitSpeechRecognition' in window) {
|
||||||
recognition = new webkitSpeechRecognition();
|
recognition = new webkitSpeechRecognition();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue