DICOM 플러그인

DicomPlugin으로 의료 이미지를 보기

DICOM 플러그인은 Doconut에 의료 이미지 뷰어 기능을 추가합니다. 다중 프레임 DICOM 파일을 애니메이션 개요, 개별 프레임, 혹은 두 가지 모두로 렌더링합니다. DICOM은 플러그인 전용 포맷이며, 이 플러그인(및 해당 라이선스 기능)이 없으면 .dcm 파일을 전혀 열 수 없습니다.

Install the package

bash
dotnet add package Doconut.NET6.Dicom

버전이 지정되지 않은 명령은 최신 안정 버전을 설치합니다. 플러그인을 현재 26.7.0 릴리스에 고정하려면 버전을 별도로 지정합니다:

bash
dotnet add package Doconut.NET6.Dicom --version 26.7.0

DICOM 패키지는 Doconut.NET6와 동일한 버전을 유지해야 합니다. 패키지 ID는 Doconut.NET6.Dicom이며, .26.7.0은 다운로드된 .nupkg 파일 이름에만 나타납니다.

Register the plugin

csharp
builder.Services.AddDoconut(options =>
{
    options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});

플러그인(Name: "Doconut DICOM Viewer")은 .dcm.ima 확장자를 위한 뷰어를 등록하며, Dicom 기능에 의해 게이트됩니다. 권한이 없거나 일시적이지 않은 권한이 부족하면 일반적으로 AddDoconut() 단계에서 실패합니다. 내장 뷰어가 이러한 포맷을 처리하지 않기 때문에, 런타임 게이트는 해당 기능이 나중에 사용할 수 없게 되면 강제로 실패합니다:

text
LicenseException: This document type requires the 'Dicom' plugin license.

Opening a DICOM file

csharp
var token = await viewer.OpenDocumentAsync(path, new DicomConfig
{
    DisplayMode = DicomDisplayMode.AnimationAndFrames
});

Display modes

다중 프레임 DICOM 파일은 세 가지 방식(DicomDisplayMode)으로 표시될 수 있습니다:

ModePages producedUse for
AnimationOnlyPage 1 = 모든 프레임을 순환하는 애니메이션 GIF빠른 시네마틱 리뷰
FramesOnlyPages 1..N = 프레임당 정적 PNG 하나씩프레임별 진단 탐색
AnimationAndFrames (default)Page 1 = 애니메이션 GIF, pages 2..N = 정적 프레임하나의 문서에 개요와 상세를 모두 제공

애니메이션 타이밍은 AnimationFrameDelayMs(기본 100 ms = 10 FPS; GIF 세분화는 10 ms 단위)와 LoopCount(0 = 무한 반복)로 제어됩니다.

Resolution

DicomConfig는 기본적으로 축당 100 DPI로 렌더링합니다. 해상도 속성에는 다음과 같은 폴백 체인이 있습니다: HorizontalResolution/VerticalResolution를 명시적으로 설정하지 않으면, 먼저 BaseConfig.ImageResolution이 적용되고, 그 다음에 100 DPI가 사용됩니다.

csharp
// 기본 속성을 통한 균일한 확대…
new DicomConfig { ImageResolution = 150 };

// …또는 축별 제어
new DicomConfig { HorizontalResolution = 200, VerticalResolution = 150 };

DICOM metadata availability on .NET 6

DICOM 페이지 렌더링, 개별 프레임, 애니메이션, 변환 및 워터마크가 지원됩니다. 기술 태그 메타데이터는 .NET 6 패키지에 포함된 메타데이터 리더가 .NET 6 빌드를 제공하지 않기 때문에 사용할 수 없습니다.

Viewer.GetDicomMetadataAsync(token)은 DICOM 세션에 대해 null을 반환하고 한 번만 경고를 기록합니다. 해당 ?token=…&meta 미들웨어 요청은 안정적인 오류 코드 dicom_metadata_unsupported와 함께 HTTP 501 Not Implemented를 반환합니다. 기술적인 DICOM 메타데이터가 필요하다면 .NET 8 패키지를 사용하십시오.

Full config reference

전체 DicomConfig 속성 표는 API Reference → Format Configs에 있습니다. 레퍼런스 앱의 확장자별 스위치 예시:

csharp
".DCM" or ".IMA" => new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames },

Watermark and memory behavior

일반 페이지 워터마크 결정 로직이 DICOM 출력에도 적용됩니다. 애니메이션 출력의 경우 각 GIF 프레임에 워터마크가 찍혀 재생 중에도 표시됩니다. 라이선스 경로가 커스텀 워터마크를 허용할 때만 DocOptions.Watermark가 사용되며, 평가용 워터마크를 대체할 수 없습니다.

다중 프레임 연구에서는 애니메이션과 프레임당 정적 페이지를 모두 생성할 수 있습니다. AnimationAndFrames는 가장 풍부한 탐색 경험을 제공하지만 렌더링 및 캐시 비용이 가장 높습니다. 대용량 연구의 경우:

  • 프레임 검사가 시네마틱 재생보다 중요하면 FramesOnly를 사용합니다.
  • 메모리를 측정하지 않고 해상도 축을 동시에 높이는 것을 피합니다.
  • 연구가 더 이상 열려 있지 않을 때 세션을 명시적으로 종료합니다.
  • 반복 접근 이점이 유지된 이미지보다 큰 경우에만 CachePages를 활성화합니다.

Troubleshooting

SymptomCheck
.dcm이 지원되지 않음으로 표시됨DicomPlugin 등록 및 패키지 배포 여부
플러그인 추가 후 시작 실패로드된 라이선스가 Dicom을 포함하는지 확인
페이지가 하나만 표시됨소스가 단일 프레임이거나 DisplayModeAnimationOnly일 수 있음
애니메이션이 너무 빠르거나 느림AnimationFrameDelayMs; GIF 타이밍은 10 ms 단위 사용
대용량 다중 프레임 파일에서 메모리 증가표시 모드, 해상도, 페이지 캐시, 명시적 세션 종료 확인
메타데이터가 null이거나 &meta501 반환.NET 6 제한이 예상됨; 렌더링에는 영향 없음

이 페이지가 도움이 되었나요?