開源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.pswp.cn/web/72612.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/72612.shtml
英文地址,請注明出處:http://en.pswp.cn/web/72612.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java使用(Preference、Properties、XML、JSON)實現處理(讀寫)配置信息或者用戶首選項的方式的代碼示例和表格對比

在Java應用程序中,處理應用首選項(preferences)有多種方法,包括使用java.util.prefs.Preferences類、屬性文件(如.properties文件)、XML文件和JSON文件。下面是每種方法的詳細說明和代碼示例,最…

工作記錄 2017-02-04

工作記錄 2017-02-04 序號 工作 相關人員 1 修改郵件上的問題。 更新RD服務器。 郝 更新的問題 1、DataExport的設置中去掉了ListPayors,見DataExport\bin\dataexport.xml 2、“IPA/Group Name” 改為 “Insurance Name”。 3、修改了Payment Posted的E…

dataframe數據形式操作中的diff和shift函數區別與對比

問題分析 從錯誤日志中可以看到,代碼在 report_services.py 的 gnss_monthly_report 函數中出現了 ValueError,具體錯誤信息是: ValueError: either both or neither of x and y should be given這個錯誤發生在以下代碼行: rep…

C語言動態內存管理(下)

歡迎拜訪:霧里看山-CSDN博客 本篇主題:C語言動態內存管理(下) 發布時間:2025.3.18 隸屬專欄:C語言 目錄 動態內存常見錯誤內存泄漏(Memory Leak)典型場景后果解決方案 懸掛指針(Dangling Pointe…

Vue:Vue2和Vue3創建項目的幾種常用方式以及區別

前言 Vue.js 和 Element UI 都是用 JavaScript 編寫的。 1、Vue.js 是一個漸進式 JavaScript 框架。2、Element UI 是基于 Vue.js 的組件庫。3、JavaScript 是這兩個項目的主要編程語言。 而Element Plus是基于TypeScript開發的。 一、Vue2 1、基于vuecli工具創建 vue2 …

機器人曲面跟蹤Surface-Tracking

定義 機器人曲面跟蹤(Surface-Tracking)是指機器人通過實時感知工件曲面的三維形貌,動態調整運動軌跡和位姿,以精確跟隨曲面進行加工(如打磨、拋光、噴涂等)的技術。 力 - 位姿協同控制 力控模式&#xff…

網絡安全運維應急響應與溯源分析實戰案例

在日常運維過程中,網絡安全事件時有發生,快速響應和精準溯源是保障業務穩定運行的關鍵。本文將通過一個實際案例,詳細解析從發現問題到溯源定位,再到最終解決的完整流程。 目錄 一、事件背景 二、事件發現 1. 監控告警觸發 2…

【AVRCP】藍牙協議棧深度解析:AVCTP互操作性核心機制與實現細節

目錄 一、事務標簽(Transaction Label)機制 1.1 事務標簽核心規則 1.2 事務標簽作用域與并發性 1.3 實現建議與陷阱規避 1.4 協議設計思考 1.5 調試與驗證 二、消息分片(Fragmentation)機制 2.1 分片觸發條件 2.2 分片支…

harmonyOS NEXT開發與前端開發深度對比分析

文章目錄 1. 技術體系概覽1.1 技術棧對比1.2 生態對比 2. 開發范式比較2.1 鴻蒙開發范式2.2 前端開發范式 3. 框架特性對比3.1 鴻蒙 Next 框架特性3.2 前端框架特性 4. 性能優化對比4.1 鴻蒙性能優化4.2 前端性能優化 5. 開發工具對比5.1 鴻蒙開發工具5.2 前端開發工具 6. 學習…

OpenWebUI:一站式 AI 應用構建平臺體驗

🚀 大家好,今天給大家分享一個超棒的 AI 應用構建工具——OpenWebUI!體驗下來,只能說絲滑!必須強烈推薦! 🔥 聽說過阿里巴巴的 Qwen 嗎?他們最新的 Qwen Chat 網站就是用 OpenWebUI…

多線程—進程與線程

1 進程 1.1 進程概念 進程:操作系統提供的一種抽象,當程序在運行時,好像計算機的所有硬件資源都在為其服務。換言之,進程就是程序的一次運行過程。進程是操作系統分配資源的基本單位。 注意:區分進程和程序&#xff0…

[原創](Modern C++)現代C++的關鍵性概念: 靈活多變的綁定: std::bind

[作者] 常用網名: 豬頭三 出生日期: 1981.XX.XX 企鵝交流: 643439947 個人網站: 80x86匯編小站 編程生涯: 2001年~至今[共24年] 職業生涯: 22年 開發語言: C/C、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 開發工具: Visual Studio、Delphi、XCode、C …

ssm框架之mybatis框架動態SQL

1 mybatis動態sql mybatis可以通過各種各樣的標簽在sql映射文件中實現如下功能 1、語句的動態拼接 2、前后綴格式處理 3、復雜參數處理 常用標簽如下: 1.1 if標簽 如下示例,當有一個入參為null或者空的時候的時候,不參與計算,…

Spring Boot 事務詳解

Spring Boot 事務詳解 引言 在現代應用程序中,事務管理是確保數據一致性和完整性的重要機制。Spring Boot 提供了強大的事務管理功能,使得開發者可以輕松地定義和管理事務。本文將詳細介紹 Spring Boot 中的事務管理,包括事務傳播行為、事務…

poetry使用

1.初始化 package name 填入口文件名 poetry init2.在本目錄下虛擬 poetry config virtualenvs.in-project true 3.自動生成依賴文件和vent虛擬環境,管理本項目下載包 poetry add flask pandas numpy 4 4.下載依賴 poetry install 5.查看都安裝了什么包 poe…

Git 新建本地分支并關聯到遠程倉庫

文章目錄 1、方法一2、方法二 1、方法一 A、新建本地分支: git checkout -b new-branch-nameB、push新分支到遠程倉庫: git push origin newBranchC、本地分支關聯到遠程(選一個即可): git branch --set…

一條SQL在mysql數據庫中經歷的過程

SQL語句在MySQL數據庫中普遍經歷的過程如下: 客戶端發起查詢請求到MySQL數據庫服務器監聽端口; MySQL數據庫server端接收到請求; server端從已有的連接池或者新建一個線程,用來處理客戶端發起的請求; server層…

Compose 的產生和原理

引言 compose 出現的目的: 重新定義android 上ui 的編寫方式。為了提高android 原生ui開發效率。讓android 的UI開發方式跟上時代。 正文 compose 是什么? 就是一套ui框架 和flutter 一樣是一套ui框架 Flutter:跨平臺開發趨勢與企業應用的…

【計算機網絡】一二章

一 二 非常棒的例子 相同的傳播時延,帶寬越大,該鏈路上所能容納的比特數越多 相同的傳播時延,帶寬越大,該鏈路上所能容納的比特數越多 往返時間(Round-Trip Time,RTT)s是指從發送端發送數據分組…

微軟OneNote無法同步解決方案

目錄 前言原因UWP特性 解決方案C***h注冊表 參考鏈接 前言 假設有多臺Windows電腦,最方便且免費的多設備筆記同步方案就是微軟自家的OneNote,使用OneDrive自帶的5G云存儲。 但是在國內大陸的OneNote,經常會出現無法同步、同步失敗&#xff1…