Русский · English · 简体中文 · 日本語 · Deutsch
Операции и анестезия — в одном журнале.
Приложение для Windows: учёт случаев, поиск и статистика с локальной или сетевой базой SQLite.
Снимок текущего приложения с вымышленными данными. Интерфейс — на русском; переводы README относятся к документации.
- Учёт случаев. Плановые и экстренные операции; повторные операции пациента сохраняются отдельно.
- Поиск. Фильтры по ФИО и дате операции, редактирование и удаление выбранной записи.
- Время анестезии. Автоматический расчёт длительности, в том числе при переходе через полночь.
- Отчёты. Статистика за период по видам анестезии, врачам и медсёстрам.
- Общие справочники. Виды анестезии и сотрудники, недельные резервные копии, обновления из общей папки.
Режим работы: папка журнала может быть локальной или сетевой. С одним журналом одновременно работает одно рабочее место.
Для запуска из исходников нужны Windows 10/11 и Python 3.10+. Интерфейс построен на PySide6.
git clone https://github.com/Donkiton/Oper-Journal.git
cd Oper-Journal
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe modern_app.pyПри первом запуске создайте пустую тестовую папку и выберите её в диалоге подключения. Программа подготовит базу и подпапки. Добавьте вымышленный случай и проверьте поиск и раздел «Отчёты».
Хранение и резервные копии
В выбранной папке журнала находятся:
| Путь | Содержимое |
|---|---|
data/journal.db |
База случаев SQLite |
settings.json |
Общие настройки и справочники |
backups/ |
Резервные копии базы |
.journal.lock |
Блокировка одновременного запуска |
UPD/ |
Манифест и архивы обновлений |
При подключении создаётся одна резервная копия за ISO-неделю. Это проверка при работе приложения, а не отдельное фоновое расписание.
Сборка хранит путь к журналу в %LOCALAPPDATA%\JornalPatients\connection.json, а запуск из исходников — в connection.json рядом с кодом. У сборки также есть локальные логи и кэш обновлений.
Справочники и свободный ввод
В «Настройках» под каждым справочником есть флажок «Разрешить ввод своего значения». По умолчанию для вида анестезии он выключен, для врачей и медсестёр — включён.
Если свободный ввод запрещён, доступны только значения из списка. Историческое значение вне справочника можно сохранить без изменения в исходной записи. Настройки общие для выбранного журнала.
Сборка Windows-приложения и обновления
Из каталога проекта, после создания .venv:
.\.venv\Scripts\python.exe -m pip install -r requirements-build.txt
.\.venv\Scripts\python.exe build_release.pyРезультат — папка dist/JournalPatients/ и архив dist/JournalPatients-1.0.9.zip. Переносите всю папку приложения. Источник версии — app_version.py; версия кода может быть новее GitHub Release.
Чтобы разместить обновление в общей папке журнала:
.\.venv\Scripts\python.exe build_release.py --publish-root "\\server\share\Jornal-oper"Сценарий создаёт архив и UPD/latest.json. Сборка проверяет обновления при закрытии; если схема базы требует новую версию — до открытия главного окна. Перед установкой проверяются размер архива и SHA-256.
Разработка и тесты
.\.venv\Scripts\python.exe -m unittest discover -s tests -vПроверяются миграции, повторные случаи, справочники, имена сотрудников, выпадающие списки и запуск с обновлением.
| Файл | Назначение |
|---|---|
modern_app.py |
Интерфейс PySide6 и работа с журналом |
database_schema.py |
Схема SQLite и миграции |
update_system.py |
Проверка и установка обновлений |
build_release.py |
Сборка и размещение релиза в общей папке |
tests/ |
Регрессионные тесты |
Правила участия — в CONTRIBUTING.md. Для примеров и тестов используйте только вымышленные данные.
Приложение не заменяет медицинскую информационную систему. Встроенных учётных записей и ролей нет; доступ к папке регулируется правами Windows. Использование с реальными данными пациентов согласуйте с ответственными за ИТ и обработку персональных данных в организации.
Сообщения об уязвимостях — по правилам SECURITY.md. Атрибуция иконок — в ATTRIBUTION.md. Файл LICENSE пока отсутствует; условия использования и распространения не определены открытой лицензией.
