Развёртывание¶
[ТЗ] Развёртывание 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/>отчётности по региону"]
Каждое УЗ — отдельная инсталляция с отдельной БД: этого требуют изоляция ПДн, аттестация на конкретную ИС и автономность при отказе внешних каналов. Тиражируется не общий сервер, а воспроизводимый пакет установки. См. «Масштабируемость».