File size: 5,289 Bytes
b0bcfd5
 
 
 
 
e3566c9
ae34acf
 
 
 
b0bcfd5
 
 
 
 
 
e4fd6e0
 
 
 
 
b0bcfd5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e3566c9
b0bcfd5
 
 
e4fd6e0
 
 
 
 
 
 
e3566c9
e4fd6e0
e3566c9
 
e4fd6e0
 
 
 
 
b0bcfd5
e4fd6e0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b0bcfd5
 
 
 
 
 
 
 
 
 
e3566c9
b0bcfd5
 
 
 
 
 
 
 
 
e4fd6e0
b0bcfd5
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>{% block title %}AI Medical Intelligence Pipeline{% endblock %}</title>
    <!-- Favicon -->
    <link rel="icon" type="image/x-icon" href="{{ url_for('static', filename='favicon.ico') }}" />
    <link rel="icon" type="image/png" sizes="32x32" href="{{ url_for('static', filename='favicon-192.png') }}" />
    <link rel="apple-touch-icon" sizes="180x180" href="{{ url_for('static', filename='apple-touch-icon.png') }}" />
    <link rel="preconnect" href="https://fonts.googleapis.com" />
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
    <link
      href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
      rel="stylesheet"
    />
    <link rel="stylesheet" href="{{ url_for('static', filename='css/base.css') }}" />
    <link rel="stylesheet" href="{{ url_for('static', filename='css/components.css') }}" />
    <link rel="stylesheet" href="{{ url_for('static', filename='css/pages.css') }}" />
    <link rel="stylesheet" href="{{ url_for('static', filename='css/auth.css') }}" />
    <link rel="stylesheet" href="{{ url_for('static', filename='css/responsive.css') }}" />
    {% block head %}{% endblock %}
  </head>
  <body>
    <!-- ── Top navigation ─────────────────────────────────────────────── -->
    <header class="topbar">
      <div class="topbar-inner">
        <a class="brand" href="{{ url_for('home') }}">
          <span class="brand-icon">
            <svg
              width="22"
              height="22"
              viewBox="0 0 24 24"
              fill="none"
              stroke="currentColor"
              stroke-width="2"
              stroke-linecap="round"
              stroke-linejoin="round"
            >
              <path d="M22 12h-4l-3 9L9 3l-3 9H2" />
            </svg>
          </span>
          <span>AI Medical Intelligence Pipeline</span>
        </a>

        <nav class="nav-links">
          {% if current_user.is_authenticated %}
            <a href="{{ url_for('home') }}"
               class="{% if request.endpoint == 'home' %}active{% endif %}">Home</a>
            <a href="{{ url_for('upload') }}"
               class="{% if request.endpoint == 'upload' %}active{% endif %}">New Scan</a>
            <a href="{{ url_for('reports') }}"
               class="{% if request.endpoint == 'reports' %}active{% endif %}">Past Reports</a>
            {% if show_logs %}
            <a href="{{ url_for('logs_page') }}"
              class="{% if request.endpoint == 'logs_page' %}active{% endif %}">Logs</a>
            {% endif %}
            <a href="{{ url_for('evaluation') }}"
               class="{% if request.endpoint == 'evaluation' %}active{% endif %}">Evaluation</a>
            <a href="{{ url_for('about') }}"
               class="{% if request.endpoint == 'about' %}active{% endif %}">About</a>
          {% endif %}
        </nav>

        {% if current_user.is_authenticated %}
        <div class="user-menu">
          <button class="user-button" type="button" data-user-menu-toggle="true" title="User menu">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
              <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path>
              <circle cx="12" cy="7" r="4"></circle>
            </svg>
            <span>{{ current_user.username }}</span>
          </button>
          <div id="userMenuDropdown" class="user-menu-dropdown">
            <a href="{{ url_for('auth.profile') }}" class="menu-item">Profile</a>
            <hr>
            <form method="POST" action="{{ url_for('auth.logout') }}" class="logout-form">
              <button type="submit" class="menu-item logout-btn">Logout</button>
            </form>
          </div>
        </div>
        {% else %}
        <div class="auth-buttons">
          <a href="{{ url_for('auth.login') }}" class="btn btn-sm btn-outline">Login</a>
          <a href="{{ url_for('auth.register') }}" class="btn btn-sm btn-primary">Register</a>
        </div>
        {% endif %}
      </div>
    </header>

    <!-- ── Main content ────────────────────────────────────────────────── -->
    <main class="container page">{% block content %}{% endblock %}</main>

    <!-- ── Footer ──────────────────────────────────────────────────────── -->
    <footer class="footer">
      <div class="container footer-inner">
        <p>
          AI Medical Intelligence Pipeline for CT Scan Analysis &mdash;
          Screening Tool, Not a Diagnostic Device
        </p>
        <p class="muted small">
          All findings must be reviewed by a qualified medical professional.
        </p>
      </div>
    </footer>

    {% block scripts %}{% endblock %}
    <script src="{{ url_for('static', filename='js/layout.js') }}" defer></script>
  </body>
</html>