开源PACS(dcm4che-arc-light)部署教程,源码方式

在这里插入图片描述

目录

  • 文件清单
  • 下载地址
  • 安装概述
    • OpenLDAP、Apache Directory Studio
    • Wildfly
    • dcm4che
  • 安装部署
    • MySQL
    • 源码编译
      • dcm4chee
      • dcm4chee-arc-light
    • OpenLDAP安装
    • ApacheDirectoryStudio安装
    • 配置WildFly服务器
  • 部署完成

文件清单

在这里插入图片描述

下载地址

  • Apache directory studio - link
  • OpenLDAP - link
  • dcm4chee - link
  • JDK - link
  • MySQL - link
  • keycloak-oidc-wildfly-adapter-15.0.0.zi - link
  • widfly - link

安装概述

由于dcm4chee使用到的一些环境和配置在日常开发或者流行框架里都是很少见的所以我会大致讲解一下每个工具在这个环节中充当的作用,当然由于个人水平有限部分内容可能不能很好的或者正确的讲述,如果错误欢迎指正。
首先安装包中部分内容的讲解,

OpenLDAP、Apache Directory Studio

  • OpenLDAP 则是一个开源的LDAP服务器软件实现,它允许你运行自己的LDAP服务。
  • Apache Directory Studio 是一个基于 Eclipse 的 LDAP 目录管理工具。它提供了丰富的图形用户界面,使得管理和操作 LDAP 服务器变得更为简单直观。
    何为LDAP服务?轻量级目录访问协议,是一种开放的、跨平台的协议,用于访问和维护分布式目录信息服务。LDAP服务主要用于存储和检索关于用户、设备、权限以及其他资源的信息,并支持快速查询这些信息的能力。它被广泛应用于需要集中管理用户身份验证和授权的应用程序和服务中。非常适合于那些需要快速查找的静态数据集,在dcm4chee中保存了写配置信息,类似于Nacos的配置中心,不过是静态的 ~ ~

Wildfly

WildFly 是一个开源的、基于 Java EE(现已更名为 Jakarta EE)的应用服务器,由 Red Hat 开发和维护。它以前被称为 JBoss AS 或者是 JBoss EAP(Enterprise Application Platform)。WildFly 提供了一个运行企业级Java应用程序的强大平台,并支持最新的Java EE标准以及一系列丰富的功能。
看定义像不像Tomcat?我们放一下Tomcat的:
Tomcat 是一个专注于 Servlet 和 JSP 规范的轻量级开源Web服务器和Servlet容器。它主要用于部署基于Servlet和JSP技术的Java Web应用程序。
当然两个的侧重不一样,WildFly 提供了一个完整的 Jakarta EE 实现,而 Tomcat 更加专注于Servlet和JSP的支持,在此处不过多深入,暂时对比着看看。

dcm4che

重头戏!!!
dcm4che 是一个开源的Java库和一系列应用程序,主要用于医疗影像信息学领域,特别是处理DICOM(医学数字成像和通信)标准的数据。它为开发人员提供了工具和库来构建、存储、查询和检索医学影像及相关信息的应用程序。

题外话:基于C++的DCMTK、基于Java的dcm4che以及基于python的pydicom,都是非常优秀的解释DICOM标准的第三方库,通过在工程中引入它们可以避免软件开发人员去进行底层的解析工作,可为项目开发提高效率。

包的获取主要分两种方式源码方式和编译好的包,如果是简单的使用可以考虑编译好的包,自己想看细节的话肯定是要源码的

源码地址:https://github.com/dcm4che
编译包的地址:https://sourceforge.net/projects/dcm4che/

总结一下,dcm4chee就是在搭建好WildFly和OpenLDAP后将war包放到WilFly中运行起来。

安装部署

JDK环境

在这里插入图片描述
在这里插入图片描述

MySQL

安装步骤,略
创建表结构
在这里插入图片描述
在这里插入图片描述

源码编译

dcm4chee

从github https://github.com/dcm4che/dcm4che 下载然后install到本地,
在这里插入图片描述

mvn -T 8 install

在这里插入图片描述

建议科学上网,完全下载下来还是挺费时间的,如果中间存在失败的进入文件夹重新安装
在这里插入图片描述

dcm4chee-arc-light

