261 lines
15 KiB
Markdown
261 lines
15 KiB
Markdown
# Техническое задание на разработку системы "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 в процессе) |