介紹各種 DICOM 檔案排序工具的使用方式,以及實際操作範例。
dicomsorterdicomsorter 是一個以 Python 開發的命令列 DICOM 檔案排序與整理工具。
dicomsorter 可以使用 pip 來安裝:
# 安裝 dicomsorter
pip install dicomsorter
其使用方式可參考 --help 參數的輸出訊息。
# 查詢 dicomsorter 使用方式 dicomsorter --help
usage: dicomsorter [-h] [--version] [--path PATH [PATH ...]] [--filename-format FILENAME_FORMAT] [--anonymize] [--overwrite]
                   [--list-fields] [--verbose] [--dry-run] [--original-filename] [--concurrency CONCURRENCY] [--move]
                   [--force]
                   input_directory output_directory
Sort DICOM Images into folders based upon their metadata
positional arguments:
  input_directory       directory to recursively search for DICOM images
  output_directory      directory in which to place sorted DICOM images
optional arguments:
  -h, --help            show this help message and exit
  --version             display the current version and exit
  --path PATH [PATH ...]
                        a list of dicom fields to sort images by. Example: --path PatientName SeriesDescription
  --filename-format FILENAME_FORMAT
                        format to use for the filename
  --anonymize           anonymize the output images
  --overwrite           overwrite files in the destination if they exist
  --list-fields         list available DICOM fields and exit
  --verbose             show verbose output to the command line
  --dry-run             do not actually save the resulting images
  --original-filename   use the original filename
  --concurrency CONCURRENCY
                        number of threads to perform sorting (default: 2)
  --move                move the original files rather than copying them
  --force               automatically accept any prompts
假設我們有許多的 DICOM 醫療影像檔案放在 input_directory 目錄中,我們可以使用以下指令將此目錄中的所有 DICOM 檔案整理之後,放在 output_directory 目錄:
# 自動整理 DICOM 檔案與目錄結構
dicomsorter input_directory output_directory
dicomsorter 預設會以 SeriesDescription 作為目錄名稱,再根據 InstanceNumber 產生 DICOM 檔案名稱。
若希望在整理 DICOM 檔案時,只更改目錄結構,但是保留原始檔案名稱,可以加上 --original-filename 參數:
# 保留 DICOM 原始檔案名稱 dicomsorter --original-filename input_directory output_directory
如果希望自訂目錄結構,可以使用 --path 參數來指定,例如採用 PatientName 與 SeriesDescription 作為目錄名稱:
# 指定目錄結構為 PatientName/SeriesDescription dicomsorter --path PatientName SeriesDescription input_directory output_directory
若希望在實際寫入資料之前,先看一下重新整理過的目錄結構與檔案名稱是否適當,可以加上 --verbose 與 --dry-run 參數:
# 僅測試,不實際寫入資料 dicomsorter --verbose --dry-run input_directory output_directory
這樣執行時就只會輸出原始檔案與新檔案路徑的對應資訊,但是不會實際產生新的檔案。如果確定新的檔案名稱與結構沒問題,再執行實際的寫入指令即可。
若希望產生新的 DICOM 檔案與目錄結構時,直接覆蓋掉既有的檔案,可以加上 --overwrite 參數:
# 覆寫既有檔案 dicomsorter --overwrite input_directory output_directory
預設的狀況下,dicomsorter 會以複製檔案的方式,產生新的 DICOM 檔案與目錄結構時,若希望採用搬移檔案的方式來處理,可以加上 --move 參數:
# 採用搬移的方式整理檔案 dicomsorter --move input_directory output_directory