You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
15 KiB
15 KiB
Техническое задание на разработку системы "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. Обнаружение полей ввода
- Автоматическое определение фокуса на редактируемых полях
- Поддержка различных типов контролов (Edit, Text, ComboBox)
- Работа с нативными приложениями и веб-браузерами
4.1.2. Управление интерфейсом
- Плавающее окно с автоматическим позиционированием
- Два режима работы: компактный и расширенный
- Перетаскивание окон мышью
- Системный трей для фоновой работы
4.2. Модуль обработки текста (реализован)
4.2.1. Базовые функции
- Копирование текста из активных полей
- Вставка форматированного текста
- Drag-and-drop для текстового контента
4.2.2. AI-обработка текста
- Интеграция с YandexGPT-5-Lite моделью
- RAG (Retrieval-Augmented Generation) для медицинских текстов
- Специализированные промпты для:
- Обработки жалоб пациента
- Форматирования анамнеза заболевания
- Генерации медицинских заключений
4.3. Модуль работы с изображениями (частично реализован)
4.3.1. Загрузка и обработка изображений (реализовано)
- Drag-and-drop загрузка локальных файлов
- Загрузка изображений по URL
- Поддержка форматов: JPG, PNG, BMP, GIF, TIFF, WebP
- Автоматическое определение типа контента
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. Основной интерфейс (реализован)
- Компактный режим (70px) для экономии места
- Расширенный режим (200px) с полным функционалом
- Адаптивные drop-зоны для разных типов контента
- Визуальная индикация процесса обработки
6.2. Элементы управления (реализованы)
- Кнопка "Копировать жалобы"
- Кнопка "Копировать анамнез"
- Кнопка "ЛОР-Статус"
- Кнопка "Заключение ИИ"
- Кнопка "Новый случай"
6.3. Визуальное оформление (реализовано)
- Темная тема с градиентами
- Иконки QtAwesome для лучшей визуализации
- Анимации изменения размеров окон
- Эффекты тени и прозрачности
7. Требования к производительности
7.1. Время отклика
- Загрузка интерфейса: <3 секунд
- Обработка текста LLM: <15 секунд
- Анализ изображения: <10 секунд
- Переключение между режимами: <0.5 секунд
7.2. Использование ресурсов
- Память: <2GB в режиме ожидания
- Память с LLM: <4GB при активной обработке
- CPU: <15% в режиме ожидания
8. Требования к совместимости
8.1. Операционные системы
- Windows 10/11
- Linux (требует тестирования)
- macOS (требует тестирования)
8.2. Целевые приложения
- Веб-браузеры (Chrome, Edge, Firefox)
- Текстовые редакторы (Word, Блокнот)
- EHR системы (тестирование требуется)
- Почтовые клиенты
9. Этапы разработки
Этап 1: Базовый функционал (РЕАЛИЗОВАН)
- Архитектура приложения
- Основной GUI
- Система drag-and-drop
- Интеграция LLM для текста
- Системный трей и фоновая работа
Этап 2: Анализ изображений (В РАЗРАБОТКЕ)
- Интеграция моделей компьютерного зрения
- Разработка пайплайна обработки ЛОР-изображений
- Тестирование точности классификации
- Оптимизация производительности
Этап 3: Расширенная функциональность (ПЛАНИРУЕТСЯ)
- Поддержка дополнительных медицинских специальностей
- Интеграция с медицинскими базами данных
- Расширенная кастомизация интерфейса
- Пакетная обработка данных
10. Критерии приемки
10.1. Функциональные тесты
- Автоматическое появление панели при фокусе на поле ввода
- Корректная обработка медицинских текстов LLM
- Точная классификация ЛОР-изображений (>85%)
- Стабильная работа в фоновом режиме
10.2. Производительностные тесты
- Обработка 100+ текстовых запросов без утечек памяти
- Анализ 50+ изображений без деградации производительности
- Работа в течение 24+ часов без перезапуска
10.3. Пользовательские тесты
- Удобство использования медицинским персоналом
- Сокращение времени на ввод документации на 40%
- Положительные отзывы от 10+ тестовых пользователей
11. Документация
11.1. Техническая документация
- README с инструкциями по установке
- .gitignore для управления версиями
- API документация для AI модулей
- Руководство по развертыванию
11.2. Пользовательская документация
- Руководство пользователя
- Видео-инструкции по основным сценариям
- FAQ по решению常见 проблем
12. Медицинские требования и ограничения
12.1. Предупреждения
- Система является вспомогательным инструментом
- Все AI-генерации должны проверяться врачом
- Не заменяет профессиональную медицинскую диагностику
12.2. Соответствие стандартам
- Соблюдение медицинской этики
- Конфиденциальность patient data
- Соответствие требованиям к медицинскому ПО
Техническое задание утверждено: [Дата] Версия: 1.0 Статус: В разработке (Этап 1 завершен, Этап 2 в процессе)