README.md

СОМИ: Система обработки медицинской информации

СОМИ — это высокопроизводительный серверный комплекс на C++, предназначенный для приема, долгосрочного хранения, обработки и маршрутизации медицинских данных в стандартах DICOM и HL7. Проект использует СУБД PostgreSQL для индексации метаданных и предоставляет встроенный движок исполнения SOMI Action/Condition и Lua для гибкой автоматизации рабочих процессов.


🚀 Основные возможности

  • DICOM SCP/SCU: реализация сервисов C-STORE, C-FIND, C-MOVE и C-GET для обмена данными с диагностическим оборудованием (КТ, МРТ, Рентген).
  • HL7 MLLP Шлюз: прием, парсинг и валидация сообщений HL7 v2/v3 (ADT, ORU, OML) для синхронизации данных пациентов и назначений с МИС/ЛИС.
  • 🤖 Автоматизация: встроенные интерпретаторы SAC и Lua для написания пользовательских скриптов, реагирующих на события поступления данных (пересылка, изменение тегов, триггеры для ИИ-анализа).
  • Интеграция с PostgreSQL: индексация DICOM-тегов (Patient ID, Study Instance UID, Accession Number) для мгновенного поиска по архиву исследований.
  • Асинхронная маршрутизация: многопоточный движок распределения данных на основе настраиваемых правил и метаданных.
  • Безопасность: поддержка шифрования TLS (включая алгоритмы ГОСТ) для сетевых соединений и разграничение прав доступа.
  • Многопоточность: асинхронный движок, обеспечивающий низкую задержку (low latency) при высокой сетевой нагрузке.

🛠 Технологический стек

  • Язык программирования: C++20
  • Система сборки: CMake (>= 3.25)
  • База данных: PostgreSQL (с драйвером libpqxx для C++)
  • Зависимости: DCMTK, OpenSSL, Boost

📋 Требования к окружению

  • Компилятор: GCC >= 12.2 / Clang >= 19.1
  • ОС: Linux (Astra Linux 1.8 и новее)
  • СУБД: PostgreSQL версии 14 или выше

⚙️ Сборка и запуск

Перед сборкой убедитесь, что в вашей системе установлены …

1. Подготовка конфигурации

2. Клонирование и сборка

# Клонирование репозитория
git clone --recursive https://somi
cd somi

# Создание директории сборки
mkdir build && cd build

# Конфигурация и компиляция (Release-режим)
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --config Release --parallel \$(nproc)

3. Запуск


🔧 Конфигурация


📄 Лицензирование / License

Весь проект распространяется под лицензией GNU Affero General Public License version 3. Для удобства навигации по коду информация разделена на два файла:

  • LICENSE - Основной код и серверная часть (GNU Affero General Public License version 3).
  • LICENSE-UI - Пользовательский интерфейс и внешние фронтенд-компоненты (GNU Affero General Public License version 3 + уведомления о встроенных библиотеках Bootstrap, jQuery, D3 и др.).
Описание
СОМИ Система Обработки Медицинской Информации
Конвейеры
0 успешных
0 с ошибкой
Разработчики