SlideLink

Патоморфологічна платформа

Платформа обміну
патоморфологічними слайдами

SlideLink забезпечує безпечний обмін гігапіксельними медичними зображеннями між лабораторією, медичними установами та пацієнтами

DZI
Deep Zoom Image
WSI
Whole Slide Imaging
HIPAA
Безпека даних

Що таке SlideLink?

Централізована платформа для патоморфологічної лабораторії, яка дозволяє безпечно ділитися слайдами з медичними установами та пацієнтами

Лабораторія

Завантаження слайдів, створення кейсів, управління доступом для установ та пацієнтів

Медичні установи

Перегляд призначених кейсів у режимі read-only, управління своїми користувачами

Пацієнти

Особистий кабінет, перегляд своїх слайдів, створення посилань для другої думки

Ролі користувачів

Система підтримує 5 рівнів доступу

Роль Рівень Права доступу
Admin Лабораторія Повний доступ: всі кейси, користувачі лабораторії, установи, бібліотека, дашборд
Lab User Лабораторія Свої кейси, завантаження слайдів, передача установам та пацієнтам
Institution Admin Установа Перегляд всіх кейсів установи, управління користувачами установи
Institution User Установа Перегляд призначених кейсів (read-only)
Patient Пацієнт Особистий кабінет, перегляд своїх слайдів, створення share-посилань

Функціональні можливості

🔬 Лабораторія

Кейси пацієнтів

Створення, редагування, фільтрація по установі, даті, пошук

Завантаження слайдів

DZI ZIP архіви, drag-and-drop, мініатюри

Документи

PDF, DOCX, зображення — завантаження та перегляд

OpenSeadragon Viewer

Масштабування, вимірювання, ROI, скріншоти, повноекранний режим

Доступ для установ

Призначення кейсів установам або конкретним лікарям

Експорт пацієнтам

Передача слайдів у кабінет пацієнта

Бібліотека слайдів

Каталогізація з категоріями, пошук, публічні слайди

ROI та скріншоти

Збереження регіонів інтересу та скріншотів

BigTIFF експорт

Конвертація DZI назад у TIFF формат

⚙️ Адміністрування

Дашборд

Статистика, остання активність, моніторинг сховища

Глобальний пошук

Пошук по установах, лікарях, пацієнтах

Всі слайди

Фільтрація по даті, патологу, кейсу

Моніторинг доступів

Доступи, що закінчуються (7 днів)

Користувачі лабораторії

CRUD для патологів лабораторії

Управління установами

Створення установ та їх адміністраторів

🏥 Установи

Дашборд установи

Список доступних кейсів

Read-only перегляд

Перегляд слайдів, документів без редагування

Управління лікарями

Institution Admin керує своїми користувачами

👤 Пацієнти

Особистий кабінет

Перегляд отриманих слайдів

Share-посилання

Створення посилань для другої думки

Захист паролем

Опціональний пароль для share-посилань

Термін дії

Обмеження часу та кількості переглядів

Робочий процес

1️⃣

Завантаження слайду

Патолог лабораторії завантажує DZI ZIP архів через drag-and-drop. Система автоматично розпаковує та індексує тайли.

📤
📋
2️⃣

Створення кейсу

Створюється кейс з даними пацієнта. При створенні можна одразу вказати установу та патолога для доступу.

3️⃣

Надання доступу

Кейс передається установі (всій або конкретному лікарю) та/або експортується пацієнту.

🔗
👁️
4️⃣

Перегляд лікарем

Лікар установи входить в систему та переглядає кейс через OpenSeadragon viewer у режимі read-only.

5️⃣

Друга думка (2nd Opinion)

Пацієнт отримує слайд у свій кабінет і може створити захищене посилання для консультації з іншим лікарем.

🔄

Технічна архітектура

Технологічний стек

🐍 Python 3.11 + Flask
🗄️ MySQL 8.0 Connection Pool
🐳 Docker + Docker Compose
🌐 Nginx Reverse Proxy
🔍 OpenSeadragon DZI Viewer
🎨 Tailwind CSS UI Framework

Модель даних

users — користувачі лабораторії
institutions — медичні установи
institution_users — лікарі установ
patients — пацієнти
cases — кейси пацієнтів
case_slides — слайди кейсу
case_documents — документи кейсу
case_access — доступ установ до кейсів
patient_slides — слайди пацієнтів
share_links — посилання 2nd opinion
slide_library — бібліотека слайдів

Сховище даних

📂
/static/slides
DZI тайли
📄
/static/cases
Документи кейсів
📸
/static/screenshots
Скріншоти
📦
/static/exports
Тимчасові TIFF

API Endpoints

Основні REST API для інтеграцій

Кейси

GET /api/cases/<uuid>/slides Список слайдів кейсу
POST /api/cases/<uuid>/slides Завантажити слайд
POST /api/cases/<uuid>/grant-access Надати доступ установі
POST /api/cases/<uuid>/export-to-patient Експорт пацієнту

ROI та скріншоти

GET /api/cases/<uuid>/roi Список ROI
POST /api/cases/<uuid>/roi Створити ROI
GET /api/cases/<uuid>/screenshots Список скріншотів
POST /api/cases/<uuid>/screenshots Створити скріншот

Бібліотека

POST /api/library/add Додати до бібліотеки
PUT /api/library/<id> Оновити запис
DELETE /api/library/<id> Видалити з бібліотеки

Безпека

🔐

HTTPS

Шифрування всього трафіку через SSL/TLS

🔑

bcrypt

Хешування паролів з сіллю

🛡️

CSRF Protection

Захист від Cross-Site Request Forgery

👥

RBAC

Role-Based Access Control

⏱️

Rate Limiting

Захист від brute-force атак

📋

Session Management

Безпечні HTTP-only cookies