下载dcm4chee-arc-light代码, https://github.com/dcm4che/dcm4chee-arc-light

使用Idea打开
在这里插入图片描述

同样使用maven install成功但是此时默认生成的是plsql的
进入最外层pom中修改
在这里插入图片描述

再次install
在这里插入图片描述

到此代码编译的工作就完成了,稍后我们部署好WildFly后再启动程序
看一下包中的内容,大致这样的结构
在这里插入图片描述

后续都会用到

OpenLDAP安装

双击
在这里插入图片描述

其实安装的过程就是一直下一步就完了,此处借鉴了下网上的截图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ApacheDirectoryStudio安装

当然OpenLDAP的安装还可以通过Docker的方式,例如我mac本上就是通过此方式安装的,参考一下这个
https://blog.csdn.net/weixin_42176112/article/details/123390391
https://blog.csdn.net/weixin_42176112/article/details/123308975?spm=1001.2014.3001.5501
OpenLDAP配置
‪复制”dcm4chee-arc-5.30.0-mysql\ldap\schema“下文件至”OpenLDAP\schema“:
在这里插入图片描述

修改配置 编辑“OpenLDAP\slapd.conf”:
在这里插入图片描述

完整的

MDB Backend configuration file
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
ucdata-path    ./ucdata
include        ./schema/core.schema
include        ./schema/cosine.schema
include        ./schema/nis.schema
include        ./schema/inetorgperson.schema
include        ./schema/openldap.schema
include        ./schema/dyngroup.schema
include         ./schema/dicom.schema
include         ./schema/dcm4che.schema
include         ./schema/dcm4chee-archive.schema
include         ./schema/dcm4chee-archive-ui.schemapidfile        ./run/slapd.pid
argsfile    ./run/slapd.args# Enable TLS if port is defined for ldapsTLSVerifyClient never
TLSCipherSuite ECDHE-RSA-AES256-SHA384:AES256-SHA256:!RC4:HIGH:!MD5:!aNULL:!EDH:!EXP:!SSLV2:!eNULL
TLSProtocolMin 3.3
TLSCertificateFile ./secure/certs/maxcrc.cert.pem
TLSCertificateKeyFile ./secure/certs/maxcrc.key.pem
TLSCACertificateFile ./secure/certs/maxcrc.cert.pem#######################################################################
# mdb database definitions
#######################################################################database    mdb
suffix          "dc=dcm4che,dc=org"
rootdn          "cn=admin,dc=dcm4che,dc=org"
rootpw          secret
# Cleartext passwords, especially for the rootdn, should
# be avoid.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw    {SSHA}7iVNbPoEZ/wAT+9Lfjs+fe38CZOSrLJo# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory ./data
searchstack 20
# Indices to maintain
index mail pres,eq
index objectclass pres
index default eq,sub
index sn eq,sub,subinitial
index telephonenumber
index cn

重启一下
在这里插入图片描述

配置一下
打开 Apache Directory Studio
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置WildFly服务器

解压,进入 standalone\configuration复制standalone.xml和dcm4chee-arc.xml
在这里插入图片描述

安装dcm4chee的核心模块,复制keycloak-oidc-wildfly-adapter-15.0.0.zip到\dcm4chee-arc-5.33.1-mysql\jboss-modules文件夹
一起解压
在这里插入图片描述

复制到wildfly-34.0.1.Final的文件夹
在这里插入图片描述

此时你有两种修改dcm4chee-arc.xml的选择,第一种,打开dcm4chee-arc.xml,借助gpt或者其他ai工具逐行理解修改
在这里插入图片描述

方式2
通过 wildfly 打开dcm4chee-arc.xml 修改里面的127.0.0.1为0.0.0.0
在这里插入图片描述

进入D:\wildfly-34.0.1.Final\bin中执行

standalone.bat -c dcm4chee-arc.xml

打开D:\dcm4chee\dcm4chee-arc-5.33.1-mysql\cli,调整你的数据库信息
在这里插入图片描述

然后在bin下面再打开一个命令行(Linux系统的自行修改)

