Skip to content

Installation.zh TW

chin edited this page May 7, 2023 · 9 revisions

安裝手冊

如果您是新手,請參閱從 0 開始部屬 Raccoon - Windows

環境所需

  • node.js >= 16
  • Java JDK >= 11
  • imagemagick
  • MongoDB >= 4

Note 您必須複製 opencv_java library 至 JDK's lib 資料夾 Windows,請複製 opencv_java.dll Linux,請複製 libclib_jiio.so 以及 libopencv_java.so

安裝 Node.js 套件

  • ⚠️ 請先進到 Raccoon-DICOM 專案目錄
npm install

設定

dotenv .env

  • 您可以在專案根目錄找到 .env 檔案進行設定,並請您務必在實際環境使用較安全的設定
  • 您可以直接複製 .env.template 並命名為 .env 進行修改
# MongoDB
MONGODB_NAME="raccoon-dicom"
MONGODB_HOSTS=["mongodb"]
MONGODB_PORTS=[27017]
MONGODB_USER="root"
MONGODB_PASSWORD="root"
MONGODB_AUTH_SOURCE="admin"
MONGODB_IS_SHARDING_MODE=false

# Server
SERVER_PORT=8081
SERVER_SESSION_SECRET_KEY="secret-key"

# DICOM Web
DICOM_STORE_ROOTPATH="/dicomFiles"
DICOMWEB_HOST="{host}"
DICOMWEB_PORT=8081
DICOMWEB_API="dicom-web"

# DICOM DIMSE
ENABLE_DIMSE=false
DCM4CHE_QRSCP_COMMAND=`[
    "-b",
    "DCMQRSCP:11112",
    "--dicomdir",
    "{project}/config/DICOMDIR",
    "--ae-config",
    "{project}/config/ae.properties",
    "--all-storage",
    "--filepath",
    "DICOM/{0020000D,hash}/{0020000E,hash}/{00080018,hash}.dcm",
    "--raccoon",
    "{project}/config/raccoon-dimse-app.example.json"
]`

# FHIR
SYCN_TO_FHIR_SERVER=false
FHIRSERVER_BASE_URL="http://localhost:8088/fhir"

環境變數資訊

Field Name Type of Value Description
#MongoDB
MONGODB_NAME string MongoDB 資料庫名稱
MONGODB_HOSTS array of strings MongoDB 伺服器運行的主機名稱或 IP 位址列表。
MONGODB_PORTS array of numbers 對應於 MONGODB_HOSTS 中指定的 MongoDB 伺服器的連接埠號列表。
MONGODB_USER string 連接到 MongoDB 伺服器時要使用的使用者名稱
MONGODB_PASSWORD string 連接到 MongoDB 伺服器時要使用的密碼
MONGODB_AUTH_SOURCE string 要進行身份驗證的 MongoDB 資料庫名稱
MONGODB_IS_SHARDING_MODE boolean MongoDB 是否為 sharding 模式
#Server
SERVER_PORT number 伺服器運行的埠(port)號
SERVER_SESSION_SECRET_KEY string 用於 session 的保密金鑰
#DICOMweb
DICOM_STORE_ROOTPATH string 存放 DICOM 檔案的根目錄
DICOMWEB_HOST string DICOM Web 伺服器的主機名稱。用於組合 00081190 (Retrieve URL)。

您可以在字串中使用 {host},它將替換為 request.headers.host
DICOMWEB_PORT number DICOM Web 伺服器運行的埠(port)號。用於組合 00081190 (Retrieve URL)

e.g. 8088,將會產生 http://example.com:8088/dicom-web/studies
#DIMSE
ENABLE_DIMSE boolean 是否啟用 DICOM DIMSE 服務
DCM4CHE_QRSCP_COMMAND string 啟動 DCM4CHE QRSCP 服務的命令。請參閱dcm4che-tool-dcmqrscp的用法,並且您必須傳遞 --raccoon {json-config-file},以讓 DCM4CHE QRSCP 與 raccoon 溝通。

racoon 的 DIMSE 設定請參閱 DIMSE APP

您可以在字串中使用 {project},它將替換為 __dirname。

