共用方式為


開始在分析工作負載中使用 DICOM 資料

本文說明如何搭配 Azure Data Factory 和 Microsoft Fabric 使用分析工作負載中的 DICOM® 資料以開始使用產品。

必要條件

開始之前,請先完成下列步驟:

設定 DICOM 服務的 Data Factory 管線

本範例會使用 Data Factory 管線 (部分機器翻譯) 將執行個體、系列和研究的 DICOM 屬性寫入到 Delta 資料表 (英文) 格式的儲存體帳戶。

從 Azure 入口網站開啟 Data Factory 執行個體,然後選取 [啟動工作室] 以便開始。

顯示 Azure 入口網站中啟動工作室按鈕的螢幕擷取畫面。

建立連結服務

Data Factory 管線會從「資料來源」讀取,並寫入至「資料接收器」 (通常是其他 Azure 服務)。 這些與其他服務的連線會以「連結服務」的形式進行管理。

本範例中的管線會從 DICOM 服務讀取資料,並將其輸出寫入到儲存體帳戶,因此您必須為這兩者建立連結服務。

建立 DICOM 服務的連結服務

  1. 在 Azure Data Factory Studio 中,從左側功能表中選取 [管理]。 在 [連線] 底下,選取 [連結服務],然後選取 [新增]

    顯示 Data Factory 中連結服務畫面的螢幕擷取畫面。

  2. 在 [新增連結服務] 窗格上,搜尋「REST」。 選取 [REST] 圖格,然後選取 [繼續]

    顯示 [新增連結服務] 窗格的螢幕擷取畫面,其中已選取 REST 圖格。

  3. 輸入連結服務的 [名稱] 與 [描述]

    顯示 [新增連結服務] 窗格的螢幕擷取畫面,其中具有 DICOM 服務詳細資料。

  4. 在 [基底 URL] 欄位中,輸入 DICOM 服務的服務 URL。 例如,contosohealth 工作區中名為 contosoclinic 的 DICOM 服務具有的服務 URL 為 https://contosohealth-contosoclinic.dicom.azurehealthcareapis.com

  5. 針對 [驗證類型],選取 [系統指派的受控識別]

  6. 針對 [AAD 資源],輸入 https://dicom.healthcareapis.azure.com。 所有 DICOM 服務執行個體的此 URL 都相同。

  7. 填入必要欄位後,選取 [測試連接],以確保所設定的身分識別角色正確無誤。

  8. 連接測試成功時,選取 [建立]

建立 Azure Data Lake Storage Gen2 的連結服務

  1. 在 Data Factory Studio 中,從左側功能表中選取 [管理]。 在 [連線] 底下,選取 [連結服務],然後選取 [新增]

  2. 在 [新增連結服務] 窗格上,搜尋「Azure Data Lake Storage Gen2」。 選取 [Azure Data Lake Storage Gen2] 圖格,然後選取 [繼續]

    顯示 [新增連結服務] 窗格的螢幕擷取畫面,其中已選取 Azure Data Lake Storage Gen2 圖格。

  3. 輸入連結服務的 [名稱] 與 [描述]

    顯示 [新增連結服務] 窗格的螢幕擷取畫面,其中具有 Data Lake Storage Gen2 詳細資料。

  4. 針對 [驗證類型],選取 [系統指派的受控識別]

  5. 手動輸入儲存體帳戶的 URL,以輸入儲存體帳戶詳細資料。 您也可以從下拉式清單中選取 Azure 訂用帳戶和儲存體帳戶。

  6. 填入必要欄位後,選取 [測試連接],以確保所設定的身分識別角色正確無誤。

  7. 連接測試成功時,選取 [建立]

建立 DICOM 資料的管線

