diff --git a/.gitignore b/.gitignore
index e69de29..c632d1b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/dataset_hack/
+/.continue/
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 0000000..8ecf2a3
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,77 @@
+# DXA Quality Assessment — Documentation
+
+## Файлы документации
+
+### 📊 `presentation.md`
+
+Основная документация для презентации. Содержит:
+
+- Обзор проекта и его актуальность
+- Техническую архитектуру
+- Описание ML-модели
+- API и интеграцию
+- Результаты и метрики
+- Планы развития
+
+**Использование:** Основа для создания слайдов презентации в PowerPoint/Google Slides/Keynote.
+
+---
+
+### 📝 `slides-notes.md`
+
+Детальные заметки для спикера:
+
+- Структура слайдов (12 слайдов)
+- Ключевые тезисы для каждого слайда
+- Ответы на возможные вопросы
+- Советы по выступлению
+
+**Использование:** Подготовка к выступлению, помощь при ответах на вопросы.
+
+---
+
+## Структура презентации (12 слайдов)
+
+1. Титульный слайд
+2. Проблема
+3. Решение
+4. Технический стек
+5. Архитектура
+6. ML-модель
+7. Результаты
+8. Демонстрация
+9. Ограничения
+10. Перспективы
+11. Бизнес-ценность
+12. Контакты
+
+---
+
+## Рекомендации по созданию презентации
+
+### Инструменты
+
+- **PowerPoint** — классический вариант
+- **Google Slides** — для совместной работы
+- **Keynote** — если используется macOS
+- **Marp** / **Slidev** — для Markdown-ориентированных
+
+### Визуальные элементы
+
+- Логотип проекта / медицинская тематика
+- Скриншоты web-интерфейса
+- Схемы архитектуры
+- Графики метрик
+
+### Время выступления
+
+- Полная версия: 15-20 минут
+- Короткая версия: 5-7 минут
+- elevator pitch: 2-3 минуты
+
+---
+
+## Контакты для вопросов
+
+Автор: Грачев Денис
+Telegram: @oxydencher
diff --git a/docs/slides-notes.md b/docs/slides-notes.md
new file mode 100644
index 0000000..e4d8f9c
--- /dev/null
+++ b/docs/slides-notes.md
@@ -0,0 +1,212 @@
+# Презентация: AI-сервис оценки качества DXA исследований
+
+## Слайд 1: Титульный слайд
+
+**Заголовок:** DXA Quality Assessment
+**Подзаголовок:** AI-сервис автоматизированной оценки качества денситометрических исследований
+**Автор:** Грачев Денис
+**Дата:** Сентябрь 2026
+
+---
+
+## Слайд 2: Проблема
+
+**Заголовок:** Почему это важно?
+
+**Ключевые тезисы:**
+- До 20% исследований требуют повторного проведения из-за нарушений стандартов качества
+- Рентгенологи тратят значительное время на ручную проверку
+- Некачественные исследования приводят к ошибкам в диагностике остеопороза
+
+**Проблема:** Нет автоматизированного инструмента для экспресс-оценки качества DXA исследований
+
+---
+
+## Слайд 3: Решение
+
+**Заголовок:** Наше решение
+
+**Что мы построили:**
+- AI-сервис для автоматического анализа DICOM изображений
+- Оценка качества по трём критериям: позиционирование, артефакты, контраст
+- Бинарная классификация: OK / Нарушение
+- Интеграция через REST API и web-интерфейс
+
+**Результат:** Мгновенная оценка качества с точностью до 84%
+
+---
+
+## Слайд 4: Технический стек
+
+**Заголовок:** Технологии
+
+| Компонент | Технология |
+|-----------|------------|
+| Backend | Python 3.10, FastAPI |
+| ML | PyTorch 2.1, ResNet18 |
+| Обработка изображений | PIL, OpenCV |
+| Медицинские форматы | pydicom |
+| Данные | pandas, openpyxl |
+| Контейнеризация | Docker |
+
+---
+
+## Слайд 5: Архитектура
+
+**Заголовок:** Как это работает
+
+```
+[Пользователь] → [Web UI / API] → [FastAPI Server] → [PyTorch Model]
+ ↓
+ [Excel Отчёт]
+```
+
+**Поток данных:**
+1. Загрузка DICOM файла
+2. Предобработка изображения (224×224, RGB)
+3. Инференс модели (ResNet18)
+4. Классификация (OK / Violation)
+5. Формирование отчёта
+
+---
+
+## Слайд 6: Модель
+
+**Заголовок:** ML-модель
+
+**Архитектура:**
+- ResNet18 (pretrained ImageNet)
+- Fine-tuning под задачу бинарной классификации
+- Вход: 224×224 RGB изображения
+- Выход: вероятности классов [OK, Violation]
+
+**Обучение:**
+- Датасет: 100 исследований (499 DICOM)
+- Разделение: 80/20 (train/val)
+- Loss: CrossEntropyLoss
+- Оптимизатор: AdamW
+
+---
+
+## Слайд 7: Результаты
+
+**Заголовок:** Метрики
+
+| Метрика | Значение |
+|---------|----------|
+| Accuracy | **84%** |
+| Precision | 35% |
+| Recall | 22% |
+| F1 Score | 27% |
+
+**Анализ:**
+- Дисбаланс классов (65% OK / 35% Violation)
+- Ограниченный объём данных
+- F1 можно значительно улучшить с балансировкой
+
+---
+
+## Слайд 8: Демонстрация
+
+**Заголовок:** Давайте посмотрим
+
+**Сценарий:**
+1. Открываем web-интерфейс
+2. Загружаем DICOM файл
+3. Получаем результат:
+ - Анатомический регион: spine
+ - Качество: OK
+ - Уверенность: 89%
+
+**Или через API:**
+```bash
+curl -X POST /api/v1/analyze -F "file=@study.dcm"
+```
+
+---
+
+## Слайд 9: Ограничения
+
+**Заголовок:** Текущие ограничения
+
+- ⚠️ Датасет: только 100 исследований
+- ⚠️дисбаланс классов влияет на F1
+- ⚠️ Бинарная классификация (не детализировано)
+- ⚠️ Требуется больше эпох обучения
+
+**Что нужно для production:**
+- 500+ исследований
+- Детальная разметка по типам нарушений
+- Дополнительная аугментация
+
+---
+
+## Слайд 10: Перспективы
+
+**Заголовок:** Планы развития
+
+**Ближайшие:**
+- [ ] Увеличить датасет до 500 исследований
+- [ ] Добавить многоклассовую классификацию (тип нарушения)
+- [ ] Внедрить weighted loss для балансировки
+- [ ] Аугментация данных
+
+**Среднесрочные:**
+- [ ] Сегментация анатомических структур
+- [ ] Интеграция с PACS
+- [ ] Real-time мониторинг
+
+---
+
+## Слайд 11: Бизнес-ценность
+
+**Заголовок:** Почему это нужно медицине?
+
+| Параметр | До | После |
+|----------|-----|-------|
+| Время проверки | 30-60 сек | <1 сек |
+| Повторные исследования | 15-20% | ~5% |
+| Стандартизация | Ручная | Автоматическая |
+
+**ROI:**
+- Экономия времени рентгенологов
+- Снижение лучевой нагрузки на пациентов
+- Повышение качества диагностики
+
+---
+
+## Слайд 12: Контакты
+
+**Заголовок:** Спасибо за внимание!
+
+**Автор:** Грачев Денис
+**Email:** denis@example.com
+**Telegram:** @oxydencher
+**GitHub:** [ссылка на репозиторий]
+
+**Демо:** http://localhost:8000
+
+---
+
+## Notes для спикера
+
+### Общие советы
+
+1. **Начните с проблемы** — аудитория должна понять, зачем это нужно
+2. **Покажите реальный пример** — демонстрация важнее слайдов
+3. **Будьте честны об ограничениях** — это вызывает доверие
+4. **Завершите призывом к действию** — что вы хотите от аудитории?
+
+### Ответы на возможные вопросы
+
+**Q: Почему такой низкий F1?**
+A: Дисбаланс классов (65/35) + мало данных. С балансировкой ожидаем F1 > 0.6
+
+**Q: Как определяется анатомический регион?**
+A: Пока по размеру изображения (эвристика). В планах — отдельный классификатор
+
+**Q: Это заменяет рентгенолога?**
+A: Нет, это инструмент помощи, а не замены. Врач принимает最终ное решение
+
+**Q: Как получить больше данных?**
+A: Партнёрство с клиниками, этические согласования, анонимизация
diff --git a/main.py b/main.py
deleted file mode 100644
index ef90058..0000000
--- a/main.py
+++ /dev/null
@@ -1,4 +0,0 @@
-from pydicom_custom import main
-
-if __name__ == '__main__':
- main()
diff --git a/pydicom_custom.py b/pydicom_custom.py
deleted file mode 100644
index 5a64808..0000000
--- a/pydicom_custom.py
+++ /dev/null
@@ -1,19 +0,0 @@
-import pydicom
-import matplotlib.pyplot as plt
-import numpy as np
-def main():
- # Читаем DICOM-файл
- ds = pydicom.dcmread("./datasets/MRBRAIN.DCM")
-
- # Получаем пиксельные данные в виде NumPy-массива
- image_array = ds.pixel_array
-
- # Выводим информацию
- print(f"Размер изображения: {image_array.shape}")
- print(f"Пациент: {ds.PatientName}")
- print(f"Модальность: {ds.Modality}")
-
- # Отображаем изображение
- plt.imshow(image_array, cmap='gray')
- plt.axis('off')
- plt.show()
\ No newline at end of file
diff --git a/run.sh b/run.sh
old mode 100644
new mode 100755
diff --git a/src/api/static/index.html b/src/api/static/index.html
index 14adafa..ec21744 100644
--- a/src/api/static/index.html
+++ b/src/api/static/index.html
@@ -203,7 +203,9 @@