jboss-cli.bat -c --file="D:\dcm4chee\dcm4chee-arc-5.33.1-mysql\cli\add-data-source-mysql.cli"
jboss-cli.bat -c --file="D:\dcm4chee\dcm4chee-arc-5.33.1-mysql\cli\adjust-managed-executor.cli"
jboss-cli.bat -c
/system-property=dcm4chee-arc.DeviceName:add(value=dcm4chee-arc)
/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=max-post-size,value=10000000000)
/subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=max-post-size,value=10000000000) 
:reload

运行代码
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

D:\wildfly-34.0.1.Final\bin\standalone.bat -c dcm4chee-arc.xml

在这里插入图片描述
在这里插入图片描述

成功,如果你恰好有OHIF环境,找到 local_dcm4chee.js修改IP地址和端口
在这里插入图片描述

yarn run dev:dcm4chee

在这里插入图片描述
在这里插入图片描述

OK
在这里插入图片描述

部署完成

完成上述步骤,我们通过源码部署的方式成功搭建了dcm4che环境。这种方式的部署,不仅仅是一个技术上的实践,更为我们深入探索dcm4che的精髓打开了大门。它为我们提供了一个独特的视角来观察和理解这一强大工具集的工作原理,同时极大地促进了我们对DICOM标准的学习与应用。通过这样的过程,我们可以更深刻地认识到dcm4che在医疗影像管理中的重要性及其复杂性,为未来的开发和研究奠定了坚实的基础。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35586.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PySide(PyQt),使用types.MethodType动态定义事件

以PySide(PyQt)的图片项为例,比如一个视窗的场景底图是一个QGraphicsPixmapItem,需要修改它的鼠标滚轮事件,以实现鼠标滚轮缩放显示的功能。为了达到这个目的,可以重新定义一个QGraphicsPixmapItem类,并重写它的wheelE…

深度学习 Deep Learning 第1章 深度学习简介

第1章 深度学习简介 概述 本章介绍人工智能(AI)和深度学习领域,讨论其历史发展、关键概念和应用。解释深度学习如何从早期的AI和机器学习方法演变而来,以及如何有效解决之前方法无法应对的挑战。 关键概念 1. 人工智能的演变 …

简述下npm,cnpm,yarn和pnpm的区别,以及跟在后面的-g,--save, --save-dev代表着什么

文章目录 前言一、npm,cnpm,yarn和pnpm的基本介绍和特点1.npm (Node Package Manager)2. Yarn3. cnpm (China npm)4. pnpm 二、简述npm和pnpm 的存储方式和依赖数1.存储方式2.依赖树 三、两者依赖树的差异导致结果的对比四、简单说说-g,--sav…

vue3系列:vite+vue3怎么配置通过ip和端口打开浏览器

目录 1.前言 2.修改前的 3.修改后的 4.效果 5.其他 1.前言 想要使用IP端口号的方式访问页面,结果无法访问 查了些资料,原来是vite.config.js需要加一些配置才能让他通过IP访问,默认的只能localhost:端口号访问 2.修改前的 使用vue3默认…

使用yolov8+flask实现精美登录界面+图片视频摄像头检测系统

这个是使用flask实现好看登录界面和友好的检测界面实现yolov8推理和展示,代码仅仅有2个html文件和一个python文件,真正做到了用最简洁的代码实现复杂功能。 测试通过环境: windows x64 anaconda3python3.8 ultralytics8.3.81 flask1.1.2…

突破连接边界!O9201PM Wi-Fi 6 + 蓝牙 5.4 模块重新定义笔记本无线体验

在当今数字化时代,笔记本电脑已成为人们工作、学习和娱乐的必备工具。而无线连接技术,作为笔记本电脑与外界交互的关键桥梁,其性能的优劣直接关乎用户体验的好坏。当下,笔记本电脑无线连接领域存在诸多痛点,严重影响着…

2025 香港 Web3 嘉年华:全球 Web3 生态的年度盛会

自 2023 年首届香港 Web3 嘉年华成功举办以来,这一盛会已成为全球 Web3 领域规模最大、影响力最深远的行业活动之一。2025 年 4 月 6 日至 9 日,第三届香港 Web3 嘉年华将在香港盛大举行。本届活动由万向区块链实验室与 HashKey Group 联合主办、W3ME 承…

Windows11 新机开荒(二)电脑优化设置

目录 前言: 一、注册微软账号绑定权益 二、此电脑 桌面图标 三、系统分盘及默认存储位置更改 3.1 系统分盘 3.2 默认存储位置更改 四、精简任务栏 总结: 前言: 本文承接上一篇 新机开荒(一) 上一篇文章地址&…

