prithivMLmods commited on
Commit
ac0337f
1 Parent(s): 8488110

Upload 7 files

Browse files
src/app/App.tsx ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import React from 'react';
2
+ import { Helmet } from 'react-helmet';
3
+ import { useNavigate } from 'react-router-dom';
4
+ import AuscultateSvg from './auscultate.svg';
5
+ import EcgSvg from './ecg.svg';
6
+ import CxrSvg from './xray.svg';
7
+
8
+ const links = [
9
+ {
10
+ icon: <img src={AuscultateSvg} />,
11
+ title: 'Auscultation',
12
+ description: 'Heart and breath sounds',
13
+ link: 'https://lysine-auscultate.hf.space/',
14
+ },
15
+ {
16
+ icon: <img src={EcgSvg} />,
17
+ title: 'ECG',
18
+ description: 'From the PTB-XL ECG Database',
19
+ link: 'https://lysine-ecg-db.hf.space/',
20
+ },
21
+ {
22
+ icon: <img src={CxrSvg} />,
23
+ title: 'Chest X-ray',
24
+ description: 'From the NIH Chest X-ray Database',
25
+ link: 'https://lysine-cxr-db.hf.space/',
26
+ },
27
+ ];
28
+
29
+ export default function App() {
30
+ const navigate = useNavigate();
31
+ return (
32
+ <div className="flex flex-col gap-8 w-full items-center p-4 pt-16">
33
+ <Helmet>
34
+ <title>Clinical Database</title>
35
+ </Helmet>
36
+ <p className="text-3xl text-center">Clinical Database</p>
37
+ <p>A series of websites presenting med-related data for practice.</p>
38
+ <div className="flex flex-col gap-8 items-stretch">
39
+ {links.map(link => (
40
+ <div
41
+ key={link.title}
42
+ className="card sm:card-side bg-base-300 shadow-xl w-full sm:min-w-[500px]"
43
+ >
44
+ <figure className="bg-accent p-4">{link.icon}</figure>
45
+ <div className="card-body">
46
+ <h2 className="card-title">{link.title}</h2>
47
+ <p>{link.description}</p>
48
+ <div className="card-actions justify-end mt-4">
49
+ <button
50
+ className="btn btn-primary"
51
+ onClick={() =>
52
+ link.link.startsWith('http')
53
+ ? (window.location.href = link.link)
54
+ : navigate(link.link)
55
+ }
56
+ >
57
+ Enter
58
+ </button>
59
+ </div>
60
+ </div>
61
+ </div>
62
+ ))}
63
+ </div>
64
+ </div>
65
+ );
66
+ }
src/app/auscultate.svg ADDED
src/app/ecg.svg ADDED
src/app/favicon.svg ADDED
src/app/globals.css ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
4
+
5
+ body {
6
+ margin: 0;
7
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
8
+ Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
9
+ -webkit-font-smoothing: antialiased;
10
+ -moz-osx-font-smoothing: grayscale;
11
+ }
12
+
13
+ code {
14
+ font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
15
+ monospace;
16
+ }
src/app/main.tsx ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import React from 'react';
2
+ import { createRoot } from 'react-dom/client';
3
+ import './globals.css';
4
+ import App from './App';
5
+ import { createBrowserRouter, RouterProvider } from 'react-router-dom';
6
+
7
+ const router = createBrowserRouter([
8
+ {
9
+ path: '/',
10
+ element: <App />,
11
+ },
12
+ ]);
13
+
14
+ const container = document.querySelector('#root');
15
+ const root = createRoot(container!);
16
+ root.render(
17
+ <React.StrictMode>
18
+ <RouterProvider router={router} />
19
+ </React.StrictMode>
20
+ );
src/app/xray.svg ADDED