Запуск dcm4chee на MacOS
Если вы занимаетесь информационными технологиями в здравоохранении, вы, возможно, слышали о стандарте DICOM. В своей простейшей форме DICOM - это зрелый стандарт для управления и передачи медицинских изображений вместе с медицинскими данными.
dcm4che - это Java-библиотека, реализующая протокол DICOM. Надеюсь, она имеет открытый исходный код и размещена на Github. Это очень надежная реализация стандарта DICOM, и многие разработчики, включая меня, полагаются на эту замечательную библиотеку при разработке своего программного обеспечения для здравоохранения.
Для внимательного читателя в названии есть двойное "е", dcm4chee. Нет, это не опечатка. На самом деле dcm4che - это гораздо больше, чем просто библиотека Java. Она включает в себя множество утилит и приложений для тестирования и разработки приложений Healthcare. Дополнительное "e" в dcm4chee означает "enterprise". Это полностью рабочий менеджер изображений/архив изображений.
Как разработчику программного обеспечения для здравоохранения или ИТ-специалисту, вам, вероятно, понадобится запустить dcm4chee, чтобы понять детали протокола DICOM. dcm4chee уже имеет хорошо написанный документ о запуске dcm4chee на Docker. Пожалуйста, проверьте эту ссылку. Как следует из названия, в статье будут описаны мелкие детали для правильного запуска dcm4chee на MacOS.
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, где люди продолжают разговор, выделяя и отвечая на эту статью.
26.01.2023 14:14
Как привнести проверку типов в наши шаблоны Angular, использующие компоненты библиотеки PrimeNg, и настроить их отображение с помощью встроенной функции ngTemplateOutlet.
26.01.2023 13:19
Если вы веб-разработчик (или хотите им стать), то вы наверняка гик и вам нравятся "Звездные войны". А как бы вы хотели, чтобы фоном для вашего следующего сайта послужил начальный эпизод "Звездных войн"? 😁
26.01.2023 09:43
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
25.01.2023 11:01
Pink Design - это система дизайна Appwrite с открытым исходным кодом для создания последовательных и многократно используемых пользовательских интерфейсов.
25.01.2023 10:51
API-шлюз (AG) - это сервер, который действует как единая точка входа для набора микросервисов.
25.01.2023 09:17
проверить тип данных используемой переменной, мы можем просто написать: your_variable=100