[C++面试] 标准容器面试点

一、入门 1、vector和list的区别 [C面试] vector 面试点总结 vector 是动态数组,它将元素存储在连续的内存空间中。支持随机访问,即可以通过下标快速访问任意位置的元素,时间复杂度为 O(1),准确点是均摊O(1)。但在中间或开头插…

蓝桥杯每日一题

丢失的雨伞 题目思路代码演示 题目 今天晚上本来想练习一下前缀和与差分 结果给我搜出来这题(几乎没啥关系),我看半天有点思路但又下不了手哈哈,难受一批 在图书馆直接红温了 题目链接 思路 题目要求找到两个不重叠的区间&…

校园安全用电怎么保障?防触电装置来帮您

引言 随着教育设施的不断升级和校园用电需求的日益增长,校园电力系统的安全性和可靠性成为了学校管理的重要课题。三相智能安全配电装置作为一种电力管理设备,其在校园中的应用不仅能够提高电力系统的安全性,还能有效保障师生的用电安全&am…

Matlab 汽车二自由度转弯模型

1、内容简介 Matlab 187-汽车二自由度转弯模型 可以交流、咨询、答疑 2、内容说明 略 摘 要 本文前一部分提出了侧偏角和横摆角速度作为参数。描述了车辆运动的运动状态,其中文中使用的参考模型是二自由度汽车模型。汽车速度被认为是建立基于H.B.Pacejka的轮胎模…

OpenCV计算摄影学(20)非真实感渲染之增强图像的细节函数detailEnhance()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 此滤波器增强特定图像的细节。 cv::detailEnhance用于增强图像的细节,通过结合空间域和频率域的处理,提升图像中特定细节…

Java面试八股—Redis篇

一、Redis的使用场景 (一)缓存 1.Redis使用场景缓存 场景:缓存热点数据(如用户信息、商品详情),减少数据库访问压力,提升响应速度。 2.缓存穿透 正常的访问是:根据ID查询文章&…

2025-03-17 Unity 网络基础1——网络基本概念

文章目录 1 网络1.1 局域网1.2 以太网1.3 城域网1.4 广域网1.5 互联网(因特网)1.6 万维网1.7 小结 2 IP 地址2.1 IP 地址2.2 端口号2.3 Mac 地址2.4 小结 3 客户端与服务端3.1 客户端3.2 服务端3.3 网络游戏中的客户端与服务端 1 网络 ​ 在没有网络之前…

【工业现场总线】控制网络的主要特点是?OSI参考模型的分层是?

目录 1、控制网络的主要特点? 2、网络拓扑结构的主要类型?其各自主要特点是什么? 3、网络的传输介质主要有什么? 4、网络传输介质的访问控制方式主要有哪些?其各自主要特点是什么? 5、OSI参考模型的分…

微软开源神器OmniParser V2.0 介绍

微软开源的OmniParser V2.0是一款基于纯视觉技术的GUI智能体解析工具,旨在将用户界面(UI)截图转换为结构化数据,从而实现对计算机屏幕上的可交互元素的高效识别和操控。这一工具通过结合先进的视觉解析技术和大型语言模型&#xf…

用python代码将excel中的数据批量写入Json中的某个字段,生成新的Json文件

需求 需求: 1.将execl文件中的A列赋值给json中的TrackId,B列赋值给json中的OId 要求 execl的每一行,对应json中的每一个OId json 如下: {"List": [{"BatchNumber": "181-{{var}}",// "Bat…

实验篇| Nginx环境搭建-安全配置

在前面的文章里,阿祥详细介绍了在 Windows 系统中安装 Nginx 服务器的具体操作步骤,感兴趣的朋友可以参考:实验篇 | Nginx 反向代理 - 7 层代理 。完成 Nginx 的安装只是搭建 Web 服务的第一步,为了保障服务器的稳定运行以及数据安…

理解我们单片机拥有的资源

目录 为什么要查询单片机拥有的资源 所以,去哪些地方可以找数据手册 一个例子:STM32F103C8T6 前言 本文章隶属于项目: Charliechen114514/BetterATK: This is a repo that helps rewrite STM32 Common Repositorieshttps://github.com/C…