開始在分析工作負載中使用 DICOM 數據
本文說明如何使用 DICOM 數據搭配 Azure Data Factory 和 Microsoft Fabric,在分析工作負載中使用 DICOM® 數據。
必要條件
開始之前,請先完成下列步驟:
- 藉由啟用階層命名空間,建立具有 Azure Data Lake 儲存體 Gen2 功能的記憶體帳戶:
- 建立容器來儲存 DICOM 元數據,例如,名為
dicom
。
- 建立容器來儲存 DICOM 元數據,例如,名為
- 部署 DICOM 服務的實例。
- (選擇性) 使用 Data Lake 儲存體 部署 DICOM 服務,以直接存取 DICOM 檔案。
- 建立 Data Factory 實例:
- 在 Fabric 中建立 Lakehouse 。
- 將角色指派新增至 DICOM 服務和 Data Lake 儲存體 Gen2 記憶體帳戶的 Data Factory 系統指派受控識別:
- 新增 DICOM 數據讀取者角色,以授與 DICOM 服務的許可權。
- 新增 儲存體 Blob 數據參與者角色,以將許可權授與 Data Lake 儲存體 Gen2 帳戶。
設定 DICOM 服務的 Data Factory 管線
在此範例中,Data Factory 管線可用來將實例、數列和研究的 DICOM 屬性寫入 Delta 數據表格式的記憶體帳戶。
從 Azure 入口網站 開啟 Data Factory 實例,然後選取 [啟動工作室] 以開始。
建立連結服務
Data Factory 管線會從 數據源 讀取,並寫入至 數據接收器,通常是其他 Azure 服務。 這些與其他服務的聯機會以連結服務的形式進行管理。
此範例中的管線會從 DICOM 服務讀取數據,並將其輸出寫入記憶體帳戶,因此必須針對兩者建立連結服務。
建立 DICOM 服務的連結服務
在 Azure Data Factory Studio 中,從左側功能表中選取 [管理 ]。 在 [連線 ions] 底下,選取 [鏈接的服務],然後選取 [新增]。
在 [ 新增鏈接服務 ] 窗格中,搜尋 REST。 選取 REST 圖格,然後選取 [繼續]。
輸入 連結服務的 [名稱 ] 和 [描述 ]。
在 [ 基底 URL] 字段中,輸入 DICOM 服務的服務 URL。 例如,工作區中名為
contosoclinic
的contosohealth
DICOM 服務具有服務 URLhttps://contosohealth-contosoclinic.dicom.azurehealthcareapis.com
。針對 [ 驗證類型],選取 [ 系統指派的受控識別]。
針對 AAD 資源, 輸入
https://dicom.healthcareapis.azure.com
。 所有 DICOM 服務實例的此 URL 都相同。填入必要字段之後,請選取 [ 測試連線 ],以確保已正確設定身分識別的角色。
線上測試成功時,請選取 [ 建立]。
建立 Azure Data Lake 儲存體 Gen2 的鏈接服務
在 Data Factory Studio 中,從左側功能表中選取 [管理 ]。 在 [連線] 底下,選取 [鏈接的服務],然後選取 [新增]。
在 [新增鏈接的服務] 窗格中,搜尋 Azure Data Lake 儲存體 Gen2。 選取 [Azure Data Lake 儲存體 Gen2] 圖格,然後選取 [繼續]。
輸入 連結服務的 [名稱 ] 和 [描述 ]。
針對 [ 驗證類型],選取 [ 系統指派的受控識別]。
手動輸入記憶體帳戶的 URL,以輸入記憶體帳戶的詳細數據。 或者,您可以從下拉式清單中選取 Azure 訂用帳戶和記憶體帳戶。
填入必要字段之後,請選取 [ 測試連線 ],以確保已正確設定身分識別的角色。
線上測試成功時,請選取 [ 建立]。
建立 DICOM 數據的管線
Data Factory 管線是執行工作的活動集合,例如將 DICOM 元數據複製到 Delta 數據表。 本節詳細說明如何建立管線,該管線會定期將 DICOM 數據同步處理至 Delta 數據表,因為數據會加入、更新及從 DICOM 服務中刪除。
從左側功能表中選取 [ 作者 ]。 在 [ Factory 資源] 窗格中,選取加號 (+) 以新增資源。 選取 [ 管線 ],然後從功能表中選取 [範本資源庫 ]。
在範本 資源庫中,搜尋 DICOM。 選取 [ 將 DICOM 元數據變更複製到差異格式 ] 磚中的 ADLS Gen2,然後選取 [ 繼續]。
在 [輸入] 區段中,選取先前為 DICOM 服務和 Data Lake 儲存體 Gen2 帳戶建立的鏈接服務。
選取 [ 使用此範本 建立新的管線]。
建立 DICOM 數據的管線
如果您使用 Azure Data Lake 儲存體 建立 DICOM 服務,則必須使用自訂範本在元數據管線中包含新的fileName
參數。 請遵循下列步驟來設定管線,而不是使用範本庫的範本。
從 GitHub 下載範本。 範本檔案是壓縮的 (ziped) 資料夾。 您不需要擷取檔案,因為它們已以壓縮格式上傳。
在 Azure Data Factory 中,從左側功能表中選取 [ 作者 ]。 在 [ Factory 資源] 窗格中,選取加號 (+) 以新增資源。 選取 [ 管線 ],然後選取 [ 從管線範本匯入]。
在 [ 開啟] 視窗中,選取您下載的範本。 選取開啟。
在 [輸入] 區段中,選取針對 DICOM 服務和 Azure Data Lake 儲存體 Gen2 帳戶建立的鏈接服務。
選取 [ 使用此範本 建立新的管線]。
排程管線
管線是由 觸發程式排程。 觸發程式有不同類型的觸發程式。 排程觸發程式 允許在時鐘排程上觸發管線,這表示它們會在一天的特定時間執行,例如每小時或午夜的每一天。 手動觸發程式會 視需要觸發管線,這表示每當您想要管線時就會執行。
在此範例中, 輪轉視窗觸發 程式是用來定期執行管線,指定起點和定期時間間隔。 如需觸發程式的詳細資訊,請參閱 Azure Data Factory 或 Azure Synapse Analytics 中的管線執行和觸發程式。
建立新的輪轉視窗觸發程式
從左側功能表中選取 [ 作者 ]。 選取 DICOM 服務的管線,然後從功能表欄選取 [新增觸發程式和新增/編輯]。
在 [新增觸發程式] 窗格中,選取 [選擇觸發程式] 下拉式清單,然後選取 [新增]。
輸入 觸發程式的 [名稱 ] 和 [描述 ]。
選取 [輪轉] 視窗 作為 [ 類型]。
若要設定每小時執行的管線,請將 [週期] 設定為 [1 小時]。
展開 [進階] 區段,然後輸入延遲 15 分鐘。 此設定可讓一小時結束時完成任何擱置的作業,再進行處理。
將 [最大并行] 設定為 1,以確保數據表之間的一致性。
選取 [ 確定 ] 以繼續設定觸發程式執行參數。
設定觸發程式執行參數
觸發程式會定義執行管線的時機。 它們也包含 傳遞至管線執行的參數 。 將 DICOM 元數據變更複製到差異 範本會定義下表所述的幾個參數。 如果未在組態期間提供任何值,則會針對每個參數使用列出的預設值。
參數名稱 | 描述 | 預設值 |
---|---|---|
BatchSize | 一次從變更摘要擷取的變更數目上限 (最大值 200) | 200 |
ApiVersion | Azure DICOM 服務的 API 版本 (最低 2) | 2 |
StartTime | DICOM 變更的內含開始時間 | 0001-01-01T00:00:00Z |
EndTime | DICOM 變更的獨佔結束時間 | 9999-12-31T23:59:59Z |
ContainerName | 結果 Delta 數據表的容器名稱 | dicom |
InstanceTablePath | 路徑,其中包含容器內 DICOM SOP 實例的 Delta 數據表 | instance |
SeriesTablePath | 路徑,其中包含容器內 DICOM 系列的差異數據表 | series |
StudyTablePath | 路徑,其中包含容器內 DICOM 研究的差異數據表 | study |
RetentionHours | 差異數據表中數據的最大保留時數 | 720 |
在 [ 觸發程式執行參數 ] 窗格中,輸入 符合必要條件中建立之記憶體容器名稱的 ContainerName 值。
針對 StartTime,請使用系統變數
@formatDateTime(trigger().outputs.windowStartTime)
。針對 EndTime,請使用系統變數
@formatDateTime(trigger().outputs.windowEndTime)
。注意
只有輪轉視窗觸發程式支援系統變數:
@trigger().outputs.windowStartTime
和@trigger().outputs.windowEndTime
排程觸發程式使用不同的系統變數:
@trigger().scheduledTime
和@trigger().startTime
深入瞭解 觸發程序類型。
選取 [ 儲存 ] 以建立新的觸發程式。 選取 [發佈 ] 以開始在已定義的排程上執行的觸發程式。
發佈觸發程式之後,可以使用 [立即觸發程式] 選項手動觸發它。 如果過去設定值的開始時間,管線會立即啟動。
監視管線執行
您可以在 [監視] 索引標籤上監視觸發程式執行及其相關聯的管線執行。在這裡,您可以流覽每個管線執行的時間,以及執行所花費的時間。 您也可以偵錯任何產生的問題。
Microsoft Fabric
Fabric 是一個位於 Microsoft OneLake 之上的全方位分析解決方案。 使用 Fabric Lakehouse 時,您可以在單一位置管理、建構和分析 OneLake 中的數據。 寫入 Data Lake 儲存體 Gen2 的 OneLake 以外的任何數據,都可以連線到 OneLake 做為快捷方式,以利用 Fabric 的工具套件。
建立元數據表的快捷方式
移至必要條件中建立的 Lakehouse。 在 [總管] 檢視中,選取 [數據表] 資料夾旁邊的省略號功能表 (...)。
選取 [新增快捷方式 ] 以建立包含 DICOM 分析數據之記憶體帳戶的新快捷方式。
選取 [Azure Data Lake 儲存體 Gen2] 作為快捷方式的來源。
在 [連線 ion 設定] 底下,輸入您在 [鏈接服務] 區段中使用的 URL。
選取現有的連線,或選取 要使用的驗證種類 ,以建立新的連線。
注意
Data Lake 儲存體 Gen2 與 Fabric 之間有幾個驗證選項。 您可以使用組織帳戶或服務主體。 不建議使用帳戶金鑰或共用存取簽章令牌。
選取 [下一步]。
輸入代表Data Factory 管線所建立資料的快捷方式名稱。 例如,針對
instance
Delta 資料表,快捷方式名稱可能應該是 實例。輸入符合執行參數位列態之參數的子路徑,以及快捷方式
ContainerName
的數據表名稱。 例如,針對具有容器中dicom
路徑instance
的 Delta 資料表使用/dicom/instance
。選取 [建立] 以建立快捷方式。
重複步驟 2 到 9,將剩餘的快捷方式新增至記憶體帳戶中的其他 Delta 資料表(例如
series
和study
)。
建立快捷方式之後,展開數據表以顯示數據行的名稱和類型。
建立檔案的快捷方式
如果您使用 DICOM 服務搭配 Data Lake 儲存體,您可以另外建立儲存在 Data Lake 中的 DICOM 檔案數據的快捷方式。
移至必要條件中建立的 Lakehouse。 在 [檔案總管] 檢視中,選取 [檔案] 資料夾旁邊的省略號功能表 (...)。
選取 [新增] 快捷方式 ,以建立包含 DICOM 數據之記憶體帳戶的新快捷方式。
選取 [Azure Data Lake 儲存體 Gen2] 作為快捷方式的來源。
在 [連線 ion 設定] 底下,輸入您在 [鏈接服務] 區段中使用的 URL。
選取現有的連線,或選取 要使用的驗證種類 ,以建立新的連線。
選取 [下一步]。
輸入描述 DICOM 資料的快捷方式名稱。 例如, contoso-dicom-files。
輸入符合 DICOM 服務所用記憶體容器和資料夾名稱的子路徑。 例如,如果您想要連結至根資料夾,子路徑會是 /dicom/AHDS。 請注意,根資料夾一律
AHDS
為 ,但您可以選擇性地連結到特定工作區或 DICOM 服務實例的子資料夾。選取 [建立] 以建立快捷方式。
執行筆記本
在 Lakehouse 中建立數據表之後,您可以從 Fabric 筆記本進行查詢。 您可以從功能表欄選取 [開啟筆記本],直接從Lakehouse建立筆記本 。
在筆記本頁面上,Lakehouse 的內容仍可在左側檢視,包括新增的數據表。 在頁面頂端,選取筆記本的語言。 語言也可以針對個別儲存格進行設定。 下列範例使用 Spark SQL。
使用 Spark SQL 查詢數據表
在數據格編輯器中,輸入 Spark SQL 查詢,例如 SELECT
語句。
SELECT * from instance
此查詢會從 instance
數據表中選取所有內容。 當您準備好時,請選取 [ 執行數據格 ] 以執行查詢。
幾秒鐘之後,查詢的結果會出現在單元格下方的數據表中,例如這裡所示的範例。 如果此 Spark 查詢是第一個在工作階段中,因為需要初始化 Spark 內容,則時間可能更長。
存取筆記本中的 DICOM 檔案數據
如果您使用範本來建立管線,並建立 DICOM 檔案數據的快捷方式,您可以使用 filePath
資料表中的數據 instance
行,將實例元數據與檔案數據相互關聯。
SELECT sopInstanceUid, filePath from instance
摘要
在本文中,您已了解如何:
- 使用 Data Factory 範本建立從 DICOM 服務到 Data Lake 儲存體 Gen2 帳戶的管線。
- 設定觸發程式,以依每小時排程擷取 DICOM 元數據。
- 使用快捷方式將記憶體帳戶中的 DICOM 數據連線到 Fabric Lakehouse。
- 使用筆記本來查詢 Lakehouse 中的 DICOM 數據。
下一步
注意
DICOM® 是國家電氣製造商協會的註冊商標,其標準出版物與醫療資訊的數位通信有關。