Запуск dcm4chee на MacOS

RedDeveloper
17.03.2022 17:10
Запуск dcm4chee на MacOS

Запуск dcm4chee на MacOS

Что такое DICOM?

Если вы занимаетесь информационными технологиями в здравоохранении, вы, возможно, слышали о стандарте DICOM. В своей простейшей форме DICOM - это зрелый стандарт для управления и передачи медицинских изображений вместе с медицинскими данными.

dcm4che: Библиотека DICOM, посвященная памяти Че Гевары
dcm4che: Библиотека DICOM, посвященная памяти Че Гевары

Что такое dcm4che?

dcm4che - это Java-библиотека, реализующая протокол DICOM. Надеюсь, она имеет открытый исходный код и размещена на Github. Это очень надежная реализация стандарта DICOM, и многие разработчики, включая меня, полагаются на эту замечательную библиотеку при разработке своего программного обеспечения для здравоохранения.

Что же такое dcm4chee?

Для внимательного читателя в названии есть двойное "е", dcm4chee. Нет, это не опечатка. На самом деле dcm4che - это гораздо больше, чем просто библиотека Java. Она включает в себя множество утилит и приложений для тестирования и разработки приложений Healthcare. Дополнительное "e" в dcm4chee означает "enterprise". Это полностью рабочий менеджер изображений/архив изображений.

Давайте запустим dcm4chee

Как разработчику программного обеспечения для здравоохранения или ИТ-специалисту, вам, вероятно, понадобится запустить dcm4chee, чтобы понять детали протокола DICOM. dcm4chee уже имеет хорошо написанный документ о запуске dcm4chee на Docker. Пожалуйста, проверьте эту ссылку. Как следует из названия, в статье будут описаны мелкие детали для правильного запуска dcm4chee на MacOS.

  1. Создайте пользовательскую мостовую сеть
docker network create dcm4chee_network

2. Нам нужно создать локальные каталоги для сохранения конфигурации. Я выбрал ~/.local/dcm4chee-arc/ в качестве корневой папки в моем домашнем каталоге. Вскоре мы сопоставим эти папки с нашими контейнерами Docker.

mkdir -p ~/.local/dcm4chee-arc/ldap/ ~/.local/dcm4chee-arc/slapd.d/ ~/.local/dcm4chee-arc/db/ ~/.local/dcm4chee-arc/wildfly/

3. Чтобы запускать контейнеры Docker в нашем текущем часовом поясе, мы создадим карту нашего файла часовых поясов. Однако, в отличие от Linux, в MacOS нет файла часовых поясов. Сначала проверьте текущий часовой пояс.

readlink /etc/localtime | sed 's#/var/db/timezone/zoneinfo/##'

4. Создайте файл часовых поясов с помощью следующей команды.

echo $(readlink /etc/localtime | sed 's#/var/db/timezone/zoneinfo/##') > ~/.local/dcm4chee-arc/timezone

5. Проверьте созданный файл таймзоны.

cat ~/.local/dcm4chee-arc/timezone

6. Мы готовы к запуску OpenLDAP Server. Проверьте папку slap.d/ через минуту. Она больше не пуста.

docker run --network=dcm4chee_network --name ldap \
-p 389:389 \
-v ~/.local/dcm4chee-arc/ldap:/var/lib/openldap/openldap-data \
-v ~/.local/dcm4chee-arc/slapd.d:/etc/openldap/slapd.d \
-d dcm4che/slapd-dcm4chee:2.6.0-25.2
$ ls -l ~/.local/dcm4chee-arc/slapd.dtotal
8drwxr-x
- - 8 haldun staff 256 Mar 14 16:41 cn=config-rw
- - - - 1 haldun staff 601 Mar 14 16:41 cn=config.ldif

7. Теперь запустите базу данных PostgresQL. После запуска в папке db/ будет много файлов. Если у вас запущен локальный PostgresQL, измените локальный порт на что-либо свободное в вашей системе (например, -p 15432:5432).