DIMSE APP

  • Raccoon-DICOM 使用 DCM4CHE QRSCP Tool 以提供 DIMSE 服務
  • 您可以設定 ENABLE_DIMSE=true 以啟動 DICOM DIMSE 服務
  • 您必須在 DCM4CHE_QRSCP_COMMAND 環境變數傳遞 --raccoon {json-config-file} 指令
  • 範例檔可參閱 config/raccoon-dimse-app.example.json
  • raccoon.dicomStoreRoot 以及 raccoon.raccoonUploadScriptPath 請務必使用絕對路徑
{
  "mongodb": {
    "hosts": ["127.0.0.1"],
    "ports": [27017],
    "username": "root",
    "password": "root",
    "authSource": "admin",
    "database": "raccoon-dicom",
    "debug": false
  },
  "raccoon": {
    "dicomStoreRoot": "./",
    "raccoonUploadScriptPath": "local/dicom-uploader-stow.js",
    "mode": "STOW",
    "stowUrl": "http://127.0.0.1:8081/dicom-web/studies"
  }
}

Config properties

Field Name Type of Value Description
mongodb.hosts array of strings MongoDB 伺服器運行的主機名稱或 IP 位址列表
mongodb.ports array of numbers 對應於 mongodb.hosts 中 MongoDB 伺服器的埠號列表
mongodb.username string 連接 MongoDB 伺服器時使用的使用者名稱
mongodb.password string 連接 MongoDB 伺服器時使用的密碼
mongodb.authSource string 用於驗證的 MongoDB 資料庫名稱
mongodb.database string MongoDB 資料庫的名稱
mongodb.debug boolean MongoDB 是否為 Debug 模式,用於設定 logger level
raccoon.dicomStoreRoot string Raccoon-DICOM 的根目錄,用於 C-MOVE。

⚠️請使用絕對路徑
raccoon.raccoonUploadScriptPath string Raccoon-DICOM 的 DICOM 上傳腳本的路徑(即 local/dicom-uploader-stow.js 或 local/dicom-uploader.js)。

⚠️請使用絕對路徑
raccoon.mode string 上傳腳本的操作模式("STOW" 或 "LOCAL")
raccoon.stowUrl string Raccoon-DICOM 的 STOW 端點的 URL

部屬

Local

  • 運行以下指令部屬 Raccoon-DICOM
node server.js

Docker-compose

  • 您也可以使用 Docker-compose 進行部屬
  • ⚠️ 建議您先進行設定再進行部屬
  • 運行以下指令部屬 Raccoon-DICOM
sudo docker compose up

Note 您可能會需要把 docker-compose.yaml 複製至另一個資料夾,並更改 raccoon.build.context 的路徑 以防止在 volumes 當中映射過多資料 (i.e. mongodb, raccoon-storage)

Troubleshooting on linux

  • Unknown VR: Tag not found in data dictionary when using STOW-RS

    • 您必須設定 DCMDICTPATH 環境變數
    • dicom.dic 檔案可以在/usr/share/libdcmtk{version}./models/DICOM/dcmtk/dicom.dic找到

    {version} 對應到dcmtk的版本, e.g. 3.6.5 => libdcmtk15

    • 使用指令設定 DCMDICTPATH 或者您可以將指令加入到profile檔案中(~/.bashrc,~/.profile etc.), example with dcmtk 3.6.5:
    export DCMDICTPATH=/usr/share/libdcmtk15/dicom.dic
    • 檢查環境變數
    echo $DCMDICTPATH

Test

上傳影像 (STOW-RS)

  • 以下將使用來自 test/dicomFiles/jpeg2000/example-jpeg-2000.dcm 的檔案做上傳測試
  • 使用 curl 進行上傳
curl --location --request POST "http://localhost:8081/dicom-web/studies" ^
--header "Accept: application/dicom+json" ^
--header "Content-Type: multipart/related; type=\"application/dicom\"" ^
--form "[email protected]; type=application/dicom"
  • 出現以下訊息則代表成功
{"00081190":{"vr":"UT","Value":["http://localhost:8081/dicom-web/studies/1.3.46.670589.45.1.1.4993912214784.1.5436.1538560373543"]},"00081198":{"vr":"SQ","Value":[]},"00081199":{"vr":"SQ","Value":[{"00081150":{"vr":"UI","Value":["1.2.840.10008.5.1.4.1.1.77.1.6"]},"00081155":{"vr":"UI","Value":["1.3.6.1.4.1.5962.99.1.3002151337.1017604488.1540600476073.6.0"]},"00081190":{"vr":"UT","Value":["http://localhost:8081/dicom-web/studies/1.3.46.670589.45.1.1.4993912214784.1.5436.1538560373543/series/1.3.46.670589.45.1.1.4993912214784.1.5436.1538560606509.3/instances/1.3.6.1.4.1.5962.99.1.3002151337.1017604488.1540600476073.6.0"]}}]}}

獲取影像資訊 (QIDO-RS)

調閱影像-Frame (WADO-RS)

image

image