В инструкции на этой странице представлена установка Orthanc для хранения и просмотра по сети DICOM-файлов.
Orthanc – это легковесный DICOM/PACS-сервер с Web-интерфейсом и REST API, предназначенный для хранения, поиска, передачи и просмотра медицинских изображений в формате DICOM. Полностью бесплатное программное обеспечение с открытым исходным кодом.
DICOM (Digital Imaging and Communications in Medicine) – международный стандарт хранения медицинских изображений и обмена ими между медицинскими информационными системами и диагностическим оборудованием.
PACS (Picture Archiving and Communication System) – сервер централизованного хранения и управления медицинскими изображениями в формате DICOM.
Установка выполнена на операционной системе Ubuntu 24. В роли базы данных используется PostgreSQL 16. Всё это установлено на виртуальной машине (виртуализация Proxmox VE).
Параметры ВМ.
CPU: 4
RAM: 8Gb.
Storage: System 100Gb, Data 6Tb RAID1
OS: ubuntu-24.04.4-live-server-amd64.iso
Обычно при установке Orthanc руководствуются следующей логикой размещения данных: на SSD желательно размещать операционную систему и базу данных, на HDD большого объема архив DICOM-файлов.
Диск для системы.
В данном случае виртуальная машина расположена на RAID1 14Tb, а не на SSD. Для системы создан диск 100Гб. На нем же база данных. Этого места вполне достаточно.
В рабочей конфигурации Orthanc хранит в PostgreSQL только индекс – текстовую информацию о пациентах, исследованиях и ссылки на файлы. Сами DICOM-файлы (изображения) хранятся на диске в папке StorageDirectory. База данных с индексом растет очень медленно и занимает лишь малую часть от общего объема данных. Даже при хранении терабайтов изображений, размер базы данных обычно остается в пределах нескольких гигабайт. 100 ГБ – это с запасом на будущее.
Диск для данных.
Вариант1 (попроще) – создать один большой диск 6Тб и на него установить и систему и БД и сами снимки.
Вариант2 (посложнее) – добавить к виртуальной машине еще 1 диск 6Тб, затем внутри Ubuntu настроить хранение снимков на этом диске.
В данной инструкции представлен более правильный вариант №2, хотя первый вариант тоже встречается.
Установка ОС.
Система Ubuntu установлена стандартным способом через мастер установки.
IP-адрес раздается по DHCP. Есть доступ в Интернет.
Системный диск размечен для использования максимального объема. Диск для данных будет настроен позже.
Отмечен к установке Open SSH сервер.
Переходим к настройкам. Подключаемся к серверу по SSH.
|
1 |
sudo -i |
(пароль)
Обновляем систему.
|
1 |
apt update |
|
1 |
apt upgrade -y |
Установка и настройка базы данных.
Устанавливаем PostgreSQL.
|
1 |
apt install postgresql postgresql-contrib |
Проверяем.
|
1 |
systemctl status postgresql |
Должно быть Active: active (exited)
Можно уточнить версию установившейся базы данных.
|
1 |
psql --version |
В данном случае версия 16.14.
Создаем пользователя для базы данных.
Запускаем программу psql от имени пользователя postgres (sudo обязательно).
|
1 |
sudo -u postgres psql |
В консоли PostgreSQL
|
1 |
CREATE USER orthanc WITH PASSWORD 'Pass-135'; |
|
1 |
CREATE DATABASE orthanc OWNER orthanc; |
Проверяем:
|
1 |
\l |
В списке должна появиться база orthanc.
Выходим:
|
1 |
\q |
Установка Orthanc.
|
1 |
apt install -y orthanc |
Устанавливаем плагин PostgreSQL.
|
1 |
apt install -y orthanc-postgresql |
Плагин позволяет Orthanc использовать PostgreSQL в качестве базы данных для индексов (и, опционально, для хранения файлов) вместо стандартной SQLite. У SQLite есть ограничения, ее использование не рекомендуется.
Другие плагины установим по мере необходимости.
Структура конфигурации Orthanc.
Конфигурация Orthanc разделена на несколько файлов. Каждый файл отвечает только за свою группу параметров.
orthanc.json – основные настройки сервера (HTTP, DICOM, каталоги, плагины и др.).
postgresql.json – настройки подключения к PostgreSQL и хранения индекса исследований.
credentials.json – пользователи и пароли для доступа к Web-интерфейсу и REST API.
serve-folders.json – публикация локальных каталогов через HTTP.
worklists.json – настройка DICOM Worklist (используется при необходимости).
Один и тот же параметр должен быть определён только в одном файле. Если одна и та же секция (например, RegisteredUsers) встречается в нескольких конфигурационных файлах, Orthanc завершит работу с ошибкой.
Для доступа к файлам на диске удобно использовать менеджер MobaExterm.
Перед выполнением настроек все эти файлы в оригинальном виде желательно сохранить. (скачиваем файлы на ПК админа)
Настройка базы данных.
Переходим в файл конфигурации базы данных.
|
1 |
nano /etc/orthanc/postgresql.json |
В этом файле можно исправить пару строчек (бд, пользователь, пароль, и тп) или заменить всю конфигурацию на представленную ниже.
Удаляем существующую конфигурацию и копируем-вставляем представленную ниже.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
{ // Использовать PostgreSQL для хранения индекса Orthanc "PostgreSQL" : { // Хранить индекс в PostgreSQL "EnableIndex" : true, // Хранить DICOM-файлы в PostgreSQL (не рекомендуется) "EnableStorage" : false, // Параметры подключения к PostgreSQL "Host" : "localhost", "Port" : 5432, // Имя базы данных "Database" : "orthanc", // Пользователь PostgreSQL "Username" : "orthanc", // Пароль пользователя PostgreSQL "Password" : "Pass-135", // Блокировка базы данных (оставить true) "Lock" : true, // Использовать SSL для подключения "EnableSsl" : false, // Количество повторных попыток подключения "MaximumConnectionRetries" : 10, // Интервал между попытками (сек.) "ConnectionRetryInterval" : 5, // Количество соединений с PostgreSQL "IndexConnectionsCount" : 1 } } |
true – выполняется.
false – не выпоняется.
Сохраняем, выходим.
Ctrl+x, yes.
Настройка пользователей.
Редактируем файл конфигурации с пользователями.
|
1 |
nano /etc/orthanc/credentials.json |
Вариант1 – раскомментировать строку с учетными данными (убрать // вначале строки) и заменить на свои.
Вариант2 – удаляем содержимое и вставляем представленное ниже.
|
1 2 3 4 5 6 7 8 |
{ "RegisteredUsers" : { "admin" : "Pass-135", "doctor1" : "Doctor1Pass", "doctor2" : "Doctor2Pass", "doctor3" : "Doctor3Pass" } } |

(нужно указать свои данные)
Сохраняем, выходим.
Нельзя определять один и тот же параметр в нескольких JSON-файлах – это главное требование при работе с конфигурациями. Например, если пользователь определен в двух местах в основном orthanc.json и в credentials.json, то сервер будет завершать работу с ошибкой.
Редактируем основной файл конфигурации Orthanc.
|
1 |
nano /etc/orthanc/orthanc.json |
Минимально необходимый конфиг.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
{ "Name" : "Orthanc", // Каталог хранения DICOM-файлов "StorageDirectory" : "/var/lib/orthanc/db-v6", // Каталог индекса (не используется при PostgreSQL, но должен существовать) "IndexDirectory" : "/var/lib/orthanc/db-v6", // Включить HTTP-сервер "HttpServerEnabled" : true, // Порт Web-интерфейса "HttpPort" : 8042, // Разрешить подключение по сети "RemoteAccessAllowed" : true, // Требовать авторизацию "AuthenticationEnabled" : true, // Включить DICOM-сервер "DicomServerEnabled" : true, // AE Title сервера "DicomAet" : "ORTHANC", // DICOM-порт "DicomPort" : 4242, // Каталог плагинов "Plugins" : [ "/usr/share/orthanc/plugins/" ] } |

После изменения конфигурации всегда перезапускаем службу.
service orthanc restart
Проверяем статус.
|
1 |
systemctl status orthanc |

Проверяем ответ сервера. При включенной аутентификации в команде нужно указывать учетные данные.
|
1 |
curl -u admin:Pass-135 http://localhost:8042/system |
Проверяем доступ через web-интерфейс.
|
1 |
http://192.168.5.19:8042 |
Должен открыться интерфейс Orthanc Explorer.
Вводим учетные данные, указанные в файле конфига (admin Pass-135).
Если не запустился смотрим последние 30 логов.
|
1 |
journalctl -u orthanc -n 30 --no-pager |
Запуск с выводом причины ошибки.
|
1 |
/usr/sbin/Orthanc --verbose /etc/orthanc |
Установка диска для данных.
Переходим к этому пункту после того как Orthanc успешно запущен и проверен доступ.
Проверяем наличие второго диска в системе.
|
1 |
lsblk |
Создаем таблицу разделов GPT.
|
1 |
parted /dev/sdb --script mklabel gpt |
Создаем раздел на весь диск:
|
1 |
parted /dev/sdb --script mkpart primary ext4 0% 100% |
Проверяем результат.
|
1 |
lsblk |
Создаем файловую систему ext4 с меткой orthanc-data.
|
1 |
mkfs.ext4 -L orthanc-data /dev/sdb1 |
Создаем каталог, который будет использоваться в качестве точки монтирования диска с DICOM-архивом.
|
1 |
mkdir -p /dicom |
Назначение владельца каталога.
Orthanc работает от пользователя orthanc, поэтому предоставляем ему права.
|
1 |
chown -R orthanc:orthanc /dicom |
Проверяем.
|
1 |
ls -ld /dicom |
Результат.
|
1 |
drwxr-xr-x 3 orthanc orthanc |
Монтируем раздел вручную.
|
1 |
mount /dev/sdb1 /dicom |
Проверяем.
|
1 |
df -h |
Используем UUID для автомонтирования диска при старте ОС, потому что /dev/sdb может измениться, а UUID у файловой системы уникален и постоянен.
Получаем UUID раздела:
|
1 |
blkid /dev/sdb1 |

Редактируем конфигурацию fstab (filesystem table).
|
1 |
nano /etc/fstab |
Добавляем запись в конце.
|
1 |
/dev/disk/by-uuid/837142d0-f06f-42cf-be8d-d21f8fe33725 /dicom ext4 defaults,nofail 0 2 |

(указывать нужно свой UUID)
Сохраняем, выходим.
Ctrl+x, yes.
Открываем основной конфигурационный файл Orthanc.
|
1 |
nano /etc/orthanc/orthanc.json |
Изменяем только одну строку – новый путь для сохранения файлов.
|
1 |
"StorageDirectory" : "/dicom", |

Сохраняем, выходим.
Ctrl+x, yes.
Перезапускаем Orthanc.
|
1 |
systemctl restart orthanc |
Проверяем состояние службы:
|
1 |
systemctl status orthanc |
Должно быть Active: active (running)
Проверка хранения данных
Проверка выполняется после загрузки первого исследования.
|
1 |
ls -lah /dicom |
В каталоге должны появиться файлы и подкаталоги, созданные Orthanc.
Плагины просмотра.
Orthanc Explorer – классический встроенный Web-интерфейс Orthanc для управления DICOM-архивом. Позволяет просматривать пациентов и исследования, искать исследования, загружать DICOM-файлы и отправлять исследования на другие DICOM-серверы, выполнять административные операции.
Путь доступа.
|
1 |
http://<IP-сервера>:8042/ |
Или HTTPS если включен.
Orthanc Explorer 2 – современный Web-интерфейс Orthanc с улучшенным дизайном, расширенными возможностями поиска и более удобной навигацией по DICOM-архиву. Позволяет выполнять все функции классического Orthanc Explorer, а так же позволяет быстрее искать исследования, удобнее работать с большими архивами, интегрироваться с современными Web Viewer.
Путь доступа.
|
1 |
http://<IP-сервера>:8042/ui/app/ |
Или HTTPS если включен.
Orthanc Web Viewer – встроенный DICOM-просмотрщик, открывающий медицинские изображения непосредственно в браузере. Позволяет просматривать серии изображений, изменять масштаб и положение изображения, изменять яркость и контраст (Window/Level), выполнять базовые измерения, просматривать многокадровые исследования.
У Web Viewer нет постоянного URL для работы. Он открывается по специальной ссылке, которую формирует интерфейс Explorer после выбора пациента, исследования или серии.
То есть Orthanc Explorer и Orthanc Explorer 2 – это только Web-интерфейсы управления архивом. Orthanc Web Viewer – это просмотрщик DICOM-изображений, который запускается из одного из этих интерфейсов. Explorer и Web Viewer не заменяют, а дополняют друг друга.
Просмотр установленных в системе пакетов.
|
1 |
dpkg -l | grep orthanc |

Или можно посмотреть непосредственно установленные плагины.
|
1 |
curl -u admin:Pass-135 http://localhost:8042/plugins |

explorer.js – встроенный Web-интерфейс Orthanc (Orthanc Explorer).
web-viewer – просмотр DICOM-изображений непосредственно в браузере.
Это означает, что установлен классический Orthanc Explorer, а Orthanc Explorer 2 пока не установлен.
Установка orthanc-explorer2.
Пакет orthanc-explorer2 отсутствует в стандартных репозиториях Ubuntu.
Долгий вариант – устанавливать Orthanc с начала используя официальные репозитории Orthanc. Плюсы такого варианта в том, что все компоненты будут одной версии и гарантированно совместимы.
Вариант немного проще – подключить репозиторий Orthanc и установить из него только orthanc-explorer2.
Третий и используемый в итоге вариант – скачать плагин отдельно по ссылке и затем установить его.
Найти плагины можно на официальном сайте Orthanc.
Устанавливать нужно версию, соответствующую версии сервера.
Переходим в папку tmp.
|
1 |
cd /tmp |
Скачиваем плагин.
|
1 |
wget https://orthanc.uclouvain.be/downloads/linux-standard-base/orthanc-explorer-2/1.12.0/libOrthancExplorer2.so |
Копируем плагин в папку где в Orthanc должны размещаться плагины.
|
1 |
cp /tmp/libOrthancExplorer2.so /usr/share/orthanc/plugins/ |
Проверяем наличие скопированного файла.
|
1 |
ls -l /usr/share/orthanc/plugins/ |
Системные плагины установлены как символические ссылки, а Explorer 2 как обычный файл. Но это абсолютно нормально. Orthanc загружает все файлы *.so из каталога плагинов независимо от того, являются они ссылкой или обычным файлом.
Перезапускаем Orthanc.
|
1 |
systemctl restart orthanc |
Проверяем статус.
|
1 |
systemctl status orthanc |
Проверяем видит ли сервер плагин.
|
1 |
curl -u admin:Pass-135 http://localhost:8042/plugins |

Если плагин не загрузился, посмотреть логи.
|
1 |
journalctl -u orthanc -n 50 --no-pager |
Проверка доступа через браузер. (указываем свой IP)
|
1 |
http://192.168.5.19:8042/ui/app/ |

Установка завершена. Можно пользоваться новым интерфейсом и сервером Orthanc в целом.

