분석 워크로드에서 DICOM 데이터 사용 시작
이 문서에서는 Azure Data Factory 및 Microsoft Fabric을 사용하여 분석 워크로드에서 DICOM® 데이터를 사용하여 시작하는 방법을 설명합니다.
필수 조건
시작하기 전에 다음 단계를 완료합니다.
- 계층 구조 네임스페이스를 사용하도록 설정하여 Azure Data Lake Storage Gen2 기능을 통해 스토리지 계정을 만듭니다.
- DICOM 메타데이터를 저장할 컨테이너(예:
dicom
)를 만듭니다.
- DICOM 메타데이터를 저장할 컨테이너(예:
- DICOM 서비스의 인스턴스를 배포합니다.
- (선택 사항) DICOM 파일에 직접 액세스할 수 있도록 Data Lake Storage와 함께 DICOM 서비스를 배포합니다.
- Data Factory 인스턴스 만들기
- 시스템 할당 관리 ID 사용
- Fabric에서 레이크하우스를 만듭니다.
- DICOM 서비스 및 Data Lake Storage Gen2 스토리지 계정에 대한 Data Factory 시스템이 할당한 관리 ID에 역할 할당을 추가합니다.
- DICOM 데이터 판독기 역할을 추가하여 DICOM 서비스에 대한 권한을 부여합니다.
- Storage Blob 데이터 기여자 역할을 추가하여 Data Lake Storage Gen2 계정에 권한을 부여합니다.
DICOM 서비스에 대한 Data Factory 파이프라인 구성
이 예제에서는 Data Factory 파이프라인을 사용하여 인스턴스, 계열 및 연구에 대한 DICOM 특성을 Delta 테이블 형식의 스토리지 계정에 작성합니다.
Azure Portal에서 Data Factory 인스턴스를 열고 스튜디오 시작을 선택하여 시작합니다.
연결된 서비스 생성
Data Factory 파이프라인은 데이터 원본에서 읽고 일반적으로 다른 Azure 서비스인 데이터 싱크에 씁니다. 다른 서비스에 대한 이러한 연결은 연결된 서비스로 관리됩니다.
이 예제에서 파이프라인은 DICOM 서비스에서 데이터를 읽고 해당 출력을 스토리지 계정에 기록하므로 두 서비스 모두에 대해 연결된 서비스를 만들어야 합니다.
DICOM 서비스에 대한 연결된 서비스 만들기
Azure Data Factory Studio의 왼쪽 메뉴에서 관리를 선택합니다. 연결 아래에서 연결된 서비스를 선택한 다음, 새로 만들기를 선택합니다.
새 연결된 서비스 창에서 REST를 검색합니다. REST 타일을 선택한 다음 계속을 선택합니다.
연결된 보고서의 이름 및 설명을 입력합니다.
기본 URL 필드에 DICOM 서비스의 서비스 URL을 입력합니다. 예를 들어
contosohealth
작업 영역에contosoclinic
이라는 이름의 DICOM 서비스에는 서비스 URL(https://contosohealth-contosoclinic.dicom.azurehealthcareapis.com
)이 있습니다.인증 유형의 경우 시스템 할당 관리 ID를 선택합니다.
AAD 리소스의 경우
https://dicom.healthcareapis.azure.com
을 입력합니다. 이 URL은 모든 DICOM 서비스 인스턴스에 대해 동일합니다.필수 필드를 입력한 후 연결 테스트를 선택하여 ID의 역할이 올바르게 구성되었는지 확인합니다.
연결 테스트가 성공하면 만들기를 선택합니다.
Azure Data Lake Storage Gen2에 대해 연결된 서비스 만들기
Data Factory Studio의 왼쪽 메뉴에서 관리를 선택합니다. 연결 아래에서 연결된 서비스를 선택한 다음, 새로 만들기를 선택합니다.
새 연결된 서비스 창에서 Azure Data Lake Storage Gen2를 검색합니다. Azure Data Lake Storage Gen2 타일을 선택하고 계속을 선택합니다.
연결된 보고서의 이름 및 설명을 입력합니다.
인증 유형의 경우 시스템 할당 관리 ID를 선택합니다.
스토리지 계정에 대한 URL을 수동으로 입력하여 스토리지 계정 세부 정보를 입력합니다. 드롭다운에서 Azure 구독 및 스토리지 계정을 선택할 수도 있습니다.
필수 필드를 입력한 후 연결 테스트를 선택하여 ID의 역할이 올바르게 구성되었는지 확인합니다.
연결 테스트가 성공하면 만들기를 선택합니다.
DICOM 데이터에 대한 파이프라인 만들기
Data Factory 파이프라인은 DICOM 메타데이터를 델타 테이블에 복사하는 것과 같은 작업을 수행하는 작업의 컬렉션입니다. 이 섹션에서는 DICOM 서비스에서 데이터가 추가, 업데이트 및 삭제될 때 DICOM 데이터를 델타 테이블에 정기적으로 동기화하는 파이프라인을 만드는 방법을 자세히 설명합니다.
왼쪽 메뉴에서 작성자를 선택합니다. Factory 리소스 창에서 더하기 기호(+)를 선택하여 새 리소스를 추가합니다. 파이프라인을 선택한 다음 메뉴에서 템플릿 갤러리를 선택합니다.
템플릿 갤러리에서 DICOM을 검색합니다. DICOM 메타데이터 변경 내용을 델타 형식으로 ADLS Gen2로 복사 타일을 선택한 다음 계속을 선택합니다.
입력 섹션에서 DICOM 서비스 및 Data Lake Storage Gen2 계정에 대해 이전에 만든 연결된 서비스를 선택합니다.
이 템플릿 사용을 선택하여 새 파이프라인을 만듭니다.
DICOM 데이터에 대한 파이프라인 만들기
Azure Data Lake Storage를 사용하여 DICOM 서비스를 만든 경우 템플릿 갤러리의 템플릿을 사용하는 대신 사용자 지정 템플릿을 사용하여 메타데이터 파이프라인에 새 fileName
매개 변수를 포함해야 합니다. 파이프라인을 구성하려면 다음 단계를 따릅니다.
GitHub에서 템플릿을 다운로드합니다. 템플릿 파일은 압축된 폴더입니다. 압축된 형식으로 이미 업로드되어 있으므로 파일을 추출할 필요가 없습니다.
Azure Data Factory의 왼쪽 메뉴에서 작성자를 선택합니다. Factory 리소스 창에서 더하기 기호(+)를 선택하여 새 리소스를 추가합니다. 파이프라인을 선택한 다음 파이프라인 템플릿에서 가져오기를 선택합니다.
열기 창에서 다운로드한 템플릿을 선택합니다. 열기를 선택합니다.
입력 섹션에서 DICOM 서비스 및 Azure Data Lake Storage Gen2 계정에 대해 만든 연결된 서비스를 선택합니다.
이 템플릿을 사용하여 새 파이프라인을 만듭니다.
파이프라인 예약
파이프라인은 트리거에 의해 일정 계획됩니다. 다양한 형식의 트리거가 있습니다. 일정 트리거를 사용하면 매시간 또는 매일 자정 등 하루 중 특정 시간에 실행되도록 파이프라인을 트리거할 수 있습니다. 수동 트리거는 요청 시 파이프라인을 트리거합니다. 즉, 원하는 때마다 실행됩니다.
이 예제에서는 연속 창 트리거를 사용하여 시작점과 규칙적인 시간 간격을 지정한 경우 파이프라인을 규칙적으로 실행합니다. 트리거에 대한 자세한 정보는 Azure Data Factory 또는 Azure Synapse Analytics에서의 파이프라인 실행 및 트리거를 참조하세요.
새 연속 창 트리거 만들기
왼쪽 메뉴에서 작성자를 선택합니다. DICOM 서비스에 대한 파이프라인을 선택하고 메뉴 모음에서 트리거 추가 및 새로 만들기/편집을 선택합니다.
트리거 추가 창에서 트리거 선택 드롭다운을 선택한 다음 새로 만들기를 선택합니다.
트리거의 이름과 설명을 입력합니다.
연속 창을 유형으로 선택합니다.
매시간 실행되는 파이프라인을 구성하려면 되풀이를 1시간으로 설정합니다.
고급 섹션을 확장하고 15분 지연을 입력합니다. 이 설정을 사용하면 처리하기 전에 1시간이 끝날 때 보류 중인 작업이 완료됩니다.
테이블 간에 일관성을 유지하려면 최대 동시성을 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 | 결과 델타 테이블의 컨테이너 이름 | dicom |
InstanceTablePath | 컨테이너 내 DICOM SOP 인스턴스에 대한 델타 테이블이 포함된 경로입니다. | 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 레이크하우스를 사용하면 단일 위치에서 OneLake에서 데이터를 관리, 조직 및 분석할 수 있습니다. Data Lake Storage Gen2에 기록된 OneLake 외부의 모든 데이터는 바로 가기를 사용하여 OneLake에 연결하여 Fabric의 도구 제품군을 활용할 수 있습니다.
메타데이터 테이블에 대한 바로 가기 만들기
필수 구성 요소에서 만든 레이크하우스로 이동합니다. 탐색기 보기에서 테이블 폴더 옆에 있는 줄임표 메뉴(... )를 선택합니다.
새 바로 가기 를 선택하여 DICOM 분석 데이터가 포함된 스토리지 계정에 대해 새 바로 가기를 만듭니다.
바로 가기의 원본으로 Azure Data Lake Storage Gen2 를 선택합니다.
연결 설정에서 연결된 서비스 섹션에 사용한 URL을 입력합니다.
기존 연결을 선택하거나 사용하려는 인증 종류를 선택하여 새 연결을 만듭니다.
참고 항목
Data Lake Storage Gen2와 Fabric 간에 인증하는 몇 가지 옵션이 있습니다. 조직 계정 또는 서비스 주체를 사용할 수 있습니다. 계정 키 또는 공유 액세스 서명 토큰을 사용하지 않는 것이 좋습니다.
다음을 선택합니다.
Data Factory 파이프라인에서 만든 데이터를 나타내는 바로 가기 이름을 입력합니다. 예를 들어
instance
델타 테이블의 경우 바로 가기 이름이 인스턴스일 수 있습니다.실행 매개 변수 구성의
ContainerName
매개 변수와 일치하는 하위 경로와 바로 가기에 대한 테이블 이름을 입력합니다. 예를 들어dicom
컨테이너에 경로instance
가 포함된 Delta 테이블에/dicom/instance
를 사용합니다.바로 가기를 만들려면 만들기를 선택합니다.
2~9단계를 반복하여 스토리지 계정의 다른 델타 테이블(예:
series
및study
)에 나머지 바로 가기를 추가합니다.
바로 가기를 만든 후 테이블을 확장하여 열의 이름과 형식을 표시합니다.
파일에 대한 바로 가기 만들기
Data Lake Storage와 함께 DICOM 서비스를 사용하는 경우 데이터 레이크에 저장된 DICOM 파일 데이터에 대한 바로 가기를 추가로 만들 수 있습니다.
필수 구성 요소에서 만든 레이크하우스로 이동합니다. 탐색기 보기에서 파일 폴더 옆에 있는 줄임표 메뉴(... )를 선택합니다.
새 바로 가기 를 선택하여 DICOM 데이터가 포함된 스토리지 계정에 대해 새 바로 가기를 만듭니다.
바로 가기의 원본으로 Azure Data Lake Storage Gen2 를 선택합니다.
연결 설정에서 연결된 서비스 섹션에 사용한 URL을 입력합니다.
기존 연결을 선택하거나 사용하려는 인증 종류를 선택하여 새 연결을 만듭니다.
다음을 선택합니다.
DICOM 데이터를 설명하는 바로 가기 이름을 입력합니다. 예를 들어 contoso-dicom-files입니다.
DICOM 서비스에서 사용하는 스토리지 컨테이너 및 폴더의 이름과 일치하는 하위 경로를 입력합니다. 예를 들어 루트 폴더에 연결하려는 경우 하위 경로는 /dicom/AHDS입니다. 루트 폴더는 항상
AHDS
이지만 특정 작업 영역 또는 DICOM 서비스 인스턴스에 대한 자식 폴더에 선택적으로 연결할 수 있습니다.바로 가기를 만들려면 만들기를 선택합니다.
Notebook 실행
레이크하우스에서 테이블을 만든 후 Fabric 전자 필기장에서 쿼리할 수 있습니다. 메뉴 모음에서 전자 필기장 열기를 선택하여 레이크하우스에서 직접 전자 필기장을 만들 수 있습니다.
Notebook 페이지에서 새로 추가된 테이블을 포함하여 레이크하우스의 내용을 왼쪽에서 볼 수 있습니다. 페이지 맨 위에서 전자 필기장의 언어를 선택합니다. 개별 셀에 대해 언어를 구성할 수도 있습니다. 다음 예제에서는 Spark SQL을 사용합니다.
Spark SQL을 사용하여 테이블 쿼리
셀 편집기에서 SELECT
문과 같은 Spark SQL 쿼리를 입력합니다.
SELECT * from instance
이 쿼리는 instance
테이블의 모든 콘텐츠를 선택합니다. 준비가 되면 셀 실행을 선택하여 쿼리를 실행합니다.
몇 초 후에 다음 예제와 같이 쿼리 결과가 셀 아래 테이블에 표시됩니다. Spark 컨텍스트를 초기화해야 하므로 이 Spark 쿼리가 세션의 첫 번째 쿼리인 경우 시간이 더 길어질 수 있습니다.
전자 필기장의 DICOM 파일 데이터에 액세스
템플릿을 사용하여 파이프라인을 만들고 DICOM 파일 데이터에 대한 바로 가기를 만든 경우 instance
테이블의 filePath
열을 사용하여 인스턴스 메타데이터를 파일 데이터와 상호 연결할 수 있습니다.
SELECT sopInstanceUid, filePath from instance
요약
이 문서에서는 다음 방법에 대해 알아보았습니다.
- Data Factory 템플릿을 사용하여 DICOM 서비스에서 Data Lake Storage Gen2 계정으로 파이프라인을 만듭니다.
- 시간별 일정에 따라 DICOM 메타데이터를 추출하도록 트리거를 구성합니다.
- 바로 가기를 사용하여 스토리지 계정의 DICOM 데이터를 Fabric 레이크하우스에 연결합니다.
- 전자 필기장을 사용하여 레이크하우스에서 DICOM 데이터를 쿼리합니다.
다음 단계
참고 항목
DICOM®은 의료 정보의 디지털 통신과 관련된 표준 간행물에 대한 미국 전기공업회의 등록 상표입니다.