Локальная медицинская информационная система для ведения регистра пациентов инсультного отделения, клинической аналитики и формирования отчётов.
Важно: MiniMIS не является медицинским изделием и не заменяет клиническое решение врача. Ответственность за защиту персональных данных, настройку доступа, резервное копирование и соблюдение локальных требований несёт оператор системы.
- регистрация и редактирование пациентов;
- дашборд отделения;
- клиническая аналитика по инсультам, реперфузии, NIHSS, летальности и другим показателям;
- Excel-, Word- и PDF-отчёты;
- роли заведующего и общего врачебного аккаунта;
- журнал действий и мягкое удаление записей;
- согласованные резервные копии SQLite;
- шифрование резервных копий AES-256-GCM;
- проверка целостности и атомарное восстановление базы.
- Python 3.11 или новее для обычной установки;
- Windows или Linux;
- браузер с доступом к компьютеру, на котором запущен Streamlit.
Для изолированной рабочей среды допустима заранее подготовленная локальная папка с совместимыми Python-пакетами.
- Установите Python и отметьте пункт Add Python to PATH.
- Распакуйте проект в локальную папку.
- Откройте PowerShell в папке проекта.
- Установите зависимости:
python -m pip install -r requirements.txt- Запустите приложение:
python -m streamlit run app.pyТакже можно запустить Start.bat двойным щелчком.
python3 -m pip install --user -r requirements.txt
python3 -m streamlit run app.pyПосле запуска откройте адрес, указанный Streamlit, обычно http://localhost:8501.
При первом запуске заведующий задаёт:
- название отделения;
- пароль заведующего;
- общий пароль врачей.
После входа заведующий может создать список врачей и задать секретную фразу для восстановления административного пароля. Проект публикуется без базы пациентов, учётных данных, ключей и резервных копий. Пустая база создаётся локально после первоначальной настройки.
Может добавлять и редактировать пациентов, просматривать дашборд и клиническую аналитику, формировать отчёты.
Дополнительно получает доступ к настройкам, списку врачей, журналу действий, удалению и восстановлению записей, импорту базы и резервным копиям.
Сессия действует 8 часов. После пяти неверных попыток вход блокируется на 15 минут.
Рабочая база создаётся в:
data/minimis.db
Настройки безопасности и локальный ключ также находятся в data/. Содержимое этой папки исключено из Git.
Отчёты создаются в exports/, резервные копии — в backups/. Эти каталоги также исключены из Git, кроме файлов .gitkeep.
MiniMIS:
- создаёт согласованный снимок SQLite через Backup API;
- проверяет его с помощью
PRAGMA integrity_check; - шифрует AES-256-GCM;
- публикует готовый файл атомарной заменой.
Ключ резервных копий создаётся локально:
data/backup.key
Храните отдельную защищённую копию ключа. Без него восстановить зашифрованные копии невозможно. Не храните единственную копию ключа рядом с резервными копиями.
Для шифрования требуется пакет cryptography. При его отсутствии основные функции приложения продолжают работать, но создание и восстановление зашифрованных копий недоступно до установки:
python -m pip install cryptographyРекомендуемая схема:
- Streamlit и рабочая SQLite-база находятся на локальном диске одного компьютера или сервера;
- пользователи подключаются через браузер;
- в сетевую папку переносятся только полностью созданные резервные копии.
Не размещайте активно используемый minimis.db в общей сетевой папке. Обрыв соединения при прямой работе с SQLite-файлом может привести к блокировкам и ошибкам ввода-вывода.
Ошибки и предложения можно оформлять через GitHub Issues. Перед публикацией примеров, журналов или изображений обязательно удаляйте медицинские и персональные данные.
Pull request должен содержать краткое описание изменений и не включать рабочие базы, ключи или данные пациентов.
Copyright © 2026. All rights reserved.
This repository is published for demonstration and educational purposes. No permission is granted to copy, redistribute, or create derivative works without prior written permission from the copyright holder.
Репозиторий опубликован в демонстрационных и образовательных целях. Копирование, распространение, создание производных работ и использование исходного кода без письменного разрешения правообладателя не допускается.




