目錄
- 文件清單
- 下載地址
- 安裝概述
- 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在醫療影像管理中的重要性及其復雜性,為未來的開發和研究奠定了堅實的基礎。