Перейти к содержанию

Развёртывание

[ТЗ] Развёртывание on-prem, в контуре УЗ. Подготовлено технико-экономическое обоснование с заключением о нецелесообразности размещения на ресурсах РЦОД, направленное в ОАЦ и оператору РЦОД (Указ Президента РБ № 46 от 23.01.2024; Постановление СМ РБ № 182 от 31.03.2021).

Схема развёртывания

flowchart TB
  subgraph EXT["Внешние сети"]
    SMP["Сервер станции СМП"]
    GEOSRV["Серверы координат"]
  end

  subgraph DMZ["Периметр УЗ"]
    FW["Межсетевой экран<br/>сертифицирован по ОАЦ № 77"]
    NGINX["nginx<br/>TLS/mTLS · IP allowlist"]
  end

  subgraph SRV["Серверная платформа УЗ (1U)"]
    subgraph DOCKER["Docker Compose"]
      GW["fhir-gateway"]
      CORE["triage-core"]
      GEOW["geo-worker"]
      RULES["rules-engine"]
      MISAD["mis-adapter"]
    end
    PG[("PostgreSQL 16")]
    MQ["RabbitMQ"]
    MON["Prometheus + Grafana"]
  end

  subgraph MISBOX["Сервер МИС (имеется)"]
    MIS["АИС «Медик»"]
  end

  subgraph LAN["ЛВС УЗ (имеется)"]
    ARM["АРМ тип 2 · 44"]
    KIOSK["Терминал самообращения"]
    TV["Табло очереди"]
  end

  SMP -->|"mTLS"| FW --> NGINX
  GEOSRV <-->|"опрос"| FW
  NGINX --> GW & CORE
  DOCKER --> PG & MQ
  MISAD <--> MIS
  LAN --> NGINX

Сегментация сети

[ТЗ] Требование ОАЦ № 66: обеспечение сегментирования (изоляции) сети управления объектами ИС от сети передачи данных.

Сегмент Что содержит Правила доступа
Периметр Межсетевой экран, nginx Единственная точка входа извне; только заявленные порты
Прикладной Контейнеры сервисов Доступ к БД и брокеру; наружу — только через прокси
Данные PostgreSQL, RabbitMQ Доступ только от прикладного сегмента
Полевой RS-485, преобразователи Изолирован (ADR-10)
Рабочие места АРМ, терминалы, табло Доступ к прикладному сегменту через прокси
Управление Мониторинг, администрирование Отдельный сегмент, не совмещён с передачей данных

Полевой сегмент нельзя объединять с сетью рабочих мест

Оборудование без собственных механизмов защиты. Изоляция — не рекомендация, а требование ОАЦ.

Порты

Порт Назначение Источник
443 HTTPS: рабочие места, API ЛВС УЗ
[?] выделенный Приём сообщений от СМП, mTLS Только IP вендора
5432 PostgreSQL Только прикладной сегмент
5672 / 15672 RabbitMQ / управление Только прикладной сегмент

| [?] | Преобразователи RS → Ethernet | Только полевой сегмент | | 9090 / 3000 | Prometheus / Grafana | Только сегмент управления |

[ОП] Номер порта приёма от СМП определяется на инсталляцию и хранится в provider_endpoints.listen_port — он не зашит в код, потому что в разных УЗ и у разных вендоров будет отличаться.

Конфигурация инсталляции

[ПР] Что настраивается при развёртывании в новом УЗ — без изменения кода:

Область Настройки
Учреждение Код, наименование, часовой пояс, нормативы времени по цветам
Структура Отделения, палаты, койки, посты
Провайдеры СМП Код, класс адаптера, порт приёма, сертификат, IP allowlist
Провайдеры координат Код, класс адаптера, URL, период опроса, ограничение частоты
Провайдер МИС Код, класс адаптера, URL API, учётные данные
Правила сортировки Импорт утверждённого набора правил
Талоны Префиксы и серии кодов, правило нумерации

| Пользователи и роли | Учётные записи персонала |

Порядок ввода в эксплуатацию

[ТЗ] Стадия развёртывания этапа 1: размещение ПО на сервере, тестирование быстродействия/уязвимостей/отказоустойчивости, пусконаладка, обучение персонала, предварительные испытания, опытная эксплуатация, приёмочные испытания.

flowchart LR
  A["Размещение ПО<br/>на сервере"] --> B["Тестирование:<br/>быстродействие · уязвимости<br/>отказоустойчивость"]
  B --> C["Пусконаладка<br/>оборудования"]
  C --> D["Обучение<br/>персонала"]
  D --> E["Предварительные<br/>испытания"]
  E --> F["Опытная<br/>эксплуатация"]
  F --> G["Приёмочные<br/>испытания"]
  G --> H["Промышленная<br/>эксплуатация"]

  ATT["Аттестация по ЕТТ"] -.->|"блокирует"| H
  GRIS["Регистрация в ГРИС"] -.->|"блокирует"| H
  FHIRREG["Регистр HL7 FHIR-ПО"] -.->|"блокирует"| H

Три регистрационные вехи блокируют промышленную эксплуатацию

Аттестация по ЕТТ, регистрация в ГРИС и регистрация в Регистре HL7 FHIR-совместимого ПО — не бумажные формальности в конце, а условия запуска. Их требования должны быть известны на стадии проектирования. См. «Нормативную базу» и эпик E12.

Среды

[ПР]

Среда Назначение Данные
Разработка Локально у разработчика Синтетика + симулятор вендора
Тестовая Автотесты, контрактные тесты Синтетика; реальные ПДн запрещены
Стенд интеграции Сверка с вендором и МИС Обезличенные или тестовые данные вендора
Опытная эксплуатация В УЗ, параллельно текущему процессу Реальные данные, полный контур защиты
Промышленная В УЗ Реальные данные

Реальные ПДн не покидают контур УЗ

Ни в тестовой среде, ни в среде разработки не должно быть реальных персональных и медицинских данных. Для воспроизведения инцидентов используются обезличенные выгрузки (см. «Обезличивание») — метод обезличивания определяется на этапе 1 по требованию паспорта.

Обновление

Аспект Правило [ПР]
Окно обновления Согласуется с УЗ
Миграции БД Обратимые, применяются до выката кода; несовместимые — в два шага
Откат Предыдущая версия образов сохраняется; откат без потери данных
Проверка после обновления Автоматические проверки работоспособности

Тиражирование

[ТЗ] АИС «Медик» уже работает в 6 из 10 УЗ Бреста и района; цель — масштабирование на 60 % организаций областного центра.

flowchart LR
  A["Пилот: БЦГБ"] --> B["Проверка гипотезы:<br/>КПЭ достигнуты?"]
  B --> C["Пакет тиражирования:<br/>образы · миграции<br/>конфигурация · регламенты"]
  C --> D["УЗ №2…6<br/>своя инсталляция и БД"]
  D --> E["Возможная агрегация<br/>отчётности по региону"]

Каждое УЗ — отдельная инсталляция с отдельной БД: этого требуют изоляция ПДн, аттестация на конкретную ИС и автономность при отказе внешних каналов. Тиражируется не общий сервер, а воспроизводимый пакет установки. См. «Масштабируемость».