2 changed files with 435 additions and 3 deletions
@ -0,0 +1,261 @@ |
|||||||
|
# Техническое задание на разработку системы "Medical Input Helper" |
||||||
|
|
||||||
|
## 1. Введение |
||||||
|
|
||||||
|
### 1.1. Наименование системы |
||||||
|
**Medical Input Helper** - интеллектуальная система автоматизации ввода медицинских текстов с поддержкой AI. |
||||||
|
|
||||||
|
### 1.2. Назначение системы |
||||||
|
Разработка программного обеспечения для автоматизации процесса ввода и форматирования медицинских текстов, с интеграцией AI-моделей для анализа медицинских данных, включая обработку ЛОР-эндоскопических изображений. |
||||||
|
|
||||||
|
## 2. Общие требования |
||||||
|
|
||||||
|
### 2.1. Функциональное назначение |
||||||
|
Система должна предоставлять следующие возможности: |
||||||
|
- Автоматическое обнаружение полей ввода в различных приложениях |
||||||
|
- Интеллектуальная обработка медицинских текстов с использованием LLM |
||||||
|
- Анализ ЛОР-эндоскопических изображений и генерация медицинских заключений |
||||||
|
- Drag-and-drop интерфейс для работы с текстом и изображениями |
||||||
|
- Фоновая работа через системный трей |
||||||
|
|
||||||
|
### 2.2. Целевая аудитория |
||||||
|
- Врачи-оториноларингологи |
||||||
|
- Медицинские регистраторы |
||||||
|
- Медицинский персонал, работающий с EHR системами |
||||||
|
|
||||||
|
## 3. Технические требования |
||||||
|
|
||||||
|
### 3.1. Архитектура системы |
||||||
|
``` |
||||||
|
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐ |
||||||
|
│ GUI Layer │◄──►│ Business Logic │◄──►│ AI Services │ |
||||||
|
│ (PyQt6) │ │ Layer │ │ Layer │ |
||||||
|
└─────────────────┘ └──────────────────┘ └─────────────────┘ |
||||||
|
│ │ │ |
||||||
|
▼ ▼ ▼ |
||||||
|
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐ |
||||||
|
│ System Tray │ │ Drag & Drop │ │ LLM Models │ |
||||||
|
│ Icon Window │ │ Handler │ │ Image Analysis │ |
||||||
|
└─────────────────┘ └──────────────────┘ └─────────────────┘ |
||||||
|
``` |
||||||
|
|
||||||
|
### 3.2. Компоненты системы |
||||||
|
|
||||||
|
#### 3.2.1. Основные модули (реализованы) |
||||||
|
- **main.py** - точка входа приложения |
||||||
|
- **main_window.py** - главное окно и управление состоянием |
||||||
|
- **main_interface.py** - пользовательский интерфейс |
||||||
|
- **ai_worker.py** - обработка AI запросов в отдельном потоке |
||||||
|
- **drag_drop_handler.py** - обработка drag-and-drop операций |
||||||
|
- **icon_window.py** - плавающая иконка приложения |
||||||
|
|
||||||
|
#### 3.2.2. Структура данных |
||||||
|
``` |
||||||
|
project/ |
||||||
|
├── models/ # AI модели (LLM + компьютерное зрение) |
||||||
|
├── data/ # Пользовательские данные и изображения |
||||||
|
├── chroma_db/ # Векторная база медицинских знаний |
||||||
|
└── rag_corpus.json # Медицинский корпус для RAG |
||||||
|
``` |
||||||
|
|
||||||
|
### 3.3. Технологический стек |
||||||
|
- **GUI Framework**: PyQt6 |
||||||
|
- **AI/ML**: llama-cpp-python, ChromaDB, Sentence Transformers |
||||||
|
- **Computer Vision**: OpenCV, Pillow, Torch |
||||||
|
- **System Integration**: uiautomation, pyperclip, keyboard |
||||||
|
- **Utilities**: qtawesome, psutil, requests |
||||||
|
|
||||||
|
## 4. Функциональные требования |
||||||
|
|
||||||
|
### 4.1. Модуль автоматизации ввода (реализован) |
||||||
|
|
||||||
|
#### 4.1.1. Обнаружение полей ввода |
||||||
|
- [x] Автоматическое определение фокуса на редактируемых полях |
||||||
|
- [x] Поддержка различных типов контролов (Edit, Text, ComboBox) |
||||||
|
- [x] Работа с нативными приложениями и веб-браузерами |
||||||
|
|
||||||
|
#### 4.1.2. Управление интерфейсом |
||||||
|
- [x] Плавающее окно с автоматическим позиционированием |
||||||
|
- [x] Два режима работы: компактный и расширенный |
||||||
|
- [x] Перетаскивание окон мышью |
||||||
|
- [x] Системный трей для фоновой работы |
||||||
|
|
||||||
|
### 4.2. Модуль обработки текста (реализован) |
||||||
|
|
||||||
|
#### 4.2.1. Базовые функции |
||||||
|
- [x] Копирование текста из активных полей |
||||||
|
- [x] Вставка форматированного текста |
||||||
|
- [x] Drag-and-drop для текстового контента |
||||||
|
|
||||||
|
#### 4.2.2. AI-обработка текста |
||||||
|
- [x] Интеграция с YandexGPT-5-Lite моделью |
||||||
|
- [x] RAG (Retrieval-Augmented Generation) для медицинских текстов |
||||||
|
- [x] Специализированные промпты для: |
||||||
|
- [x] Обработки жалоб пациента |
||||||
|
- [x] Форматирования анамнеза заболевания |
||||||
|
- [x] Генерации медицинских заключений |
||||||
|
|
||||||
|
### 4.3. Модуль работы с изображениями (частично реализован) |
||||||
|
|
||||||
|
#### 4.3.1. Загрузка и обработка изображений (реализовано) |
||||||
|
- [x] Drag-and-drop загрузка локальных файлов |
||||||
|
- [x] Загрузка изображений по URL |
||||||
|
- [x] Поддержка форматов: JPG, PNG, BMP, GIF, TIFF, WebP |
||||||
|
- [x] Автоматическое определение типа контента |
||||||
|
|
||||||
|
#### 4.3.2. Анализ ЛОР-эндоскопических изображений (требует доработки) |
||||||
|
- [ ] Интеграция моделей компьютерного зрения для анализа: |
||||||
|
- [ ] Состояния барабанной перепонки |
||||||
|
- [ ] Патологий наружного слухового прохода |
||||||
|
- [ ] Воспалительных процессов |
||||||
|
- [ ] Наличия инородных тел |
||||||
|
- [ ] Классификация изображений по типам патологий |
||||||
|
- [ ] Генерация структурированного ЛОР-статуса |
||||||
|
|
||||||
|
#### 4.3.3. Генерация медицинских заключений |
||||||
|
- [ ] Комбинированный анализ: изображение + анамнез |
||||||
|
- [ ] Автоматическая генерация заключения ИИ |
||||||
|
- [ ] Форматирование согласно медицинским стандартам |
||||||
|
|
||||||
|
## 5. Требования к AI-компонентам |
||||||
|
|
||||||
|
### 5.1. Текстовая обработка (реализована) |
||||||
|
- **Модель**: YandexGPT-5-Lite-8B-instruct (GGUF) |
||||||
|
- **Контекст**: 2048 токенов |
||||||
|
- **Температура**: 0.1 для детерминированных результатов |
||||||
|
- **RAG система**: ChromaDB с rubert-tiny2 эмбеддингами |
||||||
|
|
||||||
|
### 5.2. Визуальный анализ (требует реализации) |
||||||
|
|
||||||
|
#### 5.2.1. Модели компьютерного зрения |
||||||
|
- **Основная модель**: Предобученная CNN для классификации ЛОР-изображений |
||||||
|
- **Дополнительные модели**: |
||||||
|
- Segmentation моделей для выделения областей интереса |
||||||
|
- Detection моделей для идентификации патологий |
||||||
|
|
||||||
|
#### 5.2.2. Требования к анализу изображений |
||||||
|
- **Точность классификации**: >85% для основных патологий |
||||||
|
- **Время обработки**: <10 секунд на изображение |
||||||
|
- **Поддерживаемые патологии**: |
||||||
|
- Отиты (наружный, средний) |
||||||
|
- Перфорации барабанной перепонки |
||||||
|
- Инородные тела слухового прохода |
||||||
|
- Новообразования |
||||||
|
- Воспалительные процессы |
||||||
|
|
||||||
|
## 6. Интерфейс пользователя |
||||||
|
|
||||||
|
### 6.1. Основной интерфейс (реализован) |
||||||
|
- [x] Компактный режим (70px) для экономии места |
||||||
|
- [x] Расширенный режим (200px) с полным функционалом |
||||||
|
- [x] Адаптивные drop-зоны для разных типов контента |
||||||
|
- [x] Визуальная индикация процесса обработки |
||||||
|
|
||||||
|
### 6.2. Элементы управления (реализованы) |
||||||
|
- [x] Кнопка "Копировать жалобы" |
||||||
|
- [x] Кнопка "Копировать анамнез" |
||||||
|
- [x] Кнопка "ЛОР-Статус" |
||||||
|
- [x] Кнопка "Заключение ИИ" |
||||||
|
- [x] Кнопка "Новый случай" |
||||||
|
|
||||||
|
### 6.3. Визуальное оформление (реализовано) |
||||||
|
- [x] Темная тема с градиентами |
||||||
|
- [x] Иконки QtAwesome для лучшей визуализации |
||||||
|
- [x] Анимации изменения размеров окон |
||||||
|
- [x] Эффекты тени и прозрачности |
||||||
|
|
||||||
|
## 7. Требования к производительности |
||||||
|
|
||||||
|
### 7.1. Время отклика |
||||||
|
- Загрузка интерфейса: <3 секунд |
||||||
|
- Обработка текста LLM: <15 секунд |
||||||
|
- Анализ изображения: <10 секунд |
||||||
|
- Переключение между режимами: <0.5 секунд |
||||||
|
|
||||||
|
### 7.2. Использование ресурсов |
||||||
|
- Память: <2GB в режиме ожидания |
||||||
|
- Память с LLM: <4GB при активной обработке |
||||||
|
- CPU: <15% в режиме ожидания |
||||||
|
|
||||||
|
## 8. Требования к совместимости |
||||||
|
|
||||||
|
### 8.1. Операционные системы |
||||||
|
- [x] Windows 10/11 |
||||||
|
- [ ] Linux (требует тестирования) |
||||||
|
- [ ] macOS (требует тестирования) |
||||||
|
|
||||||
|
### 8.2. Целевые приложения |
||||||
|
- [x] Веб-браузеры (Chrome, Edge, Firefox) |
||||||
|
- [x] Текстовые редакторы (Word, Блокнот) |
||||||
|
- [x] EHR системы (тестирование требуется) |
||||||
|
- [x] Почтовые клиенты |
||||||
|
|
||||||
|
## 9. Этапы разработки |
||||||
|
|
||||||
|
### Этап 1: Базовый функционал (РЕАЛИЗОВАН) |
||||||
|
- [x] Архитектура приложения |
||||||
|
- [x] Основной GUI |
||||||
|
- [x] Система drag-and-drop |
||||||
|
- [x] Интеграция LLM для текста |
||||||
|
- [x] Системный трей и фоновая работа |
||||||
|
|
||||||
|
### Этап 2: Анализ изображений (В РАЗРАБОТКЕ) |
||||||
|
- [ ] Интеграция моделей компьютерного зрения |
||||||
|
- [ ] Разработка пайплайна обработки ЛОР-изображений |
||||||
|
- [ ] Тестирование точности классификации |
||||||
|
- [ ] Оптимизация производительности |
||||||
|
|
||||||
|
### Этап 3: Расширенная функциональность (ПЛАНИРУЕТСЯ) |
||||||
|
- [ ] Поддержка дополнительных медицинских специальностей |
||||||
|
- [ ] Интеграция с медицинскими базами данных |
||||||
|
- [ ] Расширенная кастомизация интерфейса |
||||||
|
- [ ] Пакетная обработка данных |
||||||
|
|
||||||
|
## 10. Критерии приемки |
||||||
|
|
||||||
|
### 10.1. Функциональные тесты |
||||||
|
- [ ] Автоматическое появление панели при фокусе на поле ввода |
||||||
|
- [ ] Корректная обработка медицинских текстов LLM |
||||||
|
- [ ] Точная классификация ЛОР-изображений (>85%) |
||||||
|
- [ ] Стабильная работа в фоновом режиме |
||||||
|
|
||||||
|
### 10.2. Производительностные тесты |
||||||
|
- [ ] Обработка 100+ текстовых запросов без утечек памяти |
||||||
|
- [ ] Анализ 50+ изображений без деградации производительности |
||||||
|
- [ ] Работа в течение 24+ часов без перезапуска |
||||||
|
|
||||||
|
### 10.3. Пользовательские тесты |
||||||
|
- [ ] Удобство использования медицинским персоналом |
||||||
|
- [ ] Сокращение времени на ввод документации на 40% |
||||||
|
- [ ] Положительные отзывы от 10+ тестовых пользователей |
||||||
|
|
||||||
|
## 11. Документация |
||||||
|
|
||||||
|
### 11.1. Техническая документация |
||||||
|
- [x] README с инструкциями по установке |
||||||
|
- [x] .gitignore для управления версиями |
||||||
|
- [ ] API документация для AI модулей |
||||||
|
- [ ] Руководство по развертыванию |
||||||
|
|
||||||
|
### 11.2. Пользовательская документация |
||||||
|
- [ ] Руководство пользователя |
||||||
|
- [ ] Видео-инструкции по основным сценариям |
||||||
|
- [ ] FAQ по решению常见 проблем |
||||||
|
|
||||||
|
## 12. Медицинские требования и ограничения |
||||||
|
|
||||||
|
### 12.1. Предупреждения |
||||||
|
- Система является вспомогательным инструментом |
||||||
|
- Все AI-генерации должны проверяться врачом |
||||||
|
- Не заменяет профессиональную медицинскую диагностику |
||||||
|
|
||||||
|
### 12.2. Соответствие стандартам |
||||||
|
- Соблюдение медицинской этики |
||||||
|
- Конфиденциальность patient data |
||||||
|
- Соответствие требованиям к медицинскому ПО |
||||||
|
|
||||||
|
--- |
||||||
|
|
||||||
|
**Техническое задание утверждено:** [Дата] |
||||||
|
**Версия:** 1.0 |
||||||
|
**Статус:** В разработке (Этап 1 завершен, Этап 2 в процессе) |
||||||
Loading…
Reference in new issue