介紹各種 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 檔案與目錄結構
假設我們有許多的 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