Data Factory 管線集合了會執行工作的各種「活動」,例如將 DICOM 中繼資料複製到 Delta 資料表。 本節會詳細說明如何建立管線,定期地將 DICOM 資料同步處理至 Delta 資料表,因為 DICOM 服務中會不斷新增、更新及刪除資料。

  1. 從左側功能表中選取 [撰寫]。 在 [Factory 資源] 窗格中,選取加號 (+) 以新增資源。 從功能表中依序選取 [管線] 和 [範本庫]

    顯示 [管線] 底下已選取範本資源庫的螢幕擷取畫面。

  2. 在 [範本資源庫] 中,搜尋「DICOM」。 選取 [將 DICOM 中繼資料變更複製到 Delta 格式的 ADLS Gen2] 圖格,然後選取 [繼續]

    顯示範本資源庫中已選取 DICOM 範本的螢幕擷取畫面。

  3. 在 [輸入] 區段中,選取先前為 DICOM 服務和 Data Lake Storage Gen2 帳戶建立的連結服務。

    顯示已選取連結服務之 [輸入] 區段的螢幕擷取畫面。

  4. 選取 [使用此範本] 以建立新管線。

建立 DICOM 資料的管線

如果您建立了使用 Azure Data Lake Storage 的 DICOM 服務,而不是使用來自範本資源庫的範本,則必須使用自訂範本在中繼資料管線中包含新的 fileName 參數。 若要設定管線,請依照下列步驟執行。

  1. 從 GitHub 下載範本。 範本檔案是壓縮 (ZIP) 資料夾。 您不需要解壓縮檔案,因為檔案已經以壓縮形式上傳。

  2. 在 Azure Data Factory 中,從左側功能表中選取 [撰寫]。 在 [Factory 資源] 窗格上,選取加號 (+) 以新增資源。 選取 [管線],然後選取 [從管線範本匯入]

  3. 在 [開啟] 視窗中,選取您下載的範本。 選取開啟

  4. 在 [輸入] 區段中,選取為 DICOM 服務和 Azure Data Lake Storage Gen2 帳戶建立的連結服務。

    顯示已選取連結服務之 [輸入] 區段的螢幕擷取畫面。

  5. 選取 [使用此範本] 以建立新管線。

排程管線

管線會由「觸發程序」排程。 觸發程序有不同的類型。 「排程觸發程序」允許在一天當中的特定時間觸發管線執行,例如每小時或每天午夜。 「手動觸發程序」會隨需觸發管線,這表示其會在每次您需要的時候執行。

本範例使用「輪轉視窗觸發程序」,在給定起點和固定時間間隔的情況下定期執行管線。 如需觸發程序的詳細資訊,請參閱 Azure Data Factory 或 Azure Synapse Analytics 中的管線執行和觸發程序

建立新的輪轉視窗觸發程序

  1. 從左側功能表中選取 [撰寫]。 選取 DICOM 服務的管線,然後從功能表列中選取 [新增觸發程序] 和 [新增/編輯]

    顯示 Data Factory Studio 管線檢視的螢幕擷取畫面,其中已選取功能表列上的 [新增觸發程序] 按鈕。

  2. 在 [新增觸發程序] 窗格上,選取 [選擇觸發程序] 下拉式清單,然後選取 [新增]

  3. 輸入此觸發程序的 [名稱] 及 [描述]

    顯示 [新增觸發程序] 窗格的螢幕擷取畫面,其中包含 [名稱]、[描述]、[類型]、[日期] 和 [週期] 欄位。

  4. 選取 [輪轉視窗] 作為 [類型]

  5. 若要設定每小時執行的管線,請將 [定期] 設定為 [1 小時]

  6. 展開 [進階] 區段,然後輸入 [15 分鐘] 的 [延遲]。 此設定可在每小時結束時先讓任何擱置的作業完成,再進行處理。

  7. 將 [並行上限] 設定為 [1],以確保資料表間保持一致。

  8. 選取 [確定] 以繼續設定觸發程序執行參數。

設定觸發程序執行參數

觸發程序會定義管線的執行時機。 其也包含傳遞至管線執行的參數。 「將 DICOM 中繼資料變更複製到 Delta」範本會定義下表所述的參數。 如果設定期間未提供任何值,則會為每個參數使用所列的預設值。

