介紹各種 DICOM 檔案排序工具的使用方式,以及實際操作範例。
dicomsorter
dicomsorter 是一個以 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