Если вы работаете в медицинском учреждении Санкт-Петербурга или Ленобласти, то наверняка сталкивались с термином «Ариадна». Это одна из распространённых медицинских информационных систем (МИС) в регионе. Разработчик — ООО «Решение».
С точки зрения администрирования, «Ариадна» — классическая клиент-серверная система с сервером на PostgreSQL и клиентами, которые работают… под Wine. Да, вы не ослышались. Клиентские АРМы (рабочие места) написаны под Windows, но в большинстве учреждений их запускают на Linux (обычно CentOS / RedHat) через Wine. Плюс есть Java-версии некоторых модулей, которые требуют древнюю Java 1.6.
В этой статье я разберу, как развернуть и сопровождать МИС «Ариадна» в такой конфигурации. Будет много команд, путей и граблей, на которых можно споткнуться. Поехали.
1. Архитектура системы
Система построена по принципу:
- Сервер БД – PostgreSQL 12 (или выше, но по инструкции 12-я). База данных, пользователь
SOLUTION_MEDс паролем (частоelsoft). - Сервер приложений – отсутствует в классическом понимании. Вся логика – в БД и клиентских модулях.
- Клиентская часть – два типа АРМов:
- СИ-АРМы – обычные Windows-приложения (exe), запускаемые через Wine.
- JAVA-АРМы – кроссплатформенные, но требуют Java 1.6 (да-да, 6-я версия, 2013 год выпуска).
Все АРМы физически лежат в сетевой папке \\сервер\ARIADNA\APP (общий дистрибутив). На рабочих местах они должны быть либо скопированы локально, либо монтироваться через CIFS. Обновление — через скрипт, который копирует свежие файлы из сетевой папки в локальный каталог пользователя.
2. Установка серверной части
Сервер БД ставится специалистами разработчика или вами, если у вас есть права и опыт. Основные требования:
- ОС: любая, поддерживающая PostgreSQL 12 (CentOS 7/8, Ubuntu LTS и т.д.).
- PostgreSQL 12, созданная БД (обычно
MED), пользовательSOLUTION_MED. - Настройка сетевого доступа: клиенты должны иметь возможность подключиться к БД по порту 5432.
На этом этапе главное — обеспечить стабильность и регулярное резервное копирование. Восстановление «Ариадны» без бекапа — это квест с неизвестным финалом.
3. Подготовка клиентского рабочего места (Linux)
3.1 Монтирование сетевого каталога с дистрибутивом
На сервере нужно создать сетевую шару ARIADNA, открыть доступ для чтения для всех пользователей (или под определённым аккаунтом, например share). Затем на клиенте:
su mkdir /mnt/ARM mount -t cifs //IP_сервера/ARIADNA /mnt/ARM -o username=share,password=пароль,domain=домен
Чтобы монтирование было постоянным, пропишите в /etc/fstab или используйте autofs.
3.2 Установка Wine
«Ариадна» работает под Wine. Устанавливаем:
yum install wine wine.i686 winetricks -y
После установки под обычным пользователем создаём префикс и ставим необходимые библиотеки:
winecfg # создаст ~/.wine winetricks vb6run mdac28 vcrun6 vcrun2010
Эти компоненты нужны для корректной работы СИ-АРМов (они написаны на Visual Basic 6 и используют старые версии MDAC и VC runtime).
3.3 Установка Java 1.6
Java-АРМы требуют Java 6. Берём дистрибутив jre-6u45-linux-i586.bin (можно скачать, например, с http://klokan.spb.ru/PUB/):
chmod a+x jre-6u45-linux-i586.bin ./jre-6u45-linux-i586.bin # распакуется в jre1.6.0_45 mv jre1.6.0_45 /opt/java/jre1.6.0_45 export PATH=$PATH:/opt/java/jre1.6.0_45/bin
Для стабильной работы Java-АРМов также нужен пакет libXst (в старых версиях CentOS). Устанавливаем его:
yum install libnsl.i686 libnsl.x86_64
3.4 PostgreSQL ODBC под Wine
СИ-АРМы подключаются к БД через ODBC. Устанавливаем драйвер PostgreSQL ODBC в префикс Wine:
cd /home/user wget https://ftp.postgresql.org/pub/odbc/versions/msi/psqlodbc_13_01_0000-x86.zip unzip psqlodbc_13_01_0000-x86.zip wine psqlodbc_13_01_0000-x86.msi # запустит графический установщик
В установщике жмём Next, Accept, Install, Finish. Всё просто.
4. Настройка подключения к БД
4.1 Для JAVA-АРМов
Запускаем любой JAVA-АРМ, например ArmAdministrator.sh:
cd ~/.wine/drive_c/ARIADNA/APP/JAVA/bin ./ArmAdministrator.sh
На сплэш-заставке дважды кликаем левой кнопкой мыши в левый верхний угол (да, это не шутка). Откроется окно настройки соединения.
Создаём новое подключение:
- Название: MED (или любое)
- Строка соединения:
10.0.0.1:5432/MED(если порт стандартный, можно без порта) - Имя пользователя: SOLUTION_MED
- Пароль: elsoft (или тот, что задан)
- Тип соединения: PostgreSQL
Нажимаем «Проверить». Если соединение успешно — сохраняем.
4.2 Для СИ-АРМов
Запускаем любой СИ-АРМ, например ArmRegistry.exe:
wine ~/.wine/drive_c/ARIADNA/APP/ArmRegistry.exe
Снова дважды кликаем левый верхний угол сплэш-заставки. В окне выбора БД создаём новое подключение:
- Тип подключения: PostgreSQL
- Сервер: IP_сервера
- База данных: MED
- Имя пользователя: SOLUTION_MED
- Пароль: elsoft
Проверяем соединение, сохраняем. После этого обязательно нажимаем кнопку «Экспорт в файл» — будет создан файл connect.xml в каталоге с АРМом, который будет использоваться всеми СИ-АРМами.
5. Диспетчер приложений (Launcher)
Для удобства запуска модулей используется ariadna-launcher. Это отдельное приложение, которое выводит список доступных АРМов в зависимости от прав пользователя.
Установка:
tar -xzf ariadna-launcher-21.8.14-install-linux.tar.gz cd ariadna-launcher ./setup.sh
После установки в меню появляется иконка «МИС Ариадна». Запускаем, вводим пароль пользователя МИС (не системный, а тот, что в БД) и попадаем в окно с ярлыками. Блёклые иконки означают, что модуль ещё не установлен локально — он будет скопирован при первом запуске.
Настройка подключения диспетчера к БД выполняется через шестерёнку в правом верхнем углу. Там нужно указать:
- Путь к МИС «Ариадна»:
~/.wine/drive_c/ARIADNA/APP - Строка соединения:
IP_сервера:5432/MED - Пользователь БД: SOLUTION_MED
- Пароль: elsoft
После сохранения настроек можно запускать модули.
6. Автоматическое обновление клиентской части
Обновление АРМов происходит через копирование свежих файлов из сетевой папки в локальный каталог пользователя. Для этого создаётся скрипт /home/username/updater.sh:
#!/bin/bash sleep 30 mount -t cifs //IP_сервера/ARIADNA /mnt/ARM -o username=share,password=пароль sleep 10 cp -a -u -f /mnt/ARM/APP/. /home/username/.wine/drive_c/ARIADNA/APP
Скрипт должен выполняться при каждой загрузке рабочей станции. Добавляем его в cron через crontab -e:
@reboot sh /home/username/updater.sh
Проверяем, что служба cron запущена и включена:
systemctl enable crond systemctl start crond
Важно: скрипт копирует только те файлы, которые изменились (-u), так что обновление происходит довольно быстро.
7. Контроль версий
В «Ариадне» есть встроенный механизм контроля версий модулей. Он позволяет активировать нужную сборку (откатить, если новая версия глючит). Управление происходит в АРМе «Администратор».
Версия модуля имеет формат YYMMDDHHmm (год, месяц, день, час, минуты сборки). При регистрации новой версии она автоматически становится активной. При необходимости можно вручную активировать другую версию.
Номер сборки отображается в сплэш-заставке при запуске модуля и в меню «Помощь → О программе».
8. Условия эксплуатации
По документации, оборудование должно работать при:
- Температура: 18–25 °C
- Влажность: 30–80% без конденсации
- Запылённость: не более 0,001 г/м³
Для офисного оборудования чуть шире: 20 ± 5 °C.
Но мы‑то с вами знаем, что реальные серверные комнаты часто далеки от идеала. Главное — стабильное электропитание и ИБП.
9. Удаление клиента
Если нужно полностью удалить клиентскую часть (например, переустановить с нуля), достаточно удалить каталог ~/.wine:
rm -rf ~/.wine
После этого при следующем запуске АРМов префикс Wine будет создан заново, а файлы скопируются из сетевой шары (если настроен updater).