參數名稱 描述 預設值
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 系列 Delta 資料表的路徑 series
StudyTablePath 包含容器內 DICOM 研究 Delta 資料表的路徑 study
RetentionHours Delta 資料表中資料的保留時數上限 720
  1. 在 [觸發程序執行參數] 窗格上,輸入符合必要條件中所建立儲存體容器名稱的「ContainerName」值。

    顯示 [觸發程序執行參數] 窗格的螢幕擷取畫面,其中已輸入 StartTime 和 EndTime 值。

  2. 針對 [StartTime],請使用系統變數 @formatDateTime(trigger().outputs.windowStartTime)

  3. 針對 [EndTime],請使用系統變數 @formatDateTime(trigger().outputs.windowEndTime)

    注意

    只有輪轉視窗觸發程序能支援以下系統變數:

    • @trigger().outputs.windowStartTime
    • @trigger().outputs.windowEndTime.

    排程觸發程序會使用不同的系統變數:

    • @trigger().scheduledTime
    • @trigger().startTime.

    深入了解觸發程序類型

  4. 選取 [儲存] 以建立新的觸發程序。 選取 [發佈] 以開始會依所定義排程來執行的觸發程序。

    顯示主功能表列上 [發佈] 按鈕的螢幕擷取畫面。

發佈觸發程序之後,可以使用 [立即觸發] 選項來加以手動觸發。 如果為開始時間所設定的值已過去,管線會立即啟動。

監視管線執行

您可以在 [監視] 索引標籤上監視觸發程序執行及其相關聯的管線執行。在這裡,您可以瀏覽每個管線是在何時執行,以及執行了多久。 您也可以對已產生的問題進行偵錯。

顯示 [監視] 檢視的螢幕擷取畫面,其中具有管線執行的清單。

Microsoft Fabric

Fabric 是以 Microsoft OneLake (部分機器翻譯) 作為基礎的全方位分析解決方案。 透過使用 Fabric Lakehouse (部分機器翻譯),您可以在一個地方管理、建構和分析 OneLake 中的資料。 OneLake 以外的任何資料 (寫入到 Data Lake Storage Gen2) 都能使用捷徑連線到 OneLake,以利用 Fabric 的工具套件。

建立中繼資料資料表的捷徑

  1. 移至必要條件中所建立的 Lakehouse。 在 [總管] 檢視中,選取 [資料表] 資料夾旁邊的省略符號功能表 (...)。

  2. 選取 [新增捷徑] 以便為包含 DICOM 分析資料的儲存體帳戶建立新的捷徑。

    顯示 [總管] 檢視中 [新增捷徑] 選項的螢幕擷取畫面。

  3. 選取 [Azure Data Lake Storage Gen2] 作為捷徑來源。

    顯示 [新增捷徑] 檢視的螢幕擷取畫面,其中具有 Azure Data Lake Storage Gen2 圖格。

  4. 在 [連線設定] 底下,輸入您在 [連結服務] 區段中所使用的 [URL]

    顯示 Azure Data Lake Storage Gen2 帳戶連線設定的螢幕擷取畫面。

  5. 選取現有連線,或選取要使用的 [驗證種類] 來建立新的連線。

    注意

    有幾個可用來在 Data Lake Storage Gen2 與 Fabric 之間進行驗證的選項。 您可以使用組織帳戶或服務主體。 不建議使用帳戶金鑰或共用存取簽章權杖。

  6. 選取 [下一步]。

  7. 輸入代表 Data Factory 管線所建資料的 [捷徑名稱]。 例如,針對 instance Delta 資料表,捷徑名稱應該會是「執行個體」

  8. 輸入符合執行參數設定中 ContainerName 參數的 [子路徑],以及捷徑的資料表名稱。 例如,若為在 dicom 容器中具有路徑 instance 的 Delta 資料表,請使用 /dicom/instance

  9. 選取 [建立] 以建立捷徑。

  10. 重複步驟 2 到步驟 9,將剩餘捷徑新增至儲存體帳戶中的其他 Delta 資料表 (例如 seriesstudy)。

建立捷徑之後,展開資料表以顯示資料行的名稱和類型。

