介紹如何安裝與使用 RSNA MIRC CTP 去識別化(de-identification)工具,對 DICOM 影像進行匿名化(anonymization)與假名化(pseudonymization)處理,清除影像中的個人資料。
安裝 JRE
由於 CTP 相關的工具都是由 Java 所開發的,使用前要先安裝好基本的 JRE 環境。若在 Windows 或 macOS 環境下,可從 Java 官方網站下載安裝檔進行安裝。
若在 Ubuntu Linux 中可以使用 apt
安裝 JRE 套件:
# 安裝 JRE
sudo apt install default-jre
CTP(Clinical Trials Processor)
RSNA MIRC CTP(Clinical Trials Processor)是一套具有高度彈性的臨床資料處理工具,可以用於 DICOM 醫療影像的去識別化處理,在許多的去識別化工具測試評比表現優異,此工具也是 TCIA 所指定的去識別化工具之一。
CTP 的工具皆以 JAR 的形式釋出,所以不管是在 Windows、macOS 或 Linux 等平台都可以直接執行,操作方式都相同。
下載與安裝 CTP
從 RSNA MIRC 網站上下載 CTP-installer.jar
這個 CTP 的 JAR 安裝檔。
若在 Ubuntu Linux 伺服器上,可以使用 wget
下載:
# 下載 CTP-installer.jar
wget http://mirc.rsna.org/download/CTP-installer.jar
下載 JAR 安裝檔之後,使用以下指令執行 JAR 檔案進行安裝,並選擇安裝路徑,安裝路徑可以自由指定,安裝的過程只是將檔案解壓縮至安裝路徑之下而已。
# 安裝 CTP java -jar CTP-installer.jar
若在 Windows 中也可以直接以滑鼠點兩下的方式來執行 JAR 檔案。
接著設定 CTP 伺服器所使用的連接埠號。
安裝完成並關閉安裝程式之後,會自動執行 RSNA CTP Launcher 伺服器管理程式,在這個管理介面中可以調整 CTP 伺服器的工作處理流程設定,控制 CTP 伺服器的運行,以及查閱記錄檔等。
平常若要手動啟動 RSNA CTP Launcher,可以在進入 CTP 安裝目錄之後,執行 Launcher.jar
這個 JAR 檔:
# 啟動 RSNA CTP Launcher java -jar Launcher.jar
新增 CTP Pipeline
CTP 是透過各種處理步驟(stages)所組合而成的 pipeline 來處理各種資料的,主要的步驟可以分為四大類:
- Import Services:提供各種匯入資料的方式。
- Processors:提供各種資料處理工具。
- Storage Services:提供各種資料儲存方式。
- Export Services:提供各種資料匯出方式。
使用者可以依照自己的需求使用這些處理步驟建立 pipeline,或是選用內建好的 pipeline 組合。
若要進行 DICOM 影像的去識別化,可以在「Pipeline」選單中選取內建的「DICOM De-identification to Local Storage」這一條 pipeline,將其新增至伺服器中。
建立 pipeline 之後,可以調整 pipeline 中各個處理步驟的設定,在去識別化的流程中,比較重要的就是 DicomAnonymizer 的 script 設定,這個 script 中明確定義了每個 DICOM 標籤的處理方式,CTP 的 scripts
與 profiles
目錄中附帶了許多依據 DICOM 標準所撰寫的 script,使用者可以從中選擇適合自己的 script 來用,另外也可以搭配預先定義好的 ID 對照表進行 ID 的去識別轉換。
在使用既有的去識別化 script 設定檔時,記得要修改設定檔中針對個別機構或專案的設定值,例如機構名稱、專案名稱等屬性,最重要的是一定要設定好 UIDROOT
值,若使用別人的 UIDROOT
可能會有 UID 重複的風險。
除了 DicomAnonymizer 之外,DicomPixelAnonymizer 也有 script 設定,其定義了如何去除烙印在影像上的個人資料。
這裡的 IDMap 是用來讓下一個步驟的 DicomAnonymizer 產生各種 UID、AccessionNumber 與 Patient ID 的原始值與取代值的對應表。而 DicomDecompressor 則是用於影像資料的解壓縮。
設定好 pipeline 並儲存之後,選擇「General」頁籤,按下「Start」啟動 RSNA CTP 伺服器。
選擇「Log」頁籤,查看伺服器啟動的狀況。
CTP 伺服器啟動之後,我們就可以用一般的瀏覽器開啟指定的連接埠,就可以看到 CTP 伺服器的網頁介面了,若想要登入網頁介面,可以使用預設的 admin
管理帳號,而密碼則是 password
。
這樣 CTP 伺服器就準備好了,接下來就可以將 DICOM 影像檔案送進 CTP 伺服器進行處理了。
以 FileSender 傳送 DICOM 影像
將 DICOM 影像檔案遞送至 CTP 伺服器的方式有很多種,這裡我們示範以 FileSender 透過 HttpImportService 的方式匯入 DICOM 影像。
首先從 RSNA MIRC 網站上下載 FileSender 的 JAR 安裝檔。若在 Ubuntu Linux 伺服器上,可以使用 wget
下載:
# 下載 FileSender-installer.jar
wget http://mirc.rsna.org/download/FileSender-installer.jar
下載 JAR 安裝檔之後,執行該 JAR 安裝檔,安裝 FileSender,並選擇安裝路徑:
# 安裝 FileSender java -jar FileSender-installer.jar
安裝好 FileSender 之後,執行其中的 FileSender.jar
:
# 執行 FileSender java -jar FileSender.jar
啟動 FileSender 之後,在左側欄位中可以選擇要上傳的 DICOM 影像,可以選擇單一檔案或是整個目錄,而右側則是填入 DICOM 伺服器的位址 http://localhost:7778/
,設定好之後,按下「Send」上傳檔案。
上傳完成後,會顯示上傳結果。
上傳 DICOM 影像至 CTP 伺服器之後,會自動經過 pipeline 處理,處理完成之後的影像預設會儲存至 CTP 安裝路徑下的 roots/FileStorageService/__default/
目錄中。
# 查看處理結果 ls -R roots/FileStorageService/__default/
__guests.xml __index.xml ST-13821646120427586942 ST-16316529995385159400 roots/FileStorageService/__default/ST-13821646120427586942: FO-10793127550884327511.dcm FO-15090205929499068295.dcm __index.xml FO-14240513639107968581.dcm FO-447121239004225879.dcm roots/FileStorageService/__default/ST-16316529995385159400: FO-10735987393490621105.dcm FO-2888303257337280749.dcm FO-1137166037218404651.dcm FO-7206559828680062055.dcm FO-12744427732757654110.dcm FO-8639208383977107329.dcm FO-13436623129608677956.dcm FO-8974801485968763825.dcm FO-14345389630097408667.dcm FO-9752852785207225931.dcm FO-14983669555146471350.dcm FO-9790638582733981195.dcm FO-17717808009561358413.dcm __index.xml FO-2461664446741563845.dcm
若要調整輸出 DICOM 影像檔案的存放路徑結構,可以調整 FileStorageService 的設定(例如透過 fsNameTag
的設定以 PatientID
作為目錄名稱分開儲存影像),或是採用 DirectoryStorageService 等其他不同的 storage services。
ArchiveImportService 與 DirectoryImportService
除了使用 FileSender 透過 HttpImportService 匯入 DICOM 影像之外,CTP 還有其他多種匯入 DICOM 影像的方式,對於一般的檔案來說,也可以考慮使用 ArchiveImportService 或 DirectoryImportService,一個 pipeline 中可以同時使用多種匯入資料的方式。
ArchiveImportService 可以從指定的目錄中匯入 DICOM 影像,匯入影像之後會保留原始的 DICOM 檔案,並將處理進度資訊儲存在 roots/ArchiveImportService
目錄下的 checkpoint.bin
檔案中,若要重新處理所有檔案,必須刪除此檔案並重新啟動 CTP。
DirectoryImportService 則是會從指定目錄中匯入 DICOM 檔案,匯入檔案後會將 DICOM 影像原始檔案刪除,此種方式適合用於手動匯入檔案。
DicomEditor
CTP 的功能很齊全,但是安裝與使用上比較麻煩,如果只是需要單純的 DICOM 影像檔案去識別化功能,可以使用 DicomEditor 這個 DICOM 影像編輯工具,它可以進行 DICOM 影像的瀏覽、編輯以及去識別化處理。
CTP 相關工具的下載與安裝流程都很類似,先從 RSNA MIRC 網站上下載 DicomEditor 的 JAR 安裝檔後,執行 JAR 安裝檔進行安裝,並選擇安裝路徑:
# 下載 DicomEditor-installer.jar wget http://mirc.rsna.org/download/DicomEditor-installer.jar # 安裝 DicomEditor java -jar DicomEditor-installer.jar
安裝完成之後,進入安裝目錄,執行 DicomEditor.jar
:
# 執行 DicomEditor java -jar DicomEditor.jar
DicomEditor 會使用安裝目錄下 dicom-anonymizer.script
中所定義的去識別化規則,而在「Anonymizer」頁籤中則會顯示每一條規則,使用者也可以自行調整其中的設定。
在「Directory」頁籤中,選取要進行去識別化的 DICOM 影像檔案或目錄,按下「Anonymize」按鈕即可進行去識別化的處理。
處理完成後的 DICOM 影像檔案會在檔案名稱上附加 -no-phi
字樣,另存新檔放在相同目錄之下。
# 查看 DICOM 去識別化結果
ls dicom/339833062/07-05-2001-NA-NA-19638/3001578.000000-NA-60758
1-1.dcm 1-2-no-phi.dcm 1-4.dcm 1-5-no-phi.dcm 1-7.dcm 1-1-no-phi.dcm 1-3.dcm 1-4-no-phi.dcm 1-6.dcm 1-7-no-phi.dcm 1-2.dcm 1-3-no-phi.dcm 1-5.dcm 1-6-no-phi.dcm
CTP 相關的工具大部分都是具有 GUI 圖形介面的 Java 程式,如果需要指令介面的 DICOM 影像去識別化工具,可以使用 CTP DICOM Anonymizer Tool。