$ docker run --network=dcm4chee_network --name db \
-p 5432:5432 \
-e POSTGRES_DB=pacsdb \
-e POSTGRES_USER=pacs \
-e POSTGRES_PASSWORD=pacs \
-v /etc/localtime:/etc/localtime:ro \
-v ~/.local/dcm4chee-arc/timezone:/etc/timezone:ro \
-v ~/.local/dcm4chee-arc/db:/var/lib/postgresql/data \
-d dcm4che/postgres-dcm4chee:14.1-25
$ ls -l ~/.local/dcm4chee-arc/db/
...

8. Наконец, запустите контейнер dcm4che Archive.

$ docker run --network=dcm4chee_network --name arc \
-p 8080:8080 \
-p 8443:8443 \
-p 9990:9990 \
-p 9993:9993 \
-p 11112:11112 \
-p 2762:2762 \
-p 2575:2575 \
-p 12575:12575 \
-e POSTGRES_DB=pacsdb \
-e POSTGRES_USER=pacs \
-e POSTGRES_PASSWORD=pacs \
-e WILDFLY_WAIT_FOR="ldap:389 db:5432" \
-v /etc/localtime:/etc/localtime:ro \
-v ~/.local/dcm4chee-arc/timezone:/etc/timezone:ro \
-v ~/.local/dcm4chee-arc/wildfly:/opt/wildfly/standalone \
-d dcm4che/dcm4chee-arc-psql:5.25.2
$ ls -l ~/.local/dcm4chee-arc/wildflytotal
0drwxr-xr-x@
18 haldun staff 576 Feb 14 17:45 configurationdrwxr-xr-x
4 haldun staff 128 Mar 14 16:45 datadrwxr-xr-x@
7 haldun staff 224 Mar 14 16:45 deploymentsdrwxr-xr-x
3 haldun staff 96 Mar 14 16:45 logdrwxr-xr-x
3 haldun staff 96 Mar 14 16:45 tmp
$ tail -f ~/.local/dcm4chee-arc/wildfly/log/server.log
...

9. Давайте проверим, все ли работает. Используя dcm4che/dcm4che-tools, отправьте образы CT в Архив.

$ docker run --rm --network=dcm4chee_network dcm4che/dcm4che-tools storescu -cDCM4CHEE@arc:11112 /opt/dcm4che/etc/testdata/dicom

Полученные изображения должны появиться в пользовательском интерфейсе архива по адресу http://localhost:8080/dcm4chee-arc/ui2 или https://localhost:8443/dcm4chee-arc/ui2.

Полученные изображения должны появиться в пользовательском интерфейсе архива по адресу

Вуаля! Вот и все. Если эта статья помогла вам, пожалуйста, не забудьте поставить большой палец вверх. Если вы столкнулись с проблемой, пожалуйста, оставьте комментарий ниже.

Запуск dcm4chee на macOS был первоначально опубликован в Up&Running на Medium, где люди продолжают разговор, выделяя и отвечая на эту статью.

Шаблоны Angular PrimeNg
Шаблоны Angular PrimeNg

26.01.2023 14:14

Как привнести проверку типов в наши шаблоны Angular, использующие компоненты библиотеки PrimeNg, и настроить их отображение с помощью встроенной функции ngTemplateOutlet.

Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript

26.01.2023 13:19

Если вы веб-разработчик (или хотите им стать), то вы наверняка гик и вам нравятся "Звездные войны". А как бы вы хотели, чтобы фоном для вашего следующего сайта послужил начальный эпизод "Звездных войн"? 😁

Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot

26.01.2023 09:43

В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .

Начала с розового дизайна
Начала с розового дизайна

25.01.2023 11:01

Pink Design - это система дизайна Appwrite с открытым исходным кодом для создания последовательных и многократно используемых пользовательских интерфейсов.

Шлюз в PHP
Шлюз в PHP

25.01.2023 10:51

API-шлюз (AG) - это сервер, который действует как единая точка входа для набора микросервисов.

14 Задание: Типы данных и структуры данных Python для DevOps
14 Задание: Типы данных и структуры данных Python для DevOps

25.01.2023 09:17

проверить тип данных используемой переменной, мы можем просто написать: your_variable=100