Spaces:
Running
Running
Sami
commited on
Commit
·
872dce5
1
Parent(s):
477c9c3
Revamp index.html with enhanced styling and new features. Added a personal brand section, improved card designs, and implemented smooth scrolling for navigation. Updated footer with project links and contact information. Enhanced loading indicators and mobile responsiveness for better user experience.
Browse files
README.md
CHANGED
@@ -1,34 +1,43 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
│ ├── nhs-detailed-proposal.html
|
14 |
-
│ └── nhs-formal-proposal.html
|
15 |
-
├── docs/ # Documentation
|
16 |
-
│ ├── spanish-hospital-context.txt
|
17 |
-
│ ├── requirements-conversation.txt
|
18 |
-
│ └── requirements-conversation.py
|
19 |
-
└── assets/ # Static assets (images, etc.)
|
20 |
-
```
|
21 |
|
22 |
## Features
|
23 |
|
24 |
-
-
|
|
|
|
|
|
|
25 |
- Responsive design with Tailwind CSS
|
26 |
-
- Interactive language switching
|
27 |
-
- Search functionality
|
28 |
-
- Modern UI with hover effects and animations
|
29 |
|
30 |
-
##
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
32 |
-
1. Clone the repository
|
33 |
-
2. Open index.html in a modern web browser
|
34 |
-
3. No build process required - uses CDN for dependencies
|
|
|
1 |
+
---
|
2 |
+
title: AutoMedical AI Demo
|
3 |
+
emoji: 🏥
|
4 |
+
colorFrom: blue
|
5 |
+
colorTo: green
|
6 |
+
sdk: static
|
7 |
+
pinned: false
|
8 |
+
---
|
9 |
+
|
10 |
+
# AutoMedical AI Demo
|
11 |
+
|
12 |
+
A static demo showcasing AI-powered medical analysis capabilities with an elegant UI.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
|
14 |
## Features
|
15 |
|
16 |
+
- Medical image analysis and diagnosis assistance
|
17 |
+
- Confidence scoring visualization
|
18 |
+
- Interactive charts and data visualization
|
19 |
+
- Toast notifications for user feedback
|
20 |
- Responsive design with Tailwind CSS
|
|
|
|
|
|
|
21 |
|
22 |
+
## Usage
|
23 |
+
|
24 |
+
Simply open the `automedicalai.html` file in your browser to use the demo. No server setup required.
|
25 |
+
|
26 |
+
## UI Components
|
27 |
+
|
28 |
+
- AI confidence indicators with gradient visualization
|
29 |
+
- Enhanced charts with hover overlays
|
30 |
+
- Toast notifications for success/error states
|
31 |
+
- Clean, medical-themed interface
|
32 |
+
|
33 |
+
## Development
|
34 |
+
|
35 |
+
Built using:
|
36 |
+
- HTML/CSS/JavaScript
|
37 |
+
- Tailwind CSS for styling
|
38 |
+
- Chart.js for data visualization
|
39 |
+
|
40 |
+
## License
|
41 |
+
|
42 |
+
MIT License
|
43 |
|
|
|
|
|
|
automedical-demo-1/Screenshot 2025-01-17 at 14.08.24.png
ADDED
automedical-demo-1/automedicalai copy.html
ADDED
@@ -0,0 +1,1245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="es" class="dark">
|
3 |
+
<head>
|
4 |
+
<meta charset="UTF-8">
|
5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 |
+
<title>AutomedicalAI | Advanced Medical Reports</title>
|
7 |
+
|
8 |
+
<!-- Enhanced UI Libraries -->
|
9 |
+
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/tailwind.min.css" rel="stylesheet">
|
10 |
+
<link href="https://cdn.jsdelivr.net/npm/@tailwindcss/[email protected]/dist/typography.min.css" rel="stylesheet">
|
11 |
+
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/full.css" rel="stylesheet">
|
12 |
+
<link href="https://unpkg.com/[email protected]/dist/aos.css" rel="stylesheet">
|
13 |
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css">
|
14 |
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css">
|
15 |
+
|
16 |
+
<style>
|
17 |
+
:root {
|
18 |
+
--primary-gradient: linear-gradient(135deg, #2563eb, #7c3aed);
|
19 |
+
--surface-gradient: linear-gradient(135deg, #1e293b, #0f172a);
|
20 |
+
--accent-gradient: linear-gradient(135deg, #3b82f6, #8b5cf6);
|
21 |
+
--glass-bg: rgba(30, 41, 59, 0.7);
|
22 |
+
}
|
23 |
+
|
24 |
+
body {
|
25 |
+
background: linear-gradient(135deg, #0f172a, #1e293b);
|
26 |
+
background-attachment: fixed;
|
27 |
+
min-height: 100vh;
|
28 |
+
}
|
29 |
+
|
30 |
+
/* Modern Glass Morphism */
|
31 |
+
.glass-panel {
|
32 |
+
@apply backdrop-blur-xl bg-white/5 border border-white/10
|
33 |
+
shadow-2xl rounded-3xl transition-all duration-500;
|
34 |
+
}
|
35 |
+
|
36 |
+
.glass-panel:hover {
|
37 |
+
@apply border-white/20 shadow-blue-500/10;
|
38 |
+
backdrop-filter: blur(20px);
|
39 |
+
}
|
40 |
+
|
41 |
+
/* AI Visual Elements */
|
42 |
+
.ai-particles {
|
43 |
+
position: fixed;
|
44 |
+
inset: 0;
|
45 |
+
z-index: -1;
|
46 |
+
opacity: 0.4;
|
47 |
+
pointer-events: none;
|
48 |
+
background-image:
|
49 |
+
radial-gradient(circle at 20% 30%, rgba(59, 130, 246, 0.1) 0%, transparent 50%),
|
50 |
+
radial-gradient(circle at 80% 70%, rgba(124, 58, 237, 0.1) 0%, transparent 50%);
|
51 |
+
}
|
52 |
+
|
53 |
+
.neural-grid {
|
54 |
+
background-image:
|
55 |
+
linear-gradient(rgba(59, 130, 246, 0.1) 1px, transparent 1px),
|
56 |
+
linear-gradient(90deg, rgba(59, 130, 246, 0.1) 1px, transparent 1px);
|
57 |
+
background-size: 30px 30px;
|
58 |
+
position: fixed;
|
59 |
+
inset: 0;
|
60 |
+
z-index: -1;
|
61 |
+
opacity: 0.2;
|
62 |
+
pointer-events: none;
|
63 |
+
}
|
64 |
+
|
65 |
+
/* Enhanced Form Elements */
|
66 |
+
.ai-input {
|
67 |
+
@apply w-full px-6 py-4 bg-white/5 border border-white/10
|
68 |
+
rounded-2xl text-white placeholder-white/50
|
69 |
+
focus:ring-2 focus:ring-blue-500/50 focus:border-transparent
|
70 |
+
transition-all duration-300;
|
71 |
+
backdrop-filter: blur(10px);
|
72 |
+
}
|
73 |
+
|
74 |
+
.ai-input:hover {
|
75 |
+
@apply border-white/20 bg-white/10;
|
76 |
+
}
|
77 |
+
|
78 |
+
/* AI Action Buttons */
|
79 |
+
.ai-button {
|
80 |
+
@apply relative overflow-hidden px-8 py-4 rounded-2xl
|
81 |
+
text-white font-medium transition-all duration-500
|
82 |
+
flex items-center gap-3 group;
|
83 |
+
background: var(--primary-gradient);
|
84 |
+
}
|
85 |
+
|
86 |
+
.ai-button::before {
|
87 |
+
content: '';
|
88 |
+
@apply absolute inset-0 opacity-0 transition-opacity duration-500;
|
89 |
+
background: var(--accent-gradient);
|
90 |
+
}
|
91 |
+
|
92 |
+
.ai-button:hover::before {
|
93 |
+
@apply opacity-100;
|
94 |
+
}
|
95 |
+
|
96 |
+
/* AI Dashboard Cards */
|
97 |
+
.ai-card {
|
98 |
+
@apply relative p-6 rounded-3xl transition-all duration-500
|
99 |
+
hover:transform hover:scale-102 cursor-pointer;
|
100 |
+
background: var(--glass-bg);
|
101 |
+
backdrop-filter: blur(10px);
|
102 |
+
}
|
103 |
+
|
104 |
+
.ai-card::before {
|
105 |
+
content: '';
|
106 |
+
@apply absolute inset-0 rounded-3xl opacity-0 transition-opacity duration-500;
|
107 |
+
background: var(--accent-gradient);
|
108 |
+
z-index: -1;
|
109 |
+
}
|
110 |
+
|
111 |
+
.ai-card:hover::before {
|
112 |
+
@apply opacity-20;
|
113 |
+
}
|
114 |
+
|
115 |
+
/* AI Stats Display */
|
116 |
+
.ai-stat {
|
117 |
+
@apply flex flex-col items-center p-4 rounded-2xl bg-white/5
|
118 |
+
backdrop-blur-lg border border-white/10;
|
119 |
+
}
|
120 |
+
|
121 |
+
.ai-stat-value {
|
122 |
+
@apply text-3xl font-bold bg-clip-text text-transparent;
|
123 |
+
background: var(--primary-gradient);
|
124 |
+
}
|
125 |
+
|
126 |
+
/* AI Analysis Section */
|
127 |
+
.analysis-grid {
|
128 |
+
@apply grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6;
|
129 |
+
}
|
130 |
+
|
131 |
+
.analysis-card {
|
132 |
+
@apply p-6 rounded-3xl transition-all duration-500;
|
133 |
+
background: var(--glass-bg);
|
134 |
+
}
|
135 |
+
|
136 |
+
/* AI Visualization Components */
|
137 |
+
.ai-chart {
|
138 |
+
@apply rounded-2xl overflow-hidden bg-white/5 p-4;
|
139 |
+
height: 200px;
|
140 |
+
}
|
141 |
+
|
142 |
+
/* AI Report Comparison */
|
143 |
+
.report-comparison {
|
144 |
+
@apply grid grid-cols-2 gap-4 p-4 rounded-2xl bg-white/5;
|
145 |
+
}
|
146 |
+
|
147 |
+
.comparison-item {
|
148 |
+
@apply p-4 rounded-xl bg-white/5 border border-white/10;
|
149 |
+
}
|
150 |
+
|
151 |
+
/* Cost Analysis Section */
|
152 |
+
.cost-analysis {
|
153 |
+
@apply grid grid-cols-1 md:grid-cols-3 gap-4 mb-8;
|
154 |
+
}
|
155 |
+
|
156 |
+
.cost-card {
|
157 |
+
@apply p-6 rounded-2xl bg-white/5 border border-white/10;
|
158 |
+
}
|
159 |
+
|
160 |
+
.cost-trend {
|
161 |
+
@apply flex items-center gap-2 text-sm;
|
162 |
+
}
|
163 |
+
|
164 |
+
.trend-up { @apply text-green-400; }
|
165 |
+
.trend-down { @apply text-red-400; }
|
166 |
+
</style>
|
167 |
+
</head>
|
168 |
+
<body class="min-h-screen bg-gradient-to-br from-gray-900 to-black text-white" data-language="es">
|
169 |
+
<!-- Navigation Bar -->
|
170 |
+
<nav class="sticky top-0 z-50 backdrop-blur-lg border-b border-white/10 px-6 py-4">
|
171 |
+
<div class="container mx-auto flex justify-between items-center">
|
172 |
+
<div class="flex items-center gap-2">
|
173 |
+
<img src="https://ern-euro-nmd.eu/wp-content/uploads/2024/02/logo_12-de-octubre.jpeg"
|
174 |
+
alt="Hospital Logo" class="h-8 w-auto">
|
175 |
+
<h1 class="text-2xl font-bold bg-gradient-to-r from-blue-400 to-purple-500 bg-clip-text text-transparent">
|
176 |
+
AutomedicalAI
|
177 |
+
</h1>
|
178 |
+
</div>
|
179 |
+
<button onclick="toggleLanguage()"
|
180 |
+
class="px-4 py-2 rounded-full border border-blue-500 text-blue-400
|
181 |
+
hover:bg-blue-500 hover:text-white transition-all duration-300">
|
182 |
+
<span lang="es">EN</span>
|
183 |
+
<span lang="en">ES</span>
|
184 |
+
</button>
|
185 |
+
</div>
|
186 |
+
</nav>
|
187 |
+
|
188 |
+
<main class="container mx-auto px-4 py-8">
|
189 |
+
<!-- AI Stats Overview -->
|
190 |
+
<div class="grid grid-cols-1 md:grid-cols-4 gap-6 mb-8">
|
191 |
+
<div class="ai-stat">
|
192 |
+
<span class="ai-stat-value">2,847</span>
|
193 |
+
<span class="text-sm text-white/70">Informes Generados</span>
|
194 |
+
</div>
|
195 |
+
<div class="ai-stat">
|
196 |
+
<span class="ai-stat-value">94%</span>
|
197 |
+
<span class="text-sm text-white/70">Precisión IA</span>
|
198 |
+
</div>
|
199 |
+
<div class="ai-stat">
|
200 |
+
<span class="ai-stat-value">-32%</span>
|
201 |
+
<span class="text-sm text-white/70">Reducción de Costes</span>
|
202 |
+
</div>
|
203 |
+
<div class="ai-stat">
|
204 |
+
<span class="ai-stat-value">+45%</span>
|
205 |
+
<span class="text-sm text-white/70">Eficiencia</span>
|
206 |
+
</div>
|
207 |
+
</div>
|
208 |
+
|
209 |
+
<!-- Enhanced Patient Form -->
|
210 |
+
<div class="glass-panel p-8 mb-12">
|
211 |
+
<h2 class="section-title">
|
212 |
+
<span lang="es">Información del Paciente</span>
|
213 |
+
<span lang="en">Patient Information</span>
|
214 |
+
</h2>
|
215 |
+
<form id="patientForm" class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
216 |
+
<div class="space-y-2">
|
217 |
+
<label class="text-sm text-gray-300">
|
218 |
+
<span lang="es">Nombre del Paciente</span>
|
219 |
+
<span lang="en">Patient Name</span>
|
220 |
+
</label>
|
221 |
+
<input type="text" id="patientName" class="ai-input" required>
|
222 |
+
</div>
|
223 |
+
|
224 |
+
<div class="space-y-2">
|
225 |
+
<label class="text-sm text-gray-300">
|
226 |
+
<span lang="es">Edad</span>
|
227 |
+
<span lang="en">Age</span>
|
228 |
+
</label>
|
229 |
+
<input type="number" id="patientAge" class="ai-input" required>
|
230 |
+
</div>
|
231 |
+
|
232 |
+
<div class="space-y-2">
|
233 |
+
<label class="text-sm text-gray-300">
|
234 |
+
<span lang="es">Diagnóstico</span>
|
235 |
+
<span lang="en">Diagnosis</span>
|
236 |
+
</label>
|
237 |
+
<select id="diagnosis" class="ai-input" required>
|
238 |
+
<option value="" disabled selected>
|
239 |
+
<span lang="es">Seleccionar Diagnóstico</span>
|
240 |
+
<span lang="en">Select Diagnosis</span>
|
241 |
+
</option>
|
242 |
+
<option value="glaucoma">Glaucoma</option>
|
243 |
+
<option value="diabetic_retinopathy">
|
244 |
+
<span lang="es">Retinopatía Diabética</span>
|
245 |
+
<span lang="en">Diabetic Retinopathy</span>
|
246 |
+
</option>
|
247 |
+
<option value="amd">
|
248 |
+
<span lang="es">DMAE</span>
|
249 |
+
<span lang="en">AMD</span>
|
250 |
+
</option>
|
251 |
+
</select>
|
252 |
+
</div>
|
253 |
+
|
254 |
+
<div class="col-span-full">
|
255 |
+
<button type="submit" class="ai-button group">
|
256 |
+
<i class="fas fa-file-medical text-xl group-hover:scale-110 transition-transform"></i>
|
257 |
+
<span class="inline-block ml-2">
|
258 |
+
<span lang="es">Generar Informe</span>
|
259 |
+
<span lang="en">Generate Report</span>
|
260 |
+
</span>
|
261 |
+
<div class="absolute inset-0 bg-gradient-to-r from-blue-600/20 to-purple-600/20
|
262 |
+
group-hover:opacity-100 opacity-0 transition-opacity"></div>
|
263 |
+
</button>
|
264 |
+
</div>
|
265 |
+
</form>
|
266 |
+
</div>
|
267 |
+
|
268 |
+
<!-- AI Analysis Grid -->
|
269 |
+
<div class="analysis-grid mb-12">
|
270 |
+
<div class="analysis-card">
|
271 |
+
<h3 class="text-xl font-semibold mb-4">Análisis Histórico</h3>
|
272 |
+
<div class="ai-chart">
|
273 |
+
<!-- Add Chart.js visualization here -->
|
274 |
+
</div>
|
275 |
+
</div>
|
276 |
+
|
277 |
+
<div class="analysis-card">
|
278 |
+
<h3 class="text-xl font-semibold mb-4">Comparativa de Costes</h3>
|
279 |
+
<div class="cost-analysis">
|
280 |
+
<div class="cost-card">
|
281 |
+
<h4 class="text-lg mb-2">Antes de IA</h4>
|
282 |
+
<p class="text-2xl font-bold">€245.00</p>
|
283 |
+
<div class="cost-trend">
|
284 |
+
<i class="fas fa-arrow-down text-red-400"></i>
|
285 |
+
<span>Por informe</span>
|
286 |
+
</div>
|
287 |
+
</div>
|
288 |
+
<div class="cost-card">
|
289 |
+
<h4 class="text-lg mb-2">Con IA</h4>
|
290 |
+
<p class="text-2xl font-bold">€82.00</p>
|
291 |
+
<div class="cost-trend">
|
292 |
+
<i class="fas fa-arrow-up text-green-400"></i>
|
293 |
+
<span>Ahorro 67%</span>
|
294 |
+
</div>
|
295 |
+
</div>
|
296 |
+
</div>
|
297 |
+
</div>
|
298 |
+
|
299 |
+
<div class="analysis-card">
|
300 |
+
<h3 class="text-xl font-semibold mb-4">Eficiencia Temporal</h3>
|
301 |
+
<div class="ai-chart">
|
302 |
+
<!-- Add Chart.js visualization here -->
|
303 |
+
</div>
|
304 |
+
</div>
|
305 |
+
</div>
|
306 |
+
|
307 |
+
<!-- Report Comparison Section -->
|
308 |
+
<div class="glass-panel p-8 mb-12">
|
309 |
+
<h3 class="text-2xl font-semibold mb-6">Comparativa de Informes</h3>
|
310 |
+
<div class="report-comparison">
|
311 |
+
<div class="comparison-item">
|
312 |
+
<h4 class="text-lg mb-2">Informe Anterior</h4>
|
313 |
+
<!-- Add comparison content -->
|
314 |
+
</div>
|
315 |
+
<div class="comparison-item">
|
316 |
+
<h4 class="text-lg mb-2">Informe Actual</h4>
|
317 |
+
<!-- Add comparison content -->
|
318 |
+
</div>
|
319 |
+
</div>
|
320 |
+
</div>
|
321 |
+
|
322 |
+
<!-- Report Types Grid with enhanced styling -->
|
323 |
+
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
324 |
+
<button class="ai-card" onclick="showReport('glaucomaReport')">
|
325 |
+
<div class="flex flex-col items-center">
|
326 |
+
<i class="fas fa-eye text-blue-400"></i>
|
327 |
+
<span lang="es">Informe de Glaucoma</span>
|
328 |
+
<span lang="en">Glaucoma Report</span>
|
329 |
+
</div>
|
330 |
+
</button>
|
331 |
+
|
332 |
+
<button class="ai-card" onclick="showReport('diabeticRetinopathyReport')">
|
333 |
+
<div class="flex flex-col items-center">
|
334 |
+
<i class="fas fa-syringe text-green-400"></i>
|
335 |
+
<span lang="es">Retinopatía Diabética</span>
|
336 |
+
<span lang="en">Diabetic Retinopathy</span>
|
337 |
+
</div>
|
338 |
+
</button>
|
339 |
+
|
340 |
+
<button class="ai-card" onclick="showReport('amdReport')">
|
341 |
+
<div class="flex flex-col items-center">
|
342 |
+
<i class="fas fa-eye-slash text-yellow-400"></i>
|
343 |
+
<span lang="es">Informe de DMAE</span>
|
344 |
+
<span lang="en">AMD Report</span>
|
345 |
+
</div>
|
346 |
+
</button>
|
347 |
+
|
348 |
+
<button class="ai-card" onclick="showReport('treatmentPlan')">
|
349 |
+
<div class="flex flex-col items-center">
|
350 |
+
<i class="fas fa-notes-medical text-cyan-400"></i>
|
351 |
+
<span lang="es">Plan de Tratamiento</span>
|
352 |
+
<span lang="en">Treatment Plan</span>
|
353 |
+
</div>
|
354 |
+
</button>
|
355 |
+
|
356 |
+
<button class="ai-card" onclick="showReport('followUpReport')">
|
357 |
+
<div class="flex flex-col items-center">
|
358 |
+
<i class="fas fa-calendar-check text-red-400"></i>
|
359 |
+
<span lang="es">Informe de Seguimiento</span>
|
360 |
+
<span lang="en">Follow-up Report</span>
|
361 |
+
</div>
|
362 |
+
</button>
|
363 |
+
|
364 |
+
<button class="ai-card" onclick="showReport('generalSummaryReport')">
|
365 |
+
<div class="flex flex-col items-center">
|
366 |
+
<i class="fas fa-file-medical-alt text-purple-400"></i>
|
367 |
+
<span lang="es">Resumen General</span>
|
368 |
+
<span lang="en">General Summary</span>
|
369 |
+
</div>
|
370 |
+
</button>
|
371 |
+
</div>
|
372 |
+
</main>
|
373 |
+
|
374 |
+
<!-- Enhanced Report Viewer -->
|
375 |
+
<div class="report-viewer fixed inset-0 hidden" id="reportViewer">
|
376 |
+
<div class="absolute inset-0 flex items-center justify-center p-8">
|
377 |
+
<div class="report-content w-full max-w-4xl p-8">
|
378 |
+
<div id="reportContent" class="prose prose-invert"></div>
|
379 |
+
</div>
|
380 |
+
</div>
|
381 |
+
<button class="absolute top-4 right-4 text-4xl text-white hover:text-gray-300 transition-colors"
|
382 |
+
onclick="closeReport()">
|
383 |
+
<i class="fas fa-times"></i>
|
384 |
+
</button>
|
385 |
+
</div>
|
386 |
+
|
387 |
+
<!-- Floating Action Button -->
|
388 |
+
<div class="floating-action">
|
389 |
+
<button class="btn btn-circle btn-lg btn-primary" onclick="toggleHelp()">
|
390 |
+
<i class="fas fa-question-circle text-2xl"></i>
|
391 |
+
</button>
|
392 |
+
</div>
|
393 |
+
|
394 |
+
<!-- Scripts -->
|
395 |
+
<script src="https://unpkg.com/[email protected]/dist/aos.js"></script>
|
396 |
+
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
397 |
+
<script>
|
398 |
+
// Initialize animations
|
399 |
+
AOS.init();
|
400 |
+
|
401 |
+
// Report templates with complete content
|
402 |
+
const reports = {
|
403 |
+
glaucomaReport: {
|
404 |
+
es: `
|
405 |
+
<div class="report-document">
|
406 |
+
<div class="report-header border-b-2 border-gray-200 mb-6 pb-4">
|
407 |
+
<img src="https://ern-euro-nmd.eu/wp-content/uploads/2024/02/logo_12-de-octubre.jpeg"
|
408 |
+
alt="Hospital 12 de Octubre" class="hospital-logo mb-4">
|
409 |
+
<h1 class="text-2xl font-bold text-gray-800 dark:text-gray-100">Informe Oftalmológico: Glaucoma</h1>
|
410 |
+
<div class="text-sm text-gray-600 dark:text-gray-400 mt-2">
|
411 |
+
<p>Fecha: ${new Date().toLocaleDateString()}</p>
|
412 |
+
<p>Ref: GLM-${Math.random().toString(36).substr(2, 9)}</p>
|
413 |
+
</div>
|
414 |
+
</div>
|
415 |
+
|
416 |
+
<div class="patient-info mb-6">
|
417 |
+
<h2 class="text-lg font-semibold mb-2">Información del Paciente</h2>
|
418 |
+
<p><strong>Nombre:</strong> <span id="patientNameDisplay"></span></p>
|
419 |
+
<p><strong>Edad:</strong> <span id="patientAgeDisplay"></span> años</p>
|
420 |
+
<p><strong>Nº Historia Clínica:</strong> HC-${Math.random().toString().slice(2,11)}</p>
|
421 |
+
</div>
|
422 |
+
|
423 |
+
<div class="clinical-findings mb-6">
|
424 |
+
<h2 class="text-lg font-semibold mb-2">Hallazgos Clínicos</h2>
|
425 |
+
<h3 class="font-medium mb-2">Presión Intraocular (PIO)</h3>
|
426 |
+
<ul class="list-disc pl-5 mb-4">
|
427 |
+
<li>OD: 24 mmHg</li>
|
428 |
+
<li>OI: 26 mmHg</li>
|
429 |
+
</ul>
|
430 |
+
|
431 |
+
<h3 class="font-medium mb-2">Tomografía de Coherencia Óptica (OCT)</h3>
|
432 |
+
<ul class="list-disc pl-5 mb-4">
|
433 |
+
<li>Adelgazamiento severo del RNFL inferior en OD (52μm)</li>
|
434 |
+
<li>Adelgazamiento moderado del RNFL inferior en OI (65μm)</li>
|
435 |
+
<li>Análisis de células ganglionares: Pérdida significativa en sector inferior</li>
|
436 |
+
</ul>
|
437 |
+
|
438 |
+
<h3 class="font-medium mb-2">Campo Visual</h3>
|
439 |
+
<ul class="list-disc pl-5 mb-4">
|
440 |
+
<li>OD: Defecto arqueado superior, MD -8.5 dB</li>
|
441 |
+
<li>OI: Escotoma paracentral, MD -6.2 dB</li>
|
442 |
+
</ul>
|
443 |
+
</div>
|
444 |
+
|
445 |
+
<div class="diagnosis-plan mb-6">
|
446 |
+
<h2 class="text-lg font-semibold mb-2">Diagnóstico</h2>
|
447 |
+
<p class="mb-4">Glaucoma Primario de Ángulo Abierto, estadio moderado-avanzado</p>
|
448 |
+
|
449 |
+
<h2 class="text-lg font-semibold mb-2">Plan de Tratamiento</h2>
|
450 |
+
<ul class="list-disc pl-5">
|
451 |
+
<li>Latanoprost 0.005% - 1 gota en cada ojo por la noche</li>
|
452 |
+
<li>Timolol 0.5% - 1 gota en cada ojo cada 12 horas</li>
|
453 |
+
<li>Control de PIO en 2 semanas</li>
|
454 |
+
<li>OCT y Campo Visual de control en 4 meses</li>
|
455 |
+
</ul>
|
456 |
+
</div>
|
457 |
+
|
458 |
+
<div class="report-footer mt-8 pt-4 border-t-2 border-gray-200">
|
459 |
+
<p class="text-sm text-gray-600 dark:text-gray-400">
|
460 |
+
Dr. Antonio García Rodríguez<br>
|
461 |
+
Servicio de Oftalmología<br>
|
462 |
+
Hospital Universitario 12 de Octubre<br>
|
463 |
+
Nº Colegiado: 28/12345
|
464 |
+
</p>
|
465 |
+
</div>
|
466 |
+
</div>
|
467 |
+
`,
|
468 |
+
en: `
|
469 |
+
<div class="report-document">
|
470 |
+
<div class="report-header border-b-2 border-gray-200 mb-6 pb-4">
|
471 |
+
<img src="https://ern-euro-nmd.eu/wp-content/uploads/2024/02/logo_12-de-octubre.jpeg"
|
472 |
+
alt="Hospital 12 de Octubre" class="hospital-logo mb-4">
|
473 |
+
<h1 class="text-2xl font-bold text-gray-800 dark:text-gray-100">Informe Oftalmológico: Glaucoma</h1>
|
474 |
+
<div class="text-sm text-gray-600 dark:text-gray-400 mt-2">
|
475 |
+
<p>Fecha: ${new Date().toLocaleDateString()}</p>
|
476 |
+
<p>Ref: GLM-${Math.random().toString(36).substr(2, 9)}</p>
|
477 |
+
</div>
|
478 |
+
</div>
|
479 |
+
|
480 |
+
<div class="patient-info mb-6">
|
481 |
+
<h2 class="text-lg font-semibold mb-2">Información del Paciente</h2>
|
482 |
+
<p><strong>Nombre:</strong> <span id="patientNameDisplay"></span></p>
|
483 |
+
<p><strong>Edad:</strong> <span id="patientAgeDisplay"></span> años</p>
|
484 |
+
<p><strong>Nº Historia Clínica:</strong> HC-${Math.random().toString().slice(2,11)}</p>
|
485 |
+
</div>
|
486 |
+
|
487 |
+
<div class="clinical-findings mb-6">
|
488 |
+
<h2 class="text-lg font-semibold mb-2">Hallazgos Clínicos</h2>
|
489 |
+
<h3 class="font-medium mb-2">Presión Intraocular (PIO)</h3>
|
490 |
+
<ul class="list-disc pl-5 mb-4">
|
491 |
+
<li>OD: 24 mmHg</li>
|
492 |
+
<li>OI: 26 mmHg</li>
|
493 |
+
</ul>
|
494 |
+
|
495 |
+
<h3 class="font-medium mb-2">Tomografía de Coherencia Óptica (OCT)</h3>
|
496 |
+
<ul class="list-disc pl-5 mb-4">
|
497 |
+
<li>Adelgazamiento severo del RNFL inferior en OD (52μm)</li>
|
498 |
+
<li>Adelgazamiento moderado del RNFL inferior en OI (65μm)</li>
|
499 |
+
<li>Análisis de células ganglionares: Pérdida significativa en sector inferior</li>
|
500 |
+
</ul>
|
501 |
+
|
502 |
+
<h3 class="font-medium mb-2">Campo Visual</h3>
|
503 |
+
<ul class="list-disc pl-5 mb-4">
|
504 |
+
<li>OD: Defecto arqueado superior, MD -8.5 dB</li>
|
505 |
+
<li>OI: Escotoma paracentral, MD -6.2 dB</li>
|
506 |
+
</ul>
|
507 |
+
</div>
|
508 |
+
|
509 |
+
<div class="diagnosis-plan mb-6">
|
510 |
+
<h2 class="text-lg font-semibold mb-2">Diagnóstico</h2>
|
511 |
+
<p class="mb-4">Glaucoma Primario de Ángulo Abierto, estadio moderado-avanzado</p>
|
512 |
+
|
513 |
+
<h2 class="text-lg font-semibold mb-2">Plan de Tratamiento</h2>
|
514 |
+
<ul class="list-disc pl-5">
|
515 |
+
<li>Latanoprost 0.005% - 1 gota en cada ojo por la noche</li>
|
516 |
+
<li>Timolol 0.5% - 1 gota en cada ojo cada 12 horas</li>
|
517 |
+
<li>Control de PIO en 2 semanas</li>
|
518 |
+
<li>OCT y Campo Visual de control en 4 meses</li>
|
519 |
+
</ul>
|
520 |
+
</div>
|
521 |
+
|
522 |
+
<div class="report-footer mt-8 pt-4 border-t-2 border-gray-200">
|
523 |
+
<p class="text-sm text-gray-600 dark:text-gray-400">
|
524 |
+
Dr. Antonio García Rodríguez<br>
|
525 |
+
Servicio de Oftalmología<br>
|
526 |
+
Hospital Universitario 12 de Octubre<br>
|
527 |
+
Nº Colegiado: 28/12345
|
528 |
+
</p>
|
529 |
+
</div>
|
530 |
+
</div>
|
531 |
+
`
|
532 |
+
},
|
533 |
+
diabeticRetinopathyReport: {
|
534 |
+
es: `
|
535 |
+
<div class="report-document">
|
536 |
+
<div class="report-header border-b-2 border-gray-200 mb-6 pb-4">
|
537 |
+
<img src="https://ern-euro-nmd.eu/wp-content/uploads/2024/02/logo_12-de-octubre.jpeg"
|
538 |
+
alt="Hospital 12 de Octubre" class="hospital-logo mb-4">
|
539 |
+
<h1 class="text-2xl font-bold text-gray-800 dark:text-gray-100">Informe Oftalmológico: Retinopatía Diabética</h1>
|
540 |
+
<div class="text-sm text-gray-600 dark:text-gray-400 mt-2">
|
541 |
+
<p>Fecha: ${new Date().toLocaleDateString()}</p>
|
542 |
+
<p>Ref: RD-${Math.random().toString(36).substr(2, 9)}</p>
|
543 |
+
</div>
|
544 |
+
</div>
|
545 |
+
|
546 |
+
<div class="patient-info mb-6">
|
547 |
+
<h2 class="text-lg font-semibold mb-2">Información del Paciente</h2>
|
548 |
+
<p><strong>Nombre:</strong> <span id="patientNameDisplay"></span></p>
|
549 |
+
<p><strong>Edad:</strong> <span id="patientAgeDisplay"></span> años</p>
|
550 |
+
<p><strong>Nº Historia Clínica:</strong> HC-${Math.random().toString().slice(2,11)}</p>
|
551 |
+
</div>
|
552 |
+
|
553 |
+
<div class="clinical-findings mb-6">
|
554 |
+
<h2 class="text-lg font-semibold mb-2">Hallazgos Clínicos</h2>
|
555 |
+
<h3 class="font-medium mb-2">Fondo de Ojo</h3>
|
556 |
+
<ul class="list-disc pl-5 mb-4">
|
557 |
+
<li>Microaneurismas múltiples en ambos ojos</li>
|
558 |
+
<li>Hemorragias intrarretinianas en cuadrantes temporales</li>
|
559 |
+
<li>Exudados duros en área macular</li>
|
560 |
+
</ul>
|
561 |
+
|
562 |
+
<h3 class="font-medium mb-2">OCT Macular</h3>
|
563 |
+
<ul class="list-disc pl-5 mb-4">
|
564 |
+
<li>Edema macular diabético con espesor central de 385μm en OD</li>
|
565 |
+
<li>Espesor macular normal en OI (245μm)</li>
|
566 |
+
</ul>
|
567 |
+
</div>
|
568 |
+
|
569 |
+
<div class="diagnosis-plan mb-6">
|
570 |
+
<h2 class="text-lg font-semibold mb-2">Diagnóstico</h2>
|
571 |
+
<p class="mb-4">Retinopatía Diabética No Proliferativa Moderada</p>
|
572 |
+
|
573 |
+
<h2 class="text-lg font-semibold mb-2">Plan de Tratamiento</h2>
|
574 |
+
<ul class="list-disc pl-5">
|
575 |
+
<li>Inyecciones anti-VEGF</li>
|
576 |
+
</ul>
|
577 |
+
</div>
|
578 |
+
|
579 |
+
<div class="report-footer mt-8 pt-4 border-t-2 border-gray-200">
|
580 |
+
<p class="text-sm text-gray-600 dark:text-gray-400">
|
581 |
+
Dr. Antonio García Rodríguez<br>
|
582 |
+
Servicio de Oftalmología<br>
|
583 |
+
Hospital Universitario 12 de Octubre<br>
|
584 |
+
Nº Colegiado: 28/12345
|
585 |
+
</p>
|
586 |
+
</div>
|
587 |
+
</div>
|
588 |
+
`,
|
589 |
+
en: `
|
590 |
+
<div class="report-document">
|
591 |
+
<div class="report-header border-b-2 border-gray-200 mb-6 pb-4">
|
592 |
+
<img src="https://ern-euro-nmd.eu/wp-content/uploads/2024/02/logo_12-de-octubre.jpeg"
|
593 |
+
alt="Hospital 12 de Octubre" class="hospital-logo mb-4">
|
594 |
+
<h1 class="text-2xl font-bold text-gray-800 dark:text-gray-100">Informe Oftalmológico: Retinopatía Diabética</h1>
|
595 |
+
<div class="text-sm text-gray-600 dark:text-gray-400 mt-2">
|
596 |
+
<p>Fecha: ${new Date().toLocaleDateString()}</p>
|
597 |
+
<p>Ref: RD-${Math.random().toString(36).substr(2, 9)}</p>
|
598 |
+
</div>
|
599 |
+
</div>
|
600 |
+
|
601 |
+
<div class="patient-info mb-6">
|
602 |
+
<h2 class="text-lg font-semibold mb-2">Información del Paciente</h2>
|
603 |
+
<p><strong>Nombre:</strong> <span id="patientNameDisplay"></span></p>
|
604 |
+
<p><strong>Edad:</strong> <span id="patientAgeDisplay"></span> años</p>
|
605 |
+
<p><strong>Nº Historia Clínica:</strong> HC-${Math.random().toString().slice(2,11)}</p>
|
606 |
+
</div>
|
607 |
+
|
608 |
+
<div class="clinical-findings mb-6">
|
609 |
+
<h2 class="text-lg font-semibold mb-2">Hallazgos Clínicos</h2>
|
610 |
+
<h3 class="font-medium mb-2">Fondo de Ojo</h3>
|
611 |
+
<ul class="list-disc pl-5 mb-4">
|
612 |
+
<li>Microaneurismas múltiples en ambos ojos</li>
|
613 |
+
<li>Hemorragias intrarretinianas en cuadrantes temporales</li>
|
614 |
+
<li>Exudados duros en área macular</li>
|
615 |
+
</ul>
|
616 |
+
|
617 |
+
<h3 class="font-medium mb-2">OCT Macular</h3>
|
618 |
+
<ul class="list-disc pl-5 mb-4">
|
619 |
+
<li>Edema macular diabético con espesor central de 385μm en OD</li>
|
620 |
+
<li>Espesor macular normal en OI (245μm)</li>
|
621 |
+
</ul>
|
622 |
+
</div>
|
623 |
+
|
624 |
+
<div class="diagnosis-plan mb-6">
|
625 |
+
<h2 class="text-lg font-semibold mb-2">Diagnóstico</h2>
|
626 |
+
<p class="mb-4">Retinopatía Diabética No Proliferativa Moderada</p>
|
627 |
+
|
628 |
+
<h2 class="text-lg font-semibold mb-2">Plan de Tratamiento</h2>
|
629 |
+
<ul class="list-disc pl-5">
|
630 |
+
<li>Inyecciones anti-VEGF</li>
|
631 |
+
</ul>
|
632 |
+
</div>
|
633 |
+
|
634 |
+
<div class="report-footer mt-8 pt-4 border-t-2 border-gray-200">
|
635 |
+
<p class="text-sm text-gray-600 dark:text-gray-400">
|
636 |
+
Dr. Antonio García Rodríguez<br>
|
637 |
+
Servicio de Oftalmología<br>
|
638 |
+
Hospital Universitario 12 de Octubre<br>
|
639 |
+
Nº Colegiado: 28/12345
|
640 |
+
</p>
|
641 |
+
</div>
|
642 |
+
</div>
|
643 |
+
`
|
644 |
+
},
|
645 |
+
amdReport: {
|
646 |
+
es: `
|
647 |
+
<div class="report-document">
|
648 |
+
<div class="report-header border-b-2 border-gray-200 mb-6 pb-4">
|
649 |
+
<img src="https://ern-euro-nmd.eu/wp-content/uploads/2024/02/logo_12-de-octubre.jpeg"
|
650 |
+
alt="Hospital 12 de Octubre" class="hospital-logo mb-4">
|
651 |
+
<h1 class="text-2xl font-bold text-gray-800 dark:text-gray-100">Informe Oftalmológico: DMAE</h1>
|
652 |
+
<div class="text-sm text-gray-600 dark:text-gray-400 mt-2">
|
653 |
+
<p>Fecha: ${new Date().toLocaleDateString()}</p>
|
654 |
+
<p>Ref: AMD-${Math.random().toString(36).substr(2, 9)}</p>
|
655 |
+
</div>
|
656 |
+
</div>
|
657 |
+
|
658 |
+
<div class="patient-info mb-6">
|
659 |
+
<h2 class="text-lg font-semibold mb-2">Información del Paciente</h2>
|
660 |
+
<p><strong>Nombre:</strong> <span id="patientNameDisplay"></span></p>
|
661 |
+
<p><strong>Edad:</strong> <span id="patientAgeDisplay"></span> años</p>
|
662 |
+
<p><strong>Nº Historia Clínica:</strong> HC-${Math.random().toString().slice(2,11)}</p>
|
663 |
+
</div>
|
664 |
+
|
665 |
+
<div class="clinical-findings mb-6">
|
666 |
+
<h2 class="text-lg font-semibold mb-2">Hallazgos Clínicos</h2>
|
667 |
+
<h3 class="font-medium mb-2">Presión Intraocular (PIO)</h3>
|
668 |
+
<ul class="list-disc pl-5 mb-4">
|
669 |
+
<li>OD: 24 mmHg</li>
|
670 |
+
<li>OI: 26 mmHg</li>
|
671 |
+
</ul>
|
672 |
+
|
673 |
+
<h3 class="font-medium mb-2">Tomografía de Coherencia Óptica (OCT)</h3>
|
674 |
+
<ul class="list-disc pl-5 mb-4">
|
675 |
+
<li>Adelgazamiento severo del RNFL inferior en OD (52μm)</li>
|
676 |
+
<li>Adelgazamiento moderado del RNFL inferior en OI (65μm)</li>
|
677 |
+
<li>Análisis de células ganglionares: Pérdida significativa en sector inferior</li>
|
678 |
+
</ul>
|
679 |
+
|
680 |
+
<h3 class="font-medium mb-2">Campo Visual</h3>
|
681 |
+
<ul class="list-disc pl-5 mb-4">
|
682 |
+
<li>OD: Defecto arqueado superior, MD -8.5 dB</li>
|
683 |
+
<li>OI: Escotoma paracentral, MD -6.2 dB</li>
|
684 |
+
</ul>
|
685 |
+
</div>
|
686 |
+
|
687 |
+
<div class="diagnosis-plan mb-6">
|
688 |
+
<h2 class="text-lg font-semibold mb-2">Diagnóstico</h2>
|
689 |
+
<p class="mb-4">DMAE</p>
|
690 |
+
|
691 |
+
<h2 class="text-lg font-semibold mb-2">Plan de Tratamiento</h2>
|
692 |
+
<ul class="list-disc pl-5">
|
693 |
+
<li>Latanoprost 0.005% - 1 gota en cada ojo por la noche</li>
|
694 |
+
<li>Timolol 0.5% - 1 gota en cada ojo cada 12 horas</li>
|
695 |
+
<li>Control de PIO en 2 semanas</li>
|
696 |
+
<li>OCT y Campo Visual de control en 4 meses</li>
|
697 |
+
</ul>
|
698 |
+
</div>
|
699 |
+
|
700 |
+
<div class="report-footer mt-8 pt-4 border-t-2 border-gray-200">
|
701 |
+
<p class="text-sm text-gray-600 dark:text-gray-400">
|
702 |
+
Dr. Antonio García Rodríguez<br>
|
703 |
+
Servicio de Oftalmología<br>
|
704 |
+
Hospital Universitario 12 de Octubre<br>
|
705 |
+
Nº Colegiado: 28/12345
|
706 |
+
</p>
|
707 |
+
</div>
|
708 |
+
</div>
|
709 |
+
`,
|
710 |
+
en: `
|
711 |
+
<div class="report-document">
|
712 |
+
<div class="report-header border-b-2 border-gray-200 mb-6 pb-4">
|
713 |
+
<img src="https://ern-euro-nmd.eu/wp-content/uploads/2024/02/logo_12-de-octubre.jpeg"
|
714 |
+
alt="Hospital 12 de Octubre" class="hospital-logo mb-4">
|
715 |
+
<h1 class="text-2xl font-bold text-gray-800 dark:text-gray-100">Informe Oftalmológico: DMAE</h1>
|
716 |
+
<div class="text-sm text-gray-600 dark:text-gray-400 mt-2">
|
717 |
+
<p>Fecha: ${new Date().toLocaleDateString()}</p>
|
718 |
+
<p>Ref: AMD-${Math.random().toString(36).substr(2, 9)}</p>
|
719 |
+
</div>
|
720 |
+
</div>
|
721 |
+
|
722 |
+
<div class="patient-info mb-6">
|
723 |
+
<h2 class="text-lg font-semibold mb-2">Información del Paciente</h2>
|
724 |
+
<p><strong>Nombre:</strong> <span id="patientNameDisplay"></span></p>
|
725 |
+
<p><strong>Edad:</strong> <span id="patientAgeDisplay"></span> años</p>
|
726 |
+
<p><strong>Nº Historia Clínica:</strong> HC-${Math.random().toString().slice(2,11)}</p>
|
727 |
+
</div>
|
728 |
+
|
729 |
+
<div class="clinical-findings mb-6">
|
730 |
+
<h2 class="text-lg font-semibold mb-2">Hallazgos Clínicos</h2>
|
731 |
+
<h3 class="font-medium mb-2">Presión Intraocular (PIO)</h3>
|
732 |
+
<ul class="list-disc pl-5 mb-4">
|
733 |
+
<li>OD: 24 mmHg</li>
|
734 |
+
<li>OI: 26 mmHg</li>
|
735 |
+
</ul>
|
736 |
+
|
737 |
+
<h3 class="font-medium mb-2">Tomografía de Coherencia Óptica (OCT)</h3>
|
738 |
+
<ul class="list-disc pl-5 mb-4">
|
739 |
+
<li>Adelgazamiento severo del RNFL inferior en OD (52μm)</li>
|
740 |
+
<li>Adelgazamiento moderado del RNFL inferior en OI (65μm)</li>
|
741 |
+
<li>Análisis de células ganglionares: Pérdida significativa en sector inferior</li>
|
742 |
+
</ul>
|
743 |
+
|
744 |
+
<h3 class="font-medium mb-2">Campo Visual</h3>
|
745 |
+
<ul class="list-disc pl-5 mb-4">
|
746 |
+
<li>OD: Defecto arqueado superior, MD -8.5 dB</li>
|
747 |
+
<li>OI: Escotoma paracentral, MD -6.2 dB</li>
|
748 |
+
</ul>
|
749 |
+
</div>
|
750 |
+
|
751 |
+
<div class="diagnosis-plan mb-6">
|
752 |
+
<h2 class="text-lg font-semibold mb-2">Diagnóstico</h2>
|
753 |
+
<p class="mb-4">DMAE</p>
|
754 |
+
|
755 |
+
<h2 class="text-lg font-semibold mb-2">Plan de Tratamiento</h2>
|
756 |
+
<ul class="list-disc pl-5">
|
757 |
+
<li>Latanoprost 0.005% - 1 gota en cada ojo por la noche</li>
|
758 |
+
<li>Timolol 0.5% - 1 gota en cada ojo cada 12 horas</li>
|
759 |
+
<li>Control de PIO en 2 semanas</li>
|
760 |
+
<li>OCT y Campo Visual de control en 4 meses</li>
|
761 |
+
</ul>
|
762 |
+
</div>
|
763 |
+
|
764 |
+
<div class="report-footer mt-8 pt-4 border-t-2 border-gray-200">
|
765 |
+
<p class="text-sm text-gray-600 dark:text-gray-400">
|
766 |
+
Dr. Antonio García Rodríguez<br>
|
767 |
+
Servicio de Oftalmología<br>
|
768 |
+
Hospital Universitario 12 de Octubre<br>
|
769 |
+
Nº Colegiado: 28/12345
|
770 |
+
</p>
|
771 |
+
</div>
|
772 |
+
</div>
|
773 |
+
`
|
774 |
+
},
|
775 |
+
treatmentPlan: {
|
776 |
+
es: `
|
777 |
+
<div class="report-document">
|
778 |
+
<div class="report-header border-b-2 border-gray-200 mb-6 pb-4">
|
779 |
+
<img src="https://ern-euro-nmd.eu/wp-content/uploads/2024/02/logo_12-de-octubre.jpeg"
|
780 |
+
alt="Hospital 12 de Octubre" class="hospital-logo mb-4">
|
781 |
+
<h1 class="text-2xl font-bold text-gray-800 dark:text-gray-100">Plan de Tratamiento</h1>
|
782 |
+
<div class="text-sm text-gray-600 dark:text-gray-400 mt-2">
|
783 |
+
<p>Fecha: ${new Date().toLocaleDateString()}</p>
|
784 |
+
<p>Ref: TP-${Math.random().toString(36).substr(2, 9)}</p>
|
785 |
+
</div>
|
786 |
+
</div>
|
787 |
+
|
788 |
+
<div class="patient-info mb-6">
|
789 |
+
<h2 class="text-lg font-semibold mb-2">Información del Paciente</h2>
|
790 |
+
<p><strong>Nombre:</strong> <span id="patientNameDisplay"></span></p>
|
791 |
+
<p><strong>Edad:</strong> <span id="patientAgeDisplay"></span> años</p>
|
792 |
+
<p><strong>Nº Historia Clínica:</strong> HC-${Math.random().toString().slice(2,11)}</p>
|
793 |
+
</div>
|
794 |
+
|
795 |
+
<div class="clinical-findings mb-6">
|
796 |
+
<h2 class="text-lg font-semibold mb-2">Hallazgos Clínicos</h2>
|
797 |
+
<h3 class="font-medium mb-2">Presión Intraocular (PIO)</h3>
|
798 |
+
<ul class="list-disc pl-5 mb-4">
|
799 |
+
<li>OD: 24 mmHg</li>
|
800 |
+
<li>OI: 26 mmHg</li>
|
801 |
+
</ul>
|
802 |
+
|
803 |
+
<h3 class="font-medium mb-2">Tomografía de Coherencia Óptica (OCT)</h3>
|
804 |
+
<ul class="list-disc pl-5 mb-4">
|
805 |
+
<li>Adelgazamiento severo del RNFL inferior en OD (52μm)</li>
|
806 |
+
<li>Adelgazamiento moderado del RNFL inferior en OI (65μm)</li>
|
807 |
+
<li>Análisis de células ganglionares: Pérdida significativa en sector inferior</li>
|
808 |
+
</ul>
|
809 |
+
|
810 |
+
<h3 class="font-medium mb-2">Campo Visual</h3>
|
811 |
+
<ul class="list-disc pl-5 mb-4">
|
812 |
+
<li>OD: Defecto arqueado superior, MD -8.5 dB</li>
|
813 |
+
<li>OI: Escotoma paracentral, MD -6.2 dB</li>
|
814 |
+
</ul>
|
815 |
+
</div>
|
816 |
+
|
817 |
+
<div class="diagnosis-plan mb-6">
|
818 |
+
<h2 class="text-lg font-semibold mb-2">Diagnóstico</h2>
|
819 |
+
<p class="mb-4">Glaucoma Primario de Ángulo Abierto, estadio moderado-avanzado</p>
|
820 |
+
|
821 |
+
<h2 class="text-lg font-semibold mb-2">Plan de Tratamiento</h2>
|
822 |
+
<ul class="list-disc pl-5">
|
823 |
+
<li>Latanoprost 0.005% - 1 gota en cada ojo por la noche</li>
|
824 |
+
<li>Timolol 0.5% - 1 gota en cada ojo cada 12 horas</li>
|
825 |
+
<li>Control de PIO en 2 semanas</li>
|
826 |
+
<li>OCT y Campo Visual de control en 4 meses</li>
|
827 |
+
</ul>
|
828 |
+
</div>
|
829 |
+
|
830 |
+
<div class="report-footer mt-8 pt-4 border-t-2 border-gray-200">
|
831 |
+
<p class="text-sm text-gray-600 dark:text-gray-400">
|
832 |
+
Dr. Antonio García Rodríguez<br>
|
833 |
+
Servicio de Oftalmología<br>
|
834 |
+
Hospital Universitario 12 de Octubre<br>
|
835 |
+
Nº Colegiado: 28/12345
|
836 |
+
</p>
|
837 |
+
</div>
|
838 |
+
</div>
|
839 |
+
`,
|
840 |
+
en: `
|
841 |
+
<div class="report-document">
|
842 |
+
<div class="report-header border-b-2 border-gray-200 mb-6 pb-4">
|
843 |
+
<img src="https://ern-euro-nmd.eu/wp-content/uploads/2024/02/logo_12-de-octubre.jpeg"
|
844 |
+
alt="Hospital 12 de Octubre" class="hospital-logo mb-4">
|
845 |
+
<h1 class="text-2xl font-bold text-gray-800 dark:text-gray-100">Plan de Tratamiento</h1>
|
846 |
+
<div class="text-sm text-gray-600 dark:text-gray-400 mt-2">
|
847 |
+
<p>Fecha: ${new Date().toLocaleDateString()}</p>
|
848 |
+
<p>Ref: TP-${Math.random().toString(36).substr(2, 9)}</p>
|
849 |
+
</div>
|
850 |
+
</div>
|
851 |
+
|
852 |
+
<div class="patient-info mb-6">
|
853 |
+
<h2 class="text-lg font-semibold mb-2">Información del Paciente</h2>
|
854 |
+
<p><strong>Nombre:</strong> <span id="patientNameDisplay"></span></p>
|
855 |
+
<p><strong>Edad:</strong> <span id="patientAgeDisplay"></span> años</p>
|
856 |
+
<p><strong>Nº Historia Clínica:</strong> HC-${Math.random().toString().slice(2,11)}</p>
|
857 |
+
</div>
|
858 |
+
|
859 |
+
<div class="clinical-findings mb-6">
|
860 |
+
<h2 class="text-lg font-semibold mb-2">Hallazgos Clínicos</h2>
|
861 |
+
<h3 class="font-medium mb-2">Presión Intraocular (PIO)</h3>
|
862 |
+
<ul class="list-disc pl-5 mb-4">
|
863 |
+
<li>OD: 24 mmHg</li>
|
864 |
+
<li>OI: 26 mmHg</li>
|
865 |
+
</ul>
|
866 |
+
|
867 |
+
<h3 class="font-medium mb-2">Tomografía de Coherencia Óptica (OCT)</h3>
|
868 |
+
<ul class="list-disc pl-5 mb-4">
|
869 |
+
<li>Adelgazamiento severo del RNFL inferior en OD (52μm)</li>
|
870 |
+
<li>Adelgazamiento moderado del RNFL inferior en OI (65μm)</li>
|
871 |
+
<li>Análisis de células ganglionares: Pérdida significativa en sector inferior</li>
|
872 |
+
</ul>
|
873 |
+
|
874 |
+
<h3 class="font-medium mb-2">Campo Visual</h3>
|
875 |
+
<ul class="list-disc pl-5 mb-4">
|
876 |
+
<li>OD: Defecto arqueado superior, MD -8.5 dB</li>
|
877 |
+
<li>OI: Escotoma paracentral, MD -6.2 dB</li>
|
878 |
+
</ul>
|
879 |
+
</div>
|
880 |
+
|
881 |
+
<div class="diagnosis-plan mb-6">
|
882 |
+
<h2 class="text-lg font-semibold mb-2">Diagnóstico</h2>
|
883 |
+
<p class="mb-4">Glaucoma Primario de Ángulo Abierto, estadio moderado-avanzado</p>
|
884 |
+
|
885 |
+
<h2 class="text-lg font-semibold mb-2">Plan de Tratamiento</h2>
|
886 |
+
<ul class="list-disc pl-5">
|
887 |
+
<li>Latanoprost 0.005% - 1 gota en cada ojo por la noche</li>
|
888 |
+
<li>Timolol 0.5% - 1 gota en cada ojo cada 12 horas</li>
|
889 |
+
<li>Control de PIO en 2 semanas</li>
|
890 |
+
<li>OCT y Campo Visual de control en 4 meses</li>
|
891 |
+
</ul>
|
892 |
+
</div>
|
893 |
+
|
894 |
+
<div class="report-footer mt-8 pt-4 border-t-2 border-gray-200">
|
895 |
+
<p class="text-sm text-gray-600 dark:text-gray-400">
|
896 |
+
Dr. Antonio García Rodríguez<br>
|
897 |
+
Servicio de Oftalmología<br>
|
898 |
+
Hospital Universitario 12 de Octubre<br>
|
899 |
+
Nº Colegiado: 28/12345
|
900 |
+
</p>
|
901 |
+
</div>
|
902 |
+
</div>
|
903 |
+
`
|
904 |
+
},
|
905 |
+
followUpReport: {
|
906 |
+
es: `
|
907 |
+
<div class="report-document">
|
908 |
+
<div class="report-header border-b-2 border-gray-200 mb-6 pb-4">
|
909 |
+
<img src="https://ern-euro-nmd.eu/wp-content/uploads/2024/02/logo_12-de-octubre.jpeg"
|
910 |
+
alt="Hospital 12 de Octubre" class="hospital-logo mb-4">
|
911 |
+
<h1 class="text-2xl font-bold text-gray-800 dark:text-gray-100">Informe de Seguimiento</h1>
|
912 |
+
<div class="text-sm text-gray-600 dark:text-gray-400 mt-2">
|
913 |
+
<p>Fecha: ${new Date().toLocaleDateString()}</p>
|
914 |
+
<p>Ref: FU-${Math.random().toString(36).substr(2, 9)}</p>
|
915 |
+
</div>
|
916 |
+
</div>
|
917 |
+
|
918 |
+
<div class="patient-info mb-6">
|
919 |
+
<h2 class="text-lg font-semibold mb-2">Información del Paciente</h2>
|
920 |
+
<p><strong>Nombre:</strong> <span id="patientNameDisplay"></span></p>
|
921 |
+
<p><strong>Edad:</strong> <span id="patientAgeDisplay"></span> años</p>
|
922 |
+
<p><strong>Nº Historia Clínica:</strong> HC-${Math.random().toString().slice(2,11)}</p>
|
923 |
+
</div>
|
924 |
+
|
925 |
+
<div class="clinical-findings mb-6">
|
926 |
+
<h2 class="text-lg font-semibold mb-2">Hallazgos Clínicos</h2>
|
927 |
+
<h3 class="font-medium mb-2">Presión Intraocular (PIO)</h3>
|
928 |
+
<ul class="list-disc pl-5 mb-4">
|
929 |
+
<li>OD: 24 mmHg</li>
|
930 |
+
<li>OI: 26 mmHg</li>
|
931 |
+
</ul>
|
932 |
+
|
933 |
+
<h3 class="font-medium mb-2">Tomografía de Coherencia Óptica (OCT)</h3>
|
934 |
+
<ul class="list-disc pl-5 mb-4">
|
935 |
+
<li>Adelgazamiento severo del RNFL inferior en OD (52μm)</li>
|
936 |
+
<li>Adelgazamiento moderado del RNFL inferior en OI (65μm)</li>
|
937 |
+
<li>Análisis de células ganglionares: Pérdida significativa en sector inferior</li>
|
938 |
+
</ul>
|
939 |
+
|
940 |
+
<h3 class="font-medium mb-2">Campo Visual</h3>
|
941 |
+
<ul class="list-disc pl-5 mb-4">
|
942 |
+
<li>OD: Defecto arqueado superior, MD -8.5 dB</li>
|
943 |
+
<li>OI: Escotoma paracentral, MD -6.2 dB</li>
|
944 |
+
</ul>
|
945 |
+
</div>
|
946 |
+
|
947 |
+
<div class="diagnosis-plan mb-6">
|
948 |
+
<h2 class="text-lg font-semibold mb-2">Diagnóstico</h2>
|
949 |
+
<p class="mb-4">Glaucoma Primario de Ángulo Abierto, estadio moderado-avanzado</p>
|
950 |
+
|
951 |
+
<h2 class="text-lg font-semibold mb-2">Plan de Tratamiento</h2>
|
952 |
+
<ul class="list-disc pl-5">
|
953 |
+
<li>Latanoprost 0.005% - 1 gota en cada ojo por la noche</li>
|
954 |
+
<li>Timolol 0.5% - 1 gota en cada ojo cada 12 horas</li>
|
955 |
+
<li>Control de PIO en 2 semanas</li>
|
956 |
+
<li>OCT y Campo Visual de control en 4 meses</li>
|
957 |
+
</ul>
|
958 |
+
</div>
|
959 |
+
|
960 |
+
<div class="report-footer mt-8 pt-4 border-t-2 border-gray-200">
|
961 |
+
<p class="text-sm text-gray-600 dark:text-gray-400">
|
962 |
+
Dr. Antonio García Rodríguez<br>
|
963 |
+
Servicio de Oftalmología<br>
|
964 |
+
Hospital Universitario 12 de Octubre<br>
|
965 |
+
Nº Colegiado: 28/12345
|
966 |
+
</p>
|
967 |
+
</div>
|
968 |
+
</div>
|
969 |
+
`,
|
970 |
+
en: `
|
971 |
+
<div class="report-document">
|
972 |
+
<div class="report-header border-b-2 border-gray-200 mb-6 pb-4">
|
973 |
+
<img src="https://ern-euro-nmd.eu/wp-content/uploads/2024/02/logo_12-de-octubre.jpeg"
|
974 |
+
alt="Hospital 12 de Octubre" class="hospital-logo mb-4">
|
975 |
+
<h1 class="text-2xl font-bold text-gray-800 dark:text-gray-100">Informe de Seguimiento</h1>
|
976 |
+
<div class="text-sm text-gray-600 dark:text-gray-400 mt-2">
|
977 |
+
<p>Fecha: ${new Date().toLocaleDateString()}</p>
|
978 |
+
<p>Ref: FU-${Math.random().toString(36).substr(2, 9)}</p>
|
979 |
+
</div>
|
980 |
+
</div>
|
981 |
+
|
982 |
+
<div class="patient-info mb-6">
|
983 |
+
<h2 class="text-lg font-semibold mb-2">Información del Paciente</h2>
|
984 |
+
<p><strong>Nombre:</strong> <span id="patientNameDisplay"></span></p>
|
985 |
+
<p><strong>Edad:</strong> <span id="patientAgeDisplay"></span> años</p>
|
986 |
+
<p><strong>Nº Historia Clínica:</strong> HC-${Math.random().toString().slice(2,11)}</p>
|
987 |
+
</div>
|
988 |
+
|
989 |
+
<div class="clinical-findings mb-6">
|
990 |
+
<h2 class="text-lg font-semibold mb-2">Hallazgos Clínicos</h2>
|
991 |
+
<h3 class="font-medium mb-2">Presión Intraocular (PIO)</h3>
|
992 |
+
<ul class="list-disc pl-5 mb-4">
|
993 |
+
<li>OD: 24 mmHg</li>
|
994 |
+
<li>OI: 26 mmHg</li>
|
995 |
+
</ul>
|
996 |
+
|
997 |
+
<h3 class="font-medium mb-2">Tomografía de Coherencia Óptica (OCT)</h3>
|
998 |
+
<ul class="list-disc pl-5 mb-4">
|
999 |
+
<li>Adelgazamiento severo del RNFL inferior en OD (52μm)</li>
|
1000 |
+
<li>Adelgazamiento moderado del RNFL inferior en OI (65μm)</li>
|
1001 |
+
<li>Análisis de células ganglionares: Pérdida significativa en sector inferior</li>
|
1002 |
+
</ul>
|
1003 |
+
|
1004 |
+
<h3 class="font-medium mb-2">Campo Visual</h3>
|
1005 |
+
<ul class="list-disc pl-5 mb-4">
|
1006 |
+
<li>OD: Defecto arqueado superior, MD -8.5 dB</li>
|
1007 |
+
<li>OI: Escotoma paracentral, MD -6.2 dB</li>
|
1008 |
+
</ul>
|
1009 |
+
</div>
|
1010 |
+
|
1011 |
+
<div class="diagnosis-plan mb-6">
|
1012 |
+
<h2 class="text-lg font-semibold mb-2">Diagnóstico</h2>
|
1013 |
+
<p class="mb-4">Glaucoma Primario de Ángulo Abierto, estadio moderado-avanzado</p>
|
1014 |
+
|
1015 |
+
<h2 class="text-lg font-semibold mb-2">Plan de Tratamiento</h2>
|
1016 |
+
<ul class="list-disc pl-5">
|
1017 |
+
<li>Latanoprost 0.005% - 1 gota en cada ojo por la noche</li>
|
1018 |
+
<li>Timolol 0.5% - 1 gota en cada ojo cada 12 horas</li>
|
1019 |
+
<li>Control de PIO en 2 semanas</li>
|
1020 |
+
<li>OCT y Campo Visual de control en 4 meses</li>
|
1021 |
+
</ul>
|
1022 |
+
</div>
|
1023 |
+
|
1024 |
+
<div class="report-footer mt-8 pt-4 border-t-2 border-gray-200">
|
1025 |
+
<p class="text-sm text-gray-600 dark:text-gray-400">
|
1026 |
+
Dr. Antonio García Rodríguez<br>
|
1027 |
+
Servicio de Oftalmología<br>
|
1028 |
+
Hospital Universitario 12 de Octubre<br>
|
1029 |
+
Nº Colegiado: 28/12345
|
1030 |
+
</p>
|
1031 |
+
</div>
|
1032 |
+
</div>
|
1033 |
+
`
|
1034 |
+
},
|
1035 |
+
generalSummaryReport: {
|
1036 |
+
es: `
|
1037 |
+
<div class="report-document">
|
1038 |
+
<div class="report-header border-b-2 border-gray-200 mb-6 pb-4">
|
1039 |
+
<img src="https://ern-euro-nmd.eu/wp-content/uploads/2024/02/logo_12-de-octubre.jpeg"
|
1040 |
+
alt="Hospital 12 de Octubre" class="hospital-logo mb-4">
|
1041 |
+
<h1 class="text-2xl font-bold text-gray-800 dark:text-gray-100">Resumen General</h1>
|
1042 |
+
<div class="text-sm text-gray-600 dark:text-gray-400 mt-2">
|
1043 |
+
<p>Fecha: ${new Date().toLocaleDateString()}</p>
|
1044 |
+
<p>Ref: GS-${Math.random().toString(36).substr(2, 9)}</p>
|
1045 |
+
</div>
|
1046 |
+
</div>
|
1047 |
+
|
1048 |
+
<div class="patient-info mb-6">
|
1049 |
+
<h2 class="text-lg font-semibold mb-2">Información del Paciente</h2>
|
1050 |
+
<p><strong>Nombre:</strong> <span id="patientNameDisplay"></span></p>
|
1051 |
+
<p><strong>Edad:</strong> <span id="patientAgeDisplay"></span> años</p>
|
1052 |
+
<p><strong>Nº Historia Clínica:</strong> HC-${Math.random().toString().slice(2,11)}</p>
|
1053 |
+
</div>
|
1054 |
+
|
1055 |
+
<div class="clinical-findings mb-6">
|
1056 |
+
<h2 class="text-lg font-semibold mb-2">Hallazgos Clínicos</h2>
|
1057 |
+
<h3 class="font-medium mb-2">Presión Intraocular (PIO)</h3>
|
1058 |
+
<ul class="list-disc pl-5 mb-4">
|
1059 |
+
<li>OD: 24 mmHg</li>
|
1060 |
+
<li>OI: 26 mmHg</li>
|
1061 |
+
</ul>
|
1062 |
+
|
1063 |
+
<h3 class="font-medium mb-2">Tomografía de Coherencia Óptica (OCT)</h3>
|
1064 |
+
<ul class="list-disc pl-5 mb-4">
|
1065 |
+
<li>Adelgazamiento severo del RNFL inferior en OD (52μm)</li>
|
1066 |
+
<li>Adelgazamiento moderado del RNFL inferior en OI (65μm)</li>
|
1067 |
+
<li>Análisis de células ganglionares: Pérdida significativa en sector inferior</li>
|
1068 |
+
</ul>
|
1069 |
+
|
1070 |
+
<h3 class="font-medium mb-2">Campo Visual</h3>
|
1071 |
+
<ul class="list-disc pl-5 mb-4">
|
1072 |
+
<li>OD: Defecto arqueado superior, MD -8.5 dB</li>
|
1073 |
+
<li>OI: Escotoma paracentral, MD -6.2 dB</li>
|
1074 |
+
</ul>
|
1075 |
+
</div>
|
1076 |
+
|
1077 |
+
<div class="diagnosis-plan mb-6">
|
1078 |
+
<h2 class="text-lg font-semibold mb-2">Diagnóstico</h2>
|
1079 |
+
<p class="mb-4">Glaucoma Primario de Ángulo Abierto, estadio moderado-avanzado</p>
|
1080 |
+
|
1081 |
+
<h2 class="text-lg font-semibold mb-2">Plan de Tratamiento</h2>
|
1082 |
+
<ul class="list-disc pl-5">
|
1083 |
+
<li>Latanoprost 0.005% - 1 gota en cada ojo por la noche</li>
|
1084 |
+
<li>Timolol 0.5% - 1 gota en cada ojo cada 12 horas</li>
|
1085 |
+
<li>Control de PIO en 2 semanas</li>
|
1086 |
+
<li>OCT y Campo Visual de control en 4 meses</li>
|
1087 |
+
</ul>
|
1088 |
+
</div>
|
1089 |
+
|
1090 |
+
<div class="report-footer mt-8 pt-4 border-t-2 border-gray-200">
|
1091 |
+
<p class="text-sm text-gray-600 dark:text-gray-400">
|
1092 |
+
Dr. Antonio García Rodríguez<br>
|
1093 |
+
Servicio de Oftalmología<br>
|
1094 |
+
Hospital Universitario 12 de Octubre<br>
|
1095 |
+
Nº Colegiado: 28/12345
|
1096 |
+
</p>
|
1097 |
+
</div>
|
1098 |
+
</div>
|
1099 |
+
`,
|
1100 |
+
en: `
|
1101 |
+
<div class="report-document">
|
1102 |
+
<div class="report-header border-b-2 border-gray-200 mb-6 pb-4">
|
1103 |
+
<img src="https://ern-euro-nmd.eu/wp-content/uploads/2024/02/logo_12-de-octubre.jpeg"
|
1104 |
+
alt="Hospital 12 de Octubre" class="hospital-logo mb-4">
|
1105 |
+
<h1 class="text-2xl font-bold text-gray-800 dark:text-gray-100">Resumen General</h1>
|
1106 |
+
<div class="text-sm text-gray-600 dark:text-gray-400 mt-2">
|
1107 |
+
<p>Fecha: ${new Date().toLocaleDateString()}</p>
|
1108 |
+
<p>Ref: GS-${Math.random().toString(36).substr(2, 9)}</p>
|
1109 |
+
</div>
|
1110 |
+
</div>
|
1111 |
+
|
1112 |
+
<div class="patient-info mb-6">
|
1113 |
+
<h2 class="text-lg font-semibold mb-2">Información del Paciente</h2>
|
1114 |
+
<p><strong>Nombre:</strong> <span id="patientNameDisplay"></span></p>
|
1115 |
+
<p><strong>Edad:</strong> <span id="patientAgeDisplay"></span> años</p>
|
1116 |
+
<p><strong>Nº Historia Clínica:</strong> HC-${Math.random().toString().slice(2,11)}</p>
|
1117 |
+
</div>
|
1118 |
+
|
1119 |
+
<div class="clinical-findings mb-6">
|
1120 |
+
<h2 class="text-lg font-semibold mb-2">Hallazgos Clínicos</h2>
|
1121 |
+
<h3 class="font-medium mb-2">Presión Intraocular (PIO)</h3>
|
1122 |
+
<ul class="list-disc pl-5 mb-4">
|
1123 |
+
<li>OD: 24 mmHg</li>
|
1124 |
+
<li>OI: 26 mmHg</li>
|
1125 |
+
</ul>
|
1126 |
+
|
1127 |
+
<h3 class="font-medium mb-2">Tomografía de Coherencia Óptica (OCT)</h3>
|
1128 |
+
<ul class="list-disc pl-5 mb-4">
|
1129 |
+
<li>Adelgazamiento severo del RNFL inferior en OD (52μm)</li>
|
1130 |
+
<li>Adelgazamiento moderado del RNFL inferior en OI (65μm)</li>
|
1131 |
+
<li>Análisis de células ganglionares: Pérdida significativa en sector inferior</li>
|
1132 |
+
</ul>
|
1133 |
+
|
1134 |
+
<h3 class="font-medium mb-2">Campo Visual</h3>
|
1135 |
+
<ul class="list-disc pl-5 mb-4">
|
1136 |
+
<li>OD: Defecto arqueado superior, MD -8.5 dB</li>
|
1137 |
+
<li>OI: Escotoma paracentral, MD -6.2 dB</li>
|
1138 |
+
</ul>
|
1139 |
+
</div>
|
1140 |
+
|
1141 |
+
<div class="diagnosis-plan mb-6">
|
1142 |
+
<h2 class="text-lg font-semibold mb-2">Diagnóstico</h2>
|
1143 |
+
<p class="mb-4">Glaucoma Primario de Ángulo Abierto, estadio moderado-avanzado</p>
|
1144 |
+
|
1145 |
+
<h2 class="text-lg font-semibold mb-2">Plan de Tratamiento</h2>
|
1146 |
+
<ul class="list-disc pl-5">
|
1147 |
+
<li>Latanoprost 0.005% - 1 gota en cada ojo por la noche</li>
|
1148 |
+
<li>Timolol 0.5% - 1 gota en cada ojo cada 12 horas</li>
|
1149 |
+
<li>Control de PIO en 2 semanas</li>
|
1150 |
+
<li>OCT y Campo Visual de control en 4 meses</li>
|
1151 |
+
</ul>
|
1152 |
+
</div>
|
1153 |
+
|
1154 |
+
<div class="report-footer mt-8 pt-4 border-t-2 border-gray-200">
|
1155 |
+
<p class="text-sm text-gray-600 dark:text-gray-400">
|
1156 |
+
Dr. Antonio García Rodríguez<br>
|
1157 |
+
Servicio de Oftalmología<br>
|
1158 |
+
Hospital Universitario 12 de Octubre<br>
|
1159 |
+
Nº Colegiado: 28/12345
|
1160 |
+
</p>
|
1161 |
+
</div>
|
1162 |
+
</div>
|
1163 |
+
`
|
1164 |
+
}
|
1165 |
+
};
|
1166 |
+
|
1167 |
+
// Form handling
|
1168 |
+
document.getElementById('patientForm').addEventListener('submit', function(e) {
|
1169 |
+
e.preventDefault();
|
1170 |
+
const patientName = document.getElementById('patientName').value;
|
1171 |
+
const patientAge = document.getElementById('patientAge').value;
|
1172 |
+
const diagnosis = document.getElementById('diagnosis').value;
|
1173 |
+
|
1174 |
+
// Generate appropriate report based on diagnosis
|
1175 |
+
showReport(diagnosis + 'Report');
|
1176 |
+
|
1177 |
+
// Update patient name in report
|
1178 |
+
document.querySelectorAll('#patientNameDisplay').forEach(el => {
|
1179 |
+
el.textContent = patientName;
|
1180 |
+
});
|
1181 |
+
});
|
1182 |
+
|
1183 |
+
// Enhanced report viewer with animations and language support
|
1184 |
+
function showReport(reportId) {
|
1185 |
+
const viewer = document.getElementById('reportViewer');
|
1186 |
+
const content = document.getElementById('reportContent');
|
1187 |
+
const currentLang = document.body.getAttribute('data-language');
|
1188 |
+
|
1189 |
+
// Add loading state
|
1190 |
+
content.classList.add('loading');
|
1191 |
+
|
1192 |
+
// Smooth transition
|
1193 |
+
viewer.classList.add('active');
|
1194 |
+
document.body.style.overflow = 'hidden';
|
1195 |
+
|
1196 |
+
// Simulate loading for smoother transition
|
1197 |
+
setTimeout(() => {
|
1198 |
+
content.innerHTML = reports[reportId][currentLang];
|
1199 |
+
content.classList.remove('loading');
|
1200 |
+
|
1201 |
+
// Initialize any dynamic content
|
1202 |
+
initializeReportContent();
|
1203 |
+
}, 300);
|
1204 |
+
}
|
1205 |
+
|
1206 |
+
function initializeReportContent() {
|
1207 |
+
// Add any initialization needed for report content
|
1208 |
+
// For example, charts, interactive elements, etc.
|
1209 |
+
}
|
1210 |
+
|
1211 |
+
function closeReport() {
|
1212 |
+
const viewer = document.getElementById('reportViewer');
|
1213 |
+
viewer.classList.add('animate__fadeOut');
|
1214 |
+
|
1215 |
+
setTimeout(() => {
|
1216 |
+
viewer.classList.add('hidden');
|
1217 |
+
viewer.classList.remove('animate__fadeOut');
|
1218 |
+
document.body.style.overflow = 'auto';
|
1219 |
+
}, 300);
|
1220 |
+
}
|
1221 |
+
|
1222 |
+
function toggleLanguage() {
|
1223 |
+
const body = document.body;
|
1224 |
+
const currentLang = body.getAttribute('data-language');
|
1225 |
+
const newLang = currentLang === 'es' ? 'en' : 'es';
|
1226 |
+
body.setAttribute('data-language', newLang);
|
1227 |
+
body.classList.toggle('lang-en');
|
1228 |
+
}
|
1229 |
+
|
1230 |
+
function toggleHelp() {
|
1231 |
+
// Implement help modal
|
1232 |
+
}
|
1233 |
+
|
1234 |
+
// Add smooth scroll for navigation
|
1235 |
+
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
1236 |
+
anchor.addEventListener('click', function (e) {
|
1237 |
+
e.preventDefault();
|
1238 |
+
document.querySelector(this.getAttribute('href')).scrollIntoView({
|
1239 |
+
behavior: 'smooth'
|
1240 |
+
});
|
1241 |
+
});
|
1242 |
+
});
|
1243 |
+
</script>
|
1244 |
+
</body>
|
1245 |
+
</html>
|
automedical-demo-1/automedicalai.html
ADDED
@@ -0,0 +1,617 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="es" class="dark">
|
3 |
+
<head>
|
4 |
+
<meta charset="UTF-8">
|
5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
6 |
+
<meta name="apple-mobile-web-app-capable" content="yes">
|
7 |
+
<meta name="theme-color" content="#1e293b">
|
8 |
+
<title>AutomedicalAI</title>
|
9 |
+
|
10 |
+
<!-- Core libraries -->
|
11 |
+
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/tailwind.min.css" rel="stylesheet">
|
12 |
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
|
13 |
+
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
14 |
+
|
15 |
+
<!-- Add Hammer.js for gestures -->
|
16 |
+
<script src="https://hammerjs.github.io/dist/hammer.min.js"></script>
|
17 |
+
|
18 |
+
<style>
|
19 |
+
/* Core app styles */
|
20 |
+
:root {
|
21 |
+
--app-bg: #1e293b;
|
22 |
+
--card-bg: rgba(255,255,255,0.05);
|
23 |
+
--primary: #3b82f6;
|
24 |
+
--success: #22c55e;
|
25 |
+
--danger: #ef4444;
|
26 |
+
}
|
27 |
+
|
28 |
+
body {
|
29 |
+
@apply bg-slate-900 text-white antialiased touch-manipulation;
|
30 |
+
-webkit-tap-highlight-color: transparent;
|
31 |
+
}
|
32 |
+
|
33 |
+
/* App Shell */
|
34 |
+
.app-shell {
|
35 |
+
@apply fixed inset-0 flex flex-col;
|
36 |
+
height: 100dvh;
|
37 |
+
}
|
38 |
+
|
39 |
+
.app-header {
|
40 |
+
@apply flex items-center justify-between px-6 py-4
|
41 |
+
bg-slate-800/90 backdrop-blur-lg border-b border-white/10;
|
42 |
+
height: 70px;
|
43 |
+
}
|
44 |
+
|
45 |
+
.app-content {
|
46 |
+
@apply flex-1 overflow-y-auto px-6 py-4 pb-24;
|
47 |
+
height: calc(100dvh - 70px);
|
48 |
+
}
|
49 |
+
|
50 |
+
.app-nav {
|
51 |
+
@apply fixed bottom-0 inset-x-0 flex justify-around items-center
|
52 |
+
bg-slate-800/90 backdrop-blur-lg border-t border-white/10 px-4 py-3;
|
53 |
+
}
|
54 |
+
|
55 |
+
/* Cards & Components */
|
56 |
+
.ai-card {
|
57 |
+
@apply bg-white/5 backdrop-blur-md rounded-2xl p-5 mb-5
|
58 |
+
border border-white/10 transition-all duration-200
|
59 |
+
active:scale-[0.98] flex flex-col justify-center items-center;
|
60 |
+
}
|
61 |
+
.ai-card i {
|
62 |
+
@apply text-3xl mb-3;
|
63 |
+
}
|
64 |
+
|
65 |
+
.stat-card {
|
66 |
+
@apply flex flex-col items-center justify-center p-4
|
67 |
+
bg-gradient-to-br from-white/5 to-white/10
|
68 |
+
rounded-xl border border-white/10;
|
69 |
+
}
|
70 |
+
|
71 |
+
.stat-value {
|
72 |
+
@apply text-3xl font-bold bg-clip-text text-transparent
|
73 |
+
bg-gradient-to-r from-blue-400 to-purple-400;
|
74 |
+
}
|
75 |
+
|
76 |
+
/* Navigation */
|
77 |
+
.nav-item {
|
78 |
+
@apply flex flex-col items-center gap-1 px-4 py-2
|
79 |
+
text-white/60 transition-colors;
|
80 |
+
}
|
81 |
+
|
82 |
+
.nav-item.active {
|
83 |
+
@apply text-primary;
|
84 |
+
}
|
85 |
+
|
86 |
+
/* Charts */
|
87 |
+
.chart-container {
|
88 |
+
@apply relative rounded-xl overflow-hidden;
|
89 |
+
aspect-ratio: 16/9;
|
90 |
+
min-height: 250px;
|
91 |
+
}
|
92 |
+
|
93 |
+
/* Modals & Overlays */
|
94 |
+
.modal {
|
95 |
+
@apply fixed inset-0 z-50 flex items-center justify-center p-6
|
96 |
+
bg-black/80 backdrop-blur-sm opacity-0 pointer-events-none
|
97 |
+
transition-opacity duration-200;
|
98 |
+
}
|
99 |
+
|
100 |
+
.modal.active {
|
101 |
+
@apply opacity-100 pointer-events-auto;
|
102 |
+
}
|
103 |
+
|
104 |
+
.modal-content {
|
105 |
+
@apply w-full max-w-xl bg-slate-800 rounded-3xl p-8
|
106 |
+
border border-white/10 shadow-2xl;
|
107 |
+
}
|
108 |
+
|
109 |
+
/* AI Processing Animation */
|
110 |
+
.ai-processing {
|
111 |
+
@apply relative overflow-hidden;
|
112 |
+
&::before {
|
113 |
+
content: '';
|
114 |
+
@apply absolute inset-0 bg-gradient-to-r from-blue-500/20 to-purple-500/20;
|
115 |
+
animation: shimmer 2s infinite linear;
|
116 |
+
}
|
117 |
+
}
|
118 |
+
|
119 |
+
@keyframes shimmer {
|
120 |
+
0% { transform: translateX(-100%); }
|
121 |
+
100% { transform: translateX(100%); }
|
122 |
+
}
|
123 |
+
|
124 |
+
/* Skeleton Loading */
|
125 |
+
.skeleton {
|
126 |
+
@apply animate-pulse bg-white/10 rounded;
|
127 |
+
}
|
128 |
+
|
129 |
+
/* Enhanced Modal */
|
130 |
+
.modal-content {
|
131 |
+
@apply w-full max-w-xl bg-slate-800/95 backdrop-blur-xl
|
132 |
+
rounded-3xl p-8 shadow-2xl border border-white/10
|
133 |
+
transform transition-all duration-300;
|
134 |
+
&.active {
|
135 |
+
@apply scale-100 opacity-100;
|
136 |
+
}
|
137 |
+
&:not(.active) {
|
138 |
+
@apply scale-95 opacity-0;
|
139 |
+
}
|
140 |
+
}
|
141 |
+
|
142 |
+
/* Enhanced Form Elements */
|
143 |
+
.form-input {
|
144 |
+
@apply w-full px-5 py-4 bg-white/5 border border-white/10
|
145 |
+
rounded-xl text-white placeholder-white/40
|
146 |
+
focus:ring-2 focus:ring-blue-500/50 focus:border-transparent
|
147 |
+
transition-all duration-200;
|
148 |
+
}
|
149 |
+
|
150 |
+
/* Toast Notifications */
|
151 |
+
.toast {
|
152 |
+
@apply fixed bottom-24 left-1/2 -translate-x-1/2
|
153 |
+
px-7 py-4 rounded-full bg-slate-800/95
|
154 |
+
backdrop-blur-xl border border-white/10
|
155 |
+
transform transition-all duration-300
|
156 |
+
flex items-center gap-3 text-lg;
|
157 |
+
&.success { @apply border-green-500/30 text-green-400; }
|
158 |
+
&.error { @apply border-red-500/30 text-red-400; }
|
159 |
+
}
|
160 |
+
|
161 |
+
/* AI Confidence Indicator */
|
162 |
+
.ai-confidence {
|
163 |
+
@apply flex items-center gap-2 text-sm;
|
164 |
+
.indicator {
|
165 |
+
@apply h-2 rounded-full bg-gradient-to-r from-yellow-500 to-green-500;
|
166 |
+
}
|
167 |
+
}
|
168 |
+
|
169 |
+
/* Enhanced Charts */
|
170 |
+
.chart-wrapper {
|
171 |
+
@apply relative rounded-xl overflow-hidden;
|
172 |
+
aspect-ratio: 16/9;
|
173 |
+
|
174 |
+
.chart-overlay {
|
175 |
+
@apply absolute inset-0 bg-gradient-to-t from-slate-900/80 to-transparent
|
176 |
+
opacity-0 transition-opacity duration-200
|
177 |
+
flex items-end justify-center p-5;
|
178 |
+
&:hover {
|
179 |
+
@apply opacity-100;
|
180 |
+
}
|
181 |
+
}
|
182 |
+
}
|
183 |
+
</style>
|
184 |
+
</head>
|
185 |
+
|
186 |
+
<body>
|
187 |
+
<div class="app-shell">
|
188 |
+
<!-- App Header -->
|
189 |
+
<header class="app-header">
|
190 |
+
<div class="flex items-center gap-4">
|
191 |
+
<img src="logo.png" alt="AutomedicalAI" class="w-10 h-10">
|
192 |
+
<h1 class="text-xl font-semibold">AutomedicalAI</h1>
|
193 |
+
</div>
|
194 |
+
<button class="p-3 hover:bg-white/5 rounded-full">
|
195 |
+
<i class="fas fa-ellipsis-v text-xl"></i>
|
196 |
+
</button>
|
197 |
+
</header>
|
198 |
+
|
199 |
+
<!-- Main Content -->
|
200 |
+
<main class="app-content">
|
201 |
+
<!-- Quick Actions -->
|
202 |
+
<div class="grid grid-cols-2 gap-5 mb-8">
|
203 |
+
<button class="ai-card" onclick="showNewReport()">
|
204 |
+
<i class="fas fa-plus-circle text-primary"></i>
|
205 |
+
<span class="block text-base mt-2">Nuevo Informe</span>
|
206 |
+
</button>
|
207 |
+
<button class="ai-card" onclick="showHistory()">
|
208 |
+
<i class="fas fa-history text-purple-400"></i>
|
209 |
+
<span class="block text-base mt-2">Historial</span>
|
210 |
+
</button>
|
211 |
+
</div>
|
212 |
+
|
213 |
+
<!-- Key Stats -->
|
214 |
+
<div class="grid grid-cols-2 gap-5 mb-8">
|
215 |
+
<div class="stat-card">
|
216 |
+
<span class="stat-value">94%</span>
|
217 |
+
<span class="text-sm text-white/60">Precisión IA</span>
|
218 |
+
</div>
|
219 |
+
<div class="stat-card">
|
220 |
+
<span class="stat-value">-32%</span>
|
221 |
+
<span class="text-sm text-white/60">Costes</span>
|
222 |
+
</div>
|
223 |
+
</div>
|
224 |
+
|
225 |
+
<!-- Recent Reports -->
|
226 |
+
<section class="mb-8">
|
227 |
+
<h2 class="text-xl font-semibold mb-4">Informes Recientes</h2>
|
228 |
+
<div class="space-y-4">
|
229 |
+
<button class="ai-card w-full text-left p-5 flex justify-between items-center" onclick="showReport('glaucoma-123')">
|
230 |
+
<div>
|
231 |
+
<h3 class="font-medium text-lg">Informe Glaucoma</h3>
|
232 |
+
<p class="text-sm text-white/60">Juan Pérez, 54 años</p>
|
233 |
+
</div>
|
234 |
+
<div class="flex items-center gap-3">
|
235 |
+
<span class="text-xs text-white/40">Hace 2h</span>
|
236 |
+
<i class="fas fa-chevron-right text-white/40"></i>
|
237 |
+
</div>
|
238 |
+
|
239 |
+
</button>
|
240 |
+
<button class="ai-card w-full text-left p-5 flex justify-between items-center" onclick="showReport('retinopathy-456')">
|
241 |
+
<div>
|
242 |
+
<h3 class="font-medium text-lg">Informe Retinopatía</h3>
|
243 |
+
<p class="text-sm text-white/60">Maria López, 62 años</p>
|
244 |
+
</div>
|
245 |
+
<div class="flex items-center gap-3">
|
246 |
+
<span class="text-xs text-white/40">Ayer</span>
|
247 |
+
<i class="fas fa-chevron-right text-white/40"></i>
|
248 |
+
</div>
|
249 |
+
</button>
|
250 |
+
<button class="ai-card w-full text-left p-5 flex justify-between items-center" onclick="showReport('amd-789')">
|
251 |
+
<div>
|
252 |
+
<h3 class="font-medium text-lg">Informe DMAE</h3>
|
253 |
+
<p class="text-sm text-white/60">Carlos García, 78 años</p>
|
254 |
+
</div>
|
255 |
+
<div class="flex items-center gap-3">
|
256 |
+
<span class="text-xs text-white/40">Hace 3 días</span>
|
257 |
+
<i class="fas fa-chevron-right text-white/40"></i>
|
258 |
+
</div>
|
259 |
+
</button>
|
260 |
+
<!-- More reports... -->
|
261 |
+
</div>
|
262 |
+
</section>
|
263 |
+
|
264 |
+
<!-- Analysis Section -->
|
265 |
+
<section class="mb-8">
|
266 |
+
<h2 class="text-xl font-semibold mb-4">Análisis</h2>
|
267 |
+
<div class="snap-x snap-mandatory overflow-x-auto flex gap-5 -mx-6 px-6 pb-5">
|
268 |
+
<div class="snap-center shrink-0 w-[350px]">
|
269 |
+
<div class="ai-card h-full">
|
270 |
+
<h3 class="text-base font-medium mb-3">Precisión Histórica</h3>
|
271 |
+
<div class="chart-container">
|
272 |
+
<canvas id="accuracyChart"></canvas>
|
273 |
+
</div>
|
274 |
+
</div>
|
275 |
+
</div>
|
276 |
+
<div class="snap-center shrink-0 w-[350px]">
|
277 |
+
<div class="ai-card h-full">
|
278 |
+
<h3 class="text-base font-medium mb-3">Costes</h3>
|
279 |
+
<div class="chart-container">
|
280 |
+
<canvas id="costsChart"></canvas>
|
281 |
+
</div>
|
282 |
+
</div>
|
283 |
+
</div>
|
284 |
+
</div>
|
285 |
+
</section>
|
286 |
+
</main>
|
287 |
+
|
288 |
+
<!-- Bottom Navigation -->
|
289 |
+
<nav class="app-nav">
|
290 |
+
<a href="#home" class="nav-item active">
|
291 |
+
<i class="fas fa-home text-2xl"></i>
|
292 |
+
<span class="text-xs">Inicio</span>
|
293 |
+
</a>
|
294 |
+
<a href="#reports" class="nav-item">
|
295 |
+
<i class="fas fa-file-medical text-2xl"></i>
|
296 |
+
<span class="text-xs">Informes</span>
|
297 |
+
</a>
|
298 |
+
<a href="#analysis" class="nav-item">
|
299 |
+
<i class="fas fa-chart-line text-2xl"></i>
|
300 |
+
<span class="text-xs">Análisis</span>
|
301 |
+
</a>
|
302 |
+
<a href="#settings" class="nav-item">
|
303 |
+
<i class="fas fa-cog text-2xl"></i>
|
304 |
+
<span class="text-xs">Ajustes</span>
|
305 |
+
</a>
|
306 |
+
</nav>
|
307 |
+
</div>
|
308 |
+
|
309 |
+
<!-- New Report Modal -->
|
310 |
+
<div id="newReportModal" class="modal">
|
311 |
+
<div class="modal-content">
|
312 |
+
<div class="flex justify-between items-center mb-8">
|
313 |
+
<h2 class="text-xl font-semibold">Nuevo Informe</h2>
|
314 |
+
<button onclick="closeModal('newReportModal')"
|
315 |
+
class="p-3 hover:bg-white/5 rounded-full transition-colors">
|
316 |
+
<i class="fas fa-times text-xl"></i>
|
317 |
+
</button>
|
318 |
+
</div>
|
319 |
+
|
320 |
+
<form id="newReportForm" class="space-y-8">
|
321 |
+
<div>
|
322 |
+
<label class="block text-sm text-white/60 mb-3">Paciente</label>
|
323 |
+
<input type="text" class="form-input"
|
324 |
+
placeholder="Nombre del paciente" required>
|
325 |
+
</div>
|
326 |
+
|
327 |
+
<div>
|
328 |
+
<label class="block text-sm text-white/60 mb-3">Edad</label>
|
329 |
+
<input type="number" class="form-input"
|
330 |
+
placeholder="Edad" required min="0" max="120">
|
331 |
+
</div>
|
332 |
+
|
333 |
+
<div>
|
334 |
+
<label class="block text-sm text-white/60 mb-3">Diagnóstico</label>
|
335 |
+
<select class="form-input" required>
|
336 |
+
<option value="">Seleccionar diagnóstico</option>
|
337 |
+
<option value="glaucoma">Glaucoma</option>
|
338 |
+
<option value="retinopathy">Retinopatía Diabética</option>
|
339 |
+
<option value="amd">DMAE</option>
|
340 |
+
</select>
|
341 |
+
</div>
|
342 |
+
|
343 |
+
<div>
|
344 |
+
<label class="block text-sm text-white/60 mb-3">Notas</label>
|
345 |
+
<textarea class="form-input min-h-[120px]"
|
346 |
+
placeholder="Notas adicionales"></textarea>
|
347 |
+
</div>
|
348 |
+
|
349 |
+
<div class="flex justify-end gap-4 mt-4">
|
350 |
+
<button type="button" onclick="closeModal('newReportModal')"
|
351 |
+
class="px-5 py-3 rounded-xl border border-white/10
|
352 |
+
hover:bg-white/5 transition-colors">
|
353 |
+
Cancelar
|
354 |
+
</button>
|
355 |
+
<button type="submit"
|
356 |
+
class="px-5 py-3 rounded-xl bg-blue-500
|
357 |
+
hover:bg-blue-600 transition-colors">
|
358 |
+
Generar Informe
|
359 |
+
</button>
|
360 |
+
</div>
|
361 |
+
</form>
|
362 |
+
</div>
|
363 |
+
</div>
|
364 |
+
|
365 |
+
<!-- History Modal -->
|
366 |
+
<div id="historyModal" class="modal">
|
367 |
+
<div class="modal-content">
|
368 |
+
<div class="flex justify-between items-center mb-8">
|
369 |
+
<h2 class="text-xl font-semibold">Historial de Informes</h2>
|
370 |
+
<button onclick="closeModal('historyModal')"
|
371 |
+
class="p-3 hover:bg-white/5 rounded-full transition-colors">
|
372 |
+
<i class="fas fa-times text-xl"></i>
|
373 |
+
</button>
|
374 |
+
</div>
|
375 |
+
|
376 |
+
<div class="space-y-4">
|
377 |
+
<div class="ai-card w-full text-left p-5 flex justify-between items-center">
|
378 |
+
<div>
|
379 |
+
<h3 class="font-medium text-lg">Informe Glaucoma</h3>
|
380 |
+
<p class="text-sm text-white/60">Juan Pérez, 54 años</p>
|
381 |
+
</div>
|
382 |
+
<div class="flex items-center gap-3">
|
383 |
+
<span class="text-xs text-white/40">Hace 2h</span>
|
384 |
+
<i class="fas fa-chevron-right text-white/40"></i>
|
385 |
+
</div>
|
386 |
+
</div>
|
387 |
+
<div class="ai-card w-full text-left p-5 flex justify-between items-center">
|
388 |
+
<div>
|
389 |
+
<h3 class="font-medium text-lg">Informe Retinopatía</h3>
|
390 |
+
<p class="text-sm text-white/60">Maria López, 62 años</p>
|
391 |
+
</div>
|
392 |
+
<div class="flex items-center gap-3">
|
393 |
+
<span class="text-xs text-white/40">Ayer</span>
|
394 |
+
<i class="fas fa-chevron-right text-white/40"></i>
|
395 |
+
</div>
|
396 |
+
</div>
|
397 |
+
<div class="ai-card w-full text-left p-5 flex justify-between items-center">
|
398 |
+
<div>
|
399 |
+
<h3 class="font-medium text-lg">Informe DMAE</h3>
|
400 |
+
<p class="text-sm text-white/60">Carlos García, 78 años</p>
|
401 |
+
</div>
|
402 |
+
<div class="flex items-center gap-3">
|
403 |
+
<span class="text-xs text-white/40">Hace 3 días</span>
|
404 |
+
<i class="fas fa-chevron-right text-white/40"></i>
|
405 |
+
</div>
|
406 |
+
</div>
|
407 |
+
</div>
|
408 |
+
</div>
|
409 |
+
</div>
|
410 |
+
|
411 |
+
<!-- Add toast container -->
|
412 |
+
<div id="toastContainer" class="fixed bottom-24 left-0 right-0 flex flex-col items-center gap-3 z-50">
|
413 |
+
<!-- Toasts will be inserted here -->
|
414 |
+
</div>
|
415 |
+
|
416 |
+
<script>
|
417 |
+
// Initialize Hammer.js
|
418 |
+
const main = document.querySelector('main');
|
419 |
+
const hammer = new Hammer(main);
|
420 |
+
|
421 |
+
// Add pull to refresh
|
422 |
+
let startY = 0;
|
423 |
+
main.addEventListener('touchstart', e => {
|
424 |
+
startY = e.touches[0].pageY;
|
425 |
+
});
|
426 |
+
|
427 |
+
main.addEventListener('touchmove', e => {
|
428 |
+
const y = e.touches[0].pageY;
|
429 |
+
const diff = y - startY;
|
430 |
+
|
431 |
+
if (diff > 50 && main.scrollTop === 0) {
|
432 |
+
// Show refresh indicator
|
433 |
+
showToast('Actualizando...', 'info');
|
434 |
+
// Refresh data
|
435 |
+
refreshData();
|
436 |
+
}
|
437 |
+
});
|
438 |
+
|
439 |
+
// Toast system
|
440 |
+
function showToast(message, type = 'info', duration = 3000) {
|
441 |
+
const toast = document.createElement('div');
|
442 |
+
toast.className = `toast ${type}`;
|
443 |
+
toast.innerHTML = `
|
444 |
+
<i class="fas fa-${type === 'success' ? 'check-circle' :
|
445 |
+
type === 'error' ? 'exclamation-circle' :
|
446 |
+
'info-circle'}"></i>
|
447 |
+
<span>${message}</span>
|
448 |
+
`;
|
449 |
+
|
450 |
+
document.getElementById('toastContainer').appendChild(toast);
|
451 |
+
|
452 |
+
// Animate in
|
453 |
+
requestAnimationFrame(() => {
|
454 |
+
toast.style.transform = 'translateY(0)';
|
455 |
+
toast.style.opacity = '1';
|
456 |
+
});
|
457 |
+
|
458 |
+
// Remove after duration
|
459 |
+
setTimeout(() => {
|
460 |
+
toast.style.transform = 'translateY(20px)';
|
461 |
+
toast.style.opacity = '0';
|
462 |
+
setTimeout(() => toast.remove(), 300);
|
463 |
+
}, duration);
|
464 |
+
}
|
465 |
+
|
466 |
+
// Enhanced chart initialization
|
467 |
+
function initCharts() {
|
468 |
+
// Accuracy Chart
|
469 |
+
new Chart(document.getElementById('accuracyChart'), {
|
470 |
+
type: 'line',
|
471 |
+
data: {
|
472 |
+
labels: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun'],
|
473 |
+
datasets: [{
|
474 |
+
label: 'Precisión',
|
475 |
+
data: [85, 88, 90, 92, 93, 94],
|
476 |
+
borderColor: '#3b82f6',
|
477 |
+
tension: 0.4,
|
478 |
+
fill: true,
|
479 |
+
backgroundColor: 'rgba(59, 130, 246, 0.1)'
|
480 |
+
}]
|
481 |
+
},
|
482 |
+
options: {
|
483 |
+
responsive: true,
|
484 |
+
maintainAspectRatio: false,
|
485 |
+
plugins: {
|
486 |
+
legend: { display: false }
|
487 |
+
},
|
488 |
+
scales: {
|
489 |
+
y: {
|
490 |
+
beginAtZero: true,
|
491 |
+
grid: {
|
492 |
+
color: 'rgba(255,255,255,0.1)'
|
493 |
+
},
|
494 |
+
ticks: { color: 'rgba(255,255,255,0.7)' }
|
495 |
+
},
|
496 |
+
x: {
|
497 |
+
grid: { display: false },
|
498 |
+
ticks: { color: 'rgba(255,255,255,0.7)' }
|
499 |
+
}
|
500 |
+
}
|
501 |
+
}
|
502 |
+
});
|
503 |
+
|
504 |
+
// Costs Chart
|
505 |
+
new Chart(document.getElementById('costsChart'), {
|
506 |
+
type: 'bar',
|
507 |
+
data: {
|
508 |
+
labels: ['Sin IA', 'Con IA'],
|
509 |
+
datasets: [{
|
510 |
+
data: [245, 82],
|
511 |
+
backgroundColor: ['#ef4444', '#22c55e']
|
512 |
+
}]
|
513 |
+
},
|
514 |
+
options: {
|
515 |
+
responsive: true,
|
516 |
+
maintainAspectRatio: false,
|
517 |
+
plugins: {
|
518 |
+
legend: { display: false }
|
519 |
+
},
|
520 |
+
scales: {
|
521 |
+
y: {
|
522 |
+
beginAtZero: true,
|
523 |
+
grid: {
|
524 |
+
color: 'rgba(255,255,255,0.1)'
|
525 |
+
},
|
526 |
+
ticks: {
|
527 |
+
color: 'rgba(255,255,255,0.7)',
|
528 |
+
callback: value => '€' + value
|
529 |
+
}
|
530 |
+
},
|
531 |
+
x: {
|
532 |
+
grid: { display: false },
|
533 |
+
ticks: { color: 'rgba(255,255,255,0.7)' }
|
534 |
+
}
|
535 |
+
}
|
536 |
+
}
|
537 |
+
});
|
538 |
+
|
539 |
+
// Add interactivity
|
540 |
+
Chart.defaults.plugins.tooltip.enabled = true;
|
541 |
+
Chart.defaults.plugins.tooltip.mode = 'index';
|
542 |
+
Chart.defaults.plugins.tooltip.intersect = false;
|
543 |
+
Chart.defaults.plugins.tooltip.backgroundColor = 'rgba(15, 23, 42, 0.9)';
|
544 |
+
Chart.defaults.plugins.tooltip.titleColor = '#fff';
|
545 |
+
Chart.defaults.plugins.tooltip.bodyColor = '#cbd5e1';
|
546 |
+
Chart.defaults.plugins.tooltip.borderColor = 'rgba(148, 163, 184, 0.1)';
|
547 |
+
Chart.defaults.plugins.tooltip.borderWidth = 1;
|
548 |
+
Chart.defaults.plugins.tooltip.padding = 12;
|
549 |
+
Chart.defaults.plugins.tooltip.cornerRadius = 8;
|
550 |
+
}
|
551 |
+
|
552 |
+
// Form handling with validation
|
553 |
+
document.getElementById('newReportForm').addEventListener('submit', async (e) => {
|
554 |
+
e.preventDefault();
|
555 |
+
|
556 |
+
// Show processing state
|
557 |
+
showToast('Procesando con IA...', 'info');
|
558 |
+
|
559 |
+
try {
|
560 |
+
// Simulate AI processing
|
561 |
+
await new Promise(resolve => setTimeout(resolve, 2000));
|
562 |
+
|
563 |
+
showToast('Informe generado correctamente', 'success');
|
564 |
+
closeModal('newReportModal');
|
565 |
+
|
566 |
+
// Update UI with new report
|
567 |
+
addNewReport();
|
568 |
+
} catch (error) {
|
569 |
+
showToast('Error al generar el informe', 'error');
|
570 |
+
}
|
571 |
+
});
|
572 |
+
|
573 |
+
// Add haptic feedback
|
574 |
+
function vibrate(pattern = [10]) {
|
575 |
+
if ('vibrate' in navigator) {
|
576 |
+
navigator.vibrate(pattern);
|
577 |
+
}
|
578 |
+
}
|
579 |
+
|
580 |
+
// Initialize
|
581 |
+
document.addEventListener('DOMContentLoaded', () => {
|
582 |
+
initCharts();
|
583 |
+
|
584 |
+
// Add touch feedback
|
585 |
+
document.querySelectorAll('button, .ai-card').forEach(el => {
|
586 |
+
el.addEventListener('click', () => vibrate());
|
587 |
+
});
|
588 |
+
});
|
589 |
+
|
590 |
+
// Modal handlers
|
591 |
+
function showModal(id) {
|
592 |
+
document.getElementById(id).classList.add('active');
|
593 |
+
}
|
594 |
+
|
595 |
+
function closeModal(id) {
|
596 |
+
document.getElementById(id).classList.remove('active');
|
597 |
+
}
|
598 |
+
|
599 |
+
function showNewReport() {
|
600 |
+
showModal('newReportModal');
|
601 |
+
}
|
602 |
+
|
603 |
+
function showHistory() {
|
604 |
+
showModal('historyModal');
|
605 |
+
}
|
606 |
+
|
607 |
+
// Navigation
|
608 |
+
document.querySelectorAll('.nav-item').forEach(item => {
|
609 |
+
item.addEventListener('click', e => {
|
610 |
+
e.preventDefault();
|
611 |
+
document.querySelectorAll('.nav-item').forEach(i => i.classList.remove('active'));
|
612 |
+
item.classList.add('active');
|
613 |
+
});
|
614 |
+
});
|
615 |
+
</script>
|
616 |
+
</body>
|
617 |
+
</html>
|
docs/REFERENCE_example-propuesta-12-octubre-report copy.pdf
ADDED
Binary file (249 kB). View file
|
|
docs/fernandoli-cv.html
ADDED
File without changes
|
index.html
CHANGED
@@ -32,10 +32,13 @@
|
|
32 |
}
|
33 |
.card {
|
34 |
transition: all 0.3s ease;
|
|
|
|
|
35 |
}
|
36 |
.card:hover {
|
37 |
transform: translateY(-4px);
|
38 |
box-shadow: 0 10px 25px rgba(0,0,0,0.3);
|
|
|
39 |
}
|
40 |
[lang="en"] { display: none; }
|
41 |
.lang-en [lang="en"] { display: block; }
|
@@ -100,6 +103,139 @@
|
|
100 |
font-size: 2rem;
|
101 |
cursor: pointer;
|
102 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
</style>
|
104 |
</head>
|
105 |
<body class="bg-gradient-to-br from-gray-900 to-gray-800 text-white min-h-screen" data-language="es">
|
@@ -114,11 +250,11 @@
|
|
114 |
<span lang="es">EN</span>
|
115 |
<span lang="en">ES</span>
|
116 |
</button>
|
117 |
-
<a href="#proposals" class="nav-link hover:text-blue-400">
|
118 |
<span lang="es">Propuestas</span>
|
119 |
<span lang="en">Proposals</span>
|
120 |
</a>
|
121 |
-
<a href="#docs" class="nav-link hover:text-blue-400">
|
122 |
<span lang="es">Documentación</span>
|
123 |
<span lang="en">Documentation</span>
|
124 |
</a>
|
@@ -143,6 +279,37 @@
|
|
143 |
</p>
|
144 |
</div>
|
145 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
<!-- Main Content -->
|
147 |
<div class="grid gap-8">
|
148 |
<!-- Spanish Proposals Section -->
|
@@ -260,11 +427,36 @@
|
|
260 |
<iframe id="docFrame" src=""></iframe>
|
261 |
</div>
|
262 |
|
263 |
-
<footer class="bg-gray-800
|
264 |
-
<
|
265 |
-
<
|
266 |
-
|
267 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
268 |
</footer>
|
269 |
|
270 |
<script>
|
@@ -288,9 +480,19 @@
|
|
288 |
|
289 |
// Document viewer functions
|
290 |
function openDoc(url) {
|
291 |
-
document.getElementById('
|
292 |
-
document.getElementById('
|
|
|
|
|
|
|
|
|
293 |
document.body.style.overflow = 'hidden';
|
|
|
|
|
|
|
|
|
|
|
|
|
294 |
}
|
295 |
|
296 |
function closeDoc() {
|
@@ -303,6 +505,27 @@
|
|
303 |
document.addEventListener('keydown', (e) => {
|
304 |
if (e.key === 'Escape') closeDoc();
|
305 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
306 |
</script>
|
307 |
</body>
|
308 |
</html>
|
|
|
32 |
}
|
33 |
.card {
|
34 |
transition: all 0.3s ease;
|
35 |
+
background: linear-gradient(135deg, rgba(31, 41, 55, 0.98), rgba(17, 24, 39, 0.98));
|
36 |
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
37 |
}
|
38 |
.card:hover {
|
39 |
transform: translateY(-4px);
|
40 |
box-shadow: 0 10px 25px rgba(0,0,0,0.3);
|
41 |
+
border-color: rgba(59, 130, 246, 0.5);
|
42 |
}
|
43 |
[lang="en"] { display: none; }
|
44 |
.lang-en [lang="en"] { display: block; }
|
|
|
103 |
font-size: 2rem;
|
104 |
cursor: pointer;
|
105 |
}
|
106 |
+
|
107 |
+
/* Enhanced Readability */
|
108 |
+
.readable-text {
|
109 |
+
@apply text-lg leading-relaxed text-gray-100;
|
110 |
+
}
|
111 |
+
|
112 |
+
.glass-card {
|
113 |
+
background: linear-gradient(135deg, rgba(31, 41, 55, 0.98), rgba(17, 24, 39, 0.98));
|
114 |
+
backdrop-filter: blur(16px);
|
115 |
+
border: 1px solid rgba(255, 255, 255, 0.15);
|
116 |
+
}
|
117 |
+
|
118 |
+
/* Personal Brand Section */
|
119 |
+
.personal-intro {
|
120 |
+
@apply relative overflow-hidden rounded-2xl p-8 mb-12;
|
121 |
+
background: linear-gradient(135deg, rgba(37, 99, 235, 0.1), rgba(124, 58, 237, 0.1));
|
122 |
+
}
|
123 |
+
|
124 |
+
.personal-intro::before {
|
125 |
+
content: '';
|
126 |
+
position: absolute;
|
127 |
+
inset: 0;
|
128 |
+
background: url('/assets/neural-pattern.svg') center/cover;
|
129 |
+
opacity: 0.1;
|
130 |
+
}
|
131 |
+
|
132 |
+
/* Cost Benefits Display */
|
133 |
+
.metric-card {
|
134 |
+
@apply p-6 rounded-xl glass-card relative overflow-hidden;
|
135 |
+
border: 1px solid rgba(59, 130, 246, 0.2);
|
136 |
+
}
|
137 |
+
|
138 |
+
.metric-value {
|
139 |
+
@apply text-4xl font-bold bg-clip-text text-transparent;
|
140 |
+
background-image: linear-gradient(135deg, #3b82f6, #8b5cf6);
|
141 |
+
}
|
142 |
+
|
143 |
+
.metric-label {
|
144 |
+
@apply text-sm text-blue-300 uppercase tracking-wider;
|
145 |
+
}
|
146 |
+
|
147 |
+
/* Improve text contrast in cards */
|
148 |
+
.card p {
|
149 |
+
@apply text-gray-100;
|
150 |
+
}
|
151 |
+
|
152 |
+
/* Enhance link visibility */
|
153 |
+
.nav-link {
|
154 |
+
@apply text-gray-100 hover:text-blue-400 transition-colors;
|
155 |
+
font-weight: 500;
|
156 |
+
}
|
157 |
+
|
158 |
+
/* Improve section spacing */
|
159 |
+
.section {
|
160 |
+
@apply mb-12;
|
161 |
+
}
|
162 |
+
|
163 |
+
/* Better mobile responsiveness */
|
164 |
+
@media (max-width: 768px) {
|
165 |
+
.nav-link {
|
166 |
+
@apply text-sm;
|
167 |
+
}
|
168 |
+
|
169 |
+
h1 {
|
170 |
+
@apply text-4xl;
|
171 |
+
}
|
172 |
+
|
173 |
+
.card {
|
174 |
+
@apply p-4;
|
175 |
+
}
|
176 |
+
}
|
177 |
+
|
178 |
+
/* Add loading indicator */
|
179 |
+
.loading {
|
180 |
+
position: relative;
|
181 |
+
}
|
182 |
+
|
183 |
+
.loading::after {
|
184 |
+
content: 'Cargando...';
|
185 |
+
position: absolute;
|
186 |
+
top: 50%;
|
187 |
+
left: 50%;
|
188 |
+
transform: translate(-50%, -50%);
|
189 |
+
color: white;
|
190 |
+
background: rgba(0,0,0,0.7);
|
191 |
+
padding: 1rem 2rem;
|
192 |
+
border-radius: 9999px;
|
193 |
+
}
|
194 |
+
|
195 |
+
/* Make headings more visible */
|
196 |
+
h1, h2, h3 {
|
197 |
+
@apply text-white;
|
198 |
+
}
|
199 |
+
|
200 |
+
/* Enhance secondary text readability */
|
201 |
+
.text-gray-300 {
|
202 |
+
@apply text-gray-200;
|
203 |
+
}
|
204 |
+
|
205 |
+
/* Better mobile spacing */
|
206 |
+
@media (max-width: 768px) {
|
207 |
+
.max-w-6xl {
|
208 |
+
@apply px-4; /* Reduce side padding on mobile */
|
209 |
+
}
|
210 |
+
|
211 |
+
.grid.md\:grid-cols-2 {
|
212 |
+
@apply grid-cols-1 gap-4; /* Stack cards on mobile */
|
213 |
+
}
|
214 |
+
|
215 |
+
.flex.gap-4 {
|
216 |
+
@apply flex-col gap-3; /* Stack buttons on mobile */
|
217 |
+
}
|
218 |
+
|
219 |
+
.text-5xl {
|
220 |
+
@apply text-3xl; /* Smaller headings on mobile */
|
221 |
+
}
|
222 |
+
}
|
223 |
+
|
224 |
+
/* Add loading states */
|
225 |
+
.loading {
|
226 |
+
@apply relative pointer-events-none opacity-75;
|
227 |
+
}
|
228 |
+
|
229 |
+
.loading::after {
|
230 |
+
content: '';
|
231 |
+
@apply absolute inset-0 bg-gradient-to-r from-transparent via-white/10 to-transparent;
|
232 |
+
animation: shimmer 1.5s infinite;
|
233 |
+
}
|
234 |
+
|
235 |
+
@keyframes shimmer {
|
236 |
+
0% { transform: translateX(-100%); }
|
237 |
+
100% { transform: translateX(100%); }
|
238 |
+
}
|
239 |
</style>
|
240 |
</head>
|
241 |
<body class="bg-gradient-to-br from-gray-900 to-gray-800 text-white min-h-screen" data-language="es">
|
|
|
250 |
<span lang="es">EN</span>
|
251 |
<span lang="en">ES</span>
|
252 |
</button>
|
253 |
+
<a href="#proposals" class="nav-link hover:text-blue-400 scroll-smooth">
|
254 |
<span lang="es">Propuestas</span>
|
255 |
<span lang="en">Proposals</span>
|
256 |
</a>
|
257 |
+
<a href="#docs" class="nav-link hover:text-blue-400 scroll-smooth">
|
258 |
<span lang="es">Documentación</span>
|
259 |
<span lang="en">Documentation</span>
|
260 |
</a>
|
|
|
279 |
</p>
|
280 |
</div>
|
281 |
|
282 |
+
<div class="personal-intro">
|
283 |
+
<div class="relative z-10">
|
284 |
+
<h2 class="text-3xl font-bold mb-4 text-blue-400">
|
285 |
+
<span lang="es">Sobre el Autor</span>
|
286 |
+
<span lang="en">About the Author</span>
|
287 |
+
</h2>
|
288 |
+
<p class="readable-text mb-4">
|
289 |
+
<span lang="es">
|
290 |
+
Soy un especialista en IA médica con experiencia en el desarrollo de soluciones
|
291 |
+
como AutoGlaucoma y AutoMedicalAI. Mi objetivo es transformar la sanidad española
|
292 |
+
mediante la implementación de IA accesible y efectiva.
|
293 |
+
</span>
|
294 |
+
<span lang="en">
|
295 |
+
I'm a medical AI specialist with experience developing solutions like
|
296 |
+
AutoGlaucoma and AutoMedicalAI. My goal is to transform Spanish healthcare
|
297 |
+
through accessible and effective AI implementation.
|
298 |
+
</span>
|
299 |
+
</p>
|
300 |
+
<div class="flex gap-4">
|
301 |
+
<a href="#contact" class="btn bg-blue-500 hover:bg-blue-600 px-6 py-2 rounded-full">
|
302 |
+
<span lang="es">Contactar</span>
|
303 |
+
<span lang="en">Contact</span>
|
304 |
+
</a>
|
305 |
+
<a href="/projects.html" class="btn border border-blue-400 px-6 py-2 rounded-full hover:bg-blue-500/10">
|
306 |
+
<span lang="es">Ver Proyectos</span>
|
307 |
+
<span lang="en">View Projects</span>
|
308 |
+
</a>
|
309 |
+
</div>
|
310 |
+
</div>
|
311 |
+
</div>
|
312 |
+
|
313 |
<!-- Main Content -->
|
314 |
<div class="grid gap-8">
|
315 |
<!-- Spanish Proposals Section -->
|
|
|
427 |
<iframe id="docFrame" src=""></iframe>
|
428 |
</div>
|
429 |
|
430 |
+
<footer class="bg-gray-800/50 backdrop-blur-lg mt-12 py-12 border-t border-white/10">
|
431 |
+
<div class="max-w-6xl mx-auto px-8 grid grid-cols-1 md:grid-cols-4 gap-8">
|
432 |
+
<div>
|
433 |
+
<h4 class="text-lg font-bold mb-4">IA Hospital Hub</h4>
|
434 |
+
<p class="text-gray-400">Transformando la sanidad con soluciones de IA innovadoras y accesibles.</p>
|
435 |
+
</div>
|
436 |
+
<div>
|
437 |
+
<h4 class="text-lg font-bold mb-4">Proyectos</h4>
|
438 |
+
<ul class="space-y-2 text-gray-400">
|
439 |
+
<li><a href="/projects/autoglaucoma.html" class="hover:text-blue-400">AutoGlaucoma AI</a></li>
|
440 |
+
<li><a href="/projects/automedical.html" class="hover:text-blue-400">AutoMedicalAI</a></li>
|
441 |
+
<li><a href="/projects/analytics.html" class="hover:text-blue-400">Hospital Analytics</a></li>
|
442 |
+
</ul>
|
443 |
+
</div>
|
444 |
+
<div>
|
445 |
+
<h4 class="text-lg font-bold mb-4">Recursos</h4>
|
446 |
+
<ul class="space-y-2 text-gray-400">
|
447 |
+
<li><a href="/docs" class="hover:text-blue-400">Documentación</a></li>
|
448 |
+
<li><a href="/api" class="hover:text-blue-400">API</a></li>
|
449 |
+
<li><a href="/papers" class="hover:text-blue-400">Papers</a></li>
|
450 |
+
</ul>
|
451 |
+
</div>
|
452 |
+
<div>
|
453 |
+
<h4 class="text-lg font-bold mb-4">Contacto</h4>
|
454 |
+
<ul class="space-y-2 text-gray-400">
|
455 |
+
<li>[email protected]</li>
|
456 |
+
<li>Madrid, España</li>
|
457 |
+
</ul>
|
458 |
+
</div>
|
459 |
+
</div>
|
460 |
</footer>
|
461 |
|
462 |
<script>
|
|
|
480 |
|
481 |
// Document viewer functions
|
482 |
function openDoc(url) {
|
483 |
+
const docViewer = document.getElementById('docViewer');
|
484 |
+
const docFrame = document.getElementById('docFrame');
|
485 |
+
|
486 |
+
// Show loading state
|
487 |
+
docViewer.classList.add('active');
|
488 |
+
docFrame.classList.add('loading');
|
489 |
document.body.style.overflow = 'hidden';
|
490 |
+
|
491 |
+
// Load document
|
492 |
+
docFrame.onload = () => {
|
493 |
+
docFrame.classList.remove('loading');
|
494 |
+
};
|
495 |
+
docFrame.src = url;
|
496 |
}
|
497 |
|
498 |
function closeDoc() {
|
|
|
505 |
document.addEventListener('keydown', (e) => {
|
506 |
if (e.key === 'Escape') closeDoc();
|
507 |
});
|
508 |
+
|
509 |
+
// Add smooth scrolling
|
510 |
+
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
511 |
+
anchor.addEventListener('click', function (e) {
|
512 |
+
e.preventDefault();
|
513 |
+
document.querySelector(this.getAttribute('href')).scrollIntoView({
|
514 |
+
behavior: 'smooth'
|
515 |
+
});
|
516 |
+
});
|
517 |
+
});
|
518 |
+
|
519 |
+
// Add loading feedback
|
520 |
+
function showLoading(element) {
|
521 |
+
element.classList.add('loading');
|
522 |
+
element.setAttribute('disabled', 'true');
|
523 |
+
}
|
524 |
+
|
525 |
+
function hideLoading(element) {
|
526 |
+
element.classList.remove('loading');
|
527 |
+
element.removeAttribute('disabled');
|
528 |
+
}
|
529 |
</script>
|
530 |
</body>
|
531 |
</html>
|