Макс Здоровье
Для Windows 11 · Chrome/Edge · Python 3.12+

Ваш архив здоровья — на вашем диске, не в чужом облаке.

Макс Здоровье собирает медицинские документы из личного кабинета Госуслуг, раскладывает по папкам, извлекает показатели и помогает в них разобраться — всё локально, на одном компьютере.

Это вспомогательная аналитика, а не медицинское заключение. Для диагноза обратитесь к врачу.

Что делает

📥

Собирает документы с Госуслуг

По кнопке расширения «Проверить документы» → «Скачать новые». Вы нажимаете, Макс складывает в raw/ГГГГ/ММ/.

🔍

Читает PDF и показатели

pdfplumber → pypdf → OCR-фоллбек на Tesseract для сканов. Извлекает гемоглобин, глюкозу, холестерин, давление и др.

📊

Пишет отчёты

5 markdown-сводок: «Сводка по здоровью», «Таймлайн», «Новое за 30 дней», «К врачу», «Не распарсилось». Всё локально.

👀

Следит за папкой

Скинули PDF вручную — тоже подхватит. watchdog ждёт, пока файл дописан, и обрабатывает.

💬

Чат «Макс»

Локальный чат на 127.0.0.1:8765 — спросите «что изменилось за месяц» или «покажи динамику гемоглобина».

🛡️

Дедуп и целостность

SHA-256 + source_id — один и тот же документ не попадёт дважды. SQLite в WAL-режиме.

Почему это безопасно

Принципы

  1. Вход на Госуслуги — только пользователь. Никакого автологина, MFA-обхода, экспорта cookies.
  2. Расширение работает только на Госуслугах. host_permissions ограничены lk.gosuslugi.ru и www.gosuslugi.ru.
  3. Все данные локально. raw/, reports/, db/ — на вашем диске. По умолчанию ничего не передаётся в сеть.
  4. GigaChat опционален. Выключен при установке. Включается тоглом. По умолчанию — только извлечённый текст, PDF целиком никогда без вашего подтверждения.
  5. Персональные данные в логах маскируются. СНИЛС, паспорт, email, телефон — заменяются звёздочками.

Threat model (кратко)

  • Утечка медданных во внешние сервисы → всё локально, GigaChat off-by-default.
  • Компрометация cookies Госуслуг → не читаем cookies, работаем через штатный chrome.downloads.
  • Прорыв XSS → native host принимает строгий набор команд с лимитом 5 МБ.
  • Небезопасная регистрация на Windows → регистрация в HKCU, без админских прав, обратимо удалением.
  • ПДн в логах → logger.sanitize() маскирует regex-паттернами.

Полная модель угроз — в plans/architecture.md внутри проекта.

Как устроено

Три процесса

  • Chrome MV3 расширение — работает только на Госуслугах, собирает метаданные документов, инициирует скачивание.
  • Python native host — короткоживущий, отвечает на команды расширения: дедуп, перенос в архив, парсинг.
  • Python daemon — следит за папкой watchdog'ом, отдаёт FastAPI-чат на 127.0.0.1:8765.

Поток документа

  1. Вы открыли Госуслуги, вошли в свой аккаунт.
  2. Нажали в попапе «Проверить документы» — расширение читает DOM, считает дельту по source_id.
  3. Нажали «Скачать новые» — браузер кладёт файлы в Downloads/max-zdorovie-staging/.
  4. Native host считает SHA-256, отсекает дубликаты, переносит в raw/ГГГГ/ММ/, парсит, пишет в SQLite.
  5. Demon-watchdog поднимает 5 markdown-отчётов в reports/.
  6. Вы открываете чат «Макс» и задаёте вопросы по архиву.

Установка

Все команды — PowerShell. Нужны Python 3.12+, Chrome или Edge.

  1. Скачайте и распакуйте в G:\mvp\zdorovie\

    Скачать ZIP

  2. Запустите setup

    cd G:\mvp\zdorovie
    .\scripts\setup.ps1

    Создаст venv, поставит зависимости, сгенерирует иконки и конфиг.

  3. Загрузите расширение

    Откройте chrome://extensions → «Режим разработчика» → «Загрузить распакованное» → выберите G:\mvp\zdorovie\extension. Скопируйте Extension ID.

  4. Зарегистрируйте native messaging host

    .\scripts\install_native_host.ps1 -ExtensionId <ID> -Browser both
  5. Запустите демона

    .\scripts\run.ps1

    Либо тестовый режим без Госуслуг:

    .\scripts\run.ps1 -Mock
  6. Готово

    Иконка расширения в браузере. Чат — на http://127.0.0.1:8765. Отчёты — в G:\mvp\zdorovie\reports\.

Частые вопросы

Вы получаете доступ к моему аккаунту Госуслуг?

Нет. Вход делаете только вы, в вашем Chrome/Edge. Расширение не читает ваши cookies и не обходит MFA. Оно лишь знает, какие документы лежат на странице списка, — по тем же DOM-элементам, что видите вы.

Куда попадают документы?

В G:\mvp\zdorovie\raw\ГГГГ\ММ\ на вашем диске. В сеть по умолчанию ничего не уходит.

Что такое GigaChat и зачем он?

Это LLM от Сбера. В Макс Здоровье он выключен по умолчанию. Если вы захотите «умных ответов» поверх вашего архива, включите тогл и выберите, что отправлять — только извлечённый текст или весь PDF. Модель явно проинструктирована не ставить диагнозы и не назначать лечение.

А если скан не читается?

Можно включить OCR (Tesseract + Poppler) в config.json. Но даже без OCR нераспарсенные документы не теряются — они попадают в отчёт unparsed.md.

Можно добавить PDF вручную?

Да. Бросьте файл в G:\mvp\zdorovie\raw\ (или в любую подпапку, кроме служебных) — watchdog подхватит.

Как удалить?

Снять регистрацию native host через Remove-Item HKCU:\Software\Google\Chrome\NativeMessagingHosts\com.max.zdorovie, удалить папку G:\mvp\zdorovie\.