Единый ИИ-центр для анализа медицинских изображений, ЭКГ, лабораторных данных и генетики
Translation pending
HealthTypeScript · JavaScriptGitHub @vasiliys961OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Медицинский ИИ‑ассистент для врачей (Streamlit, OpenRouter)
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Версия: 4.8.x | Дата: 15 марта 2026 | Статус: 🚀 Laboratory + Camera + Skin Analysis Update
Комплексное веб-приложение для врачей и экспертных клиник, построенное на Next.js 14. Помогает анализировать медицинские данные с помощью агентских AI-цепочек (через OpenAI-compatible LLM-шлюз: OpenRouter/Polza и др.). Поддерживает DICOM, лабораторные анализы, генетические отчёты, голосовые протоколы, прямое подключение медоборудования через USB и клиническую анонимизацию данных.
Внимание: это вспомогательный инструмент для врачей. Все выводы носят рекомендательный характер и требуют клинического подтверждения.
docs/ANONYMIZATION_GUIDE.mdМедицинские изображения блок Релевантные источники теперь подбирается по вероятным диагнозам/находкам из результата, а не только по типу модальности.Заключение/Диагноз) с нормализацией терминов RU/EN и ICD-кодов; промежуточный шум отбрасывается.Медицинские изображения и Дерматоскопии доступен поиск похожих снимков по вашему атласу (описание, фото, текущий снимок).Как работают релевантные источники, включая отдельные шаги для PDF/сканов.| Раздел | Диагноз-ориентированные источники | Источники | Статус |
|---|---|---|---|
Медицинские изображения (универсальный режим) | Да, кросс-модально по вероятным диагнозам/находкам из результата | DermNet, LITFL, ECGWaves, Radiopaedia, Radiology Assistant, POCUS Atlas, EyeWiki, AAO, ACR/BI-RADS, PathologyOutlines | ✅ Включено |
Оценка ЭКГ | Да, по ЭКГ-паттернам (STEMI, AF, VT, блокады, QT и др.) | LITFL, ECGWaves | ✅ Включено |
Оценка дерматоскопии | Да, по дерматологическим диагнозам и паттернам | DermNet | ✅ Включено |
Описание рентгена | Да, по находкам CXR (пневмония, пневмоторакс, выпот и т.д.) | Radiopaedia, Radiology Assistant (site-search) | ✅ Включено |
Описание КТ | Да, по КТ-находкам (в т.ч. mass effect, hydrocephalus и др.) | Radiopaedia, Radiology Assistant (site-search) | ✅ Включено |
Описание МРТ | Да, по МР-находкам (очаговые/объемные изменения и др.) | Radiopaedia, Radiology Assistant (site-search) | ✅ Включено |
Описание УЗИ | Да, по УЗИ-находкам (абдоминальные, сосудистые, эхо, акушерство) | Radiopaedia, POCUS Atlas | ✅ Включено |
Сканирование документов (PDF/сканы) | Косвенно: через извлечение текста (OCR) и передачу клинического фрагмента в Медицинские изображения | Зависит от выбранной модальности после OCR | ✅ Поддержано через workflow |
Примечание: в стриминге ссылки стабилизируются по мере накопления текста; финальный пересчет выполняется по итоговому клиническому выводу (
Заключение/Диагноз).
aiesa/transcribe, fallback openai/whisper-large-v3).git clone https://github.com/vasiliys961/doctor-opus.git
cd doctor-opus
npm install
LLM_BASE_URL=https://openrouter.ai/api/v1
LLM_API_KEY=ваш_ключ
# backward compatibility:
# OPENROUTER_API_KEY=ваш_ключ
POSTGRES_URL=ссылка_на_базу
NEXTAUTH_SECRET=случайная_строка
NEXTAUTH_URL=https://doctor-opus.ru
POLZA_API_KEY=ваш_ключ
MIGRATION_SECRET=случайная_строка_32_символа
ENCRYPTION_SALT=случайная_строка_32_символа
Рекомендуется взять полный шаблон из .env.example и заполнить его:
cp .env.example .env
Для STT через Polza (Aiesa primary + Whisper fallback) + ролевая диаризация (врач/пациент):
SPEECH_PROVIDER=polza
POLZA_BASE_URL=https://polza.ai/api/v1
POLZA_API_KEY=ваш_ключ
POLZA_STT_PRIMARY_MODEL=aiesa/transcribe
POLZA_STT_FALLBACK_MODEL=openai/whisper-large-v3
STT_ENABLE_DIARIZATION=true
STT_ROLE_DIARIZATION_ENABLED=true
STT_ROLE_DIARIZATION_MODEL=anthropic/claude-haiku-4.5
npm run dev
Команда поднимает:
✅ Защита API: Middleware с NextAuth JWT — все endpoints требуют авторизацию
✅ Серверный биллинг: PostgreSQL транзакции с FOR UPDATE — защита от race conditions
✅ Безопасные логи: Автоматическая маскировка API ключей, токенов и email
✅ Расширенная анонимизация: ИНН, СНИЛС, паспорта, телефоны, адреса удаляются из PHI данных
Перед любыми действиями по прод-деплою смотрите правила веток и окружений: DEPLOY.md.
nginx/ssl/ (fullchain.crt, privkey.key).LLM_BASE_URLLLM_API_KEY (или OPENROUTER_API_KEY для обратной совместимости)NEXTAUTH_SECRETNEXTAUTH_URLMIGRATION_SECRETENCRYPTION_SALTdocker compose pull
docker compose build --no-cache medical-assistant
docker compose up -d
docker compose ps
docker compose logs -f medical-assistant
curl -I https://doctor-opus.ru
docker-compose.yml переменные без значений будут пустыми, если не задать их в .env.SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS, SMTP_FROM.PAYMENT_PROVIDER=payanyway, PAYANYWAY_MNT_ID, PAYANYWAY_SECRET, PAYANYWAY_TEST_MODE.PAYANYWAY_STOREFRONT_ENABLED=true и обязательно задайте PAYANYWAY_STOREFRONT_TOKEN.pending без transaction_id через API PayAnyWay) задайте PAYANYWAY_OPERATION_LOOKUP_KEY, PAYANYWAY_OPERATION_LOOKUP_SECRET, при необходимости PAYANYWAY_OPERATION_LOOKUP_ACCOUNT.doctor-opus/
├── app/ # Маршруты Next.js (Pages & API)
├── components/ # UI-компоненты (React)
├── lib/ # Ядро: база данных, логика биллинга, AI-стриминг
├── public/ # Статические ресурсы
├── types/ # TypeScript определения
└── docs/history/ # Архив отчетов и документации
Разработчик не несет ответственности за клинические решения, принятые на основе рекомендаций системы.