顯示 [總管] 檢視中所列資料表資料行的螢幕擷取畫面。

建立檔案捷徑

如果您使用使用 Data Lake Storage 的 DICOM 服務,則可以另外為儲存在資料湖中的 DICOM 檔案資料建立捷徑。

  1. 移至必要條件中所建立的 Lakehouse。 在 [總管] 檢視中,選取 [檔案] 資料夾旁邊的省略符號功能表 (...)。

  2. 選取 [新增捷徑] 以便為包含 DICOM 資料的儲存體帳戶建立新的捷徑。

    顯示 [總管] 檢視中 [檔案] 功能表 [新增捷徑] 選項的螢幕擷取畫面。

  3. 選取 [Azure Data Lake Storage Gen2] 作為捷徑來源。

    顯示 [新增捷徑] 檢視的螢幕擷取畫面,其中具有 Azure Data Lake Storage Gen2 圖格。

  4. 在 [連線設定] 底下,輸入您在 [連結服務] 區段中所使用的 [URL]

    顯示 Azure Data Lake Storage Gen2 帳戶連線設定的螢幕擷取畫面。

  5. 選取現有連線,或選取要使用的 [驗證種類] 來建立新的連線。

  6. 選取 [下一步]。

  7. 輸入描述 DICOM 資料的 [捷徑名稱]。 例如,contoso-dicom-files

  8. 輸入符合 DICOM 服務所用儲存體容器和資料夾名稱的 [子路徑]。 例如,如果您想要連結至根資料夾,子路徑會是「/dicom/AHDS」。 根資料夾一律為 AHDS,但您可以選擇性地連結到特定工作區或 DICOM 服務執行個體的子資料夾。

  9. 選取 [建立] 以建立捷徑。

顯示 DICOM 檔案捷徑的螢幕擷取畫面。

執行筆記本

在 Lakehouse 中建立資料表之後,您可以從 Fabric 筆記本 (部分機器翻譯) 進行查詢。 您可以從功能表列選取 [開啟筆記本],直接從 Lakehouse 建立筆記本。

在筆記本頁面上,Lakehouse 的內容可在左側檢視,包括新增的資料表。 在頁面頂端,選取筆記本的語言。 您也可以為個別資料格設定語言。 下列範例使用的是 Spark SQL。

使用 Spark SQL 來查詢資料表

在資料格編輯器中,輸入 Spark SQL 查詢,例如 SELECT 陳述式。

SELECT * from instance

此查詢會從 instance 資料表中選取所有內容。 當您準備好時,請選取 [執行資料格] 以執行查詢。

顯示具有範例 Spark SQL 查詢之筆記本的螢幕擷取畫面。

幾秒鐘之後,查詢結果會出現在資料格下方的資料表中,如以下範例所示。 如果此 Spark 查詢是工作階段中的第一個查詢,因為 Spark 內容需要初始化,因此所需時間可能會久一點。

顯示具有範例 Spark SQL 查詢和結果之筆記本的螢幕擷取畫面。

存取筆記本中的 DICOM 檔案資料

如果您使用了範本來建立管線,並建立了 DICOM 檔案資料的捷徑,則可以使用 instance 資料表中的 filePath 資料行,將執行個體中繼資料與檔案資料相互關聯。

SELECT sopInstanceUid, filePath from instance

顯示具有範例 Spark SQL 查詢和結果之筆記本的螢幕擷取畫面,其中包含 filePath。

摘要

在本文中,您已了解如何:

  • 使用 Data Factory 範本建立從 DICOM 服務到 Data Lake Storage Gen2 帳戶的管線。
  • 設定觸發程序,以依每小時的排程擷取 DICOM 中繼資料。
  • 使用捷徑將儲存體帳戶中的 DICOM 資料連線到 Fabric Lakehouse。
  • 使用筆記本來查詢 Lakehouse 中的 DICOM 資料。

下一步

注意

DICOM® 是美國電氣製造商協會對於其與醫療資訊數位通訊相關的標準出版物的註冊商標。