MediKeep — хранилище медзаписей для собственного хостинга
Установка и настройка MediKeep — open-source хранилище медицинских записей для самостоятельного хостинга. Защита конфиденциальных данных.
Подготовка системы
Обновление системы и установка необходимых компонентов
sudo apt update && sudo apt upgrade -y
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-composeКлонирование репозитория MediKeep
Создание директории и клонирование репозитория MediKeep
mkdir medikeep && cd medikeep
git clone https://github.com/medikeep/medikeep.git .Настройка окружения
Создание и редактирование файла .env для конфигурации MediKeep
cp .env.example .env
nano .envЗапуск MediKeep
Запуск контейнеров и проверка статуса работы
docker-compose up -d
docker-compose ps
docker-compose logs -fДоступ к приложению
Доступ к MediKeep через веб-браузер и регистрация пользователя
https://your-domain.comПервоначальная настройка
Создание администратора, настройка системы и безопасности
docker-compose exec web python manage.py createsuperuserРабота с медицинскими записями
Создание, организация и импорт медицинских записей
1. Войти в учетную запись
2. Перейти в раздел "Медицинские записи"
3. Нажать "Добавить запись"
4. Заполнить форму и сохранитьMediKeep - персональное хранилище медицинских записей
Введение в MediKeep
Что такое MediKeep и зачем его использовать для хранения медицинских данных
MediKeep - это приложение для самостоятельного хостинга, созданное для безопасного хранения и управления медицинскими записями. В современной цифровой среде, где медицинская информация становится всё более доступной, крайне важно иметь надежное и конфиденциальное место для хранения таких чувствительных данных.
MediKeep позволяет пользователям хранить всю медицинскую информацию в одном защищенном месте: историю болезней, результаты анализов, рецепты, медицинские изображения и другую важную документацию. Это приложение особенно актуально для тех, кто хочет сохранить полный контроль над своими медицинскими данными, не полагаясь на сторонние платформы.
Преимущества самохостинга конфиденциальной медицинской информации
Самостоятельное хостинг медицинских записей предоставляет несколько ключевых преимуществ:
- Конфиденциальность: Ваши данные хранятся на вашем собственном сервере, а не на сторонних платформах.
- Контроль: Вы полностью контролируете, кто имеет доступ к вашим данным и как они используются.
- Соответствие требованиям: Легче соответствовать требованиям законодательства о защите персональных данных.
- Доступность: Данные доступны вам в любое время, независимо от состояния внешних сервисов.
- Интеграция: Возможность интеграции с другими системами и сервисами по вашему выбору.
Требования системы для установки MediKeep
Для успешной установки и работы MediKeep необходимо соответствовать следующим требованиям:
Необходимое оборудование
- Сервер: Минимальные требования - 1 ядро процессора, 1 ГБ оперативной памяти, 10 ГБ дискового пространства
- Рекомендуемые: 2 ядра процессора, 4 ГБ оперативной памяти, 50+ ГБ дискового пространства (зависит от объема данных)
Программное обеспечение
- Операционная система: Linux (Ubuntu 20.04/22.04, Debian 10/11, CentOS 8/9)
- Docker: версии 20.10 или выше
- Docker Compose: версии 1.29 или выше
- Веб-браузер: современные версии Chrome, Firefox, Safari или Edge
Сетевые требования
- Статический публичный IP-адрес (или динамический с DDNS)
- Открытые порты: 80 (HTTP), 443 (HTTPS)
- Исходящие подключения к интернету для загрузки зависимостей
Установка MediKeep через Docker
Установка MediKeep с использованием Docker является предпочтительным методом, так как он изолирует приложение от основной системы и упрощает управление.
Подготовка системы
- Обновите систему:
sudo apt update && sudo apt upgrade -y
- Установите Docker:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
- Установите Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
- Перезайдите в систему или выполните:
newgrp docker
Клонирование репозитория MediKeep
- Создайте директорию для MediKeep:
mkdir medikeep && cd medikeep
- Клонируйте репозиторий:
git clone https://github.com/medikeep/medikeep.git .
Настройка окружения
- Создайте файл
.envиз шаблона:
cp .env.example .env
- Отредактируйте файл
.env:
nano .env
Добавьте или измените следующие параметры:
# Общие настройки
SECRET_KEY=ваш_секретный_ключ_должен_быть_длинным_и_сложным
DEBUG=false
# Настройки базы данных
POSTGRES_HOST=db
POSTGRES_DB=medikeep
POSTGRES_USER=medikeep
POSTGRES_PASSWORD=ваш_пароль_от_бд
# Настройки SMTP для отправки уведомлений
EMAIL_HOST=smtp.example.com
EMAIL_PORT=587
EMAIL_USE_TLS=true
EMAIL_USER=your_email@example.com
EMAIL_PASSWORD=your_email_password
# Настройки домена
DOMAIN=your-domain.com
Запуск MediKeep
- Запустите контейнеры:
docker-compose up -d
- Проверьте статус работы:
docker-compose ps
- Проверьте логи при необходимости:
docker-compose logs -f
Доступ к приложению
- Откройте веб-браузер и перейдите по адресу:
https://your-domain.com
- Зарегистрируйте нового пользователя или войдите в существующий аккаунт.
Альтернативные способы установки
Если вы предпочитаете не использовать Docker, MediKeep также можно установить напрямую на сервер.
Прямая установка на сервер
- Установите зависимости:
sudo apt update
sudo apt install -y python3 python3-pip python3-venv postgresql postgresql-contrib nginx
- Создайте виртуальное окружение:
python3 -m venv medikeep-env
source medikeep-env/bin/activate
- Установите приложение:
pip install -r requirements.txt
- Настройте базу данных:
sudo -u postgres psql
CREATE DATABASE medikeep;
CREATE USER medikeep WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE medikeep TO medikeep;
\q
- Настройте Nginx: Создайте файл конфигурации Nginx:
sudo nano /etc/nginx/sites-available/medikeep
Добавьте следующее:
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
- Включите конфигурацию:
sudo ln -s /etc/nginx/sites-available/medikeep /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
- Запустите приложение:
python manage.py runserver 0.0.0.0:8000
Первоначальная настройка и конфигурация
После успешной установки MediKeep необходимо выполнить первоначальную настройку.
Настройка пользователя
- Зарегистрируйте нового администратора:
docker-compose exec web python manage.py createsuperuser
- Введите данные администратора:
- Имя пользователя
- Email-адрес
- Пароль
- Подтверждение пароля
Конфигурация системы
- Войдите в административную панель:
https://your-domain.com/admin
- Настройте основные параметры:
- Название системы
- Логотип
- Контакты поддержки
- Язык интерфейса
- Часовой пояс
Настройка безопасности
- Включите двухфакторную аутентификацию в настройках аккаунта
- Настройте сложные пароли для всех пользователей
- Настройте ограничения на входы (например, блокировка после 3 неудачных попыток)
- Настройте автоматический выход из системы после периода бездействия
Настройка хранилища
- Определите, где будут храниться файлы (локальное хранилище или облачное)
- Настройте параметры максимального размера файлов
- Настройте типы разрешенных файлов (PDF, DOC, JPG, DICOM и т.д.)
Работа с медицинскими записями: создание, организация, импорт
MediKeep предоставляет удобные инструменты для работы с медицинскими записями.
Создание новой записи
- Войдите в свою учетную запись
- Перейдите в раздел "Медицинские записи"
- Нажмите "Добавить запись"
- Заполните форму:
- Тип записи (анализы, диагноз, рецепт и т.д.)
- Дата записи
- Врач (если применимо)
- Описание
- Прикрепите файлы (если есть)
- Сохраните запись
Организация записей
-
Используйте категории для группировки записей:
- Кардиология
- Неврология
- Анализы крови
- Результаты обследований
-
Используйте теги для пометки записей:
- Хронические заболевания
- Аллергии
- Вакцины
-
Используйте фильтры для быстрого поиска:
- По дате
- По врачу
- По типу документа
Импорт данных
-
Для импорта данных из других источников:
- Перейдите в "Импорт/Экспорт"
- Выберите тип импортируемого файла
- Загрузите файл
- Настройте параметры сопоставления полей
- Выполните импорт
-
Поддерживаемые форматы:
- FHIR (Fast Healthcare Interoperability Resources)
- HL7
- CDA (Clinical Document Architecture)
- PDF документов
- CSV файлов
Безопасность данных: шифрование и защита доступа
MediKeep предоставляет несколько уровней защиты данных для обеспечения конфиденциальности.
Шифрование данных
-
Настройте шифрование баз данных:
- В файле
.envустановите параметрDB_ENCRYPTION=true - Сгенерируйте ключ шифрования:
openssl rand -hex 32- Добавьте ключ в файл
.envкакENCRYPTION_KEY
- В файле
-
Шифрование файлов:
- Все загруженные файлы шифруются с использованием AES-256
- Настройте параметры шифрования в административной панели
Защита доступа
-
Настройте роли и права доступа:
- Администратор: полный доступ
- Врач: доступ к назначенным записям
- Пациент: доступ только к своим записям
- Гость: ограниченный доступ
-
Настройте двухфакторную аутентификацию:
- Включите 2FA для всех пользователей в настройках безопасности
- Используйте приложения-аутентификаторы (Google Authenticator, Authy)
-
Ограничьте доступ по IP:
- В настройках Nginx добавьте ограничение по IP:
location /admin/ { allow 192.168.1.0/24; deny all; proxy_pass http://127.0.0.1:8000; }
Аудит безопасности
-
Включите ведение журнала безопасности:
- Настройте хранение логов доступа
- Настройте уведомления о подозрительной активности
-
Периодически проверяйте систему на уязвимости:
- Используйте инструменты сканирования безопасности
- Обновляйте систему регулярно
Резервное копирование и восстановление данных
Регулярное резервное копирование критически важно для сохранения медицинских данных.
Создание резервных копий
-
Настройте автоматическое резервное копирование:
- Создайте скрипт для резервного копирования:
# backup.sh #!/bin/bash TIMESTAMP=$(date +%Y%m%d_%H%M%S) BACKUP_DIR="/path/to/backups" # База данных docker-compose exec -T db pg_dump -U medikeep medikeep > $BACKUP_DIR/db_$TIMESTAMP.sql # Файлы docker-compose exec web tar -czf $BACKUP_DIR/files_$TIMESTAMP.tar.gz -C /app/media . # Архив с настройками docker-compose config > $BACKUP_DIR/config_$TIMESTAMP.yml # Удаление старых backups (сохраняем последние 7) find $BACKUP_DIR -name "*.sql" -mtime +7 -delete find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete find $BACKUP_DIR -name "*.yml" -mtime +7 -delete -
Настройте cron для автоматического выполнения:
crontab -e
Добавьте строку для ежедневного резервного копирования в 2:00 ночи:
0 2 * * * /path/to/backup.sh
Восстановление данных
- Восстановление базы данных:
docker-compose exec -T db psql -U medikeep medikeep < backup.sql
- Восстановление файлов:
docker-compose exec web tar -xzf backup.tar.gz -C /app/media
- Восстановление конфигурации:
docker-compose -f config.yml up -d
Проверка целостности backups
-
Периодически проверяйте целостность резервных копий:
- Проверка базы данных:
docker-compose exec -T db pg_dump -U medikeep medikeep | head -n 1 | grep -q "PostgreSQL database dump" -
Проверка файлов:
tar -tzf backup.tar.gz > /dev/null
Интеграция с другими медицинскими сервисами и приложениями
MediKeep поддерживает интеграцию с различными медицинскими сервисами для расширения функциональности.
Поддерживаемые стандарты интеграции
-
FHIR (Fast Healthcare Interoperability Resources)
- Настройка FHIR сервера в MediKeep:
# В файле .env FHIR_ENABLED=true FHIR_BASE_URL=https://your-domain.com/fhir -
HL7
- Настройка обработки сообщений HL7:
# В файле .env HL7_ENABLED=true HL7_PORT=2575 -
DICOM
- Для работы с медицинскими изображениями:
# В файле .env DICOM_ENABLED=true DICOM_STORE_PATH=/app/dicom
Интеграция с системами Electronic Health Records (EHR)
-
Настройте API интеграции:
- В административной панели перейдите в "Интеграции"
- Создайте новый API ключ
- Настройте параметры доступа
-
Пример запроса для получения записей:
GET /api/records/ HTTP/1.1
Host: your-domain.com
Authorization: Bearer your_api_key
Синхронизация с носимыми устройствами
-
Настройте интеграцию с популярными устройствами:
- Apple Health
- Google Fit
- Fitbit
-
Пример настройки для Apple Health:
# В файле .env
APPLE_HEALTH_ENABLED=true
APPLE_HEALTH_ID=your_health_id
APPLE_HEALTH_KEY=your_health_key
Альтернативные решения для самохостинга медицинских записей
Помимо MediKeep, существует несколько других решений для самостоятельного хостинга медицинских записей.
OpenMRS
OpenMRS - это платформа для управления медицинскими записями, разработанная специально для развивающихся стран.
Преимущества:
- Расширенные функции для клиник
- Поддержка сложных медицинских рабочих процессов
- Активное сообщество разработчиков
Недостатки:
- Сложность установки и настройки
- Высокие требования к ресурсам
- Может быть избыточным для личного использования
FreeEHR
FreeEHR - еще одна платформа для управления электронными медицинскими картами.
Преимущества:
- Совместимость с OpenEHR стандартами
- Гибкая настройка
- Поддержка множества языков
Недостатки:
- Сложный интерфейс
- Требует знаний медицинских информационных систем
- Ограниченная документация
PatientsKnowBest
PatientsKnowBest - это платформа, объединяющая пациентов, врачей и поставщиков услуг.
Преимущества:
- Удобный интерфейс
- Интеграция с множеством медицинских систем
- Фокус на вовлечении пациентов
Недостатки:
- Коммерческая версия (бесплатная имеет ограничения)
- Сложность самостоятельного хостинга
- Требует подписки для расширенных функций
Заключение и лучшие практики
Заключение
MediKeep предоставляет надежное решение для самостоятельного хостинга медицинских записей, сочетая в себе безопасность, конфиденциальность и удобство использования. Благодаря гибкой архитектуре и поддержке современных стандартов интеграции, MediKeep может стать основой для вашей личной медицинской информационной системы.
Лучшие практики
-
Безопасность
- Используйте сложные, уникальные пароли
- Включите двухфакторную аутентификацию
- Регулярно обновляйте систему
- Ограничьте физический доступ к серверу
-
Резервное копирование
- Проводите регулярные резервные копии
- Храните копии в нескольких безопасных местах
- Периодически проверяйте целостность backup'ов
-
Использование
- Регулярно обновляйте свои медицинские записи
- Организуйте записи логично и последовательно
- Используйте метаданные для лучшего поиска
- Регулярно проверяйте доступ к своим записям
-
Соответствие требованиям
- Изучите законодательство о защите медицинских данных в вашем регионе
- Следите за обновлениями в законодательстве
- При необходимости проконсультируйтесь с юристом
-
Техническое обслуживание
- Регулярно проверяйте обновления системы
- Мониторьте использование ресурсов
- Следите за журналами безопасности
- Обновляйте зависимости и библиотеки
MediKeep — это мощный инструмент для управления вашими медицинскими данными. Следуя этим лучшим практикам, вы сможете обеспечить максимальную безопасность и удобство использования системы.